create-tsrouter-app 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -13,7 +13,7 @@ npx create-react-app my-app
13
13
  You can now run:
14
14
 
15
15
  ```bash
16
- npx create-tsrouter-app my-app
16
+ npx create-tsrouter-app@latest my-app
17
17
  ```
18
18
 
19
19
  Instead of using:
@@ -25,7 +25,7 @@ npx create-react-app my-app --template typescript
25
25
  To create a SPA application using TypeScript. You can now run:
26
26
 
27
27
  ```bash
28
- npx create-tsrouter-app my-app --template typescript
28
+ npx create-tsrouter-app@latest my-app --template typescript
29
29
  ```
30
30
 
31
31
  What you'll get is a Vite application that uses TanStack Router. All the files will still be in the same place as in CRA, but you'll get a fully functional Router setup under in `app/main.tsx`.
package/dist/index.js CHANGED
@@ -1,9 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import { copyFile, mkdir, readFile, writeFile } from 'node:fs/promises';
3
+ import { existsSync } from 'node:fs';
3
4
  import { resolve } from 'node:path';
4
5
  import { fileURLToPath } from 'node:url';
5
6
  import { Command, InvalidArgumentError } from 'commander';
6
- import { intro, outro, spinner } from '@clack/prompts';
7
+ import { intro, outro, spinner, log } from '@clack/prompts';
7
8
  import { execa } from 'execa';
8
9
  import { render } from 'ejs';
9
10
  import { SUPPORTED_PACKAGE_MANAGERS, getPackageManager, } from './utils/getPackageManager.js';
@@ -85,6 +86,10 @@ async function createApp(projectName, options) {
85
86
  const templateDirBase = fileURLToPath(new URL('../templates/base', import.meta.url));
86
87
  const templateDirRouter = fileURLToPath(new URL(`../templates/${options.mode}`, import.meta.url));
87
88
  const targetDir = resolve(process.cwd(), projectName);
89
+ if (existsSync(targetDir)) {
90
+ log.error(`Directory "${projectName}" already exists`);
91
+ return;
92
+ }
88
93
  const copyFiles = createCopyFile(targetDir);
89
94
  const templateFile = createTemplateFile(projectName, options, targetDir);
90
95
  intro(`Creating a new TanStack app in ${targetDir}...`);
@@ -140,7 +145,7 @@ async function createApp(projectName, options) {
140
145
  await templateFile(templateDirBase, './index.html.ejs');
141
146
  // Setup tsconfig
142
147
  if (options.typescript) {
143
- await copyFiles(templateDirBase, ['./tsconfig.json', './tsconfig.dev.json']);
148
+ await copyFiles(templateDirBase, ['./tsconfig.json']);
144
149
  }
145
150
  // Setup the package.json file, optionally with typescript and tailwind
146
151
  await createPackageJSON(projectName, options, templateDirBase, templateDirRouter, targetDir);
@@ -153,7 +158,15 @@ async function createApp(projectName, options) {
153
158
  s.start(`Installing dependencies via ${options.packageManager}...`);
154
159
  await execa(options.packageManager, ['install'], { cwd: targetDir });
155
160
  s.stop(`Installed dependencies`);
156
- outro(`Created your new TanStack app in ${targetDir}.`);
161
+ outro(`Created your new TanStack app in ${targetDir}.
162
+
163
+ Use the following commands to start your app:
164
+
165
+ % cd ${projectName}
166
+ % ${options.packageManager} start
167
+
168
+ Please read README.md for more information on testing, styling, adding routes, react-query, etc.
169
+ `);
157
170
  }
158
171
  program
159
172
  .name('create-tsrouter-app')
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-tsrouter-app",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Tanstack Application Builder",
5
5
  "bin": "./dist/index.js",
6
6
  "type": "module",
package/src/index.ts CHANGED
@@ -1,10 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { copyFile, mkdir, readFile, writeFile } from 'node:fs/promises'
4
+ import { existsSync } from 'node:fs'
4
5
  import { resolve } from 'node:path'
5
6
  import { fileURLToPath } from 'node:url'
6
7
  import { Command, InvalidArgumentError } from 'commander'
7
- import { intro, outro, spinner } from '@clack/prompts'
8
+ import { intro, outro, spinner, log } from '@clack/prompts'
8
9
  import { execa } from 'execa'
9
10
  import { render } from 'ejs'
10
11
 
@@ -144,6 +145,11 @@ async function createApp(projectName: string, options: Required<Options>) {
144
145
  )
145
146
  const targetDir = resolve(process.cwd(), projectName)
146
147
 
148
+ if (existsSync(targetDir)) {
149
+ log.error(`Directory "${projectName}" already exists`)
150
+ return
151
+ }
152
+
147
153
  const copyFiles = createCopyFile(targetDir)
148
154
  const templateFile = createTemplateFile(projectName, options, targetDir)
149
155
 
@@ -230,7 +236,7 @@ async function createApp(projectName: string, options: Required<Options>) {
230
236
 
231
237
  // Setup tsconfig
232
238
  if (options.typescript) {
233
- await copyFiles(templateDirBase, ['./tsconfig.json', './tsconfig.dev.json'])
239
+ await copyFiles(templateDirBase, ['./tsconfig.json'])
234
240
  }
235
241
 
236
242
  // Setup the package.json file, optionally with typescript and tailwind
@@ -257,7 +263,15 @@ async function createApp(projectName: string, options: Required<Options>) {
257
263
  await execa(options.packageManager, ['install'], { cwd: targetDir })
258
264
  s.stop(`Installed dependencies`)
259
265
 
260
- outro(`Created your new TanStack app in ${targetDir}.`)
266
+ outro(`Created your new TanStack app in ${targetDir}.
267
+
268
+ Use the following commands to start your app:
269
+
270
+ % cd ${projectName}
271
+ % ${options.packageManager} start
272
+
273
+ Please read README.md for more information on testing, styling, adding routes, react-query, etc.
274
+ `)
261
275
  }
262
276
 
263
277
  program
@@ -61,7 +61,7 @@ With this set up you should be able to navigate to `/about` and see the about pa
61
61
  Of course you don't need to implement the About page in the `main.<%= jsx %>` file. You can create that component in another file and import it into the `main.<%= jsx %>` file, then use it in the `component` property of the `createRoute` call, like so:
62
62
 
63
63
  ```tsx
64
- import About from "./components/About";
64
+ import About from "./components/About.<%= jsx %>";
65
65
 
66
66
  const aboutRoute = createRoute({
67
67
  getParentRoute: () => rootRoute,
@@ -298,7 +298,7 @@ import { RouterProvider, createRouter } from "@tanstack/react-router";
298
298
  import { routeTree } from "./routeTree.gen";
299
299
 
300
300
  import "./styles.css";
301
- import reportWebVitals from "./reportWebVitals";
301
+ import reportWebVitals from "./reportWebVitals.<%= js %>";
302
302
 
303
303
  // Create a new router instance
304
304
  const router = createRouter({ routeTree });
@@ -4,7 +4,7 @@
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "start": "vite --port 3000",
7
- "build": "vite build && tsc --noEmit",
7
+ "build": "vite build && tsc",
8
8
  "serve": "vite preview",
9
9
  "test": "vitest run"
10
10
  },
@@ -1,6 +1,6 @@
1
1
  {
2
- "short_name": "React App",
3
- "name": "Create React App Sample",
2
+ "short_name": "TanStack App",
3
+ "name": "Create TanStack App Sample",
4
4
  "icons": [
5
5
  {
6
6
  "src": "favicon.ico",
@@ -1,6 +1,6 @@
1
1
  import { describe, expect, test } from "vitest";
2
2
  import { render, screen } from "@testing-library/react";
3
- import App from "./App";
3
+ import App from "./App.<%= jsx %>";
4
4
 
5
5
  describe("App", () => {
6
6
  test("renders", () => {
@@ -10,35 +10,34 @@
10
10
  .st1 {
11
11
  fill: #61dafb;
12
12
  }
13
-
14
- .st2 {
15
- fill: #61dafb;
16
- }
17
13
  </style>
18
14
  </defs>
19
- <circle class="st0" cx="420.7" cy="297.3" r="51"/>
20
- <path class="st2" d="M474.4,297.3c0,29.6-24,53.6-53.6,53.6s-53.6-24-53.6-53.6,24-53.6,53.6-53.6,53.6,24,53.6,53.6ZM379.5,296.1v-7.5c0-1.3,1.4-6.1,2.1-7.4,1.2-2.3,3.4-4.1,5.4-5.6l-4-4c4.7-4.3,11.1-4.4,16.2-.8,2.3-5.6,7.8-8.4,13.8-8l-1,5c7,.2,15.5,4.9,15.5,12.8s0,.6-.8.8c-2,.3-4-.5-5.9-.7s-1.4-.5-1.4.4,3,4.9,3.5,6.5,1.2,4.1,1,6.3c-6.6-1-12.4-3.8-17.5-8,.3,3.1,4.9,25.7,6.3,26s1-.7,1.2-1.3,1.5-7.5,1.5-8c0-1.2-2-2.1-2.6-3.3-1.4-3.2,1.5-5.6,4.4-3.9s6.2,7.4,8.9,8.6,15.4,1.7,17.6,3.9-3.4,5.4-1.8,9c8-3.1,16-3.9,24.4-3,3.7-11.5,3.7-24.1-1.1-35.3-8.6,0-17.4-4.3-20.4-12.8s-.8-10.2-1.5-11c-1-1.2-7.5.7-8.8-1.8s.3-1.3-.2-1.7-2.3-.7-3.1-.9c-30.8-7.6-60.8,18.6-58.9,49.9.1,1.9,1.9,12.2,2.8,13.2s5.7,0,7.5,0,4.4.4,5.9.6c3.4.5,8.5,2.9,11.1,3s2.9-1,3.2-2.8c.5-3.1.6-8.8.6-12s-1.2-9.3-1.5-13.7c-1.1-.2-.8,0-1.1.6-.8,1.6-1.3,3.8-2.3,5.7s-6.2,10.3-6.8,10.7-.8-.6-1-1c-1.9-4.2-2.4-9.4-2.3-14-1.1-1.2-6.4,5.8-8,6.3l-1-.5ZM462,273.3c1.3-1.4-7.1-10.5-8.5-11.8-3.6-3.2-6.4-5.3-4.2,1.7s6.8,9.2,12.6,10.1ZM409,265.8c-.5-.6-7.2,3.4-6.5,5.5,2.2-1.6,7-2,6.5-5.5ZM396.5,273.3c-.3-2.9-7.5-3.2-8.5-1.2s1.9,1.7,2.3,1.7c2.1.4,4.1-.7,6.2-.5ZM409.5,273.8c4.5,1.6,7.8,4.3,12.9,4.4s-.1-3.6-1.4-4.6c-2.6-2-6-2.9-9.2-2.8s-1.9-.4-1.7.5c3.3.7,8.6.8,10,4.5-2.7-.3-4.6-1.9-7.4-2.4s-3-.6-3.1.4ZM420.5,289.8c-1-6-6.8-12.8-12.9-13.8s-1.6-.5-1,.6,5.6,3.8,6.7,4.8,5.3,5,2.5,4.5-10-9.2-11.2-8c.2,1.1,1.3,2.3,2,3.2,3.5,4.5,8.2,8.1,14,8.8ZM390.5,277.3c-5.9,1.3-8.2,7.5-8,13,.8.9,5.9-4.5,6.4-5.3s3.2-5.4,1.3-4.7-3.4,5.2-5,5.5.2-2.5.5-3c1.3-1.9,3.4-3.7,4.7-5.5ZM396.5,279.3c-.5-.6-2.4,1.6-2.7,2-3.4,4.6-3.1,12.1-1.8,17.5.9.2,1-.3,1.4-.8,3.5-4.5,6.5-12.5,5.3-18.2-2.5,3.7-3.7,8.6-4.3,13h-1.5c0-4.8,2.2-9.1,3.5-13.5ZM428,308.3c.1-2-2-1.7-3-2.3s-1.6-2.2-3.5-1.7c1.6,2.5,3.5,3.8,6.5,4ZM416.5,311.3c9,.8,6.5-2.3,1.7-6.5-1.6-.4-1.8,5.3-1.7,6.5ZM440,312.8c-4.1-.4-9.3-2.4-13.3-2.5s-1.6,0-2.2.8c4.8,1.5,9.9,2,14.3,4.7l1.2-3ZM420.4,316.4c-8.7.1-17.9,4.4-24.2,10.4s-5.7,6.3-5.7,7.3c0,2.1,10.2,7.3,12.4,8.1,14.3,5.7,32.6,4.1,45.3-5s3.7-3.2.1-7.4c-6.7-7.8-17.4-13.5-27.8-13.4ZM394.5,321.3c-1.7-1.7-5.9-2.3-8.3-2.5s-6.3-.4-8.2.7l16.5,1.7ZM463.5,318.8h-8.8c-1.1,0-5.8,1.3-7.1,1.9s-1,.7.1.6c2.8-.1,6.1-1.2,9-1.5s4.1.2,6,0,1.6-.4.7-1Z"/>
21
- <path class="st0" d="M379.5,296.1l1,.5c1.6-.4,6.9-7.4,8-6.3-.1,4.6.4,9.8,2.3,14s.1,1.4,1,1,6.1-9.3,6.8-10.7,1.5-4.1,2.3-5.7,0-.8,1.1-.6c.3,4.5,1.4,9.3,1.5,13.7s0,8.9-.6,12-1.3,2.9-3.2,2.8-7.7-2.5-11.1-3-4.4-.6-5.9-.6-6.4,1.3-7.5,0-2.6-11.3-2.8-13.2c-1.8-31.3,28.1-57.5,58.9-49.9s2.6.5,3.1.9,0,1.2.2,1.7c1.3,2.4,7.7.6,8.8,1.8s.5,8.2,1.5,11c3,8.5,11.8,12.9,20.4,12.8,4.7,11.2,4.8,23.8,1.1,35.3-8.5-.8-16.5,0-24.4,3-1.6-3.7,4.9-6,1.8-9s-14-2.2-17.6-3.9-6.4-7.2-8.9-8.6-5.8.7-4.4,3.9,2.5,2.1,2.6,3.3-1.2,7.3-1.5,8-.3,1.5-1.2,1.3c-1.3-.3-5.9-22.9-6.3-26,5.1,4.2,10.9,7,17.5,8,.2-2.2-.3-4.2-1-6.3s-3.5-6.1-3.5-6.5c0-.9,1.1-.4,1.4-.4,1.9.1,3.9,1,5.9.7s.8.3.8-.8c0-7.8-8.5-12.6-15.5-12.8l1-5c-6-.4-11.4,2.4-13.8,8-5.1-3.6-11.6-3.5-16.2.8l4,4c-2.1,1.5-4.2,3.3-5.4,5.6s-2.1,6.1-2.1,7.4v7.5ZM433.5,259.8c9.3,2.5,10.3-4.1.2-1.5l-.2,1.5ZM434.5,266.8c.4.7,7.6-.5,6.9-2.7s-5.4.7-6.7.7l-.2,2ZM437,272.8c1,1.4,6.7-2.1,6.5-3.2-.5-2.2-7.8,1.4-6.5,3.2ZM447,273.3c-1.1-1.1-5.9,3.3-5.5,4.7.7,2.8,6.8-3.5,5.5-4.7ZM449.6,277.4c-.3.2-3.7,5.4-1.8,5.9s4.1-4,4.2-4.8-1.6-1.5-2.4-1.1ZM454,286.3c2.5.9,4.5-6,2.7-6.5-2.2-.7-3.1,6.1-2.7,6.5ZM464,287.8c.6-2,1.3-5.6-1.2-6.5-1.2.3-.7,4.6-.7,5.7l.4.6,1.5.2Z"/>
22
- <path class="st0" d="M462,273.3c-5.9-.9-10.8-4.3-12.6-10.1s.6-4.8,4.2-1.7,9.8,10.3,8.5,11.8Z"/>
23
- <path class="st0" d="M420.5,289.8c-5.8-.7-10.5-4.3-14-8.8s-1.8-2.1-2-3.2c1.2-1.2,10.1,7.8,11.2,8,2.8.5-2.1-4.2-2.5-4.5-1.2-1-6.4-4.2-6.7-4.8-.5-1,.6-.6,1-.6,6.2,1,12,7.8,12.9,13.8Z"/>
24
- <path class="st0" d="M396.5,279.3c-1.3,4.4-3.6,8.7-3.5,13.5h1.5c.6-4.4,1.8-9.3,4.3-13,1.2,5.7-1.8,13.7-5.3,18.2s-.5,1-1.4.8c-1.3-5.3-1.6-12.8,1.8-17.5s2.2-2.6,2.7-2Z"/>
25
- <path class="st0" d="M409.5,273.8c.1-1,2.5-.5,3.1-.4,2.8.5,4.7,2,7.4,2.4-1.4-3.7-6.7-3.8-10-4.5-.1-.9,1.1-.5,1.7-.5,3.3,0,6.6.8,9.2,2.8s4.8,4.7,1.4,4.6c-5.1-.1-8.4-2.8-12.9-4.4Z"/>
26
- <path class="st0" d="M390.5,277.3c-1.3,1.9-3.5,3.6-4.7,5.5s-2.3,3.3-.5,3,3.3-4.8,5-5.5-1.1,4.3-1.3,4.7c-.5.8-5.6,6.2-6.4,5.3-.2-5.5,2.1-11.7,8-13Z"/>
27
- <path class="st0" d="M440,312.8l-1.2,3c-4.3-2.7-9.5-3.3-14.3-4.7.6-.8,1.3-.8,2.2-.8,4,.1,9.2,2.1,13.3,2.5Z"/>
28
- <path class="st0" d="M416.5,311.3c0-1.2.1-6.9,1.7-6.5,4.7,4.2,7.2,7.3-1.7,6.5Z"/>
29
- <path class="st0" d="M396.5,273.3c-2.1-.3-4.1.8-6.2.5s-2.7-1-2.3-1.7c1-1.9,8.2-1.7,8.5,1.2Z"/>
30
- <path class="st0" d="M409,265.8c.5,3.5-4.3,3.9-6.5,5.5-.7-2.1,5.9-6.1,6.5-5.5Z"/>
31
- <path class="st0" d="M428,308.3c-3-.2-4.9-1.5-6.5-4,2-.5,2.4,1,3.5,1.7s3.1.3,3,2.3Z"/>
32
- <path class="st2" d="M434.5,266.8l.2-2c1.3,0,6.1-2.6,6.7-.7s-6.5,3.4-6.9,2.7Z"/>
33
- <path class="st2" d="M433.5,259.8l.2-1.5c10-2.5,9.1,4-.2,1.5Z"/>
34
- <path class="st2" d="M437,272.8c-1.3-1.8,6-5.5,6.5-3.2s-5.5,4.7-6.5,3.2Z"/>
35
- <path class="st2" d="M447,273.3c1.3,1.3-4.7,7.6-5.5,4.7s4.4-5.8,5.5-4.7Z"/>
36
- <path class="st2" d="M449.6,277.4c.8-.5,2.5,0,2.4,1.1s-2.8,5.2-4.2,4.8,1.5-5.7,1.8-5.9Z"/>
37
- <path class="st2" d="M454,286.3c-.4-.4.5-7.2,2.7-6.5,1.7.5-.2,7.4-2.7,6.5Z"/>
38
- <path class="st2" d="M464,287.8l-1.5-.2-.4-.6c0-1.1-.5-5.4.7-5.7,2.5.9,1.8,4.5,1.2,6.5Z"/>
39
- <path class="st0" d="M420.4,316.4c10.5-.1,21.2,5.6,27.8,13.4s4.5,4.1-.1,7.4c-12.7,9.1-30.9,10.7-45.3,5-2.2-.9-12.4-6-12.4-8.1s4.7-6.3,5.7-7.3c6.3-5.9,15.5-10.2,24.2-10.4Z"/>
40
- <path class="st0" d="M394.5,321.3l-16.5-1.7c2-1.2,5.9-.9,8.2-.7s6.6.8,8.3,2.5Z"/>
41
- <path class="st0" d="M463.5,318.8c.8.6,0,.9-.7,1-1.9.2-4.1-.2-6,0-2.9.3-6.2,1.4-9,1.5s-1.3-.1-.1-.6,6-1.9,7.1-1.9h8.8Z"/>
42
- <path class="st2" d="M666.3,296.5c0-32.5-40.7-63.3-103.1-82.4,14.4-63.6,8-114.2-20.2-130.4-6.5-3.8-14.1-5.6-22.4-5.6v22.3c4.6,0,8.3.9,11.4,2.6,13.6,7.8,19.5,37.5,14.9,75.7-1.1,9.4-2.9,19.3-5.1,29.4-19.6-4.8-41-8.5-63.5-10.9-13.5-18.5-27.5-35.3-41.6-50,32.6-30.3,63.2-46.9,84-46.9v-22.3c-27.5,0-63.5,19.6-99.9,53.6-36.4-33.8-72.4-53.2-99.9-53.2v22.3c20.7,0,51.4,16.5,84,46.6-14,14.7-28,31.4-41.3,49.9-22.6,2.4-44,6.1-63.6,11-2.3-10-4-19.7-5.2-29-4.7-38.2,1.1-67.9,14.6-75.8,3-1.8,6.9-2.6,11.5-2.6v-22.3c-8.4,0-16,1.8-22.6,5.6-28.1,16.2-34.4,66.7-19.9,130.1-62.2,19.2-102.7,49.9-102.7,82.3s40.7,63.3,103.1,82.4c-14.4,63.6-8,114.2,20.2,130.4,6.5,3.8,14.1,5.6,22.5,5.6,27.5,0,63.5-19.6,99.9-53.6,36.4,33.8,72.4,53.2,99.9,53.2s16-1.8,22.6-5.6c28.1-16.2,34.4-66.7,19.9-130.1,62-19.1,102.5-49.9,102.5-82.3h0ZM536.1,229.8c-3.7,12.9-8.3,26.2-13.5,39.5-4.1-8-8.4-16-13.1-24-4.6-8-9.5-15.8-14.4-23.4,14.2,2.1,27.9,4.7,41,7.9h0ZM490.3,336.3c-7.8,13.5-15.8,26.3-24.1,38.2-14.9,1.3-30,2-45.2,2s-30.2-.7-45-1.9c-8.3-11.9-16.4-24.6-24.2-38-7.6-13.1-14.5-26.4-20.8-39.8,6.2-13.4,13.2-26.8,20.7-39.9,7.8-13.5,15.8-26.3,24.1-38.2,14.9-1.3,30-2,45.2-2s30.2.7,45,1.9c8.3,11.9,16.4,24.6,24.2,38,7.6,13.1,14.5,26.4,20.8,39.8-6.3,13.4-13.2,26.8-20.7,39.9h0ZM522.6,323.3c5.4,13.4,10,26.8,13.8,39.8-13.1,3.2-26.9,5.9-41.2,8,4.9-7.7,9.8-15.6,14.4-23.7,4.6-8,8.9-16.1,13-24.1h0ZM421.2,430c-9.3-9.6-18.6-20.3-27.8-32,9,.4,18.2.7,27.5.7s18.7-.2,27.8-.7c-9,11.7-18.3,22.4-27.5,32ZM346.8,371.1c-14.2-2.1-27.9-4.7-41-7.9,3.7-12.9,8.3-26.2,13.5-39.5,4.1,8,8.4,16,13.1,24s9.5,15.8,14.4,23.4ZM420.7,163c9.3,9.6,18.6,20.3,27.8,32-9-.4-18.2-.7-27.5-.7s-18.7.2-27.8.7c9-11.7,18.3-22.4,27.5-32ZM346.7,221.9c-4.9,7.7-9.8,15.6-14.4,23.7-4.6,8-8.9,16-13,24-5.4-13.4-10-26.8-13.8-39.8,13.1-3.1,26.9-5.8,41.2-7.9h0ZM256.2,347.1c-35.4-15.1-58.3-34.9-58.3-50.6s22.9-35.6,58.3-50.6c8.6-3.7,18-7,27.7-10.1,5.7,19.6,13.2,40,22.5,60.9-9.2,20.8-16.6,41.1-22.2,60.6-9.9-3.1-19.3-6.5-28-10.2h0ZM310,490c-13.6-7.8-19.5-37.5-14.9-75.7,1.1-9.4,2.9-19.3,5.1-29.4,19.6,4.8,41,8.5,63.5,10.9,13.5,18.5,27.5,35.3,41.6,50-32.6,30.3-63.2,46.9-84,46.9-4.5-.1-8.3-1-11.3-2.7h0ZM547.2,413.8c4.7,38.2-1.1,67.9-14.6,75.8-3,1.8-6.9,2.6-11.5,2.6-20.7,0-51.4-16.5-84-46.6,14-14.7,28-31.4,41.3-49.9,22.6-2.4,44-6.1,63.6-11,2.3,10.1,4.1,19.8,5.2,29.1ZM585.7,347.1c-8.6,3.7-18,7-27.7,10.1-5.7-19.6-13.2-40-22.5-60.9,9.2-20.8,16.6-41.1,22.2-60.6,9.9,3.1,19.3,6.5,28.1,10.2,35.4,15.1,58.3,34.9,58.3,50.6,0,15.7-23,35.6-58.4,50.6h0Z"/>
43
- <path class="st1" d="M520.5,78.1"/>
15
+ <g>
16
+ <path class="st1" d="M666.3,296.5c0-32.5-40.7-63.3-103.1-82.4,14.4-63.6,8-114.2-20.2-130.4-6.5-3.8-14.1-5.6-22.4-5.6v22.3c4.6,0,8.3.9,11.4,2.6,13.6,7.8,19.5,37.5,14.9,75.7-1.1,9.4-2.9,19.3-5.1,29.4-19.6-4.8-41-8.5-63.5-10.9-13.5-18.5-27.5-35.3-41.6-50,32.6-30.3,63.2-46.9,84-46.9v-22.3c-27.5,0-63.5,19.6-99.9,53.6-36.4-33.8-72.4-53.2-99.9-53.2v22.3c20.7,0,51.4,16.5,84,46.6-14,14.7-28,31.4-41.3,49.9-22.6,2.4-44,6.1-63.6,11-2.3-10-4-19.7-5.2-29-4.7-38.2,1.1-67.9,14.6-75.8,3-1.8,6.9-2.6,11.5-2.6v-22.3c-8.4,0-16,1.8-22.6,5.6-28.1,16.2-34.4,66.7-19.9,130.1-62.2,19.2-102.7,49.9-102.7,82.3s40.7,63.3,103.1,82.4c-14.4,63.6-8,114.2,20.2,130.4,6.5,3.8,14.1,5.6,22.5,5.6,27.5,0,63.5-19.6,99.9-53.6,36.4,33.8,72.4,53.2,99.9,53.2s16-1.8,22.6-5.6c28.1-16.2,34.4-66.7,19.9-130.1,62-19.1,102.5-49.9,102.5-82.3h0ZM536.1,229.8c-3.7,12.9-8.3,26.2-13.5,39.5-4.1-8-8.4-16-13.1-24-4.6-8-9.5-15.8-14.4-23.4,14.2,2.1,27.9,4.7,41,7.9h0ZM490.3,336.3c-7.8,13.5-15.8,26.3-24.1,38.2-14.9,1.3-30,2-45.2,2s-30.2-.7-45-1.9c-8.3-11.9-16.4-24.6-24.2-38-7.6-13.1-14.5-26.4-20.8-39.8,6.2-13.4,13.2-26.8,20.7-39.9,7.8-13.5,15.8-26.3,24.1-38.2,14.9-1.3,30-2,45.2-2s30.2.7,45,1.9c8.3,11.9,16.4,24.6,24.2,38,7.6,13.1,14.5,26.4,20.8,39.8-6.3,13.4-13.2,26.8-20.7,39.9h0ZM522.6,323.3c5.4,13.4,10,26.8,13.8,39.8-13.1,3.2-26.9,5.9-41.2,8,4.9-7.7,9.8-15.6,14.4-23.7,4.6-8,8.9-16.1,13-24.1h0ZM421.2,430c-9.3-9.6-18.6-20.3-27.8-32,9,.4,18.2.7,27.5.7s18.7-.2,27.8-.7c-9,11.7-18.3,22.4-27.5,32ZM346.8,371.1c-14.2-2.1-27.9-4.7-41-7.9,3.7-12.9,8.3-26.2,13.5-39.5,4.1,8,8.4,16,13.1,24s9.5,15.8,14.4,23.4ZM420.7,163c9.3,9.6,18.6,20.3,27.8,32-9-.4-18.2-.7-27.5-.7s-18.7.2-27.8.7c9-11.7,18.3-22.4,27.5-32ZM346.7,221.9c-4.9,7.7-9.8,15.6-14.4,23.7-4.6,8-8.9,16-13,24-5.4-13.4-10-26.8-13.8-39.8,13.1-3.1,26.9-5.8,41.2-7.9h0ZM256.2,347.1c-35.4-15.1-58.3-34.9-58.3-50.6s22.9-35.6,58.3-50.6c8.6-3.7,18-7,27.7-10.1,5.7,19.6,13.2,40,22.5,60.9-9.2,20.8-16.6,41.1-22.2,60.6-9.9-3.1-19.3-6.5-28-10.2h0ZM310,490c-13.6-7.8-19.5-37.5-14.9-75.7,1.1-9.4,2.9-19.3,5.1-29.4,19.6,4.8,41,8.5,63.5,10.9,13.5,18.5,27.5,35.3,41.6,50-32.6,30.3-63.2,46.9-84,46.9-4.5-.1-8.3-1-11.3-2.7h0ZM547.2,413.8c4.7,38.2-1.1,67.9-14.6,75.8-3,1.8-6.9,2.6-11.5,2.6-20.7,0-51.4-16.5-84-46.6,14-14.7,28-31.4,41.3-49.9,22.6-2.4,44-6.1,63.6-11,2.3,10.1,4.1,19.8,5.2,29.1ZM585.7,347.1c-8.6,3.7-18,7-27.7,10.1-5.7-19.6-13.2-40-22.5-60.9,9.2-20.8,16.6-41.1,22.2-60.6,9.9,3.1,19.3,6.5,28.1,10.2,35.4,15.1,58.3,34.9,58.3,50.6,0,15.7-23,35.6-58.4,50.6h0Z"/>
17
+ <circle class="st1" cx="420.9" cy="296.5" r="45.7"/>
18
+ <path class="st1" d="M520.5,78.1"/>
19
+ </g>
20
+ <circle class="st0" cx="420.8" cy="296.6" r="43"/>
21
+ <path class="st1" d="M466.1,296.6c0,25-20.2,45.2-45.2,45.2s-45.2-20.2-45.2-45.2,20.2-45.2,45.2-45.2,45.2,20.2,45.2,45.2ZM386,295.6v-6.3c0-1.1,1.2-5.1,1.8-6.2,1-1.9,2.9-3.5,4.6-4.7l-3.4-3.4c4-3.6,9.4-3.7,13.7-.7,1.9-4.7,6.6-7.1,11.6-6.7l-.8,4.2c5.9.2,13.1,4.1,13.1,10.8s0,.5-.7.7c-1.7.3-3.4-.4-5-.6s-1.2-.4-1.2.3,2.5,4.1,3,5.5,1,3.5.8,5.3c-5.6-.8-10.5-3.2-14.8-6.7.3,2.6,4.1,21.7,5.3,21.9s.8-.6,1-1.1,1.3-6.3,1.3-6.7c0-1-1.7-1.8-2.2-2.8-1.2-2.7,1.3-4.7,3.7-3.3s5.2,6.2,7.5,7.3,13,1.4,14.8,3.3-2.9,4.6-1.5,7.6c6.7-2.6,13.5-3.3,20.6-2.5,3.1-9.7,3.1-20.3-.9-29.8-7.3,0-14.7-3.6-17.2-10.8-2.5-7.2-.7-8.6-1.3-9.3-.8-1-6.3.6-7.4-1.5s.3-1.1-.2-1.4-1.9-.6-2.6-.8c-26-6.4-51.3,15.7-49.7,42.1,0,1.6,1.6,10.3,2.4,11.1s4.8,0,6.3,0,3.7.3,5,.5c2.9.4,7.2,2.4,9.4,2.5s2.4-.8,2.7-2.4c.4-2.6.5-7.4.5-10.1s-1-7.8-1.3-11.6c-.9-.2-.7,0-.9.5-.7,1.3-1.1,3.2-1.9,4.8s-5.2,8.7-5.7,9-.7-.5-.8-.8c-1.6-3.5-2-7.9-1.9-11.8-.9-1-5.4,4.9-6.7,5.3l-.8-.4v-.3h-.2ZM455.6,276.4c1.1-1.2-6-8.9-7.2-10-3-2.7-5.4-4.5-3.5,1.4s5.7,7.8,10.6,8.5h.1ZM410.9,270.1c-.4-.5-6.1,2.9-5.5,4.6,1.9-1.3,5.9-1.7,5.5-4.6ZM400.4,276.4c-.3-2.4-6.3-2.7-7.2-1s1.6,1.4,1.9,1.4c1.8.3,3.5-.6,5.2-.4h.1ZM411.3,276.8c3.8,1.3,6.6,3.6,10.9,3.7s0-3-1.2-3.9c-2.2-1.7-5.1-2.4-7.8-2.4s-1.6-.3-1.4.4c2.8.6,7.3.7,8.4,3.8-2.3-.3-3.9-1.6-6.2-2s-2.5-.5-2.6.3h0ZM420.6,290.3c-.8-5.1-5.7-10.8-10.9-11.6s-1.3-.4-.8.5,4.7,3.2,5.7,4,4.5,4.2,2.1,3.8-8.4-7.8-9.4-6.7c.2.9,1.1,1.9,1.7,2.7,3,3.8,6.9,6.8,11.8,7.4h-.2ZM395.3,279.8c-5,1.1-6.9,6.3-6.7,11,.7.8,5-3.8,5.4-4.5s2.7-4.6,1.1-4-2.9,4.4-4.2,4.6.2-2.1.4-2.5c1.1-1.6,2.9-3.1,4-4.6h0ZM400.4,281.5c-.4-.5-2,1.3-2.3,1.7-2.9,3.9-2.6,10.2-1.5,14.8.8.2.8-.3,1.2-.7,3-3.8,5.5-10.5,4.5-15.4-2.1,3.1-3.1,7.3-3.6,11h-1.3c0-4,1.9-7.7,3-11.4h0ZM426.9,305.9c0-1.7-1.7-1.4-2.5-1.9s-1.3-1.9-3-1.4c1.3,2.1,3,3.2,5.5,3.4h0ZM417.2,308.5c7.6.7,5.5-1.9,1.4-5.5-1.3-.3-1.5,4.5-1.4,5.5ZM437,309.7c-3.5-.3-7.8-2-11.2-2.1s-1.3,0-1.9.7c4,1.3,8.4,1.7,12.1,4l1-2.5h0ZM420.5,312.8c-7.3,0-15.1,3.7-20.4,8.8s-4.8,5.3-4.8,6.2c0,1.8,8.6,6.2,10.5,6.8,12.1,4.8,27.5,3.5,38.2-4.2s3.1-2.7,0-6.2c-5.7-6.6-14.7-11.4-23.4-11.3h-.1ZM398.7,316.9c-1.4-1.4-5-1.9-7-2.1s-5.3-.3-6.9.6l13.9,1.4h0ZM456.9,314.8h-7.4c-.9,0-4.9,1.1-6,1.6s-.8.6,0,.5c2.4,0,5.1-1,7.6-1.3s3.5.2,5.1,0,1.3-.3.6-.8h0Z"/>
22
+ <path class="st0" d="M386,295.6l.8.4c1.3-.3,5.8-6.2,6.7-5.3,0,3.9.3,8.3,1.9,11.8s0,1.2.8.8,5.1-7.8,5.7-9,1.3-3.5,1.9-4.8,0-.7.9-.5c.3,3.8,1.2,7.8,1.3,11.6s0,7.5-.5,10.1-1.1,2.4-2.7,2.4-6.5-2.1-9.4-2.5-3.7-.5-5-.5-5.4,1.1-6.3,0-2.2-9.5-2.4-11.1c-1.5-26.4,23.7-48.5,49.7-42.1s2.2.4,2.6.8,0,1,.2,1.4c1.1,2,6.5.5,7.4,1.5s.4,6.9,1.3,9.3c2.5,7.2,10,10.9,17.2,10.8,4,9.4,4,20.1.9,29.8-7.2-.7-13.9,0-20.6,2.5-1.3-3.1,4.1-5.1,1.5-7.6s-11.8-1.9-14.8-3.3-5.4-6.1-7.5-7.3-4.9.6-3.7,3.3,2.1,1.8,2.2,2.8-1,6.2-1.3,6.7-.3,1.3-1,1.1c-1.1-.3-5-19.3-5.3-21.9,4.3,3.5,9.2,5.9,14.8,6.7.2-1.9-.3-3.5-.8-5.3s-3-5.1-3-5.5c0-.8.9-.3,1.2-.3,1.6,0,3.3.8,5,.6s.7.3.7-.7c0-6.6-7.2-10.6-13.1-10.8l.8-4.2c-5.1-.3-9.6,2-11.6,6.7-4.3-3-9.8-3-13.7.7l3.4,3.4c-1.8,1.3-3.5,2.8-4.6,4.7s-1.8,5.1-1.8,6.2v6.6h.2ZM431.6,265c7.8,2.1,8.7-3.5.2-1.3l-.2,1.3ZM432.4,270.9c.3.6,6.4-.4,5.8-2.3s-4.6.6-5.7.6l-.2,1.7h.1ZM434.5,276c.8,1.2,5.7-1.8,5.5-2.7-.4-1.9-6.6,1.2-5.5,2.7ZM442.9,276.4c-.9-.9-5,2.8-4.6,4,.6,2.4,5.7-3,4.6-4ZM445.1,279.9c-.3.2-3.1,4.6-1.5,5s3.5-3.4,3.5-4-1.3-1.3-2-.9h0ZM448.9,287.4c2.1.8,3.8-5.1,2.3-5.5-1.9-.6-2.6,5.1-2.3,5.5ZM457.3,288.6c.5-1.7,1.1-4.7-1-5.5-1,.3-.6,3.9-.6,4.8l.3.5,1.3.2h0Z"/>
23
+ <path class="st0" d="M455.6,276.4c-5-.8-9.1-3.6-10.6-8.5s.5-4,3.5-1.4,8.3,8.7,7.2,10h-.1Z"/>
24
+ <path class="st0" d="M420.6,290.3c-4.9-.6-8.9-3.6-11.8-7.4s-1.5-1.8-1.7-2.7c1-1,8.5,6.6,9.4,6.7,2.4.4-1.8-3.5-2.1-3.8-1-.8-5.4-3.5-5.7-4-.4-.8.5-.5.8-.5,5.2.8,10.1,6.6,10.9,11.6h.2Z"/>
25
+ <path class="st0" d="M400.4,281.5c-1.1,3.7-3,7.3-3,11.4h1.3c.5-3.7,1.5-7.8,3.6-11,1,4.8-1.5,11.6-4.5,15.4s-.4.8-1.2.7c-1.1-4.5-1.3-10.8,1.5-14.8s1.9-2.2,2.3-1.7h0Z"/>
26
+ <path class="st0" d="M411.3,276.8c0-.8,2.1-.4,2.6-.3,2.4.4,4,1.7,6.2,2-1.2-3.1-5.7-3.2-8.4-3.8,0-.8.9-.4,1.4-.4,2.8,0,5.6.7,7.8,2.4,2.2,1.7,4,4,1.2,3.9-4.3,0-7.1-2.4-10.9-3.7h0Z"/>
27
+ <path class="st0" d="M395.3,279.8c-1.1,1.6-3,3-4,4.6s-1.9,2.8-.4,2.5,2.8-4,4.2-4.6-.9,3.6-1.1,4c-.4.7-4.7,5.2-5.4,4.5-.2-4.6,1.8-9.9,6.7-11h0Z"/>
28
+ <path class="st0" d="M437,309.7l-1,2.5c-3.6-2.3-8-2.8-12.1-4,.5-.7,1.1-.7,1.9-.7,3.4,0,7.8,1.8,11.2,2.1h0Z"/>
29
+ <path class="st0" d="M417.2,308.5c0-1,0-5.8,1.4-5.5,4,3.5,6.1,6.2-1.4,5.5Z"/>
30
+ <path class="st0" d="M400.4,276.4c-1.8-.3-3.5.7-5.2.4s-2.3-.8-1.9-1.4c.8-1.6,6.9-1.4,7.2,1h-.1Z"/>
31
+ <path class="st0" d="M410.9,270.1c.4,3-3.6,3.3-5.5,4.6-.6-1.8,5-5.1,5.5-4.6Z"/>
32
+ <path class="st0" d="M426.9,305.9c-2.5-.2-4.1-1.3-5.5-3.4,1.7-.4,2,.8,3,1.4s2.6.3,2.5,1.9h0Z"/>
33
+ <path class="st1" d="M432.4,270.9l.2-1.7c1.1,0,5.1-2.2,5.7-.6s-5.5,2.9-5.8,2.3h-.1Z"/>
34
+ <path class="st1" d="M431.6,265l.2-1.3c8.4-2.1,7.7,3.4-.2,1.3Z"/>
35
+ <path class="st1" d="M434.5,276c-1.1-1.5,5.1-4.6,5.5-2.7s-4.6,4-5.5,2.7Z"/>
36
+ <path class="st1" d="M442.9,276.4c1.1,1.1-4,6.4-4.6,4s3.7-4.9,4.6-4Z"/>
37
+ <path class="st1" d="M445.1,279.9c.7-.4,2.1,0,2,.9s-2.4,4.4-3.5,4,1.3-4.8,1.5-5h0Z"/>
38
+ <path class="st1" d="M448.9,287.4c-.3-.3.4-6.1,2.3-5.5,1.4.4-.2,6.2-2.3,5.5Z"/>
39
+ <path class="st1" d="M457.3,288.6l-1.3-.2-.3-.5c0-.9-.4-4.6.6-4.8,2.1.8,1.5,3.8,1,5.5h0Z"/>
40
+ <path class="st0" d="M420.5,312.8c8.9,0,17.9,4.7,23.4,11.3,5.6,6.6,3.8,3.5,0,6.2-10.7,7.7-26.1,9-38.2,4.2-1.9-.8-10.5-5.1-10.5-6.8s4-5.3,4.8-6.2c5.3-5,13.1-8.6,20.4-8.8h.1Z"/>
41
+ <path class="st0" d="M398.7,316.9l-13.9-1.4c1.7-1,5-.8,6.9-.6s5.6.7,7,2.1h0Z"/>
42
+ <path class="st0" d="M456.9,314.8c.7.5,0,.8-.6.8-1.6.2-3.5-.2-5.1,0-2.4.3-5.2,1.2-7.6,1.3s-1.1,0,0-.5,5.1-1.6,6-1.6h7.4,0Z"/>
44
43
  </svg>
@@ -1,10 +1,24 @@
1
1
  {
2
+ "include": ["**/*.ts", "**/*.tsx"],
2
3
  "compilerOptions": {
3
- "strict": true,
4
- "types": ["vite/client", "node"],
5
- "esModuleInterop": true,
4
+ "target": "ES2022",
6
5
  "jsx": "react-jsx",
7
- "lib": ["DOM", "DOM.Iterable", "ES2022"],
8
- "skipLibCheck": true
6
+ "module": "ESNext",
7
+ "lib": ["ES2022", "DOM", "DOM.Iterable"],
8
+ "types": ["vite/client"],
9
+
10
+ /* Bundler mode */
11
+ "moduleResolution": "bundler",
12
+ "allowImportingTsExtensions": true,
13
+ "verbatimModuleSyntax": true,
14
+ "noEmit": true,
15
+
16
+ /* Linting */
17
+ "skipLibCheck": true,
18
+ "strict": true,
19
+ "noUnusedLocals": true,
20
+ "noUnusedParameters": true,
21
+ "noFallthroughCasesInSwitch": true,
22
+ "noUncheckedSideEffectImports": true
9
23
  }
10
24
  }
@@ -10,9 +10,9 @@ import {
10
10
  import { TanStackRouterDevtools } from "@tanstack/router-devtools";
11
11
 
12
12
  import "./styles.css";
13
- import reportWebVitals from "./reportWebVitals";
13
+ import reportWebVitals from "./reportWebVitals.<%= js %>";
14
14
 
15
- import App from "./App";
15
+ import App from "./App.<%= jsx %>";
16
16
 
17
17
  const rootRoute = createRootRoute({
18
18
  component: () => (
@@ -6,7 +6,7 @@ import { RouterProvider, createRouter } from "@tanstack/react-router";
6
6
  import { routeTree } from "./routeTree.gen";
7
7
 
8
8
  import "./styles.css";
9
- import reportWebVitals from "./reportWebVitals";
9
+ import reportWebVitals from "./reportWebVitals.<%= js %>";
10
10
 
11
11
  // Create a new router instance
12
12
  const router = createRouter({ routeTree });
@@ -1,10 +0,0 @@
1
- {
2
- "composite": true,
3
- "extends": "../../../tsconfig.base.json",
4
-
5
- "files": ["src/main.tsx"],
6
- "include": [
7
- "src"
8
- // "__tests__/**/*.test.*"
9
- ]
10
- }