@tracearr/shared 0.1.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/LICENSE +661 -0
- package/README.md +7 -0
- package/dist/catalogLetters.d.ts +3 -0
- package/dist/catalogLetters.d.ts.map +1 -0
- package/dist/catalogLetters.js +3 -0
- package/dist/catalogLetters.js.map +1 -0
- package/dist/constants.d.ts +475 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +847 -0
- package/dist/constants.js.map +1 -0
- package/dist/dynamicRange.d.ts +16 -0
- package/dist/dynamicRange.d.ts.map +1 -0
- package/dist/dynamicRange.js +46 -0
- package/dist/dynamicRange.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +68 -0
- package/dist/index.js.map +1 -0
- package/dist/media.d.ts +16 -0
- package/dist/media.d.ts.map +1 -0
- package/dist/media.js +18 -0
- package/dist/media.js.map +1 -0
- package/dist/resolution.d.ts +56 -0
- package/dist/resolution.d.ts.map +1 -0
- package/dist/resolution.js +130 -0
- package/dist/resolution.js.map +1 -0
- package/dist/schemas.d.ts +1702 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +1057 -0
- package/dist/schemas.js.map +1 -0
- package/dist/serverScope.d.ts +27 -0
- package/dist/serverScope.d.ts.map +1 -0
- package/dist/serverScope.js +36 -0
- package/dist/serverScope.js.map +1 -0
- package/dist/types.d.ts +2484 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +57 -0
- package/dist/types.js.map +1 -0
- package/dist/violations.d.ts +37 -0
- package/dist/violations.d.ts.map +1 -0
- package/dist/violations.js +377 -0
- package/dist/violations.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dynamic Range Classification
|
|
3
|
+
*
|
|
4
|
+
* Normalizes a media server's HDR/SDR label - Plex's Media.videoDynamicRange
|
|
5
|
+
* attribute, or Jellyfin/Emby's VideoRangeType mapped to a display string -
|
|
6
|
+
* into one lowercase token that library_items.video_dynamic_range stores and
|
|
7
|
+
* the catalog HDR filter matches against. The token list is display
|
|
8
|
+
* vocabulary, not an exhaustive allowlist: normalizeDynamicRange falls back
|
|
9
|
+
* to lowercasing an unrecognized label rather than dropping it, so an HDR
|
|
10
|
+
* variant Tracearr hasn't named yet still counts as non-SDR.
|
|
11
|
+
*/
|
|
12
|
+
export declare const DYNAMIC_RANGE_SDR_TOKEN = "sdr";
|
|
13
|
+
export declare const DYNAMIC_RANGE_TOKENS: readonly ["sdr", "hdr", "hdr10", "hdr10+", "hlg", "dolby vision"];
|
|
14
|
+
export type DynamicRangeToken = (typeof DYNAMIC_RANGE_TOKENS)[number];
|
|
15
|
+
export declare function normalizeDynamicRange(label: string | null | undefined): string | null;
|
|
16
|
+
//# sourceMappingURL=dynamicRange.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamicRange.d.ts","sourceRoot":"","sources":["../src/dynamicRange.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAE7C,eAAO,MAAM,oBAAoB,mEAOvB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAItE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAgBrF"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dynamic Range Classification
|
|
3
|
+
*
|
|
4
|
+
* Normalizes a media server's HDR/SDR label - Plex's Media.videoDynamicRange
|
|
5
|
+
* attribute, or Jellyfin/Emby's VideoRangeType mapped to a display string -
|
|
6
|
+
* into one lowercase token that library_items.video_dynamic_range stores and
|
|
7
|
+
* the catalog HDR filter matches against. The token list is display
|
|
8
|
+
* vocabulary, not an exhaustive allowlist: normalizeDynamicRange falls back
|
|
9
|
+
* to lowercasing an unrecognized label rather than dropping it, so an HDR
|
|
10
|
+
* variant Tracearr hasn't named yet still counts as non-SDR.
|
|
11
|
+
*/
|
|
12
|
+
export const DYNAMIC_RANGE_SDR_TOKEN = 'sdr';
|
|
13
|
+
export const DYNAMIC_RANGE_TOKENS = [
|
|
14
|
+
'sdr',
|
|
15
|
+
'hdr',
|
|
16
|
+
'hdr10',
|
|
17
|
+
'hdr10+',
|
|
18
|
+
'hlg',
|
|
19
|
+
'dolby vision',
|
|
20
|
+
];
|
|
21
|
+
const KNOWN_TOKENS = DYNAMIC_RANGE_TOKENS;
|
|
22
|
+
export function normalizeDynamicRange(label) {
|
|
23
|
+
if (!label)
|
|
24
|
+
return null;
|
|
25
|
+
const lower = label.toLowerCase().trim();
|
|
26
|
+
if (!lower)
|
|
27
|
+
return null;
|
|
28
|
+
if (KNOWN_TOKENS.includes(lower))
|
|
29
|
+
return lower;
|
|
30
|
+
if (lower.startsWith('dolby vision') || lower === 'dovi' || lower === 'dv')
|
|
31
|
+
return 'dolby vision';
|
|
32
|
+
if (lower.includes('hdr10+'))
|
|
33
|
+
return 'hdr10+';
|
|
34
|
+
if (lower.includes('hdr10'))
|
|
35
|
+
return 'hdr10';
|
|
36
|
+
if (lower.includes('hlg'))
|
|
37
|
+
return 'hlg';
|
|
38
|
+
if (lower.includes('hdr'))
|
|
39
|
+
return 'hdr';
|
|
40
|
+
if (lower.includes('sdr'))
|
|
41
|
+
return DYNAMIC_RANGE_SDR_TOKEN;
|
|
42
|
+
// library_items.video_dynamic_range is varchar(20); an oversized unknown
|
|
43
|
+
// label must not fail the whole sync upsert batch.
|
|
44
|
+
return lower.slice(0, 20);
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=dynamicRange.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamicRange.js","sourceRoot":"","sources":["../src/dynamicRange.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAE7C,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,KAAK;IACL,KAAK;IACL,OAAO;IACP,QAAQ;IACR,KAAK;IACL,cAAc;CACN,CAAC;AAIX,MAAM,YAAY,GAAsB,oBAAoB,CAAC;AAE7D,MAAM,UAAU,qBAAqB,CAAC,KAAgC;IACpE,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IACzC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,cAAc,CAAC;IAClG,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC9C,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAC5C,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,uBAAuB,CAAC;IAE1D,yEAAyE;IACzE,mDAAmD;IACnD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5B,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @tracearr/shared - Shared types, schemas, and constants
|
|
3
|
+
*/
|
|
4
|
+
export type { ServerType, Server, User, ServerUser, ServerUserWithIdentity, ServerUserDetail, ServerUserFullDetail, ViolationSummary, UserRole, AuthUser, SetupStatus, UserLocation, UserDevice, UserMergeResult, ServerUserSplitResult, MergeSuggestionIdentity, MergeSuggestion, SessionState, MediaType, Session, SessionSegment, SessionWithDetails, ActiveSession, SourceVideoDetails, SourceAudioDetails, StreamVideoDetails, StreamAudioDetails, TranscodeInfo, SubtitleInfo, StreamDetailFields, RuleType, ImpossibleTravelParams, SimultaneousLocationsParams, DeviceVelocityParams, ConcurrentStreamsParams, GeoRestrictionMode, GeoRestrictionParams, AccountInactivityUnit, AccountInactivityParams, RuleParams, Rule, Operator, ConditionField, ConditionValue, Condition, ConditionGroup, RuleConditions, ActionType, Action, LogOnlyAction, NotifyAction, AdjustTrustAction, SetTrustAction, ResetTrustAction, KillStreamAction, MessageClientAction, NotificationChannelV2, RuleActions, RuleV2, ActionResult, VideoResolution, DeviceType, Platform, MediaTypeEnum, TranscodingConditionValue, ViolationSeverity, Violation, ViolationWithDetails, ViolationSessionInfo, ConditionEvidence, GroupEvidence, DashboardStats, PlayStats, UserStats, LocationStats, LocationStatsSummary, LocationStatsResponse, LibraryStats, DayOfWeekStats, HourOfDayStats, QualityStats, TopUserStats, TopContentStats, PlatformStats, ServerResourceDataPoint, ServerResourceStats, ServerBandwidthDataPoint, ServerBandwidthStats, Settings, WebhookFormat, UnitSystem, TailscaleStatus, TailscaleExitNode, TailscaleInfo, TautulliImportProgress, TautulliImportResult, JellystatImportProgress, JellystatImportResult, LibrarySyncProgress, HeavyOpsWaitingFor, MaintenanceJobType, MaintenanceJobStatus, MaintenanceJobProgress, MaintenanceJobResult, RunningTaskType, RunningTask, RunningTasksResponse, ServerToClientEvents, ClientToServerEvents, PaginatedResponse, ApiError, HistoryAggregates, HistorySessionResponse, FilterOptionItem, UserFilterOption, ServerFilterOption, CountryOption, HistoryFilterOptions, RulesFilterOptions, MobileToken, MobileSession, MobileConfig, MobilePairRequest, MobilePairResponse, MobilePairTokenResponse, MobileQRPayload, NotificationEventType, NotificationPreferences, RateLimitStatus, NotificationPreferencesWithStatus, NotificationChannel, NotificationChannelRouting, EncryptedPushPayload, PushNotificationPayload, SSEConnectionState, PlexSSENotification, PlexPlaySessionNotification, PlexActivityNotification, PlexStatusNotification, PlexTranscodeNotification, PlexTimelineEntry, SSEConnectionStatus, ServerConnectionStatus, PluginIssue, TerminationTrigger, TerminationLogWithDetails, PlexDiscoveredConnection, PlexDiscoveredServer, PlexAvailableServersResponse, PlexConnectionError, PlexConnectionErrorCode, PlexAccount, PlexAccountsResponse, LinkPlexAccountRequest, LinkPlexAccountResponse, UnlinkPlexAccountResponse, VersionInfo, BackupMetadata, RestorePhase, RestoreProgress, BackupType, BackupListItem, BackupScheduleType, EngagementTier, UserBehaviorType, ContentEngagement, TopContentEngagement, ShowEngagement, UserEngagementProfile, EngagementTierBreakdown, EngagementStats, ShowStatsResponse, DeviceCompatibilityRow, DeviceCompatibilityResponse, DeviceCompatibilityMatrix, DeviceHealthRow, DeviceHealthResponse, TranscodeHotspotRow, TranscodeHotspotsResponse, TopTranscodingUserRow, TopTranscodingUsersResponse, DailyBandwidthRow, DailyBandwidthResponse, BandwidthTopUser, BandwidthTopUsersResponse, BandwidthSummaryServerKpis, BandwidthSummary, LibraryStatsResponse, GrowthDataPoint, LibraryGrowthResponse, QualityDataPoint, LibraryQualityResponse, StorageHistoryPoint, StoragePrediction, LibraryStorageResponse, MatchType, DuplicateItem, DuplicateItemVersion, DuplicateGroup, DuplicatesSummary, DuplicatesResponse, StaleCategory, StaleItem, StaleSummary, StaleResponse, WatchItem, WatchSummary, WatchResponse, CompletionStatus, CompletionItem, SeasonCompletion, SeriesCompletion, CompletionSummary, CompletionPaginationInfo, CompletionResponse, WatchedState, CatalogRowServerEntry, CatalogRow, CatalogResponseMeta, CatalogResponse, CatalogLetterBucket, CatalogLettersResponse, ShelfRow, RecentlyAddedShelfRow, MostPopularShelfRow, DeadWeightRow, ShelvesKpiWatchedInPeriod, ShelvesKpiNewlyAdded, ShelvesKpiDeadWeight, ShelvesKpis, ShelvesResponseMeta, ShelvesResponse, ShelvesPeriod, GenreRow, GenresResponse, MediaVersionEntry, MediaAvailabilityEntry, MediaDetailResponse, MediaChildEntry, MediaChildrenResponse, MediaStatsMeasures, MediaStatsWindow, MediaStatsResponse, MediaWatcherEntry, MediaWatchersResponse, MediaPlatformBreakdownEntry, MediaPlatformBreakdownResponse, SeasonHeatEpisode, SeasonHeatSeason, MediaSeasonHeatResponse, BingeShow, HourlyDistribution, MonthlyTrend, PatternsResponse, ValueCategory, RoiItem, RoiSummary, ValueThresholds, RoiResponse, TopMovie, TopMoviesSummary, TopMoviesResponse, TopShow, TopShowsSummary, TopShowsResponse, CodecEntry, CodecBreakdown, LibraryCodecsResponse, ResolutionEntry, ResolutionBreakdown, LibraryResolutionResponse, LibraryOption, LibrariesResponse, } from './types.js';
|
|
5
|
+
export { uuidSchema, serverIdsQuerySchema, libraryKeySchema, paginationSchema, booleanStringSchema, loginSchema, callbackSchema, createServerSchema, serverIdParamSchema, reorderServersSchema, updateServerSchema, updateUserSchema, updateUserIdentitySchema, userIdParamSchema, identityScopeQuerySchema, identityScopedPaginationSchema, mergeUsersBodySchema, mergeUserParamSchema, splitServerUserParamSchema, userSortFieldSchema, sessionQuerySchema, historyQuerySchema, historyAggregatesQuerySchema, filterOptionsQuerySchema, sessionIdParamSchema, terminateSessionBodySchema, impossibleTravelParamsSchema, simultaneousLocationsParamsSchema, deviceVelocityParamsSchema, concurrentStreamsParamsSchema, geoRestrictionParamsSchema, accountInactivityParamsSchema, ruleParamsSchema, createRuleSchema, updateRuleSchema, ruleIdParamSchema, createRuleV2Schema, updateRuleV2Schema, ruleConditionsSchema, hasAtMostOneScope, RULE_SCOPE_ERROR_MESSAGE, scopeAllowsCrossServerEnforcement, RULE_CROSS_SERVER_ENFORCEMENT_ERROR_MESSAGE, INACTIVITY_COMPATIBLE_FIELDS, bulkUpdateRulesSchema, bulkDeleteRulesSchema, bulkMigrateRulesSchema, violationSortFieldSchema, violationQuerySchema, violationIdParamSchema, serverIdFilterSchema, dashboardQuerySchema, timezoneSchema, statPeriodSchema, dateValidationRefinements, statsQuerySchema, locationStatsQuerySchema, updateSettingsSchema, tailscaleEnableSchema, tailscaleExitNodeSchema, tautulliImportSchema, jellystatPlayStateSchema, jellystatTranscodingInfoSchema, jellystatPlaybackActivitySchema, jellystatBackupSchema, jellystatImportBodySchema, importJobStatusSchema, engagementTierSchema, userBehaviorTypeSchema, engagementQuerySchema, showsQuerySchema, libraryStatsQuerySchema, libraryStatusQuerySchema, libraryGrowthQuerySchema, libraryQualityQuerySchema, libraryStorageQuerySchema, libraryDuplicatesQuerySchema, libraryStaleQuerySchema, libraryWatchQuerySchema, libraryRoiQuerySchema, libraryPatternsQuerySchema, libraryCompletionQuerySchema, topContentQuerySchema, shelvesQuerySchema, } from './schemas.js';
|
|
6
|
+
export type { LoginInput, CallbackInput, CreateServerInput, ReorderServersInput, UpdateServerInput, UpdateUserInput, UpdateUserIdentityInput, IdentityScopeQuery, MergeUsersBody, SessionQueryInput, HistoryQueryInput, HistoryAggregatesQueryInput, FilterOptionsQueryInput, CreateRuleInput, UpdateRuleInput, CreateRuleV2Input, UpdateRuleV2Input, BulkUpdateRulesInput, BulkDeleteRulesInput, BulkMigrateRulesInput, ViolationQueryInput, ViolationSortField, UserSortField, ServerIdFilterInput, DashboardQueryInput, StatPeriod, StatsQueryInput, LocationStatsQueryInput, UpdateSettingsInput, TautulliImportInput, JellystatPlayState, JellystatTranscodingInfo, JellystatPlaybackActivity, JellystatBackup, JellystatImportBody, ImportJobStatus, EngagementQueryInput, ShowsQueryInput, LibraryStatsQueryInput, LibraryStatusQueryInput, LibraryGrowthQueryInput, LibraryQualityQueryInput, LibraryStorageQueryInput, LibraryDuplicatesQueryInput, LibraryStaleQueryInput, LibraryWatchQueryInput, LibraryRoiQueryInput, LibraryPatternsQueryInput, LibraryCompletionQueryInput, TopContentQueryInput, ShelvesQueryInput, SessionTarget, } from './schemas.js';
|
|
7
|
+
export { RULE_DEFAULTS, RULE_DISPLAY_NAMES, IDENTITY_AWARE_CONDITION_FIELDS, SEVERITY_LEVELS, getSeverityPriority, type SeverityPriority, WS_EVENTS, REDIS_KEYS, setRedisPrefix, getRedisPrefix, CACHE_TTL, NOTIFICATION_EVENTS, API_VERSION, API_BASE_PATH, API_VERSION_V2, API_V2_BASE_PATH, JWT_CONFIG, POLLING_INTERVALS, POLLER_CONFIG, PAGINATION, GEOIP_CONFIG, TIME_MS, MERGE_SAME_SERVER_CONFIRMATION_REQUIRED, SESSION_LIMITS, SESSION_WRITE_RETRY, SERVER_STATS_CONFIG, BANDWIDTH_STATS_CONFIG, SSE_CONFIG, PLEX_SSE_EVENTS, SSE_STATE, UNIT_CONVERSION, kmToMiles, milesToKm, formatDistance, formatSpeed, formatBitrate, formatMediaTech, getResolutionLabel, formatResolutionDisplay, type ResolutionLabel, formatAudioChannels, getDistanceUnit, getSpeedUnit, toMetricDistance, fromMetricDistance, formatConditionFieldValue, SERVER_COLOR_PALETTE, SERVER_TYPE_BRAND_COLORS, pickServerColor, getClientTimezone, isValidTimezone, LEGACY_VERSION_SENTINEL, } from './constants.js';
|
|
8
|
+
export { ROLE_PERMISSIONS, LOGIN_ROLES, canLogin, hasMinRole, isOwner, isActive } from './types.js';
|
|
9
|
+
export { MEDIA_TYPES, DEFAULT_STREAM_DETAILS } from './types.js';
|
|
10
|
+
export { RESTORE_PHASES } from './types.js';
|
|
11
|
+
export { collectViolationSessions, getViolationDescription, getViolationDetails, formatEvidenceDescription, formatEvidenceDetails, formatUserList, CONDITION_FIELD_LABELS, OPERATOR_LABELS, } from './violations.js';
|
|
12
|
+
export { formatEpisodeLabel, type FormatEpisodeLabelOptions } from './media.js';
|
|
13
|
+
export { LETTER_RAIL_ALPHABET } from './catalogLetters.js';
|
|
14
|
+
export { RESOLUTION_TIERS, classifyByDimensions, normalizeResolutionLabel, resolutionTierRank, resolutionBucket, resolutionBucketSpellings, resolutionAboveSdSpellings, resolutionSpellingRanks, normalizeResolution, type ResolutionInput, type ResolutionBucket, } from './resolution.js';
|
|
15
|
+
export { DYNAMIC_RANGE_SDR_TOKEN, DYNAMIC_RANGE_TOKENS, normalizeDynamicRange, type DynamicRangeToken, } from './dynamicRange.js';
|
|
16
|
+
export { ALL_SERVERS, serverScopeFromIds, serverScopeKey, serverScopeParamEntries, type ServerScope, } from './serverScope.js';
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EAEV,UAAU,EACV,MAAM,EAEN,IAAI,EACJ,UAAU,EACV,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,UAAU,EACV,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,EAEf,YAAY,EACZ,SAAS,EACT,OAAO,EACP,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,kBAAkB,EAElB,QAAQ,EACR,sBAAsB,EACtB,2BAA2B,EAC3B,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,UAAU,EACV,IAAI,EAEJ,QAAQ,EACR,cAAc,EACd,cAAc,EACd,SAAS,EACT,cAAc,EACd,cAAc,EACd,UAAU,EACV,MAAM,EACN,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,WAAW,EACX,MAAM,EACN,YAAY,EACZ,eAAe,EACf,UAAU,EACV,QAAQ,EACR,aAAa,EACb,yBAAyB,EAEzB,iBAAiB,EACjB,SAAS,EACT,oBAAoB,EACpB,oBAAoB,EAEpB,iBAAiB,EACjB,aAAa,EAEb,cAAc,EACd,SAAS,EACT,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,aAAa,EAEb,uBAAuB,EACvB,mBAAmB,EAEnB,wBAAwB,EACxB,oBAAoB,EAEpB,QAAQ,EACR,aAAa,EACb,UAAU,EAEV,eAAe,EACf,iBAAiB,EACjB,aAAa,EAEb,sBAAsB,EACtB,oBAAoB,EAEpB,uBAAuB,EACvB,qBAAqB,EAErB,mBAAmB,EAEnB,kBAAkB,EAElB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EAEpB,eAAe,EACf,WAAW,EACX,oBAAoB,EAEpB,oBAAoB,EACpB,oBAAoB,EAEpB,iBAAiB,EACjB,QAAQ,EAER,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAElB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,EACf,iCAAiC,EACjC,mBAAmB,EACnB,0BAA0B,EAC1B,oBAAoB,EACpB,uBAAuB,EAEvB,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,EAC3B,wBAAwB,EACxB,sBAAsB,EACtB,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,WAAW,EAEX,kBAAkB,EAClB,yBAAyB,EAEzB,wBAAwB,EACxB,oBAAoB,EACpB,4BAA4B,EAC5B,mBAAmB,EACnB,uBAAuB,EAEvB,WAAW,EACX,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EAEzB,WAAW,EAEX,cAAc,EACd,YAAY,EACZ,eAAe,EACf,UAAU,EACV,cAAc,EACd,kBAAkB,EAElB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EAEjB,sBAAsB,EACtB,2BAA2B,EAC3B,yBAAyB,EACzB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EAEzB,qBAAqB,EACrB,2BAA2B,EAE3B,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,yBAAyB,EACzB,0BAA0B,EAC1B,gBAAgB,EAEhB,oBAAoB,EACpB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,YAAY,EACZ,aAAa,EACb,SAAS,EACT,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,YAAY,EACZ,qBAAqB,EACrB,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,QAAQ,EACR,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,yBAAyB,EACzB,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,2BAA2B,EAC3B,8BAA8B,EAC9B,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,OAAO,EACP,UAAU,EACV,eAAe,EACf,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,OAAO,EACP,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,yBAAyB,EACzB,aAAa,EACb,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAEL,UAAU,EACV,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EAEnB,WAAW,EACX,cAAc,EAEd,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAElB,gBAAgB,EAChB,wBAAwB,EACxB,iBAAiB,EACjB,wBAAwB,EACxB,8BAA8B,EAC9B,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EAEnB,kBAAkB,EAClB,kBAAkB,EAClB,4BAA4B,EAC5B,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,EAE1B,4BAA4B,EAC5B,iCAAiC,EACjC,0BAA0B,EAC1B,6BAA6B,EAC7B,0BAA0B,EAC1B,6BAA6B,EAC7B,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EAEjB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,EACxB,iCAAiC,EACjC,2CAA2C,EAC3C,4BAA4B,EAE5B,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EAEtB,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EAEtB,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,yBAAyB,EACzB,gBAAgB,EAChB,wBAAwB,EAExB,oBAAoB,EAEpB,qBAAqB,EACrB,uBAAuB,EAEvB,oBAAoB,EAEpB,wBAAwB,EACxB,8BAA8B,EAC9B,+BAA+B,EAC/B,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EAErB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAEhB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,EACzB,4BAA4B,EAC5B,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,0BAA0B,EAC1B,4BAA4B,EAC5B,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,YAAY,EACV,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,2BAA2B,EAC3B,uBAAuB,EACvB,eAAe,EACf,eAAe,EAEf,iBAAiB,EACjB,iBAAiB,EAEjB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACV,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EAEnB,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,EACzB,eAAe,EACf,mBAAmB,EACnB,eAAe,EAEf,oBAAoB,EACpB,eAAe,EAEf,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAC3B,oBAAoB,EACpB,iBAAiB,EAEjB,aAAa,GACd,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,+BAA+B,EAC/B,eAAe,EACf,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,SAAS,EACT,UAAU,EACV,cAAc,EACd,cAAc,EACd,SAAS,EACT,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,OAAO,EACP,uCAAuC,EACvC,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EAEtB,UAAU,EACV,eAAe,EACf,SAAS,EAET,eAAe,EACf,SAAS,EACT,SAAS,EACT,cAAc,EACd,WAAW,EACX,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,KAAK,eAAe,EACpB,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,EAEzB,oBAAoB,EACpB,wBAAwB,EACxB,eAAe,EAEf,iBAAiB,EACjB,eAAe,EAEf,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGpG,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGjE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5C,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,cAAc,EACd,sBAAsB,EACtB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,kBAAkB,EAAE,KAAK,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAGhF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAG3D,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,yBAAyB,EACzB,0BAA0B,EAC1B,uBAAuB,EACvB,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,gBAAgB,GACtB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,uBAAuB,EACvB,KAAK,WAAW,GACjB,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @tracearr/shared - Shared types, schemas, and constants
|
|
3
|
+
*/
|
|
4
|
+
// Schema exports
|
|
5
|
+
export {
|
|
6
|
+
// Common
|
|
7
|
+
uuidSchema, serverIdsQuerySchema, libraryKeySchema, paginationSchema, booleanStringSchema,
|
|
8
|
+
// Auth
|
|
9
|
+
loginSchema, callbackSchema,
|
|
10
|
+
// Server
|
|
11
|
+
createServerSchema, serverIdParamSchema, reorderServersSchema, updateServerSchema,
|
|
12
|
+
// User
|
|
13
|
+
updateUserSchema, updateUserIdentitySchema, userIdParamSchema, identityScopeQuerySchema, identityScopedPaginationSchema, mergeUsersBodySchema, mergeUserParamSchema, splitServerUserParamSchema, userSortFieldSchema,
|
|
14
|
+
// Session
|
|
15
|
+
sessionQuerySchema, historyQuerySchema, historyAggregatesQuerySchema, filterOptionsQuerySchema, sessionIdParamSchema, terminateSessionBodySchema,
|
|
16
|
+
// Rule
|
|
17
|
+
impossibleTravelParamsSchema, simultaneousLocationsParamsSchema, deviceVelocityParamsSchema, concurrentStreamsParamsSchema, geoRestrictionParamsSchema, accountInactivityParamsSchema, ruleParamsSchema, createRuleSchema, updateRuleSchema, ruleIdParamSchema,
|
|
18
|
+
// Rule V2
|
|
19
|
+
createRuleV2Schema, updateRuleV2Schema, ruleConditionsSchema, hasAtMostOneScope, RULE_SCOPE_ERROR_MESSAGE, scopeAllowsCrossServerEnforcement, RULE_CROSS_SERVER_ENFORCEMENT_ERROR_MESSAGE, INACTIVITY_COMPATIBLE_FIELDS,
|
|
20
|
+
// Bulk operations
|
|
21
|
+
bulkUpdateRulesSchema, bulkDeleteRulesSchema, bulkMigrateRulesSchema,
|
|
22
|
+
// Violation
|
|
23
|
+
violationSortFieldSchema, violationQuerySchema, violationIdParamSchema,
|
|
24
|
+
// Stats
|
|
25
|
+
serverIdFilterSchema, dashboardQuerySchema, timezoneSchema, statPeriodSchema, dateValidationRefinements, statsQuerySchema, locationStatsQuerySchema,
|
|
26
|
+
// Settings
|
|
27
|
+
updateSettingsSchema,
|
|
28
|
+
// Tailscale
|
|
29
|
+
tailscaleEnableSchema, tailscaleExitNodeSchema,
|
|
30
|
+
// Tautulli import
|
|
31
|
+
tautulliImportSchema,
|
|
32
|
+
// Jellystat import
|
|
33
|
+
jellystatPlayStateSchema, jellystatTranscodingInfoSchema, jellystatPlaybackActivitySchema, jellystatBackupSchema, jellystatImportBodySchema, importJobStatusSchema,
|
|
34
|
+
// Engagement tracking
|
|
35
|
+
engagementTierSchema, userBehaviorTypeSchema, engagementQuerySchema, showsQuerySchema,
|
|
36
|
+
// Library stats
|
|
37
|
+
libraryStatsQuerySchema, libraryStatusQuerySchema, libraryGrowthQuerySchema, libraryQualityQuerySchema, libraryStorageQuerySchema, libraryDuplicatesQuerySchema, libraryStaleQuerySchema, libraryWatchQuerySchema, libraryRoiQuerySchema, libraryPatternsQuerySchema, libraryCompletionQuerySchema, topContentQuerySchema, shelvesQuerySchema, } from './schemas.js';
|
|
38
|
+
// Constant exports
|
|
39
|
+
export { RULE_DEFAULTS, RULE_DISPLAY_NAMES, IDENTITY_AWARE_CONDITION_FIELDS, SEVERITY_LEVELS, getSeverityPriority, WS_EVENTS, REDIS_KEYS, setRedisPrefix, getRedisPrefix, CACHE_TTL, NOTIFICATION_EVENTS, API_VERSION, API_BASE_PATH, API_VERSION_V2, API_V2_BASE_PATH, JWT_CONFIG, POLLING_INTERVALS, POLLER_CONFIG, PAGINATION, GEOIP_CONFIG, TIME_MS, MERGE_SAME_SERVER_CONFIRMATION_REQUIRED, SESSION_LIMITS, SESSION_WRITE_RETRY, SERVER_STATS_CONFIG, BANDWIDTH_STATS_CONFIG,
|
|
40
|
+
// SSE
|
|
41
|
+
SSE_CONFIG, PLEX_SSE_EVENTS, SSE_STATE,
|
|
42
|
+
// Unit conversion
|
|
43
|
+
UNIT_CONVERSION, kmToMiles, milesToKm, formatDistance, formatSpeed, formatBitrate, formatMediaTech, getResolutionLabel, formatResolutionDisplay, formatAudioChannels, getDistanceUnit, getSpeedUnit, toMetricDistance, fromMetricDistance, formatConditionFieldValue,
|
|
44
|
+
// Server colors
|
|
45
|
+
SERVER_COLOR_PALETTE, SERVER_TYPE_BRAND_COLORS, pickServerColor,
|
|
46
|
+
// Timezone utilities
|
|
47
|
+
getClientTimezone, isValidTimezone,
|
|
48
|
+
// Multi-version media
|
|
49
|
+
LEGACY_VERSION_SENTINEL, } from './constants.js';
|
|
50
|
+
// Role helper exports
|
|
51
|
+
export { ROLE_PERMISSIONS, LOGIN_ROLES, canLogin, hasMinRole, isOwner, isActive } from './types.js';
|
|
52
|
+
// Session constants
|
|
53
|
+
export { MEDIA_TYPES, DEFAULT_STREAM_DETAILS } from './types.js';
|
|
54
|
+
// Backup constants
|
|
55
|
+
export { RESTORE_PHASES } from './types.js';
|
|
56
|
+
// Violation utilities
|
|
57
|
+
export { collectViolationSessions, getViolationDescription, getViolationDetails, formatEvidenceDescription, formatEvidenceDetails, formatUserList, CONDITION_FIELD_LABELS, OPERATOR_LABELS, } from './violations.js';
|
|
58
|
+
// Media display utilities
|
|
59
|
+
export { formatEpisodeLabel } from './media.js';
|
|
60
|
+
// Alphabet rail letters
|
|
61
|
+
export { LETTER_RAIL_ALPHABET } from './catalogLetters.js';
|
|
62
|
+
// Resolution classification
|
|
63
|
+
export { RESOLUTION_TIERS, classifyByDimensions, normalizeResolutionLabel, resolutionTierRank, resolutionBucket, resolutionBucketSpellings, resolutionAboveSdSpellings, resolutionSpellingRanks, normalizeResolution, } from './resolution.js';
|
|
64
|
+
// Dynamic range (HDR/SDR) classification
|
|
65
|
+
export { DYNAMIC_RANGE_SDR_TOKEN, DYNAMIC_RANGE_TOKENS, normalizeDynamicRange, } from './dynamicRange.js';
|
|
66
|
+
// Server-scope selection (cache-key and query-param builders)
|
|
67
|
+
export { ALL_SERVERS, serverScopeFromIds, serverScopeKey, serverScopeParamEntries, } from './serverScope.js';
|
|
68
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/media.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Media display formatting shared across web, mobile, and server notifications.
|
|
3
|
+
*/
|
|
4
|
+
export interface FormatEpisodeLabelOptions {
|
|
5
|
+
/** When provided, the label is only produced if this equals 'episode'. */
|
|
6
|
+
mediaType?: string | null;
|
|
7
|
+
/** Use "S01 E02" instead of the default "S01E02". */
|
|
8
|
+
spaced?: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Format a season/episode pair into a zero-padded label (e.g. "S00E01").
|
|
12
|
+
* Season 0 and episode 0 are valid (Specials) and must render, not be hidden -
|
|
13
|
+
* only a genuinely missing (null/undefined) season or episode suppresses the label.
|
|
14
|
+
*/
|
|
15
|
+
export declare function formatEpisodeLabel(seasonNumber: number | null | undefined, episodeNumber: number | null | undefined, options?: FormatEpisodeLabelOptions): string | null;
|
|
16
|
+
//# sourceMappingURL=media.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../src/media.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,yBAAyB;IACxC,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,qDAAqD;IACrD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACvC,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACxC,OAAO,GAAE,yBAA8B,GACtC,MAAM,GAAG,IAAI,CAOf"}
|
package/dist/media.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Media display formatting shared across web, mobile, and server notifications.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Format a season/episode pair into a zero-padded label (e.g. "S00E01").
|
|
6
|
+
* Season 0 and episode 0 are valid (Specials) and must render, not be hidden -
|
|
7
|
+
* only a genuinely missing (null/undefined) season or episode suppresses the label.
|
|
8
|
+
*/
|
|
9
|
+
export function formatEpisodeLabel(seasonNumber, episodeNumber, options = {}) {
|
|
10
|
+
if (options.mediaType !== undefined && options.mediaType !== 'episode')
|
|
11
|
+
return null;
|
|
12
|
+
if (seasonNumber == null || episodeNumber == null)
|
|
13
|
+
return null;
|
|
14
|
+
const season = String(seasonNumber).padStart(2, '0');
|
|
15
|
+
const episode = String(episodeNumber).padStart(2, '0');
|
|
16
|
+
return options.spaced ? `S${season} E${episode}` : `S${season}E${episode}`;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=media.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.js","sourceRoot":"","sources":["../src/media.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,YAAuC,EACvC,aAAwC,EACxC,UAAqC,EAAE;IAEvC,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpF,IAAI,YAAY,IAAI,IAAI,IAAI,aAAa,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAE/D,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;AAC7E,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolution Classification
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for turning a media server's resolution label
|
|
5
|
+
* and/or video dimensions into a display resolution tier ("4K", "1080p",
|
|
6
|
+
* etc). Every classifier in the app (session ingest, library sync, rules,
|
|
7
|
+
* web/mobile display) should go through this module instead of hand-rolling
|
|
8
|
+
* its own width/height cutoffs.
|
|
9
|
+
*/
|
|
10
|
+
/** Resolution tier rank (higher = better quality). Order is the vocabulary. */
|
|
11
|
+
export declare const RESOLUTION_TIERS: {
|
|
12
|
+
readonly '8K': 7;
|
|
13
|
+
readonly '4K': 6;
|
|
14
|
+
readonly '1440p': 5;
|
|
15
|
+
readonly '1080p': 4;
|
|
16
|
+
readonly '720p': 3;
|
|
17
|
+
readonly '480p': 2;
|
|
18
|
+
readonly SD: 1;
|
|
19
|
+
};
|
|
20
|
+
export type ResolutionLabel = keyof typeof RESOLUTION_TIERS;
|
|
21
|
+
export declare function classifyByDimensions(width: number | null | undefined, height: number | null | undefined): ResolutionLabel | null;
|
|
22
|
+
export declare function normalizeResolutionLabel(label: string | null | undefined): string | null;
|
|
23
|
+
/** Rank of a resolution label for magnitude comparisons, or null if unknown. */
|
|
24
|
+
export declare function resolutionTierRank(label: string | null | undefined): number | null;
|
|
25
|
+
/** The four-bucket vocabulary library snapshots and facet endpoints store. */
|
|
26
|
+
export type ResolutionBucket = '4k' | '1080p' | '720p' | 'sd';
|
|
27
|
+
/**
|
|
28
|
+
* Fold a stored resolution label into the four-bucket vocabulary. Tiers above
|
|
29
|
+
* 1080p (1440p, 8K) fold into 4k, the closest bucket, rather than dropping to
|
|
30
|
+
* sd. Unknown non-null labels count as sd; null stays null (no video).
|
|
31
|
+
*/
|
|
32
|
+
export declare function resolutionBucket(label: string | null | undefined): ResolutionBucket | null;
|
|
33
|
+
/**
|
|
34
|
+
* Every known spelling that folds into the given bucket, lowercase. Backs the
|
|
35
|
+
* SQL IN-lists in resolutionBuckets.ts so database bucketing cannot drift
|
|
36
|
+
* from resolutionBucket(). The sd bucket has no list: in SQL it is the
|
|
37
|
+
* non-null complement of the other three.
|
|
38
|
+
*/
|
|
39
|
+
export declare function resolutionBucketSpellings(bucket: Exclude<ResolutionBucket, 'sd'>): string[];
|
|
40
|
+
/** All spellings that rank above the sd bucket, for SQL complement predicates. */
|
|
41
|
+
export declare function resolutionAboveSdSpellings(): string[];
|
|
42
|
+
/** Known spellings paired with their tier rank, for SQL rank CASE expressions. */
|
|
43
|
+
export declare function resolutionSpellingRanks(): Array<{
|
|
44
|
+
spelling: string;
|
|
45
|
+
rank: number;
|
|
46
|
+
}>;
|
|
47
|
+
export interface ResolutionInput {
|
|
48
|
+
/** Resolution label from the media server (e.g. "1080", "4k", "sd") */
|
|
49
|
+
label?: string | null;
|
|
50
|
+
/** Video width in pixels */
|
|
51
|
+
width?: number | null;
|
|
52
|
+
/** Video height in pixels */
|
|
53
|
+
height?: number | null;
|
|
54
|
+
}
|
|
55
|
+
export declare function normalizeResolution(input: ResolutionInput): string | null;
|
|
56
|
+
//# sourceMappingURL=resolution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolution.d.ts","sourceRoot":"","sources":["../src/resolution.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,+EAA+E;AAC/E,eAAO,MAAM,gBAAgB;;;;;;;;CAQnB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,gBAAgB,CAAC;AAiB5D,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAChC,eAAe,GAAG,IAAI,CAUxB;AA0BD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAWxF;AAED,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAIlF;AAED,8EAA8E;AAC9E,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;AAE9D;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,gBAAgB,GAAG,IAAI,CAO1F;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,MAAM,EAAE,CAE3F;AAED,kFAAkF;AAClF,wBAAgB,0BAA0B,IAAI,MAAM,EAAE,CAErD;AAED,kFAAkF;AAClF,wBAAgB,uBAAuB,IAAI,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAKnF;AAED,MAAM,WAAW,eAAe;IAC9B,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAOD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAOzE"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolution Classification
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for turning a media server's resolution label
|
|
5
|
+
* and/or video dimensions into a display resolution tier ("4K", "1080p",
|
|
6
|
+
* etc). Every classifier in the app (session ingest, library sync, rules,
|
|
7
|
+
* web/mobile display) should go through this module instead of hand-rolling
|
|
8
|
+
* its own width/height cutoffs.
|
|
9
|
+
*/
|
|
10
|
+
/** Resolution tier rank (higher = better quality). Order is the vocabulary. */
|
|
11
|
+
export const RESOLUTION_TIERS = {
|
|
12
|
+
'8K': 7,
|
|
13
|
+
'4K': 6,
|
|
14
|
+
'1440p': 5,
|
|
15
|
+
'1080p': 4,
|
|
16
|
+
'720p': 3,
|
|
17
|
+
'480p': 2,
|
|
18
|
+
SD: 1,
|
|
19
|
+
};
|
|
20
|
+
const DIMENSION_LADDER = [
|
|
21
|
+
{ label: '8K', minWidth: 6400, minHeight: 4000 },
|
|
22
|
+
{ label: '4K', minWidth: 3800, minHeight: 2000 },
|
|
23
|
+
{ label: '1440p', minWidth: 2500, minHeight: 1400 },
|
|
24
|
+
{ label: '1080p', minWidth: 1800, minHeight: 1000 },
|
|
25
|
+
{ label: '720p', minWidth: 1200, minHeight: 700 },
|
|
26
|
+
{ label: '480p', minWidth: 700, minHeight: 400 },
|
|
27
|
+
];
|
|
28
|
+
export function classifyByDimensions(width, height) {
|
|
29
|
+
if (!width && !height)
|
|
30
|
+
return null;
|
|
31
|
+
for (const tier of DIMENSION_LADDER) {
|
|
32
|
+
if ((width && width >= tier.minWidth) || (height && height >= tier.minHeight)) {
|
|
33
|
+
return tier.label;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return 'SD';
|
|
37
|
+
}
|
|
38
|
+
/** Known resolution label spellings from Plex/Jellyfin/Emby/Tautulli. */
|
|
39
|
+
const LABEL_MAP = {
|
|
40
|
+
'8k': '8K',
|
|
41
|
+
'4320': '8K',
|
|
42
|
+
'4320p': '8K',
|
|
43
|
+
'4k': '4K',
|
|
44
|
+
uhd: '4K',
|
|
45
|
+
'2160': '4K',
|
|
46
|
+
'2160p': '4K',
|
|
47
|
+
'2k': '1440p',
|
|
48
|
+
qhd: '1440p',
|
|
49
|
+
'1440': '1440p',
|
|
50
|
+
'1440p': '1440p',
|
|
51
|
+
'1080': '1080p',
|
|
52
|
+
'1080p': '1080p',
|
|
53
|
+
fhd: '1080p',
|
|
54
|
+
'720': '720p',
|
|
55
|
+
'720p': '720p',
|
|
56
|
+
hd: '720p',
|
|
57
|
+
'480': '480p',
|
|
58
|
+
'480p': '480p',
|
|
59
|
+
sd: 'SD',
|
|
60
|
+
};
|
|
61
|
+
export function normalizeResolutionLabel(label) {
|
|
62
|
+
if (!label)
|
|
63
|
+
return null;
|
|
64
|
+
const lower = label.toLowerCase().trim();
|
|
65
|
+
if (!lower)
|
|
66
|
+
return null;
|
|
67
|
+
const mapped = LABEL_MAP[lower];
|
|
68
|
+
if (mapped)
|
|
69
|
+
return mapped;
|
|
70
|
+
if (/^\d+$/.test(lower))
|
|
71
|
+
return `${lower}p`;
|
|
72
|
+
return label;
|
|
73
|
+
}
|
|
74
|
+
/** Rank of a resolution label for magnitude comparisons, or null if unknown. */
|
|
75
|
+
export function resolutionTierRank(label) {
|
|
76
|
+
const normalized = normalizeResolutionLabel(label);
|
|
77
|
+
if (!normalized || !(normalized in RESOLUTION_TIERS))
|
|
78
|
+
return null;
|
|
79
|
+
return RESOLUTION_TIERS[normalized];
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Fold a stored resolution label into the four-bucket vocabulary. Tiers above
|
|
83
|
+
* 1080p (1440p, 8K) fold into 4k, the closest bucket, rather than dropping to
|
|
84
|
+
* sd. Unknown non-null labels count as sd; null stays null (no video).
|
|
85
|
+
*/
|
|
86
|
+
export function resolutionBucket(label) {
|
|
87
|
+
if (!label)
|
|
88
|
+
return null;
|
|
89
|
+
const rank = resolutionTierRank(label);
|
|
90
|
+
if (rank !== null && rank >= RESOLUTION_TIERS['1440p'])
|
|
91
|
+
return '4k';
|
|
92
|
+
if (rank === RESOLUTION_TIERS['1080p'])
|
|
93
|
+
return '1080p';
|
|
94
|
+
if (rank === RESOLUTION_TIERS['720p'])
|
|
95
|
+
return '720p';
|
|
96
|
+
return 'sd';
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Every known spelling that folds into the given bucket, lowercase. Backs the
|
|
100
|
+
* SQL IN-lists in resolutionBuckets.ts so database bucketing cannot drift
|
|
101
|
+
* from resolutionBucket(). The sd bucket has no list: in SQL it is the
|
|
102
|
+
* non-null complement of the other three.
|
|
103
|
+
*/
|
|
104
|
+
export function resolutionBucketSpellings(bucket) {
|
|
105
|
+
return Object.keys(LABEL_MAP).filter((key) => resolutionBucket(key) === bucket);
|
|
106
|
+
}
|
|
107
|
+
/** All spellings that rank above the sd bucket, for SQL complement predicates. */
|
|
108
|
+
export function resolutionAboveSdSpellings() {
|
|
109
|
+
return Object.keys(LABEL_MAP).filter((key) => resolutionBucket(key) !== 'sd');
|
|
110
|
+
}
|
|
111
|
+
/** Known spellings paired with their tier rank, for SQL rank CASE expressions. */
|
|
112
|
+
export function resolutionSpellingRanks() {
|
|
113
|
+
return Object.keys(LABEL_MAP).map((spelling) => ({
|
|
114
|
+
spelling,
|
|
115
|
+
rank: resolutionTierRank(spelling) ?? 0,
|
|
116
|
+
}));
|
|
117
|
+
}
|
|
118
|
+
// Label wins over dimensions: Tautulli displays Plex's own videoResolution
|
|
119
|
+
// verbatim rather than recomputing it from pixels, since Plex already
|
|
120
|
+
// accounts for scan type/aspect ratio server-side. Dimensions are only the
|
|
121
|
+
// fallback when no label is available (Jellyfin/Emby, or a Plex transcode
|
|
122
|
+
// session where only source pixels survive).
|
|
123
|
+
export function normalizeResolution(input) {
|
|
124
|
+
const { label, width, height } = input;
|
|
125
|
+
const fromLabel = normalizeResolutionLabel(label);
|
|
126
|
+
if (fromLabel)
|
|
127
|
+
return fromLabel;
|
|
128
|
+
return classifyByDimensions(width, height);
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=resolution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolution.js","sourceRoot":"","sources":["../src/resolution.ts"],"names":[],"mappings":"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"}
|