44 lines
4 KiB
TypeScript
44 lines
4 KiB
TypeScript
// Fixed lists of the consoles' choice fields, shared by the CLI and the desktop's editors (pure, no Node imports):
|
|
// App Store categories (with the iTunes genre ids), Google Play categories, the App Store age rating questions with
|
|
// their "nothing" answers, Play target audience age groups.
|
|
|
|
/** App Store Connect category id -> iTunes genre id (the "genreIds" of Search API results). Apple's genre ids. */
|
|
export const GENRE_IDS: Record<string, string> = {
|
|
BOOKS: '6018', BUSINESS: '6000', DEVELOPER_TOOLS: '6026', EDUCATION: '6017', ENTERTAINMENT: '6016', FINANCE: '6015', FOOD_AND_DRINK: '6023', GAMES: '6014',
|
|
GRAPHICS_AND_DESIGN: '6027', HEALTH_AND_FITNESS: '6013', LIFESTYLE: '6012', MAGAZINES_AND_NEWSPAPERS: '6021', MEDICAL: '6020', MUSIC: '6011', NAVIGATION: '6010',
|
|
NEWS: '6009', PHOTO_AND_VIDEO: '6008', PRODUCTIVITY: '6007', REFERENCE: '6006', SHOPPING: '6024', SOCIAL_NETWORKING: '6005', SPORTS: '6004', STICKERS: '6025',
|
|
TRAVEL: '6003', UTILITIES: '6002', WEATHER: '6001',
|
|
GAMES_ACTION: '7001', GAMES_ADVENTURE: '7002', GAMES_CASUAL: '7003', GAMES_BOARD: '7004', GAMES_CARD: '7005', GAMES_CASINO: '7006', GAMES_FAMILY: '7009',
|
|
GAMES_MUSIC: '7011', GAMES_PUZZLE: '7012', GAMES_RACING: '7013', GAMES_ROLE_PLAYING: '7014', GAMES_SIMULATION: '7015', GAMES_SPORTS: '7016',
|
|
GAMES_STRATEGY: '7017', GAMES_TRIVIA: '7018', GAMES_WORD: '7019',
|
|
};
|
|
/** App Store primary / secondary categories (no GAMES_* subcategories). */
|
|
export const APPLE_CATEGORIES = Object.keys(GENRE_IDS).filter(k => !k.startsWith('GAMES_'));
|
|
/** App Store game subcategories (primarySubOne / primarySubTwo when the primary is GAMES). */
|
|
export const APPLE_GAME_SUBCATEGORIES = Object.keys(GENRE_IDS).filter(k => k.startsWith('GAMES_'));
|
|
|
|
/** Play Console's game categories (Store settings > App category, app type Game). */
|
|
export const PLAY_GAME_CATEGORIES = ['Action', 'Adventure', 'Arcade', 'Board', 'Card', 'Casino', 'Casual', 'Educational', 'Music', 'Puzzle', 'Racing',
|
|
'Role Playing', 'Simulation', 'Sports', 'Strategy', 'Trivia', 'Word'] as const;
|
|
/** Play Console's app categories (Store settings > App category, app type App). */
|
|
export const PLAY_APP_CATEGORIES = ['Art & Design', 'Auto & Vehicles', 'Beauty', 'Books & Reference', 'Business', 'Comics', 'Communication', 'Dating',
|
|
'Education', 'Entertainment', 'Events', 'Finance', 'Food & Drink', 'Health & Fitness', 'House & Home', 'Libraries & Demo', 'Lifestyle',
|
|
'Maps & Navigation', 'Medical', 'Music & Audio', 'News & Magazines', 'Parenting', 'Personalization', 'Photography', 'Productivity', 'Shopping',
|
|
'Social', 'Sports', 'Tools', 'Travel & Local', 'Video Players & Editors', 'Weather'] as const;
|
|
|
|
/** Every question of the current App Store age rating declaration at its "nothing" answer. */
|
|
export const AGE_RATING_NONE: Record<string, string | boolean | null> = {
|
|
advertising: false, ageAssurance: false, alcoholTobaccoOrDrugUseOrReferences: 'NONE', contests: 'NONE', gambling: false,
|
|
gamblingSimulated: 'NONE', gunsOrOtherWeapons: 'NONE', healthOrWellnessTopics: false, horrorOrFearThemes: 'NONE', lootBox: false,
|
|
matureOrSuggestiveThemes: 'NONE', medicalOrTreatmentInformation: 'NONE', messagingAndChat: false, parentalControls: false,
|
|
profanityOrCrudeHumor: 'NONE', socialMedia: false, socialMediaAgeRestricted: false, sexualContentGraphicAndNudity: 'NONE', sexualContentOrNudity: 'NONE', unrestrictedWebAccess: false,
|
|
userGeneratedContent: false, violenceCartoonOrFantasy: 'NONE', violenceRealistic: 'NONE',
|
|
violenceRealisticProlongedGraphicOrSadistic: 'NONE', kidsAgeBand: null,
|
|
};
|
|
/** The answers of a frequency question (App Store Connect's None / Infrequent or mild / Frequent or intense). */
|
|
export const AGE_FREQUENCY = ['NONE', 'INFREQUENT_OR_MILD', 'FREQUENT_OR_INTENSE'] as const;
|
|
/** The Kids Category age band (null: not in the Kids Category). */
|
|
export const KIDS_AGE_BANDS = ['FIVE_AND_UNDER', 'SIX_TO_EIGHT', 'NINE_TO_ELEVEN'] as const;
|
|
|
|
/** Play target audience age groups (App content > Target audience and content). */
|
|
export const PLAY_AGE_GROUPS = ['0-5', '6-8', '9-12', '13-15', '16-17', '18+'] as const;
|