@h-ai/cli 1.0.0-beta.18 → 1.0.0-beta.19
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.en.md +4 -0
- package/README.ja.md +4 -0
- package/README.md +4 -0
- package/dist/{chunk-6YZBC5MO.js → chunk-2ZL5ORQ2.js} +85 -25
- package/dist/chunk-2ZL5ORQ2.js.map +1 -0
- package/dist/{chunk-7NVRYYHN.js → chunk-L53P43B2.js} +129 -31
- package/dist/chunk-L53P43B2.js.map +1 -0
- package/dist/cli-config-templates-LWMD2I6V.js +5 -0
- package/dist/{cli-config-templates-QG5HOYR5.js.map → cli-config-templates-LWMD2I6V.js.map} +1 -1
- package/dist/{cli-skill-templates-W4I6ZKYW.js → cli-skill-templates-D6S2OQ6X.js} +3 -3
- package/dist/{cli-skill-templates-W4I6ZKYW.js.map → cli-skill-templates-D6S2OQ6X.js.map} +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2747 -671
- package/dist/index.js.map +1 -1
- package/dist/metafile-esm.json +1 -1
- package/package.json +22 -22
- package/templates/apps/admin/src/routes/+layout.svelte.hbs +16 -10
- package/templates/apps/admin/src/routes/+page.svelte.hbs +4 -4
- package/templates/apps/admin/src/routes/admin/+layout.svelte.hbs +17 -7
- package/templates/apps/admin/src/routes/admin/+page.svelte.hbs +26 -6
- package/templates/apps/admin/src/routes/admin/settings/+page.svelte.hbs +2 -2
- package/templates/apps/api/apps/{{projectName}}-contract/src/app-schemas.ts.hbs +6 -1
- package/templates/apps/api/apps/{{projectName}}-contract/src/{{projectName}}-contract.ts.hbs +13 -5
- package/templates/apps/api/apps/{{projectName}}-contract/tests/contract.test.ts.hbs +13 -5
- package/templates/apps/api/apps/{{projectName}}-contract/tsup.config.ts.hbs +3 -1
- package/templates/apps/api/apps/{{projectName}}-serv/src/app.ts.hbs +71 -32
- package/templates/apps/api/apps/{{projectName}}-serv/src/build-metadata.ts.hbs +0 -1
- package/templates/apps/api/apps/{{projectName}}-serv/src/lib/server/init.ts.hbs +131 -54
- package/templates/apps/api/apps/{{projectName}}-serv/src/server/procedures/index.ts.hbs +39 -13
- package/templates/apps/api/apps/{{projectName}}-serv/tests/service.test.ts.hbs +78 -31
- package/templates/apps/api/apps/{{projectName}}-serv/tsup.config.ts.hbs +3 -1
- package/templates/apps/api/apps/{{projectName}}-serv/vitest.config.ts.hbs +3 -1
- package/templates/apps/api/e2e/api-serv.spec.ts.hbs +20 -3
- package/templates/apps/api/e2e/capture-evidence.ts.hbs +4 -1
- package/templates/apps/api/eslint.config.js.hbs +3 -1
- package/templates/apps/api/images/serv.Dockerfile.hbs +3 -4
- package/templates/apps/api/playwright.config.ts.hbs +23 -19
- package/templates/apps/api/pnpm-workspace.yaml.hbs +27 -16
- package/templates/apps/fullstack/apps/{{projectName}}-app/capacitor.config.ts.hbs +1 -3
- package/templates/apps/fullstack/apps/{{projectName}}-app/eslint.config.js.hbs +10 -2
- package/templates/apps/fullstack/apps/{{projectName}}-app/src/App.svelte.hbs +10 -2
- package/templates/apps/fullstack/apps/{{projectName}}-app/src/build-metadata.ts.hbs +0 -1
- package/templates/apps/fullstack/apps/{{projectName}}-app/src/lib/capacitor.ts.hbs +0 -1
- package/templates/apps/fullstack/apps/{{projectName}}-app/svelte.config.js.hbs +4 -1
- package/templates/apps/fullstack/apps/{{projectName}}-app/vite.config.ts.hbs +16 -4
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/src/App.svelte.hbs +8 -2
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/src/build-metadata.ts.hbs +0 -1
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/svelte.config.js.hbs +4 -1
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/vite.config.ts.hbs +16 -4
- package/templates/apps/fullstack/apps/{{projectName}}-web/eslint.config.js.hbs +10 -2
- package/templates/apps/fullstack/apps/{{projectName}}-web/src/build-metadata.ts.hbs +0 -1
- package/templates/apps/fullstack/apps/{{projectName}}-web/src/main.ts.hbs +0 -2
- package/templates/apps/fullstack/apps/{{projectName}}-web/svelte.config.js.hbs +4 -1
- package/templates/apps/fullstack/apps/{{projectName}}-web/vite.config.ts.hbs +19 -5
- package/templates/apps/fullstack/e2e/fullstack.spec.ts.hbs +111 -26
- package/templates/apps/fullstack/e2e/session-close.spec.ts.hbs +19 -5
- package/templates/apps/fullstack/eslint.config.js.hbs +3 -1
- package/templates/apps/fullstack/images/serv.Dockerfile.hbs +3 -4
- package/templates/apps/fullstack/images/web.Dockerfile.hbs +0 -2
- package/templates/apps/fullstack/packages/{{projectName}}-contract/src/admin-contract.ts.hbs +114 -23
- package/templates/apps/fullstack/packages/{{projectName}}-contract/src/admin-schemas.ts.hbs +57 -11
- package/templates/apps/fullstack/packages/{{projectName}}-contract/tsup.config.ts.hbs +3 -1
- package/templates/apps/fullstack/packages/{{projectName}}-serv/src/app-server.ts.hbs +65 -30
- package/templates/apps/fullstack/packages/{{projectName}}-serv/src/build-metadata.ts.hbs +0 -1
- package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/admin-service.ts.hbs +69 -21
- package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/business-settings.ts.hbs +21 -5
- package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/procedures/admin-procedures.ts.hbs +63 -11
- package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/procedures/app-procedures.ts.hbs +6 -1
- package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/procedures/index.ts.hbs +3 -1
- package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/runtime.ts.hbs +139 -49
- package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/security-roles.ts.hbs +43 -12
- package/templates/apps/fullstack/packages/{{projectName}}-serv/tests/app-server.test.ts.hbs +139 -28
- package/templates/apps/fullstack/packages/{{projectName}}-serv/tests/runtime.test.ts.hbs +33 -10
- package/templates/apps/fullstack/packages/{{projectName}}-serv/tests/security.test.ts.hbs +141 -25
- package/templates/apps/fullstack/packages/{{projectName}}-serv/tsup.config.ts.hbs +6 -2
- package/templates/apps/fullstack/packages/{{projectName}}-serv/vitest.config.ts.hbs +3 -1
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/api/api-client.ts.hbs +9 -2
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/api/feedback-client.ts.hbs +0 -3
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/api/sensitive-actions.svelte.ts.hbs +15 -3
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/components/AppShell.svelte.hbs +33 -7
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/components/FeedbackEntry.svelte.hbs +16 -2
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/pages/audit.svelte.hbs +104 -13
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/pages/feedback.svelte.hbs +37 -7
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/pages/roles.svelte.hbs +9 -3
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/pages/settings.svelte.hbs +25 -3
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/pages/users.svelte.hbs +133 -19
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/security/role-label.ts.hbs +14 -2
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/stores/guide-store.ts.hbs +66 -34
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/stores/management-store.svelte.ts.hbs +132 -30
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/stores/theme-store.svelte.ts.hbs +8 -2
- package/templates/apps/fullstack/packages/{{projectName}}-shared/tests/api-client.test.ts.hbs +23 -5
- package/templates/apps/fullstack/packages/{{projectName}}-shared/tests/management-store.test.ts.hbs +143 -21
- package/templates/apps/fullstack/packages/{{projectName}}-shared/vitest.config.ts.hbs +7 -2
- package/templates/apps/fullstack/playwright.config.ts.hbs +9 -3
- package/templates/apps/fullstack/pnpm-workspace.yaml.hbs +30 -15
- package/templates/apps/h5/src/routes/+layout.svelte.hbs +57 -21
- package/templates/apps/h5/src/routes/+page.svelte.hbs +2 -2
- package/templates/apps/h5/src/routes/discover/+page.svelte.hbs +2 -2
- package/templates/apps/h5/src/routes/profile/+page.svelte.hbs +2 -2
- package/templates/apps/mobile-app/src/App.svelte.hbs +17 -5
- package/templates/apps/mobile-app/src/lib/api.ts.hbs +14 -3
- package/templates/apps/mobile-app/src/lib/app-config.ts.hbs +8 -1
- package/templates/apps/mobile-app/src/lib/pages/home.svelte.hbs +6 -2
- package/templates/apps/mobile-app/src/lib/pages/tasks.svelte.hbs +5 -1
- package/templates/apps/website/scripts/static-website.mjs.hbs +16 -3
- package/templates/apps/website/src/routes/+layout.svelte.hbs +44 -23
- package/templates/apps/website/src/routes/+page.svelte.hbs +4 -4
- package/templates/apps/website/src/routes/about/+page.svelte.hbs +2 -2
- package/templates/apps/website/src/routes/contact/+page.svelte.hbs +2 -2
- package/templates/apps/website/src/routes/services/+page.svelte.hbs +20 -5
- package/templates/base/e2e/app.spec.ts.hbs +49 -16
- package/templates/base/eslint-rules.js +44 -25
- package/templates/base/eslint.config.js.hbs +3 -1
- package/templates/base/images/web.Dockerfile.hbs +3 -4
- package/templates/base/package.json.hbs +5 -4
- package/templates/base/patches/daisyui-5.7.50.patch +8 -0
- package/templates/base/patches/deepmerge-4.3.1.patch +51 -0
- package/templates/base/playwright.config.ts +3 -1
- package/templates/base/pnpm-workspace.yaml.hbs +33 -16
- package/templates/base/src/app.d.ts.hbs +1 -1
- package/templates/base/src/hooks.server.ts.hbs +36 -27
- package/templates/base/src/lib/build-metadata.ts.hbs +0 -1
- package/templates/base/src/lib/server/init.ts.hbs +124 -51
- package/templates/base/src/lib/server/kit-config.ts.hbs +7 -4
- package/templates/base/src/routes/+layout.server.ts.hbs +2 -2
- package/templates/base/svelte.config.js.hbs +10 -100
- package/templates/base/tests/scaffold.test.ts.hbs +12 -3
- package/templates/base/tsconfig.json.hbs +7 -4
- package/templates/base/vite.config.ts.hbs +108 -14
- package/templates/base/vitest.config.ts.hbs +6 -2
- package/templates/features/ai/routes/api/chat/+server.ts +3 -1
- package/templates/features/iam/routes-admin/(auth)/auth/forgot-password/+page.svelte.hbs +3 -3
- package/templates/features/iam/routes-admin/(auth)/auth/login/+page.svelte.hbs +3 -3
- package/templates/features/iam/routes-admin/(auth)/auth/register/+page.svelte.hbs +3 -3
- package/templates/features/iam/routes-admin/(auth)/auth/reset-password/+page.svelte.hbs +3 -3
- package/templates/features/iam/routes-h5/auth/forgot-password/+page.svelte.hbs +3 -3
- package/templates/features/iam/routes-h5/auth/login/+page.svelte.hbs +3 -3
- package/templates/features/iam/routes-h5/auth/register/+page.svelte.hbs +3 -3
- package/templates/features/iam/routes-h5/auth/reset-password/+page.svelte.hbs +3 -3
- package/templates/features/iam/routes-website/auth/forgot-password/+page.svelte.hbs +3 -3
- package/templates/features/iam/routes-website/auth/login/+page.svelte.hbs +3 -3
- package/templates/features/iam/routes-website/auth/register/+page.svelte.hbs +3 -3
- package/templates/features/iam/routes-website/auth/reset-password/+page.svelte.hbs +3 -3
- package/templates/features/payment/routes/api/v1/payment/create/+server.ts +11 -2
- package/templates/shared/browser-check/startup.js +32 -6
- package/templates/shared/browser-startup.spec.ts +3 -1
- package/templates/shared/build-metadata.ts +18 -4
- package/templates/shared/e2e-env.ts +22 -6
- package/templates/shared/native-name.mjs +9 -2
- package/templates/shared/public-base-path.mjs +17 -4
- package/templates/shared/run-e2e.mjs +40 -9
- package/templates/shared/run-node.mjs +15 -4
- package/templates/shared/run-tauri.mjs +37 -8
- package/templates/shared/vite-runtime-config.ts +9 -3
- package/templates/skills/AGENTS.md +10 -73
- package/templates/skills/bridges/admin/AGENTS.md +9 -65
- package/templates/skills/bridges/api/AGENTS.md +8 -59
- package/templates/skills/bridges/fullstack/AGENTS.md.hbs +9 -54
- package/templates/skills/bridges/h5/AGENTS.md +8 -63
- package/templates/skills/bridges/mobile-app/AGENTS.md +8 -62
- package/templates/skills/bridges/website/AGENTS.md +8 -63
- package/templates/skills/hai-ai/acp.md +2 -0
- package/templates/skills/hai-ai/guide.md +17 -6
- package/templates/skills/hai-ai/reference.md +21 -12
- package/templates/skills/hai-api-client/reference.md +1 -1
- package/templates/skills/hai-app-create/development.md +3 -1
- package/templates/skills/hai-app-create/project.md +33 -0
- package/templates/skills/hai-app-create/reference.md +8 -8
- package/templates/skills/hai-app-tests/reference.md +1 -1
- package/templates/skills/hai-build/SKILL.md +2 -2
- package/templates/skills/hai-build/paths.md +1 -1
- package/templates/skills/hai-build/reference.md +11 -7
- package/templates/skills/hai-capacitor/reference.md +2 -0
- package/templates/skills/hai-ci/SKILL.md +1 -0
- package/templates/skills/hai-core/reference.md +3 -0
- package/templates/skills/hai-crypto/reference.md +2 -0
- package/templates/skills/hai-deploy/SKILL.md +7 -1
- package/templates/skills/hai-deploy/middleware.md +3 -1
- package/templates/skills/hai-framework-sync/sync.md +2 -0
- package/templates/skills/hai-kit/reference.md +16 -4
- package/templates/skills/hai-payment/reference.md +2 -0
- package/templates/skills/hai-reach/SKILL.md +2 -1
- package/templates/skills/hai-reach/reference.md +1 -1
- package/templates/skills/hai-reldb/SKILL.md +1 -1
- package/templates/skills/hai-reldb/reference.md +4 -0
- package/templates/skills/hai-serv/reference.md +12 -2
- package/templates/skills/hai-storage/reference.md +12 -3
- package/templates/skills/hai-ui/SKILL.md +3 -2
- package/templates/skills/hai-ui/guide.md +1 -1
- package/templates/skills/hai-ui/reference.md +23 -35
- package/templates/skills/hai-vecdb/reference.md +1 -1
- package/dist/chunk-6YZBC5MO.js.map +0 -1
- package/dist/chunk-7NVRYYHN.js.map +0 -1
- package/dist/cli-config-templates-QG5HOYR5.js +0 -5
|
@@ -24,7 +24,9 @@ function resolvePortFromBaseUrl(urlString: string, fallbackPort: string): string
|
|
|
24
24
|
return url.port
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
return url.protocol === 'https:'
|
|
27
|
+
return url.protocol === 'https:'
|
|
28
|
+
? '443'
|
|
29
|
+
: '80'
|
|
28
30
|
}
|
|
29
31
|
catch {
|
|
30
32
|
return fallbackPort
|
|
@@ -46,22 +48,24 @@ export default defineConfig({
|
|
|
46
48
|
trace: 'retain-on-failure',
|
|
47
49
|
screenshot: 'only-on-failure',
|
|
48
50
|
},
|
|
49
|
-
webServer: [
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
51
|
+
webServer: [
|
|
52
|
+
{
|
|
53
|
+
name: '{{api.servPackageName}}',
|
|
54
|
+
command: 'pnpm --filter {{api.servPackageName}} exec node dist/index.js',
|
|
55
|
+
env: createE2eServerEnv({
|
|
56
|
+
...createE2eNotificationEnv(),
|
|
57
|
+
HAI_CORE_ENV: 'test',
|
|
58
|
+
HAI_DB: JSON.stringify({ type: 'sqlite', database: `${process.env.HAI_E2E_DATA_ROOT}/api.db` }),
|
|
59
|
+
HAI_CACHE: JSON.stringify({ type: 'memory' }),
|
|
60
|
+
HAI_STORAGE: JSON.stringify({ type: 'local', root: `${process.env.HAI_E2E_DATA_ROOT}/uploads` }),
|
|
61
|
+
HAI_VECDB: JSON.stringify({ type: 'lancedb', path: `${process.env.HAI_E2E_DATA_ROOT}/vecdb` }),
|
|
62
|
+
HAI_CRYPTO_TRANSPORT_SERVERKEYRING: createE2eTransportRing(),
|
|
63
|
+
HOST: serviceHost,
|
|
64
|
+
PORT: servicePort,
|
|
65
|
+
}),
|
|
66
|
+
url: `${baseURL}/health`,
|
|
67
|
+
reuseExistingServer: false,
|
|
68
|
+
timeout: 120_000,
|
|
69
|
+
},
|
|
70
|
+
],
|
|
67
71
|
})
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{{! @skipIfEmpty }}
|
|
2
|
-
|
|
2
|
+
minimumReleaseAgeExcludePrune: true
|
|
3
3
|
|
|
4
4
|
trustPolicy: no-downgrade
|
|
5
5
|
# 上游构建工具仍要求 4.x;4.0.3 tarball 已核对原 lockfile 的 SHA-512。
|
|
@@ -8,33 +8,44 @@ trustPolicyExclude:
|
|
|
8
8
|
|
|
9
9
|
# pnpm 12 配置;原生依赖仅运行明确列出的安装脚本。
|
|
10
10
|
nodeLinker: hoisted
|
|
11
|
-
|
|
12
|
-
cpu-features: true
|
|
13
|
-
onnxruntime-node: true
|
|
14
|
-
protobufjs: true
|
|
15
|
-
ssh2: true
|
|
16
|
-
vue-demi: true
|
|
17
|
-
better-sqlite3: true
|
|
18
|
-
esbuild: true
|
|
19
|
-
core-js: false
|
|
11
|
+
shellEmulator: true
|
|
20
12
|
|
|
13
|
+
packages:
|
|
14
|
+
- apps/*
|
|
15
|
+
|
|
16
|
+
# 构建与浏览器依赖的安全修复;版本与框架工作区同步维护。
|
|
21
17
|
overrides:
|
|
22
|
-
|
|
18
|
+
'@ai-sdk/provider-utils@>=4.0.0 <4.0.33': 4.0.57
|
|
19
|
+
'@types/node': {{versions.nodeTypes}}
|
|
20
|
+
body-parser@>=2 <2.4.0: 2.4.0
|
|
23
21
|
cookie@<0.7.0: 0.7.2
|
|
22
|
+
dompurify@>=3 <3.4.17: 3.4.17
|
|
24
23
|
esbuild@<0.28.1: 0.28.2
|
|
24
|
+
fast-uri@>=3 <3.1.9: 3.1.9
|
|
25
|
+
follow-redirects@>=1.16.0 <1.16.2: 1.16.2
|
|
26
|
+
glob@>=9 <=14.0.1: 14.0.4
|
|
27
|
+
ip-address@<=10.7.3: 10.7.6
|
|
25
28
|
katex@<0.18.2: 0.18.10
|
|
29
|
+
minimatch@>=7 <11.0.1: 11.0.5
|
|
30
|
+
parse5@>=8 <8.1.0: 8.1.0
|
|
31
|
+
qs@>=6.7 <6.16.1: 6.17.1
|
|
32
|
+
runed@<0.38.0: 0.38.0
|
|
26
33
|
sharp@<0.35.5: 0.35.5
|
|
27
34
|
tinypool@<2.1.2: 2.2.0
|
|
28
|
-
'@qdrant/js-client-rest>undici': 7.30.0
|
|
29
35
|
xcode>uuid: 11.1.1
|
|
30
|
-
"@types/node": "{{versions.nodeTypes}}"
|
|
31
36
|
|
|
32
|
-
|
|
33
|
-
-
|
|
37
|
+
allowBuilds:
|
|
38
|
+
core-js: false
|
|
39
|
+
cpu-features: true
|
|
40
|
+
esbuild: true
|
|
41
|
+
onnxruntime-node: true
|
|
42
|
+
protobufjs: true
|
|
43
|
+
ssh2: true
|
|
44
|
+
vue-demi: true
|
|
34
45
|
|
|
35
46
|
{{#if useCatalogProtocol}}
|
|
36
47
|
catalog:
|
|
37
48
|
{{#each haiCatalogPackages}}
|
|
38
|
-
|
|
49
|
+
{{{yaml @key this}}}
|
|
39
50
|
{{/each}}
|
|
40
51
|
{{/if}}
|
|
@@ -6,7 +6,6 @@ import process from 'node:process'
|
|
|
6
6
|
import { resolveNativeName } from '../../scripts/native-name.mjs'
|
|
7
7
|
|
|
8
8
|
const envDir = resolve(process.cwd(), '../..')
|
|
9
|
-
|
|
10
9
|
const config: CapacitorConfig = {
|
|
11
10
|
appId: 'com.hai.{{fullstack.nativeAppIdSegment}}.app',
|
|
12
11
|
appName: resolveNativeName(envDir, resolve(envDir, 'packages/{{fullstack.servPackageName}}/config/_core.yml')),
|
|
@@ -14,11 +13,10 @@ const config: CapacitorConfig = {
|
|
|
14
13
|
server: process.env.NODE_ENV === 'production'
|
|
15
14
|
? undefined
|
|
16
15
|
: {
|
|
17
|
-
|
|
16
|
+
// 仅用于 Capacitor live reload 前端页面;API 地址由前端配置或 shared client 参数控制。
|
|
18
17
|
url: process.env.CAPACITOR_SERVER_URL,
|
|
19
18
|
cleartext: process.env.CAPACITOR_SERVER_URL?.startsWith('http://') ?? false,
|
|
20
19
|
},
|
|
21
20
|
}
|
|
22
|
-
|
|
23
21
|
export default config
|
|
24
22
|
{{/if}}
|
|
@@ -5,9 +5,17 @@ import { haiQualityConfig } from '../../eslint-rules.js'
|
|
|
5
5
|
|
|
6
6
|
export default antfu({
|
|
7
7
|
// unused-imports 使用 TS 规则,JS 同样使用 TS parser 以保持 scope 契约一致。
|
|
8
|
-
typescript: {
|
|
8
|
+
typescript: {
|
|
9
|
+
files: [GLOB_SRC],
|
|
10
|
+
},
|
|
9
11
|
formatters: true,
|
|
10
|
-
ignores: [
|
|
12
|
+
ignores: [
|
|
13
|
+
'**/build/**',
|
|
14
|
+
'**/dist/**',
|
|
15
|
+
'**/*.d.ts',
|
|
16
|
+
'**/project.inlang/**',
|
|
17
|
+
'**/src/lib/paraglide/**',
|
|
18
|
+
],
|
|
11
19
|
svelte: true,
|
|
12
20
|
}, haiQualityConfig, {
|
|
13
21
|
files: ['**/*.svelte'],
|
|
@@ -30,7 +30,13 @@
|
|
|
30
30
|
apiOptions = {
|
|
31
31
|
clientName: '{{projectName}}-app',
|
|
32
32
|
terminalType: 'app',
|
|
33
|
-
...(capacitor.isNative()
|
|
33
|
+
...(capacitor.isNative()
|
|
34
|
+
? {
|
|
35
|
+
requireApiBase: true,
|
|
36
|
+
tokenStorage: createCapacitorTokenStorage(),
|
|
37
|
+
headers: { 'X-HAI-Token-Transport': 'body' },
|
|
38
|
+
}
|
|
39
|
+
: {}),
|
|
34
40
|
}
|
|
35
41
|
}
|
|
36
42
|
onMount(() => {
|
|
@@ -42,7 +48,9 @@
|
|
|
42
48
|
})
|
|
43
49
|
}
|
|
44
50
|
})
|
|
45
|
-
useToastFeedback(() => startupFailed
|
|
51
|
+
useToastFeedback(() => startupFailed
|
|
52
|
+
? messages.operation_failed()
|
|
53
|
+
: '')
|
|
46
54
|
</script>
|
|
47
55
|
|
|
48
56
|
{#if startupFailed}
|
|
@@ -5,7 +5,10 @@ import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'
|
|
|
5
5
|
|
|
6
6
|
/** @type {import('@sveltejs/vite-plugin-svelte').SvelteConfig} */
|
|
7
7
|
const config = {
|
|
8
|
-
preprocess: [
|
|
8
|
+
preprocess: [
|
|
9
|
+
vitePreprocess(),
|
|
10
|
+
autoImportHaiUi(),
|
|
11
|
+
],
|
|
9
12
|
compilerOptions: {
|
|
10
13
|
// 使用 Svelte 5 Runes,和 @h-ai/ui 组件库保持一致。
|
|
11
14
|
runes: true,
|
|
@@ -14,7 +14,9 @@ import { resolveBuildMetadata } from '../../scripts/build-metadata.js'
|
|
|
14
14
|
const envDir = fileURLToPath(new URL('../../', import.meta.url))
|
|
15
15
|
|
|
16
16
|
export default defineConfig(({ mode, command }) => {
|
|
17
|
-
const envResult = command === 'build' || process.env.HAI_E2E === '1'
|
|
17
|
+
const envResult = command === 'build' || process.env.HAI_E2E === '1'
|
|
18
|
+
? { success: true as const, data: {} as Record<string, string> }
|
|
19
|
+
: core.config.loadEnvFiles({ mode, envDir })
|
|
18
20
|
if (!envResult.success)
|
|
19
21
|
throw new Error(envResult.error.message)
|
|
20
22
|
const env = envResult.data
|
|
@@ -23,15 +25,23 @@ export default defineConfig(({ mode, command }) => {
|
|
|
23
25
|
const metadataAsset: Plugin = {
|
|
24
26
|
name: 'hai-build-metadata',
|
|
25
27
|
generateBundle() {
|
|
26
|
-
this.emitFile({
|
|
28
|
+
this.emitFile({
|
|
29
|
+
type: 'asset',
|
|
30
|
+
fileName: 'build-metadata.json',
|
|
31
|
+
source: JSON.stringify(buildMetadata),
|
|
32
|
+
})
|
|
27
33
|
},
|
|
28
34
|
}
|
|
29
35
|
const target = (env.PUBLIC_API_BASE || process.env.SERVICE_BASE_URL || 'http://127.0.0.1:3000').replace(/\/api\/v1\/?$/, '')
|
|
30
|
-
const proxy = {
|
|
36
|
+
const proxy = {
|
|
37
|
+
'/api': { target, changeOrigin: true },
|
|
38
|
+
}
|
|
31
39
|
return {
|
|
32
40
|
base: './',
|
|
33
41
|
envDir: false,
|
|
34
|
-
define: {
|
|
42
|
+
define: {
|
|
43
|
+
__HAI_BUILD_METADATA__: JSON.stringify(buildMetadata),
|
|
44
|
+
},
|
|
35
45
|
server: { proxy },
|
|
36
46
|
preview: { proxy },
|
|
37
47
|
build: {
|
|
@@ -51,6 +61,8 @@ export default defineConfig(({ mode, command }) => {
|
|
|
51
61
|
metadataAsset,
|
|
52
62
|
svelte(),
|
|
53
63
|
paraglideVitePlugin({
|
|
64
|
+
// 共享物理消息产物供独立 Vitest/Node 工具读取。
|
|
65
|
+
outputStructure: 'message-modules',
|
|
54
66
|
project: './project.inlang',
|
|
55
67
|
outdir: './src/lib/paraglide',
|
|
56
68
|
strategy: ['cookie', 'baseLocale'],
|
|
@@ -12,8 +12,14 @@
|
|
|
12
12
|
const native = '__TAURI_INTERNALS__' in globalThis
|
|
13
13
|
const apiOptions: ManagementApiOptions = {
|
|
14
14
|
clientName: '{{projectName}}-desktop',
|
|
15
|
-
|
|
16
|
-
...(native
|
|
15
|
+
terminalType: 'desktop',
|
|
16
|
+
...(native
|
|
17
|
+
? {
|
|
18
|
+
requireApiBase: true,
|
|
19
|
+
tokenStorage: apiClient.tokenStorage.memory(),
|
|
20
|
+
headers: { 'X-HAI-Token-Transport': 'body' },
|
|
21
|
+
}
|
|
22
|
+
: {}),
|
|
17
23
|
}
|
|
18
24
|
|
|
19
25
|
function syncLocale(locale: string) {
|
|
@@ -5,7 +5,10 @@ import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'
|
|
|
5
5
|
|
|
6
6
|
/** @type {import('@sveltejs/vite-plugin-svelte').SvelteConfig} */
|
|
7
7
|
export default {
|
|
8
|
-
preprocess: [
|
|
8
|
+
preprocess: [
|
|
9
|
+
vitePreprocess(),
|
|
10
|
+
autoImportHaiUi(),
|
|
11
|
+
],
|
|
9
12
|
compilerOptions: {
|
|
10
13
|
// 使用 Svelte 5 Runes,和 @h-ai/ui 组件库保持一致。
|
|
11
14
|
runes: true,
|
|
@@ -15,7 +15,9 @@ const host = process.env.TAURI_DEV_HOST
|
|
|
15
15
|
const envDir = fileURLToPath(new URL('../../', import.meta.url))
|
|
16
16
|
|
|
17
17
|
export default defineConfig(({ mode, command }) => {
|
|
18
|
-
const envResult = command === 'build' || process.env.HAI_E2E === '1'
|
|
18
|
+
const envResult = command === 'build' || process.env.HAI_E2E === '1'
|
|
19
|
+
? { success: true as const, data: {} as Record<string, string> }
|
|
20
|
+
: core.config.loadEnvFiles({ mode, envDir })
|
|
19
21
|
if (!envResult.success)
|
|
20
22
|
throw new Error(envResult.error.message)
|
|
21
23
|
const env = envResult.data
|
|
@@ -24,16 +26,24 @@ export default defineConfig(({ mode, command }) => {
|
|
|
24
26
|
const metadataAsset: Plugin = {
|
|
25
27
|
name: 'hai-build-metadata',
|
|
26
28
|
generateBundle() {
|
|
27
|
-
this.emitFile({
|
|
29
|
+
this.emitFile({
|
|
30
|
+
type: 'asset',
|
|
31
|
+
fileName: 'build-metadata.json',
|
|
32
|
+
source: JSON.stringify(buildMetadata),
|
|
33
|
+
})
|
|
28
34
|
},
|
|
29
35
|
}
|
|
30
36
|
const target = (env.PUBLIC_API_BASE || process.env.SERVICE_BASE_URL || 'http://127.0.0.1:3000').replace(/\/api\/v1\/?$/, '')
|
|
31
|
-
const proxy = {
|
|
37
|
+
const proxy = {
|
|
38
|
+
'/api': { target, changeOrigin: true },
|
|
39
|
+
}
|
|
32
40
|
|
|
33
41
|
return {
|
|
34
42
|
base: './',
|
|
35
43
|
envDir: false,
|
|
36
|
-
define: {
|
|
44
|
+
define: {
|
|
45
|
+
__HAI_BUILD_METADATA__: JSON.stringify(buildMetadata),
|
|
46
|
+
},
|
|
37
47
|
preview: { proxy },
|
|
38
48
|
build: {
|
|
39
49
|
rolldownOptions: {
|
|
@@ -53,6 +63,8 @@ export default defineConfig(({ mode, command }) => {
|
|
|
53
63
|
svelte(),
|
|
54
64
|
tailwindcss(),
|
|
55
65
|
paraglideVitePlugin({
|
|
66
|
+
// 共享物理消息产物供独立 Vitest/Node 工具读取。
|
|
67
|
+
outputStructure: 'message-modules',
|
|
56
68
|
project: './project.inlang',
|
|
57
69
|
outdir: './src/lib/paraglide',
|
|
58
70
|
strategy: ['cookie', 'baseLocale'],
|
|
@@ -5,9 +5,17 @@ import { haiQualityConfig } from '../../eslint-rules.js'
|
|
|
5
5
|
|
|
6
6
|
export default antfu({
|
|
7
7
|
// unused-imports 使用 TS 规则,JS 同样使用 TS parser 以保持 scope 契约一致。
|
|
8
|
-
typescript: {
|
|
8
|
+
typescript: {
|
|
9
|
+
files: [GLOB_SRC],
|
|
10
|
+
},
|
|
9
11
|
formatters: true,
|
|
10
|
-
ignores: [
|
|
12
|
+
ignores: [
|
|
13
|
+
'**/build/**',
|
|
14
|
+
'**/dist/**',
|
|
15
|
+
'**/*.d.ts',
|
|
16
|
+
'**/project.inlang/**',
|
|
17
|
+
'**/src/lib/paraglide/**',
|
|
18
|
+
],
|
|
11
19
|
svelte: true,
|
|
12
20
|
}, haiQualityConfig, {
|
|
13
21
|
files: ['**/*.svelte'],
|
|
@@ -5,7 +5,10 @@ import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'
|
|
|
5
5
|
|
|
6
6
|
/** @type {import('@sveltejs/vite-plugin-svelte').SvelteConfig} */
|
|
7
7
|
const config = {
|
|
8
|
-
preprocess: [
|
|
8
|
+
preprocess: [
|
|
9
|
+
vitePreprocess(),
|
|
10
|
+
autoImportHaiUi(),
|
|
11
|
+
],
|
|
9
12
|
compilerOptions: {
|
|
10
13
|
// 使用 Svelte 5 Runes,和 @h-ai/ui 组件库保持一致。
|
|
11
14
|
runes: true,
|
|
@@ -15,7 +15,9 @@ import { resolvePublicBasePath } from '../../scripts/public-base-path.mjs'
|
|
|
15
15
|
const envDir = fileURLToPath(new URL('../../', import.meta.url))
|
|
16
16
|
|
|
17
17
|
export default defineConfig(({ mode, command }) => {
|
|
18
|
-
const envResult = command === 'build' || process.env.HAI_E2E === '1'
|
|
18
|
+
const envResult = command === 'build' || process.env.HAI_E2E === '1'
|
|
19
|
+
? { success: true as const, data: {} as Record<string, string> }
|
|
20
|
+
: core.config.loadEnvFiles({ mode, envDir })
|
|
19
21
|
if (!envResult.success)
|
|
20
22
|
throw new Error(envResult.error.message)
|
|
21
23
|
const env = envResult.data
|
|
@@ -24,16 +26,26 @@ export default defineConfig(({ mode, command }) => {
|
|
|
24
26
|
const metadataAsset: Plugin = {
|
|
25
27
|
name: 'hai-build-metadata',
|
|
26
28
|
generateBundle() {
|
|
27
|
-
this.emitFile({
|
|
29
|
+
this.emitFile({
|
|
30
|
+
type: 'asset',
|
|
31
|
+
fileName: 'build-metadata.json',
|
|
32
|
+
source: JSON.stringify(buildMetadata),
|
|
33
|
+
})
|
|
28
34
|
},
|
|
29
35
|
}
|
|
30
36
|
const target = (env.PUBLIC_API_BASE || process.env.SERVICE_BASE_URL || 'http://127.0.0.1:3000').replace(/\/api\/v1\/?$/, '')
|
|
31
|
-
const proxy = {
|
|
37
|
+
const proxy = {
|
|
38
|
+
'/api': { target, changeOrigin: true },
|
|
39
|
+
}
|
|
32
40
|
const publicBase = resolvePublicBasePath()
|
|
33
41
|
return {
|
|
34
|
-
base: publicBase
|
|
42
|
+
base: publicBase
|
|
43
|
+
? `${publicBase}/`
|
|
44
|
+
: './',
|
|
35
45
|
envDir: false,
|
|
36
|
-
define: {
|
|
46
|
+
define: {
|
|
47
|
+
__HAI_BUILD_METADATA__: JSON.stringify(buildMetadata),
|
|
48
|
+
},
|
|
37
49
|
server: { proxy },
|
|
38
50
|
preview: { proxy },
|
|
39
51
|
build: {
|
|
@@ -53,6 +65,8 @@ export default defineConfig(({ mode, command }) => {
|
|
|
53
65
|
metadataAsset,
|
|
54
66
|
svelte(),
|
|
55
67
|
paraglideVitePlugin({
|
|
68
|
+
// 共享物理消息产物供独立 Vitest/Node 工具读取。
|
|
69
|
+
outputStructure: 'message-modules',
|
|
56
70
|
project: './project.inlang',
|
|
57
71
|
outdir: './src/lib/paraglide',
|
|
58
72
|
strategy: ['cookie', 'baseLocale'],
|