@uptime.app/contracts 1.0.71 → 1.0.72-rc.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.
Files changed (124) hide show
  1. package/dist/cjs/hackbot/hack-generation-trigger.d.ts +1 -0
  2. package/dist/cjs/hackbot/hack-generation-trigger.d.ts.map +1 -1
  3. package/dist/esm/hackbot/hack-generation-trigger.d.ts +1 -0
  4. package/dist/esm/hackbot/hack-generation-trigger.d.ts.map +1 -1
  5. package/package.json +2 -2
  6. package/src/access-control/collection-access-control.ts +28 -28
  7. package/src/access-control/hack-access-control.ts +29 -29
  8. package/src/app-hack/app-full-hack.ts +9 -9
  9. package/src/app-hack/app-hack-metadata.ts +60 -60
  10. package/src/app-hack/app-restricted-hack.ts +22 -22
  11. package/src/b2b-content-access/b2b-content-access.ts +57 -57
  12. package/src/b2b-organisation/b2b-carousel.ts +33 -33
  13. package/src/b2b-organisation/b2b-organisation-events.ts +21 -21
  14. package/src/b2b-organisation/b2b-organisation-invitation.ts +35 -35
  15. package/src/b2b-organisation/b2b-organisation-member-events.ts +21 -21
  16. package/src/b2b-organisation/b2b-organisation-member.ts +10 -10
  17. package/src/b2b-organisation/b2b-organisation.ts +28 -28
  18. package/src/brand/brand-events.ts +21 -21
  19. package/src/brand/brand.ts +26 -26
  20. package/src/catalogue/catalogue.ts +118 -118
  21. package/src/cms-hack/cms-searchable-hack.ts +44 -44
  22. package/src/collection/collection-events.ts +21 -21
  23. package/src/collection/collection.ts +58 -58
  24. package/src/collection/enriched-collection-events.ts +18 -18
  25. package/src/collection/enriched-collection.ts +64 -64
  26. package/src/creator/creator-events.ts +32 -32
  27. package/src/creator/creator.ts +7 -7
  28. package/src/distribution/collection-distribution.ts +17 -17
  29. package/src/distribution/distribution-events.ts +61 -61
  30. package/src/distribution/hack-distribution.ts +18 -18
  31. package/src/draft-hack/draft-hack-events.ts +21 -21
  32. package/src/draft-hack/draft-hack.ts +189 -189
  33. package/src/draft-hack-generation/draft-hack-generation-commands.ts +10 -10
  34. package/src/draft-hack-generation/draft-hack-generation-events.ts +49 -49
  35. package/src/draft-hack-generation/draft-hack-generation.ts +39 -39
  36. package/src/enriched-hack/enriched-hack-events.ts +21 -21
  37. package/src/enriched-hack/enriched-hack.ts +103 -103
  38. package/src/enrichment-asset/hack-enrichment-video-events.ts +55 -55
  39. package/src/enrichment-asset/hack-enrichment-video.ts +40 -40
  40. package/src/entitlement/user-entitlements-commands.ts +54 -54
  41. package/src/entitlement/user-entitlements-events.ts +29 -29
  42. package/src/entitlement/user-entitlements.ts +18 -18
  43. package/src/flashcard/flashcard-events.ts +85 -85
  44. package/src/flashcard/flashcard.ts +138 -138
  45. package/src/hack/extracted-subject.ts +31 -31
  46. package/src/hack/hack-events.ts +21 -21
  47. package/src/hack/hack-published.ts +21 -21
  48. package/src/hack/hack-with-voice-events.ts +20 -20
  49. package/src/hack/hack-with-voice.ts +33 -33
  50. package/src/hack/hack.ts +116 -116
  51. package/src/hack/publish-hack-command.ts +20 -20
  52. package/src/hack-metadata/hack-metadata-events.ts +21 -21
  53. package/src/hack-metadata/hack-metadata.ts +17 -17
  54. package/src/hack-of-the-day/hack-of-the-day-events.ts +21 -21
  55. package/src/hack-of-the-day/hack-of-the-day.ts +13 -13
  56. package/src/hack-statistics/hack-statistics-events.ts +21 -21
  57. package/src/hack-statistics/hack-statistics.ts +9 -9
  58. package/src/hackbot/hack-generation-trigger-events.ts +21 -21
  59. package/src/hackbot/hack-generation-trigger.ts +18 -17
  60. package/src/history/history-events.ts +21 -21
  61. package/src/history/history.ts +46 -46
  62. package/src/index.ts +162 -162
  63. package/src/interest/interest-events.ts +21 -21
  64. package/src/interest/interest.ts +15 -15
  65. package/src/knowledge-source/knowledge-source-events.ts +21 -21
  66. package/src/knowledge-source/knowledge-source.ts +43 -43
  67. package/src/knowledge-source-parsing/knowledge-source-metadata.ts +31 -31
  68. package/src/knowledge-source-parsing/knowledge-source-parsing-commands.ts +41 -41
  69. package/src/knowledge-source-parsing/knowledge-source-parsing-events.ts +28 -28
  70. package/src/knowledge-source-parsing/podcast-metadata.ts +44 -44
  71. package/src/knowledge-source-parsing/podcast-parsing-events.ts +26 -26
  72. package/src/knowledge-source-parsing/user-hack-generation-options.ts +6 -6
  73. package/src/localisation/live-locales.ts +45 -45
  74. package/src/localisation/locale-language.ts +4 -4
  75. package/src/localisation/supported-languages.ts +11 -11
  76. package/src/localisation/supported-locales.ts +67 -67
  77. package/src/moderation/hack-moderation-result-events.ts +18 -18
  78. package/src/moderation/hack-moderation-result.ts +27 -27
  79. package/src/partner/partner-events.ts +21 -21
  80. package/src/partner/partner.ts +7 -7
  81. package/src/pending-hack/pending-hack-events.ts +20 -20
  82. package/src/pending-hack/pending-hack-with-voice-events.ts +20 -20
  83. package/src/pending-hack/pending-hack-with-voice.ts +25 -25
  84. package/src/pending-hack/pending-hack.ts +77 -77
  85. package/src/preferences/preferences-events.ts +15 -15
  86. package/src/preferences/preferences.ts +35 -35
  87. package/src/profile/profile-events.ts +41 -41
  88. package/src/profile/profile.ts +27 -27
  89. package/src/profile/translated-profile.ts +13 -13
  90. package/src/referral/referral-events.ts +41 -41
  91. package/src/referral/referral.ts +76 -76
  92. package/src/saved/saved-collection-events.ts +19 -19
  93. package/src/saved/saved-collection.ts +8 -8
  94. package/src/segment/segment-commands.ts +75 -75
  95. package/src/segment/segment-events.ts +42 -42
  96. package/src/segment/segment-with-voice.ts +8 -8
  97. package/src/segment/segment.ts +82 -82
  98. package/src/skin/skin-events.ts +21 -21
  99. package/src/skin/skin.ts +6 -6
  100. package/src/spark/spark-board-read-model.ts +17 -17
  101. package/src/spark/spark-board.ts +12 -12
  102. package/src/spark/spark-events.ts +42 -42
  103. package/src/spark/spark.ts +80 -80
  104. package/src/text-to-speech/create-speech-commands.ts +22 -22
  105. package/src/text-to-speech/speech-created-events.ts +10 -10
  106. package/src/text-to-speech/supported-voices.ts +184 -184
  107. package/src/text-to-speech/text-segment.ts +29 -29
  108. package/src/theme/theme-events.ts +21 -21
  109. package/src/theme/theme.ts +68 -68
  110. package/src/translation/translation-events.ts +73 -73
  111. package/src/translation/translation.ts +25 -25
  112. package/src/trending/trending-events.ts +21 -21
  113. package/src/trending/trending-hacks.ts +8 -8
  114. package/src/user/user-events.ts +27 -27
  115. package/src/user-context/user-context-events.ts +21 -21
  116. package/src/user-context/user-context.ts +16 -16
  117. package/src/user-notification-context/user-notification-context-events.ts +21 -21
  118. package/src/user-notification-context/user-notification-context.ts +9 -9
  119. package/src/user-statistics/user-statistics-events.ts +97 -97
  120. package/src/user-statistics/user-statistics.ts +82 -82
  121. package/src/video-cropping/video-cropping-events.ts +43 -43
  122. package/src/video-cropping/video-metadata.ts +12 -12
  123. package/tsconfig.cjs.json +7 -7
  124. package/tsconfig.npm.json +21 -21
@@ -1,43 +1,43 @@
1
- export interface KnowledgeSource {
2
- id: string;
3
- /** @deprecated - use affiliate.url instead */
4
- affiliateLink?: string;
5
- // introduced Feb 2021. May be undefined in previous events
6
- affiliate: Affiliate;
7
- categories: Category[];
8
- topics: Topic[];
9
- coverUrl?: string;
10
- createdAt: string;
11
- description?: string;
12
- contributors: Contributor[];
13
- title: string;
14
- type: KnowledgeSourceType;
15
- updatedAt: string;
16
- v: number;
17
- metadata?: {
18
- [key: string]: any;
19
- };
20
- /** Number of pages in the book. only set for books. May be undefined */
21
- pageCount?: number;
22
- /** Set for courses, documentaries and podcasts. May be undefined */
23
- durationInMinutes?: number;
24
- }
25
-
26
- export type KnowledgeSourceType = 'book' | 'course' | 'documentary' | 'podcast';
27
-
28
- export interface Affiliate {
29
- url?: string;
30
- name?: string;
31
- }
32
-
33
- export interface Contributor {
34
- name: string;
35
- }
36
-
37
- export interface Category {
38
- name: string;
39
- }
40
-
41
- export interface Topic {
42
- name: string;
43
- }
1
+ export interface KnowledgeSource {
2
+ id: string;
3
+ /** @deprecated - use affiliate.url instead */
4
+ affiliateLink?: string;
5
+ // introduced Feb 2021. May be undefined in previous events
6
+ affiliate: Affiliate;
7
+ categories: Category[];
8
+ topics: Topic[];
9
+ coverUrl?: string;
10
+ createdAt: string;
11
+ description?: string;
12
+ contributors: Contributor[];
13
+ title: string;
14
+ type: KnowledgeSourceType;
15
+ updatedAt: string;
16
+ v: number;
17
+ metadata?: {
18
+ [key: string]: any;
19
+ };
20
+ /** Number of pages in the book. only set for books. May be undefined */
21
+ pageCount?: number;
22
+ /** Set for courses, documentaries and podcasts. May be undefined */
23
+ durationInMinutes?: number;
24
+ }
25
+
26
+ export type KnowledgeSourceType = 'book' | 'course' | 'documentary' | 'podcast';
27
+
28
+ export interface Affiliate {
29
+ url?: string;
30
+ name?: string;
31
+ }
32
+
33
+ export interface Contributor {
34
+ name: string;
35
+ }
36
+
37
+ export interface Category {
38
+ name: string;
39
+ }
40
+
41
+ export interface Topic {
42
+ name: string;
43
+ }
@@ -1,31 +1,31 @@
1
- export interface KnowledgeSourceMetadata {
2
- // deterministic based on input URL
3
- id: string;
4
- v: number;
5
- createdAt: string;
6
- updatedAt: string;
7
-
8
- url: string;
9
- s3Path: string;
10
- title: string;
11
- contributors: string;
12
- type: string;
13
-
14
- about: string;
15
- summary: string;
16
- quotes: KnowledgeSourceQuote[];
17
-
18
- vectorDbNamespace: string;
19
- vectorDbApproxWordsPerChunk: number;
20
- }
21
-
22
- export interface KnowledgeSourceQuote {
23
- content: string;
24
- authors: string;
25
- }
26
-
27
- export interface KnowledgeSourceUserDefinedMetadata {
28
- title: string;
29
- contributors: string;
30
- type: string;
31
- }
1
+ export interface KnowledgeSourceMetadata {
2
+ // deterministic based on input URL
3
+ id: string;
4
+ v: number;
5
+ createdAt: string;
6
+ updatedAt: string;
7
+
8
+ url: string;
9
+ s3Path: string;
10
+ title: string;
11
+ contributors: string;
12
+ type: string;
13
+
14
+ about: string;
15
+ summary: string;
16
+ quotes: KnowledgeSourceQuote[];
17
+
18
+ vectorDbNamespace: string;
19
+ vectorDbApproxWordsPerChunk: number;
20
+ }
21
+
22
+ export interface KnowledgeSourceQuote {
23
+ content: string;
24
+ authors: string;
25
+ }
26
+
27
+ export interface KnowledgeSourceUserDefinedMetadata {
28
+ title: string;
29
+ contributors: string;
30
+ type: string;
31
+ }
@@ -1,41 +1,41 @@
1
- import { KnowledgeSourceUserDefinedMetadata } from './knowledge-source-metadata';
2
-
3
- export enum SupportedDraftHackGenerationType {
4
- Book = 'book',
5
- Podcast = 'podcast',
6
- }
7
-
8
- export interface ParseKnowledgeSourceCommand {
9
- id: string;
10
- type: 'ParseKnowledgeSource';
11
- payload: {
12
- knowledgeSourceUrl: string;
13
- reference: string;
14
- triggerDraftHackGeneration: boolean;
15
- typeOfDraftHackToGenerate: SupportedDraftHackGenerationType;
16
- };
17
- }
18
-
19
- export interface ParseKnowledgeSourceWithMetadataCommand {
20
- id: string;
21
- type: 'ParseKnowledgeSourceWithMetadata';
22
- payload: {
23
- knowledgeSourceUrl: string;
24
- reference: string;
25
- triggerDraftHackGeneration: boolean;
26
- typeOfDraftHackToGenerate: SupportedDraftHackGenerationType;
27
- userDefinedMetadata: KnowledgeSourceUserDefinedMetadata;
28
- };
29
- }
30
-
31
- export interface ParseKnowledgeSourceFromPodcastCommand {
32
- id: string;
33
- type: 'ParseKnowledgeSourceFromPodcast';
34
- payload: {
35
- podcastUrl: string;
36
- rssEpisodeNumber?: number;
37
- reference: string;
38
- triggerDraftHackGeneration: boolean;
39
- typeOfDraftHackToGenerate: SupportedDraftHackGenerationType;
40
- };
41
- }
1
+ import { KnowledgeSourceUserDefinedMetadata } from './knowledge-source-metadata';
2
+
3
+ export enum SupportedDraftHackGenerationType {
4
+ Book = 'book',
5
+ Podcast = 'podcast',
6
+ }
7
+
8
+ export interface ParseKnowledgeSourceCommand {
9
+ id: string;
10
+ type: 'ParseKnowledgeSource';
11
+ payload: {
12
+ knowledgeSourceUrl: string;
13
+ reference: string;
14
+ triggerDraftHackGeneration: boolean;
15
+ typeOfDraftHackToGenerate: SupportedDraftHackGenerationType;
16
+ };
17
+ }
18
+
19
+ export interface ParseKnowledgeSourceWithMetadataCommand {
20
+ id: string;
21
+ type: 'ParseKnowledgeSourceWithMetadata';
22
+ payload: {
23
+ knowledgeSourceUrl: string;
24
+ reference: string;
25
+ triggerDraftHackGeneration: boolean;
26
+ typeOfDraftHackToGenerate: SupportedDraftHackGenerationType;
27
+ userDefinedMetadata: KnowledgeSourceUserDefinedMetadata;
28
+ };
29
+ }
30
+
31
+ export interface ParseKnowledgeSourceFromPodcastCommand {
32
+ id: string;
33
+ type: 'ParseKnowledgeSourceFromPodcast';
34
+ payload: {
35
+ podcastUrl: string;
36
+ rssEpisodeNumber?: number;
37
+ reference: string;
38
+ triggerDraftHackGeneration: boolean;
39
+ typeOfDraftHackToGenerate: SupportedDraftHackGenerationType;
40
+ };
41
+ }
@@ -1,28 +1,28 @@
1
- import { SupportedDraftHackGenerationType } from './knowledge-source-parsing-commands';
2
- import { UserHackGenerationOptions } from './user-hack-generation-options';
3
- import { KnowledgeSourceUserDefinedMetadata } from './knowledge-source-metadata';
4
-
5
- export interface KnowledgeSourceParsed {
6
- id: string;
7
- type: 'KnowledgeSourceParsed';
8
- payload: {
9
- // the parsed knowledge source id
10
- id: string;
11
- // the version
12
- v: number;
13
- reference: string;
14
- parsedKnowledgeSourceId: string;
15
- typeOfDraftHackToGenerate?: SupportedDraftHackGenerationType;
16
- userHackGenerationOptions?: UserHackGenerationOptions;
17
- userDefinedMetadata?: KnowledgeSourceUserDefinedMetadata;
18
- }
19
- }
20
-
21
- export interface KnowledgeSourceParsingFailed {
22
- id: string;
23
- type: 'KnowledgeSourceParsingFailed';
24
- payload: {
25
- reference: string;
26
- errorMessage: string;
27
- }
28
- }
1
+ import { SupportedDraftHackGenerationType } from './knowledge-source-parsing-commands';
2
+ import { UserHackGenerationOptions } from './user-hack-generation-options';
3
+ import { KnowledgeSourceUserDefinedMetadata } from './knowledge-source-metadata';
4
+
5
+ export interface KnowledgeSourceParsed {
6
+ id: string;
7
+ type: 'KnowledgeSourceParsed';
8
+ payload: {
9
+ // the parsed knowledge source id
10
+ id: string;
11
+ // the version
12
+ v: number;
13
+ reference: string;
14
+ parsedKnowledgeSourceId: string;
15
+ typeOfDraftHackToGenerate?: SupportedDraftHackGenerationType;
16
+ userHackGenerationOptions?: UserHackGenerationOptions;
17
+ userDefinedMetadata?: KnowledgeSourceUserDefinedMetadata;
18
+ }
19
+ }
20
+
21
+ export interface KnowledgeSourceParsingFailed {
22
+ id: string;
23
+ type: 'KnowledgeSourceParsingFailed';
24
+ payload: {
25
+ reference: string;
26
+ errorMessage: string;
27
+ }
28
+ }
@@ -1,44 +1,44 @@
1
- export interface PodcastMetadataWithoutTranscript {
2
- source: SupportedPodcastSource;
3
- podcastName: string,
4
- episodeName: string,
5
- episodeDescription: string,
6
- episodeReleaseDateIso: string,
7
- episodeImageUrl: string,
8
- episodeAudioUrl: string,
9
- originalUrl: string,
10
- podcastId?: string,
11
- episodeId?: string
12
- episodeUrl?: string,
13
- episodeDurationSeconds?: number,
14
- podcastPublisher?: string,
15
- podcastRss?: string,
16
- }
17
-
18
- export interface PodcastMetadata extends PodcastMetadataWithoutTranscript {
19
- id: string;
20
- v: number;
21
- createdAt: string;
22
- updatedAt: string;
23
-
24
- transcript: string;
25
- summary: string;
26
- vectorDbNamespace: string;
27
- purpose: string;
28
- hosts: PodcastConfirmedContributor[];
29
- guests: PodcastConfirmedContributor[];
30
- }
31
-
32
- export interface PodcastConfirmedContributor {
33
- nameInput: string;
34
- confirmedName: string;
35
- bio: string;
36
- }
37
-
38
- export enum SupportedPodcastSource {
39
- ListenNotes = 'listennotes',
40
- iTunes = 'itunes',
41
- Spotify = 'spotify',
42
- Rss = 'rss',
43
- AudioWithMetadata = 'audio-with-metadata'
44
- }
1
+ export interface PodcastMetadataWithoutTranscript {
2
+ source: SupportedPodcastSource;
3
+ podcastName: string,
4
+ episodeName: string,
5
+ episodeDescription: string,
6
+ episodeReleaseDateIso: string,
7
+ episodeImageUrl: string,
8
+ episodeAudioUrl: string,
9
+ originalUrl: string,
10
+ podcastId?: string,
11
+ episodeId?: string
12
+ episodeUrl?: string,
13
+ episodeDurationSeconds?: number,
14
+ podcastPublisher?: string,
15
+ podcastRss?: string,
16
+ }
17
+
18
+ export interface PodcastMetadata extends PodcastMetadataWithoutTranscript {
19
+ id: string;
20
+ v: number;
21
+ createdAt: string;
22
+ updatedAt: string;
23
+
24
+ transcript: string;
25
+ summary: string;
26
+ vectorDbNamespace: string;
27
+ purpose: string;
28
+ hosts: PodcastConfirmedContributor[];
29
+ guests: PodcastConfirmedContributor[];
30
+ }
31
+
32
+ export interface PodcastConfirmedContributor {
33
+ nameInput: string;
34
+ confirmedName: string;
35
+ bio: string;
36
+ }
37
+
38
+ export enum SupportedPodcastSource {
39
+ ListenNotes = 'listennotes',
40
+ iTunes = 'itunes',
41
+ Spotify = 'spotify',
42
+ Rss = 'rss',
43
+ AudioWithMetadata = 'audio-with-metadata'
44
+ }
@@ -1,26 +1,26 @@
1
- import { SupportedDraftHackGenerationType } from './knowledge-source-parsing-commands';
2
- import { UserHackGenerationOptions } from './user-hack-generation-options';
3
-
4
- export interface PodcastParsed {
5
- id: string;
6
- type: 'PodcastParsed';
7
- payload: {
8
- // the parsed podcast id
9
- id: string;
10
- // the version
11
- v: number;
12
- reference: string;
13
- podcastMetadataId: string;
14
- typeOfDraftHackToGenerate?: SupportedDraftHackGenerationType;
15
- userHackGenerationOptions?: UserHackGenerationOptions;
16
- }
17
- }
18
-
19
- export interface PodcastParsingFailed {
20
- id: string;
21
- type: 'PodcastParsingFailed';
22
- payload: {
23
- reference: string;
24
- errorMessage: string;
25
- }
26
- }
1
+ import { SupportedDraftHackGenerationType } from './knowledge-source-parsing-commands';
2
+ import { UserHackGenerationOptions } from './user-hack-generation-options';
3
+
4
+ export interface PodcastParsed {
5
+ id: string;
6
+ type: 'PodcastParsed';
7
+ payload: {
8
+ // the parsed podcast id
9
+ id: string;
10
+ // the version
11
+ v: number;
12
+ reference: string;
13
+ podcastMetadataId: string;
14
+ typeOfDraftHackToGenerate?: SupportedDraftHackGenerationType;
15
+ userHackGenerationOptions?: UserHackGenerationOptions;
16
+ }
17
+ }
18
+
19
+ export interface PodcastParsingFailed {
20
+ id: string;
21
+ type: 'PodcastParsingFailed';
22
+ payload: {
23
+ reference: string;
24
+ errorMessage: string;
25
+ }
26
+ }
@@ -1,6 +1,6 @@
1
- export interface UserHackGenerationOptions {
2
- toneOfVoice?: string;
3
- takeawaysToEmphasise?: string;
4
- hintsForInsights?: string;
5
- createActionsForInsights: boolean;
6
- }
1
+ export interface UserHackGenerationOptions {
2
+ toneOfVoice?: string;
3
+ takeawaysToEmphasise?: string;
4
+ hintsForInsights?: string;
5
+ createActionsForInsights: boolean;
6
+ }
@@ -1,45 +1,45 @@
1
- import { DEFAULT_LOCALE, SupportedLocale } from './supported-locales';
2
-
3
- /**
4
- * All locale codes that are live and in use in the app
5
- */
6
- export function allLiveLocaleCodes(): SupportedLocale[] {
7
- return [
8
- SupportedLocale.enUS,
9
- SupportedLocale.ptBR,
10
- SupportedLocale.es,
11
- SupportedLocale.frFR,
12
- SupportedLocale.itIT,
13
- SupportedLocale.nlNL,
14
- SupportedLocale.deDE,
15
- SupportedLocale.frCA,
16
- SupportedLocale.plPL,
17
- SupportedLocale.svSE,
18
- SupportedLocale.trTR,
19
- SupportedLocale.msMY,
20
- SupportedLocale.nbNO,
21
- SupportedLocale.zhCN,
22
- SupportedLocale.zhTW,
23
- SupportedLocale.ruRU,
24
- SupportedLocale.koKR,
25
- SupportedLocale.thTH,
26
- SupportedLocale.hiIN,
27
- SupportedLocale.ar,
28
- SupportedLocale.idID,
29
- SupportedLocale.heIL,
30
- SupportedLocale.jaJP,
31
- SupportedLocale.viVN
32
- ];
33
- }
34
-
35
- export function localeCodeIsLive(localeCode: string) {
36
- return allLiveLocaleCodes().includes(localeCode as SupportedLocale);
37
- }
38
-
39
- export function liveLocaleFrom(localeCode?: string): SupportedLocale {
40
- const locale = allLiveLocaleCodes().find(liveLocale => liveLocale == localeCode);
41
- if (!locale) {
42
- return DEFAULT_LOCALE;
43
- }
44
- return locale;
45
- }
1
+ import { DEFAULT_LOCALE, SupportedLocale } from './supported-locales';
2
+
3
+ /**
4
+ * All locale codes that are live and in use in the app
5
+ */
6
+ export function allLiveLocaleCodes(): SupportedLocale[] {
7
+ return [
8
+ SupportedLocale.enUS,
9
+ SupportedLocale.ptBR,
10
+ SupportedLocale.es,
11
+ SupportedLocale.frFR,
12
+ SupportedLocale.itIT,
13
+ SupportedLocale.nlNL,
14
+ SupportedLocale.deDE,
15
+ SupportedLocale.frCA,
16
+ SupportedLocale.plPL,
17
+ SupportedLocale.svSE,
18
+ SupportedLocale.trTR,
19
+ SupportedLocale.msMY,
20
+ SupportedLocale.nbNO,
21
+ SupportedLocale.zhCN,
22
+ SupportedLocale.zhTW,
23
+ SupportedLocale.ruRU,
24
+ SupportedLocale.koKR,
25
+ SupportedLocale.thTH,
26
+ SupportedLocale.hiIN,
27
+ SupportedLocale.ar,
28
+ SupportedLocale.idID,
29
+ SupportedLocale.heIL,
30
+ SupportedLocale.jaJP,
31
+ SupportedLocale.viVN
32
+ ];
33
+ }
34
+
35
+ export function localeCodeIsLive(localeCode: string) {
36
+ return allLiveLocaleCodes().includes(localeCode as SupportedLocale);
37
+ }
38
+
39
+ export function liveLocaleFrom(localeCode?: string): SupportedLocale {
40
+ const locale = allLiveLocaleCodes().find(liveLocale => liveLocale == localeCode);
41
+ if (!locale) {
42
+ return DEFAULT_LOCALE;
43
+ }
44
+ return locale;
45
+ }
@@ -1,4 +1,4 @@
1
- export function languageOf(locale: string): string {
2
- if (!locale) return ''; // temp: defend against an undefined locale
3
- return locale.split('-')[0];
4
- }
1
+ export function languageOf(locale: string): string {
2
+ if (!locale) return ''; // temp: defend against an undefined locale
3
+ return locale.split('-')[0];
4
+ }
@@ -1,11 +1,11 @@
1
- import { allSupportedLocaleCodes } from './supported-locales';
2
-
3
- export function allSupportedLanguageCodes(): string[] {
4
- const languageCodes = allSupportedLocaleCodes().map(locale => locale.split('-')[0]);
5
- const uniqueLanguageCodes = [...new Set(languageCodes)];
6
-
7
- return uniqueLanguageCodes;
8
- }
9
-
10
- export const ENGLISH_LANGUAGE = 'en';
11
- export const DEFAULT_LANGUAGE = ENGLISH_LANGUAGE;
1
+ import { allSupportedLocaleCodes } from './supported-locales';
2
+
3
+ export function allSupportedLanguageCodes(): string[] {
4
+ const languageCodes = allSupportedLocaleCodes().map(locale => locale.split('-')[0]);
5
+ const uniqueLanguageCodes = [...new Set(languageCodes)];
6
+
7
+ return uniqueLanguageCodes;
8
+ }
9
+
10
+ export const ENGLISH_LANGUAGE = 'en';
11
+ export const DEFAULT_LANGUAGE = ENGLISH_LANGUAGE;