refactor: 只保留 Web,移除 Capacitor 原生壳

删除 android/、ios/ 两个 Capacitor 原生工程与 capacitor.config.ts、
ionic.config.json,以及 scripts/android、scripts/ios.sh 构建脚本;
根与 apps/web 的 @capacitor/* 依赖和相关 npm scripts 一并移除。

Web 侧去掉原生分支:登录只走云乐坊容器授权面板或顶层重定向,
暗色模式不再改原生状态栏,移除 Android 物理返回键处理。

保留 @nuxtjs/ionic(Web UI 框架)、云乐坊 window.ylf 桥接与 PWA。

决策记录见 docs/decisions/0004-web-only.md。
This commit is contained in:
toor
2026-10-21 12:27:50 +08:00
committed by trae-solo-agent
parent 8ded87a3a8
commit 76a5d71252
117 changed files with 204 additions and 3023 deletions
-23
View File
@@ -5,8 +5,6 @@ const validConfig = {
clientId: 'cook-web',
cloudbaseEnv: 'yunlefun-8g7ybcxc7345c490',
exchangeUrl: 'https://api.yunle.fun/sso-ticket',
nativeClientId: 'cook-mobile',
nativeRedirectUri: 'https://cook.yunyoujun.cn/auth/callback?platform=native',
redirectUri: 'https://cook.yunyoujun.cn/auth/callback',
redirectUris: 'https://cook.yunyoujun.cn/auth/callback,https://cook.yunle.fun/auth/callback',
scope: 'identity:bootstrap',
@@ -17,7 +15,6 @@ describe('resolveYunlefunSsoConfig', () => {
it('accepts the exact registered production web origin', () => {
expect(resolveYunlefunSsoConfig(validConfig, {
currentOrigin: 'https://cook.yunyoujun.cn',
platform: 'web',
})).toEqual({
ok: true,
config: {
@@ -38,7 +35,6 @@ describe('resolveYunlefunSsoConfig', () => {
it('selects the registered callback for the current production web origin', () => {
expect(resolveYunlefunSsoConfig(validConfig, {
currentOrigin: 'https://cook.yunle.fun',
platform: 'web',
})).toMatchObject({
ok: true,
config: {
@@ -53,7 +49,6 @@ describe('resolveYunlefunSsoConfig', () => {
it('fails closed on an unregistered HTTP development origin', () => {
expect(resolveYunlefunSsoConfig(validConfig, {
currentOrigin: 'http://127.0.0.1:4173',
platform: 'web',
})).toEqual({
ok: false,
message: '当前域名尚未登记为登录回跳地址',
@@ -63,27 +58,9 @@ describe('resolveYunlefunSsoConfig', () => {
it('fails closed on an unregistered HTTPS origin', () => {
expect(resolveYunlefunSsoConfig(validConfig, {
currentOrigin: 'https://cook.example.com',
platform: 'web',
})).toEqual({
ok: false,
message: '当前域名尚未登记为登录回跳地址',
})
})
it('uses only the registered HTTPS callback in a native container', () => {
const result = resolveYunlefunSsoConfig(validConfig, {
currentOrigin: 'capacitor://localhost',
platform: 'native',
})
expect(result).toMatchObject({
ok: true,
config: {
redirect: {
clientId: 'cook-mobile',
redirectUri: 'https://cook.yunyoujun.cn/auth/callback?platform=native',
},
},
})
})
})