@kromatv/sdk 0.1.40-canary.0
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.md +80 -0
- package/dist/cli.js +2523 -0
- package/package.json +78 -0
- package/rust/Cargo.toml +3 -0
- package/rust/kroma-db/Cargo.toml +27 -0
- package/rust/kroma-db/src/accounts/access_tokens.rs +197 -0
- package/rust/kroma-db/src/accounts/credentials.rs +97 -0
- package/rust/kroma-db/src/accounts/invites.rs +136 -0
- package/rust/kroma-db/src/accounts/preferences.rs +100 -0
- package/rust/kroma-db/src/accounts/resets.rs +202 -0
- package/rust/kroma-db/src/accounts/sessions.rs +182 -0
- package/rust/kroma-db/src/accounts/test_support.rs +14 -0
- package/rust/kroma-db/src/accounts/verifications.rs +185 -0
- package/rust/kroma-db/src/accounts.rs +244 -0
- package/rust/kroma-db/src/admin/metrics.rs +201 -0
- package/rust/kroma-db/src/admin/play_history.rs +361 -0
- package/rust/kroma-db/src/admin/play_sort.rs +113 -0
- package/rust/kroma-db/src/admin/stats.rs +108 -0
- package/rust/kroma-db/src/admin/test_support.rs +83 -0
- package/rust/kroma-db/src/admin/watch_stats.rs +458 -0
- package/rust/kroma-db/src/admin.rs +226 -0
- package/rust/kroma-db/src/audio_analysis.rs +253 -0
- package/rust/kroma-db/src/backup/module_stores.rs +204 -0
- package/rust/kroma-db/src/backup/rows.rs +155 -0
- package/rust/kroma-db/src/backup/test_support.rs +61 -0
- package/rust/kroma-db/src/backup.rs +306 -0
- package/rust/kroma-db/src/catalog_query/find_titles.rs +316 -0
- package/rust/kroma-db/src/catalog_query/test_support.rs +88 -0
- package/rust/kroma-db/src/catalog_query.rs +198 -0
- package/rust/kroma-db/src/chunked.rs +36 -0
- package/rust/kroma-db/src/core_tables.rs +99 -0
- package/rust/kroma-db/src/curated.rs +192 -0
- package/rust/kroma-db/src/downloaded_subs.rs +136 -0
- package/rust/kroma-db/src/downloads.rs +219 -0
- package/rust/kroma-db/src/grant/escapes/schema.rs +120 -0
- package/rust/kroma-db/src/grant/escapes/statements.rs +170 -0
- package/rust/kroma-db/src/grant/escapes.rs +141 -0
- package/rust/kroma-db/src/grant/tests.rs +255 -0
- package/rust/kroma-db/src/grant.rs +203 -0
- package/rust/kroma-db/src/home/genre_guard.rs +249 -0
- package/rust/kroma-db/src/home/hydration.rs +126 -0
- package/rust/kroma-db/src/home/test_support.rs +60 -0
- package/rust/kroma-db/src/home.rs +244 -0
- package/rust/kroma-db/src/hydrate.rs +296 -0
- package/rust/kroma-db/src/ingest/metadata.rs +648 -0
- package/rust/kroma-db/src/ingest/probe.rs +171 -0
- package/rust/kroma-db/src/ingest/probe_result.rs +178 -0
- package/rust/kroma-db/src/ingest/scanned_files.rs +235 -0
- package/rust/kroma-db/src/ingest/sync.rs +291 -0
- package/rust/kroma-db/src/ingest/test_support.rs +114 -0
- package/rust/kroma-db/src/ingest.rs +20 -0
- package/rust/kroma-db/src/jobs.rs +269 -0
- package/rust/kroma-db/src/lib.rs +97 -0
- package/rust/kroma-db/src/library.rs +66 -0
- package/rust/kroma-db/src/localize/items.rs +303 -0
- package/rust/kroma-db/src/localize/shows.rs +192 -0
- package/rust/kroma-db/src/localize/test_support.rs +91 -0
- package/rust/kroma-db/src/localize.rs +105 -0
- package/rust/kroma-db/src/markers.rs +203 -0
- package/rust/kroma-db/src/media/person.rs +213 -0
- package/rust/kroma-db/src/media/show_detail.rs +186 -0
- package/rust/kroma-db/src/media/shows.rs +202 -0
- package/rust/kroma-db/src/media/splash.rs +199 -0
- package/rust/kroma-db/src/media/test_support.rs +31 -0
- package/rust/kroma-db/src/media.rs +296 -0
- package/rust/kroma-db/src/metadata_core.rs +348 -0
- package/rust/kroma-db/src/notifications/digest.rs +143 -0
- package/rust/kroma-db/src/notifications/preferences.rs +138 -0
- package/rust/kroma-db/src/notifications/read_state.rs +167 -0
- package/rust/kroma-db/src/notifications/test_support.rs +50 -0
- package/rust/kroma-db/src/notifications.rs +232 -0
- package/rust/kroma-db/src/passkeys.rs +163 -0
- package/rust/kroma-db/src/pipeline/ops/drain.rs +266 -0
- package/rust/kroma-db/src/pipeline/ops/reconcile.rs +274 -0
- package/rust/kroma-db/src/pipeline/ops/test_support.rs +48 -0
- package/rust/kroma-db/src/pipeline/ops.rs +49 -0
- package/rust/kroma-db/src/pipeline/query/elements.rs +200 -0
- package/rust/kroma-db/src/pipeline/query/test_support.rs +23 -0
- package/rust/kroma-db/src/pipeline/query.rs +255 -0
- package/rust/kroma-db/src/pipeline/tests.rs +319 -0
- package/rust/kroma-db/src/pipeline.rs +26 -0
- package/rust/kroma-db/src/playback/continue_watching.rs +289 -0
- package/rust/kroma-db/src/playback/on_deck.rs +53 -0
- package/rust/kroma-db/src/playback/show_progress.rs +230 -0
- package/rust/kroma-db/src/playback/test_support.rs +55 -0
- package/rust/kroma-db/src/playback/up_next.rs +208 -0
- package/rust/kroma-db/src/playback/watch_state.rs +129 -0
- package/rust/kroma-db/src/playback.rs +196 -0
- package/rust/kroma-db/src/pool.rs +117 -0
- package/rust/kroma-db/src/push_subs.rs +323 -0
- package/rust/kroma-db/src/reports.rs +231 -0
- package/rust/kroma-db/src/requests/availability.rs +211 -0
- package/rust/kroma-db/src/requests/calendar.rs +221 -0
- package/rust/kroma-db/src/requests/gaps.rs +213 -0
- package/rust/kroma-db/src/requests/search_queue.rs +352 -0
- package/rust/kroma-db/src/requests/tests.rs +289 -0
- package/rust/kroma-db/src/requests/wanted.rs +351 -0
- package/rust/kroma-db/src/requests.rs +245 -0
- package/rust/kroma-db/src/rows.rs +190 -0
- package/rust/kroma-db/src/schema/ddl.rs +678 -0
- package/rust/kroma-db/src/schema/migrations.rs +261 -0
- package/rust/kroma-db/src/schema.rs +273 -0
- package/rust/kroma-db/src/suggest.rs +129 -0
- package/rust/kroma-db/src/taste.rs +77 -0
- package/rust/kroma-db/src/testing.rs +63 -0
- package/rust/kroma-db/src/tmdb_pin.rs +133 -0
- package/rust/kroma-db/src/translations.rs +569 -0
- package/rust/kroma-db/src/vectors/recommendations.rs +164 -0
- package/rust/kroma-db/src/vectors/search.rs +213 -0
- package/rust/kroma-db/src/vectors/test_support.rs +31 -0
- package/rust/kroma-db/src/vectors.rs +161 -0
- package/rust/kroma-domain/Cargo.toml +17 -0
- package/rust/kroma-domain/src/accounts.rs +181 -0
- package/rust/kroma-domain/src/admin.rs +197 -0
- package/rust/kroma-domain/src/cast.rs +178 -0
- package/rust/kroma-domain/src/crash.rs +48 -0
- package/rust/kroma-domain/src/jobs.rs +119 -0
- package/rust/kroma-domain/src/lib.rs +44 -0
- package/rust/kroma-domain/src/library.rs +21 -0
- package/rust/kroma-domain/src/matching/mod.rs +293 -0
- package/rust/kroma-domain/src/matching/normalize.rs +193 -0
- package/rust/kroma-domain/src/media.rs +297 -0
- package/rust/kroma-domain/src/metadata.rs +389 -0
- package/rust/kroma-domain/src/naming/marker.rs +215 -0
- package/rust/kroma-domain/src/naming/mod.rs +283 -0
- package/rust/kroma-domain/src/naming/title.rs +349 -0
- package/rust/kroma-domain/src/notifications/action.rs +50 -0
- package/rust/kroma-domain/src/notifications/event.rs +225 -0
- package/rust/kroma-domain/src/notifications/mod.rs +18 -0
- package/rust/kroma-domain/src/notifications/param.rs +90 -0
- package/rust/kroma-domain/src/notifications/spec.rs +178 -0
- package/rust/kroma-domain/src/notifications/view.rs +55 -0
- package/rust/kroma-domain/src/people.rs +286 -0
- package/rust/kroma-domain/src/pipeline.rs +114 -0
- package/rust/kroma-domain/src/playback.rs +39 -0
- package/rust/kroma-domain/src/push.rs +163 -0
- package/rust/kroma-domain/src/reports.rs +213 -0
- package/rust/kroma-domain/src/requests/discover.rs +102 -0
- package/rust/kroma-domain/src/requests/ledger.rs +129 -0
- package/rust/kroma-domain/src/requests/mod.rs +238 -0
- package/rust/kroma-domain/src/section.rs +44 -0
- package/rust/kroma-domain/src/slug.rs +165 -0
- package/rust/kroma-http/Cargo.toml +20 -0
- package/rust/kroma-http/examples/seam-bench.rs +73 -0
- package/rust/kroma-http/src/builder.rs +35 -0
- package/rust/kroma-http/src/config.rs +50 -0
- package/rust/kroma-http/src/curl.rs +131 -0
- package/rust/kroma-http/src/fetch.rs +226 -0
- package/rust/kroma-http/src/lib.rs +25 -0
- package/rust/kroma-http/src/loopback/mod.rs +220 -0
- package/rust/kroma-http/src/loopback/tcp.rs +182 -0
- package/rust/kroma-http/src/loopback/transport.rs +42 -0
- package/rust/kroma-http/src/response.rs +130 -0
- package/rust/kroma-module-host/Cargo.toml +36 -0
- package/rust/kroma-module-host/src/auth.rs +221 -0
- package/rust/kroma-module-host/src/host_ctx.rs +382 -0
- package/rust/kroma-module-host/src/host_token.rs +147 -0
- package/rust/kroma-module-host/src/lib.rs +141 -0
- package/rust/kroma-module-host/src/module.rs +115 -0
- package/rust/kroma-module-host/src/port.rs +163 -0
- package/rust/kroma-module-host/src/storage.rs +97 -0
- package/rust/kroma-module-host/src/test_serve.rs +33 -0
- package/rust/kroma-module-host/src/testing/log.rs +145 -0
- package/rust/kroma-module-host/src/testing/mod.rs +72 -0
- package/rust/kroma-module-host/src/testing/recording.rs +209 -0
- package/rust/kroma-module-host/src/testing/stub.rs +592 -0
- package/rust/kroma-module-macros/Cargo.toml +12 -0
- package/rust/kroma-module-macros/src/lib.rs +148 -0
- package/rust/kroma-module-manifest/Cargo.toml +15 -0
- package/rust/kroma-module-manifest/src/compat.rs +157 -0
- package/rust/kroma-module-manifest/src/embedded.rs +160 -0
- package/rust/kroma-module-manifest/src/event.rs +74 -0
- package/rust/kroma-module-manifest/src/lib.rs +57 -0
- package/rust/kroma-module-manifest/src/manifest.rs +548 -0
- package/rust/kroma-module-manifest/src/registry.rs +626 -0
- package/rust/kroma-module-runtime/Cargo.toml +33 -0
- package/rust/kroma-module-runtime/src/lib.rs +743 -0
- package/rust/kroma-module-sdk/Cargo.toml +49 -0
- package/rust/kroma-module-sdk/src/lib.rs +70 -0
- package/rust/kroma-primitives/Cargo.toml +12 -0
- package/rust/kroma-primitives/src/lib.rs +101 -0
- package/rust/kroma-testing/Cargo.toml +10 -0
- package/rust/kroma-testing/src/lib.rs +72 -0
- package/templates/base/README.md +14 -0
- package/templates/base/_gitignore +4 -0
- package/templates/base/icon.svg +1 -0
- package/templates/base/locales/en.json +7 -0
- package/templates/base/locales/fr.json +7 -0
- package/templates/server/.cargo/config.toml +2 -0
- package/templates/server/rust-toolchain.toml +3 -0
- package/templates/server/server/Cargo.toml +37 -0
- package/templates/server/server/src/bin/module.rs +6 -0
- package/templates/server/server/src/lib.rs +43 -0
- package/templates/ui/ui/src/__PAGE__.tsx +22 -0
- package/templates/ui/ui/src/module.tsx +17 -0
- package/templates/ui/ui/src/schemas.ts +6 -0
- package/tsconfig.module.json +110 -0
- package/types/client/src/api/accounts/client.d.ts +291 -0
- package/types/client/src/api/accounts/ids.d.ts +13 -0
- package/types/client/src/api/accounts/index.d.ts +6 -0
- package/types/client/src/api/accounts/passkeys.d.ts +79 -0
- package/types/client/src/api/accounts/quick-connect.d.ts +23 -0
- package/types/client/src/api/accounts/remembered.d.ts +66 -0
- package/types/client/src/api/accounts/rules.d.ts +9 -0
- package/types/client/src/api/accounts/schemas.d.ts +214 -0
- package/types/client/src/api/admin/backup.d.ts +22 -0
- package/types/client/src/api/admin/client.d.ts +407 -0
- package/types/client/src/api/admin/index.d.ts +7 -0
- package/types/client/src/api/admin/logs.d.ts +24 -0
- package/types/client/src/api/admin/metrics.d.ts +231 -0
- package/types/client/src/api/admin/notifications.d.ts +47 -0
- package/types/client/src/api/admin/settings.d.ts +50 -0
- package/types/client/src/api/admin/stats.d.ts +257 -0
- package/types/client/src/api/admin/users.d.ts +98 -0
- package/types/client/src/api/cast/client.d.ts +209 -0
- package/types/client/src/api/cast/ids.d.ts +4 -0
- package/types/client/src/api/cast/index.d.ts +3 -0
- package/types/client/src/api/cast/schemas.d.ts +565 -0
- package/types/client/src/api/diagnostics/client.d.ts +13 -0
- package/types/client/src/api/diagnostics/index.d.ts +2 -0
- package/types/client/src/api/diagnostics/schemas.d.ts +29 -0
- package/types/client/src/api/discover.d.ts +5 -0
- package/types/client/src/api/discover.web.d.ts +5 -0
- package/types/client/src/api/discovery/client.d.ts +115 -0
- package/types/client/src/api/discovery/index.d.ts +2 -0
- package/types/client/src/api/discovery/schemas.d.ts +175 -0
- package/types/client/src/api/events/index.d.ts +2 -0
- package/types/client/src/api/events/schemas.d.ts +371 -0
- package/types/client/src/api/events/socket.d.ts +42 -0
- package/types/client/src/api/handoff/client.d.ts +68 -0
- package/types/client/src/api/handoff/ids.d.ts +4 -0
- package/types/client/src/api/handoff/index.d.ts +3 -0
- package/types/client/src/api/handoff/schemas.d.ts +93 -0
- package/types/client/src/api/jobs/client.d.ts +96 -0
- package/types/client/src/api/jobs/ids.d.ts +5 -0
- package/types/client/src/api/jobs/index.d.ts +3 -0
- package/types/client/src/api/jobs/schemas.d.ts +168 -0
- package/types/client/src/api/library/client.d.ts +45 -0
- package/types/client/src/api/library/index.d.ts +2 -0
- package/types/client/src/api/library/schemas.d.ts +28 -0
- package/types/client/src/api/llm/client.d.ts +37 -0
- package/types/client/src/api/llm/ids.d.ts +3 -0
- package/types/client/src/api/llm/index.d.ts +3 -0
- package/types/client/src/api/llm/schemas.d.ts +74 -0
- package/types/client/src/api/media/artwork-scale.d.ts +18 -0
- package/types/client/src/api/media/artwork.d.ts +31 -0
- package/types/client/src/api/media/client.d.ts +2160 -0
- package/types/client/src/api/media/credits.d.ts +46 -0
- package/types/client/src/api/media/ids.d.ts +12 -0
- package/types/client/src/api/media/index.d.ts +7 -0
- package/types/client/src/api/media/rematch.d.ts +31 -0
- package/types/client/src/api/media/schemas.d.ts +1607 -0
- package/types/client/src/api/media/search.d.ts +1044 -0
- package/types/client/src/api/media/tracks.d.ts +152 -0
- package/types/client/src/api/modules/client.d.ts +38 -0
- package/types/client/src/api/modules/ids.d.ts +3 -0
- package/types/client/src/api/modules/index.d.ts +5 -0
- package/types/client/src/api/modules/module-api.d.ts +23 -0
- package/types/client/src/api/modules/schemas.d.ts +74 -0
- package/types/client/src/api/modules/store.d.ts +226 -0
- package/types/client/src/api/notifications/capability.d.ts +36 -0
- package/types/client/src/api/notifications/client.d.ts +79 -0
- package/types/client/src/api/notifications/ids.d.ts +3 -0
- package/types/client/src/api/notifications/index.d.ts +4 -0
- package/types/client/src/api/notifications/push.d.ts +18 -0
- package/types/client/src/api/notifications/schemas.d.ts +235 -0
- package/types/client/src/api/pipeline/client.d.ts +126 -0
- package/types/client/src/api/pipeline/index.d.ts +2 -0
- package/types/client/src/api/pipeline/schemas.d.ts +139 -0
- package/types/client/src/api/playback/client.d.ts +681 -0
- package/types/client/src/api/playback/ids.d.ts +3 -0
- package/types/client/src/api/playback/index.d.ts +3 -0
- package/types/client/src/api/playback/schemas.d.ts +38 -0
- package/types/client/src/api/reports/client.d.ts +117 -0
- package/types/client/src/api/reports/ids.d.ts +3 -0
- package/types/client/src/api/reports/index.d.ts +3 -0
- package/types/client/src/api/reports/schemas.d.ts +144 -0
- package/types/client/src/api/requests/acquisition.d.ts +240 -0
- package/types/client/src/api/requests/client.d.ts +301 -0
- package/types/client/src/api/requests/ids.d.ts +7 -0
- package/types/client/src/api/requests/index.d.ts +4 -0
- package/types/client/src/api/requests/schemas.d.ts +162 -0
- package/types/client/src/api/subtitles/client.d.ts +48 -0
- package/types/client/src/api/subtitles/ids.d.ts +5 -0
- package/types/client/src/api/subtitles/index.d.ts +3 -0
- package/types/client/src/api/subtitles/schemas.d.ts +78 -0
- package/types/client/src/core/client.d.ts +17 -0
- package/types/client/src/core/http/api-error.d.ts +36 -0
- package/types/client/src/core/http/body.d.ts +1 -0
- package/types/client/src/core/http/concurrency.d.ts +8 -0
- package/types/client/src/core/http/index.d.ts +6 -0
- package/types/client/src/core/http/path.d.ts +10 -0
- package/types/client/src/core/http/preconnect.d.ts +2 -0
- package/types/client/src/core/http/query.d.ts +9 -0
- package/types/client/src/core/http/request-context.d.ts +94 -0
- package/types/client/src/core/http/user-agent.d.ts +7 -0
- package/types/client/src/core/ids/ids.d.ts +13 -0
- package/types/client/src/core/ids/index.d.ts +1 -0
- package/types/client/src/core/index.d.ts +4 -0
- package/types/client/src/core/session/index.d.ts +3 -0
- package/types/client/src/core/session/locale.d.ts +6 -0
- package/types/client/src/core/session/storage.d.ts +32 -0
- package/types/client/src/core/session/token.d.ts +19 -0
- package/types/client/src/index.d.ts +3 -0
- package/types/client/src/kroma-client.d.ts +49 -0
- package/types/client/src/query/index.d.ts +35 -0
- package/types/core/src/airdate.d.ts +21 -0
- package/types/core/src/browse.d.ts +45 -0
- package/types/core/src/compat.d.ts +9 -0
- package/types/core/src/discover.d.ts +31 -0
- package/types/core/src/format.d.ts +63 -0
- package/types/core/src/genre-art.d.ts +21 -0
- package/types/core/src/genre-table.d.ts +117 -0
- package/types/core/src/genre.d.ts +42 -0
- package/types/core/src/handoff/beacon.d.ts +39 -0
- package/types/core/src/handoff/grant.d.ts +20 -0
- package/types/core/src/handoff/index.d.ts +8 -0
- package/types/core/src/handoff/nearby.d.ts +17 -0
- package/types/core/src/handoff/sources.d.ts +110 -0
- package/types/core/src/health-probe.d.ts +19 -0
- package/types/core/src/hevc/audio-support.d.ts +47 -0
- package/types/core/src/hevc/capabilities.d.ts +63 -0
- package/types/core/src/hevc/directplay.d.ts +70 -0
- package/types/core/src/hevc/engine.d.ts +29 -0
- package/types/core/src/hevc.d.ts +4 -0
- package/types/core/src/i18n.d.ts +2381 -0
- package/types/core/src/index.d.ts +25 -0
- package/types/core/src/intl.d.ts +28 -0
- package/types/core/src/lang-table.d.ts +11 -0
- package/types/core/src/lang.d.ts +59 -0
- package/types/core/src/local-ip.d.ts +2 -0
- package/types/core/src/locales/catalogs.d.ts +2 -0
- package/types/core/src/locales/catalogs.web.d.ts +3 -0
- package/types/core/src/locales/default-locale.d.ts +3 -0
- package/types/core/src/match.d.ts +14 -0
- package/types/core/src/notification-labels.d.ts +47 -0
- package/types/core/src/people.d.ts +33 -0
- package/types/core/src/permissions.d.ts +10 -0
- package/types/core/src/person-facts.d.ts +23 -0
- package/types/core/src/platform.d.ts +7 -0
- package/types/core/src/playback-buffer.d.ts +64 -0
- package/types/core/src/playback-stall.d.ts +86 -0
- package/types/core/src/player.d.ts +22 -0
- package/types/core/src/push-labels.d.ts +6 -0
- package/types/core/src/react/handoff-picker.d.ts +52 -0
- package/types/core/src/react/index.d.ts +6 -0
- package/types/core/src/react/lang-prefs.d.ts +35 -0
- package/types/core/src/react/nearby-tvs.d.ts +31 -0
- package/types/core/src/remote.d.ts +26 -0
- package/types/core/src/server-origin.d.ts +12 -0
- package/types/core/src/slug.d.ts +4 -0
- package/types/core/src/subtitles.d.ts +20 -0
- package/types/i18n/src/announce.d.ts +15 -0
- package/types/i18n/src/catalog-types.d.ts +7 -0
- package/types/i18n/src/chain.d.ts +22 -0
- package/types/i18n/src/define.d.ts +39 -0
- package/types/i18n/src/dev-overrides.d.ts +39 -0
- package/types/i18n/src/i18n.d.ts +61 -0
- package/types/i18n/src/index.d.ts +11 -0
- package/types/i18n/src/interpolate.d.ts +14 -0
- package/types/i18n/src/layout.d.ts +18 -0
- package/types/i18n/src/locales.d.ts +12 -0
- package/types/i18n/src/namespaces.d.ts +37 -0
- package/types/i18n/src/nest.d.ts +17 -0
- package/types/i18n/src/plural.d.ts +20 -0
- package/types/i18n/src/react/context.d.ts +37 -0
- package/types/i18n/src/react/index.d.ts +2 -0
- package/types/i18n/src/react/provider.d.ts +14 -0
- package/types/i18n/src/registry.d.ts +36 -0
- package/types/i18n/src/store.d.ts +46 -0
- package/types/i18n/src/types.d.ts +30 -0
- package/types/module-sdk/src/admin/context.d.ts +20 -0
- package/types/module-sdk/src/admin/denied.d.ts +1 -0
- package/types/module-sdk/src/admin/engines.d.ts +35 -0
- package/types/module-sdk/src/admin/hooks.d.ts +39 -0
- package/types/module-sdk/src/admin/page-states.d.ts +27 -0
- package/types/module-sdk/src/admin/settings.d.ts +9 -0
- package/types/module-sdk/src/bus.d.ts +8 -0
- package/types/module-sdk/src/contracts.d.ts +6 -0
- package/types/module-sdk/src/define.d.ts +38 -0
- package/types/module-sdk/src/events.d.ts +11 -0
- package/types/module-sdk/src/host.d.ts +32 -0
- package/types/module-sdk/src/icon.d.ts +1 -0
- package/types/module-sdk/src/index.d.ts +35 -0
- package/types/module-sdk/src/module.d.ts +83 -0
- package/types/module-sdk/src/registry.d.ts +63 -0
- package/types/module-sdk/src/scope.d.ts +23 -0
- package/types/module-sdk/src/shared.d.ts +21 -0
- package/types/module-sdk/src/slot.d.ts +34 -0
- package/types/module-sdk/src/types.d.ts +39 -0
- package/types/module-sdk/src/ui/table.d.ts +88 -0
- package/types/module-sdk/src/use-sorted-table.d.ts +56 -0
- package/types/registry/src/build.d.ts +16 -0
- package/types/registry/src/client.d.ts +23 -0
- package/types/registry/src/documents/index.d.ts +6 -0
- package/types/registry/src/documents/v1.d.ts +197 -0
- package/types/registry/src/index.d.ts +7 -0
- package/types/registry/src/manifest/index.d.ts +9 -0
- package/types/registry/src/manifest/v2.d.ts +182 -0
- package/types/registry/src/semver.d.ts +24 -0
- package/types/registry/src/sort.d.ts +2 -0
- package/types/registry/src/spec.d.ts +19 -0
- package/types/registry/src/text.d.ts +6 -0
- package/types/spatial-nav/src/descent.d.ts +9 -0
- package/types/spatial-nav/src/directions.d.ts +16 -0
- package/types/spatial-nav/src/fallback-focus.d.ts +5 -0
- package/types/spatial-nav/src/focus-owner.d.ts +16 -0
- package/types/spatial-nav/src/focus-tree.d.ts +63 -0
- package/types/spatial-nav/src/index.d.ts +4 -0
- package/types/spatial-nav/src/navigator.bench.d.ts +1 -0
- package/types/spatial-nav/src/react/configure-remote.d.ts +16 -0
- package/types/spatial-nav/src/react/default-focus.d.ts +15 -0
- package/types/spatial-nav/src/react/focus-queue.d.ts +16 -0
- package/types/spatial-nav/src/react/navigator-context.d.ts +19 -0
- package/types/spatial-nav/src/react/navigator-item.d.ts +28 -0
- package/types/spatial-nav/src/react/navigator-node.d.ts +27 -0
- package/types/spatial-nav/src/react/navigator-root.d.ts +19 -0
- package/types/spatial-nav/src/react/navigator-view.d.ts +18 -0
- package/types/spatial-nav/src/react/pointer-device.d.ts +14 -0
- package/types/spatial-nav/src/react/spatial-node.d.ts +27 -0
- package/types/spatial-nav/src/react/use-lock-navigator.d.ts +11 -0
- package/types/spatial-nav/src/react.d.ts +17 -0
- package/types/spatial-nav/src/resolve-move.d.ts +6 -0
- package/types/spatial-nav/src/spatial-navigator.d.ts +23 -0
- package/types/ui/src/assets/fonts.d.ts +4 -0
- package/types/ui/src/components/atoms/art-scrim/art-scrim.d.ts +21 -0
- package/types/ui/src/components/atoms/art-scrim/index.d.ts +1 -0
- package/types/ui/src/components/atoms/avatar/avatar.d.ts +43 -0
- package/types/ui/src/components/atoms/avatar/index.d.ts +1 -0
- package/types/ui/src/components/atoms/badge/badge.d.ts +116 -0
- package/types/ui/src/components/atoms/badge/index.d.ts +1 -0
- package/types/ui/src/components/atoms/box/box.d.ts +29 -0
- package/types/ui/src/components/atoms/box/index.d.ts +1 -0
- package/types/ui/src/components/atoms/button/button-variants.d.ts +216 -0
- package/types/ui/src/components/atoms/button/button.d.ts +37 -0
- package/types/ui/src/components/atoms/button/index.d.ts +1 -0
- package/types/ui/src/components/atoms/checkbox/checkbox.d.ts +62 -0
- package/types/ui/src/components/atoms/checkbox/index.d.ts +1 -0
- package/types/ui/src/components/atoms/chip/chip.d.ts +172 -0
- package/types/ui/src/components/atoms/chip/index.d.ts +1 -0
- package/types/ui/src/components/atoms/divider/divider.d.ts +13 -0
- package/types/ui/src/components/atoms/divider/index.d.ts +1 -0
- package/types/ui/src/components/atoms/expandable-text/expandable-text.d.ts +20 -0
- package/types/ui/src/components/atoms/expandable-text/index.d.ts +1 -0
- package/types/ui/src/components/atoms/focusable/focusable-a11y.d.ts +12 -0
- package/types/ui/src/components/atoms/focusable/focusable-delegate.d.ts +21 -0
- package/types/ui/src/components/atoms/focusable/focusable-forms.d.ts +62 -0
- package/types/ui/src/components/atoms/focusable/focusable-link.d.ts +7 -0
- package/types/ui/src/components/atoms/focusable/focusable-paint.d.ts +47 -0
- package/types/ui/src/components/atoms/focusable/focusable-types.d.ts +167 -0
- package/types/ui/src/components/atoms/focusable/focusable.d.ts +7 -0
- package/types/ui/src/components/atoms/focusable/index.d.ts +1 -0
- package/types/ui/src/components/atoms/focusable/touch-pressable.d.ts +35 -0
- package/types/ui/src/components/atoms/focusable/use-entry-focus.d.ts +9 -0
- package/types/ui/src/components/atoms/focusable/use-web-keys.d.ts +7 -0
- package/types/ui/src/components/atoms/frost/frost.d.ts +62 -0
- package/types/ui/src/components/atoms/frost/index.d.ts +1 -0
- package/types/ui/src/components/atoms/grid/grid.d.ts +28 -0
- package/types/ui/src/components/atoms/grid/index.d.ts +1 -0
- package/types/ui/src/components/atoms/ground/ground.d.ts +19 -0
- package/types/ui/src/components/atoms/ground/index.d.ts +1 -0
- package/types/ui/src/components/atoms/icon/icon.d.ts +4 -0
- package/types/ui/src/components/atoms/icon/index.d.ts +1 -0
- package/types/ui/src/components/atoms/icon-button/icon-button.d.ts +165 -0
- package/types/ui/src/components/atoms/icon-button/index.d.ts +1 -0
- package/types/ui/src/components/atoms/icon-well/icon-well.d.ts +46 -0
- package/types/ui/src/components/atoms/icon-well/index.d.ts +1 -0
- package/types/ui/src/components/atoms/img/img.d.ts +45 -0
- package/types/ui/src/components/atoms/img/index.d.ts +1 -0
- package/types/ui/src/components/atoms/img/native-layers.d.ts +28 -0
- package/types/ui/src/components/atoms/img/use-cross-fade.d.ts +9 -0
- package/types/ui/src/components/atoms/img/web-layers.d.ts +19 -0
- package/types/ui/src/components/atoms/index.d.ts +64 -0
- package/types/ui/src/components/atoms/kbd/index.d.ts +2 -0
- package/types/ui/src/components/atoms/kbd/kbd.d.ts +18 -0
- package/types/ui/src/components/atoms/logo/index.d.ts +1 -0
- package/types/ui/src/components/atoms/logo/logo.d.ts +11 -0
- package/types/ui/src/components/atoms/number-field/index.d.ts +1 -0
- package/types/ui/src/components/atoms/number-field/number-field.d.ts +11 -0
- package/types/ui/src/components/atoms/progress/index.d.ts +1 -0
- package/types/ui/src/components/atoms/progress/progress.d.ts +28 -0
- package/types/ui/src/components/atoms/progress-ring/index.d.ts +1 -0
- package/types/ui/src/components/atoms/progress-ring/progress-ring.d.ts +7 -0
- package/types/ui/src/components/atoms/radio/index.d.ts +1 -0
- package/types/ui/src/components/atoms/radio/radio.d.ts +76 -0
- package/types/ui/src/components/atoms/skeleton/card-skeleton.d.ts +6 -0
- package/types/ui/src/components/atoms/skeleton/index.d.ts +4 -0
- package/types/ui/src/components/atoms/skeleton/poster-skeleton.d.ts +7 -0
- package/types/ui/src/components/atoms/skeleton/skeleton.d.ts +20 -0
- package/types/ui/src/components/atoms/skeleton/table-skeleton.d.ts +6 -0
- package/types/ui/src/components/atoms/spinner/index.d.ts +1 -0
- package/types/ui/src/components/atoms/spinner/spinner.d.ts +14 -0
- package/types/ui/src/components/atoms/status-dot/index.d.ts +1 -0
- package/types/ui/src/components/atoms/status-dot/status-dot.d.ts +9 -0
- package/types/ui/src/components/atoms/surface/index.d.ts +1 -0
- package/types/ui/src/components/atoms/surface/surface.d.ts +56 -0
- package/types/ui/src/components/atoms/switch/index.d.ts +1 -0
- package/types/ui/src/components/atoms/switch/switch.d.ts +64 -0
- package/types/ui/src/components/atoms/text/index.d.ts +1 -0
- package/types/ui/src/components/atoms/text/text.d.ts +21 -0
- package/types/ui/src/components/atoms/text-area/index.d.ts +1 -0
- package/types/ui/src/components/atoms/text-area/text-area.d.ts +31 -0
- package/types/ui/src/components/atoms/text-field/index.d.ts +1 -0
- package/types/ui/src/components/atoms/text-field/text-field.d.ts +50 -0
- package/types/ui/src/components/atoms/watched-badge/index.d.ts +1 -0
- package/types/ui/src/components/atoms/watched-badge/watched-badge.d.ts +19 -0
- package/types/ui/src/components/atoms/wheel/index.d.ts +1 -0
- package/types/ui/src/components/atoms/wheel/wheel.d.ts +9 -0
- package/types/ui/src/components/common/if/if.d.ts +9 -0
- package/types/ui/src/components/common/if/index.d.ts +1 -0
- package/types/ui/src/components/common/index.d.ts +2 -0
- package/types/ui/src/components/molecules/add-tile/add-tile.d.ts +65 -0
- package/types/ui/src/components/molecules/add-tile/index.d.ts +2 -0
- package/types/ui/src/components/molecules/alphabet-rail/alphabet-rail-context.d.ts +20 -0
- package/types/ui/src/components/molecules/alphabet-rail/alphabet-rail-item.d.ts +13 -0
- package/types/ui/src/components/molecules/alphabet-rail/alphabet-rail-lens.d.ts +17 -0
- package/types/ui/src/components/molecules/alphabet-rail/alphabet-rail.d.ts +46 -0
- package/types/ui/src/components/molecules/alphabet-rail/index.d.ts +2 -0
- package/types/ui/src/components/molecules/alphabet-rail/use-letter-scrub.d.ts +17 -0
- package/types/ui/src/components/molecules/back-button/back-button.d.ts +10 -0
- package/types/ui/src/components/molecules/back-button/index.d.ts +1 -0
- package/types/ui/src/components/molecules/button-group/button-group.d.ts +37 -0
- package/types/ui/src/components/molecules/button-group/index.d.ts +3 -0
- package/types/ui/src/components/molecules/callout/callout.d.ts +63 -0
- package/types/ui/src/components/molecules/callout/index.d.ts +1 -0
- package/types/ui/src/components/molecules/category-tile/category-tile.d.ts +65 -0
- package/types/ui/src/components/molecules/category-tile/index.d.ts +1 -0
- package/types/ui/src/components/molecules/choice-list/choice-list.d.ts +53 -0
- package/types/ui/src/components/molecules/choice-list/index.d.ts +1 -0
- package/types/ui/src/components/molecules/copy-button/copy-button.d.ts +19 -0
- package/types/ui/src/components/molecules/copy-button/index.d.ts +1 -0
- package/types/ui/src/components/molecules/data-field/data-field.d.ts +44 -0
- package/types/ui/src/components/molecules/data-field/index.d.ts +1 -0
- package/types/ui/src/components/molecules/disclosure/disclosure.d.ts +55 -0
- package/types/ui/src/components/molecules/disclosure/index.d.ts +1 -0
- package/types/ui/src/components/molecules/dropzone/dropzone-parts.d.ts +46 -0
- package/types/ui/src/components/molecules/dropzone/dropzone-sift.d.ts +6 -0
- package/types/ui/src/components/molecules/dropzone/dropzone.d.ts +21 -0
- package/types/ui/src/components/molecules/dropzone/dropzone.web.d.ts +11 -0
- package/types/ui/src/components/molecules/dropzone/index.d.ts +1 -0
- package/types/ui/src/components/molecules/empty-state/empty-state.d.ts +60 -0
- package/types/ui/src/components/molecules/empty-state/index.d.ts +1 -0
- package/types/ui/src/components/molecules/field/field.d.ts +56 -0
- package/types/ui/src/components/molecules/field/index.d.ts +1 -0
- package/types/ui/src/components/molecules/hint/hint.d.ts +23 -0
- package/types/ui/src/components/molecules/hint/index.d.ts +1 -0
- package/types/ui/src/components/molecules/index.d.ts +70 -0
- package/types/ui/src/components/molecules/input-group/index.d.ts +3 -0
- package/types/ui/src/components/molecules/input-group/input-group-context.d.ts +34 -0
- package/types/ui/src/components/molecules/input-group/input-group-parts.d.ts +31 -0
- package/types/ui/src/components/molecules/input-group/input-group.d.ts +38 -0
- package/types/ui/src/components/molecules/keypad/index.d.ts +1 -0
- package/types/ui/src/components/molecules/keypad/keypad.d.ts +44 -0
- package/types/ui/src/components/molecules/legend/index.d.ts +1 -0
- package/types/ui/src/components/molecules/legend/legend.d.ts +32 -0
- package/types/ui/src/components/molecules/list/index.d.ts +1 -0
- package/types/ui/src/components/molecules/list/list.d.ts +41 -0
- package/types/ui/src/components/molecules/list-row/index.d.ts +3 -0
- package/types/ui/src/components/molecules/list-row/list-group.d.ts +23 -0
- package/types/ui/src/components/molecules/list-row/list-row-context.d.ts +10 -0
- package/types/ui/src/components/molecules/list-row/list-row-parts.d.ts +28 -0
- package/types/ui/src/components/molecules/list-row/list-row-variants.d.ts +90 -0
- package/types/ui/src/components/molecules/list-row/list-row.d.ts +51 -0
- package/types/ui/src/components/molecules/media-card/index.d.ts +1 -0
- package/types/ui/src/components/molecules/media-card/media-card.d.ts +22 -0
- package/types/ui/src/components/molecules/nav-pill/index.d.ts +1 -0
- package/types/ui/src/components/molecules/nav-pill/nav-pill-context.d.ts +28 -0
- package/types/ui/src/components/molecules/nav-pill/nav-pill-item.d.ts +101 -0
- package/types/ui/src/components/molecules/nav-pill/nav-pill-lens.d.ts +8 -0
- package/types/ui/src/components/molecules/nav-pill/nav-pill.d.ts +55 -0
- package/types/ui/src/components/molecules/otp-field/index.d.ts +1 -0
- package/types/ui/src/components/molecules/otp-field/otp-field-context.d.ts +32 -0
- package/types/ui/src/components/molecules/otp-field/otp-field-parts.d.ts +18 -0
- package/types/ui/src/components/molecules/otp-field/otp-field-variants.d.ts +68 -0
- package/types/ui/src/components/molecules/otp-field/otp-field.d.ts +57 -0
- package/types/ui/src/components/molecules/page-header/index.d.ts +1 -0
- package/types/ui/src/components/molecules/page-header/page-header.d.ts +69 -0
- package/types/ui/src/components/molecules/pagination/index.d.ts +3 -0
- package/types/ui/src/components/molecules/pagination/pagination.d.ts +102 -0
- package/types/ui/src/components/molecules/pagination/paging.d.ts +24 -0
- package/types/ui/src/components/molecules/person-card/index.d.ts +1 -0
- package/types/ui/src/components/molecules/person-card/person-card.d.ts +58 -0
- package/types/ui/src/components/molecules/pin-field/index.d.ts +1 -0
- package/types/ui/src/components/molecules/pin-field/pin-field.d.ts +26 -0
- package/types/ui/src/components/molecules/poster-card/index.d.ts +1 -0
- package/types/ui/src/components/molecules/poster-card/poster-card.d.ts +22 -0
- package/types/ui/src/components/molecules/section/index.d.ts +1 -0
- package/types/ui/src/components/molecules/section/section.d.ts +54 -0
- package/types/ui/src/components/molecules/segment-group/index.d.ts +2 -0
- package/types/ui/src/components/molecules/segment-group/segment-group-context.d.ts +17 -0
- package/types/ui/src/components/molecules/segment-group/segment-group-item.d.ts +58 -0
- package/types/ui/src/components/molecules/segment-group/segment-group.d.ts +29 -0
- package/types/ui/src/components/molecules/select/index.d.ts +1 -0
- package/types/ui/src/components/molecules/select/select-context.d.ts +54 -0
- package/types/ui/src/components/molecules/select/select-item.d.ts +39 -0
- package/types/ui/src/components/molecules/select/select-options-dialog.d.ts +3 -0
- package/types/ui/src/components/molecules/select/select-options.d.ts +3 -0
- package/types/ui/src/components/molecules/select/select-selection.d.ts +24 -0
- package/types/ui/src/components/molecules/select/select-surface.d.ts +17 -0
- package/types/ui/src/components/molecules/select/select.d.ts +112 -0
- package/types/ui/src/components/molecules/stat-card/index.d.ts +1 -0
- package/types/ui/src/components/molecules/stat-card/stat-card.d.ts +46 -0
- package/types/ui/src/components/molecules/stepper/index.d.ts +1 -0
- package/types/ui/src/components/molecules/stepper/stepper-context.d.ts +44 -0
- package/types/ui/src/components/molecules/stepper/stepper-item.d.ts +110 -0
- package/types/ui/src/components/molecules/stepper/stepper-list.d.ts +12 -0
- package/types/ui/src/components/molecules/stepper/stepper.d.ts +97 -0
- package/types/ui/src/components/molecules/stepper/use-steps.d.ts +40 -0
- package/types/ui/src/components/molecules/theme-switch/index.d.ts +1 -0
- package/types/ui/src/components/molecules/theme-switch/theme-switch.d.ts +19 -0
- package/types/ui/src/components/molecules/timeline/index.d.ts +1 -0
- package/types/ui/src/components/molecules/timeline/timeline.d.ts +55 -0
- package/types/ui/src/components/molecules/tooltip/index.d.ts +1 -0
- package/types/ui/src/components/molecules/tooltip/tooltip.d.ts +9 -0
- package/types/ui/src/components/molecules/tooltip/tooltip.web.d.ts +4 -0
- package/types/ui/src/components/organisms/chart/chart-context.d.ts +38 -0
- package/types/ui/src/components/organisms/chart/chart-marks.d.ts +32 -0
- package/types/ui/src/components/organisms/chart/chart-parts.d.ts +41 -0
- package/types/ui/src/components/organisms/chart/chart-path.d.ts +28 -0
- package/types/ui/src/components/organisms/chart/chart-scale.d.ts +82 -0
- package/types/ui/src/components/organisms/chart/chart.d.ts +63 -0
- package/types/ui/src/components/organisms/chart/index.d.ts +5 -0
- package/types/ui/src/components/organisms/code-block/code-block.d.ts +23 -0
- package/types/ui/src/components/organisms/code-block/code-tokens.d.ts +15 -0
- package/types/ui/src/components/organisms/code-block/index.d.ts +1 -0
- package/types/ui/src/components/organisms/command/command-context.d.ts +31 -0
- package/types/ui/src/components/organisms/command/command-keys-types.d.ts +11 -0
- package/types/ui/src/components/organisms/command/command-keys.d.ts +3 -0
- package/types/ui/src/components/organisms/command/command-keys.web.d.ts +3 -0
- package/types/ui/src/components/organisms/command/command-list.d.ts +46 -0
- package/types/ui/src/components/organisms/command/command-parts.d.ts +24 -0
- package/types/ui/src/components/organisms/command/command-row.d.ts +15 -0
- package/types/ui/src/components/organisms/command/command.d.ts +45 -0
- package/types/ui/src/components/organisms/command/index.d.ts +7 -0
- package/types/ui/src/components/organisms/dialog/confirm-dialog/confirm-dialog.d.ts +12 -0
- package/types/ui/src/components/organisms/dialog/confirm-dialog/confirm.d.ts +16 -0
- package/types/ui/src/components/organisms/dialog/confirm-dialog/index.d.ts +2 -0
- package/types/ui/src/components/organisms/dialog/dialog-actions.d.ts +29 -0
- package/types/ui/src/components/organisms/dialog/dialog-parts.d.ts +20 -0
- package/types/ui/src/components/organisms/dialog/dialog.d.ts +55 -0
- package/types/ui/src/components/organisms/dialog/index.d.ts +3 -0
- package/types/ui/src/components/organisms/drawer/drawer-parts.d.ts +29 -0
- package/types/ui/src/components/organisms/drawer/drawer-slide.d.ts +20 -0
- package/types/ui/src/components/organisms/drawer/drawer.d.ts +64 -0
- package/types/ui/src/components/organisms/drawer/index.d.ts +2 -0
- package/types/ui/src/components/organisms/index.d.ts +31 -0
- package/types/ui/src/components/organisms/keyboard/index.d.ts +8 -0
- package/types/ui/src/components/organisms/keyboard/key.d.ts +57 -0
- package/types/ui/src/components/organisms/keyboard/keyboard-layouts.d.ts +27 -0
- package/types/ui/src/components/organisms/keyboard/search-keyboard/index.d.ts +1 -0
- package/types/ui/src/components/organisms/keyboard/search-keyboard/search-keyboard.d.ts +19 -0
- package/types/ui/src/components/organisms/keyboard/url-keyboard/index.d.ts +1 -0
- package/types/ui/src/components/organisms/keyboard/url-keyboard/url-keyboard.d.ts +20 -0
- package/types/ui/src/components/organisms/keyboard/use-physical-typing.d.ts +2 -0
- package/types/ui/src/components/organisms/kroma-intro/animations.d.ts +2 -0
- package/types/ui/src/components/organisms/kroma-intro/constants.d.ts +14 -0
- package/types/ui/src/components/organisms/kroma-intro/css-intro.d.ts +12 -0
- package/types/ui/src/components/organisms/kroma-intro/index.d.ts +3 -0
- package/types/ui/src/components/organisms/kroma-intro/intro-scene.d.ts +21 -0
- package/types/ui/src/components/organisms/kroma-intro/intro-shell.d.ts +10 -0
- package/types/ui/src/components/organisms/kroma-intro/kroma-intro.d.ts +3 -0
- package/types/ui/src/components/organisms/kroma-intro/kroma-intro.web.d.ts +33 -0
- package/types/ui/src/components/organisms/kroma-intro/use-intro-exit.d.ts +21 -0
- package/types/ui/src/components/organisms/kroma-intro/use-intro-keys.d.ts +19 -0
- package/types/ui/src/components/organisms/menu/index.d.ts +1 -0
- package/types/ui/src/components/organisms/menu/menu-context.d.ts +32 -0
- package/types/ui/src/components/organisms/menu/menu-item.d.ts +57 -0
- package/types/ui/src/components/organisms/menu/menu-surface-dialog.d.ts +25 -0
- package/types/ui/src/components/organisms/menu/menu-surface.d.ts +3 -0
- package/types/ui/src/components/organisms/menu/menu.d.ts +49 -0
- package/types/ui/src/components/organisms/nearby-tv-list/index.d.ts +2 -0
- package/types/ui/src/components/organisms/nearby-tv-list/nearby-tv-list.d.ts +12 -0
- package/types/ui/src/components/organisms/perf-hud/index.d.ts +1 -0
- package/types/ui/src/components/organisms/perf-hud/perf-chart.d.ts +5 -0
- package/types/ui/src/components/organisms/perf-hud/perf-hud.d.ts +4 -0
- package/types/ui/src/components/organisms/player/hooks/use-drag-track.d.ts +22 -0
- package/types/ui/src/components/organisms/player/hooks/use-grid-focus.d.ts +19 -0
- package/types/ui/src/components/organisms/player/hooks/use-idle-cursor.d.ts +7 -0
- package/types/ui/src/components/organisms/player/hooks/use-list-focus.d.ts +40 -0
- package/types/ui/src/components/organisms/player/hooks/use-player-credits.d.ts +22 -0
- package/types/ui/src/components/organisms/player/hooks/use-player-ending.d.ts +37 -0
- package/types/ui/src/components/organisms/player/hooks/use-player-keys.d.ts +8 -0
- package/types/ui/src/components/organisms/player/hooks/use-player-keys.web.d.ts +5 -0
- package/types/ui/src/components/organisms/player/hooks/use-player-nav.d.ts +58 -0
- package/types/ui/src/components/organisms/player/hooks/use-player-outro.d.ts +14 -0
- package/types/ui/src/components/organisms/player/hooks/use-seek-nudge.d.ts +8 -0
- package/types/ui/src/components/organisms/player/index.d.ts +22 -0
- package/types/ui/src/components/organisms/player/lib/audio-filter.d.ts +15 -0
- package/types/ui/src/components/organisms/player/lib/chapters.d.ts +16 -0
- package/types/ui/src/components/organisms/player/lib/chart-geometry.d.ts +46 -0
- package/types/ui/src/components/organisms/player/lib/fmt.d.ts +19 -0
- package/types/ui/src/components/organisms/player/lib/lean-stats.d.ts +34 -0
- package/types/ui/src/components/organisms/player/lib/metrics.d.ts +40 -0
- package/types/ui/src/components/organisms/player/lib/nav-keys.d.ts +19 -0
- package/types/ui/src/components/organisms/player/lib/nav.d.ts +38 -0
- package/types/ui/src/components/organisms/player/lib/panel-header.d.ts +12 -0
- package/types/ui/src/components/organisms/player/lib/panel-slide.d.ts +16 -0
- package/types/ui/src/components/organisms/player/lib/player-keys.d.ts +44 -0
- package/types/ui/src/components/organisms/player/lib/seek-track.d.ts +19 -0
- package/types/ui/src/components/organisms/player/lib/stage-card.d.ts +31 -0
- package/types/ui/src/components/organisms/player/lib/stage-ratio.d.ts +4 -0
- package/types/ui/src/components/organisms/player/lib/stage-ratio.web.d.ts +2 -0
- package/types/ui/src/components/organisms/player/lib/style.d.ts +40 -0
- package/types/ui/src/components/organisms/player/lib/styles.d.ts +3 -0
- package/types/ui/src/components/organisms/player/lib/subtitle-appearance.d.ts +53 -0
- package/types/ui/src/components/organisms/player/lib/subtitle-edge.d.ts +3 -0
- package/types/ui/src/components/organisms/player/lib/subtitle-edge.web.d.ts +3 -0
- package/types/ui/src/components/organisms/player/lib/surface-shrink.d.ts +17 -0
- package/types/ui/src/components/organisms/player/lib/virtual-focus.d.ts +2 -0
- package/types/ui/src/components/organisms/player/lib/virtual-focus.web.d.ts +3 -0
- package/types/ui/src/components/organisms/player/parts/control-cluster/control-cluster.d.ts +32 -0
- package/types/ui/src/components/organisms/player/parts/control-cluster/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/credits-card/credits-card.d.ts +25 -0
- package/types/ui/src/components/organisms/player/parts/credits-card/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/icons.d.ts +39 -0
- package/types/ui/src/components/organisms/player/parts/post-play/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/post-play/post-play.d.ts +41 -0
- package/types/ui/src/components/organisms/player/parts/post-play/rise.d.ts +12 -0
- package/types/ui/src/components/organisms/player/parts/post-play/rise.web.d.ts +10 -0
- package/types/ui/src/components/organisms/player/parts/seek-bar/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/seek-bar/seek-bar.d.ts +22 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/audio-filter-panel.d.ts +11 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/audio-panel.d.ts +11 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/entries.d.ts +35 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/gen.d.ts +24 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/generate-wizard.d.ts +18 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/menu-list.d.ts +9 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/menu-row.d.ts +15 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/panel-style.d.ts +99 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/quality-panel.d.ts +16 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/report-panel.d.ts +8 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/select-row.d.ts +21 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/speed-panel.d.ts +10 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/sub-view.d.ts +16 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/subtitle-appearance-panel.d.ts +14 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/subtitle-appearance-parts.d.ts +27 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/subtitles-panel.d.ts +18 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/title-bar.d.ts +9 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/wizard-parts.d.ts +8 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings-panel.d.ts +40 -0
- package/types/ui/src/components/organisms/player/parts/skip-intro-button/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/skip-intro-button/skip-intro-button.d.ts +22 -0
- package/types/ui/src/components/organisms/player/parts/stage/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/stage/stage-overlay.d.ts +13 -0
- package/types/ui/src/components/organisms/player/parts/stage/stage.d.ts +30 -0
- package/types/ui/src/components/organisms/player/parts/stats-panel/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/stats-panel/stats-chart.d.ts +16 -0
- package/types/ui/src/components/organisms/player/parts/stats-panel/stats-panel.d.ts +14 -0
- package/types/ui/src/components/organisms/player/parts/storyboard-thumb/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/storyboard-thumb/storyboard-thumb.d.ts +4 -0
- package/types/ui/src/components/organisms/player/parts/subtitle-renderer/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/subtitle-renderer/subtitle-renderer.d.ts +32 -0
- package/types/ui/src/components/organisms/player/parts/surface-radius.d.ts +9 -0
- package/types/ui/src/components/organisms/player/parts/top-bar/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/top-bar/top-bar.d.ts +24 -0
- package/types/ui/src/components/organisms/player/parts/transport/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/transport/transport.d.ts +19 -0
- package/types/ui/src/components/organisms/player/parts/up-next-card/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/up-next-card/up-next-card.d.ts +37 -0
- package/types/ui/src/components/organisms/player/parts/up-next-sheet/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/up-next-sheet/slide.d.ts +5 -0
- package/types/ui/src/components/organisms/player/parts/up-next-sheet/slide.web.d.ts +5 -0
- package/types/ui/src/components/organisms/player/parts/up-next-sheet/up-next-sheet.d.ts +17 -0
- package/types/ui/src/components/organisms/player/player-chrome-state.d.ts +11 -0
- package/types/ui/src/components/organisms/player/player-input.d.ts +16 -0
- package/types/ui/src/components/organisms/player/player-parts.d.ts +34 -0
- package/types/ui/src/components/organisms/player/player.d.ts +63 -0
- package/types/ui/src/components/organisms/player/types.d.ts +226 -0
- package/types/ui/src/components/organisms/rail/index.d.ts +1 -0
- package/types/ui/src/components/organisms/rail/rail-context.d.ts +7 -0
- package/types/ui/src/components/organisms/rail/rail-row.d.ts +22 -0
- package/types/ui/src/components/organisms/rail/rail.d.ts +63 -0
- package/types/ui/src/components/organisms/resizable/index.d.ts +8 -0
- package/types/ui/src/components/organisms/resizable/resizable-context.d.ts +39 -0
- package/types/ui/src/components/organisms/resizable/resizable-cursor.d.ts +3 -0
- package/types/ui/src/components/organisms/resizable/resizable-cursor.web.d.ts +4 -0
- package/types/ui/src/components/organisms/resizable/resizable-handle.d.ts +30 -0
- package/types/ui/src/components/organisms/resizable/resizable-keys-types.d.ts +11 -0
- package/types/ui/src/components/organisms/resizable/resizable-keys.d.ts +3 -0
- package/types/ui/src/components/organisms/resizable/resizable-keys.web.d.ts +3 -0
- package/types/ui/src/components/organisms/resizable/resizable-layout.d.ts +55 -0
- package/types/ui/src/components/organisms/resizable/resizable-panel.d.ts +55 -0
- package/types/ui/src/components/organisms/resizable/resizable-store.d.ts +18 -0
- package/types/ui/src/components/organisms/resizable/resizable.d.ts +59 -0
- package/types/ui/src/components/organisms/splash-backdrop/index.d.ts +2 -0
- package/types/ui/src/components/organisms/splash-backdrop/splash-backdrop.d.ts +22 -0
- package/types/ui/src/components/organisms/table/index.d.ts +1 -0
- package/types/ui/src/components/organisms/table/table-cell.d.ts +9 -0
- package/types/ui/src/components/organisms/table/table-columns.d.ts +32 -0
- package/types/ui/src/components/organisms/table/table-context.d.ts +17 -0
- package/types/ui/src/components/organisms/table/table-frame.d.ts +9 -0
- package/types/ui/src/components/organisms/table/table-place.d.ts +8 -0
- package/types/ui/src/components/organisms/table/table-row.d.ts +12 -0
- package/types/ui/src/components/organisms/table/table-sort-cell.d.ts +14 -0
- package/types/ui/src/components/organisms/table/table-sort.d.ts +38 -0
- package/types/ui/src/components/organisms/table/table.d.ts +65 -0
- package/types/ui/src/components/organisms/toast/index.d.ts +1 -0
- package/types/ui/src/components/organisms/toast/toast-card.d.ts +8 -0
- package/types/ui/src/components/organisms/toast/toast.d.ts +54 -0
- package/types/ui/src/components/organisms/virtual/clip.d.ts +25 -0
- package/types/ui/src/components/organisms/virtual/index.d.ts +2 -0
- package/types/ui/src/components/organisms/virtual/moving-strip.d.ts +16 -0
- package/types/ui/src/components/organisms/virtual/strip-motion.d.ts +4 -0
- package/types/ui/src/components/organisms/virtual/virtual-grid/grid-row.d.ts +25 -0
- package/types/ui/src/components/organisms/virtual/virtual-grid/grid-rows.d.ts +57 -0
- package/types/ui/src/components/organisms/virtual/virtual-grid/index.d.ts +1 -0
- package/types/ui/src/components/organisms/virtual/virtual-grid/use-wheel-rows.d.ts +8 -0
- package/types/ui/src/components/organisms/virtual/virtual-grid/virtual-grid.d.ts +54 -0
- package/types/ui/src/components/organisms/virtual/virtual-rail/edge-scroll.d.ts +38 -0
- package/types/ui/src/components/organisms/virtual/virtual-rail/index.d.ts +1 -0
- package/types/ui/src/components/organisms/virtual/virtual-rail/rail-edge.d.ts +11 -0
- package/types/ui/src/components/organisms/virtual/virtual-rail/use-key-grace.d.ts +6 -0
- package/types/ui/src/components/organisms/virtual/virtual-rail/virtual-rail.d.ts +19 -0
- package/types/ui/src/components/templates/index.d.ts +2 -0
- package/types/ui/src/components/templates/tv-stage/index.d.ts +1 -0
- package/types/ui/src/components/templates/tv-stage/tv-stage.d.ts +7 -0
- package/types/ui/src/core/atomic/index.d.ts +5 -0
- package/types/ui/src/core/atomic/inject.d.ts +3 -0
- package/types/ui/src/core/atomic/register.d.ts +13 -0
- package/types/ui/src/core/atomic/static-style.d.ts +8 -0
- package/types/ui/src/core/breakpoint-cascade.d.ts +45 -0
- package/types/ui/src/core/breakpoint.d.ts +21 -0
- package/types/ui/src/core/color.d.ts +21 -0
- package/types/ui/src/core/index.d.ts +20 -0
- package/types/ui/src/core/normalize.d.ts +21 -0
- package/types/ui/src/core/recipe.d.ts +21 -0
- package/types/ui/src/core/shorthand-resolve.d.ts +54 -0
- package/types/ui/src/core/shorthands.d.ts +187 -0
- package/types/ui/src/core/stabilise.d.ts +14 -0
- package/types/ui/src/core/states.d.ts +16 -0
- package/types/ui/src/core/styles.d.ts +59 -0
- package/types/ui/src/core/theme-create.d.ts +64 -0
- package/types/ui/src/core/theme-mode.d.ts +15 -0
- package/types/ui/src/core/theme.d.ts +72 -0
- package/types/ui/src/core/tokens/colors.d.ts +109 -0
- package/types/ui/src/core/tokens/css-palette.d.ts +19 -0
- package/types/ui/src/core/tokens/css-var.d.ts +8 -0
- package/types/ui/src/core/tokens/effects.d.ts +103 -0
- package/types/ui/src/core/tokens/index.d.ts +10 -0
- package/types/ui/src/core/tokens/layout.d.ts +94 -0
- package/types/ui/src/core/tokens/mobile.d.ts +91 -0
- package/types/ui/src/core/tokens/registry.d.ts +4 -0
- package/types/ui/src/core/tokens/typography.d.ts +232 -0
- package/types/ui/src/core/types.d.ts +122 -0
- package/types/ui/src/core/use-breakpoint.d.ts +16 -0
- package/types/ui/src/core/use-theme.d.ts +30 -0
- package/types/ui/src/core/web-style.d.ts +91 -0
- package/types/ui/src/index.d.ts +20 -0
- package/types/ui/src/kit.d.ts +74 -0
- package/types/ui/src/lib/a11y-props.d.ts +26 -0
- package/types/ui/src/lib/a11y.d.ts +8 -0
- package/types/ui/src/lib/anchor.d.ts +32 -0
- package/types/ui/src/lib/anchored-keys.d.ts +41 -0
- package/types/ui/src/lib/anchored-panel.d.ts +42 -0
- package/types/ui/src/lib/anchored-popup.d.ts +17 -0
- package/types/ui/src/lib/box-layers.d.ts +10 -0
- package/types/ui/src/lib/box-style.d.ts +16 -0
- package/types/ui/src/lib/caret.d.ts +8 -0
- package/types/ui/src/lib/classed.d.ts +3 -0
- package/types/ui/src/lib/cover-rect.d.ts +26 -0
- package/types/ui/src/lib/css.d.ts +19 -0
- package/types/ui/src/lib/css.web.d.ts +25 -0
- package/types/ui/src/lib/cursor.d.ts +17 -0
- package/types/ui/src/lib/dismiss-backdrop.d.ts +11 -0
- package/types/ui/src/lib/dom.d.ts +12 -0
- package/types/ui/src/lib/drag-select.d.ts +1 -0
- package/types/ui/src/lib/drag-select.web.d.ts +13 -0
- package/types/ui/src/lib/ease.d.ts +13 -0
- package/types/ui/src/lib/escape-guard.d.ts +1 -0
- package/types/ui/src/lib/expo-image-backend.d.ts +5 -0
- package/types/ui/src/lib/field-shell.d.ts +140 -0
- package/types/ui/src/lib/focus-entry.d.ts +20 -0
- package/types/ui/src/lib/focus-here.d.ts +11 -0
- package/types/ui/src/lib/focus-here.web.d.ts +7 -0
- package/types/ui/src/lib/focus-lift.d.ts +39 -0
- package/types/ui/src/lib/focus-nav.d.ts +3 -0
- package/types/ui/src/lib/focus-nav.web.d.ts +2 -0
- package/types/ui/src/lib/focus-platform.d.ts +30 -0
- package/types/ui/src/lib/focus-presence.d.ts +5 -0
- package/types/ui/src/lib/focus-remote.d.ts +39 -0
- package/types/ui/src/lib/focus-remote.web.d.ts +16 -0
- package/types/ui/src/lib/focus-report.d.ts +18 -0
- package/types/ui/src/lib/focus-root.d.ts +22 -0
- package/types/ui/src/lib/focus-root.web.d.ts +3 -0
- package/types/ui/src/lib/focus-scope.d.ts +59 -0
- package/types/ui/src/lib/focus-scroll.d.ts +69 -0
- package/types/ui/src/lib/focus-tab.d.ts +12 -0
- package/types/ui/src/lib/focus-transition.d.ts +11 -0
- package/types/ui/src/lib/focus-transition.web.d.ts +3 -0
- package/types/ui/src/lib/focus-types.d.ts +18 -0
- package/types/ui/src/lib/focus-visible.d.ts +21 -0
- package/types/ui/src/lib/form/index.d.ts +4 -0
- package/types/ui/src/lib/form/message.d.ts +10 -0
- package/types/ui/src/lib/form/standard-schema.d.ts +27 -0
- package/types/ui/src/lib/form/use-form.d.ts +59 -0
- package/types/ui/src/lib/fuzzy-search.d.ts +20 -0
- package/types/ui/src/lib/genre-icon.d.ts +4 -0
- package/types/ui/src/lib/glyph.d.ts +24 -0
- package/types/ui/src/lib/group-shape.d.ts +44 -0
- package/types/ui/src/lib/hover-passthrough.d.ts +9 -0
- package/types/ui/src/lib/icon-catalog.d.ts +19 -0
- package/types/ui/src/lib/icon-search.d.ts +18 -0
- package/types/ui/src/lib/icons/every-glyph.d.ts +4 -0
- package/types/ui/src/lib/icons/every-glyph.web.d.ts +4 -0
- package/types/ui/src/lib/icons/glyph-source.d.ts +3 -0
- package/types/ui/src/lib/icons/glyphs.d.ts +34 -0
- package/types/ui/src/lib/icons/library.d.ts +19 -0
- package/types/ui/src/lib/icons/stroke-prop.d.ts +2 -0
- package/types/ui/src/lib/icons/stroke-prop.web.d.ts +2 -0
- package/types/ui/src/lib/image-backend.d.ts +26 -0
- package/types/ui/src/lib/input-gate.d.ts +11 -0
- package/types/ui/src/lib/input-source.d.ts +3 -0
- package/types/ui/src/lib/landmark.d.ts +4 -0
- package/types/ui/src/lib/landmark.web.d.ts +4 -0
- package/types/ui/src/lib/lockup-paths.d.ts +10 -0
- package/types/ui/src/lib/loop.d.ts +15 -0
- package/types/ui/src/lib/loop.web.d.ts +5 -0
- package/types/ui/src/lib/modal-portal.d.ts +3 -0
- package/types/ui/src/lib/modal-portal.web.d.ts +8 -0
- package/types/ui/src/lib/name-of.d.ts +9 -0
- package/types/ui/src/lib/nav-style.d.ts +5 -0
- package/types/ui/src/lib/overlay-host.d.ts +23 -0
- package/types/ui/src/lib/part-context.d.ts +8 -0
- package/types/ui/src/lib/perf-memory.d.ts +12 -0
- package/types/ui/src/lib/perf-memory.web.d.ts +4 -0
- package/types/ui/src/lib/perf.d.ts +35 -0
- package/types/ui/src/lib/platform.d.ts +3 -0
- package/types/ui/src/lib/platform.web.d.ts +2 -0
- package/types/ui/src/lib/portal.d.ts +10 -0
- package/types/ui/src/lib/portal.web.d.ts +17 -0
- package/types/ui/src/lib/press-dip.d.ts +26 -0
- package/types/ui/src/lib/press-guard.d.ts +8 -0
- package/types/ui/src/lib/progress-motion.d.ts +11 -0
- package/types/ui/src/lib/progress-motion.web.d.ts +11 -0
- package/types/ui/src/lib/reduced-motion.d.ts +7 -0
- package/types/ui/src/lib/report-categories.d.ts +10 -0
- package/types/ui/src/lib/ring-room.d.ts +27 -0
- package/types/ui/src/lib/ring-scope.d.ts +6 -0
- package/types/ui/src/lib/ring.d.ts +27 -0
- package/types/ui/src/lib/sample-art.d.ts +9 -0
- package/types/ui/src/lib/scroll-lock.d.ts +1 -0
- package/types/ui/src/lib/scroll-lock.web.d.ts +6 -0
- package/types/ui/src/lib/shake.d.ts +8 -0
- package/types/ui/src/lib/shake.web.d.ts +4 -0
- package/types/ui/src/lib/slot.d.ts +36 -0
- package/types/ui/src/lib/sort-icon.d.ts +5 -0
- package/types/ui/src/lib/splash-motion.d.ts +25 -0
- package/types/ui/src/lib/splash-motion.web.d.ts +15 -0
- package/types/ui/src/lib/stable-callback.d.ts +9 -0
- package/types/ui/src/lib/surface-bands.d.ts +26 -0
- package/types/ui/src/lib/surface-presentation.d.ts +17 -0
- package/types/ui/src/lib/surface-shell.d.ts +21 -0
- package/types/ui/src/lib/svg.d.ts +1 -0
- package/types/ui/src/lib/svg.web.d.ts +17 -0
- package/types/ui/src/lib/theme-audio.d.ts +7 -0
- package/types/ui/src/lib/tv-remote.d.ts +11 -0
- package/types/ui/src/lib/use-complete-once.d.ts +12 -0
- package/types/ui/src/lib/use-controllable.d.ts +1 -0
- package/types/ui/src/lib/use-copy.d.ts +20 -0
- package/types/ui/src/lib/use-growing-count.d.ts +12 -0
- package/types/ui/src/lib/use-settled-value.d.ts +5 -0
- package/types/ui/src/lib/wheel-pan.d.ts +7 -0
- package/types/ui/src/lib/wheel-pan.web.d.ts +11 -0
- package/types/ui/src/lib/wheel-paths.d.ts +5 -0
- package/types/ui/src/services/aiSuggest.d.ts +15 -0
- package/types/ui/src/services/auth.d.ts +41 -0
- package/types/ui/src/services/cast-context.d.ts +33 -0
- package/types/ui/src/services/cast-events.d.ts +23 -0
- package/types/ui/src/services/cast-lan.d.ts +21 -0
- package/types/ui/src/services/cast-position.d.ts +14 -0
- package/types/ui/src/services/cast.d.ts +20 -0
- package/types/ui/src/services/format.d.ts +25 -0
- package/types/ui/src/services/i18n.d.ts +18 -0
- package/types/ui/src/services/locale.d.ts +18 -0
- package/types/ui/src/services/playback.d.ts +49 -0
- package/types/ui/src/services/storyboard.d.ts +33 -0
- package/types/ui/src/services/subtitleGenerations.d.ts +13 -0
- package/types/ui/src/services/themeAudio.d.ts +19 -0
- package/types/ui/src/services/themeAudio.native.d.ts +8 -0
- package/types/ui/src/ssr.d.ts +20 -0
- package/types/ui/src/styles/motion.d.ts +2 -0
- package/types/ui/src/styles/page.d.ts +2 -0
- package/types/ui/src/styles/reset.d.ts +2 -0
- package/types/ui/src/styles/sheet.d.ts +18 -0
- package/types/ui/src/testing.d.ts +27 -0
- package/types/ui/src/workbench-config.d.ts +9 -0
|
@@ -0,0 +1,678 @@
|
|
|
1
|
+
//! The core schema: connection pragmas, tables, indices and the canonical
|
|
2
|
+
//! column lists item/file SELECTs project.
|
|
3
|
+
|
|
4
|
+
pub(crate) const PRAGMAS: &str = "
|
|
5
|
+
PRAGMA journal_mode = WAL;
|
|
6
|
+
PRAGMA synchronous = NORMAL;
|
|
7
|
+
PRAGMA foreign_keys = ON;
|
|
8
|
+
PRAGMA temp_store = MEMORY;
|
|
9
|
+
PRAGMA busy_timeout = 5000;
|
|
10
|
+
PRAGMA mmap_size = 268435456;
|
|
11
|
+
PRAGMA cache_size = -16000;
|
|
12
|
+
-- ~40 MB checkpoints instead of the 4 MB default: frequent checkpoints
|
|
13
|
+
-- stall readers on HDD during scan/probe bursts.
|
|
14
|
+
PRAGMA wal_autocheckpoint = 10000;
|
|
15
|
+
";
|
|
16
|
+
|
|
17
|
+
pub(crate) const SCHEMA: &str = "
|
|
18
|
+
CREATE TABLE IF NOT EXISTS libraries (
|
|
19
|
+
id TEXT PRIMARY KEY,
|
|
20
|
+
name TEXT NOT NULL,
|
|
21
|
+
kind TEXT NOT NULL,
|
|
22
|
+
path TEXT NOT NULL,
|
|
23
|
+
added_at TEXT NOT NULL
|
|
24
|
+
);
|
|
25
|
+
CREATE TABLE IF NOT EXISTS shows (
|
|
26
|
+
id TEXT PRIMARY KEY,
|
|
27
|
+
library TEXT NOT NULL REFERENCES libraries(id) ON DELETE CASCADE,
|
|
28
|
+
title TEXT NOT NULL,
|
|
29
|
+
year INTEGER,
|
|
30
|
+
metadata TEXT,
|
|
31
|
+
added_at TEXT NOT NULL
|
|
32
|
+
);
|
|
33
|
+
CREATE TABLE IF NOT EXISTS items (
|
|
34
|
+
id TEXT PRIMARY KEY,
|
|
35
|
+
kind TEXT NOT NULL,
|
|
36
|
+
title TEXT NOT NULL,
|
|
37
|
+
year INTEGER,
|
|
38
|
+
duration_ms INTEGER,
|
|
39
|
+
container TEXT NOT NULL,
|
|
40
|
+
v_codec TEXT,
|
|
41
|
+
v_width INTEGER,
|
|
42
|
+
v_height INTEGER,
|
|
43
|
+
v_hdr INTEGER,
|
|
44
|
+
v_bit_depth INTEGER,
|
|
45
|
+
a_codec TEXT,
|
|
46
|
+
a_channels INTEGER,
|
|
47
|
+
a_language TEXT,
|
|
48
|
+
subtitles TEXT NOT NULL DEFAULT '[]',
|
|
49
|
+
library TEXT NOT NULL REFERENCES libraries(id) ON DELETE CASCADE,
|
|
50
|
+
show_id TEXT REFERENCES shows(id) ON DELETE CASCADE,
|
|
51
|
+
show_title TEXT,
|
|
52
|
+
season INTEGER,
|
|
53
|
+
episode INTEGER,
|
|
54
|
+
episode_end INTEGER,
|
|
55
|
+
episode_title TEXT,
|
|
56
|
+
rel_path TEXT,
|
|
57
|
+
abs_path TEXT,
|
|
58
|
+
metadata TEXT,
|
|
59
|
+
added_at TEXT NOT NULL
|
|
60
|
+
);
|
|
61
|
+
CREATE TABLE IF NOT EXISTS files (
|
|
62
|
+
id TEXT PRIMARY KEY,
|
|
63
|
+
item_id TEXT NOT NULL REFERENCES items(id) ON DELETE CASCADE,
|
|
64
|
+
abs_path TEXT NOT NULL UNIQUE,
|
|
65
|
+
rel_path TEXT,
|
|
66
|
+
container TEXT NOT NULL DEFAULT '',
|
|
67
|
+
size INTEGER,
|
|
68
|
+
mtime INTEGER,
|
|
69
|
+
edition TEXT,
|
|
70
|
+
duration_ms INTEGER,
|
|
71
|
+
v_codec TEXT,
|
|
72
|
+
v_width INTEGER,
|
|
73
|
+
v_height INTEGER,
|
|
74
|
+
v_hdr INTEGER,
|
|
75
|
+
v_bit_depth INTEGER,
|
|
76
|
+
a_codec TEXT,
|
|
77
|
+
a_channels INTEGER,
|
|
78
|
+
a_language TEXT,
|
|
79
|
+
audio_tracks TEXT NOT NULL DEFAULT '[]',
|
|
80
|
+
subtitles TEXT NOT NULL DEFAULT '[]',
|
|
81
|
+
probed INTEGER NOT NULL DEFAULT 0
|
|
82
|
+
);
|
|
83
|
+
CREATE INDEX IF NOT EXISTS idx_items_library ON items(library);
|
|
84
|
+
CREATE INDEX IF NOT EXISTS idx_items_kind ON items(kind);
|
|
85
|
+
CREATE INDEX IF NOT EXISTS idx_items_show ON items(show_id, season, episode);
|
|
86
|
+
CREATE INDEX IF NOT EXISTS idx_items_added ON items(added_at DESC);
|
|
87
|
+
CREATE INDEX IF NOT EXISTS idx_shows_library ON shows(library);
|
|
88
|
+
CREATE INDEX IF NOT EXISTS idx_files_item ON files(item_id);
|
|
89
|
+
CREATE INDEX IF NOT EXISTS idx_files_abs ON files(abs_path);
|
|
90
|
+
CREATE INDEX IF NOT EXISTS idx_files_probed ON files(probed);
|
|
91
|
+
|
|
92
|
+
-- Skip-intro / next-up markers. One row per (item, kind); kind is
|
|
93
|
+
-- 'intro' | 'credits' | …; bounds in ms.
|
|
94
|
+
CREATE TABLE IF NOT EXISTS markers (
|
|
95
|
+
item_id TEXT NOT NULL REFERENCES items(id) ON DELETE CASCADE,
|
|
96
|
+
kind TEXT NOT NULL,
|
|
97
|
+
start_ms INTEGER NOT NULL,
|
|
98
|
+
end_ms INTEGER NOT NULL,
|
|
99
|
+
source TEXT NOT NULL,
|
|
100
|
+
updated_at TEXT NOT NULL,
|
|
101
|
+
PRIMARY KEY (item_id, kind)
|
|
102
|
+
);
|
|
103
|
+
|
|
104
|
+
-- EBU R128 loudness per (file, audio track), written by pipeline.loudness.
|
|
105
|
+
-- Raw measured values are kept so playback-side remediation can reuse them.
|
|
106
|
+
CREATE TABLE IF NOT EXISTS audio_analysis (
|
|
107
|
+
file_id TEXT NOT NULL REFERENCES files(id) ON DELETE CASCADE,
|
|
108
|
+
track_index INTEGER NOT NULL,
|
|
109
|
+
lufs_i REAL NOT NULL,
|
|
110
|
+
lra REAL NOT NULL,
|
|
111
|
+
true_peak REAL NOT NULL,
|
|
112
|
+
dialog_lufs REAL,
|
|
113
|
+
verdict TEXT NOT NULL,
|
|
114
|
+
updated_at TEXT NOT NULL,
|
|
115
|
+
PRIMARY KEY (file_id, track_index)
|
|
116
|
+
);
|
|
117
|
+
|
|
118
|
+
-- Subtitles fetched from an online provider, converted to WebVTT and cached
|
|
119
|
+
-- under <data>/subs/downloaded/; merged into the item's subtitle list.
|
|
120
|
+
CREATE TABLE IF NOT EXISTS downloaded_subtitles (
|
|
121
|
+
id TEXT PRIMARY KEY,
|
|
122
|
+
item_id TEXT NOT NULL REFERENCES items(id) ON DELETE CASCADE,
|
|
123
|
+
language TEXT,
|
|
124
|
+
label TEXT NOT NULL,
|
|
125
|
+
provider TEXT NOT NULL,
|
|
126
|
+
path TEXT NOT NULL,
|
|
127
|
+
created_at TEXT NOT NULL
|
|
128
|
+
);
|
|
129
|
+
CREATE INDEX IF NOT EXISTS idx_dl_subs_item ON downloaded_subtitles(item_id);
|
|
130
|
+
|
|
131
|
+
CREATE TABLE IF NOT EXISTS users (
|
|
132
|
+
id TEXT PRIMARY KEY,
|
|
133
|
+
email TEXT NOT NULL UNIQUE COLLATE NOCASE,
|
|
134
|
+
username TEXT NOT NULL,
|
|
135
|
+
password_hash TEXT NOT NULL,
|
|
136
|
+
avatar_url TEXT,
|
|
137
|
+
permissions TEXT NOT NULL DEFAULT '[\"playback\"]',
|
|
138
|
+
created_at TEXT NOT NULL
|
|
139
|
+
);
|
|
140
|
+
CREATE TABLE IF NOT EXISTS sessions (
|
|
141
|
+
token TEXT PRIMARY KEY,
|
|
142
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
143
|
+
created_at TEXT NOT NULL,
|
|
144
|
+
expires_at INTEGER NOT NULL
|
|
145
|
+
);
|
|
146
|
+
-- Long-lived per-device credential, exchanged for a short-lived session token
|
|
147
|
+
-- via /auth/token. `pin_verified` gates PIN-locked accounts: set once the
|
|
148
|
+
-- correct PIN is presented, letting silent refreshes skip re-prompting.
|
|
149
|
+
CREATE TABLE IF NOT EXISTS access_tokens (
|
|
150
|
+
token TEXT PRIMARY KEY,
|
|
151
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
152
|
+
created_at TEXT NOT NULL,
|
|
153
|
+
expires_at INTEGER NOT NULL,
|
|
154
|
+
pin_verified INTEGER NOT NULL DEFAULT 0,
|
|
155
|
+
last_seen TEXT
|
|
156
|
+
);
|
|
157
|
+
CREATE TABLE IF NOT EXISTS progress (
|
|
158
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
159
|
+
item_id TEXT NOT NULL REFERENCES items(id) ON DELETE CASCADE,
|
|
160
|
+
position_ms INTEGER NOT NULL,
|
|
161
|
+
duration_ms INTEGER,
|
|
162
|
+
updated_at TEXT NOT NULL,
|
|
163
|
+
PRIMARY KEY (user_id, item_id)
|
|
164
|
+
);
|
|
165
|
+
CREATE TABLE IF NOT EXISTS invites (
|
|
166
|
+
token TEXT PRIMARY KEY,
|
|
167
|
+
permissions TEXT NOT NULL DEFAULT '[\"playback\"]',
|
|
168
|
+
created_by TEXT REFERENCES users(id) ON DELETE SET NULL,
|
|
169
|
+
created_at TEXT NOT NULL,
|
|
170
|
+
expires_at INTEGER NOT NULL,
|
|
171
|
+
used_at TEXT
|
|
172
|
+
);
|
|
173
|
+
CREATE TABLE IF NOT EXISTS credential_resets (
|
|
174
|
+
token TEXT PRIMARY KEY,
|
|
175
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
176
|
+
code_hash TEXT NOT NULL,
|
|
177
|
+
attempts INTEGER NOT NULL DEFAULT 0,
|
|
178
|
+
created_by TEXT REFERENCES users(id) ON DELETE SET NULL,
|
|
179
|
+
created_at TEXT NOT NULL,
|
|
180
|
+
expires_at INTEGER NOT NULL,
|
|
181
|
+
used_at TEXT
|
|
182
|
+
);
|
|
183
|
+
-- `email` pins the address the link was minted for: changing the account's
|
|
184
|
+
-- address must not let an old link verify the new one.
|
|
185
|
+
CREATE TABLE IF NOT EXISTS email_verifications (
|
|
186
|
+
token TEXT PRIMARY KEY,
|
|
187
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
188
|
+
email TEXT NOT NULL,
|
|
189
|
+
created_by TEXT REFERENCES users(id) ON DELETE SET NULL,
|
|
190
|
+
created_at TEXT NOT NULL,
|
|
191
|
+
expires_at INTEGER NOT NULL,
|
|
192
|
+
used_at TEXT
|
|
193
|
+
);
|
|
194
|
+
CREATE TABLE IF NOT EXISTS reset_requests (
|
|
195
|
+
user_id TEXT PRIMARY KEY REFERENCES users(id) ON DELETE CASCADE,
|
|
196
|
+
created_at TEXT NOT NULL
|
|
197
|
+
);
|
|
198
|
+
-- `item_id` is a movie item id OR a show id; intentionally NOT an items FK
|
|
199
|
+
-- so a show can be marked watched as a whole.
|
|
200
|
+
CREATE TABLE IF NOT EXISTS watched (
|
|
201
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
202
|
+
item_id TEXT NOT NULL,
|
|
203
|
+
watched_at TEXT NOT NULL,
|
|
204
|
+
PRIMARY KEY (user_id, item_id)
|
|
205
|
+
);
|
|
206
|
+
-- Per-season TMDB cast (the show's seasons are derived from items, so this
|
|
207
|
+
-- holds the season-level credits keyed by (show, season number)).
|
|
208
|
+
CREATE TABLE IF NOT EXISTS season_meta (
|
|
209
|
+
show_id TEXT NOT NULL REFERENCES shows(id) ON DELETE CASCADE,
|
|
210
|
+
season INTEGER NOT NULL,
|
|
211
|
+
casts TEXT NOT NULL,
|
|
212
|
+
PRIMARY KEY (show_id, season)
|
|
213
|
+
);
|
|
214
|
+
-- Library missing-episode scan: aired TMDB episodes not on disk, recomputed
|
|
215
|
+
-- by the library.missing job. Title/poster are denormalized to avoid a join.
|
|
216
|
+
CREATE TABLE IF NOT EXISTS library_gaps (
|
|
217
|
+
show_id TEXT NOT NULL REFERENCES shows(id) ON DELETE CASCADE,
|
|
218
|
+
tmdb_id INTEGER NOT NULL,
|
|
219
|
+
title TEXT NOT NULL,
|
|
220
|
+
poster_url TEXT,
|
|
221
|
+
season INTEGER NOT NULL,
|
|
222
|
+
episode INTEGER NOT NULL,
|
|
223
|
+
air_date TEXT,
|
|
224
|
+
detected_at INTEGER NOT NULL,
|
|
225
|
+
PRIMARY KEY (show_id, season, episode)
|
|
226
|
+
);
|
|
227
|
+
-- Ma liste: user-bookmarked titles (movie item ids OR show ids; same
|
|
228
|
+
-- no-items-FK rationale as `watched`). Synced across web + TV.
|
|
229
|
+
CREATE TABLE IF NOT EXISTS my_list (
|
|
230
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
231
|
+
item_id TEXT NOT NULL,
|
|
232
|
+
added_at TEXT NOT NULL,
|
|
233
|
+
PRIMARY KEY (user_id, item_id)
|
|
234
|
+
);
|
|
235
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_user ON sessions(user_id);
|
|
236
|
+
CREATE INDEX IF NOT EXISTS idx_progress_user ON progress(user_id, updated_at DESC);
|
|
237
|
+
CREATE INDEX IF NOT EXISTS idx_watched_user ON watched(user_id);
|
|
238
|
+
CREATE INDEX IF NOT EXISTS idx_my_list_user ON my_list(user_id, added_at DESC);
|
|
239
|
+
|
|
240
|
+
CREATE TABLE IF NOT EXISTS settings (
|
|
241
|
+
key TEXT PRIMARY KEY,
|
|
242
|
+
value TEXT NOT NULL,
|
|
243
|
+
updated_at TEXT NOT NULL
|
|
244
|
+
);
|
|
245
|
+
CREATE TABLE IF NOT EXISTS play_history (
|
|
246
|
+
id TEXT PRIMARY KEY,
|
|
247
|
+
user_id TEXT,
|
|
248
|
+
username TEXT,
|
|
249
|
+
item_id TEXT,
|
|
250
|
+
kind TEXT NOT NULL,
|
|
251
|
+
title TEXT NOT NULL,
|
|
252
|
+
library TEXT,
|
|
253
|
+
started_at INTEGER NOT NULL,
|
|
254
|
+
ended_at INTEGER NOT NULL,
|
|
255
|
+
watched_ms INTEGER NOT NULL DEFAULT 0,
|
|
256
|
+
device TEXT,
|
|
257
|
+
player TEXT,
|
|
258
|
+
mode TEXT,
|
|
259
|
+
network TEXT,
|
|
260
|
+
video_label TEXT,
|
|
261
|
+
audio_label TEXT,
|
|
262
|
+
show_title TEXT,
|
|
263
|
+
season INTEGER,
|
|
264
|
+
episode INTEGER
|
|
265
|
+
);
|
|
266
|
+
CREATE INDEX IF NOT EXISTS idx_history_user ON play_history(user_id, ended_at DESC);
|
|
267
|
+
CREATE INDEX IF NOT EXISTS idx_history_ended ON play_history(ended_at DESC);
|
|
268
|
+
|
|
269
|
+
CREATE TABLE IF NOT EXISTS item_vectors (
|
|
270
|
+
id TEXT PRIMARY KEY,
|
|
271
|
+
dim INTEGER NOT NULL,
|
|
272
|
+
vec BLOB NOT NULL,
|
|
273
|
+
updated_at TEXT NOT NULL
|
|
274
|
+
);
|
|
275
|
+
|
|
276
|
+
-- Background job system (see services::jobs). Per-job schedule overrides,
|
|
277
|
+
-- one row per execution, and per-run log lines.
|
|
278
|
+
CREATE TABLE IF NOT EXISTS job_schedules (
|
|
279
|
+
key TEXT PRIMARY KEY,
|
|
280
|
+
schedule TEXT,
|
|
281
|
+
enabled INTEGER NOT NULL DEFAULT 1,
|
|
282
|
+
updated_at INTEGER NOT NULL
|
|
283
|
+
);
|
|
284
|
+
CREATE TABLE IF NOT EXISTS job_runs (
|
|
285
|
+
id TEXT PRIMARY KEY,
|
|
286
|
+
job_key TEXT NOT NULL,
|
|
287
|
+
trigger_kind TEXT NOT NULL,
|
|
288
|
+
status TEXT NOT NULL,
|
|
289
|
+
started_at INTEGER NOT NULL,
|
|
290
|
+
finished_at INTEGER,
|
|
291
|
+
progress_done INTEGER,
|
|
292
|
+
progress_total INTEGER,
|
|
293
|
+
error TEXT
|
|
294
|
+
);
|
|
295
|
+
CREATE INDEX IF NOT EXISTS idx_job_runs_key ON job_runs(job_key, started_at DESC);
|
|
296
|
+
CREATE TABLE IF NOT EXISTS job_logs (
|
|
297
|
+
run_id TEXT NOT NULL,
|
|
298
|
+
ts INTEGER NOT NULL,
|
|
299
|
+
level TEXT NOT NULL,
|
|
300
|
+
message TEXT NOT NULL
|
|
301
|
+
);
|
|
302
|
+
CREATE INDEX IF NOT EXISTS idx_job_logs_run ON job_logs(run_id, ts);
|
|
303
|
+
|
|
304
|
+
-- Per-user LLM-generated taste profile plus the cached personalized home
|
|
305
|
+
-- sections (JSON). See the `sections.personalize` job.
|
|
306
|
+
CREATE TABLE IF NOT EXISTS user_taste (
|
|
307
|
+
user_id TEXT PRIMARY KEY REFERENCES users(id) ON DELETE CASCADE,
|
|
308
|
+
profile TEXT,
|
|
309
|
+
sections TEXT NOT NULL DEFAULT '[]',
|
|
310
|
+
updated_at INTEGER NOT NULL
|
|
311
|
+
);
|
|
312
|
+
|
|
313
|
+
-- Global editorial collections, regenerated by the `sections.curate` job
|
|
314
|
+
-- (member ids resolved at write time). Localized title/reason live in
|
|
315
|
+
-- `translations` (`subject_kind='curated'`), not in per-language columns.
|
|
316
|
+
CREATE TABLE IF NOT EXISTS curated_sections (
|
|
317
|
+
key TEXT PRIMARY KEY,
|
|
318
|
+
rank INTEGER NOT NULL DEFAULT 0,
|
|
319
|
+
source TEXT NOT NULL DEFAULT 'llm',
|
|
320
|
+
item_ids TEXT NOT NULL DEFAULT '[]',
|
|
321
|
+
updated_at INTEGER NOT NULL
|
|
322
|
+
);
|
|
323
|
+
|
|
324
|
+
-- Per-item AI suggestions, lazily generated on first view; empty item_ids is
|
|
325
|
+
-- a terminal `tried, nothing usable` marker. Localized reason lives in
|
|
326
|
+
-- `translations` (`subject_kind='suggestion'`), not in per-language columns.
|
|
327
|
+
CREATE TABLE IF NOT EXISTS item_suggestions (
|
|
328
|
+
item_id TEXT PRIMARY KEY,
|
|
329
|
+
item_ids TEXT NOT NULL DEFAULT '[]',
|
|
330
|
+
updated_at INTEGER NOT NULL
|
|
331
|
+
);
|
|
332
|
+
|
|
333
|
+
-- Keyframe-derived HLS segment table per physical file (see infra::hls),
|
|
334
|
+
-- computed lazily and revalidated by mtime/size/version.
|
|
335
|
+
CREATE TABLE IF NOT EXISTS file_segments (
|
|
336
|
+
file_id TEXT PRIMARY KEY REFERENCES files(id) ON DELETE CASCADE,
|
|
337
|
+
mtime INTEGER,
|
|
338
|
+
size INTEGER,
|
|
339
|
+
version INTEGER NOT NULL,
|
|
340
|
+
duration_us INTEGER NOT NULL,
|
|
341
|
+
v_codec TEXT,
|
|
342
|
+
segments TEXT NOT NULL,
|
|
343
|
+
updated_at INTEGER NOT NULL
|
|
344
|
+
);
|
|
345
|
+
|
|
346
|
+
-- Per-element processing ledger (see services::pipeline): one row per
|
|
347
|
+
-- (stage, subject). `input_sig` is a cheap signature of the subject's inputs,
|
|
348
|
+
-- so unchanged + `status='done'` skips work and a changed one re-queues it.
|
|
349
|
+
CREATE TABLE IF NOT EXISTS pipeline_tasks (
|
|
350
|
+
stage TEXT NOT NULL,
|
|
351
|
+
subject_kind TEXT NOT NULL,
|
|
352
|
+
subject_id TEXT NOT NULL,
|
|
353
|
+
status TEXT NOT NULL,
|
|
354
|
+
input_sig TEXT,
|
|
355
|
+
attempts INTEGER NOT NULL DEFAULT 0,
|
|
356
|
+
priority INTEGER NOT NULL DEFAULT 0,
|
|
357
|
+
error TEXT,
|
|
358
|
+
enqueued_at INTEGER NOT NULL,
|
|
359
|
+
updated_at INTEGER NOT NULL,
|
|
360
|
+
started_at INTEGER,
|
|
361
|
+
finished_at INTEGER,
|
|
362
|
+
duration_ms INTEGER,
|
|
363
|
+
-- Earliest epoch-ms a `failed` task may be auto-retried (exponential
|
|
364
|
+
-- backoff, set by `finish_batch`). NULL = no gate. Manual retry /
|
|
365
|
+
-- reprocess / enqueue always clear it.
|
|
366
|
+
next_retry_at INTEGER,
|
|
367
|
+
PRIMARY KEY (stage, subject_kind, subject_id)
|
|
368
|
+
);
|
|
369
|
+
CREATE INDEX IF NOT EXISTS idx_pipeline_ready
|
|
370
|
+
ON pipeline_tasks(stage, status, priority DESC, enqueued_at);
|
|
371
|
+
-- Seek by (stage, subject_id) for the show/item roll-up (`worst_status`): the
|
|
372
|
+
-- PK is (stage, subject_kind, subject_id), so subject_id can't be sought
|
|
373
|
+
-- without this composite index.
|
|
374
|
+
CREATE INDEX IF NOT EXISTS idx_pipeline_subject
|
|
375
|
+
ON pipeline_tasks(stage, subject_id);
|
|
376
|
+
|
|
377
|
+
-- Media requests (the 'ask for a title' flow). A show request may carry a
|
|
378
|
+
-- season subset and/or an individual-episode subset (`episodes`); the target
|
|
379
|
+
-- is their union. Linked to the catalog ONLY via tmdb_id: acquisition.match
|
|
380
|
+
-- flips status once enrichment writes metadata.tmdbId for a local title.
|
|
381
|
+
CREATE TABLE IF NOT EXISTS requests (
|
|
382
|
+
id TEXT PRIMARY KEY,
|
|
383
|
+
kind TEXT NOT NULL,
|
|
384
|
+
tmdb_id INTEGER NOT NULL,
|
|
385
|
+
title TEXT NOT NULL,
|
|
386
|
+
year INTEGER,
|
|
387
|
+
poster_url TEXT,
|
|
388
|
+
seasons TEXT,
|
|
389
|
+
status TEXT NOT NULL DEFAULT 'pending',
|
|
390
|
+
requested_by TEXT REFERENCES users(id) ON DELETE SET NULL,
|
|
391
|
+
reviewed_by TEXT,
|
|
392
|
+
note TEXT,
|
|
393
|
+
episodes TEXT,
|
|
394
|
+
-- Airing signals synced from TMDB by the acquisition.refresh job.
|
|
395
|
+
-- NULL until the first refresh.
|
|
396
|
+
air_status TEXT,
|
|
397
|
+
next_air_date TEXT,
|
|
398
|
+
last_refresh_at INTEGER,
|
|
399
|
+
created_at INTEGER NOT NULL,
|
|
400
|
+
updated_at INTEGER NOT NULL
|
|
401
|
+
);
|
|
402
|
+
CREATE INDEX IF NOT EXISTS idx_requests_status ON requests(status, created_at DESC);
|
|
403
|
+
CREATE INDEX IF NOT EXISTS idx_requests_ident ON requests(kind, tmdb_id);
|
|
404
|
+
CREATE INDEX IF NOT EXISTS idx_requests_user ON requests(requested_by, created_at DESC);
|
|
405
|
+
|
|
406
|
+
-- Episode-level wanted ledger, materialized when a request is approved.
|
|
407
|
+
-- Season packs are computed at search time by grouping rows on (tmdb_id,
|
|
408
|
+
-- season); there are no separate season rows.
|
|
409
|
+
CREATE TABLE IF NOT EXISTS wanted (
|
|
410
|
+
id TEXT PRIMARY KEY,
|
|
411
|
+
request_id TEXT NOT NULL REFERENCES requests(id) ON DELETE CASCADE,
|
|
412
|
+
kind TEXT NOT NULL,
|
|
413
|
+
tmdb_id INTEGER NOT NULL,
|
|
414
|
+
imdb_id TEXT,
|
|
415
|
+
title TEXT NOT NULL,
|
|
416
|
+
year INTEGER,
|
|
417
|
+
season INTEGER,
|
|
418
|
+
episode INTEGER,
|
|
419
|
+
air_date TEXT,
|
|
420
|
+
status TEXT NOT NULL DEFAULT 'wanted',
|
|
421
|
+
last_search_at INTEGER,
|
|
422
|
+
search_attempts INTEGER NOT NULL DEFAULT 0,
|
|
423
|
+
next_search_at INTEGER,
|
|
424
|
+
updated_at INTEGER NOT NULL
|
|
425
|
+
);
|
|
426
|
+
CREATE INDEX IF NOT EXISTS idx_wanted_request ON wanted(request_id);
|
|
427
|
+
CREATE INDEX IF NOT EXISTS idx_wanted_ident ON wanted(tmdb_id, season, episode);
|
|
428
|
+
|
|
429
|
+
-- User-submitted problem reports. `subject_id` is a movie/episode item id OR
|
|
430
|
+
-- a show id (no items FK, same rationale as `watched`/`my_list`), and
|
|
431
|
+
-- `subject_title` is snapshotted so the queue survives a re-scan/deletion.
|
|
432
|
+
CREATE TABLE IF NOT EXISTS reports (
|
|
433
|
+
id TEXT PRIMARY KEY,
|
|
434
|
+
subject_kind TEXT NOT NULL,
|
|
435
|
+
subject_id TEXT NOT NULL,
|
|
436
|
+
subject_title TEXT NOT NULL,
|
|
437
|
+
category TEXT NOT NULL,
|
|
438
|
+
message TEXT,
|
|
439
|
+
status TEXT NOT NULL DEFAULT 'open',
|
|
440
|
+
reported_by TEXT REFERENCES users(id) ON DELETE SET NULL,
|
|
441
|
+
resolved_by TEXT REFERENCES users(id) ON DELETE SET NULL,
|
|
442
|
+
resolved_at INTEGER,
|
|
443
|
+
created_at INTEGER NOT NULL,
|
|
444
|
+
updated_at INTEGER NOT NULL
|
|
445
|
+
);
|
|
446
|
+
CREATE INDEX IF NOT EXISTS idx_reports_status ON reports(status, created_at DESC);
|
|
447
|
+
CREATE INDEX IF NOT EXISTS idx_reports_subject ON reports(subject_kind, subject_id);
|
|
448
|
+
CREATE INDEX IF NOT EXISTS idx_reports_user ON reports(reported_by, created_at DESC);
|
|
449
|
+
|
|
450
|
+
-- One row per (user, thing that happened). The text is NOT stored: `title_key`
|
|
451
|
+
-- / `body_key` are i18n keys, rendered against the reader's locale on the way
|
|
452
|
+
-- out, so switching language re-reads the whole history in the new one.
|
|
453
|
+
-- `push_category` names a UNNotificationCategory (APNs can't render arbitrary
|
|
454
|
+
-- buttons, so native push picks from a fixed set) while `actions` stays the
|
|
455
|
+
-- full-fidelity in-app form. `category` is derived from `event` but stored,
|
|
456
|
+
-- so the prefs filter and the UI grouping are one indexed column.
|
|
457
|
+
CREATE TABLE IF NOT EXISTS notifications (
|
|
458
|
+
id TEXT PRIMARY KEY,
|
|
459
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
460
|
+
category TEXT NOT NULL,
|
|
461
|
+
event TEXT NOT NULL,
|
|
462
|
+
title_key TEXT NOT NULL,
|
|
463
|
+
body_key TEXT NOT NULL,
|
|
464
|
+
params TEXT NOT NULL DEFAULT '{}',
|
|
465
|
+
link TEXT,
|
|
466
|
+
image_url TEXT,
|
|
467
|
+
actions TEXT NOT NULL DEFAULT '[]',
|
|
468
|
+
push_category TEXT,
|
|
469
|
+
read_at INTEGER,
|
|
470
|
+
created_at INTEGER NOT NULL
|
|
471
|
+
);
|
|
472
|
+
CREATE INDEX IF NOT EXISTS idx_notifications_user ON notifications(user_id, created_at DESC);
|
|
473
|
+
-- Partial index: the bell badge counts unread only, and unread is the small
|
|
474
|
+
-- side of the table (rows are marked read and then aged out).
|
|
475
|
+
CREATE INDEX IF NOT EXISTS idx_notifications_unread
|
|
476
|
+
ON notifications(user_id) WHERE read_at IS NULL;
|
|
477
|
+
|
|
478
|
+
-- Per-user delivery matrix. A MISSING row means 'on' for both channels, so a
|
|
479
|
+
-- newly added category starts enabled without backfilling every user, and
|
|
480
|
+
-- only deviations from the default cost a row.
|
|
481
|
+
CREATE TABLE IF NOT EXISTS notification_prefs (
|
|
482
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
483
|
+
category TEXT NOT NULL,
|
|
484
|
+
in_app INTEGER NOT NULL DEFAULT 1,
|
|
485
|
+
push INTEGER NOT NULL DEFAULT 1,
|
|
486
|
+
PRIMARY KEY (user_id, category)
|
|
487
|
+
);
|
|
488
|
+
|
|
489
|
+
-- One row per push endpoint. For Web Push `endpoint` is the push service URL
|
|
490
|
+
-- and `p256dh`/`auth` are the subscription's client keys (RFC 8291); for the
|
|
491
|
+
-- native transports `endpoint` is the raw device token and both are NULL.
|
|
492
|
+
CREATE TABLE IF NOT EXISTS push_subscriptions (
|
|
493
|
+
id TEXT PRIMARY KEY,
|
|
494
|
+
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
495
|
+
transport TEXT NOT NULL,
|
|
496
|
+
endpoint TEXT NOT NULL,
|
|
497
|
+
p256dh TEXT,
|
|
498
|
+
auth TEXT,
|
|
499
|
+
device TEXT,
|
|
500
|
+
locale TEXT,
|
|
501
|
+
failures INTEGER NOT NULL DEFAULT 0,
|
|
502
|
+
created_at INTEGER NOT NULL,
|
|
503
|
+
last_ok_at INTEGER,
|
|
504
|
+
UNIQUE (transport, endpoint)
|
|
505
|
+
);
|
|
506
|
+
CREATE INDEX IF NOT EXISTS idx_push_subs_user ON push_subscriptions(user_id);
|
|
507
|
+
|
|
508
|
+
-- The acquisition MODULE tables (`indexers`, `download_clients`, `downloads`)
|
|
509
|
+
-- no longer live here: each is owned by its module crate and created at DB
|
|
510
|
+
-- init via that module's `ServerModule::migrations`, run right after this
|
|
511
|
+
-- core schema (so `downloads.request_id` can FK the `requests` table above).
|
|
512
|
+
|
|
513
|
+
-- Known TMDB id for an acquired file, keyed by the ABSOLUTE PATH the import
|
|
514
|
+
-- wrote it to: the import knows exactly where it placed the file, and the
|
|
515
|
+
-- scanner records that same (canonicalized) path in `files.abs_path`, so the
|
|
516
|
+
-- join is on ground truth and can never orphan on a title-parse difference
|
|
517
|
+
-- (unlike guessing from the filename, e.g. Scary Movie vs A Scary Movie).
|
|
518
|
+
CREATE TABLE IF NOT EXISTS acq_file_tmdb (
|
|
519
|
+
abs_path TEXT PRIMARY KEY,
|
|
520
|
+
tmdb_id INTEGER NOT NULL
|
|
521
|
+
);
|
|
522
|
+
|
|
523
|
+
-- Availability matching is a seek on `metadata_core.tmdb_id` (a real indexed
|
|
524
|
+
-- column, see idx_meta_core_tmdb below); the old json_extract expression
|
|
525
|
+
-- indexes on the metadata blob are retired in `migrate`.
|
|
526
|
+
|
|
527
|
+
-- An operator-chosen TMDB id for one catalog subject, set from the 'fix the
|
|
528
|
+
-- match' picker. Enrichment consults this BEFORE any title guess, so a
|
|
529
|
+
-- correction is authoritative and survives every re-scan. Distinct from
|
|
530
|
+
-- `acq_file_tmdb` above (set automatically at import): this operator choice
|
|
531
|
+
-- takes precedence over it.
|
|
532
|
+
CREATE TABLE IF NOT EXISTS tmdb_pin (
|
|
533
|
+
subject_kind TEXT NOT NULL, -- 'item' | 'show'
|
|
534
|
+
subject_id TEXT NOT NULL,
|
|
535
|
+
tmdb_id INTEGER NOT NULL,
|
|
536
|
+
updated_at INTEGER NOT NULL,
|
|
537
|
+
PRIMARY KEY (subject_kind, subject_id)
|
|
538
|
+
);
|
|
539
|
+
|
|
540
|
+
-- Language-INVARIANT resolved metadata, one row per catalog subject. Split
|
|
541
|
+
-- out of the per-item `metadata` JSON so identity/availability/art/cast don't
|
|
542
|
+
-- depend on which language was fetched, and switching UI language never
|
|
543
|
+
-- touches this row (nor the embeddings derived from it).
|
|
544
|
+
--
|
|
545
|
+
-- A provider id is stored ON THE RECORD IT IDENTIFIES, under a
|
|
546
|
+
-- provider-qualified name: this title's own ids are the columns below, and
|
|
547
|
+
-- a credited person's rides on its member inside cast_json / crew_json (a
|
|
548
|
+
-- serde field, so people cost no schema change). Only a bare reference list
|
|
549
|
+
-- the title holds, like genres, earns a column of its own here.
|
|
550
|
+
CREATE TABLE IF NOT EXISTS metadata_core (
|
|
551
|
+
subject_kind TEXT NOT NULL, -- 'item' | 'show'
|
|
552
|
+
subject_id TEXT NOT NULL,
|
|
553
|
+
tmdb_id INTEGER,
|
|
554
|
+
imdb_id TEXT,
|
|
555
|
+
tvdb_id INTEGER,
|
|
556
|
+
release_date TEXT,
|
|
557
|
+
rating REAL,
|
|
558
|
+
-- The provider's own spelling of the age rating, e.g. 'PG-13' | 'TV-MA' | '12'.
|
|
559
|
+
certification TEXT,
|
|
560
|
+
poster_url TEXT,
|
|
561
|
+
backdrop_url TEXT,
|
|
562
|
+
logo_url TEXT,
|
|
563
|
+
cast_json TEXT NOT NULL DEFAULT '[]',
|
|
564
|
+
crew_json TEXT NOT NULL DEFAULT '[]',
|
|
565
|
+
-- The NAMES are localized and live in `translations`; these do not.
|
|
566
|
+
tmdb_genre_ids TEXT NOT NULL DEFAULT '[]',
|
|
567
|
+
updated_at INTEGER NOT NULL,
|
|
568
|
+
PRIMARY KEY (subject_kind, subject_id)
|
|
569
|
+
);
|
|
570
|
+
CREATE INDEX IF NOT EXISTS idx_meta_core_tmdb ON metadata_core(tmdb_id);
|
|
571
|
+
|
|
572
|
+
-- The GENERIC per-language translation cache: one table for every localized
|
|
573
|
+
-- string in the app, so adding a language is inserting rows, never a schema
|
|
574
|
+
-- change. `resolve` falls back requested lang -> en, and skips a row that
|
|
575
|
+
-- carries only a revision: that is a marker saying the language was asked
|
|
576
|
+
-- for and had nothing, not something to serve.
|
|
577
|
+
CREATE TABLE IF NOT EXISTS translations (
|
|
578
|
+
subject_kind TEXT NOT NULL, -- 'item'|'show'|'episode'|'season_cast'|'curated'|'suggestion'
|
|
579
|
+
subject_id TEXT NOT NULL,
|
|
580
|
+
lang TEXT NOT NULL, -- a code from i18n::SUPPORTED_LOCALES
|
|
581
|
+
source TEXT NOT NULL, -- 'tmdb' | 'llm' | 'manual'
|
|
582
|
+
data TEXT NOT NULL, -- JSON: {title,overview,tagline,genres,posterUrl?,logoUrl?,characters?,reason?,rev?}
|
|
583
|
+
updated_at INTEGER NOT NULL,
|
|
584
|
+
PRIMARY KEY (subject_kind, subject_id, lang)
|
|
585
|
+
);
|
|
586
|
+
-- For the reads that name a language but no subject: which genres the
|
|
587
|
+
-- catalogue holds, and which titles carry one of them. A read that does
|
|
588
|
+
-- name its subjects is served by the primary key instead.
|
|
589
|
+
CREATE INDEX IF NOT EXISTS idx_translations_lang ON translations(subject_kind, lang);
|
|
590
|
+
|
|
591
|
+
-- The two SHARED tables below are written by a module and read by the core.
|
|
592
|
+
-- They live here, in the core schema, because that is what they are: a
|
|
593
|
+
-- module holds a grant on them, and a grant cannot create a table. A module
|
|
594
|
+
-- table nothing outside it reads belongs in its own file instead (see
|
|
595
|
+
-- kroma-db's `grant` and the supervisor's `adopt`).
|
|
596
|
+
|
|
597
|
+
-- One row per grab: a release the downloads module sent to a client. The
|
|
598
|
+
-- core reads it for the live progress overlay on request / discover lists,
|
|
599
|
+
-- and `request_id` is a real foreign key into `requests`, so it could not
|
|
600
|
+
-- live anywhere else. `client_id` has NO foreign key, so history survives a
|
|
601
|
+
-- deleted client config.
|
|
602
|
+
CREATE TABLE IF NOT EXISTS downloads (
|
|
603
|
+
id TEXT PRIMARY KEY,
|
|
604
|
+
client_id TEXT NOT NULL,
|
|
605
|
+
client_ref TEXT NOT NULL,
|
|
606
|
+
request_id TEXT REFERENCES requests(id) ON DELETE SET NULL,
|
|
607
|
+
kind TEXT NOT NULL,
|
|
608
|
+
tmdb_id INTEGER NOT NULL,
|
|
609
|
+
title TEXT,
|
|
610
|
+
year INTEGER,
|
|
611
|
+
season INTEGER,
|
|
612
|
+
episodes TEXT,
|
|
613
|
+
release_title TEXT NOT NULL,
|
|
614
|
+
indexer_id TEXT,
|
|
615
|
+
info_hash TEXT,
|
|
616
|
+
magnet_or_url TEXT NOT NULL,
|
|
617
|
+
size_bytes INTEGER,
|
|
618
|
+
score INTEGER,
|
|
619
|
+
score_breakdown TEXT,
|
|
620
|
+
status TEXT NOT NULL DEFAULT 'queued',
|
|
621
|
+
progress REAL NOT NULL DEFAULT 0,
|
|
622
|
+
save_path TEXT,
|
|
623
|
+
imported_paths TEXT,
|
|
624
|
+
error TEXT,
|
|
625
|
+
grabbed_at INTEGER NOT NULL,
|
|
626
|
+
completed_at INTEGER,
|
|
627
|
+
imported_at INTEGER,
|
|
628
|
+
details_url TEXT,
|
|
629
|
+
only_files TEXT,
|
|
630
|
+
upgrade INTEGER NOT NULL DEFAULT 0,
|
|
631
|
+
downloaded_bytes INTEGER NOT NULL DEFAULT 0,
|
|
632
|
+
uploaded_bytes INTEGER NOT NULL DEFAULT 0,
|
|
633
|
+
match_source TEXT
|
|
634
|
+
);
|
|
635
|
+
CREATE INDEX IF NOT EXISTS idx_downloads_status ON downloads(status, grabbed_at DESC);
|
|
636
|
+
CREATE INDEX IF NOT EXISTS idx_downloads_req ON downloads(request_id);
|
|
637
|
+
|
|
638
|
+
-- The dashboard's resource series, one row per rolled-up window. `at` is the
|
|
639
|
+
-- unix second the window opens on and `step_secs` how wide it is, so a row
|
|
640
|
+
-- carries its own resolution as the retention ladder folds it coarser with
|
|
641
|
+
-- age (see kroma_engine::infra::metrics::rollup).
|
|
642
|
+
CREATE TABLE IF NOT EXISTS metric_samples (
|
|
643
|
+
at INTEGER NOT NULL,
|
|
644
|
+
step_secs INTEGER NOT NULL,
|
|
645
|
+
cpu_kroma REAL NOT NULL,
|
|
646
|
+
cpu_system REAL NOT NULL,
|
|
647
|
+
cpu_media REAL NOT NULL,
|
|
648
|
+
ram_kroma REAL NOT NULL,
|
|
649
|
+
ram_system REAL NOT NULL,
|
|
650
|
+
bw_local REAL NOT NULL,
|
|
651
|
+
bw_remote REAL NOT NULL,
|
|
652
|
+
PRIMARY KEY (step_secs, at)
|
|
653
|
+
);
|
|
654
|
+
CREATE INDEX IF NOT EXISTS idx_metric_samples_at ON metric_samples(at);
|
|
655
|
+
|
|
656
|
+
-- The transcription progress channel. A whisper run is minutes long and
|
|
657
|
+
-- drives live progress plus a mid-run cancel, which do not fit the buffered
|
|
658
|
+
-- request/response the port bridge speaks: the core writes `cancel` and
|
|
659
|
+
-- polls the rest, the sidecar does the reverse.
|
|
660
|
+
CREATE TABLE IF NOT EXISTS whisper_jobs (
|
|
661
|
+
id TEXT PRIMARY KEY,
|
|
662
|
+
stage TEXT NOT NULL DEFAULT '',
|
|
663
|
+
done INTEGER NOT NULL DEFAULT 0,
|
|
664
|
+
total INTEGER NOT NULL DEFAULT 0,
|
|
665
|
+
cancel INTEGER NOT NULL DEFAULT 0
|
|
666
|
+
);
|
|
667
|
+
";
|
|
668
|
+
|
|
669
|
+
/// Explicit column list for file SELECTs keeps [`crate::row_to_file`] index-stable.
|
|
670
|
+
pub(crate) const FILE_COLS: &str = "id,rel_path,container,size,edition,probed,\
|
|
671
|
+
duration_ms,v_codec,v_width,v_height,v_hdr,v_bit_depth,\
|
|
672
|
+
a_codec,a_channels,a_language,subtitles,abs_path,audio_tracks";
|
|
673
|
+
|
|
674
|
+
/// Explicit column list for item SELECTs keeps [`crate::row_to_item`] index-stable.
|
|
675
|
+
/// `metadata` is appended last (index 25).
|
|
676
|
+
pub(crate) const ITEM_COLS: &str = "id,kind,title,year,duration_ms,container,\
|
|
677
|
+
v_codec,v_width,v_height,v_hdr,v_bit_depth,a_codec,a_channels,a_language,subtitles,\
|
|
678
|
+
library,show_id,show_title,season,episode,episode_end,episode_title,rel_path,abs_path,added_at,metadata";
|