mirror of
https://github.com/jakejarvis/sofa.git
synced 2026-07-14 18:15:56 -04:00
- Add `ContinueWatching` (systemSmall) and `Upcoming` (systemSmall) SwiftUI widgets via `expo-widgets`, registered in `app.json` under the `group.com.jakejarvis.sofa` app group - Add `widget-images` local Expo module with a Swift `WidgetImagesModule` that downloads and resizes remote poster images into the shared app group container for use by widgets; also copies bundled assets (sofa icon fallback) - Add `src/lib/widgets.ts` to fetch dashboard data, cache poster images, and write a JSON timeline to the shared container via `expo-widgets` - Add `ContinueWatching` and `Upcoming` SwiftUI widget views in `src/widgets/` - Add `useWidgetRefresh` hook that refreshes widgets on foreground (throttled to once per minute) and on session ready - Debounce widget refresh in `invalidateTitleQueries` so rapid mutations (e.g. marking multiple episodes watched) batch into a single refresh - Expose `titles.upcoming` from the dashboard procedure and add `upcomingTitles` field to the dashboard schema - Bump iOS deployment target to 16.2 (required by WidgetKit timeline APIs)
64 lines
2.0 KiB
JSON
64 lines
2.0 KiB
JSON
{
|
|
"name": "sofa-monorepo",
|
|
"private": true,
|
|
"workspaces": {
|
|
"packages": [
|
|
"apps/*",
|
|
"packages/*"
|
|
],
|
|
"catalog": {
|
|
"@better-auth/expo": "1.5.5",
|
|
"@orpc/client": "1.13.9",
|
|
"@orpc/contract": "1.13.9",
|
|
"@orpc/tanstack-query": "1.13.9",
|
|
"@tanstack/react-query": "5.94.5",
|
|
"@types/bun": "1.3.11",
|
|
"@types/node": "25.5.0",
|
|
"@types/react": "19.2.14",
|
|
"better-auth": "1.5.5",
|
|
"@lingui/babel-plugin-lingui-macro": "5.9.3",
|
|
"@lingui/cli": "5.9.3",
|
|
"@lingui/conf": "5.9.3",
|
|
"@lingui/core": "5.9.3",
|
|
"@lingui/format-po": "5.9.3",
|
|
"@lingui/metro-transformer": "5.9.3",
|
|
"@lingui/react": "5.9.3",
|
|
"@lingui/vite-plugin": "5.9.3",
|
|
"react": "19.2.0",
|
|
"react-dom": "19.2.0",
|
|
"tailwind-merge": "3.5.0",
|
|
"tailwindcss": "4.2.2",
|
|
"thumbhash": "0.1.1",
|
|
"typescript": "5.9.3",
|
|
"zod": "4.3.6"
|
|
}
|
|
},
|
|
"scripts": {
|
|
"dev": "turbo run dev",
|
|
"dev:web": "turbo run dev --filter=@sofa/web --filter=@sofa/server",
|
|
"dev:native": "turbo run dev --filter=@sofa/native",
|
|
"dev:docs": "cd docs && bun run dev",
|
|
"build": "turbo run build",
|
|
"lint": "turbo run lint",
|
|
"format": "turbo run format",
|
|
"format:check": "turbo run format:check",
|
|
"check-types": "turbo run check-types",
|
|
"test": "turbo run test",
|
|
"clean": "rm -rf .turbo \"apps/*/.turbo\" \"apps/*/node_modules\" \"apps/*/*.tsbuildinfo\" \"packages/*/.turbo\" \"packages/*/node_modules\" \"packages/*/*.tsbuildinfo\" node_modules bun.lock",
|
|
"generate:openapi": "bun scripts/generate-openapi-spec.ts && cd docs && bun run generate:api-docs",
|
|
"i18n:extract": "lingui extract",
|
|
"i18n:claude": "bun packages/i18n/scripts/claude.ts"
|
|
},
|
|
"devDependencies": {
|
|
"@lingui/cli": "catalog:",
|
|
"@lingui/conf": "catalog:",
|
|
"@lingui/format-po": "catalog:",
|
|
"eslint-plugin-lingui": "0.11.0",
|
|
"oxfmt": "0.41.0",
|
|
"oxlint": "1.56.0",
|
|
"turbo": "2.8.20",
|
|
"typescript": "catalog:"
|
|
},
|
|
"packageManager": "bun@1.3.11"
|
|
}
|