waha-shared 1.0.1

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 (135) hide show
  1. package/.DS_Store +0 -0
  2. package/README.md +10 -0
  3. package/__init__.py +0 -0
  4. package/copy.ts +37 -0
  5. package/data/README.md +45 -0
  6. package/data/__init__.py +0 -0
  7. package/data/aslTimestamps.json +192788 -0
  8. package/data/bibleAudios.json +394 -0
  9. package/data/bibleAudios.ts +4 -0
  10. package/data/bibleResources/audioBibleLicenses.json +6235 -0
  11. package/data/bibleResources/bibleBooks.json +6071 -0
  12. package/data/bibleResources/bibleBooks.ts +4 -0
  13. package/data/bibleResources/bibleChaptersList.json +1191 -0
  14. package/data/bibleResources/bibleChaptersList.ts +4 -0
  15. package/data/bibleResources/textBibleLicenses.json +14603 -0
  16. package/data/bibleStatuses.json +9196 -0
  17. package/data/bibleStatuses.ts +4 -0
  18. package/data/bibleTexts.json +527 -0
  19. package/data/bibleTexts.ts +4 -0
  20. package/data/clones.json +13 -0
  21. package/data/countryResources/areas.json +74 -0
  22. package/data/countryResources/areas.ts +4 -0
  23. package/data/countryResources/countries.json +3362 -0
  24. package/data/countryResources/countries.ts +4 -0
  25. package/data/foundationsCurriculums.json +130 -0
  26. package/data/foundationsCurriculums.ts +4 -0
  27. package/data/languageResources/countriesAndLanguages.json +11718 -0
  28. package/data/languageResources/countriesAndLanguages.ts +16 -0
  29. package/data/languageResources/crowdinLanguages.json +2172 -0
  30. package/data/languageResources/iosVoiceOverLanguages.json +64 -0
  31. package/data/languageResources/iso6933LanguageCodes.json +7927 -0
  32. package/data/languageResources/mmsLanguages.json +28164 -0
  33. package/data/languageResources/phoneLanguages.json +1532 -0
  34. package/data/languageResources/phoneLanguages.ts +14 -0
  35. package/data/languages.json +7045 -0
  36. package/data/languages.ts +4 -0
  37. package/data/mediaDurations.json +32364 -0
  38. package/data/mediaDurations.ts +4 -0
  39. package/data/notification.json +69 -0
  40. package/data/notification.ts +4 -0
  41. package/data/numeralMaps.json +26 -0
  42. package/data/numeralMaps.ts +4 -0
  43. package/data/orphanedBibleTexts.json +2747 -0
  44. package/data/questions.json +317 -0
  45. package/data/questions.ts +4 -0
  46. package/data/questionsCurriculums.json +753 -0
  47. package/data/questionsCurriculums.ts +4 -0
  48. package/data/releaseNotes.json +2381 -0
  49. package/data/releaseNotes.ts +4 -0
  50. package/data/schemas/appTranslations.schema.json +802 -0
  51. package/data/schemas/areas.schema.json +76 -0
  52. package/data/schemas/aslTimestamps.schema.json +59 -0
  53. package/data/schemas/bibleAudios.schema.json +37 -0
  54. package/data/schemas/bibleBooks.schema.json +112 -0
  55. package/data/schemas/bibleChapters.schema.json +61 -0
  56. package/data/schemas/bibleStatuses.schema.json +41 -0
  57. package/data/schemas/bibleTexts.schema.json +60 -0
  58. package/data/schemas/clones.schema.json +63 -0
  59. package/data/schemas/countries.schema.json +84 -0
  60. package/data/schemas/foundationsCurriculums.schema.json +20 -0
  61. package/data/schemas/introductionTranslations.schema.json +101 -0
  62. package/data/schemas/languages.schema.json +365 -0
  63. package/data/schemas/mediaDurations.schema.json +41 -0
  64. package/data/schemas/notification.schema.json +111 -0
  65. package/data/schemas/numeralMaps.schema.json +57 -0
  66. package/data/schemas/questionTranslations.schema.json +20 -0
  67. package/data/schemas/questions.schema.json +29 -0
  68. package/data/schemas/questionsCurriculums.schema.json +34 -0
  69. package/data/schemas/releaseNotes.schema.json +21 -0
  70. package/data/schemas/screenshots.schema.json +23 -0
  71. package/data/schemas/setTranslations.schema.json +70 -0
  72. package/data/schemas/sets.schema.json +109 -0
  73. package/data/schemas/topicsCurriculums.schema.json +20 -0
  74. package/data/screenshots.json +17 -0
  75. package/data/screenshots.ts +4 -0
  76. package/data/sets.json +12258 -0
  77. package/data/sets.ts +4 -0
  78. package/data/specialIds.json +72 -0
  79. package/data/specialIds.ts +19 -0
  80. package/data/timings/som.json +9150 -0
  81. package/data/topicsCurriculums.json +131 -0
  82. package/data/topicsCurriculums.ts +4 -0
  83. package/data/typescript/appTranslations.ts +322 -0
  84. package/data/typescript/areas.ts +45 -0
  85. package/data/typescript/aslTimestamps.ts +36 -0
  86. package/data/typescript/bibleAudioAvailableChapters.ts +35 -0
  87. package/data/typescript/bibleAudios.ts +32 -0
  88. package/data/typescript/bibleBookNames.ts +97 -0
  89. package/data/typescript/bibleBooks.ts +63 -0
  90. package/data/typescript/bibleChapters.ts +40 -0
  91. package/data/typescript/bibleStatuses.ts +54 -0
  92. package/data/typescript/bibleTextAvailableChapters.ts +35 -0
  93. package/data/typescript/bibleTexts.ts +63 -0
  94. package/data/typescript/clones.ts +35 -0
  95. package/data/typescript/countries.ts +152 -0
  96. package/data/typescript/foundationsCurriculums.ts +15 -0
  97. package/data/typescript/introductionTranslations.ts +60 -0
  98. package/data/typescript/languages.ts +369 -0
  99. package/data/typescript/mediaDurations.ts +89 -0
  100. package/data/typescript/notification.ts +189 -0
  101. package/data/typescript/numeralMaps.ts +74 -0
  102. package/data/typescript/questionTranslations.ts +6 -0
  103. package/data/typescript/questions.ts +25 -0
  104. package/data/typescript/questionsCurriculums.ts +26 -0
  105. package/data/typescript/releaseNotes.ts +10 -0
  106. package/data/typescript/screenshots.ts +52 -0
  107. package/data/typescript/setTranslations.ts +39 -0
  108. package/data/typescript/sets.ts +105 -0
  109. package/data/typescript/topicsCurriculums.ts +15 -0
  110. package/data/youtube/playlists.json +28 -0
  111. package/data/youtube/videos.json +262 -0
  112. package/data/youtube/videos.ts +2 -0
  113. package/functions/activeCampaign.ts +127 -0
  114. package/functions/bibleChapterUtils.ts +241 -0
  115. package/functions/crowdin.ts +51 -0
  116. package/functions/languages.ts +284 -0
  117. package/functions/scripturePassages.ts +368 -0
  118. package/functions/sets.ts +495 -0
  119. package/package.json +10 -0
  120. package/translations/appTranslations.json +10239 -0
  121. package/translations/appTranslations.ts +4 -0
  122. package/translations/introductionTranslations.json +422 -0
  123. package/translations/introductionTranslations.ts +4 -0
  124. package/translations/questionTranslations.json +1472 -0
  125. package/translations/questionTranslations.ts +4 -0
  126. package/translations/setTranslations.json +30257 -0
  127. package/translations/setTranslations.ts +4 -0
  128. package/translations/spokenQuestionTranslations.json +1472 -0
  129. package/types/analytics.ts +147 -0
  130. package/types/completions.ts +9 -0
  131. package/types/feedback.ts +27 -0
  132. package/types/languages.ts +37 -0
  133. package/types/notifications.ts +37 -0
  134. package/types/sets.ts +84 -0
  135. package/types/users.ts +162 -0
@@ -0,0 +1,131 @@
1
+ [
2
+ {
3
+ "curriculumId": "eng",
4
+ "sets": [
5
+ "02.001",
6
+ "02.002",
7
+ "02.003",
8
+ "02.004",
9
+ "02.005",
10
+ "02.006",
11
+ "02.007",
12
+ "02.008",
13
+ "02.009",
14
+ "02.010",
15
+ "02.011",
16
+ "02.012",
17
+ "02.013",
18
+ "02.014",
19
+ "02.015",
20
+ "02.016",
21
+ "02.017",
22
+ "02.018",
23
+ "02.019",
24
+ "02.020",
25
+ "02.021",
26
+ "02.022",
27
+ "02.023",
28
+ "02.024",
29
+ "02.025",
30
+ "02.026",
31
+ "02.027",
32
+ "02.028",
33
+ "02.029",
34
+ "02.030",
35
+ "02.031",
36
+ "02.032",
37
+ "02.033",
38
+ "02.034",
39
+ "02.035"
40
+ ]
41
+ },
42
+ {
43
+ "curriculumId": "mya",
44
+ "sets": [
45
+ "02.001",
46
+ "02.002",
47
+ "02.003",
48
+ "02.004",
49
+ "02.005",
50
+ "02.006",
51
+ "02.007",
52
+ "02.008",
53
+ "02.009",
54
+ "02.010",
55
+ "02.011",
56
+ "02.012",
57
+ "02.013",
58
+ "02.014",
59
+ "02.015",
60
+ "02.016",
61
+ "02.017",
62
+ "02.018",
63
+ "02.019",
64
+ "02.020",
65
+ "02.021",
66
+ "02.022",
67
+ "02.023",
68
+ "02.024",
69
+ "02.025",
70
+ "02.026",
71
+ "02.027",
72
+ "02.028",
73
+ "02.029",
74
+ "02.030",
75
+ "02.031",
76
+ "02.032",
77
+ "02.033",
78
+ "02.034",
79
+ "02.035",
80
+ "02.074"
81
+ ]
82
+ },
83
+ {
84
+ "curriculumId": "hin",
85
+ "sets": ["02.036", "02.037"]
86
+ },
87
+ {
88
+ "curriculumId": "ase",
89
+ "sets": ["02.073"]
90
+ },
91
+ {
92
+ "curriculumId": "tur",
93
+ "sets": [
94
+ "02.038",
95
+ "02.039",
96
+ "02.040",
97
+ "02.041",
98
+ "02.042",
99
+ "02.043",
100
+ "02.044",
101
+ "02.045",
102
+ "02.046",
103
+ "02.047",
104
+ "02.048",
105
+ "02.049",
106
+ "02.050",
107
+ "02.051",
108
+ "02.052",
109
+ "02.053",
110
+ "02.054",
111
+ "02.055",
112
+ "02.056",
113
+ "02.057",
114
+ "02.058",
115
+ "02.059",
116
+ "02.060",
117
+ "02.061",
118
+ "02.062",
119
+ "02.063",
120
+ "02.064",
121
+ "02.065",
122
+ "02.066",
123
+ "02.067",
124
+ "02.068",
125
+ "02.069",
126
+ "02.070",
127
+ "02.071",
128
+ "02.072"
129
+ ]
130
+ }
131
+ ]
@@ -0,0 +1,4 @@
1
+ import topicsCurriculumsData from './topicsCurriculums.json'
2
+ import { topicsCurriculums } from './typescript/topicsCurriculums'
3
+
4
+ export default topicsCurriculums.parse(topicsCurriculumsData)
@@ -0,0 +1,322 @@
1
+ import { z } from 'zod'
2
+
3
+ export const appTranslations = z
4
+ .record(
5
+ z
6
+ .object({
7
+ percent_available: z.string().min(1).optional(),
8
+ name: z.string().min(1),
9
+ version: z.string().min(1),
10
+ a11y_add_secondary_language_hint: z.string().min(1),
11
+ a11y_article_hint: z.string().min(1),
12
+ a11y_banner_dismiss_hint: z.string().min(1),
13
+ a11y_bible_audio_controls_label: z.string().min(1),
14
+ a11y_bible_translation_hint: z.string().min(1),
15
+ a11y_bookmark_hint: z.string().min(1),
16
+ a11y_bookmark_label: z.string().min(1),
17
+ a11y_change_languages_hint: z.string().min(1),
18
+ a11y_chapter_button_hint: z.string().min(1),
19
+ a11y_choose_primary_language_hint: z.string().min(1),
20
+ a11y_clear_passcode_hint: z.string().min(1),
21
+ a11y_download_set_label: z.string().min(1),
22
+ a11y_extra_controls_hint: z.string().min(1),
23
+ a11y_extra_controls_label: z.string().min(1),
24
+ a11y_font_size_decrement_label: z.string().min(1),
25
+ a11y_font_size_increment_label: z.string().min(1),
26
+ a11y_font_size_label: z.string().min(1),
27
+ a11y_give_button_hint: z.string().min(1),
28
+ a11y_group_help_hint: z.string().min(1),
29
+ a11y_lesson_actions_hint: z.string().min(1),
30
+ a11y_lesson_actions_label: z.string().min(1),
31
+ a11y_lesson_hint: z.string().min(1),
32
+ a11y_lesson_label: z.string().min(1),
33
+ a11y_lesson_question_label: z.string().min(1),
34
+ a11y_lesson_text_hint: z.string().min(1),
35
+ a11y_mute_label: z.string().min(1),
36
+ a11y_play_button_label: z.string().min(1),
37
+ a11y_playback_speed_decrement_label: z.string().min(1),
38
+ a11y_playback_speed_increment_label: z.string().min(1),
39
+ a11y_playback_speed_label: z.string().min(1),
40
+ a11y_radio_hint: z.string().min(1),
41
+ a11y_remove_language_label: z.string().min(1),
42
+ a11y_scrubber_decrement_label: z.string().min(1),
43
+ a11y_scrubber_increment_label: z.string().min(1),
44
+ a11y_scrubber_label: z.string().min(1),
45
+ a11y_search_hint: z.string().min(1),
46
+ a11y_security_mode_label: z.string().min(1),
47
+ a11y_set_hint: z.string().min(1),
48
+ a11y_share_lesson_label: z.string().min(1),
49
+ a11y_tab_hint: z.string().min(1),
50
+ a11y_video_label: z.string().min(1),
51
+ a11y_view_bible_hint: z.string().min(1),
52
+ a11y_view_in_progress_language_hint: z.string().min(1),
53
+ a11y_view_launched_language_hint: z.string().min(1),
54
+ about: z.string().min(1),
55
+ add_language: z.string().min(1),
56
+ all: z.string().min(1),
57
+ all_languages: z.string().min(1),
58
+ app_store_listing_title: z.string().min(1),
59
+ app_store_listing_description: z.string().min(1),
60
+ app_store_listing_screenshot_foundations: z.string().min(1),
61
+ app_store_listing_screenshot_languages: z.string().min(1),
62
+ app_store_listing_screenshot_learn: z.string().min(1),
63
+ app_store_listing_screenshot_lesson: z.string().min(1),
64
+ app_store_listing_screenshot_reviews_1: z.string().min(1),
65
+ app_store_listing_screenshot_reviews_2: z.string().min(1),
66
+ app_store_listing_screenshot_set: z.string().min(1),
67
+ app_store_listing_screenshot_share: z.string().min(1),
68
+ app_store_listing_screenshot_testimonial: z.string().min(1),
69
+ app_store_listing_screenshot_topics: z.string().min(1),
70
+ app_store_listing_subtitle: z.string().min(1),
71
+ appearance: z.string().min(1),
72
+ application: z.string().min(1),
73
+ article_categories_65004e85fba2e8c9d281a73e: z.string().min(1),
74
+ article_categories_65004e8eaf7c1d3f8289315a: z.string().min(1),
75
+ article_categories_65004f8eead7951cf3c33243: z.string().min(1),
76
+ article_categories_65005061a72598db83565c66: z.string().min(1),
77
+ article_categories_65400527806b42d2e6ae4fd0: z.string().min(1),
78
+ article_categories_65ca47557375e35a56523645: z.string().min(1),
79
+ article_cta_body: z.string().min(1),
80
+ article_cta_header: z.string().min(1),
81
+ articles: z.string().min(1),
82
+ audio: z.string().min(1),
83
+ back: z.string().min(1),
84
+ bible: z.string().min(1),
85
+ bookmarks: z.string().min(1),
86
+ bookmarks_description: z.string().min(1),
87
+ bridge_language_explanation: z.string().min(1),
88
+ calculator: z.string().min(1),
89
+ calculator_description: z.string().min(1),
90
+ cancel: z.string().min(1),
91
+ cant_share_until_download: z.string().min(1),
92
+ cast_to_tv: z.string().min(1),
93
+ casting: z.string().min(1),
94
+ change_chapter: z.string().min(1),
95
+ change_languages: z.string().min(1),
96
+ change_passcode: z.string().min(1),
97
+ change_security_app: z.string().min(1),
98
+ change_security_app_description: z.string().min(1),
99
+ change_timeout: z.string().min(1),
100
+ change_video_language: z.string().min(1),
101
+ changing_layout_direction: z.string().min(1),
102
+ chapter_fetching: z.string().min(1),
103
+ chapter_not_available: z.string().min(1),
104
+ chapter_offline: z.string().min(1),
105
+ choose_passcode: z.string().min(1),
106
+ clear: z.string().min(1),
107
+ close: z.string().min(1),
108
+ confirm: z.string().min(1),
109
+ confirm_passcode: z.string().min(1),
110
+ connect_to_continue: z.string().min(1),
111
+ contact_us: z.string().min(1),
112
+ continue: z.string().min(1),
113
+ contribute: z.string().min(1),
114
+ copied_to_clipboard: z.string().min(1),
115
+ dark: z.string().min(1),
116
+ dark_mode: z.string().min(1),
117
+ default: z.string().min(1),
118
+ disciple_making_course: z.string().min(1),
119
+ dm_course_locked_blurb: z.string().min(1),
120
+ done: z.string().min(1),
121
+ download: z.string().min(1),
122
+ download_app: z.string().min(1),
123
+ download_paused: z.string().min(1),
124
+ downloading: z.string().min(1),
125
+ downloading_to_share: z.string().min(1),
126
+ edit: z.string().min(1),
127
+ email: z.string().min(1),
128
+ enter_passcode: z.string().min(1),
129
+ favorites: z.string().min(1),
130
+ fellowship: z.string().min(1),
131
+ filter_articles: z.string().min(1),
132
+ font_size: z.string().min(1),
133
+ foundations: z.string().min(1),
134
+ get_started_foundations: z.string().min(1),
135
+ get_started_training: z.string().min(1),
136
+ give: z.string().min(1),
137
+ give_blurb: z.string().min(1),
138
+ give_to_language: z.string().min(1),
139
+ got_it: z.string().min(1),
140
+ help_tips: z.string().min(1),
141
+ heres_whats_new: z.string().min(1),
142
+ home: z.string().min(1),
143
+ in_development: z.string().min(1),
144
+ instant: z.string().min(1),
145
+ internet_required_download: z.string().min(1),
146
+ internet_required_download_share: z.string().min(1),
147
+ introduction: z.string().min(1),
148
+ language_types_app_interface: z.string().min(1),
149
+ language_types_meet: z.string().min(1),
150
+ language_types_meet_primary: z.string().min(1),
151
+ language_types_meet_secondary: z.string().min(1),
152
+ language_types_video_bridge: z.string().min(1),
153
+ learn: z.string().min(1),
154
+ learn_more: z.string().min(1),
155
+ light: z.string().min(1),
156
+ listen_to_story_again: z.string().min(1),
157
+ loading_file_size: z.string().min(1),
158
+ mark_complete: z.string().min(1),
159
+ meet: z.string().min(1),
160
+ meeting_history: z.string().min(1),
161
+ megabyte: z.string().min(1),
162
+ message: z.string().min(1),
163
+ more: z.string().min(1),
164
+ my_primary_language: z.string().min(1),
165
+ no_connection: z.string().min(1),
166
+ no_files_to_delete: z.string().min(1),
167
+ no_languages_found: z.string().min(1),
168
+ not_now: z.string().min(1),
169
+ note_add: z.string().min(1),
170
+ note_delete: z.string().min(1),
171
+ note_edit: z.string().min(1),
172
+ note_placeholder: z.string().min(1),
173
+ note_saved: z.string().min(1),
174
+ notes_view: z.string().min(1),
175
+ notifications_enable: z.string().min(1),
176
+ ok: z.string().min(1),
177
+ passcode_set: z.string().min(1),
178
+ piano: z.string().min(1),
179
+ piano_description: z.string().min(1),
180
+ playback_speed: z.string().min(1),
181
+ popups_app_interface_help: z.string().min(1),
182
+ popups_casting_stop_confirm: z.string().min(1),
183
+ popups_code_request_success_message: z.string().min(1),
184
+ popups_codes_no_match_title: z.string().min(1),
185
+ popups_codes_no_match_message: z.string().min(1),
186
+ popups_foundations_description_believer: z.string().min(1),
187
+ popups_foundations_description_seeker: z.string().min(1),
188
+ popups_group_help_title: z.string().min(1),
189
+ popups_group_help_message: z.string().min(1),
190
+ popups_meet_help: z.string().min(1),
191
+ popups_notification_opt_in_title: z.string().min(1),
192
+ popups_notification_opt_in_message: z.string().min(1),
193
+ popups_play_help_title: z.string().min(1),
194
+ popups_play_help_message: z.string().min(1),
195
+ popups_remove_meeting_title: z.string().min(1),
196
+ popups_remove_meeting_message: z.string().min(1),
197
+ popups_submit_feedback_error_title: z.string().min(1),
198
+ popups_submit_feedback_error_message: z.string().min(1),
199
+ popups_submit_feedback_success_title: z.string().min(1),
200
+ popups_submit_feedback_success_message: z.string().min(1),
201
+ popups_topics_description: z.string().min(1),
202
+ popups_training_description_believer: z.string().min(1),
203
+ popups_unlock_successful_title: z.string().min(1),
204
+ popups_unlock_successful_message: z.string().min(1),
205
+ popups_unlocked_learn_help_title: z.string().min(1),
206
+ popups_unlocked_learn_help_message: z.string().min(1),
207
+ popups_watch_on_youtube_blurb: z.string().min(1),
208
+ privacy_policy: z.string().min(1),
209
+ question: z.string().min(1),
210
+ question_dm_course: z.string().min(1),
211
+ question_god_journey_option_1: z.string().min(1),
212
+ question_god_journey_option_2: z.string().min(1),
213
+ question_god_journey_option_3: z.string().min(1),
214
+ question_god_journey_option_4: z.string().min(1),
215
+ question_god_journey_question: z.string().min(1),
216
+ question_hear_waha: z.string().min(1),
217
+ question_how_familiar_bible_option_1_body: z.string().min(1),
218
+ question_how_familiar_bible_option_1_title: z.string().min(1),
219
+ question_how_familiar_bible_option_2_body: z.string().min(1),
220
+ question_how_familiar_bible_option_2_title: z.string().min(1),
221
+ question_how_familiar_bible_option_3_body: z.string().min(1),
222
+ question_how_familiar_bible_option_3_title: z.string().min(1),
223
+ question_how_familiar_bible_question: z.string().min(1),
224
+ question_how_long_bible_option_1: z.string().min(1),
225
+ question_how_long_bible_option_2: z.string().min(1),
226
+ question_how_long_bible_question: z.string().min(1),
227
+ rate_waha: z.string().min(1),
228
+ recommended: z.string().min(1),
229
+ recommended_for_you: z.string().min(1),
230
+ remove: z.string().min(1),
231
+ remove_download: z.string().min(1),
232
+ report_a_problem: z.string().min(1),
233
+ report_problem_help: z.string().min(1),
234
+ request_passcode: z.string().min(1),
235
+ required: z.string().min(1),
236
+ return_home: z.string().min(1),
237
+ save_and_close: z.string().min(1),
238
+ search: z.string().min(1),
239
+ search_meet: z.string().min(1),
240
+ secondary_languages: z.string().min(1),
241
+ security: z.string().min(1),
242
+ security_mode: z.string().min(1),
243
+ security_mode_blurb: z.string().min(1),
244
+ security_onboarding_page_1_message: z.string().min(1),
245
+ security_onboarding_page_1_title: z.string().min(1),
246
+ security_onboarding_page_2_message: z.string().min(1),
247
+ security_onboarding_page_2_title: z.string().min(1),
248
+ security_onboarding_page_3_message: z.string().min(1),
249
+ security_onboarding_page_3_title: z.string().min(1),
250
+ security_onboarding_page_4_message: z.string().min(1),
251
+ security_onboarding_page_4_title: z.string().min(1),
252
+ see_help: z.string().min(1),
253
+ select_bible: z.string().min(1),
254
+ select_book: z.string().min(1),
255
+ select_initial_languages_blurb: z.string().min(1),
256
+ send_invite: z.string().min(1),
257
+ settings: z.string().min(1),
258
+ share: z.string().min(1),
259
+ share_app: z.string().min(1),
260
+ share_lesson_audio: z.string().min(1),
261
+ share_lesson_link: z.string().min(1),
262
+ share_lesson_text: z.string().min(1),
263
+ share_lesson_video: z.string().min(1),
264
+ share_passcode: z.string().min(1),
265
+ share_story: z.string().min(1),
266
+ share_story_text: z.string().min(1),
267
+ share_with_group: z.string().min(1),
268
+ sharing_messages_invite: z.string().min(1),
269
+ sharing_messages_unlock_code: z.string().min(1),
270
+ show_less: z.string().min(1),
271
+ show_more: z.string().min(1),
272
+ show_original: z.string().min(1),
273
+ show_translation: z.string().min(1),
274
+ skip: z.string().min(1),
275
+ special_thanks: z.string().min(1),
276
+ stop_casting: z.string().min(1),
277
+ storage: z.string().min(1),
278
+ story: z.string().min(1),
279
+ submit: z.string().min(1),
280
+ submitting: z.string().min(1),
281
+ support_development: z.string().min(1),
282
+ system: z.string().min(1),
283
+ text: z.string().min(1),
284
+ topics: z.string().min(1),
285
+ trailer: z.string().min(1),
286
+ training: z.string().min(1),
287
+ training_video: z.string().min(1),
288
+ translated_with_ai: z.string().min(1),
289
+ unlock_onboarding_page_1_message: z.string().min(1),
290
+ unlock_onboarding_page_1_title: z.string().min(1),
291
+ unlock_onboarding_page_2_message: z.string().min(1),
292
+ unlock_onboarding_page_2_title: z.string().min(1),
293
+ unmatched_message: z.string().min(1),
294
+ up_next: z.string().min(1),
295
+ view: z.string().min(1),
296
+ view_all: z.string().min(1),
297
+ view_copyright: z.string().min(1),
298
+ view_lesson_notes: z.string().min(1),
299
+ visit_website: z.string().min(1),
300
+ volunteer: z.string().min(1),
301
+ waiting_to_start_download: z.string().min(1),
302
+ watch_on_youtube: z.string().min(1),
303
+ week: z.string().min(1),
304
+ welcome_blurb: z.string().min(1),
305
+ yes: z.string().min(1),
306
+ retry: z.string().min(1),
307
+ fetch_bible_no_internet: z.string().min(1),
308
+ fetch_bible_error: z.string().min(1),
309
+ language_names: z
310
+ .record(z.string().min(1))
311
+ .describe(
312
+ 'Mapping of language codes (ISO 639 or internal codes) to their localized display names'
313
+ ),
314
+ })
315
+ .describe(
316
+ 'Translations for a single language (identified by a 3-letter code)_'
317
+ )
318
+ )
319
+ .describe(
320
+ 'Schema for appTranslations_json_ Root keys are 3-letter language identifiers (ISO-639 style)_ Each language object contains well-defined translation collections_'
321
+ )
322
+ export type AppTranslations = z.infer<typeof appTranslations>
@@ -0,0 +1,45 @@
1
+ import { z } from 'zod'
2
+
3
+ export const areas = z
4
+ .array(
5
+ z
6
+ .object({
7
+ name: z
8
+ .string()
9
+ .min(1)
10
+ .describe('Human-readable display name for the area'),
11
+ id: z
12
+ .enum([
13
+ 'north-america',
14
+ 'latin-america-caribbean',
15
+ 'sub-saharan-africa',
16
+ 'middle-east-north-africa',
17
+ 'western-asia',
18
+ 'western-europe',
19
+ 'eastern-europe',
20
+ 'southern-asia',
21
+ 'central-asia',
22
+ 'eastern-asia',
23
+ 'southeast-asia',
24
+ 'oceania',
25
+ ])
26
+ .describe('The geographical area identifier'),
27
+ lat: z
28
+ .number()
29
+ .gte(-90)
30
+ .lte(90)
31
+ .describe('Latitude coordinate for the area center point'),
32
+ lng: z
33
+ .number()
34
+ .gte(-180)
35
+ .lte(180)
36
+ .describe('Longitude coordinate for the area center point'),
37
+ })
38
+ .strict()
39
+ .describe(
40
+ 'A geographic area with identification, coordinates, and display information'
41
+ )
42
+ )
43
+ .min(1)
44
+ .describe('Schema for geographic areas with coordinates and metadata')
45
+ export type Areas = z.infer<typeof areas>
@@ -0,0 +1,36 @@
1
+ import { z } from 'zod'
2
+
3
+ export const aslTimestamps = z.array(
4
+ z
5
+ .object({
6
+ bookId: z.string().describe('The book ID (e.g., GEN, EXO)'),
7
+ chapters: z
8
+ .array(z.number().int())
9
+ .min(2)
10
+ .max(2)
11
+ .describe('The start and end chapter numbers for this section'),
12
+ section: z
13
+ .array(z.string())
14
+ .min(2)
15
+ .max(2)
16
+ .describe(
17
+ 'The start and end verse IDs for this section (e.g., GEN.1.1, GEN.2.4)'
18
+ ),
19
+ verses: z
20
+ .array(
21
+ z
22
+ .object({
23
+ chapter: z.number().int().describe('The chapter number'),
24
+ timestamp: z
25
+ .number()
26
+ .describe('The timestamp in seconds for this verse'),
27
+ verse: z.number().int().describe('The verse number'),
28
+ verseId: z.string().describe('The verse ID (e.g., GEN.1.1)'),
29
+ })
30
+ .strict()
31
+ )
32
+ .describe('Array of verse timing information'),
33
+ })
34
+ .strict()
35
+ )
36
+ export type AslTimestamps = z.infer<typeof aslTimestamps>
@@ -0,0 +1,35 @@
1
+ import { z } from "zod"
2
+
3
+ export const bibleAudioAvailableChapters = z.record(z.union([z.array(z.string().regex(new RegExp("^[A-Z0-9]{3}\\.[0-9]+$"))), z.array(z.string().regex(new RegExp("^[A-Z0-9]{3}\\.[0-9]+$")).describe("Chapter identifier in the format 'BOOK.CHAPTER' (e.g., 'GEN.1', 'REV.22')")).describe("Array of available audio chapter identifiers for this translation")])).superRefine((value, ctx) => {
4
+ for (const key in value) {
5
+ let evaluated = false
6
+ if (key.match(new RegExp("^[A-Z0-9]+$"))) {
7
+ evaluated = true
8
+ const result = z.array(z.string().regex(new RegExp("^[A-Z0-9]{3}\\.[0-9]+$"))).safeParse(value[key])
9
+ if (!result.success) {
10
+ ctx.addIssue({
11
+ path: [...ctx.path, key],
12
+ code: 'custom',
13
+ message: `Invalid input: Key matching regex /${key}/ must match schema`,
14
+ params: {
15
+ issues: result.error.issues
16
+ }
17
+ })
18
+ }
19
+ }
20
+ if (!evaluated) {
21
+ const result = z.array(z.string().regex(new RegExp("^[A-Z0-9]{3}\\.[0-9]+$")).describe("Chapter identifier in the format 'BOOK.CHAPTER' (e.g., 'GEN.1', 'REV.22')")).describe("Array of available audio chapter identifiers for this translation").safeParse(value[key])
22
+ if (!result.success) {
23
+ ctx.addIssue({
24
+ path: [...ctx.path, key],
25
+ code: 'custom',
26
+ message: `Invalid input: must match catchall schema`,
27
+ params: {
28
+ issues: result.error.issues
29
+ }
30
+ })
31
+ }
32
+ }
33
+ }
34
+ }).describe("A mapping of bible translation IDs to their available audio chapters")
35
+ export type BibleAudioAvailableChapters = z.infer<typeof bibleAudioAvailableChapters>
@@ -0,0 +1,32 @@
1
+ import { z } from 'zod'
2
+
3
+ export const bibleAudios = z.array(
4
+ z
5
+ .object({
6
+ bibleAudioId: z.string(),
7
+ audioSource: z
8
+ .any()
9
+ .describe(
10
+ 'The best place to get audio bible chapters for this bible translation. Audio is hopefully available on the DBL via API.Bible when the license is granted. If not, it may be available on YouVersion. If not, the license holder may provide the audio. If not, the audio may be available to be scraped somewhere on the internet. For the last 2 options, use `custom`.'
11
+ ),
12
+ canDownload: z
13
+ .boolean()
14
+ .describe(
15
+ 'Whether or not the audio can be downloaded for offline use on the web. Most likely false, unless the translation is creative commons.'
16
+ ),
17
+ copyright: z
18
+ .string()
19
+ .describe(
20
+ 'Any copyright attribution text required to be added to the app for this translation for legal purposes.'
21
+ )
22
+ .optional(),
23
+ disableStar: z
24
+ .any()
25
+ .describe(
26
+ 'Star refers to adding a <star> string before the first line passed to mms forced alignment. Disabling it means that there is not any content read out before the start of verse 1. Most translations read out names of chapters or section headings, which is why adding <star> is the default behavior.'
27
+ )
28
+ .optional(),
29
+ })
30
+ .strict()
31
+ )
32
+ export type BibleAudios = z.infer<typeof bibleAudios>