|
|
e34a325b52
|
feat(ui,api-client): B4/B5 추출 — @yakcloud/ui + @yakcloud/api-client
@yakcloud/ui (15 모듈, react peer, ds-sdk type-only):
- globals.css 3분할(tokens/components/sheet.css; 680px→--sheet-body-max-height)
- icons·primitives·controls·states, LineChart 6색 CSS 토큰화(+peakColorToken)
- CardSheet/PanelSheets: apiGet 디커플(콘텐츠 prop 주입)·lockPageScroll(container?) 폴백
- decorators(statusMeta 등, ds-sdk enum 소비), getServiceMeta(type, logoBase) 로고 URL-only
- 수정: tsconfig jsx:react-jsx, @types/react(-dom), CSS exports 서브패스
@yakcloud/api-client (3 모듈, react peer, ds-sdk type-only):
- apiGet/apiSend/apiDownload + ApiClientError, usePoll(SWR·LRU·gen guard·401/403)
- /api/v1 고정 훅 제외, 서버코드 유입 0(ApiCode만 ds-sdk에서)
검증: DAG PASS(ui↛api-client, api-client↛서버), 디커플 PASS, tsc --noEmit 통과(양 패키지).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-08-25 11:41:00 +09:00 |
|
|
|
4307e1ddb8
|
chore: B1 모노레포 스캐폴드 스켈레톤 (yakcloud-packages)
- pnpm+turbo workspace, tsconfig base, .npmrc(Gitea 레지스트리)
- 7 패키지 스텁(ds-sdk 리프 → ui/api-client type-only → client-shell/bff-kit; backup-core 신규)
package.json 의존으로 DAG·역의존 금지 규칙 강제
- Apache-2.0 LICENSE + NOTICE/LOGO_ATTRIBUTION(벤더 상표 로고 미번들, URL-only)
- .gitea/workflows/ci.yml(build/typecheck/lint · bind-env-drift · secret-scan · standalone-smoke)
- scripts: bind-env-check(check-only 게이트) · standalone-smoke(lazy-require 불변식) 스켈레톤
- apps/ds-web standalone 데모 스텁
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-08-25 11:02:21 +09:00 |
|