waha-shared 1.0.308 → 1.0.310

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 (110) 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 +597 -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 +8302 -8711
  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 +285 -187
  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/curriculumOnboarding/curriculumOnboarding.json +34 -0
  32. package/dist/data/curriculumOnboarding/curriculumOnboarding.schema.json +38 -0
  33. package/dist/data/curriculumOnboarding/curriculumOnboarding.zod.d.ts +11 -0
  34. package/dist/data/curriculumOnboarding/curriculumOnboarding.zod.js +18 -0
  35. package/dist/data/curriculumOnboarding/index.d.ts +9 -0
  36. package/dist/data/curriculumOnboarding/index.js +7 -0
  37. package/dist/data/curriculumQuestions/curriculumQuestions.json +194 -192
  38. package/dist/data/curriculumTopics/curriculumTopics.json +51 -8
  39. package/dist/data/dblAudioLicenses/dblAudioLicenses.json +450 -421
  40. package/dist/data/dblTextLicenses/dblTextLicenses.json +1251 -1161
  41. package/dist/data/firebase.d.ts +1 -0
  42. package/dist/data/firebase.js +4 -0
  43. package/dist/data/iosVoiceOverLanguages/iosVoiceOverLanguages.json +1 -1
  44. package/dist/data/iso6933LanguageCodes/iso6933LanguageCodes.json +1 -1
  45. package/dist/data/languages/index.d.ts +22 -10
  46. package/dist/data/languages/languages.json +3299 -2012
  47. package/dist/data/languages/languages.schema.json +102 -48
  48. package/dist/data/languages/languages.zod.d.ts +96 -30
  49. package/dist/data/languages/languages.zod.js +66 -37
  50. package/dist/data/lessonPauses/index.d.ts +0 -1
  51. package/dist/data/lessonPauses/lessonPauses.json +2 -3
  52. package/dist/data/lessonPauses/lessonPauses.schema.json +1 -11
  53. package/dist/data/lessonPauses/lessonPauses.zod.d.ts +0 -1
  54. package/dist/data/lessonPauses/lessonPauses.zod.js +0 -3
  55. package/dist/data/mediaDurations/mediaDurations.json +35797 -6076
  56. package/dist/data/mediaDurations/mediaDurations.schema.json +1 -1
  57. package/dist/data/mediaDurations/mediaDurations.zod.js +1 -1
  58. package/dist/data/notification/index.d.ts +1 -1
  59. package/dist/data/notification/notification.json +93 -169
  60. package/dist/data/phoneLanguages/phoneLanguages.json +637 -635
  61. package/dist/data/questions/questions.json +149 -147
  62. package/dist/data/releaseNotes/releaseNotes.json +176 -123
  63. package/dist/data/screenshots/screenshots.json +1 -1
  64. package/dist/data/scripts/scripts.json +6 -1
  65. package/dist/data/sets/index.d.ts +3 -3
  66. package/dist/data/sets/sets.json +1770 -480
  67. package/dist/data/sets/sets.schema.json +1 -1
  68. package/dist/data/sets/sets.zod.d.ts +3 -3
  69. package/dist/data/sets/sets.zod.js +3 -6
  70. package/dist/data/translationsApp/index.d.ts +1 -0
  71. package/dist/data/translationsApp/translationsApp.json +1610 -1569
  72. package/dist/data/translationsApp/translationsApp.schema.json +3 -1
  73. package/dist/data/translationsApp/translationsApp.zod.d.ts +2 -0
  74. package/dist/data/translationsApp/translationsApp.zod.js +1 -0
  75. package/dist/data/translationsFtb/translationsFtb.json +120 -664
  76. package/dist/data/translationsIntroduction/translationsIntroduction.json +1 -1
  77. package/dist/data/translationsQuestion/translationsQuestion.json +65 -33
  78. package/dist/data/translationsSet/translationsSet.json +30139 -19402
  79. package/dist/data/translationsSet/translationsSet.schema.json +3 -4
  80. package/dist/data/translationsSet/translationsSet.zod.js +4 -4
  81. package/dist/data/translationsSolarSpeaker/translationsSolarSpeaker.json +1 -1
  82. package/dist/data/translationsSpokenQuestion/translationsSpokenQuestion.json +65 -33
  83. package/dist/data/youtubePlaylists/youtubePlaylists.json +10 -10
  84. package/dist/data/youtubeVideos/youtubeVideos.json +82 -82
  85. package/dist/functions/bibleBooks.d.ts +16 -0
  86. package/dist/functions/bibleBooks.js +101 -0
  87. package/dist/functions/bibles.d.ts +47 -0
  88. package/dist/functions/bibles.js +315 -0
  89. package/dist/functions/languages.d.ts +6 -7
  90. package/dist/functions/languages.js +58 -53
  91. package/dist/functions/scripturePassages.d.ts +53 -47
  92. package/dist/functions/scripturePassages.js +217 -303
  93. package/dist/functions/sets.d.ts +13 -52
  94. package/dist/functions/sets.js +195 -205
  95. package/dist/functions/utils.d.ts +2 -0
  96. package/dist/functions/utils.js +8 -0
  97. package/dist/types/bibleChapters.d.ts +2 -2
  98. package/dist/types/bibleChapters.js +1 -1
  99. package/dist/types/languages.d.ts +48 -9
  100. package/dist/types/languages.js +2 -0
  101. package/dist/types/scripturePassages.d.ts +0 -1
  102. package/dist/types/scripturePassages.js +0 -1
  103. package/dist/types/sets.d.ts +28 -11
  104. package/package.json +1 -1
  105. package/dist/data/languageAssets/index.d.ts +0 -1
  106. package/dist/data/languageAssets/index.js +0 -7
  107. package/dist/data/languageAssets/languageAssets.json +0 -45406
  108. package/dist/data/languageAssets/languageAssets.schema.json +0 -19
  109. package/dist/data/languageAssets/languageAssets.zod.d.ts +0 -3
  110. 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",
@@ -62,27 +89,48 @@
62
89
  "topics": {
63
90
  "anyOf": [{ "type": "string" }, { "type": "null" }],
64
91
  "description": "The id for the foundations curriculum for this language."
92
+ },
93
+ "onboarding": {
94
+ "type": "string",
95
+ "description": "The id for the onboarding curriculum for this language. Determines which set of onboarding DBS passages to use (e.g. languages with a different psalm numbering need their own curriculum)."
65
96
  }
66
97
  },
67
- "required": ["foundations", "questions", "topics"],
98
+ "required": ["foundations", "questions", "topics", "onboarding"],
68
99
  "additionalProperties": false,
69
100
  "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
101
  },
71
- "dmCourseStatus": {
72
- "type": "string",
73
- "enum": ["notStarted", "inProgress", "testing", "launched"],
74
- "description": "The status of this language's disciple making course."
102
+ "status": {
103
+ "type": "object",
104
+ "properties": {
105
+ "dbs": {
106
+ "type": "string",
107
+ "enum": ["notStarted", "inProgress", "testing", "launched"],
108
+ "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."
109
+ },
110
+ "trainingVideos": {
111
+ "type": "string",
112
+ "enum": ["notStarted", "inProgress", "testing", "launched"],
113
+ "description": "The status of this language's disciple making course training videos."
114
+ },
115
+ "gdmc": {
116
+ "type": "string",
117
+ "enum": ["notStarted", "inProgress", "testing", "launched"],
118
+ "description": "The status of this language's growing as a dmc sets."
119
+ },
120
+ "web": {
121
+ "type": "string",
122
+ "enum": ["notStarted", "inProgress", "testing", "launched"],
123
+ "description": "The status of this language's website localization on https://waha.app."
124
+ }
125
+ },
126
+ "required": ["dbs", "trainingVideos", "gdmc", "web"],
127
+ "additionalProperties": false
75
128
  },
76
129
  "endonym": {
77
130
  "type": "string",
78
131
  "pattern": "^.+$",
79
132
  "description": "The name of the language in its native language and script, e.g. \"Español\""
80
133
  },
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
134
  "givingId": {
87
135
  "type": "string",
88
136
  "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 +139,6 @@
91
139
  "type": "boolean",
92
140
  "description": "Whether or not to hide the donate button in the app when this language is selected as the meet language."
93
141
  },
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
142
  "likelyAppInterfacePair": {
99
143
  "type": "string",
100
144
  "description": "The language id of the language that is most likely to be used as the app interface language for this language."
@@ -166,11 +210,6 @@
166
210
  "required": ["text"],
167
211
  "additionalProperties": false
168
212
  },
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
213
  "storeIdAndroid": {
175
214
  "type": "string",
176
215
  "enum": [
@@ -313,22 +352,44 @@
313
352
  "type": "boolean",
314
353
  "description": "Whether or not this language supports solar speakers."
315
354
  },
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
355
  "uuid": {
326
356
  "type": "string",
327
357
  "description": "A unique identifier for this language. Can be generated at <https://www.uuidgenerator.net>."
328
358
  },
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."
359
+ "bridgeLanguages": {
360
+ "type": "object",
361
+ "properties": {
362
+ "intros": {
363
+ "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.",
364
+ "type": "string"
365
+ },
366
+ "trainingVideos": {
367
+ "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.",
368
+ "type": "string"
369
+ },
370
+ "ftbs": {
371
+ "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.",
372
+ "type": "string"
373
+ },
374
+ "titles": {
375
+ "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.",
376
+ "type": "string"
377
+ },
378
+ "questionText": {
379
+ "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.",
380
+ "type": "string"
381
+ },
382
+ "questionAudio": {
383
+ "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.",
384
+ "type": "string"
385
+ },
386
+ "onboardingPassages": {
387
+ "description": "The language id of the onboarding passages for this language.",
388
+ "type": "string"
389
+ }
390
+ },
391
+ "additionalProperties": false,
392
+ "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
393
  },
333
394
  "web": {
334
395
  "type": "object",
@@ -340,14 +401,9 @@
340
401
  "code": {
341
402
  "type": "string",
342
403
  "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
404
  }
349
405
  },
350
- "required": ["name", "code", "status"],
406
+ "required": ["name", "code"],
351
407
  "additionalProperties": false
352
408
  }
353
409
  },
@@ -356,11 +412,9 @@
356
412
  "exonym",
357
413
  "appInterface",
358
414
  "curriculum",
359
- "dmCourseStatus",
360
- "gdmcStatus",
415
+ "status",
361
416
  "questionSource",
362
417
  "script",
363
- "status",
364
418
  "uuid"
365
419
  ],
366
420
  "additionalProperties": false
@@ -1,36 +1,107 @@
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
+ onboardingPassages: z.ZodOptional<z.ZodString>;
28
+ }, z.core.$strip>;
29
+ export declare const BibleModifier: z.ZodObject<{
30
+ scope: z.ZodUnion<[z.ZodEnum<{
31
+ Foundations: "Foundations";
32
+ Topics: "Topics";
33
+ WahaTraining: "WahaTraining";
34
+ }>, z.ZodEnum<{
35
+ OT: "OT";
36
+ NT: "NT";
37
+ }>]>;
38
+ action: z.ZodEnum<{
39
+ concat: "concat";
40
+ replace: "replace";
41
+ }>;
42
+ bibleId: z.ZodString;
43
+ }, z.core.$strip>;
44
+ export type BibleModifier = z.infer<typeof BibleModifier>;
2
45
  export declare const Languages: z.ZodArray<z.ZodObject<{
3
46
  languageId: z.ZodString;
4
47
  exonym: z.ZodString;
5
48
  appInterface: z.ZodBoolean;
6
49
  audioAssetVersion: z.ZodOptional<z.ZodNumber>;
7
50
  bcpLanguageId: z.ZodOptional<z.ZodString>;
8
- usesRetellings: z.ZodOptional<z.ZodBoolean>;
9
51
  bible: z.ZodOptional<z.ZodString>;
10
- bibleFallback: z.ZodOptional<z.ZodString>;
52
+ bibleFallbacks: z.ZodOptional<z.ZodArray<z.ZodString>>;
53
+ bibleModifiers: z.ZodOptional<z.ZodArray<z.ZodObject<{
54
+ scope: z.ZodUnion<[z.ZodEnum<{
55
+ Foundations: "Foundations";
56
+ Topics: "Topics";
57
+ WahaTraining: "WahaTraining";
58
+ }>, z.ZodEnum<{
59
+ OT: "OT";
60
+ NT: "NT";
61
+ }>]>;
62
+ action: z.ZodEnum<{
63
+ concat: "concat";
64
+ replace: "replace";
65
+ }>;
66
+ bibleId: z.ZodString;
67
+ }, z.core.$strip>>>;
11
68
  countries: z.ZodOptional<z.ZodArray<z.ZodString>>;
12
69
  crowdinId: z.ZodOptional<z.ZodString>;
13
70
  curriculum: z.ZodObject<{
14
71
  foundations: z.ZodString;
15
72
  questions: z.ZodString;
16
73
  topics: z.ZodUnion<readonly [z.ZodString, z.ZodNull]>;
74
+ onboarding: z.ZodString;
17
75
  }, z.core.$strict>;
18
- dmCourseStatus: z.ZodEnum<{
19
- notStarted: "notStarted";
20
- inProgress: "inProgress";
21
- testing: "testing";
22
- launched: "launched";
23
- }>;
76
+ status: z.ZodObject<{
77
+ dbs: z.ZodEnum<{
78
+ notStarted: "notStarted";
79
+ inProgress: "inProgress";
80
+ testing: "testing";
81
+ launched: "launched";
82
+ }>;
83
+ trainingVideos: z.ZodEnum<{
84
+ notStarted: "notStarted";
85
+ inProgress: "inProgress";
86
+ testing: "testing";
87
+ launched: "launched";
88
+ }>;
89
+ gdmc: z.ZodEnum<{
90
+ notStarted: "notStarted";
91
+ inProgress: "inProgress";
92
+ testing: "testing";
93
+ launched: "launched";
94
+ }>;
95
+ web: z.ZodEnum<{
96
+ notStarted: "notStarted";
97
+ inProgress: "inProgress";
98
+ testing: "testing";
99
+ launched: "launched";
100
+ }>;
101
+ }, z.core.$strip>;
24
102
  endonym: z.ZodOptional<z.ZodString>;
25
- gdmcStatus: z.ZodEnum<{
26
- notStarted: "notStarted";
27
- inProgress: "inProgress";
28
- testing: "testing";
29
- launched: "launched";
30
- }>;
31
103
  givingId: z.ZodOptional<z.ZodString>;
32
104
  hideDonateButton: z.ZodOptional<z.ZodBoolean>;
33
- introBridge: z.ZodOptional<z.ZodString>;
34
105
  likelyAppInterfacePair: z.ZodOptional<z.ZodString>;
35
106
  mmsLanguageId: z.ZodOptional<z.ZodString>;
36
107
  notes: z.ZodOptional<z.ZodString>;
@@ -73,12 +144,6 @@ export declare const Languages: z.ZodArray<z.ZodObject<{
73
144
  text: z.ZodString;
74
145
  url: z.ZodOptional<z.ZodString>;
75
146
  }, z.core.$strip>>;
76
- status: z.ZodEnum<{
77
- notStarted: "notStarted";
78
- inProgress: "inProgress";
79
- testing: "testing";
80
- launched: "launched";
81
- }>;
82
147
  storeIdAndroid: z.ZodOptional<z.ZodEnum<{
83
148
  id: "id";
84
149
  sw: "sw";
@@ -210,19 +275,20 @@ export declare const Languages: z.ZodArray<z.ZodObject<{
210
275
  "zh-Hant": "zh-Hant";
211
276
  }>>;
212
277
  supportsSolarSpeakers: z.ZodOptional<z.ZodBoolean>;
213
- titles: z.ZodOptional<z.ZodString>;
214
- unsupportedDbsSets: z.ZodOptional<z.ZodArray<z.ZodString>>;
215
278
  uuid: z.ZodString;
216
- videoBridgeLanguage: z.ZodOptional<z.ZodString>;
279
+ bridgeLanguages: z.ZodOptional<z.ZodObject<{
280
+ intros: z.ZodOptional<z.ZodString>;
281
+ trainingVideos: z.ZodOptional<z.ZodString>;
282
+ ftbs: z.ZodOptional<z.ZodString>;
283
+ titles: z.ZodOptional<z.ZodString>;
284
+ questionText: z.ZodOptional<z.ZodString>;
285
+ questionAudio: z.ZodOptional<z.ZodString>;
286
+ onboardingPassages: z.ZodOptional<z.ZodString>;
287
+ }, z.core.$strip>>;
217
288
  web: z.ZodOptional<z.ZodObject<{
218
289
  name: z.ZodString;
219
290
  code: z.ZodString;
220
- status: z.ZodEnum<{
221
- notStarted: "notStarted";
222
- inProgress: "inProgress";
223
- testing: "testing";
224
- launched: "launched";
225
- }>;
226
291
  }, z.core.$strict>>;
227
292
  }, z.core.$strict>>;
228
293
  export type Languages = z.infer<typeof Languages>;
294
+ export type Language = Languages[number];
@@ -1,7 +1,54 @@
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
+ onboardingPassages: zod_1.z
40
+ .string()
41
+ .optional()
42
+ .describe('The language id of the onboarding passages for this language.'),
43
+ })
44
+ .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.');
45
+ exports.BibleModifier = zod_1.z.object({
46
+ 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.'),
47
+ action: zod_1.z
48
+ .enum(['replace', 'concat'])
49
+ .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).'),
50
+ bibleId: zod_1.z.string().describe('The bible translation ID to use.'),
51
+ });
5
52
  exports.Languages = zod_1.z.array(zod_1.z
6
53
  .object({
7
54
  languageId: zod_1.z
@@ -19,17 +66,17 @@ exports.Languages = zod_1.z.array(zod_1.z
19
66
  .string()
20
67
  .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
68
  .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
69
  bible: zod_1.z
27
70
  .string()
28
- .describe('Determines what scripture translation this language will use.')
71
+ .describe('The primary bible translation ID for this language (e.g. "NAV", "NLT").')
29
72
  .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.")
73
+ bibleFallbacks: zod_1.z
74
+ .array(zod_1.z.string())
75
+ .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.')
76
+ .optional(),
77
+ bibleModifiers: zod_1.z
78
+ .array(exports.BibleModifier)
79
+ .describe('Optional modifiers that override or extend the primary bible for specific contexts.')
33
80
  .optional(),
34
81
  countries: zod_1.z
35
82
  .array(zod_1.z.string())
@@ -50,20 +97,23 @@ exports.Languages = zod_1.z.array(zod_1.z
50
97
  topics: zod_1.z
51
98
  .union([zod_1.z.string(), zod_1.z.null()])
52
99
  .describe('The id for the foundations curriculum for this language.'),
100
+ onboarding: zod_1.z
101
+ .string()
102
+ .describe('The id for the onboarding curriculum for this language. Determines which set of onboarding DBS passages to use (e.g. languages with a different psalm numbering need their own curriculum).'),
53
103
  })
54
104
  .strict()
55
105
  .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."),
106
+ status: zod_1.z.object({
107
+ 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."),
108
+ trainingVideos: exports.Status.describe("The status of this language's disciple making course training videos."),
109
+ gdmc: exports.Status.describe("The status of this language's growing as a dmc sets."),
110
+ web: exports.Status.describe("The status of this language's website localization on https://waha.app."),
111
+ }),
59
112
  endonym: zod_1.z
60
113
  .string()
61
114
  .regex(new RegExp('^.+$'))
62
115
  .describe('The name of the language in its native language and script, e.g. "Español"')
63
116
  .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
117
  givingId: zod_1.z
68
118
  .string()
69
119
  .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 +122,6 @@ exports.Languages = zod_1.z.array(zod_1.z
72
122
  .boolean()
73
123
  .describe('Whether or not to hide the donate button in the app when this language is selected as the meet language.')
74
124
  .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
125
  likelyAppInterfacePair: zod_1.z
80
126
  .string()
81
127
  .describe('The language id of the language that is most likely to be used as the app interface language for this language.')
@@ -140,9 +186,6 @@ exports.Languages = zod_1.z.array(zod_1.z
140
186
  url: zod_1.z.string().optional(),
141
187
  })
142
188
  .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
189
  storeIdAndroid: zod_1.z
147
190
  .enum([
148
191
  'af',
@@ -283,21 +326,10 @@ exports.Languages = zod_1.z.array(zod_1.z
283
326
  .boolean()
284
327
  .describe('Whether or not this language supports solar speakers.')
285
328
  .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
329
  uuid: zod_1.z
295
330
  .string()
296
331
  .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(),
332
+ bridgeLanguages: exports.BridgeLanguages.optional(),
301
333
  web: zod_1.z
302
334
  .object({
303
335
  name: zod_1.z
@@ -306,9 +338,6 @@ exports.Languages = zod_1.z.array(zod_1.z
306
338
  code: zod_1.z
307
339
  .string()
308
340
  .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
341
  })
313
342
  .strict()
314
343
  .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.'),