waha-shared 1.0.306 → 1.0.307

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 (102) hide show
  1. package/dist/data/areas/areas.json +50 -48
  2. package/dist/data/areas/areas.schema.json +2 -2
  3. package/dist/data/areas/areas.zod.d.ts +1 -1
  4. package/dist/data/areas/areas.zod.js +1 -1
  5. package/dist/data/areas/index.d.ts +1 -1
  6. package/dist/data/bibleAudios/bibleAudios.json +581 -314
  7. package/dist/data/bibleAudios/bibleAudios.schema.json +17 -8
  8. package/dist/data/bibleAudios/bibleAudios.zod.d.ts +43 -2
  9. package/dist/data/bibleAudios/bibleAudios.zod.js +16 -7
  10. package/dist/data/bibleAudios/index.d.ts +2 -1
  11. package/dist/data/bibleBooks/bibleBooks.json +792 -790
  12. package/dist/data/bibleStatuses/bibleStatuses.json +7981 -8480
  13. package/dist/data/bibleStatuses/bibleStatuses.schema.json +6 -0
  14. package/dist/data/bibleStatuses/bibleStatuses.zod.d.ts +1 -0
  15. package/dist/data/bibleStatuses/bibleStatuses.zod.js +4 -0
  16. package/dist/data/bibleStatuses/index.d.ts +1 -0
  17. package/dist/data/bibleTexts/bibleTexts.json +269 -184
  18. package/dist/data/bibleTexts/bibleTexts.schema.json +7 -0
  19. package/dist/data/bibleTexts/bibleTexts.zod.d.ts +28 -0
  20. package/dist/data/bibleTexts/bibleTexts.zod.js +10 -3
  21. package/dist/data/bibleTexts/index.d.ts +2 -0
  22. package/dist/data/clones/clones.json +2 -0
  23. package/dist/data/countries/countries.json +480 -480
  24. package/dist/data/countriesAndLanguages/countriesAndLanguages.json +6812 -6810
  25. package/dist/data/crowdinLanguages/crowdinLanguages.json +1440 -1438
  26. package/dist/data/crowdinLanguages/crowdinLanguages.schema.json +3 -3
  27. package/dist/data/crowdinLanguages/crowdinLanguages.zod.d.ts +2 -2
  28. package/dist/data/crowdinLanguages/crowdinLanguages.zod.js +2 -2
  29. package/dist/data/crowdinLanguages/index.d.ts +2 -2
  30. package/dist/data/curriculumFoundations/curriculumFoundations.json +86 -69
  31. package/dist/data/curriculumQuestions/curriculumQuestions.json +194 -192
  32. package/dist/data/curriculumTopics/curriculumTopics.json +51 -8
  33. package/dist/data/dblAudioLicenses/dblAudioLicenses.json +36 -7
  34. package/dist/data/dblTextLicenses/dblTextLicenses.json +4 -4
  35. package/dist/data/firebase.d.ts +1 -0
  36. package/dist/data/firebase.js +4 -0
  37. package/dist/data/iosVoiceOverLanguages/iosVoiceOverLanguages.json +1 -1
  38. package/dist/data/iso6933LanguageCodes/iso6933LanguageCodes.json +1 -1
  39. package/dist/data/languages/index.d.ts +20 -10
  40. package/dist/data/languages/languages.json +2983 -2008
  41. package/dist/data/languages/languages.schema.json +93 -47
  42. package/dist/data/languages/languages.zod.d.ts +93 -30
  43. package/dist/data/languages/languages.zod.js +59 -37
  44. package/dist/data/lessonPauses/index.d.ts +0 -1
  45. package/dist/data/lessonPauses/lessonPauses.json +2 -3
  46. package/dist/data/lessonPauses/lessonPauses.schema.json +1 -11
  47. package/dist/data/lessonPauses/lessonPauses.zod.d.ts +0 -1
  48. package/dist/data/lessonPauses/lessonPauses.zod.js +0 -3
  49. package/dist/data/mediaDurations/mediaDurations.json +35291 -6076
  50. package/dist/data/mediaDurations/mediaDurations.schema.json +1 -1
  51. package/dist/data/mediaDurations/mediaDurations.zod.js +1 -1
  52. package/dist/data/notification/index.d.ts +1 -1
  53. package/dist/data/notification/notification.json +93 -169
  54. package/dist/data/phoneLanguages/phoneLanguages.json +637 -635
  55. package/dist/data/questions/questions.json +149 -147
  56. package/dist/data/releaseNotes/releaseNotes.json +126 -124
  57. package/dist/data/screenshots/screenshots.json +1 -1
  58. package/dist/data/scripts/scripts.json +6 -1
  59. package/dist/data/sets/index.d.ts +3 -3
  60. package/dist/data/sets/sets.json +1770 -480
  61. package/dist/data/sets/sets.schema.json +1 -1
  62. package/dist/data/sets/sets.zod.d.ts +3 -3
  63. package/dist/data/sets/sets.zod.js +3 -6
  64. package/dist/data/translationsApp/index.d.ts +1 -0
  65. package/dist/data/translationsApp/translationsApp.json +1776 -1568
  66. package/dist/data/translationsApp/translationsApp.schema.json +1 -0
  67. package/dist/data/translationsApp/translationsApp.zod.d.ts +2 -0
  68. package/dist/data/translationsApp/translationsApp.zod.js +1 -0
  69. package/dist/data/translationsFtb/translationsFtb.json +120 -664
  70. package/dist/data/translationsIntroduction/translationsIntroduction.json +1 -1
  71. package/dist/data/translationsQuestion/translationsQuestion.json +65 -33
  72. package/dist/data/translationsSet/translationsSet.json +30155 -19418
  73. package/dist/data/translationsSet/translationsSet.schema.json +3 -4
  74. package/dist/data/translationsSet/translationsSet.zod.js +4 -4
  75. package/dist/data/translationsSolarSpeaker/translationsSolarSpeaker.json +1 -1
  76. package/dist/data/translationsSpokenQuestion/translationsSpokenQuestion.json +65 -33
  77. package/dist/data/youtubePlaylists/youtubePlaylists.json +10 -10
  78. package/dist/data/youtubeVideos/youtubeVideos.json +82 -82
  79. package/dist/functions/bibleBooks.d.ts +16 -0
  80. package/dist/functions/bibleBooks.js +101 -0
  81. package/dist/functions/bibles.d.ts +44 -0
  82. package/dist/functions/bibles.js +291 -0
  83. package/dist/functions/languages.d.ts +6 -7
  84. package/dist/functions/languages.js +51 -53
  85. package/dist/functions/scripturePassages.d.ts +34 -49
  86. package/dist/functions/scripturePassages.js +167 -304
  87. package/dist/functions/sets.d.ts +13 -52
  88. package/dist/functions/sets.js +193 -205
  89. package/dist/functions/utils.d.ts +2 -0
  90. package/dist/functions/utils.js +8 -0
  91. package/dist/types/bibleChapters.d.ts +2 -2
  92. package/dist/types/bibleChapters.js +1 -1
  93. package/dist/types/languages.d.ts +39 -9
  94. package/dist/types/languages.js +2 -0
  95. package/dist/types/sets.d.ts +21 -11
  96. package/package.json +1 -1
  97. package/dist/data/languageAssets/index.d.ts +0 -1
  98. package/dist/data/languageAssets/index.js +0 -7
  99. package/dist/data/languageAssets/languageAssets.json +0 -45406
  100. package/dist/data/languageAssets/languageAssets.schema.json +0 -19
  101. package/dist/data/languageAssets/languageAssets.zod.d.ts +0 -3
  102. package/dist/data/languageAssets/languageAssets.zod.js +0 -7
@@ -27,17 +27,44 @@
27
27
  "type": "string",
28
28
  "description": "A language ID used for iOS's screen reader support. Should be in BCP 47 format. Should only be included if language is supported by iOS's screen reader. List of supported languages can be found here: https://www.apple.com/ios/feature-availability/"
29
29
  },
30
- "usesRetellings": {
31
- "description": "Whether this language uses retellings in its story chapters. Setting to true will make this language exempt from verse highlights during lessons.",
32
- "type": "boolean"
33
- },
34
30
  "bible": {
35
31
  "type": "string",
36
- "description": "Determines what scripture translation this language will use."
32
+ "description": "The primary bible translation ID for this language (e.g. \"NAV\", \"NLT\")."
37
33
  },
38
- "bibleFallback": {
39
- "type": "string",
40
- "description": "Bible to use as a fallback if a chapter isn't available in the main bible. For example, if a language has only an NT bible available, specify a translation that has the OT available here to use for OT passages."
34
+ "bibleFallbacks": {
35
+ "type": "array",
36
+ "items": { "type": "string" },
37
+ "description": "Ordered list of bible IDs to try as fallbacks if a chapter is not available in the primary bible (or a replaced bible). Tried in order — the first bible that has the chapter is used. For example, a language with partial OT might list a paraphrase bible first and a full fallback bible second."
38
+ },
39
+ "bibleModifiers": {
40
+ "type": "array",
41
+ "items": {
42
+ "type": "object",
43
+ "properties": {
44
+ "scope": {
45
+ "anyOf": [
46
+ {
47
+ "type": "string",
48
+ "enum": ["Foundations", "Topics", "WahaTraining"]
49
+ },
50
+ { "type": "string", "enum": ["OT", "NT"] }
51
+ ],
52
+ "description": "The scope this modifier applies to. FD/TP/TR = set category (Foundations/Topics/Training). OT/NT = testament of the passage."
53
+ },
54
+ "action": {
55
+ "type": "string",
56
+ "enum": ["replace", "concat"],
57
+ "description": "What to do with the bible. \"replace\" swaps the primary bible. \"concat\" adds this bible alongside the primary (both are used in the lesson)."
58
+ },
59
+ "bibleId": {
60
+ "type": "string",
61
+ "description": "The bible translation ID to use."
62
+ }
63
+ },
64
+ "required": ["scope", "action", "bibleId"],
65
+ "additionalProperties": false
66
+ },
67
+ "description": "Optional modifiers that override or extend the primary bible for specific contexts."
41
68
  },
42
69
  "countries": {
43
70
  "type": "array",
@@ -68,21 +95,38 @@
68
95
  "additionalProperties": false,
69
96
  "description": "Determines what curriculums this language will use for its various content. Each must be linked to objects in data/foundationsCurriculums.json, data/topicsCurriculums.json , or data/questionsCurriculums.json."
70
97
  },
71
- "dmCourseStatus": {
72
- "type": "string",
73
- "enum": ["notStarted", "inProgress", "testing", "launched"],
74
- "description": "The status of this language's disciple making course."
98
+ "status": {
99
+ "type": "object",
100
+ "properties": {
101
+ "dbs": {
102
+ "type": "string",
103
+ "enum": ["notStarted", "inProgress", "testing", "launched"],
104
+ "description": "The overall status of this language. Determines whether or not the language will show up in the app. Only language's marked `launched` will be selectable in Waha."
105
+ },
106
+ "trainingVideos": {
107
+ "type": "string",
108
+ "enum": ["notStarted", "inProgress", "testing", "launched"],
109
+ "description": "The status of this language's disciple making course training videos."
110
+ },
111
+ "gdmc": {
112
+ "type": "string",
113
+ "enum": ["notStarted", "inProgress", "testing", "launched"],
114
+ "description": "The status of this language's growing as a dmc sets."
115
+ },
116
+ "web": {
117
+ "type": "string",
118
+ "enum": ["notStarted", "inProgress", "testing", "launched"],
119
+ "description": "The status of this language's website localization on https://waha.app."
120
+ }
121
+ },
122
+ "required": ["dbs", "trainingVideos", "gdmc", "web"],
123
+ "additionalProperties": false
75
124
  },
76
125
  "endonym": {
77
126
  "type": "string",
78
127
  "pattern": "^.+$",
79
128
  "description": "The name of the language in its native language and script, e.g. \"Español\""
80
129
  },
81
- "gdmcStatus": {
82
- "type": "string",
83
- "enum": ["notStarted", "inProgress", "testing", "launched"],
84
- "description": "The status of this language's growing as a dmc sets."
85
- },
86
130
  "givingId": {
87
131
  "type": "string",
88
132
  "description": "This is a designation id with FundraiseUp that will be tacked onto the end of waha's giving url. It's used to open waha's giving page and designate the donation to this language. It can be found in the big table of designation ids here: https://dashboard.fundraiseup.com/ABJRDUBH/settings/designations"
@@ -91,10 +135,6 @@
91
135
  "type": "boolean",
92
136
  "description": "Whether or not to hide the donate button in the app when this language is selected as the meet language."
93
137
  },
94
- "introBridge": {
95
- "type": "string",
96
- "description": "The language id of the language that will be used as the bridge language for the intro content."
97
- },
98
138
  "likelyAppInterfacePair": {
99
139
  "type": "string",
100
140
  "description": "The language id of the language that is most likely to be used as the app interface language for this language."
@@ -166,11 +206,6 @@
166
206
  "required": ["text"],
167
207
  "additionalProperties": false
168
208
  },
169
- "status": {
170
- "type": "string",
171
- "enum": ["notStarted", "inProgress", "testing", "launched"],
172
- "description": "The overall status of this language. Determines whether or not the language will show up in the app. Only language's marked `launched` will be selectable in Waha."
173
- },
174
209
  "storeIdAndroid": {
175
210
  "type": "string",
176
211
  "enum": [
@@ -313,22 +348,40 @@
313
348
  "type": "boolean",
314
349
  "description": "Whether or not this language supports solar speakers."
315
350
  },
316
- "titles": {
317
- "type": "string",
318
- "description": "This is the language of the language's story set and lesson titles. Often, this will be the same as the language itself. Occasionally, this is not the case, such as all of the Arabic languages using standard Arabic as their titles language."
319
- },
320
- "unsupportedDbsSets": {
321
- "type": "array",
322
- "items": { "type": "string" },
323
- "description": "A list of foundations or topics (01.x or 02.x) set ids that are not supported in this language. See data/sets.json for a list of set ids."
324
- },
325
351
  "uuid": {
326
352
  "type": "string",
327
353
  "description": "A unique identifier for this language. Can be generated at <https://www.uuidgenerator.net>."
328
354
  },
329
- "videoBridgeLanguage": {
330
- "type": "string",
331
- "description": "If the language is not doing the dmc videos, or if the dmc videos are in progress, you can specify one or more bridge languages that will be used in the meantime. If a language does not have a launched dm course and if they don't specify any bridge languages, the training content will not be available in the app."
355
+ "bridgeLanguages": {
356
+ "type": "object",
357
+ "properties": {
358
+ "intros": {
359
+ "description": "If the language is not recording its own intros, specify the language id of the language that will be used as the bridge language for the intro content.",
360
+ "type": "string"
361
+ },
362
+ "trainingVideos": {
363
+ "description": "If the language is not doing its own dmc videos, or if the dmc videos are in progress, you can specify one or more bridge languages that will be used in the meantime. If a language does not have a launched dm course and if they don't specify any bridge languages, the training content will not be available in the app.",
364
+ "type": "string"
365
+ },
366
+ "ftbs": {
367
+ "description": "If the language is not recording its own ftbs, specify the language id of the language that will be used as the bridge language for the ftbs content.",
368
+ "type": "string"
369
+ },
370
+ "titles": {
371
+ "description": "If the language is not translating its own titles, specify the language id of the language that will be used as the bridge language for the titles content.",
372
+ "type": "string"
373
+ },
374
+ "questionText": {
375
+ "description": "If the language is not translating its own question text, specify the language id of the language that will be used as the bridge language for the question text content.",
376
+ "type": "string"
377
+ },
378
+ "questionAudio": {
379
+ "description": "If the language is not recording its own question audio, specify the language id of the language that will be used as the bridge language for the question audio content.",
380
+ "type": "string"
381
+ }
382
+ },
383
+ "additionalProperties": false,
384
+ "description": "Language ids to use as bridge languages for various pieces of content. Bridge languages are alternative languages to use for just that type of content."
332
385
  },
333
386
  "web": {
334
387
  "type": "object",
@@ -340,14 +393,9 @@
340
393
  "code": {
341
394
  "type": "string",
342
395
  "description": "The html standard code used to represent the language on the web. Allows the website to associate the user's browser language with this Waha language."
343
- },
344
- "status": {
345
- "type": "string",
346
- "enum": ["notStarted", "inProgress", "testing", "launched"],
347
- "description": "The status of this language's website localization on https://waha.app."
348
396
  }
349
397
  },
350
- "required": ["name", "code", "status"],
398
+ "required": ["name", "code"],
351
399
  "additionalProperties": false
352
400
  }
353
401
  },
@@ -356,11 +404,9 @@
356
404
  "exonym",
357
405
  "appInterface",
358
406
  "curriculum",
359
- "dmCourseStatus",
360
- "gdmcStatus",
407
+ "status",
361
408
  "questionSource",
362
409
  "script",
363
- "status",
364
410
  "uuid"
365
411
  ],
366
412
  "additionalProperties": false
@@ -1,13 +1,69 @@
1
1
  import { z } from 'zod';
2
+ export declare const SetCategory: z.ZodEnum<{
3
+ Foundations: "Foundations";
4
+ Topics: "Topics";
5
+ WahaTraining: "WahaTraining";
6
+ }>;
7
+ export type SetCategory = z.infer<typeof SetCategory>;
8
+ export declare const BibleTestament: z.ZodEnum<{
9
+ OT: "OT";
10
+ NT: "NT";
11
+ }>;
12
+ export type BibleTestament = z.infer<typeof BibleTestament>;
13
+ export declare const Status: z.ZodEnum<{
14
+ notStarted: "notStarted";
15
+ inProgress: "inProgress";
16
+ testing: "testing";
17
+ launched: "launched";
18
+ }>;
19
+ export type Status = z.infer<typeof Status>;
20
+ export declare const BridgeLanguages: z.ZodObject<{
21
+ intros: z.ZodOptional<z.ZodString>;
22
+ trainingVideos: z.ZodOptional<z.ZodString>;
23
+ ftbs: z.ZodOptional<z.ZodString>;
24
+ titles: z.ZodOptional<z.ZodString>;
25
+ questionText: z.ZodOptional<z.ZodString>;
26
+ questionAudio: z.ZodOptional<z.ZodString>;
27
+ }, z.core.$strip>;
28
+ export declare const BibleModifier: z.ZodObject<{
29
+ scope: z.ZodUnion<[z.ZodEnum<{
30
+ Foundations: "Foundations";
31
+ Topics: "Topics";
32
+ WahaTraining: "WahaTraining";
33
+ }>, z.ZodEnum<{
34
+ OT: "OT";
35
+ NT: "NT";
36
+ }>]>;
37
+ action: z.ZodEnum<{
38
+ concat: "concat";
39
+ replace: "replace";
40
+ }>;
41
+ bibleId: z.ZodString;
42
+ }, z.core.$strip>;
43
+ export type BibleModifier = z.infer<typeof BibleModifier>;
2
44
  export declare const Languages: z.ZodArray<z.ZodObject<{
3
45
  languageId: z.ZodString;
4
46
  exonym: z.ZodString;
5
47
  appInterface: z.ZodBoolean;
6
48
  audioAssetVersion: z.ZodOptional<z.ZodNumber>;
7
49
  bcpLanguageId: z.ZodOptional<z.ZodString>;
8
- usesRetellings: z.ZodOptional<z.ZodBoolean>;
9
50
  bible: z.ZodOptional<z.ZodString>;
10
- bibleFallback: z.ZodOptional<z.ZodString>;
51
+ bibleFallbacks: z.ZodOptional<z.ZodArray<z.ZodString>>;
52
+ bibleModifiers: z.ZodOptional<z.ZodArray<z.ZodObject<{
53
+ scope: z.ZodUnion<[z.ZodEnum<{
54
+ Foundations: "Foundations";
55
+ Topics: "Topics";
56
+ WahaTraining: "WahaTraining";
57
+ }>, z.ZodEnum<{
58
+ OT: "OT";
59
+ NT: "NT";
60
+ }>]>;
61
+ action: z.ZodEnum<{
62
+ concat: "concat";
63
+ replace: "replace";
64
+ }>;
65
+ bibleId: z.ZodString;
66
+ }, z.core.$strip>>>;
11
67
  countries: z.ZodOptional<z.ZodArray<z.ZodString>>;
12
68
  crowdinId: z.ZodOptional<z.ZodString>;
13
69
  curriculum: z.ZodObject<{
@@ -15,22 +71,35 @@ export declare const Languages: z.ZodArray<z.ZodObject<{
15
71
  questions: z.ZodString;
16
72
  topics: z.ZodUnion<readonly [z.ZodString, z.ZodNull]>;
17
73
  }, z.core.$strict>;
18
- dmCourseStatus: z.ZodEnum<{
19
- notStarted: "notStarted";
20
- inProgress: "inProgress";
21
- testing: "testing";
22
- launched: "launched";
23
- }>;
74
+ status: z.ZodObject<{
75
+ dbs: z.ZodEnum<{
76
+ notStarted: "notStarted";
77
+ inProgress: "inProgress";
78
+ testing: "testing";
79
+ launched: "launched";
80
+ }>;
81
+ trainingVideos: z.ZodEnum<{
82
+ notStarted: "notStarted";
83
+ inProgress: "inProgress";
84
+ testing: "testing";
85
+ launched: "launched";
86
+ }>;
87
+ gdmc: z.ZodEnum<{
88
+ notStarted: "notStarted";
89
+ inProgress: "inProgress";
90
+ testing: "testing";
91
+ launched: "launched";
92
+ }>;
93
+ web: z.ZodEnum<{
94
+ notStarted: "notStarted";
95
+ inProgress: "inProgress";
96
+ testing: "testing";
97
+ launched: "launched";
98
+ }>;
99
+ }, z.core.$strip>;
24
100
  endonym: z.ZodOptional<z.ZodString>;
25
- gdmcStatus: z.ZodEnum<{
26
- notStarted: "notStarted";
27
- inProgress: "inProgress";
28
- testing: "testing";
29
- launched: "launched";
30
- }>;
31
101
  givingId: z.ZodOptional<z.ZodString>;
32
102
  hideDonateButton: z.ZodOptional<z.ZodBoolean>;
33
- introBridge: z.ZodOptional<z.ZodString>;
34
103
  likelyAppInterfacePair: z.ZodOptional<z.ZodString>;
35
104
  mmsLanguageId: z.ZodOptional<z.ZodString>;
36
105
  notes: z.ZodOptional<z.ZodString>;
@@ -73,12 +142,6 @@ export declare const Languages: z.ZodArray<z.ZodObject<{
73
142
  text: z.ZodString;
74
143
  url: z.ZodOptional<z.ZodString>;
75
144
  }, z.core.$strip>>;
76
- status: z.ZodEnum<{
77
- notStarted: "notStarted";
78
- inProgress: "inProgress";
79
- testing: "testing";
80
- launched: "launched";
81
- }>;
82
145
  storeIdAndroid: z.ZodOptional<z.ZodEnum<{
83
146
  id: "id";
84
147
  sw: "sw";
@@ -210,19 +273,19 @@ export declare const Languages: z.ZodArray<z.ZodObject<{
210
273
  "zh-Hant": "zh-Hant";
211
274
  }>>;
212
275
  supportsSolarSpeakers: z.ZodOptional<z.ZodBoolean>;
213
- titles: z.ZodOptional<z.ZodString>;
214
- unsupportedDbsSets: z.ZodOptional<z.ZodArray<z.ZodString>>;
215
276
  uuid: z.ZodString;
216
- videoBridgeLanguage: z.ZodOptional<z.ZodString>;
277
+ bridgeLanguages: z.ZodOptional<z.ZodObject<{
278
+ intros: z.ZodOptional<z.ZodString>;
279
+ trainingVideos: z.ZodOptional<z.ZodString>;
280
+ ftbs: z.ZodOptional<z.ZodString>;
281
+ titles: z.ZodOptional<z.ZodString>;
282
+ questionText: z.ZodOptional<z.ZodString>;
283
+ questionAudio: z.ZodOptional<z.ZodString>;
284
+ }, z.core.$strip>>;
217
285
  web: z.ZodOptional<z.ZodObject<{
218
286
  name: z.ZodString;
219
287
  code: z.ZodString;
220
- status: z.ZodEnum<{
221
- notStarted: "notStarted";
222
- inProgress: "inProgress";
223
- testing: "testing";
224
- launched: "launched";
225
- }>;
226
288
  }, z.core.$strict>>;
227
289
  }, z.core.$strict>>;
228
290
  export type Languages = z.infer<typeof Languages>;
291
+ export type Language = Languages[number];
@@ -1,7 +1,50 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Languages = void 0;
3
+ exports.Languages = exports.BibleModifier = exports.BridgeLanguages = exports.Status = exports.BibleTestament = exports.SetCategory = void 0;
4
4
  const zod_1 = require("zod");
5
+ exports.SetCategory = zod_1.z.enum(['Foundations', 'Topics', 'WahaTraining']);
6
+ exports.BibleTestament = zod_1.z.enum(['OT', 'NT']);
7
+ exports.Status = zod_1.z.enum([
8
+ 'notStarted',
9
+ 'inProgress',
10
+ 'testing',
11
+ 'launched',
12
+ ]);
13
+ exports.BridgeLanguages = zod_1.z
14
+ .object({
15
+ intros: zod_1.z
16
+ .string()
17
+ .optional()
18
+ .describe('If the language is not recording its own intros, specify the language id of the language that will be used as the bridge language for the intro content.'),
19
+ trainingVideos: zod_1.z
20
+ .string()
21
+ .optional()
22
+ .describe("If the language is not doing its own dmc videos, or if the dmc videos are in progress, you can specify one or more bridge languages that will be used in the meantime. If a language does not have a launched dm course and if they don't specify any bridge languages, the training content will not be available in the app."),
23
+ ftbs: zod_1.z
24
+ .string()
25
+ .optional()
26
+ .describe('If the language is not recording its own ftbs, specify the language id of the language that will be used as the bridge language for the ftbs content.'),
27
+ titles: zod_1.z
28
+ .string()
29
+ .optional()
30
+ .describe('If the language is not translating its own titles, specify the language id of the language that will be used as the bridge language for the titles content.'),
31
+ questionText: zod_1.z
32
+ .string()
33
+ .optional()
34
+ .describe('If the language is not translating its own question text, specify the language id of the language that will be used as the bridge language for the question text content.'),
35
+ questionAudio: zod_1.z
36
+ .string()
37
+ .optional()
38
+ .describe('If the language is not recording its own question audio, specify the language id of the language that will be used as the bridge language for the question audio content.'),
39
+ })
40
+ .describe('Language ids to use as bridge languages for various pieces of content. Bridge languages are alternative languages to use for just that type of content.');
41
+ exports.BibleModifier = zod_1.z.object({
42
+ scope: exports.SetCategory.or(exports.BibleTestament).describe('The scope this modifier applies to. FD/TP/TR = set category (Foundations/Topics/Training). OT/NT = testament of the passage.'),
43
+ action: zod_1.z
44
+ .enum(['replace', 'concat'])
45
+ .describe('What to do with the bible. "replace" swaps the primary bible. "concat" adds this bible alongside the primary (both are used in the lesson).'),
46
+ bibleId: zod_1.z.string().describe('The bible translation ID to use.'),
47
+ });
5
48
  exports.Languages = zod_1.z.array(zod_1.z
6
49
  .object({
7
50
  languageId: zod_1.z
@@ -19,17 +62,17 @@ exports.Languages = zod_1.z.array(zod_1.z
19
62
  .string()
20
63
  .describe("A language ID used for iOS's screen reader support. Should be in BCP 47 format. Should only be included if language is supported by iOS's screen reader. List of supported languages can be found here: https://www.apple.com/ios/feature-availability/")
21
64
  .optional(),
22
- usesRetellings: zod_1.z
23
- .boolean()
24
- .optional()
25
- .describe('Whether this language uses retellings in its story chapters. Setting to true will make this language exempt from verse highlights during lessons.'),
26
65
  bible: zod_1.z
27
66
  .string()
28
- .describe('Determines what scripture translation this language will use.')
67
+ .describe('The primary bible translation ID for this language (e.g. "NAV", "NLT").')
29
68
  .optional(),
30
- bibleFallback: zod_1.z
31
- .string()
32
- .describe("Bible to use as a fallback if a chapter isn't available in the main bible. For example, if a language has only an NT bible available, specify a translation that has the OT available here to use for OT passages.")
69
+ bibleFallbacks: zod_1.z
70
+ .array(zod_1.z.string())
71
+ .describe('Ordered list of bible IDs to try as fallbacks if a chapter is not available in the primary bible (or a replaced bible). Tried in order the first bible that has the chapter is used. For example, a language with partial OT might list a paraphrase bible first and a full fallback bible second.')
72
+ .optional(),
73
+ bibleModifiers: zod_1.z
74
+ .array(exports.BibleModifier)
75
+ .describe('Optional modifiers that override or extend the primary bible for specific contexts.')
33
76
  .optional(),
34
77
  countries: zod_1.z
35
78
  .array(zod_1.z.string())
@@ -53,17 +96,17 @@ exports.Languages = zod_1.z.array(zod_1.z
53
96
  })
54
97
  .strict()
55
98
  .describe('Determines what curriculums this language will use for its various content. Each must be linked to objects in data/foundationsCurriculums.json, data/topicsCurriculums.json , or data/questionsCurriculums.json.'),
56
- dmCourseStatus: zod_1.z
57
- .enum(['notStarted', 'inProgress', 'testing', 'launched'])
58
- .describe("The status of this language's disciple making course."),
99
+ status: zod_1.z.object({
100
+ dbs: exports.Status.describe("The overall status of this language. Determines whether or not the language will show up in the app. Only language's marked `launched` will be selectable in Waha."),
101
+ trainingVideos: exports.Status.describe("The status of this language's disciple making course training videos."),
102
+ gdmc: exports.Status.describe("The status of this language's growing as a dmc sets."),
103
+ web: exports.Status.describe("The status of this language's website localization on https://waha.app."),
104
+ }),
59
105
  endonym: zod_1.z
60
106
  .string()
61
107
  .regex(new RegExp('^.+$'))
62
108
  .describe('The name of the language in its native language and script, e.g. "Español"')
63
109
  .optional(),
64
- gdmcStatus: zod_1.z
65
- .enum(['notStarted', 'inProgress', 'testing', 'launched'])
66
- .describe("The status of this language's growing as a dmc sets."),
67
110
  givingId: zod_1.z
68
111
  .string()
69
112
  .describe("This is a designation id with FundraiseUp that will be tacked onto the end of waha's giving url. It's used to open waha's giving page and designate the donation to this language. It can be found in the big table of designation ids here: https://dashboard.fundraiseup.com/ABJRDUBH/settings/designations")
@@ -72,10 +115,6 @@ exports.Languages = zod_1.z.array(zod_1.z
72
115
  .boolean()
73
116
  .describe('Whether or not to hide the donate button in the app when this language is selected as the meet language.')
74
117
  .optional(),
75
- introBridge: zod_1.z
76
- .string()
77
- .describe('The language id of the language that will be used as the bridge language for the intro content.')
78
- .optional(),
79
118
  likelyAppInterfacePair: zod_1.z
80
119
  .string()
81
120
  .describe('The language id of the language that is most likely to be used as the app interface language for this language.')
@@ -140,9 +179,6 @@ exports.Languages = zod_1.z.array(zod_1.z
140
179
  url: zod_1.z.string().optional(),
141
180
  })
142
181
  .optional(),
143
- status: zod_1.z
144
- .enum(['notStarted', 'inProgress', 'testing', 'launched'])
145
- .describe("The overall status of this language. Determines whether or not the language will show up in the app. Only language's marked `launched` will be selectable in Waha."),
146
182
  storeIdAndroid: zod_1.z
147
183
  .enum([
148
184
  'af',
@@ -283,21 +319,10 @@ exports.Languages = zod_1.z.array(zod_1.z
283
319
  .boolean()
284
320
  .describe('Whether or not this language supports solar speakers.')
285
321
  .optional(),
286
- titles: zod_1.z
287
- .string()
288
- .describe("This is the language of the language's story set and lesson titles. Often, this will be the same as the language itself. Occasionally, this is not the case, such as all of the Arabic languages using standard Arabic as their titles language.")
289
- .optional(),
290
- unsupportedDbsSets: zod_1.z
291
- .array(zod_1.z.string())
292
- .describe('A list of foundations or topics (01.x or 02.x) set ids that are not supported in this language. See data/sets.json for a list of set ids.')
293
- .optional(),
294
322
  uuid: zod_1.z
295
323
  .string()
296
324
  .describe('A unique identifier for this language. Can be generated at <https://www.uuidgenerator.net>.'),
297
- videoBridgeLanguage: zod_1.z
298
- .string()
299
- .describe("If the language is not doing the dmc videos, or if the dmc videos are in progress, you can specify one or more bridge languages that will be used in the meantime. If a language does not have a launched dm course and if they don't specify any bridge languages, the training content will not be available in the app.")
300
- .optional(),
325
+ bridgeLanguages: exports.BridgeLanguages.optional(),
301
326
  web: zod_1.z
302
327
  .object({
303
328
  name: zod_1.z
@@ -306,9 +331,6 @@ exports.Languages = zod_1.z.array(zod_1.z
306
331
  code: zod_1.z
307
332
  .string()
308
333
  .describe("The html standard code used to represent the language on the web. Allows the website to associate the user's browser language with this Waha language."),
309
- status: zod_1.z
310
- .enum(['notStarted', 'inProgress', 'testing', 'launched'])
311
- .describe("The status of this language's website localization on https://waha.app."),
312
334
  })
313
335
  .strict()
314
336
  .optional(),
@@ -1,5 +1,4 @@
1
1
  export declare const lessonPauses: {
2
- beforeStory: number;
3
2
  afterStory: number;
4
3
  betweenPassages: number;
5
4
  beforeFtb: number;
@@ -1,10 +1,9 @@
1
1
  {
2
2
  "$schema": "./lessonPauses.schema.json",
3
3
  "data": {
4
- "beforeStory": 2,
4
+ "afterFtb": 1,
5
5
  "afterStory": 2,
6
- "betweenPassages": 1.5,
7
6
  "beforeFtb": 2,
8
- "afterFtb": 1
7
+ "betweenPassages": 1.5
9
8
  }
10
9
  }
@@ -8,10 +8,6 @@
8
8
  "$schema": "https://json-schema.org/draft/2020-12/schema",
9
9
  "type": "object",
10
10
  "properties": {
11
- "beforeStory": {
12
- "type": "number",
13
- "description": "Pause after the last fellowship question finishes before the story chapter begins."
14
- },
15
11
  "afterStory": {
16
12
  "type": "number",
17
13
  "description": "Pause after the story chapter ends before the first application chapter begins."
@@ -29,13 +25,7 @@
29
25
  "description": "Pause between the \"From the book of...\" statement and the start of the passage."
30
26
  }
31
27
  },
32
- "required": [
33
- "beforeStory",
34
- "afterStory",
35
- "betweenPassages",
36
- "beforeFtb",
37
- "afterFtb"
38
- ],
28
+ "required": ["afterStory", "betweenPassages", "beforeFtb", "afterFtb"],
39
29
  "additionalProperties": false
40
30
  }
41
31
  },
@@ -1,6 +1,5 @@
1
1
  import { z } from 'zod';
2
2
  export declare const LessonPauses: z.ZodObject<{
3
- beforeStory: z.ZodNumber;
4
3
  afterStory: z.ZodNumber;
5
4
  betweenPassages: z.ZodNumber;
6
5
  beforeFtb: z.ZodNumber;
@@ -4,9 +4,6 @@ exports.LessonPauses = void 0;
4
4
  const zod_1 = require("zod");
5
5
  exports.LessonPauses = zod_1.z
6
6
  .object({
7
- beforeStory: zod_1.z
8
- .number()
9
- .describe('Pause after the last fellowship question finishes before the story chapter begins.'),
10
7
  afterStory: zod_1.z
11
8
  .number()
12
9
  .describe('Pause after the story chapter ends before the first application chapter begins.'),