create-secra 1.0.1 → 1.0.3

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.
Files changed (43) hide show
  1. package/README.md +15 -5
  2. package/README.zh-CN.md +15 -4
  3. package/bin/index.mjs +9 -15
  4. package/package.json +2 -2
  5. package/template/{apps/core/index.html → index.html} +2 -3
  6. package/template/package.json +11 -47
  7. package/template/src/App.tsx +48 -0
  8. package/template/src/main.tsx +36 -0
  9. package/template/src/styles.css +163 -0
  10. package/template/src/vite-env.d.ts +1 -0
  11. package/template/tsconfig.app.json +0 -5
  12. package/template/tsconfig.node.json +0 -5
  13. package/template/vite.config.ts +6 -0
  14. package/template/apps/core/package.json +0 -18
  15. package/template/apps/core/public/favicon.ico +0 -1
  16. package/template/apps/core/public/favicon.svg +0 -1
  17. package/template/apps/core/public/logo.svg +0 -1
  18. package/template/apps/core/src/assets/react.svg +0 -1
  19. package/template/apps/core/src/main.tsx +0 -35
  20. package/template/apps/core/src/pages/index.tsx +0 -84
  21. package/template/apps/core/src/router.ts +0 -19
  22. package/template/apps/core/src/types/auto-imports.d.ts +0 -130
  23. package/template/apps/core/tsconfig.app.json +0 -7
  24. package/template/apps/core/tsconfig.json +0 -7
  25. package/template/apps/core/tsconfig.node.json +0 -7
  26. package/template/apps/core/vite.config.ts +0 -86
  27. package/template/eslint.config.js +0 -23
  28. package/template/packages/sdk/.swcrc +0 -18
  29. package/template/packages/sdk/package-lock.json +0 -1621
  30. package/template/packages/sdk/package.json +0 -35
  31. package/template/packages/sdk/src/build/index.ts +0 -33
  32. package/template/packages/sdk/src/build/plugins/auto-import.ts +0 -47
  33. package/template/packages/sdk/src/build/plugins/bundle-analyzer.ts +0 -35
  34. package/template/packages/sdk/src/build/plugins/remove-console.ts +0 -21
  35. package/template/packages/sdk/src/build/plugins/unocss.ts +0 -113
  36. package/template/packages/sdk/src/build/plugins/unplugin-icon.ts +0 -43
  37. package/template/packages/sdk/src/index.ts +0 -1
  38. package/template/packages/sdk/src/request/index.ts +0 -341
  39. package/template/packages/sdk/src/styles/reset.css +0 -111
  40. package/template/packages/sdk/tsconfig.json +0 -16
  41. package/template/pnpm-lock.yaml +0 -8034
  42. package/template/pnpm-workspace.yaml +0 -3
  43. package/template/turbo.json +0 -17
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # create-secra
2
2
 
3
- Bootstrap a Secra frontend project from a built-in local template.
3
+ Bootstrap a minimal Secra frontend project from a built-in local template.
4
4
 
5
5
  [中文文档](./README.zh-CN.md)
6
6
 
@@ -18,9 +18,14 @@ or
18
18
  npm create secra@latest my-app
19
19
  ```
20
20
 
21
+ ## Built-in Templates
22
+
23
+ - `template/`: minimal `Vite + React + @vlian/framework` welcome page.
24
+ - `antd-adapter-template/`: Ant Design starter with the existing adapter example.
25
+
21
26
  ## Template Behavior
22
27
 
23
- - Default template source: local `template/` directory in this package.
28
+ - You can choose between the two built-in templates in the interactive prompt.
24
29
  - No git clone / degit is used.
25
30
  - Template copy excludes these directories:
26
31
  - `node_modules`
@@ -28,7 +33,6 @@ npm create secra@latest my-app
28
33
  - `.turbo`
29
34
  - `.git`
30
35
  - The generated project's root `package.json` `name` is automatically updated from your target directory name.
31
- - After scaffolding, dependencies are installed automatically with your detected package manager (`pnpm`/`yarn`/`bun`/`npm`).
32
36
 
33
37
  ## Override Template Source
34
38
 
@@ -38,7 +42,13 @@ You can temporarily point to another local template path:
38
42
  SECRA_TEMPLATE=/absolute/path/to/template pnpm create secra my-app
39
43
  ```
40
44
 
41
- Use the built-in antd adapter template:
45
+ Use the built-in minimal template explicitly:
46
+
47
+ ```bash
48
+ SECRA_TEMPLATE_NAME=template pnpm create secra my-app
49
+ ```
50
+
51
+ Use the built-in antd adapter template explicitly:
42
52
 
43
53
  ```bash
44
54
  SECRA_TEMPLATE_NAME=antd-adapter-template pnpm create secra my-app
@@ -46,7 +56,7 @@ SECRA_TEMPLATE_NAME=antd-adapter-template pnpm create secra my-app
46
56
 
47
57
  ## Maintain the Built-in Template
48
58
 
49
- If you want to refresh `template/` from another project (for example `secra-front`), copy files with excludes:
59
+ If you want to refresh `template/` from another project, copy files with excludes:
50
60
 
51
61
  ```bash
52
62
  rsync -a --delete \
package/README.zh-CN.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # create-secra
2
2
 
3
- 基于内置本地模板快速创建 Secra 前端项目。
3
+ 基于内置本地模板快速创建一个最简 Secra 前端项目。
4
4
 
5
5
  [English README](./README.md)
6
6
 
@@ -18,9 +18,15 @@ pnpm create secra my-app
18
18
  npm create secra@latest my-app
19
19
  ```
20
20
 
21
+ ## 内置模板
22
+
23
+ - `template/`:最简 `Vite + React + @vlian/framework` 欢迎页模板。
24
+ - `antd-adapter-template/`:保留现有 Ant Design 适配版模板。
25
+
21
26
  ## Template 功能说明
22
27
 
23
28
  - 默认模板来源:当前包内的 `template/` 目录。
29
+ - 交互模式下可在两个内置模板之间进行选择。
24
30
  - 不使用 git clone / degit 拉取远程仓库。
25
31
  - 复制模板时会自动排除以下目录:
26
32
  - `node_modules`
@@ -28,7 +34,6 @@ npm create secra@latest my-app
28
34
  - `.turbo`
29
35
  - `.git`
30
36
  - 创建项目时会根据目标目录名自动更新根目录 `package.json` 的 `name` 字段。
31
- - 脚手架复制完成后,会自动根据当前环境识别包管理器并安装依赖(`pnpm`/`yarn`/`bun`/`npm`)。
32
37
 
33
38
  ## 临时覆盖模板目录
34
39
 
@@ -38,7 +43,13 @@ npm create secra@latest my-app
38
43
  SECRA_TEMPLATE=/absolute/path/to/template pnpm create secra my-app
39
44
  ```
40
45
 
41
- 使用内置 antd 适配模板:
46
+ 显式使用内置纯净模板:
47
+
48
+ ```bash
49
+ SECRA_TEMPLATE_NAME=template pnpm create secra my-app
50
+ ```
51
+
52
+ 显式使用内置 antd 模板:
42
53
 
43
54
  ```bash
44
55
  SECRA_TEMPLATE_NAME=antd-adapter-template pnpm create secra my-app
@@ -46,7 +57,7 @@ SECRA_TEMPLATE_NAME=antd-adapter-template pnpm create secra my-app
46
57
 
47
58
  ## 维护内置模板
48
59
 
49
- 如果你想从其他项目(例如 `secra-front`)更新 `template/`,可执行:
60
+ 如果你想从其他项目更新 `template/`,可执行:
50
61
 
51
62
  ```bash
52
63
  rsync -a --delete \
package/bin/index.mjs CHANGED
@@ -12,23 +12,22 @@ const ANT_DESIGN_ADAPTER_TEMPLATE = path.resolve(__dirname, "../antd-adapter-tem
12
12
  const TEMPLATE_OPTIONS = [
13
13
  {
14
14
  key: "1",
15
- label: "最小可用版本",
15
+ label: "纯净版",
16
16
  templatePath: DEFAULT_TEMPLATE,
17
17
  templateName: "template",
18
- nextSteps: (manager, targetDir) => [
19
- ` cd ${targetDir}`,
18
+ nextSteps: (manager, cwd) => [
19
+ ` cd ${cwd}`,
20
20
  ` ${manager === "yarn" ? "yarn" : `${manager} install`}`,
21
- " pnpm -r --filter \"./packages/*\" build",
22
- " pnpm dev",
21
+ ` ${manager} dev`,
23
22
  ],
24
23
  },
25
24
  {
26
25
  key: "2",
27
- label: "antd UI 适配器版本",
26
+ label: "Ant Design ",
28
27
  templatePath: ANT_DESIGN_ADAPTER_TEMPLATE,
29
28
  templateName: "antd-adapter-template",
30
- nextSteps: (manager, targetDir) => [
31
- ` cd ${targetDir}`,
29
+ nextSteps: (manager, cwd) => [
30
+ ` cd ${cwd}`,
32
31
  ` ${manager === "yarn" ? "yarn" : `${manager} install`}`,
33
32
  ` ${manager} dev`,
34
33
  ],
@@ -97,7 +96,7 @@ function detectPackageManager(projectRoot) {
97
96
 
98
97
  async function promptTemplateSelection() {
99
98
  const renderMenu = (selectedIndex) => {
100
- const lines = ["[create-secra] 请选择初始化版本(↑/↓ 切换,Enter 确认):"];
99
+ const lines = ["[create-secra] 请选择初始化模板(↑/↓ 切换,Enter 确认):"];
101
100
  for (let i = 0; i < TEMPLATE_OPTIONS.length; i += 1) {
102
101
  const option = TEMPLATE_OPTIONS[i];
103
102
  const prefix = i === selectedIndex ? "❯" : " ";
@@ -138,7 +137,7 @@ async function promptTemplateSelection() {
138
137
  cleanup();
139
138
  clearRenderedMenu();
140
139
  const selected = TEMPLATE_OPTIONS[selectedIndex] ?? TEMPLATE_OPTIONS[0];
141
- stdout.write(`[create-secra] 请选择初始化版本:${selected.label}\n`);
140
+ stdout.write(`[create-secra] 已选择模板:${selected.label}\n`);
142
141
  resolve(selected);
143
142
  };
144
143
 
@@ -181,7 +180,6 @@ async function resolveTemplate() {
181
180
  if (templateFromEnv) {
182
181
  return {
183
182
  template: templateFromEnv,
184
- selectedName: templateName || "custom",
185
183
  selectedLabel: templateName || "自定义模板",
186
184
  nextSteps: null,
187
185
  };
@@ -192,7 +190,6 @@ async function resolveTemplate() {
192
190
  if (matchedByName) {
193
191
  return {
194
192
  template: matchedByName.templatePath,
195
- selectedName: matchedByName.templateName,
196
193
  selectedLabel: matchedByName.label,
197
194
  nextSteps: matchedByName.nextSteps,
198
195
  };
@@ -203,7 +200,6 @@ async function resolveTemplate() {
203
200
  if (matchedByArg) {
204
201
  return {
205
202
  template: matchedByArg.templatePath,
206
- selectedName: matchedByArg.templateName,
207
203
  selectedLabel: matchedByArg.label,
208
204
  nextSteps: matchedByArg.nextSteps,
209
205
  };
@@ -213,7 +209,6 @@ async function resolveTemplate() {
213
209
  const fallback = TEMPLATE_OPTIONS[0];
214
210
  return {
215
211
  template: fallback.templatePath,
216
- selectedName: fallback.templateName,
217
212
  selectedLabel: fallback.label,
218
213
  nextSteps: fallback.nextSteps,
219
214
  };
@@ -222,7 +217,6 @@ async function resolveTemplate() {
222
217
  const selected = await promptTemplateSelection();
223
218
  return {
224
219
  template: selected.templatePath,
225
- selectedName: selected.templateName,
226
220
  selectedLabel: selected.label,
227
221
  nextSteps: selected.nextSteps,
228
222
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-secra",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "Create a Secra project from the official template.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -17,7 +17,7 @@
17
17
  "scaffold"
18
18
  ],
19
19
  "scripts": {
20
-
20
+ "prepublishOnly": "npm version patch --no-git-tag-version"
21
21
  },
22
22
  "license": "MIT"
23
23
  }
@@ -1,10 +1,9 @@
1
1
  <!doctype html>
2
- <html lang="en">
2
+ <html lang="zh-CN">
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
- <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
6
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
- <title>core</title>
6
+ <title>Secra App</title>
8
7
  </head>
9
8
  <body>
10
9
  <div id="root"></div>
@@ -1,64 +1,28 @@
1
1
  {
2
- "name": "secra-plugins-front",
2
+ "name": "secra-app",
3
3
  "private": true,
4
4
  "version": "0.0.1",
5
- "packageManager": "pnpm@9.12.3",
5
+ "type": "module",
6
+ "packageManager": "pnpm@10.27.0",
6
7
  "scripts": {
7
- "build:packages": "pnpm -r --filter \"./packages/*\" build",
8
- "prebuild": "pnpm run build:packages",
9
- "predev": "pnpm run build:packages",
10
- "build": "turbo run build",
11
- "dev": "turbo run dev",
12
- "lint": "turbo run lint",
13
- "test": "turbo run test",
14
- "clean:node_modules": "find . -type d -name 'node_modules' -prune -exec rm -rf '{}' +"
8
+ "dev": "vite",
9
+ "build": "tsc -b && vite build",
10
+ "preview": "vite preview",
11
+ "typecheck": "tsc -b --pretty false"
15
12
  },
16
13
  "dependencies": {
17
- "@ant-design/icons": "^6.1.0",
18
14
  "@vlian/framework": "^2.0.3",
19
15
  "@vlian/logger": "^0.1.1",
20
- "@vlian/sdk": "workspace:*",
21
16
  "@vlian/utils": "^2.0.1",
22
- "ahooks": "^3.8.5",
23
- "antd": "^5.29.3",
24
- "i18next": "^25.7.4",
25
- "immer": "^10.1.3",
26
- "ky": "^1.14.2",
27
- "lodash": "^4.17.21",
28
17
  "react": "^19.2.0",
29
- "react-dom": "^19.2.0",
30
- "react-i18next": "^15.7.4",
31
- "react-router-dom": "^7.8.2"
18
+ "react-dom": "^19.2.0"
32
19
  },
33
20
  "devDependencies": {
34
- "@eslint/js": "^9.39.1",
35
- "@iconify/utils": "^3.1.0",
36
- "@types/lodash": "^4.17.21",
37
21
  "@types/node": "^24.10.1",
38
- "@types/react": "^19.2.5",
22
+ "@types/react": "^19.2.7",
39
23
  "@types/react-dom": "^19.2.3",
40
- "@unocss/core": "^66.6.0",
41
- "@unocss/preset-attributify": "^66.6.0",
42
- "@unocss/preset-icons": "^66.6.0",
43
- "@unocss/preset-uno": "^66.6.0",
44
- "@unocss/transformer-directives": "^66.6.0",
45
- "@unocss/transformer-variant-group": "^66.6.0",
46
- "@unocss/vite": "^66.6.0",
47
24
  "@vitejs/plugin-react": "^5.1.1",
48
- "eslint": "^9.39.1",
49
- "eslint-plugin-react-hooks": "^7.0.1",
50
- "eslint-plugin-react-refresh": "^0.4.24",
51
- "globals": "^16.5.0",
52
- "gogocode": "^1.0.53",
53
- "rollup-plugin-visualizer": "^5.14.0",
54
- "turbo": "^2.7.5",
55
- "typescript": "~5.9.3",
56
- "typescript-eslint": "^8.46.4",
57
- "unplugin-auto-import": "^0.17.8",
58
- "unplugin-icons": "^0.20.1",
59
- "vite": "npm:rolldown-vite@7.2.5",
60
- "vite-plugin-inspect": "^11.3.3",
61
- "vite-plugin-remove-console": "^1.3.0",
62
- "vite-plugin-svg-icons": "^2.0.1"
25
+ "typescript": "^5.9.3",
26
+ "vite": "npm:rolldown-vite@7.2.5"
63
27
  }
64
28
  }
@@ -0,0 +1,48 @@
1
+ const featureCards = [
2
+ {
3
+ title: "Vite",
4
+ description: "保持开发体验足够轻,默认就是本地启动、热更新和生产构建。",
5
+ },
6
+ {
7
+ title: "React 19",
8
+ description: "欢迎页只保留一个根组件,后续你可以按业务模块继续拆分页面和组件。",
9
+ },
10
+ {
11
+ title: "@vlian/framework",
12
+ description: "模板通过 kernel 启动应用,只保留最基础的运行时入口,不预置路由、请求和 UI 框架。",
13
+ },
14
+ ];
15
+
16
+ export function App() {
17
+ return (
18
+ <main className="page-shell">
19
+ <section className="hero-panel">
20
+ <p className="eyebrow">Secra Minimal Starter</p>
21
+ <h1>Vite + React + @vlian/framework</h1>
22
+ <p className="hero-copy">
23
+ 这是一个最简欢迎页模板,适合从零开始搭建 Secra 应用。当前只保留 kernel 启动、React 渲染和一层基础样式。
24
+ </p>
25
+
26
+ <div className="hero-actions">
27
+ <a className="primary-link" href="https://vite.dev/" target="_blank" rel="noreferrer">
28
+ 查看 Vite
29
+ </a>
30
+ <a className="secondary-link" href="https://react.dev/" target="_blank" rel="noreferrer">
31
+ 查看 React
32
+ </a>
33
+ </div>
34
+ </section>
35
+
36
+ <section className="content-grid" aria-label="Template introduction">
37
+ {featureCards.map((item) => (
38
+ <article key={item.title} className="feature-card">
39
+ <p className="feature-title">{item.title}</p>
40
+ <p className="feature-description">{item.description}</p>
41
+ </article>
42
+ ))}
43
+ </section>
44
+
45
+
46
+ </main>
47
+ );
48
+ }
@@ -0,0 +1,36 @@
1
+ import { StrictMode } from "react";
2
+ import { createRoot } from "react-dom/client";
3
+ import { kernelStartApp, type KernelRenderContext } from "@vlian/framework/kernel";
4
+ import { LogLevel } from "@vlian/logger";
5
+ import { App } from "./App";
6
+ import "./styles.css";
7
+
8
+ const container = document.getElementById("root");
9
+
10
+ if (!container) {
11
+ throw new Error("Root container #root was not found.");
12
+ }
13
+
14
+ const root = createRoot(container);
15
+
16
+ async function startApp() {
17
+ await kernelStartApp(
18
+ {
19
+ config: {
20
+ logger: {
21
+ level: import.meta.env.PROD ? LogLevel.INFO : LogLevel.DEBUG,
22
+ },
23
+ },
24
+ render: (_context: KernelRenderContext) => {
25
+ root.render(
26
+ <StrictMode>
27
+ <App />
28
+ </StrictMode>,
29
+ );
30
+ },
31
+ },
32
+ "secra-starter",
33
+ );
34
+ }
35
+
36
+ void startApp();
@@ -0,0 +1,163 @@
1
+ :root {
2
+ color-scheme: light;
3
+ font-family: "IBM Plex Sans", "PingFang SC", "Hiragino Sans GB", sans-serif;
4
+ line-height: 1.5;
5
+ font-weight: 400;
6
+ color: #152033;
7
+ background:
8
+ radial-gradient(circle at top left, rgba(52, 211, 153, 0.18), transparent 32%),
9
+ radial-gradient(circle at right 20%, rgba(20, 184, 166, 0.14), transparent 28%),
10
+ linear-gradient(180deg, #f3fbf8 0%, #ffffff 100%);
11
+ }
12
+
13
+ * {
14
+ box-sizing: border-box;
15
+ }
16
+
17
+ html,
18
+ body,
19
+ #root {
20
+ min-height: 100%;
21
+ }
22
+
23
+ body {
24
+ margin: 0;
25
+ min-width: 320px;
26
+ }
27
+
28
+ a {
29
+ color: inherit;
30
+ text-decoration: none;
31
+ }
32
+
33
+ .page-shell {
34
+ width: min(1080px, calc(100vw - 32px));
35
+ margin: 0 auto;
36
+ padding: 40px 0 72px;
37
+ }
38
+
39
+ .hero-panel,
40
+ .feature-card,
41
+ .note-panel {
42
+ border: 1px solid rgba(21, 32, 51, 0.08);
43
+ background: rgba(255, 255, 255, 0.86);
44
+ box-shadow: 0 24px 60px rgba(21, 32, 51, 0.1);
45
+ backdrop-filter: blur(16px);
46
+ }
47
+
48
+ .hero-panel {
49
+ padding: 36px;
50
+ border-radius: 28px;
51
+ }
52
+
53
+ .eyebrow,
54
+ .feature-title,
55
+ .note-title {
56
+ margin: 0;
57
+ text-transform: uppercase;
58
+ letter-spacing: 0.14em;
59
+ font-size: 0.78rem;
60
+ color: #4b6a67;
61
+ }
62
+
63
+ .hero-panel h1 {
64
+ margin: 12px 0 14px;
65
+ font-size: clamp(2.4rem, 1.8rem + 2vw, 4.6rem);
66
+ line-height: 0.96;
67
+ }
68
+
69
+ .hero-copy,
70
+ .feature-description,
71
+ .note-copy {
72
+ margin: 0;
73
+ color: #425466;
74
+ }
75
+
76
+ .hero-copy {
77
+ max-width: 58ch;
78
+ font-size: 1.05rem;
79
+ }
80
+
81
+ .hero-actions {
82
+ display: flex;
83
+ flex-wrap: wrap;
84
+ gap: 12px;
85
+ margin-top: 26px;
86
+ }
87
+
88
+ .primary-link,
89
+ .secondary-link {
90
+ display: inline-flex;
91
+ align-items: center;
92
+ justify-content: center;
93
+ min-height: 44px;
94
+ padding: 0 18px;
95
+ border-radius: 999px;
96
+ transition: transform 140ms ease, background-color 140ms ease, border-color 140ms ease;
97
+ }
98
+
99
+ .primary-link {
100
+ background: #0f766e;
101
+ color: #ffffff;
102
+ }
103
+
104
+ .secondary-link {
105
+ border: 1px solid rgba(15, 118, 110, 0.22);
106
+ background: rgba(15, 118, 110, 0.08);
107
+ color: #0f4b4a;
108
+ }
109
+
110
+ .primary-link:hover,
111
+ .secondary-link:hover {
112
+ transform: translateY(-1px);
113
+ }
114
+
115
+ .content-grid {
116
+ display: grid;
117
+ grid-template-columns: repeat(3, minmax(0, 1fr));
118
+ gap: 18px;
119
+ margin-top: 20px;
120
+ }
121
+
122
+ .feature-card,
123
+ .note-panel {
124
+ padding: 24px;
125
+ border-radius: 22px;
126
+ }
127
+
128
+ .feature-description,
129
+ .note-copy {
130
+ margin-top: 12px;
131
+ }
132
+
133
+ .note-panel {
134
+ margin-top: 20px;
135
+ }
136
+
137
+ code {
138
+ padding: 0.12rem 0.36rem;
139
+ border-radius: 8px;
140
+ background: rgba(15, 118, 110, 0.1);
141
+ color: #0f4b4a;
142
+ font-family: "SFMono-Regular", "SFMono", "Menlo", monospace;
143
+ }
144
+
145
+ @media (max-width: 900px) {
146
+ .content-grid {
147
+ grid-template-columns: 1fr;
148
+ }
149
+ }
150
+
151
+ @media (max-width: 640px) {
152
+ .page-shell {
153
+ width: min(100vw - 20px, 1080px);
154
+ padding-top: 20px;
155
+ }
156
+
157
+ .hero-panel,
158
+ .feature-card,
159
+ .note-panel {
160
+ padding: 20px;
161
+ border-radius: 20px;
162
+ }
163
+ }
@@ -0,0 +1 @@
1
+ /// <reference types="vite/client" />
@@ -1,23 +1,18 @@
1
1
  {
2
2
  "compilerOptions": {
3
3
  "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
4
- "composite": true,
5
4
  "target": "ES2022",
6
5
  "useDefineForClassFields": true,
7
6
  "lib": ["ES2022", "DOM", "DOM.Iterable"],
8
7
  "module": "ESNext",
9
8
  "types": ["vite/client"],
10
9
  "skipLibCheck": true,
11
-
12
- /* Bundler mode */
13
10
  "moduleResolution": "bundler",
14
11
  "allowImportingTsExtensions": true,
15
12
  "verbatimModuleSyntax": true,
16
13
  "moduleDetection": "force",
17
14
  "noEmit": true,
18
15
  "jsx": "react-jsx",
19
-
20
- /* Linting */
21
16
  "strict": true,
22
17
  "noUnusedLocals": true,
23
18
  "noUnusedParameters": true,
@@ -1,21 +1,16 @@
1
1
  {
2
2
  "compilerOptions": {
3
3
  "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
4
- "composite": true,
5
4
  "target": "ES2023",
6
5
  "lib": ["ES2023"],
7
6
  "module": "ESNext",
8
7
  "types": ["node"],
9
8
  "skipLibCheck": true,
10
-
11
- /* Bundler mode */
12
9
  "moduleResolution": "bundler",
13
10
  "allowImportingTsExtensions": true,
14
11
  "verbatimModuleSyntax": true,
15
12
  "moduleDetection": "force",
16
13
  "noEmit": true,
17
-
18
- /* Linting */
19
14
  "strict": true,
20
15
  "noUnusedLocals": true,
21
16
  "noUnusedParameters": true,
@@ -0,0 +1,6 @@
1
+ import { defineConfig } from "vite";
2
+ import react from "@vitejs/plugin-react";
3
+
4
+ export default defineConfig({
5
+ plugins: [react()],
6
+ });
@@ -1,18 +0,0 @@
1
- {
2
- "name": "core",
3
- "private": true,
4
- "version": "0.0.1",
5
- "type": "module",
6
- "scripts": {
7
- "dev": "vite",
8
- "build": "tsc -b && vite build",
9
- "lint": "eslint .",
10
- "preview": "vite preview"
11
- },
12
- "dependencies": {
13
-
14
- },
15
- "overrides": {
16
- "vite": "npm:rolldown-vite@7.2.5"
17
- }
18
- }
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 109.07 100"><path fill="#24d6fe" d="M54.65 100l18.21-25.37H36.22L54.65 100z"/><path fill="#24d6fe" d="M72.86 24.94l-.07-.09L54.54 0 36.28 24.85l18.26 24.84 18.32 24.94 18.18 24.75 18.03-25.14-36.21-49.3z"/><path fill="#9e5df9" opacity=".5" d="M72.79 24.85L54.54 0 36.28 24.85l18.26 24.84 18.25-24.84z"/><path fill="#9e5df9" d="M36.22 49.69H18.03L0 74.24 18.09 99.3l18.13-24.67 18.32-24.94H36.22z"/></svg>
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 109.07 100"><path fill="#24d6fe" d="M54.65 100l18.21-25.37H36.22L54.65 100z"/><path fill="#24d6fe" d="M72.86 24.94l-.07-.09L54.54 0 36.28 24.85l18.26 24.84 18.32 24.94 18.18 24.75 18.03-25.14-36.21-49.3z"/><path fill="#9e5df9" opacity=".5" d="M72.79 24.85L54.54 0 36.28 24.85l18.26 24.84 18.25-24.84z"/><path fill="#9e5df9" d="M36.22 49.69H18.03L0 74.24 18.09 99.3l18.13-24.67 18.32-24.94H36.22z"/></svg>
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 109.07 100"><path fill="#24d6fe" d="M54.65 100l18.21-25.37H36.22L54.65 100z"/><path fill="#24d6fe" d="M72.86 24.94l-.07-.09L54.54 0 36.28 24.85l18.26 24.84 18.32 24.94 18.18 24.75 18.03-25.14-36.21-49.3z"/><path fill="#9e5df9" opacity=".5" d="M72.79 24.85L54.54 0 36.28 24.85l18.26 24.84 18.25-24.84z"/><path fill="#9e5df9" d="M36.22 49.69H18.03L0 74.24 18.09 99.3l18.13-24.67 18.32-24.94H36.22z"/></svg>
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="35.93" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 228"><path fill="#00D8FF" d="M210.483 73.824a171.49 171.49 0 0 0-8.24-2.597c.465-1.9.893-3.777 1.273-5.621c6.238-30.281 2.16-54.676-11.769-62.708c-13.355-7.7-35.196.329-57.254 19.526a171.23 171.23 0 0 0-6.375 5.848a155.866 155.866 0 0 0-4.241-3.917C100.759 3.829 77.587-4.822 63.673 3.233C50.33 10.957 46.379 33.89 51.995 62.588a170.974 170.974 0 0 0 1.892 8.48c-3.28.932-6.445 1.924-9.474 2.98C17.309 83.498 0 98.307 0 113.668c0 15.865 18.582 31.778 46.812 41.427a145.52 145.52 0 0 0 6.921 2.165a167.467 167.467 0 0 0-2.01 9.138c-5.354 28.2-1.173 50.591 12.134 58.266c13.744 7.926 36.812-.22 59.273-19.855a145.567 145.567 0 0 0 5.342-4.923a168.064 168.064 0 0 0 6.92 6.314c21.758 18.722 43.246 26.282 56.54 18.586c13.731-7.949 18.194-32.003 12.4-61.268a145.016 145.016 0 0 0-1.535-6.842c1.62-.48 3.21-.974 4.76-1.488c29.348-9.723 48.443-25.443 48.443-41.52c0-15.417-17.868-30.326-45.517-39.844Zm-6.365 70.984c-1.4.463-2.836.91-4.3 1.345c-3.24-10.257-7.612-21.163-12.963-32.432c5.106-11 9.31-21.767 12.459-31.957c2.619.758 5.16 1.557 7.61 2.4c23.69 8.156 38.14 20.213 38.14 29.504c0 9.896-15.606 22.743-40.946 31.14Zm-10.514 20.834c2.562 12.94 2.927 24.64 1.23 33.787c-1.524 8.219-4.59 13.698-8.382 15.893c-8.067 4.67-25.32-1.4-43.927-17.412a156.726 156.726 0 0 1-6.437-5.87c7.214-7.889 14.423-17.06 21.459-27.246c12.376-1.098 24.068-2.894 34.671-5.345a134.17 134.17 0 0 1 1.386 6.193ZM87.276 214.515c-7.882 2.783-14.16 2.863-17.955.675c-8.075-4.657-11.432-22.636-6.853-46.752a156.923 156.923 0 0 1 1.869-8.499c10.486 2.32 22.093 3.988 34.498 4.994c7.084 9.967 14.501 19.128 21.976 27.15a134.668 134.668 0 0 1-4.877 4.492c-9.933 8.682-19.886 14.842-28.658 17.94ZM50.35 144.747c-12.483-4.267-22.792-9.812-29.858-15.863c-6.35-5.437-9.555-10.836-9.555-15.216c0-9.322 13.897-21.212 37.076-29.293c2.813-.98 5.757-1.905 8.812-2.773c3.204 10.42 7.406 21.315 12.477 32.332c-5.137 11.18-9.399 22.249-12.634 32.792a134.718 134.718 0 0 1-6.318-1.979Zm12.378-84.26c-4.811-24.587-1.616-43.134 6.425-47.789c8.564-4.958 27.502 2.111 47.463 19.835a144.318 144.318 0 0 1 3.841 3.545c-7.438 7.987-14.787 17.08-21.808 26.988c-12.04 1.116-23.565 2.908-34.161 5.309a160.342 160.342 0 0 1-1.76-7.887Zm110.427 27.268a347.8 347.8 0 0 0-7.785-12.803c8.168 1.033 15.994 2.404 23.343 4.08c-2.206 7.072-4.956 14.465-8.193 22.045a381.151 381.151 0 0 0-7.365-13.322Zm-45.032-43.861c5.044 5.465 10.096 11.566 15.065 18.186a322.04 322.04 0 0 0-30.257-.006c4.974-6.559 10.069-12.652 15.192-18.18ZM82.802 87.83a323.167 323.167 0 0 0-7.227 13.238c-3.184-7.553-5.909-14.98-8.134-22.152c7.304-1.634 15.093-2.97 23.209-3.984a321.524 321.524 0 0 0-7.848 12.897Zm8.081 65.352c-8.385-.936-16.291-2.203-23.593-3.793c2.26-7.3 5.045-14.885 8.298-22.6a321.187 321.187 0 0 0 7.257 13.246c2.594 4.48 5.28 8.868 8.038 13.147Zm37.542 31.03c-5.184-5.592-10.354-11.779-15.403-18.433c4.902.192 9.899.29 14.978.29c5.218 0 10.376-.117 15.453-.343c-4.985 6.774-10.018 12.97-15.028 18.486Zm52.198-57.817c3.422 7.8 6.306 15.345 8.596 22.52c-7.422 1.694-15.436 3.058-23.88 4.071a382.417 382.417 0 0 0 7.859-13.026a347.403 347.403 0 0 0 7.425-13.565Zm-16.898 8.101a358.557 358.557 0 0 1-12.281 19.815a329.4 329.4 0 0 1-23.444.823c-7.967 0-15.716-.248-23.178-.732a310.202 310.202 0 0 1-12.513-19.846h.001a307.41 307.41 0 0 1-10.923-20.627a310.278 310.278 0 0 1 10.89-20.637l-.001.001a307.318 307.318 0 0 1 12.413-19.761c7.613-.576 15.42-.876 23.31-.876H128c7.926 0 15.743.303 23.354.883a329.357 329.357 0 0 1 12.335 19.695a358.489 358.489 0 0 1 11.036 20.54a329.472 329.472 0 0 1-11 20.722Zm22.56-122.124c8.572 4.944 11.906 24.881 6.52 51.026c-.344 1.668-.73 3.367-1.15 5.09c-10.622-2.452-22.155-4.275-34.23-5.408c-7.034-10.017-14.323-19.124-21.64-27.008a160.789 160.789 0 0 1 5.888-5.4c18.9-16.447 36.564-22.941 44.612-18.3ZM128 90.808c12.625 0 22.86 10.235 22.86 22.86s-10.235 22.86-22.86 22.86s-22.86-10.235-22.86-22.86s10.235-22.86 22.86-22.86Z"></path></svg>