waha-shared 1.0.254 → 1.0.255

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.
@@ -22,6 +22,10 @@
22
22
  "type": "string",
23
23
  "minLength": 1
24
24
  },
25
+ "question_placeholder": {
26
+ "type": "string",
27
+ "minLength": 1
28
+ },
25
29
  "a11y_add_secondary_language_hint": {
26
30
  "type": "string",
27
31
  "minLength": 1
@@ -1276,6 +1280,70 @@
1276
1280
  "no_notes": {
1277
1281
  "type": "string",
1278
1282
  "minLength": 1
1283
+ },
1284
+ "micro_lesson": {
1285
+ "type": "string",
1286
+ "minLength": 1
1287
+ },
1288
+ "micro_lessons": {
1289
+ "type": "string",
1290
+ "minLength": 1
1291
+ },
1292
+ "filter_micro_lessons": {
1293
+ "type": "string",
1294
+ "minLength": 1
1295
+ },
1296
+ "people_shared_last_week": {
1297
+ "type": "string",
1298
+ "minLength": 1
1299
+ },
1300
+ "onboarding_dbs_intro_heading": {
1301
+ "type": "string",
1302
+ "minLength": 1
1303
+ },
1304
+ "onboarding_dbs_intro_body": {
1305
+ "type": "string",
1306
+ "minLength": 1
1307
+ },
1308
+ "onboarding_invite_group_heading": {
1309
+ "type": "string",
1310
+ "minLength": 1
1311
+ },
1312
+ "popups_need_help_with_group_title": {
1313
+ "type": "string",
1314
+ "minLength": 1
1315
+ },
1316
+ "popups_need_help_with_group_message": {
1317
+ "type": "string",
1318
+ "minLength": 1
1319
+ },
1320
+ "popups_micro_lessons": {
1321
+ "type": "string",
1322
+ "minLength": 1
1323
+ },
1324
+ "question_what_brings_you_question": {
1325
+ "type": "string",
1326
+ "minLength": 1
1327
+ },
1328
+ "question_what_brings_you_option_1": {
1329
+ "type": "string",
1330
+ "minLength": 1
1331
+ },
1332
+ "question_what_brings_you_option_2": {
1333
+ "type": "string",
1334
+ "minLength": 1
1335
+ },
1336
+ "question_what_brings_you_option_3": {
1337
+ "type": "string",
1338
+ "minLength": 1
1339
+ },
1340
+ "question_what_brings_you_option_4": {
1341
+ "type": "string",
1342
+ "minLength": 1
1343
+ },
1344
+ "question_what_brings_you_option_5": {
1345
+ "type": "string",
1346
+ "minLength": 1
1279
1347
  }
1280
1348
  },
1281
1349
  "required": [
@@ -65,12 +65,6 @@ export declare const TranslationsApp: z.ZodRecord<z.ZodString, z.ZodObject<{
65
65
  app_store_listing_title: z.ZodString;
66
66
  appearance: z.ZodString;
67
67
  application: z.ZodString;
68
- article_categories_65004e85fba2e8c9d281a73e: z.ZodString;
69
- article_categories_65004e8eaf7c1d3f8289315a: z.ZodString;
70
- article_categories_65004f8eead7951cf3c33243: z.ZodString;
71
- article_categories_65005061a72598db83565c66: z.ZodString;
72
- article_categories_65400527806b42d2e6ae4fd0: z.ZodString;
73
- article_categories_65ca47557375e35a56523645: z.ZodString;
74
68
  article_cta_body: z.ZodString;
75
69
  article_cta_header: z.ZodString;
76
70
  articles: z.ZodString;
@@ -127,7 +121,7 @@ export declare const TranslationsApp: z.ZodRecord<z.ZodString, z.ZodObject<{
127
121
  fetch_bible_error: z.ZodString;
128
122
  fetch_bible_no_internet: z.ZodString;
129
123
  filter_articles: z.ZodString;
130
- finish: z.ZodOptional<z.ZodString>;
124
+ finish: z.ZodString;
131
125
  font_size: z.ZodString;
132
126
  foundations: z.ZodString;
133
127
  get_started_foundations: z.ZodString;
@@ -150,7 +144,6 @@ export declare const TranslationsApp: z.ZodRecord<z.ZodString, z.ZodObject<{
150
144
  language_types_meet_primary: z.ZodString;
151
145
  language_types_meet_secondary: z.ZodString;
152
146
  language_types_video_bridge: z.ZodString;
153
- later: z.ZodOptional<z.ZodString>;
154
147
  learn: z.ZodString;
155
148
  learn_more: z.ZodString;
156
149
  light: z.ZodString;
@@ -173,11 +166,11 @@ export declare const TranslationsApp: z.ZodRecord<z.ZodString, z.ZodObject<{
173
166
  note_placeholder: z.ZodString;
174
167
  note_saved: z.ZodString;
175
168
  notes_view: z.ZodString;
176
- notifications: z.ZodOptional<z.ZodString>;
169
+ notifications: z.ZodString;
177
170
  notifications_enable: z.ZodString;
178
171
  ok: z.ZodString;
179
172
  passcode_set: z.ZodString;
180
- percent_available: z.ZodOptional<z.ZodString>;
173
+ percent_available: z.ZodString;
181
174
  piano: z.ZodString;
182
175
  piano_description: z.ZodString;
183
176
  playback_speed: z.ZodString;
@@ -312,7 +305,35 @@ export declare const TranslationsApp: z.ZodRecord<z.ZodString, z.ZodObject<{
312
305
  lesson: z.ZodString;
313
306
  lessons: z.ZodString;
314
307
  article: z.ZodString;
315
- no_results: z.ZodOptional<z.ZodString>;
316
- no_notes: z.ZodOptional<z.ZodString>;
308
+ no_results: z.ZodString;
309
+ no_notes: z.ZodString;
310
+ not_yet: z.ZodOptional<z.ZodString>;
311
+ micro_lesson: z.ZodOptional<z.ZodString>;
312
+ micro_lessons: z.ZodOptional<z.ZodString>;
313
+ filter_micro_lessons: z.ZodOptional<z.ZodString>;
314
+ content_categories_case_studies: z.ZodOptional<z.ZodString>;
315
+ content_categories_product_updates: z.ZodOptional<z.ZodString>;
316
+ content_categories_disciple_making_secrets: z.ZodOptional<z.ZodString>;
317
+ content_categories_discovering_god: z.ZodOptional<z.ZodString>;
318
+ content_categories_books: z.ZodOptional<z.ZodString>;
319
+ content_categories_films: z.ZodOptional<z.ZodString>;
320
+ content_categories_how_tos: z.ZodOptional<z.ZodString>;
321
+ join_others_discovering: z.ZodOptional<z.ZodString>;
322
+ people_shared_last_week: z.ZodOptional<z.ZodString>;
323
+ question_placeholder: z.ZodOptional<z.ZodString>;
324
+ onboarding_dbs_intro_heading: z.ZodOptional<z.ZodString>;
325
+ onboarding_dbs_intro_body: z.ZodOptional<z.ZodString>;
326
+ onboarding_invite_group_heading: z.ZodOptional<z.ZodString>;
327
+ onboarding_invite_group_body: z.ZodOptional<z.ZodString>;
328
+ popups_need_help_with_group_title: z.ZodOptional<z.ZodString>;
329
+ popups_need_help_with_group_message: z.ZodOptional<z.ZodString>;
330
+ popups_micro_lessons_banner: z.ZodOptional<z.ZodString>;
331
+ question_in_a_group: z.ZodOptional<z.ZodString>;
332
+ question_what_brings_you_question: z.ZodOptional<z.ZodString>;
333
+ question_what_brings_you_body: z.ZodOptional<z.ZodString>;
334
+ question_what_brings_you_option_1: z.ZodOptional<z.ZodString>;
335
+ question_what_brings_you_option_2: z.ZodOptional<z.ZodString>;
336
+ question_what_brings_you_option_3: z.ZodOptional<z.ZodString>;
337
+ question_what_brings_you_option_4: z.ZodOptional<z.ZodString>;
317
338
  }, z.core.$strip>>;
318
339
  export type TranslationsApp = z.infer<typeof TranslationsApp>;
@@ -70,12 +70,6 @@ exports.TranslationsApp = zod_1.z
70
70
  app_store_listing_title: zod_1.z.string().min(1),
71
71
  appearance: zod_1.z.string().min(1),
72
72
  application: zod_1.z.string().min(1),
73
- article_categories_65004e85fba2e8c9d281a73e: zod_1.z.string().min(1),
74
- article_categories_65004e8eaf7c1d3f8289315a: zod_1.z.string().min(1),
75
- article_categories_65004f8eead7951cf3c33243: zod_1.z.string().min(1),
76
- article_categories_65005061a72598db83565c66: zod_1.z.string().min(1),
77
- article_categories_65400527806b42d2e6ae4fd0: zod_1.z.string().min(1),
78
- article_categories_65ca47557375e35a56523645: zod_1.z.string().min(1),
79
73
  article_cta_body: zod_1.z.string().min(1),
80
74
  article_cta_header: zod_1.z.string().min(1),
81
75
  articles: zod_1.z.string().min(1),
@@ -132,7 +126,7 @@ exports.TranslationsApp = zod_1.z
132
126
  fetch_bible_error: zod_1.z.string().min(1),
133
127
  fetch_bible_no_internet: zod_1.z.string().min(1),
134
128
  filter_articles: zod_1.z.string().min(1),
135
- finish: zod_1.z.string().min(1).optional(),
129
+ finish: zod_1.z.string().min(1),
136
130
  font_size: zod_1.z.string().min(1),
137
131
  foundations: zod_1.z.string().min(1),
138
132
  get_started_foundations: zod_1.z.string().min(1),
@@ -157,7 +151,6 @@ exports.TranslationsApp = zod_1.z
157
151
  language_types_meet_primary: zod_1.z.string().min(1),
158
152
  language_types_meet_secondary: zod_1.z.string().min(1),
159
153
  language_types_video_bridge: zod_1.z.string().min(1),
160
- later: zod_1.z.string().min(1).optional(),
161
154
  learn: zod_1.z.string().min(1),
162
155
  learn_more: zod_1.z.string().min(1),
163
156
  light: zod_1.z.string().min(1),
@@ -180,11 +173,11 @@ exports.TranslationsApp = zod_1.z
180
173
  note_placeholder: zod_1.z.string().min(1),
181
174
  note_saved: zod_1.z.string().min(1),
182
175
  notes_view: zod_1.z.string().min(1),
183
- notifications: zod_1.z.string().min(1).optional(),
176
+ notifications: zod_1.z.string().min(1),
184
177
  notifications_enable: zod_1.z.string().min(1),
185
178
  ok: zod_1.z.string().min(1),
186
179
  passcode_set: zod_1.z.string().min(1),
187
- percent_available: zod_1.z.string().min(1).optional(),
180
+ percent_available: zod_1.z.string().min(1),
188
181
  piano: zod_1.z.string().min(1),
189
182
  piano_description: zod_1.z.string().min(1),
190
183
  playback_speed: zod_1.z.string().min(1),
@@ -319,8 +312,41 @@ exports.TranslationsApp = zod_1.z
319
312
  lesson: zod_1.z.string().min(1),
320
313
  lessons: zod_1.z.string().min(1),
321
314
  article: zod_1.z.string().min(1),
322
- no_results: zod_1.z.string().min(1).optional(),
323
- no_notes: zod_1.z.string().min(1).optional(),
315
+ no_results: zod_1.z.string().min(1),
316
+ no_notes: zod_1.z.string().min(1),
317
+ // Will remove optional soon.
318
+ not_yet: zod_1.z.string().min(1).optional(),
319
+ micro_lesson: zod_1.z.string().min(1).optional(),
320
+ micro_lessons: zod_1.z.string().min(1).optional(),
321
+ filter_micro_lessons: zod_1.z.string().min(1).optional(),
322
+ content_categories_case_studies: zod_1.z.string().min(1).optional(),
323
+ content_categories_product_updates: zod_1.z.string().min(1).optional(),
324
+ content_categories_disciple_making_secrets: zod_1.z
325
+ .string()
326
+ .min(1)
327
+ .optional(),
328
+ content_categories_discovering_god: zod_1.z.string().min(1).optional(),
329
+ content_categories_books: zod_1.z.string().min(1).optional(),
330
+ content_categories_films: zod_1.z.string().min(1).optional(),
331
+ content_categories_how_tos: zod_1.z.string().min(1).optional(),
332
+ // These are trickier strings and will take some time to localize. onboarding.tsx is set up to default to the old onboarding if strings for the new onboarding are not localized.
333
+ join_others_discovering: zod_1.z.string().min(1).optional(),
334
+ people_shared_last_week: zod_1.z.string().min(1).optional(),
335
+ question_placeholder: zod_1.z.string().min(1).optional(),
336
+ onboarding_dbs_intro_heading: zod_1.z.string().min(1).optional(),
337
+ onboarding_dbs_intro_body: zod_1.z.string().min(1).optional(),
338
+ onboarding_invite_group_heading: zod_1.z.string().min(1).optional(),
339
+ onboarding_invite_group_body: zod_1.z.string().min(1).optional(),
340
+ popups_need_help_with_group_title: zod_1.z.string().min(1).optional(),
341
+ popups_need_help_with_group_message: zod_1.z.string().min(1).optional(),
342
+ popups_micro_lessons_banner: zod_1.z.string().min(1).optional(),
343
+ question_in_a_group: zod_1.z.string().min(1).optional(),
344
+ question_what_brings_you_question: zod_1.z.string().min(1).optional(),
345
+ question_what_brings_you_body: zod_1.z.string().min(1).optional(),
346
+ question_what_brings_you_option_1: zod_1.z.string().min(1).optional(),
347
+ question_what_brings_you_option_2: zod_1.z.string().min(1).optional(),
348
+ question_what_brings_you_option_3: zod_1.z.string().min(1).optional(),
349
+ question_what_brings_you_option_4: zod_1.z.string().min(1).optional(),
324
350
  })
325
351
  .describe('Translations for a single language (identified by a 3-letter code)_'))
326
352
  .describe('Schema for appTranslations_json_ Root keys are 3-letter language identifiers (ISO-639 style)_ Each language object contains well-defined translation collections_');
@@ -2086,7 +2086,7 @@
2086
2086
  "a.004": "كىيىنكى ھەپتە بۇ ئايەتلەردىن ئۆگەنگەن ھەقىقەتلەرنى ئۆز ھاياتىمىزغا قانداق ئ‍ۆزلەشتۈرمەكچىمىز؟ بىز قىلالايدىغان كونكرېت ئىش-ھەرىكەت بارمۇ؟",
2087
2087
  "a.005": "بىز قايتا يىغىلىشتىن بۇرۇن، بۈگۈنكى ئايەتلەردىن كىم بىلەن بىرەر ھەقىقەتنى ئورتاقلاشماچىمىز؟",
2088
2088
  "a.006": "بۇ ۋاقتىمىز ئاخىرلىشىشتىن بۇرۇن، كېلەركى يىغىلىشىمىزنىڭ ۋاقتى، ئورنى ۋە كىمنىڭ ئۆتكۈزىدىغانلىقىنى بېكىتەيلى.",
2089
- "a.007": "بىز قىلماقچى بولغان كونكرېت ئىش-ھەرىكەتلەرنى خاتىرىلەيلى. بىز قايتا يىغىلىشتىن بۇرۇن بۈگۈن ئوقۇغان ئايەتلەرنى تەكرار ئوقۇپ چىقايلى. بۈگۈنكى رىياسەتچى ئايەتلەر ۋە ئاۋازنى بىز بىلەن ئورتاقلىشالايدۇ. بىز مېڭىشتىن بۇرۇن خۇدانىڭ بىزگە ياردەم قىلىشىنى ئىلتىجا قىلايلى.",
2089
+ "a.007": "بىز نېمە ئىش-ھەرىكەت قىلماقچى بولغانلىقىمىزنى خاتىرىلەيلى، ۋە قايتا يىغىلىشتىن بۇرۇن بۈگۈن ئۆگەنگەن ئايەتلەرنى تەكرار ئوقۇپ چىقايلى. بىزنى باشلاپ قىلغان ئادەم ئايەتلەر ۋە ئاۋازنى بىز بىلەن ئورتاقلىشالايدۇ. مېڭىشتىن بۇرۇن خۇدادىن ياردەم تىلەيلى.",
2090
2090
  "a.008": "بۇ ئايەتلەردىن خۇدانىڭ يولىدا مېڭىش ھەققىدە نېمىلەرنى ئۆگىنىشكە بولىدۇ؟",
2091
2091
  "a.009": "بۇ ئايەتلەردىن ئېتىقادچىلار جامائەتچىلىكى ھەققىدە نېمىلەرنى ئۆگىنىشكە بولىدۇ؟",
2092
2092
  "a.010": "بۇ ئايەتلەردىن يېتەكچى بولۇش ھەققىدە نېمىلەرنى ئۆگىنىشكە بولىدۇ؟",
@@ -2103,7 +2103,7 @@
2103
2103
  "f.004": "ئاخىرقى يىغىلىشىمىزدىكى ئوقۇغان ئايەتلەر نېمە ھەققىدە ئىدى؟ بىز خۇدا ۋە ئ‍ىنسانلار ھەققىدە نېمىلەرنى ئۆگەندۇق؟",
2104
2104
  "f.005": "ئاخىرقى يىغىلىشىمىزدە ئۆگەنگەنلىرىمىزنى ھاياتلىرىمىزغا ئ‍ۆزلەشتۈرمەكچى ئىدۇق. نېمە ئىش-ھەرىكەت قىلدۇق؟ قانداق بولدى؟",
2105
2105
  "f.006": "ئاخىرقى يىغىلىشىمىزدىكى ئايەتلەرنى كىم بىلەن ئورتاقلاشتۇق؟ ئۇلار قانداق ئىپادە كۆرسەتتى؟",
2106
- "f.007": "ئاخىرقى يىغىلىشىمىزدا بىز بەزى ئېھتىياجلارنىڭ بارلىقىنى بايقاپ ئۇلارنى تەمىنلەشنى پىلانلىغان ئىدۇق. ئۇ ئىشلار قانداق بولدى؟",
2106
+ "f.007": "بىز ئاخىرقى يىغىلىشىمىزدە بەزى ئېھتىياجلارنىڭ بارلىقىنى بايقاپ ئۇلارنى تەمىنلەشنى پىلانلىغان ئىدۇق. ئۇ ئىشلار قانداق بولدى؟",
2107
2107
  "f.008": "ئەمدى، بۈگۈنكى ئايەتلەرنى مۇقەددەس كىتابتىن ئوقۇيلى ...",
2108
2108
  "f.009": "ئاخىرقى يىغىلىشىمىزدىن ھازىرغىچە يۈز بەرگەن ئىشلاردا بىز نېمىدىن مىننەتدارمىز؟",
2109
2109
  "f.010": "بىز تونۇدىغان خۇدانىڭ يولىدا ماڭمىغانلارنىڭ ئېھتىياجىلىرى نېمە؟ بىز بۇ ئېھتىياجلارغا قانداق ياردەم بېرەلەيمىز؟",
@@ -944,7 +944,7 @@
944
944
  "f.004": "Apa cerita dari pertemuan kita sebelumnya? Apa yang kita pelajari tentang Allah dan manusia?",
945
945
  "f.005": "Di pertemuan kita sebelumnya, Anda memutuskan untuk menerapkan apa yang telah Anda pelajari. Apa yang telah Anda lakukan, dan bagaimana hasilnya?",
946
946
  "f.006": "Dengan siapa Anda berbagi sesuatu dari cerita dari pertemuan kita sebelumnya? Bagaimana tanggapan mereka?",
947
- "f.007": "Di pertemuan kita sebelumnya, kita mengidentifikasi beberapa kebutuhan dan berencana untuk memenuhi kebutuhan tersebut. Bagaimana hasilnya?",
947
+ "f.007": "Di pertemuan kita sebelumnya, kita sudah menyebutkan beberapa kebutuhan dan merencanakan untuk memenuhi kebutuhan tersebut. Bagaimana hasilnya?",
948
948
  "f.008": "Sekarang, mari kita mendengar sebuah kisah baru dari Allah...",
949
949
  "f.009": "Selamat datang di sesi baru Komunitas Menjadikan Murid. Mari kita mulai dengan menanyakan kabar kita. Berdasarkan apa yang telah terjadi dengan Anda sejak pertemuan kita sebelumnya, hal apa yang Anda syukuri?",
950
950
  "f.010": "Apa kebutuhan orang-orang yang belum kenal Isa al Masih di komunitas Anda, dan bagaimana kita dapat saling membantu untuk memenuhi kebutuhan yang sudah kita diskusikan?",
@@ -2086,7 +2086,7 @@
2086
2086
  "a.004": "كىيىنكى ھەپتە بۇ ئايەتلەردىن ئۆگەنگەن ھەقىقەتلەرنى ئۆز ھاياتىمىزغا قانداق ئ‍ۆزلەشتۈرمەكچىمىز؟ بىز قىلالايدىغان كونكرېت ئىش-ھەرىكەت بارمۇ؟",
2087
2087
  "a.005": "بىز قايتا يىغىلىشتىن بۇرۇن، بۈگۈنكى ئايەتلەردىن كىم بىلەن بىرەر ھەقىقەتنى ئورتاقلاشماچىمىز؟",
2088
2088
  "a.006": "بۇ ۋاقتىمىز ئاخىرلىشىشتىن بۇرۇن، كېلەركى يىغىلىشىمىزنىڭ ۋاقتى، ئورنى ۋە كىمنىڭ ئۆتكۈزىدىغانلىقىنى بېكىتەيلى.",
2089
- "a.007": "بۇ ۋاقتىمىز ياخشى بولدى. نېمە ئىش-ھەرىكەت قىلماقچى بولغانلىقىمىزنى خاتىرىلەپ، بىز قايتا يىغىلىشتىن بۇرۇن بۈگۈن ئۆگەنگەن ئايەتلەرنى تەكرار ئوقۇپ چىقايلى. بۈگۈن بىزنى باشلاپ قىلغان ئادەم ئايەتلەر ۋە ئاۋازنى بىز بىلەن ئورتاقلىشالايدۇ. بىز مېڭىشتىن بۇرۇن خۇدادىن ياردەم تىلەيلى.",
2089
+ "a.007": "بۇ ۋاقتىمىز ياخشى بولدى. بىز نېمە ئىش-ھەرىكەت قىلماقچى بولغانلىقىمىزنى خاتىرىلەيلى، ۋە قايتا يىغىلىشتىن بۇرۇن بۈگۈن ئۆگەنگەن ئايەتلەرنى تەكرار ئوقۇپ چىقايلى. بىزنى باشلاپ قىلغان ئادەم ئايەتلەر ۋە ئاۋازنى بىز بىلەن ئورتاقلىشالايدۇ. مېڭىشتىن بۇرۇن خۇدادىن ياردەم تىلەيلى.",
2090
2090
  "a.008": "بۇ ئايەتلەردىن خۇدانىڭ يولىدا مېڭىش ھەققىدە نېمىلەرنى ئۆگىنىشكە بولىدۇ؟",
2091
2091
  "a.009": "بۇ ئايەتلەردىن ئېتىقادچىلار جامائەتچىلىكى ھەققىدە نېمىلەرنى ئۆگىنىشكە بولىدۇ؟",
2092
2092
  "a.010": "بۇ ئايەتلەردىن يېتەكچى بولۇش ھەققىدە نېمىلەرنى ئۆگىنىشكە بولىدۇ؟",
@@ -2100,7 +2100,7 @@
2100
2100
  "f.001": "خۇش كەپسىز. قانداق ئ‍ەھۋالىڭىز؟ ئالدى بىلەن ئۆز-ئارا ئەھۋالىشەيلى. ئاخىرقى يىغىلىشتىن ھازىرغىچە يۈز بەرگەن ئىشلاردا بىز نېمىدىن مىننەتدارمىز؟ كېلىڭلار، ھەممىمىز نېمىدىن مىننەتدار ئىكەنلىكىمىزنى ئورتاقلىشايلى.",
2101
2101
  "f.002": "بۇ ھەپتە نېمە ئىشلار بىزگە بېسىم سالدى؟ ئەھۋالىمىزنىڭ ياخشىلىنىشى ئۈچۈن نېمىلەر بولۇشى كېرەك؟",
2102
2102
  "f.003": "تونۇشلىرىمىزنىڭ ياكى مەھەللىمىزدىكى كىشىلەرنىڭ ئېھتىياجىلىرى نېمە؟ بىز بۇ ئېھتىياجلارنى قاندۇرۇش ئۈچۈن نېمە قىلالايمىز؟",
2103
- "f.004": "ئاخىرقى يىغىلىشىمىزدا بىز بىللە ئۆگەنگەن ئايەتلەر نېمە ھەققىدە ئىدى؟ بىز خۇدا ۋە ئ‍ىنسانلار ھەققىدە نېمىلەرنى ئۆگەندۇق؟",
2103
+ "f.004": "ئاخىرقى يىغىلىشىمىزدە بىز بىللە ئۆگەنگەن ئايەتلەر نېمە ھەققىدە ئىدى؟ بىز خۇدا ۋە ئ‍ىنسانلار ھەققىدە نېمىلەرنى ئۆگەندۇق؟",
2104
2104
  "f.005": "ئاخىرقى يىغىلىشىمىزدە ئۆگەنگەنلىرىمىزنى ھاياتلىرىمىزغا ئ‍ۆزلەشتۈرمەكچى ئىدۇق. نېمە ئىش-ھەرىكەت قىلدۇق؟ قانداق بولدى؟",
2105
2105
  "f.006": "ئاخىرقى ھەپتىدىكى ئ‍ايەتلەرنىڭ مەزمۇنىنى كىم بىلەن ئورتاقلاشتۇق؟ ئۇلار قانداق ئىپادە كۆرسەتتى؟",
2106
2106
  "f.007": "بىز ئاخىرقى يىغىلىشىمىزدە بەزى ئېھتىياجلارنىڭ بارلىقىنى بايقاپ ئۇلارنى تەمىنلەشنى پىلانلىغان ئىدۇق. ئۇ ئىشلار قانداق بولدى؟",
@@ -1,6 +1,30 @@
1
1
  import { BibleChapter, BibleChapters } from '../types/bibleChapters';
2
2
  import type { LanguageInfo } from '../types/languages';
3
3
  import { ScripturePassage } from '../types/scripturePassages';
4
+ export interface VerseRangeInfo {
5
+ startBook: string;
6
+ startChapter: string;
7
+ startVerse: string;
8
+ endBook: string;
9
+ endChapter: string;
10
+ endVerse: string;
11
+ startChapterId: string;
12
+ endChapterId: string;
13
+ }
14
+ /**
15
+ * Parses a verse range string like "GEN.1.1-GEN.1.25" or "JHN.3.16" or "REV.22"
16
+ * Returns the start and end verse IDs
17
+ */
18
+ export declare function parseVerseRange(passageId: string): VerseRangeInfo;
19
+ type GetChapterUrlParams = {
20
+ bibleAudioId: string;
21
+ passageId: string;
22
+ } | {
23
+ startBook: string;
24
+ startChapter: string;
25
+ bibleAudioId: string;
26
+ };
27
+ export declare function getChapterUrl(params: GetChapterUrlParams): string;
4
28
  /**
5
29
  * Condenses a list of USFM passage IDs into a readable string format. Groups
6
30
  * consecutive passages from the same book together.
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseVerseRange = parseVerseRange;
4
+ exports.getChapterUrl = getChapterUrl;
3
5
  exports.getPassagesString = getPassagesString;
4
6
  exports.getScripturePassage = getScripturePassage;
5
7
  exports.getLessonScripture = getLessonScripture;
@@ -8,17 +10,24 @@ exports.verseToSuperscript = verseToSuperscript;
8
10
  const bibleStatuses_1 = require("../data/bibleStatuses");
9
11
  const languages_1 = require("../functions/languages");
10
12
  const bibleChapters_1 = require("../types/bibleChapters");
13
+ const sets_1 = require("./sets");
11
14
  /**
12
- * Parses a verse range string like "GEN.1.1-GEN.1.25" or "JHN.3.16" Returns the
13
- * start and end verse IDs
15
+ * Parses a verse range string like "GEN.1.1-GEN.1.25" or "JHN.3.16" or "REV.22"
16
+ * Returns the start and end verse IDs
14
17
  */
15
18
  function parseVerseRange(passageId) {
16
19
  // Handle single verse: "GEN.1.1" -> "GEN.1.1-GEN.1.1"
17
20
  const parts = passageId.includes('-')
18
21
  ? passageId.split('-')
19
22
  : [passageId, passageId];
20
- const [startBook, startChapter, startVerse] = parts[0].split('.');
21
- const [endBook, endChapter, endVerse] = parts[1].split('.');
23
+ const startParts = parts[0].split('.');
24
+ const endParts = parts[1].split('.');
25
+ const startBook = startParts[0];
26
+ const startChapter = startParts[1];
27
+ const startVerse = startParts.length > 2 ? startParts[2] : '1';
28
+ const endBook = endParts[0];
29
+ const endChapter = endParts[1];
30
+ const endVerse = endParts.length > 2 ? endParts[2] : '1';
22
31
  return {
23
32
  startBook,
24
33
  startChapter,
@@ -26,8 +35,24 @@ function parseVerseRange(passageId) {
26
35
  endBook,
27
36
  endChapter,
28
37
  endVerse,
38
+ startChapterId: `${startBook}.${startChapter}`,
39
+ endChapterId: `${endBook}.${endChapter}`,
29
40
  };
30
41
  }
42
+ function getChapterUrl(params) {
43
+ const startBook = 'startBook' in params
44
+ ? params.startBook
45
+ : parseVerseRange(params.passageId).startBook;
46
+ const startChapter = 'startChapter' in params
47
+ ? params.startChapter
48
+ : parseVerseRange(params.passageId).startChapter;
49
+ return (sets_1.firebaseUrl +
50
+ encodeURIComponent('audio_bibles' +
51
+ `/${params.bibleAudioId}` +
52
+ `/${startBook}` +
53
+ `/${startBook}_${startChapter.padStart(3, '0')}.mp3`) +
54
+ `?alt=media`);
55
+ }
31
56
  /** Extracts verses from a chapter based on verse numbers */
32
57
  function extractVersesFromChapter(chapter, startVerse, endVerse) {
33
58
  const verses = chapter.verses.filter((verse) => {
@@ -1,24 +1,4 @@
1
1
  import type { ArticleSession, BibleSession, WahaShareContent } from './users';
2
- export interface BaseEventParams {
3
- meetLanguageId: string;
4
- appInterfaceLanguageId: string;
5
- favorites: string;
6
- pathname: string;
7
- bible: string;
8
- trainingUnlocked: boolean;
9
- firestoreUserId?: string;
10
- groupID?: string;
11
- lessonID?: string;
12
- setID?: string;
13
- articleId?: string;
14
- sessionID?: string;
15
- clone?: string;
16
- utm_campaign?: string;
17
- utm_source?: string;
18
- utm_content?: string;
19
- utm_medium?: string;
20
- utm_term?: string;
21
- }
22
2
  type Meeting = {
23
3
  name: 'OpenPlayScreen';
24
4
  payload: {
@@ -78,10 +58,16 @@ type Misc = {
78
58
  payload: {
79
59
  enabled: boolean;
80
60
  };
61
+ } | {
62
+ name: 'StartOnboarding';
63
+ payload: {
64
+ usedOldOnboarding?: boolean;
65
+ };
81
66
  } | {
82
67
  name: 'FinishOnboarding';
83
68
  payload: {
84
- skipped: boolean;
69
+ skippedFromPage: number | undefined;
70
+ usedOldOnboarding?: boolean;
85
71
  };
86
72
  } | {
87
73
  name: 'ClickNotification';
@@ -146,3 +146,7 @@ export declare const ArticlesResponseSchema: z.ZodObject<{
146
146
  body: z.ZodString;
147
147
  }, z.core.$strip>>;
148
148
  }, z.core.$strip>;
149
+ export declare const ArticleLanguagesResponseSchema: z.ZodObject<{
150
+ data: z.ZodArray<z.ZodString>;
151
+ }, z.core.$strip>;
152
+ export type ArticleCategory = z.infer<typeof ArticleSchema>['category'];
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ArticlesResponseSchema = exports.ResponseArticleSchema = exports.ArticleSchema = void 0;
6
+ exports.ArticleLanguagesResponseSchema = exports.ArticlesResponseSchema = exports.ResponseArticleSchema = exports.ArticleSchema = void 0;
7
7
  const v4_1 = __importDefault(require("zod/v4"));
8
8
  const webContent_1 = require("./webContent");
9
9
  exports.ArticleSchema = v4_1.default.object({
@@ -50,3 +50,6 @@ exports.ResponseArticleSchema = v4_1.default.object({
50
50
  exports.ArticlesResponseSchema = v4_1.default.object({
51
51
  data: v4_1.default.array(exports.ResponseArticleSchema),
52
52
  });
53
+ exports.ArticleLanguagesResponseSchema = v4_1.default.object({
54
+ data: v4_1.default.array(v4_1.default.string()),
55
+ });
@@ -7,15 +7,19 @@ exports.MicroLessonLanguagesResponseSchema = exports.MicroLessonSubmissionSchema
7
7
  const v4_1 = __importDefault(require("zod/v4"));
8
8
  const users_1 = require("./users");
9
9
  const webContent_1 = require("./webContent");
10
- exports.MicroLessonRadioButtonSchema = v4_1.default.object({
10
+ exports.MicroLessonRadioButtonSchema = v4_1.default
11
+ .object({
11
12
  heading: v4_1.default.string().optional(),
12
13
  body: v4_1.default.string().optional(),
13
- });
14
- exports.MicroLessonCtaButtonSchema = v4_1.default.object({
14
+ })
15
+ .describe('A single radio button option for a micro lesson page. Heading will show in bold and body will show in regular, gray text.');
16
+ exports.MicroLessonCtaButtonSchema = v4_1.default
17
+ .object({
15
18
  show: v4_1.default.boolean(),
16
19
  label: v4_1.default.string(),
17
20
  href: v4_1.default.string(),
18
- });
21
+ })
22
+ .describe('A call-to-action button that will appear at the bottom of a micro lesson page.');
19
23
  exports.MicroLessonSchema = v4_1.default.object({
20
24
  title: v4_1.default.string(),
21
25
  subtitle: v4_1.default.string().optional(),
@@ -23,27 +27,54 @@ exports.MicroLessonSchema = v4_1.default.object({
23
27
  isDraft: webContent_1.IsDraftSchema,
24
28
  seekerFriendly: webContent_1.SeekerFriendlySchema,
25
29
  platform: webContent_1.PlatformSchema,
26
- image: v4_1.default.string().optional(),
30
+ image: v4_1.default
31
+ .string()
32
+ .optional()
33
+ .describe("Cover image for the micro lesson. Will display on the micro lesson's card."),
27
34
  category: v4_1.default.enum(['Case Studies', 'How Tos']),
28
35
  campaign: v4_1.default
29
36
  .string()
30
37
  .optional()
31
38
  .describe('Optional campaign identifier for tracking purposes.'),
32
- pages: v4_1.default.array(v4_1.default
39
+ pages: v4_1.default
40
+ .array(v4_1.default
33
41
  .object({
34
- heading: v4_1.default.string().describe('The heading of the page'),
35
- body: v4_1.default.string().optional(),
36
- icon: v4_1.default.string().optional(),
37
- image: v4_1.default.string().optional(),
42
+ heading: v4_1.default
43
+ .string()
44
+ .describe('The heading of the page. Will appear in large, bold text.'),
45
+ body: v4_1.default
46
+ .string()
47
+ .optional()
48
+ .describe('The body text of the page. Will appear below the heading in regular, gray text.'),
49
+ icon: v4_1.default
50
+ .string()
51
+ .optional()
52
+ .describe('An svg icon to display on the page. This will appear fairly small, left-aligned above the heading.'),
53
+ image: v4_1.default
54
+ .string()
55
+ .optional()
56
+ .describe('The image to display on the page. This will appear full width and below the heading.'),
38
57
  audio: webContent_1.AudioSchema,
39
58
  video: webContent_1.VideoSchema,
40
59
  textInput: v4_1.default
41
60
  .object({
42
- show: v4_1.default.boolean(),
43
- placeholder: v4_1.default.string().optional(),
44
- showCopyButton: v4_1.default.boolean().optional(),
45
- prefilledText: v4_1.default.string().optional(),
61
+ show: v4_1.default
62
+ .boolean()
63
+ .describe('Whether or not the page should show a text input field or not.'),
64
+ placeholder: v4_1.default
65
+ .string()
66
+ .optional()
67
+ .describe('The placeholder text that will appear in the text input field before the user starts typing.'),
68
+ showCopyButton: v4_1.default
69
+ .boolean()
70
+ .optional()
71
+ .describe('Whether or not there should be a copy/share button below the text input field. Button will say "Share" on the mobile app version of the micro lesson and will open the share sheet. Button will say "Copy to Clipboard" on the web version and will copy the text to the user\'s clipboard.'),
72
+ prefilledText: v4_1.default
73
+ .string()
74
+ .optional()
75
+ .describe('The prefilled text that will auto-populate the text input field of the page. Useful if you want to prefill a share message that the user can edit and send.'),
46
76
  })
77
+ .describe('Options for the text input field of the page.')
47
78
  .optional(),
48
79
  ctaButton: exports.MicroLessonCtaButtonSchema.optional(),
49
80
  radioButtons: v4_1.default.array(exports.MicroLessonRadioButtonSchema).optional(),
@@ -59,7 +90,8 @@ exports.MicroLessonSchema = v4_1.default.object({
59
90
  .optional()
60
91
  .describe('Optional notification to send after the lesson is completed.'),
61
92
  })
62
- .describe('The pages of the micro lesson. The last page is always considered the completion page and often contains a CTA button.')),
93
+ .describe('A single page of the micro lesson.'))
94
+ .describe('The pages that make up the micro lesson. The last page is the completion page and will always have a button redirecting the user back.'),
63
95
  });
64
96
  exports.ResponseMicroLessonSchema = v4_1.default.object({
65
97
  id: v4_1.default.string(),