waha-shared 1.0.514 → 1.0.516
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.
- package/dist/data/areas/index.js +5 -2
- package/dist/data/aslTimestamps/index.js +5 -2
- package/dist/data/bibleAudios/index.js +5 -2
- package/dist/data/bibleBooks/index.js +5 -2
- package/dist/data/bibleChaptersList/index.js +7 -2
- package/dist/data/bibleStatuses/index.js +5 -2
- package/dist/data/bibleTexts/index.js +5 -2
- package/dist/data/clones/index.js +5 -2
- package/dist/data/countries/index.js +5 -2
- package/dist/data/countriesAndLanguages/index.js +7 -2
- package/dist/data/crowdinLanguages/index.js +7 -2
- package/dist/data/curriculumFoundations/index.js +7 -2
- package/dist/data/curriculumQuestions/index.js +7 -2
- package/dist/data/curriculumTopics/index.js +7 -2
- package/dist/data/iso6933LanguageCodes/index.js +7 -2
- package/dist/data/languages/index.d.ts +0 -2
- package/dist/data/languages/index.js +5 -2
- package/dist/data/languages/languages.json +0 -310
- package/dist/data/languages/languages.schema.json +1 -11
- package/dist/data/languages/languages.zod.d.ts +0 -3
- package/dist/data/languages/languages.zod.js +0 -4
- package/dist/data/lessonPauses/index.js +5 -2
- package/dist/data/mediaDurations/index.js +7 -2
- package/dist/data/notification/index.js +5 -2
- package/dist/data/numeralMaps/index.js +5 -2
- package/dist/data/phoneLanguages/index.js +7 -2
- package/dist/data/questions/index.js +5 -2
- package/dist/data/releaseNotes/index.js +5 -2
- package/dist/data/releaseNotes/releaseNotes.json +51 -2
- package/dist/data/screenshots/index.js +5 -2
- package/dist/data/scripts/index.js +5 -2
- package/dist/data/sets/index.js +5 -2
- package/dist/data/specialIds/index.js +5 -2
- package/dist/data/translationsApp/index.js +7 -2
- package/dist/data/translationsFtb/index.js +7 -2
- package/dist/data/translationsIntroduction/index.js +7 -2
- package/dist/data/translationsQuestion/index.js +7 -2
- package/dist/data/translationsSet/index.js +7 -2
- package/dist/data/translationsSolarSpeaker/index.js +7 -2
- package/dist/data/translationsSpokenQuestion/index.js +7 -2
- package/dist/data/youtubePlaylists/index.js +7 -2
- package/dist/data/youtubeVideos/index.js +5 -2
- package/dist/functions/activeCampaign.js +16 -4
- package/dist/functions/bibles.d.ts +5 -4
- package/dist/functions/bibles.js +8 -6
- package/dist/functions/crowdin.js +1 -1
- package/dist/functions/languages.js +0 -5
- package/dist/functions/scripturePassages.js +4 -1
- package/dist/functions/sets.js +3 -1
- package/dist/functions/utils.js +1 -1
- package/dist/types/languages.d.ts +0 -8
- package/dist/types/webContent.js +1 -1
- package/package.json +2 -2
|
@@ -250,13 +250,9 @@
|
|
|
250
250
|
"topics": {
|
|
251
251
|
"anyOf": [{ "type": "string" }, { "type": "null" }],
|
|
252
252
|
"description": "The id for the foundations curriculum for this language."
|
|
253
|
-
},
|
|
254
|
-
"onboarding": {
|
|
255
|
-
"type": "string",
|
|
256
|
-
"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)."
|
|
257
253
|
}
|
|
258
254
|
},
|
|
259
|
-
"required": ["foundations", "questions", "topics"
|
|
255
|
+
"required": ["foundations", "questions", "topics"],
|
|
260
256
|
"additionalProperties": false,
|
|
261
257
|
"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."
|
|
262
258
|
},
|
|
@@ -558,12 +554,6 @@
|
|
|
558
554
|
"type": "string",
|
|
559
555
|
"minLength": 3,
|
|
560
556
|
"maxLength": 3
|
|
561
|
-
},
|
|
562
|
-
"onboardingPassages": {
|
|
563
|
-
"description": "The language id of the onboarding passages for this language.",
|
|
564
|
-
"type": "string",
|
|
565
|
-
"minLength": 3,
|
|
566
|
-
"maxLength": 3
|
|
567
557
|
}
|
|
568
558
|
},
|
|
569
559
|
"additionalProperties": false,
|
|
@@ -26,7 +26,6 @@ export declare const BridgeLanguages: z.ZodObject<{
|
|
|
26
26
|
titles: z.ZodOptional<z.ZodString>;
|
|
27
27
|
questionText: z.ZodOptional<z.ZodString>;
|
|
28
28
|
questionAudio: z.ZodOptional<z.ZodString>;
|
|
29
|
-
onboardingPassages: z.ZodOptional<z.ZodString>;
|
|
30
29
|
}, z.core.$strip>;
|
|
31
30
|
export declare const BibleModifier: z.ZodObject<{
|
|
32
31
|
scope: z.ZodUnion<[z.ZodEnum<{
|
|
@@ -241,7 +240,6 @@ export declare const Languages: z.ZodArray<z.ZodObject<{
|
|
|
241
240
|
foundations: z.ZodString;
|
|
242
241
|
questions: z.ZodString;
|
|
243
242
|
topics: z.ZodUnion<readonly [z.ZodString, z.ZodNull]>;
|
|
244
|
-
onboarding: z.ZodString;
|
|
245
243
|
}, z.core.$strict>;
|
|
246
244
|
status: z.ZodObject<{
|
|
247
245
|
dbs: z.ZodEnum<{
|
|
@@ -450,7 +448,6 @@ export declare const Languages: z.ZodArray<z.ZodObject<{
|
|
|
450
448
|
titles: z.ZodOptional<z.ZodString>;
|
|
451
449
|
questionText: z.ZodOptional<z.ZodString>;
|
|
452
450
|
questionAudio: z.ZodOptional<z.ZodString>;
|
|
453
|
-
onboardingPassages: z.ZodOptional<z.ZodString>;
|
|
454
451
|
}, z.core.$strip>>;
|
|
455
452
|
web: z.ZodOptional<z.ZodObject<{
|
|
456
453
|
name: z.ZodString;
|
|
@@ -23,7 +23,6 @@ exports.BridgeLanguages = zod_1.z
|
|
|
23
23
|
titles: exports.LanguageId.optional().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.'),
|
|
24
24
|
questionText: exports.LanguageId.optional().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.'),
|
|
25
25
|
questionAudio: exports.LanguageId.optional().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.'),
|
|
26
|
-
onboardingPassages: exports.LanguageId.optional().describe('The language id of the onboarding passages for this language.'),
|
|
27
26
|
})
|
|
28
27
|
.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.');
|
|
29
28
|
exports.BibleModifier = zod_1.z.object({
|
|
@@ -234,9 +233,6 @@ exports.Languages = zod_1.z.array(zod_1.z
|
|
|
234
233
|
topics: zod_1.z
|
|
235
234
|
.union([zod_1.z.string(), zod_1.z.null()])
|
|
236
235
|
.describe('The id for the foundations curriculum for this language.'),
|
|
237
|
-
onboarding: zod_1.z
|
|
238
|
-
.string()
|
|
239
|
-
.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).'),
|
|
240
236
|
})
|
|
241
237
|
.strict()
|
|
242
238
|
.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.'),
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.lessonPauses = void 0;
|
|
4
4
|
// This file is auto-generated by scripts/prep. Do not edit manually.
|
|
5
|
+
const zod_1 = require("zod");
|
|
5
6
|
const lessonPauses_zod_1 = require("./lessonPauses.zod");
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
// `require` rather than `import` keeps tsc from inferring a type for
|
|
8
|
+
// the whole JSON file.
|
|
9
|
+
const json = require('./lessonPauses.json');
|
|
10
|
+
exports.lessonPauses = zod_1.z.object({ data: lessonPauses_zod_1.LessonPauses }).parse(json).data;
|
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.mediaDurations = void 0;
|
|
4
4
|
// This file is auto-generated by scripts/prep. Do not edit manually.
|
|
5
|
+
const zod_1 = require("zod");
|
|
5
6
|
const mediaDurations_zod_1 = require("./mediaDurations.zod");
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
// `require` rather than `import` keeps tsc from inferring a type for
|
|
8
|
+
// the whole JSON file.
|
|
9
|
+
const json = require('./mediaDurations.json');
|
|
10
|
+
exports.mediaDurations = zod_1.z
|
|
11
|
+
.object({ data: mediaDurations_zod_1.MediaDurations })
|
|
12
|
+
.parse(json).data;
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.notification = void 0;
|
|
4
4
|
// This file is auto-generated by scripts/prep. Do not edit manually.
|
|
5
|
+
const zod_1 = require("zod");
|
|
5
6
|
const notification_zod_1 = require("./notification.zod");
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
// `require` rather than `import` keeps tsc from inferring a type for
|
|
8
|
+
// the whole JSON file.
|
|
9
|
+
const json = require('./notification.json');
|
|
10
|
+
exports.notification = zod_1.z.object({ data: notification_zod_1.Notification }).parse(json).data;
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.numeralMaps = void 0;
|
|
4
4
|
// This file is auto-generated by scripts/prep. Do not edit manually.
|
|
5
|
+
const zod_1 = require("zod");
|
|
5
6
|
const numeralMaps_zod_1 = require("./numeralMaps.zod");
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
// `require` rather than `import` keeps tsc from inferring a type for
|
|
8
|
+
// the whole JSON file.
|
|
9
|
+
const json = require('./numeralMaps.json');
|
|
10
|
+
exports.numeralMaps = zod_1.z.object({ data: numeralMaps_zod_1.NumeralMaps }).parse(json).data;
|
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.phoneLanguages = void 0;
|
|
4
4
|
// This file is auto-generated by scripts/prep. Do not edit manually.
|
|
5
|
+
const zod_1 = require("zod");
|
|
5
6
|
const phoneLanguages_zod_1 = require("./phoneLanguages.zod");
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
// `require` rather than `import` keeps tsc from inferring a type for
|
|
8
|
+
// the whole JSON file.
|
|
9
|
+
const json = require('./phoneLanguages.json');
|
|
10
|
+
exports.phoneLanguages = zod_1.z
|
|
11
|
+
.object({ data: phoneLanguages_zod_1.PhoneLanguages })
|
|
12
|
+
.parse(json).data;
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.questions = void 0;
|
|
4
4
|
// This file is auto-generated by scripts/prep. Do not edit manually.
|
|
5
|
+
const zod_1 = require("zod");
|
|
5
6
|
const questions_zod_1 = require("./questions.zod");
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
// `require` rather than `import` keeps tsc from inferring a type for
|
|
8
|
+
// the whole JSON file.
|
|
9
|
+
const json = require('./questions.json');
|
|
10
|
+
exports.questions = zod_1.z.object({ data: questions_zod_1.Questions }).parse(json).data;
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.releaseNotes = void 0;
|
|
4
4
|
// This file is auto-generated by scripts/prep. Do not edit manually.
|
|
5
|
+
const zod_1 = require("zod");
|
|
5
6
|
const releaseNotes_zod_1 = require("./releaseNotes.zod");
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
// `require` rather than `import` keeps tsc from inferring a type for
|
|
8
|
+
// the whole JSON file.
|
|
9
|
+
const json = require('./releaseNotes.json');
|
|
10
|
+
exports.releaseNotes = zod_1.z.object({ data: releaseNotes_zod_1.ReleaseNotes }).parse(json).data;
|
|
@@ -2,12 +2,61 @@
|
|
|
2
2
|
"$schema": "./releaseNotes.schema.json",
|
|
3
3
|
"data": [
|
|
4
4
|
{
|
|
5
|
-
"version": "9.
|
|
5
|
+
"version": "9.3.0",
|
|
6
6
|
"showInApp": false,
|
|
7
7
|
"notes": {
|
|
8
|
-
"eng": "
|
|
8
|
+
"eng": "This update includes many bug fixes to keep Waha running smoothly.",
|
|
9
|
+
"ara": "يتضمن هذا التحديث العديد من إصلاحات الأخطاء للحفاظ على تشغيل واها بسلاسة.",
|
|
10
|
+
"aze": "Bu yeniləmə Wahanın düzgün işləməsini təmin etmək üçün bir çox səhv düzəlişlərini əhatə edir.",
|
|
11
|
+
"bni": "এই আপডেটে অনেক বাগ ফিক্স অন্তর্ভুক্ত রয়েছে যা Waha-কে সুচারুভাবে চালু রাখতে সাহায্য করবে।",
|
|
12
|
+
"ceb": "Kining update naglakip og daghang mga ayos sa bug aron mapadayon ang Waha nga nagdagan nga maayos.",
|
|
13
|
+
"ckb": "ئەم نوێکردنەوەیە کۆمەڵێک چاکسازیی هەڵە لەخۆدەگرێت بۆ ئەوەی واها بەبێ کێشە بەردەوام بێت.",
|
|
14
|
+
"cmn": "此更新包含多项错误修复,以确保 Waha 稳定运行。",
|
|
15
|
+
"deu": "Dieses Update enthält viele Fehlerbehebungen, damit Waha reibungslos läuft.",
|
|
16
|
+
"esp": "Esta actualización incluye numerosas correcciones de errores para mantener Waha funcionando correctamente.",
|
|
17
|
+
"fra": "Cette mise à jour inclut de nombreuses corrections de bogues pour assurer le bon fonctionnement de Waha.",
|
|
18
|
+
"hau": "Wannan sabuntawa ta ƙunshi gyare-gyare da yawa don tabbatar da cewa Waha na gudana yadda ya kamata.",
|
|
19
|
+
"heb": "עדכון זה כולל תיקוני באגים רבים כדי לשמור על פעולה תקינה של Waha.",
|
|
20
|
+
"hin": "इस अपडेट में कई बग फिक्स शामिल हैं जो Waha को सुचारू रूप से चलाने में मदद करते हैं।",
|
|
21
|
+
"hun": "Ez a frissítés számos hibajavítást tartalmaz, amelyek biztosítják a Waha zökkenőmentes működését.",
|
|
22
|
+
"hye": "Այս թարմացումը ներառում է բազմաթիվ սխալների շտկումներ՝ Waha-ի անխափան աշխատանքն ապահովելու համար։",
|
|
23
|
+
"ind": "Pembaruan ini mencakup banyak perbaikan bug untuk menjaga Waha berjalan dengan lancar.",
|
|
24
|
+
"ita": "Questo aggiornamento include numerose correzioni di bug per mantenere Waha funzionante in modo ottimale.",
|
|
25
|
+
"jpn": "このアップデートには、Wahaをスムーズに動作させるための多くのバグ修正が含まれています。",
|
|
26
|
+
"kat": "ეს განახლება მოიცავს მრავალ შეცდომის გამოსწორებას, რათა Waha-ს მუშაობა შეუფერხებლად გაგრძელდეს.",
|
|
27
|
+
"khm": "ការអាប់ដេតនេះរួមមានការជួសជុលបញ្ហាជាច្រើន ដើម្បីរក្សាឱ្យ Waha ដំណើរការបានយ៉ាងល្អ។",
|
|
28
|
+
"kor": "이 업데이트에는 Waha가 원활하게 실행될 수 있도록 다양한 버그 수정 사항이 포함되어 있습니다.",
|
|
29
|
+
"mar": "या अपडेटमध्ये Waha सुरळीत चालू ठेवण्यासाठी अनेक बग निराकरणे समाविष्ट आहेत.",
|
|
30
|
+
"mlg": "Ity fanavaozana ity dia ahitana fanitsiana maromaro momba ny olana mba hahafahana mampiasa ny Waha amin'ny fomba mahomby.",
|
|
31
|
+
"mon": "Энэхүү шинэчлэлт нь Waha-г жигд ажиллуулахын тулд олон алдааг засварлалтыг агуулж байна.",
|
|
32
|
+
"mya": "ဤအပ်ဒိတ်တွင် Waha ကို ချောမွေ့စွာ လည်ပတ်စေရန် ချို့ယွင်းချက် အများအပြားကို ပြင်ဆင်ထားသည်။",
|
|
33
|
+
"nld": "Deze update bevat veel bugfixes om Waha soepel te laten werken.",
|
|
34
|
+
"npi": "यस अपडेटमा Waha लाई सुचारु रूपमा चलाइराख्नका लागि धेरै बग फिक्सहरू समावेश छन्।",
|
|
35
|
+
"pes": "این بهروزرسانی شامل رفع بسیاری از اشکالات برای اطمینان از عملکرد روان وَها میشود.",
|
|
36
|
+
"por": "Esta atualização inclui diversas correções de erros para manter o Waha funcionando corretamente.",
|
|
37
|
+
"ron": "Această actualizare include numeroase remedieri de erori pentru a menține Waha să funcționeze fără probleme.",
|
|
38
|
+
"rus": "Это обновление включает множество исправлений ошибок для обеспечения стабильной работы Waha.",
|
|
39
|
+
"spa": "Esta actualización incluye muchas correcciones de errores para mantener Waha funcionando correctamente.",
|
|
40
|
+
"swe": "Den här uppdateringen innehåller många felkorrigeringar för att hålla Waha igång smidigt.",
|
|
41
|
+
"swz": "Sasisho hili linajumuisha marekebisho mengi ya hitilafu ili kuweka Waha ikiendelea vizuri.",
|
|
42
|
+
"tam": "இந்த புதுப்பிப்பில் Waha சீராக இயங்குவதற்காக பல பிழை திருத்தங்கள் சேர்க்கப்பட்டுள்ளன.",
|
|
43
|
+
"tel": "ఈ అప్డేట్లో Waha సజావుగా నడవడానికి అనేక బగ్ పరిష్కారాలు చేర్చబడ్డాయి.",
|
|
44
|
+
"tgl": "Ang update na ito ay naglalaman ng maraming pag-aayos ng bug upang mapanatiling maayos ang pagtakbo ng Waha.",
|
|
45
|
+
"tha": "การอัปเดตนี้รวมถึงการแก้ไขข้อบกพร่องมากมายเพื่อให้ Waha ทำงานได้อย่างราบรื่น",
|
|
46
|
+
"tur": "Bu güncelleme, Waha'nın sorunsuz çalışmaya devam etmesi için birçok hata düzeltmesi içermektedir.",
|
|
47
|
+
"uig": "بۇ يېڭىلاش Waha نىڭ ئاكتىپ ئىشلىشىنى تەمىنلەش ئۈچۈن كۆپ خىل خاتالىقلارنى ئوڭشاشنى ئۆز ئىچىگە ئالىدۇ.",
|
|
48
|
+
"ukr": "Це оновлення містить численні виправлення помилок для забезпечення стабільної роботи Waha.",
|
|
49
|
+
"urd": "اس اپ ڈیٹ میں بہت سی خرابیوں کو دور کیا گیا ہے تاکہ واہا بغیر کسی رکاوٹ کے چلتا رہے۔",
|
|
50
|
+
"zsm": "Kemas kini ini merangkumi banyak pembetulan pepijat untuk memastikan Waha berjalan dengan lancar."
|
|
9
51
|
}
|
|
10
52
|
},
|
|
53
|
+
{
|
|
54
|
+
"version": "9.2.1",
|
|
55
|
+
"notes": {
|
|
56
|
+
"eng": "Language beta with languages: Italian, Kabyle (Algerian Tamazight), Georgian, North Korean, Hassaniyya Arabic"
|
|
57
|
+
},
|
|
58
|
+
"showInApp": false
|
|
59
|
+
},
|
|
11
60
|
{
|
|
12
61
|
"version": "9.2.0",
|
|
13
62
|
"notes": {
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.screenshots = void 0;
|
|
4
4
|
// This file is auto-generated by scripts/prep. Do not edit manually.
|
|
5
|
+
const zod_1 = require("zod");
|
|
5
6
|
const screenshots_zod_1 = require("./screenshots.zod");
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
// `require` rather than `import` keeps tsc from inferring a type for
|
|
8
|
+
// the whole JSON file.
|
|
9
|
+
const json = require('./screenshots.json');
|
|
10
|
+
exports.screenshots = zod_1.z.object({ data: screenshots_zod_1.Screenshots }).parse(json).data;
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.scripts = void 0;
|
|
4
4
|
// This file is auto-generated by scripts/prep. Do not edit manually.
|
|
5
|
+
const zod_1 = require("zod");
|
|
5
6
|
const scripts_zod_1 = require("./scripts.zod");
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
// `require` rather than `import` keeps tsc from inferring a type for
|
|
8
|
+
// the whole JSON file.
|
|
9
|
+
const json = require('./scripts.json');
|
|
10
|
+
exports.scripts = zod_1.z.object({ data: scripts_zod_1.Scripts }).parse(json).data;
|
package/dist/data/sets/index.js
CHANGED
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.sets = void 0;
|
|
4
4
|
// This file is auto-generated by scripts/prep. Do not edit manually.
|
|
5
|
+
const zod_1 = require("zod");
|
|
5
6
|
const sets_zod_1 = require("./sets.zod");
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
// `require` rather than `import` keeps tsc from inferring a type for
|
|
8
|
+
// the whole JSON file.
|
|
9
|
+
const json = require('./sets.json');
|
|
10
|
+
exports.sets = zod_1.z.object({ data: sets_zod_1.Sets }).parse(json).data;
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.specialIds = void 0;
|
|
4
4
|
// This file is auto-generated by scripts/prep. Do not edit manually.
|
|
5
|
+
const zod_1 = require("zod");
|
|
5
6
|
const specialIds_zod_1 = require("./specialIds.zod");
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
// `require` rather than `import` keeps tsc from inferring a type for
|
|
8
|
+
// the whole JSON file.
|
|
9
|
+
const json = require('./specialIds.json');
|
|
10
|
+
exports.specialIds = zod_1.z.object({ data: specialIds_zod_1.SpecialIds }).parse(json).data;
|
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.translationsApp = void 0;
|
|
4
4
|
// This file is auto-generated by scripts/prep. Do not edit manually.
|
|
5
|
+
const zod_1 = require("zod");
|
|
5
6
|
const translationsApp_zod_1 = require("./translationsApp.zod");
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
// `require` rather than `import` keeps tsc from inferring a type for
|
|
8
|
+
// the whole JSON file.
|
|
9
|
+
const json = require('./translationsApp.json');
|
|
10
|
+
exports.translationsApp = zod_1.z
|
|
11
|
+
.object({ data: translationsApp_zod_1.TranslationsApp })
|
|
12
|
+
.parse(json).data;
|
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.translationsFtb = void 0;
|
|
4
4
|
// This file is auto-generated by scripts/prep. Do not edit manually.
|
|
5
|
+
const zod_1 = require("zod");
|
|
5
6
|
const translationsFtb_zod_1 = require("./translationsFtb.zod");
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
// `require` rather than `import` keeps tsc from inferring a type for
|
|
8
|
+
// the whole JSON file.
|
|
9
|
+
const json = require('./translationsFtb.json');
|
|
10
|
+
exports.translationsFtb = zod_1.z
|
|
11
|
+
.object({ data: translationsFtb_zod_1.TranslationsFtb })
|
|
12
|
+
.parse(json).data;
|
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.translationsIntroduction = void 0;
|
|
4
4
|
// This file is auto-generated by scripts/prep. Do not edit manually.
|
|
5
|
+
const zod_1 = require("zod");
|
|
5
6
|
const translationsIntroduction_zod_1 = require("./translationsIntroduction.zod");
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
// `require` rather than `import` keeps tsc from inferring a type for
|
|
8
|
+
// the whole JSON file.
|
|
9
|
+
const json = require('./translationsIntroduction.json');
|
|
10
|
+
exports.translationsIntroduction = zod_1.z
|
|
11
|
+
.object({ data: translationsIntroduction_zod_1.TranslationsIntroduction })
|
|
12
|
+
.parse(json).data;
|
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.translationsQuestion = void 0;
|
|
4
4
|
// This file is auto-generated by scripts/prep. Do not edit manually.
|
|
5
|
+
const zod_1 = require("zod");
|
|
5
6
|
const translationsQuestion_zod_1 = require("./translationsQuestion.zod");
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
// `require` rather than `import` keeps tsc from inferring a type for
|
|
8
|
+
// the whole JSON file.
|
|
9
|
+
const json = require('./translationsQuestion.json');
|
|
10
|
+
exports.translationsQuestion = zod_1.z
|
|
11
|
+
.object({ data: translationsQuestion_zod_1.TranslationsQuestion })
|
|
12
|
+
.parse(json).data;
|
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.translationsSet = void 0;
|
|
4
4
|
// This file is auto-generated by scripts/prep. Do not edit manually.
|
|
5
|
+
const zod_1 = require("zod");
|
|
5
6
|
const translationsSet_zod_1 = require("./translationsSet.zod");
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
// `require` rather than `import` keeps tsc from inferring a type for
|
|
8
|
+
// the whole JSON file.
|
|
9
|
+
const json = require('./translationsSet.json');
|
|
10
|
+
exports.translationsSet = zod_1.z
|
|
11
|
+
.object({ data: translationsSet_zod_1.TranslationsSet })
|
|
12
|
+
.parse(json).data;
|
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.translationsSolarSpeaker = void 0;
|
|
4
4
|
// This file is auto-generated by scripts/prep. Do not edit manually.
|
|
5
|
+
const zod_1 = require("zod");
|
|
5
6
|
const translationsSolarSpeaker_zod_1 = require("./translationsSolarSpeaker.zod");
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
// `require` rather than `import` keeps tsc from inferring a type for
|
|
8
|
+
// the whole JSON file.
|
|
9
|
+
const json = require('./translationsSolarSpeaker.json');
|
|
10
|
+
exports.translationsSolarSpeaker = zod_1.z
|
|
11
|
+
.object({ data: translationsSolarSpeaker_zod_1.TranslationsSolarSpeaker })
|
|
12
|
+
.parse(json).data;
|
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.translationsSpokenQuestion = void 0;
|
|
4
4
|
// This file is auto-generated by scripts/prep. Do not edit manually.
|
|
5
|
+
const zod_1 = require("zod");
|
|
5
6
|
const translationsSpokenQuestion_zod_1 = require("./translationsSpokenQuestion.zod");
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
// `require` rather than `import` keeps tsc from inferring a type for
|
|
8
|
+
// the whole JSON file.
|
|
9
|
+
const json = require('./translationsSpokenQuestion.json');
|
|
10
|
+
exports.translationsSpokenQuestion = zod_1.z
|
|
11
|
+
.object({ data: translationsSpokenQuestion_zod_1.TranslationsSpokenQuestion })
|
|
12
|
+
.parse(json).data;
|
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.youtubePlaylists = void 0;
|
|
4
4
|
// This file is auto-generated by scripts/prep. Do not edit manually.
|
|
5
|
+
const zod_1 = require("zod");
|
|
5
6
|
const youtubePlaylists_zod_1 = require("./youtubePlaylists.zod");
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
// `require` rather than `import` keeps tsc from inferring a type for
|
|
8
|
+
// the whole JSON file.
|
|
9
|
+
const json = require('./youtubePlaylists.json');
|
|
10
|
+
exports.youtubePlaylists = zod_1.z
|
|
11
|
+
.object({ data: youtubePlaylists_zod_1.YoutubePlaylists })
|
|
12
|
+
.parse(json).data;
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.youtubeVideos = void 0;
|
|
4
4
|
// This file is auto-generated by scripts/prep. Do not edit manually.
|
|
5
|
+
const zod_1 = require("zod");
|
|
5
6
|
const youtubeVideos_zod_1 = require("./youtubeVideos.zod");
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
// `require` rather than `import` keeps tsc from inferring a type for
|
|
8
|
+
// the whole JSON file.
|
|
9
|
+
const json = require('./youtubeVideos.json');
|
|
10
|
+
exports.youtubeVideos = zod_1.z.object({ data: youtubeVideos_zod_1.YoutubeVideos }).parse(json).data;
|
|
@@ -7,6 +7,7 @@ exports.contactLookupUrl = contactLookupUrl;
|
|
|
7
7
|
exports.addToACList = addToACList;
|
|
8
8
|
exports.getContactsInList = getContactsInList;
|
|
9
9
|
const signale_1 = __importDefault(require("signale"));
|
|
10
|
+
const zod_1 = require("zod");
|
|
10
11
|
const listNumbers = {
|
|
11
12
|
newsletter: 3,
|
|
12
13
|
volunteer: 5,
|
|
@@ -21,6 +22,16 @@ const listNumbers = {
|
|
|
21
22
|
function contactLookupUrl(apiUrl, email) {
|
|
22
23
|
return `${apiUrl}/contacts?email=${encodeURIComponent(email)}`;
|
|
23
24
|
}
|
|
25
|
+
/** The part of an ActiveCampaign list-contacts response that's read. */
|
|
26
|
+
const ContactsPage = zod_1.z.object({
|
|
27
|
+
contacts: zod_1.z.array(zod_1.z.object({ id: zod_1.z.string(), email: zod_1.z.string() })).optional(),
|
|
28
|
+
});
|
|
29
|
+
/** The part of an ActiveCampaign contact lookup response that's read. */
|
|
30
|
+
const ContactLookup = zod_1.z.object({
|
|
31
|
+
contacts: zod_1.z.array(zod_1.z.object({ id: zod_1.z.string() })),
|
|
32
|
+
});
|
|
33
|
+
/** The part of an ActiveCampaign create-contact response that's read. */
|
|
34
|
+
const CreatedContact = zod_1.z.object({ contact: zod_1.z.object({ id: zod_1.z.string() }) });
|
|
24
35
|
async function addToACList({ baseUrl, email, list, token, name, }) {
|
|
25
36
|
const headers = { 'Api-Token': token, 'Content-Type': 'application/json' };
|
|
26
37
|
const url = `${baseUrl}/api/3`;
|
|
@@ -32,9 +43,10 @@ async function addToACList({ baseUrl, email, list, token, name, }) {
|
|
|
32
43
|
if (!findContact.ok) {
|
|
33
44
|
throw new Error(`Failed to retrieve contact with ${email}. ${JSON.stringify(findContactJson)}`);
|
|
34
45
|
}
|
|
46
|
+
const [existingContact] = ContactLookup.parse(findContactJson).contacts;
|
|
35
47
|
let contactId;
|
|
36
|
-
if (
|
|
37
|
-
contactId =
|
|
48
|
+
if (existingContact) {
|
|
49
|
+
contactId = existingContact.id;
|
|
38
50
|
}
|
|
39
51
|
else {
|
|
40
52
|
const createContact = await fetch(`${url}/contacts`, {
|
|
@@ -49,7 +61,7 @@ async function addToACList({ baseUrl, email, list, token, name, }) {
|
|
|
49
61
|
throw new Error(`Failed to create new contact with ${email}. ${JSON.stringify(createContactJson)}`);
|
|
50
62
|
}
|
|
51
63
|
signale_1.default.success(`Created new AC contact with email ${email}.`);
|
|
52
|
-
contactId = createContactJson.contact.id;
|
|
64
|
+
contactId = CreatedContact.parse(createContactJson).contact.id;
|
|
53
65
|
}
|
|
54
66
|
const subscribe = await fetch(`${url}/contactLists`, {
|
|
55
67
|
method: 'POST',
|
|
@@ -87,7 +99,7 @@ async function getContactsInList({ baseUrl, limit = 100, list, token, }) {
|
|
|
87
99
|
if (!response.ok) {
|
|
88
100
|
throw new Error(`Failed to retrieve contacts in list ${list}. ${JSON.stringify(data)}`);
|
|
89
101
|
}
|
|
90
|
-
const contacts = data.contacts || [];
|
|
102
|
+
const contacts = ContactsPage.parse(data).contacts || [];
|
|
91
103
|
if (contacts.length === 0) {
|
|
92
104
|
hasMoreContacts = false;
|
|
93
105
|
}
|
|
@@ -47,11 +47,12 @@ export declare function getAvailableChapters(bibleId: string | undefined): {
|
|
|
47
47
|
all: string[];
|
|
48
48
|
};
|
|
49
49
|
/**
|
|
50
|
-
* The percentage of a complete bible that `bibleId` has
|
|
51
|
-
*
|
|
52
|
-
* chapters
|
|
50
|
+
* The percentage of a complete bible that `bibleId` has in any of `types`. Pass
|
|
51
|
+
* `'text', 'audio'` for an audio-only bible to count its audio. Counts distinct
|
|
52
|
+
* chapters, so overlapping entries (e.g. `OT` and `GEN`), a chapter with both
|
|
53
|
+
* text and audio, and optional chapters can't push it past 100.
|
|
53
54
|
*/
|
|
54
|
-
export declare function getPercentage(bibleId: string,
|
|
55
|
+
export declare function getPercentage(bibleId: string, ...types: ('text' | 'audio' | 'timings')[]): number;
|
|
55
56
|
/**
|
|
56
57
|
* Determines the appropriate bible for a given passage based on the language's
|
|
57
58
|
* bible, bible modifiers, and fallback bible.
|
package/dist/functions/bibles.js
CHANGED
|
@@ -213,13 +213,15 @@ function getAvailableChapters(bibleId) {
|
|
|
213
213
|
/** Chapters in a complete bible, not counting optional ones like MAL.4. */
|
|
214
214
|
const REQUIRED_CHAPTER_COUNT = bibleChaptersList_1.bibleChaptersList.length - exports.OPTIONAL_CHAPTERS.size;
|
|
215
215
|
/**
|
|
216
|
-
* The percentage of a complete bible that `bibleId` has
|
|
217
|
-
*
|
|
218
|
-
* chapters
|
|
216
|
+
* The percentage of a complete bible that `bibleId` has in any of `types`. Pass
|
|
217
|
+
* `'text', 'audio'` for an audio-only bible to count its audio. Counts distinct
|
|
218
|
+
* chapters, so overlapping entries (e.g. `OT` and `GEN`), a chapter with both
|
|
219
|
+
* text and audio, and optional chapters can't push it past 100.
|
|
219
220
|
*/
|
|
220
|
-
function getPercentage(bibleId,
|
|
221
|
-
const
|
|
222
|
-
const
|
|
221
|
+
function getPercentage(bibleId, ...types) {
|
|
222
|
+
const status = bibleStatuses_1.bibleStatuses[bibleId];
|
|
223
|
+
const chapters = new Set(types.flatMap((type) => expandOptimizedChapters(status?.[type] ?? [])));
|
|
224
|
+
const required = [...chapters].filter((c) => !exports.OPTIONAL_CHAPTERS.has(c));
|
|
223
225
|
return (required.length / REQUIRED_CHAPTER_COUNT) * 100;
|
|
224
226
|
}
|
|
225
227
|
/**
|
|
@@ -110,7 +110,7 @@ async function uploadSource({ projectId, source, token, label, fileSettings, })
|
|
|
110
110
|
const client = new crowdin_api_client_1.default({ token });
|
|
111
111
|
const id = Number(projectId);
|
|
112
112
|
const relativePath = crowdinRelativePath(source);
|
|
113
|
-
const fileName = relativePath.
|
|
113
|
+
const fileName = relativePath.slice(relativePath.lastIndexOf('/') + 1);
|
|
114
114
|
const contents = fs_1.default.readFileSync(source, 'utf8');
|
|
115
115
|
const storage = await client.uploadStorageApi.addStorage(fileName, contents);
|
|
116
116
|
const storageId = storage.data.id;
|
|
@@ -7,7 +7,6 @@ exports.numerals = numerals;
|
|
|
7
7
|
exports.getAppTranslations = getAppTranslations;
|
|
8
8
|
exports.getMeetTranslations = getMeetTranslations;
|
|
9
9
|
const curriculumFoundations_1 = require("../data/curriculumFoundations");
|
|
10
|
-
const curriculumOnboarding_1 = require("../data/curriculumOnboarding");
|
|
11
10
|
const curriculumQuestions_1 = require("../data/curriculumQuestions");
|
|
12
11
|
const curriculumTopics_1 = require("../data/curriculumTopics");
|
|
13
12
|
const languages_1 = require("../data/languages");
|
|
@@ -49,7 +48,6 @@ function getLanguageInfo(languageId, options) {
|
|
|
49
48
|
const questionsCurriculum = curriculumQuestions_1.curriculumQuestions.find((questionCurriculum) => questionCurriculum.curriculumId === language.curriculum.questions);
|
|
50
49
|
const foundationsCurriculum = curriculumFoundations_1.curriculumFoundations.find((foundationsCurriculum) => foundationsCurriculum.curriculumId === language.curriculum.foundations);
|
|
51
50
|
const topicsCurriculum = curriculumTopics_1.curriculumTopics.find((topicsCurriculum) => topicsCurriculum.curriculumId === language?.curriculum.topics);
|
|
52
|
-
const onboardingCurriculum = curriculumOnboarding_1.curriculumOnboarding.find((onboardingCurriculum) => onboardingCurriculum.curriculumId === language.curriculum.onboarding);
|
|
53
51
|
const setIds = [];
|
|
54
52
|
if (foundationsCurriculum)
|
|
55
53
|
setIds.push(...foundationsCurriculum.sets);
|
|
@@ -102,13 +100,10 @@ function getLanguageInfo(languageId, options) {
|
|
|
102
100
|
titles: language.bridgeLanguages?.titles ?? language.languageId,
|
|
103
101
|
questionAudio: language.bridgeLanguages?.questionAudio ?? language.languageId,
|
|
104
102
|
questionText: language.bridgeLanguages?.questionText ?? language.languageId,
|
|
105
|
-
onboardingPassages: language.bridgeLanguages?.onboardingPassages ?? language.languageId,
|
|
106
103
|
},
|
|
107
104
|
script,
|
|
108
105
|
lessonPauses: lessonPauses_1.lessonPauses,
|
|
109
106
|
allBibleIds: (0, bibles_1.getAllBibleIds)(language),
|
|
110
|
-
onboardingPassageIds: onboardingCurriculum?.passages ??
|
|
111
|
-
getEnglishFallback(languageId).onboardingPassageIds,
|
|
112
107
|
status: { ...language.status, dmCourse: dmCourseStatus },
|
|
113
108
|
};
|
|
114
109
|
return toReturn;
|
|
@@ -319,7 +319,10 @@ function normalizeVerseTimings({ enrichedSections, scripture, lessonInfo, }) {
|
|
|
319
319
|
return verse;
|
|
320
320
|
return {
|
|
321
321
|
...verse,
|
|
322
|
-
timings: [
|
|
322
|
+
timings: [
|
|
323
|
+
verse.timings[0] + offset,
|
|
324
|
+
verse.timings[1] + offset,
|
|
325
|
+
],
|
|
323
326
|
};
|
|
324
327
|
}),
|
|
325
328
|
};
|
package/dist/functions/sets.js
CHANGED
|
@@ -129,6 +129,8 @@ function assembleLessonSections({ languageInfo, setInfo, lesson, t, useSpokenQue
|
|
|
129
129
|
});
|
|
130
130
|
}
|
|
131
131
|
else if (specialIds_1.specialIds.growingAsDmcSetIds.includes(setInfo.setId)) {
|
|
132
|
+
// Keyed by lesson ID, but only some lessons have an introduction.
|
|
133
|
+
const introductionTexts = t.introductions.introductions;
|
|
132
134
|
sections.push({
|
|
133
135
|
id: 'introduction',
|
|
134
136
|
index: sections.length,
|
|
@@ -136,7 +138,7 @@ function assembleLessonSections({ languageInfo, setInfo, lesson, t, useSpokenQue
|
|
|
136
138
|
indexWithinChapter: 0,
|
|
137
139
|
pauseBefore: languageInfo.lessonPauses.beforeFtb,
|
|
138
140
|
header: t.introductions.introduction,
|
|
139
|
-
text:
|
|
141
|
+
text: introductionTexts[lesson.lessonId],
|
|
140
142
|
path: (0, utils_1.join)(languageInfo.contentLanguages.intros, [
|
|
141
143
|
languageInfo.contentLanguages.intros,
|
|
142
144
|
lesson.lessonId,
|
package/dist/functions/utils.js
CHANGED
|
@@ -4,7 +4,7 @@ exports.dirname = exports.first = exports.basename = exports.join = void 0;
|
|
|
4
4
|
exports.getErrorInfo = getErrorInfo;
|
|
5
5
|
const join = (...parts) => parts.join('/').replace(/\/+/g, '/');
|
|
6
6
|
exports.join = join;
|
|
7
|
-
const basename = (p) => p.
|
|
7
|
+
const basename = (p) => p.slice(p.lastIndexOf('/') + 1);
|
|
8
8
|
exports.basename = basename;
|
|
9
9
|
const first = (p) => p.split('/')[0];
|
|
10
10
|
exports.first = first;
|