waha-shared 1.0.1 → 1.0.2
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/README.md +2 -2
- package/dist/data/bibleAudios.d.ts +8 -0
- package/dist/data/bibleAudios.js +8 -0
- package/dist/data/bibleAudios.json +394 -0
- package/dist/data/bibleResources/bibleBooks.d.ts +3 -0
- package/dist/data/bibleResources/bibleBooks.js +7 -0
- package/dist/data/bibleResources/bibleBooks.json +6071 -0
- package/dist/data/bibleResources/bibleChaptersList.d.ts +2 -0
- package/dist/data/bibleResources/bibleChaptersList.js +8 -0
- package/dist/data/bibleResources/bibleChaptersList.json +1191 -0
- package/dist/data/bibleStatuses.d.ts +7 -0
- package/dist/data/bibleStatuses.js +8 -0
- package/dist/data/bibleStatuses.json +9196 -0
- package/dist/data/bibleTexts.d.ts +16 -0
- package/dist/data/bibleTexts.js +8 -0
- package/dist/data/bibleTexts.json +527 -0
- package/dist/data/countryResources/areas.d.ts +3 -0
- package/dist/data/countryResources/areas.js +7 -0
- package/dist/data/countryResources/areas.json +74 -0
- package/dist/data/countryResources/countries.d.ts +3 -0
- package/dist/data/countryResources/countries.js +7 -0
- package/dist/data/countryResources/countries.json +3362 -0
- package/dist/data/foundationsCurriculums.d.ts +5 -0
- package/dist/data/foundationsCurriculums.js +8 -0
- package/dist/data/foundationsCurriculums.json +130 -0
- package/dist/data/languageResources/countriesAndLanguages.d.ts +13 -0
- package/dist/data/languageResources/countriesAndLanguages.js +7 -0
- package/dist/data/languageResources/countriesAndLanguages.json +11718 -0
- package/dist/data/languageResources/phoneLanguages.d.ts +11 -0
- package/dist/data/languageResources/phoneLanguages.js +7 -0
- package/dist/data/languageResources/phoneLanguages.json +1532 -0
- package/dist/data/languages.d.ts +45 -0
- package/dist/data/languages.js +8 -0
- package/dist/data/languages.json +7045 -0
- package/dist/data/mediaDurations.d.ts +6 -0
- package/dist/data/mediaDurations.js +8 -0
- package/dist/data/mediaDurations.json +32364 -0
- package/dist/data/notification.d.ts +16 -0
- package/dist/data/notification.js +8 -0
- package/dist/data/notification.json +69 -0
- package/dist/data/numeralMaps.d.ts +13 -0
- package/dist/data/numeralMaps.js +8 -0
- package/dist/data/numeralMaps.json +26 -0
- package/dist/data/questions.d.ts +8 -0
- package/dist/data/questions.js +8 -0
- package/dist/data/questions.json +317 -0
- package/dist/data/questionsCurriculums.d.ts +8 -0
- package/dist/data/questionsCurriculums.js +8 -0
- package/dist/data/questionsCurriculums.json +753 -0
- package/dist/data/releaseNotes.d.ts +6 -0
- package/dist/data/releaseNotes.js +8 -0
- package/dist/data/releaseNotes.json +2381 -0
- package/dist/data/screenshots.d.ts +5 -0
- package/dist/data/screenshots.js +8 -0
- package/dist/data/screenshots.json +17 -0
- package/dist/data/sets.d.ts +14 -0
- package/dist/data/sets.js +8 -0
- package/dist/data/sets.json +12258 -0
- package/dist/data/specialIds.d.ts +18 -0
- package/dist/data/specialIds.js +7 -0
- package/dist/data/specialIds.json +72 -0
- package/dist/data/topicsCurriculums.d.ts +5 -0
- package/dist/data/topicsCurriculums.js +8 -0
- package/dist/data/topicsCurriculums.json +131 -0
- package/dist/data/typescript/appTranslations.d.ts +915 -0
- package/dist/data/typescript/appTranslations.js +315 -0
- package/dist/data/typescript/areas.d.ts +18 -0
- package/dist/data/typescript/areas.js +42 -0
- package/dist/data/typescript/aslTimestamps.d.ts +43 -0
- package/dist/data/typescript/aslTimestamps.js +31 -0
- package/dist/data/typescript/bibleAudioAvailableChapters.d.ts +3 -0
- package/dist/data/typescript/bibleAudioAvailableChapters.js +36 -0
- package/dist/data/typescript/bibleAudios.d.ts +21 -0
- package/dist/data/typescript/bibleAudios.js +23 -0
- package/dist/data/typescript/bibleBookNames.d.ts +3 -0
- package/dist/data/typescript/bibleBookNames.js +98 -0
- package/dist/data/typescript/bibleBooks.d.ts +69 -0
- package/dist/data/typescript/bibleBooks.js +56 -0
- package/dist/data/typescript/bibleChapters.d.ts +49 -0
- package/dist/data/typescript/bibleChapters.js +29 -0
- package/dist/data/typescript/bibleStatuses.d.ts +28 -0
- package/dist/data/typescript/bibleStatuses.js +39 -0
- package/dist/data/typescript/bibleTextAvailableChapters.d.ts +3 -0
- package/dist/data/typescript/bibleTextAvailableChapters.js +36 -0
- package/dist/data/typescript/bibleTexts.d.ts +53 -0
- package/dist/data/typescript/bibleTexts.js +54 -0
- package/dist/data/typescript/clones.d.ts +36 -0
- package/dist/data/typescript/clones.js +28 -0
- package/dist/data/typescript/countries.d.ts +98 -0
- package/dist/data/typescript/countries.js +149 -0
- package/dist/data/typescript/foundationsCurriculums.d.ts +12 -0
- package/dist/data/typescript/foundationsCurriculums.js +12 -0
- package/dist/data/typescript/introductionTranslations.d.ts +202 -0
- package/dist/data/typescript/introductionTranslations.js +53 -0
- package/dist/data/typescript/languages.d.ts +148 -0
- package/dist/data/typescript/languages.js +302 -0
- package/dist/data/typescript/mediaDurations.d.ts +23 -0
- package/dist/data/typescript/mediaDurations.js +72 -0
- package/dist/data/typescript/notification.d.ts +45 -0
- package/dist/data/typescript/notification.js +176 -0
- package/dist/data/typescript/numeralMaps.d.ts +58 -0
- package/dist/data/typescript/numeralMaps.js +71 -0
- package/dist/data/typescript/questionTranslations.d.ts +3 -0
- package/dist/data/typescript/questionTranslations.js +5 -0
- package/dist/data/typescript/questions.d.ts +21 -0
- package/dist/data/typescript/questions.js +18 -0
- package/dist/data/typescript/questionsCurriculums.d.ts +27 -0
- package/dist/data/typescript/questionsCurriculums.js +19 -0
- package/dist/data/typescript/releaseNotes.d.ts +15 -0
- package/dist/data/typescript/releaseNotes.js +9 -0
- package/dist/data/typescript/screenshots.d.ts +12 -0
- package/dist/data/typescript/screenshots.js +49 -0
- package/dist/data/typescript/setTranslations.d.ts +27 -0
- package/dist/data/typescript/setTranslations.js +32 -0
- package/dist/data/typescript/sets.d.ts +49 -0
- package/dist/data/typescript/sets.js +88 -0
- package/dist/data/typescript/topicsCurriculums.d.ts +12 -0
- package/dist/data/typescript/topicsCurriculums.js +12 -0
- package/dist/data/youtube/videos.d.ts +2 -0
- package/dist/data/youtube/videos.js +7 -0
- package/dist/data/youtube/videos.json +262 -0
- package/dist/functions/activeCampaign.d.ts +8 -0
- package/dist/functions/activeCampaign.js +97 -0
- package/dist/functions/bibleChapterUtils.d.ts +15 -0
- package/dist/functions/bibleChapterUtils.js +231 -0
- package/dist/functions/crowdin.d.ts +24 -0
- package/dist/functions/crowdin.js +34 -0
- package/dist/functions/languages.d.ts +24 -0
- package/dist/functions/languages.js +212 -0
- package/dist/functions/scripturePassages.d.ts +47 -0
- package/dist/functions/scripturePassages.js +261 -0
- package/dist/functions/sets.d.ts +30 -0
- package/dist/functions/sets.js +371 -0
- package/dist/translations/appTranslations.d.ts +306 -0
- package/dist/translations/appTranslations.js +8 -0
- package/dist/translations/appTranslations.json +10239 -0
- package/dist/translations/introductionTranslations.d.ts +43 -0
- package/dist/translations/introductionTranslations.js +8 -0
- package/dist/translations/introductionTranslations.json +422 -0
- package/dist/translations/questionTranslations.d.ts +2 -0
- package/dist/translations/questionTranslations.js +8 -0
- package/dist/translations/questionTranslations.json +1472 -0
- package/dist/translations/setTranslations.d.ts +10 -0
- package/dist/translations/setTranslations.js +8 -0
- package/dist/translations/setTranslations.json +30257 -0
- package/dist/types/analytics.d.ts +119 -0
- package/dist/types/analytics.js +2 -0
- package/dist/types/completions.d.ts +8 -0
- package/dist/types/completions.js +2 -0
- package/dist/types/feedback.d.ts +60 -0
- package/dist/types/feedback.js +27 -0
- package/dist/types/languages.d.ts +31 -0
- package/dist/types/languages.js +2 -0
- package/dist/types/notifications.d.ts +128 -0
- package/dist/types/notifications.js +30 -0
- package/dist/types/sets.d.ts +70 -0
- package/dist/types/sets.js +10 -0
- package/dist/types/users.d.ts +765 -0
- package/dist/types/users.js +137 -0
- package/package.json +2 -2
- package/.DS_Store +0 -0
- package/__init__.py +0 -0
- package/copy.ts +0 -37
- package/data/README.md +0 -45
- package/data/__init__.py +0 -0
- package/data/aslTimestamps.json +0 -192788
- package/data/bibleAudios.json +0 -394
- package/data/bibleAudios.ts +0 -4
- package/data/bibleResources/audioBibleLicenses.json +0 -6235
- package/data/bibleResources/bibleBooks.json +0 -6071
- package/data/bibleResources/bibleBooks.ts +0 -4
- package/data/bibleResources/bibleChaptersList.json +0 -1191
- package/data/bibleResources/bibleChaptersList.ts +0 -4
- package/data/bibleResources/textBibleLicenses.json +0 -14603
- package/data/bibleStatuses.json +0 -9196
- package/data/bibleStatuses.ts +0 -4
- package/data/bibleTexts.json +0 -527
- package/data/bibleTexts.ts +0 -4
- package/data/clones.json +0 -13
- package/data/countryResources/areas.json +0 -74
- package/data/countryResources/areas.ts +0 -4
- package/data/countryResources/countries.json +0 -3362
- package/data/countryResources/countries.ts +0 -4
- package/data/foundationsCurriculums.json +0 -130
- package/data/foundationsCurriculums.ts +0 -4
- package/data/languageResources/countriesAndLanguages.json +0 -11718
- package/data/languageResources/countriesAndLanguages.ts +0 -16
- package/data/languageResources/crowdinLanguages.json +0 -2172
- package/data/languageResources/iosVoiceOverLanguages.json +0 -64
- package/data/languageResources/iso6933LanguageCodes.json +0 -7927
- package/data/languageResources/mmsLanguages.json +0 -28164
- package/data/languageResources/phoneLanguages.json +0 -1532
- package/data/languageResources/phoneLanguages.ts +0 -14
- package/data/languages.json +0 -7045
- package/data/languages.ts +0 -4
- package/data/mediaDurations.json +0 -32364
- package/data/mediaDurations.ts +0 -4
- package/data/notification.json +0 -69
- package/data/notification.ts +0 -4
- package/data/numeralMaps.json +0 -26
- package/data/numeralMaps.ts +0 -4
- package/data/orphanedBibleTexts.json +0 -2747
- package/data/questions.json +0 -317
- package/data/questions.ts +0 -4
- package/data/questionsCurriculums.json +0 -753
- package/data/questionsCurriculums.ts +0 -4
- package/data/releaseNotes.json +0 -2381
- package/data/releaseNotes.ts +0 -4
- package/data/schemas/appTranslations.schema.json +0 -802
- package/data/schemas/areas.schema.json +0 -76
- package/data/schemas/aslTimestamps.schema.json +0 -59
- package/data/schemas/bibleAudios.schema.json +0 -37
- package/data/schemas/bibleBooks.schema.json +0 -112
- package/data/schemas/bibleChapters.schema.json +0 -61
- package/data/schemas/bibleStatuses.schema.json +0 -41
- package/data/schemas/bibleTexts.schema.json +0 -60
- package/data/schemas/clones.schema.json +0 -63
- package/data/schemas/countries.schema.json +0 -84
- package/data/schemas/foundationsCurriculums.schema.json +0 -20
- package/data/schemas/introductionTranslations.schema.json +0 -101
- package/data/schemas/languages.schema.json +0 -365
- package/data/schemas/mediaDurations.schema.json +0 -41
- package/data/schemas/notification.schema.json +0 -111
- package/data/schemas/numeralMaps.schema.json +0 -57
- package/data/schemas/questionTranslations.schema.json +0 -20
- package/data/schemas/questions.schema.json +0 -29
- package/data/schemas/questionsCurriculums.schema.json +0 -34
- package/data/schemas/releaseNotes.schema.json +0 -21
- package/data/schemas/screenshots.schema.json +0 -23
- package/data/schemas/setTranslations.schema.json +0 -70
- package/data/schemas/sets.schema.json +0 -109
- package/data/schemas/topicsCurriculums.schema.json +0 -20
- package/data/screenshots.json +0 -17
- package/data/screenshots.ts +0 -4
- package/data/sets.json +0 -12258
- package/data/sets.ts +0 -4
- package/data/specialIds.json +0 -72
- package/data/specialIds.ts +0 -19
- package/data/timings/som.json +0 -9150
- package/data/topicsCurriculums.json +0 -131
- package/data/topicsCurriculums.ts +0 -4
- package/data/typescript/appTranslations.ts +0 -322
- package/data/typescript/areas.ts +0 -45
- package/data/typescript/aslTimestamps.ts +0 -36
- package/data/typescript/bibleAudioAvailableChapters.ts +0 -35
- package/data/typescript/bibleAudios.ts +0 -32
- package/data/typescript/bibleBookNames.ts +0 -97
- package/data/typescript/bibleBooks.ts +0 -63
- package/data/typescript/bibleChapters.ts +0 -40
- package/data/typescript/bibleStatuses.ts +0 -54
- package/data/typescript/bibleTextAvailableChapters.ts +0 -35
- package/data/typescript/bibleTexts.ts +0 -63
- package/data/typescript/clones.ts +0 -35
- package/data/typescript/countries.ts +0 -152
- package/data/typescript/foundationsCurriculums.ts +0 -15
- package/data/typescript/introductionTranslations.ts +0 -60
- package/data/typescript/languages.ts +0 -369
- package/data/typescript/mediaDurations.ts +0 -89
- package/data/typescript/notification.ts +0 -189
- package/data/typescript/numeralMaps.ts +0 -74
- package/data/typescript/questionTranslations.ts +0 -6
- package/data/typescript/questions.ts +0 -25
- package/data/typescript/questionsCurriculums.ts +0 -26
- package/data/typescript/releaseNotes.ts +0 -10
- package/data/typescript/screenshots.ts +0 -52
- package/data/typescript/setTranslations.ts +0 -39
- package/data/typescript/sets.ts +0 -105
- package/data/typescript/topicsCurriculums.ts +0 -15
- package/data/youtube/playlists.json +0 -28
- package/data/youtube/videos.json +0 -262
- package/data/youtube/videos.ts +0 -2
- package/functions/activeCampaign.ts +0 -127
- package/functions/bibleChapterUtils.ts +0 -241
- package/functions/crowdin.ts +0 -51
- package/functions/languages.ts +0 -284
- package/functions/scripturePassages.ts +0 -368
- package/functions/sets.ts +0 -495
- package/translations/appTranslations.json +0 -10239
- package/translations/appTranslations.ts +0 -4
- package/translations/introductionTranslations.json +0 -422
- package/translations/introductionTranslations.ts +0 -4
- package/translations/questionTranslations.json +0 -1472
- package/translations/questionTranslations.ts +0 -4
- package/translations/setTranslations.json +0 -30257
- package/translations/setTranslations.ts +0 -4
- package/translations/spokenQuestionTranslations.json +0 -1472
- package/types/analytics.ts +0 -147
- package/types/completions.ts +0 -9
- package/types/feedback.ts +0 -27
- package/types/languages.ts +0 -37
- package/types/notifications.ts +0 -37
- package/types/sets.ts +0 -84
- package/types/users.ts +0 -162
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
{
|
|
2
|
+
"aeb.ara.03.009.001.1080.mp4": "dFcK1eSjua4",
|
|
3
|
+
"aeb.ara.03.009.002.1080.mp4": "qlKJlh7Eoy4",
|
|
4
|
+
"aeb.ara.03.009.003.1080.mp4": "SzpgbF6ZBGo",
|
|
5
|
+
"aeb.ara.03.009.004.1080.mp4": "kcTTdkoXmLI",
|
|
6
|
+
"aeb.ara.03.009.005.1080.mp4": "S9JNjdBotTQ",
|
|
7
|
+
"aeb.ara.03.009.006.1080.mp4": "hvzAxL-sEu8",
|
|
8
|
+
"aeb.ara.03.009.007.1080.mp4": "janHbM6wNlg",
|
|
9
|
+
"aeb.ara.03.009.008.1080.mp4": "DaFDK-m9rcc",
|
|
10
|
+
"aeb.ara.03.009.009.1080.mp4": "GdFSLhQ5zjo",
|
|
11
|
+
"aeb.ara.03.009.010.1080.mp4": "dXEWeLg9ync",
|
|
12
|
+
"afb.ara.03.009.001.1080.mp4": "GciA3FqMMjo",
|
|
13
|
+
"afb.ara.03.009.002.1080.mp4": "5H736Ur4V9A",
|
|
14
|
+
"afb.ara.03.009.003.1080.mp4": "6Jrq8uS8LTE",
|
|
15
|
+
"afb.ara.03.009.004.1080.mp4": "hX4Ah0RaqXU",
|
|
16
|
+
"afb.ara.03.009.005.1080.mp4": "UUtWGBkkbe8",
|
|
17
|
+
"afb.ara.03.009.006.1080.mp4": "leILIB8giis",
|
|
18
|
+
"afb.ara.03.009.007.1080.mp4": "cqBWHj3frBM",
|
|
19
|
+
"afb.ara.03.009.008.1080.mp4": "iofXOtDSaDU",
|
|
20
|
+
"afb.ara.03.009.009.1080.mp4": "oae20bYMysI",
|
|
21
|
+
"afb.ara.03.009.010.1080.mp4": "3O8Ic7oMeWQ",
|
|
22
|
+
"ais.ara.03.009.001.1080.mp4": "vTCWxqU9Yg0",
|
|
23
|
+
"ais.ara.03.009.002.1080.mp4": "VRnAgKQt1ac",
|
|
24
|
+
"ais.ara.03.009.003.1080.mp4": "ppPOnHebMOY",
|
|
25
|
+
"ais.ara.03.009.004.1080.mp4": "KpKTibOcopE",
|
|
26
|
+
"ais.ara.03.009.005.1080.mp4": "5cWaSnxLTI8",
|
|
27
|
+
"ais.ara.03.009.006.1080.mp4": "hgtGel-VO08",
|
|
28
|
+
"ais.ara.03.009.007.1080.mp4": "mLsy0lb8H-w",
|
|
29
|
+
"ais.ara.03.009.008.1080.mp4": "jvsI90oe2ts",
|
|
30
|
+
"ais.ara.03.009.009.1080.mp4": "bHu5kV0eIjI",
|
|
31
|
+
"ais.ara.03.009.010.1080.mp4": "unspi08hu_I",
|
|
32
|
+
"apa.ara.03.009.001.1080.mp4": "qpN6eUUJTN4",
|
|
33
|
+
"apa.ara.03.009.002.1080.mp4": "23kTw6lX5Wo",
|
|
34
|
+
"apa.ara.03.009.003.1080.mp4": "HAUGlAbNt3I",
|
|
35
|
+
"apa.ara.03.009.004.1080.mp4": "WFEOwjqWaDk",
|
|
36
|
+
"apa.ara.03.009.005.1080.mp4": "qAHl7EOHkhk",
|
|
37
|
+
"apa.ara.03.009.006.1080.mp4": "Mq-Q8-jscns",
|
|
38
|
+
"apa.ara.03.009.007.1080.mp4": "uMmHltTcTKE",
|
|
39
|
+
"apa.ara.03.009.008.1080.mp4": "l9HkPme9ncU",
|
|
40
|
+
"apa.ara.03.009.009.1080.mp4": "rdz6VEMZNns",
|
|
41
|
+
"apa.ara.03.009.010.1080.mp4": "bgGaPVjukTQ",
|
|
42
|
+
"apc.ara.03.009.001.1080.mp4": "I9MW-tP5yLY",
|
|
43
|
+
"apc.ara.03.009.002.1080.mp4": "bnhVJqSPA1s",
|
|
44
|
+
"apc.ara.03.009.003.1080.mp4": "dpYicxrURiE",
|
|
45
|
+
"apc.ara.03.009.004.1080.mp4": "SyZkxQhLzZU",
|
|
46
|
+
"apc.ara.03.009.005.1080.mp4": "ftUpqYs5fRE",
|
|
47
|
+
"apc.ara.03.009.006.1080.mp4": "HIL6uiKI6Kg",
|
|
48
|
+
"apc.ara.03.009.007.1080.mp4": "m-6vizZ3zZg",
|
|
49
|
+
"apc.ara.03.009.008.1080.mp4": "pD8GVTzoKco",
|
|
50
|
+
"apc.ara.03.009.009.1080.mp4": "wsWOsX3DGj8",
|
|
51
|
+
"apc.ara.03.009.010.1080.mp4": "6mWFlwor92E",
|
|
52
|
+
"ary.ary.03.009.001.1080.mp4": "JXtaWsZkj_c",
|
|
53
|
+
"ary.ary.03.009.002.1080.mp4": "TEuT0OdtoKQ",
|
|
54
|
+
"ary.ary.03.009.003.1080.mp4": "CqWYpjKc7Qk",
|
|
55
|
+
"ary.ary.03.009.004.1080.mp4": "LOJs-htN90Y",
|
|
56
|
+
"ary.ary.03.009.005.1080.mp4": "EnLvEbGPYx4",
|
|
57
|
+
"ary.ary.03.009.006.1080.mp4": "iEg8RCJhcz4",
|
|
58
|
+
"ary.ary.03.009.007.1080.mp4": "Qn0A8Tmi2nc",
|
|
59
|
+
"ary.ary.03.009.008.1080.mp4": "I4YTJkkOaCk",
|
|
60
|
+
"ary.ary.03.009.009.1080.mp4": "s61BVTUW8Qs",
|
|
61
|
+
"ary.ary.03.009.010.1080.mp4": "g2GRAHuRmgA",
|
|
62
|
+
"arz.ara.03.009.001.1080.mp4": "WVyf0yfqoh8",
|
|
63
|
+
"arz.ara.03.009.002.1080.mp4": "jhfrzH0ZaXM",
|
|
64
|
+
"arz.ara.03.009.003.1080.mp4": "WWHt6WhRxRs",
|
|
65
|
+
"arz.ara.03.009.004.1080.mp4": "38-StdE7znM",
|
|
66
|
+
"arz.ara.03.009.005.1080.mp4": "O8Oep7I_sSQ",
|
|
67
|
+
"arz.ara.03.009.006.1080.mp4": "_wd9RaO0vFw",
|
|
68
|
+
"arz.ara.03.009.007.1080.mp4": "YnBQjlj6R2s",
|
|
69
|
+
"arz.ara.03.009.008.1080.mp4": "53FFgfW12pY",
|
|
70
|
+
"arz.ara.03.009.009.1080.mp4": "dBm53hNjkHU",
|
|
71
|
+
"arz.ara.03.009.010.1080.mp4": "sXqs6hCqXhI",
|
|
72
|
+
"ayl.ara.03.009.001.1080.mp4": "DNH3vg5aPRo",
|
|
73
|
+
"ayl.ara.03.009.002.1080.mp4": "0xvtpB9n-wU",
|
|
74
|
+
"ayl.ara.03.009.003.1080.mp4": "2vf0Kcnv_U4",
|
|
75
|
+
"ayl.ara.03.009.004.1080.mp4": "t0tgM6U2wSI",
|
|
76
|
+
"ayl.ara.03.009.005.1080.mp4": "J3rus-kc7Bk",
|
|
77
|
+
"ayl.ara.03.009.006.1080.mp4": "B_z5AbsKON0",
|
|
78
|
+
"ayl.ara.03.009.007.1080.mp4": "0xYcC44T_Tg",
|
|
79
|
+
"ayl.ara.03.009.008.1080.mp4": "Or79vluwpPU",
|
|
80
|
+
"ayl.ara.03.009.009.1080.mp4": "69T-0jNtndg",
|
|
81
|
+
"ayl.ara.03.009.010.1080.mp4": "TKg_-pNAnak",
|
|
82
|
+
"eng.eng.03.009.001.1080.mp4": "DxIexa7xMRk",
|
|
83
|
+
"eng.eng.03.009.002.1080.mp4": "zrxr62YMBW4",
|
|
84
|
+
"eng.eng.03.009.003.1080.mp4": "8faADr1p6lQ",
|
|
85
|
+
"eng.eng.03.009.004.1080.mp4": "9WEK4m6xpWM",
|
|
86
|
+
"eng.eng.03.009.005.1080.mp4": "Qm6acVzgBDc",
|
|
87
|
+
"eng.eng.03.009.006.1080.mp4": "YAn3pYcrE4E",
|
|
88
|
+
"eng.eng.03.009.007.1080.mp4": "DrvYVC1ERg0",
|
|
89
|
+
"eng.eng.03.009.008.1080.mp4": "MPnjSJ13JwA",
|
|
90
|
+
"eng.eng.03.009.009.1080.mp4": "tPiFeIfr-m8",
|
|
91
|
+
"eng.eng.03.009.010.1080.mp4": "MRTQ0gACv04",
|
|
92
|
+
"fra.fra.03.009.001.1080.mp4": "WUKOlWoOZ_c",
|
|
93
|
+
"fra.fra.03.009.002.1080.mp4": "MndcXkkwNmo",
|
|
94
|
+
"fra.fra.03.009.003.1080.mp4": "oMvtBpAx5es",
|
|
95
|
+
"fra.fra.03.009.004.1080.mp4": "JeKurCUNkno",
|
|
96
|
+
"fra.fra.03.009.005.1080.mp4": "AsJoyldBPzo",
|
|
97
|
+
"fra.fra.03.009.006.1080.mp4": "gjGpSTY0Tco",
|
|
98
|
+
"fra.fra.03.009.007.1080.mp4": "S7-i_1VuX1A",
|
|
99
|
+
"fra.fra.03.009.008.1080.mp4": "KXzZHgFoW08",
|
|
100
|
+
"fra.fra.03.009.009.1080.mp4": "_xa2t4MYEIM",
|
|
101
|
+
"fra.fra.03.009.010.1080.mp4": "HIp0nlk02RI",
|
|
102
|
+
"hic.hin.03.009.001.1080.mp4": "RRNaarmkFVE",
|
|
103
|
+
"hic.hin.03.009.002.1080.mp4": "EYPpbtejFY0",
|
|
104
|
+
"hic.hin.03.009.003.1080.mp4": "FpUspFzfn7o",
|
|
105
|
+
"hic.hin.03.009.004.1080.mp4": "gasN-4BNMUU",
|
|
106
|
+
"hic.hin.03.009.005.1080.mp4": "TYz9iUf3teQ",
|
|
107
|
+
"hic.hin.03.009.006.1080.mp4": "dNHjMnHXHrA",
|
|
108
|
+
"hic.hin.03.009.007.1080.mp4": "4aQHzQP4HQA",
|
|
109
|
+
"hic.hin.03.009.008.1080.mp4": "cw6v5Y-PBSE",
|
|
110
|
+
"hic.hin.03.009.009.1080.mp4": "gyLC_g4gcsw",
|
|
111
|
+
"hic.hin.03.009.010.1080.mp4": "1SfKZHh8bkQ",
|
|
112
|
+
"hin.hin.03.009.001.1080.mp4": "bBUidIjNRQ8",
|
|
113
|
+
"hin.hin.03.009.002.1080.mp4": "9YRT4F2Ui0Y",
|
|
114
|
+
"hin.hin.03.009.003.1080.mp4": "HrNfxSYkUvc",
|
|
115
|
+
"hin.hin.03.009.004.1080.mp4": "hwmyIgrRRiI",
|
|
116
|
+
"hin.hin.03.009.005.1080.mp4": "iIrpuFSZGag",
|
|
117
|
+
"hin.hin.03.009.006.1080.mp4": "MR7z2i65Clw",
|
|
118
|
+
"hin.hin.03.009.007.1080.mp4": "fa28wMUuycI",
|
|
119
|
+
"hin.hin.03.009.008.1080.mp4": "MB8Dkx7L4sE",
|
|
120
|
+
"hin.hin.03.009.009.1080.mp4": "PeZcYLX4qnI",
|
|
121
|
+
"hin.hin.03.009.010.1080.mp4": "RH65gD0SkIQ",
|
|
122
|
+
"khm.khm.03.009.001.1080.mp4": "MGwtvmJlty0",
|
|
123
|
+
"khm.khm.03.009.002.1080.mp4": "XX2HZteTsdc",
|
|
124
|
+
"khm.khm.03.009.003.1080.mp4": "AwiexkffmTM",
|
|
125
|
+
"khm.khm.03.009.004.1080.mp4": "6Xj537vv6is",
|
|
126
|
+
"khm.khm.03.009.005.1080.mp4": "MUkOlrW91iE",
|
|
127
|
+
"khm.khm.03.009.006.1080.mp4": "DdQtSTOwGss",
|
|
128
|
+
"khm.khm.03.009.007.1080.mp4": "OVIX828pqXM",
|
|
129
|
+
"khm.khm.03.009.008.1080.mp4": "2AscxJWsbgk",
|
|
130
|
+
"khm.khm.03.009.009.1080.mp4": "Py7KldSBX_A",
|
|
131
|
+
"khm.khm.03.009.010.1080.mp4": "eq5fiLpBXOk",
|
|
132
|
+
"ron.ron.03.009.001.1080.mp4": "S1LDE9Mr0I4",
|
|
133
|
+
"ron.ron.03.009.002.1080.mp4": "M5Q_N8U6BAs",
|
|
134
|
+
"ron.ron.03.009.003.1080.mp4": "7ZgTHaYnVeQ",
|
|
135
|
+
"ron.ron.03.009.004.1080.mp4": "g6gIGLE9dEA",
|
|
136
|
+
"ron.ron.03.009.005.1080.mp4": "zCgNgFiAcLI",
|
|
137
|
+
"ron.ron.03.009.006.1080.mp4": "scUeJJdulXs",
|
|
138
|
+
"ron.ron.03.009.007.1080.mp4": "zSZqiMMldRQ",
|
|
139
|
+
"ron.ron.03.009.008.1080.mp4": "Xvear1gXUKc",
|
|
140
|
+
"ron.ron.03.009.009.1080.mp4": "wvlWELhyYtE",
|
|
141
|
+
"ron.ron.03.009.010.1080.mp4": "-Nc1VJCuffU",
|
|
142
|
+
"shf.shi.03.009.001.1080.mp4": "h48SaQTm2zQ",
|
|
143
|
+
"shf.shi.03.009.002.1080.mp4": "qvtJYGNUCiQ",
|
|
144
|
+
"shf.shi.03.009.003.1080.mp4": "VRVTlD3Lxnc",
|
|
145
|
+
"shf.shi.03.009.004.1080.mp4": "tSXwf8FCYJw",
|
|
146
|
+
"shf.shi.03.009.005.1080.mp4": "F70e8ct-l9Y",
|
|
147
|
+
"shf.shi.03.009.006.1080.mp4": "jayFaqrGKuY",
|
|
148
|
+
"shf.shi.03.009.007.1080.mp4": "Ydx2sMftBws",
|
|
149
|
+
"shf.shi.03.009.008.1080.mp4": "kF--bNaq7lE",
|
|
150
|
+
"shf.shi.03.009.009.1080.mp4": "om8NoFX5Sss",
|
|
151
|
+
"shf.shi.03.009.010.1080.mp4": "vRUo_7bMNHo",
|
|
152
|
+
"shi.shi.03.009.001.1080.mp4": "LG2fIuUnbVc",
|
|
153
|
+
"shi.shi.03.009.002.1080.mp4": "6aotdbxjosE",
|
|
154
|
+
"shi.shi.03.009.003.1080.mp4": "UtGVARNrLbM",
|
|
155
|
+
"shi.shi.03.009.004.1080.mp4": "0JEIVZPwzfw",
|
|
156
|
+
"shi.shi.03.009.005.1080.mp4": "n1f4b-th6BM",
|
|
157
|
+
"shi.shi.03.009.006.1080.mp4": "uv_7KWR_rUI",
|
|
158
|
+
"shi.shi.03.009.007.1080.mp4": "NJ0400hMib8",
|
|
159
|
+
"shi.shi.03.009.008.1080.mp4": "Wa8-ud1eZ54",
|
|
160
|
+
"shi.shi.03.009.009.1080.mp4": "VgMKkO7uUVE",
|
|
161
|
+
"shi.shi.03.009.010.1080.mp4": "PVbE_Gh9ZSc",
|
|
162
|
+
"spa.spa.03.009.001.1080.mp4": "3Rg3Z4--emw",
|
|
163
|
+
"spa.spa.03.009.002.1080.mp4": "s5e9B8M-RzQ",
|
|
164
|
+
"spa.spa.03.009.003.1080.mp4": "IARwP6quJBM",
|
|
165
|
+
"spa.spa.03.009.004.1080.mp4": "jAdXX9jqcbA",
|
|
166
|
+
"spa.spa.03.009.005.1080.mp4": "WUrATEqlkR4",
|
|
167
|
+
"spa.spa.03.009.006.1080.mp4": "APZAwzfRr1I",
|
|
168
|
+
"spa.spa.03.009.007.1080.mp4": "V_SJ3GwtLRE",
|
|
169
|
+
"spa.spa.03.009.008.1080.mp4": "ZXfUhoeFLcU",
|
|
170
|
+
"spa.spa.03.009.009.1080.mp4": "MWxssi1eoqc",
|
|
171
|
+
"spa.spa.03.009.010.1080.mp4": "ynLBCcvx6ko",
|
|
172
|
+
"swe.swe.03.009.001.1080.mp4": "pin1kwuuQXg",
|
|
173
|
+
"swe.swe.03.009.002.1080.mp4": "t7kom6vhyP0",
|
|
174
|
+
"swe.swe.03.009.003.1080.mp4": "jV72mpv2Y48",
|
|
175
|
+
"swe.swe.03.009.004.1080.mp4": "XBao1xd5qDM",
|
|
176
|
+
"swe.swe.03.009.005.1080.mp4": "zdZO5Lde0wA",
|
|
177
|
+
"swe.swe.03.009.006.1080.mp4": "QzJshpukUwU",
|
|
178
|
+
"swe.swe.03.009.007.1080.mp4": "CsDFPrgfLNE",
|
|
179
|
+
"swe.swe.03.009.008.1080.mp4": "0KhjaqdDwvQ",
|
|
180
|
+
"swe.swe.03.009.009.1080.mp4": "B46fL-wvFYw",
|
|
181
|
+
"swe.swe.03.009.010.1080.mp4": "SZb4VAAX_WY",
|
|
182
|
+
"tur.tur.03.009.001.1080.mp4": "uZbm0PTY59I",
|
|
183
|
+
"tur.tur.03.009.002.1080.mp4": "tPUP9SJ-QwI",
|
|
184
|
+
"tur.tur.03.009.003.1080.mp4": "Q5cb6yaCUds",
|
|
185
|
+
"tur.tur.03.009.004.1080.mp4": "iP9y5mBQGxs",
|
|
186
|
+
"tur.tur.03.009.005.1080.mp4": "6f1rQFxdAKA",
|
|
187
|
+
"tur.tur.03.009.006.1080.mp4": "lYN3Gas1bCc",
|
|
188
|
+
"tur.tur.03.009.007.1080.mp4": "y55uum0oHBM",
|
|
189
|
+
"tur.tur.03.009.008.1080.mp4": "WI9kRE8aCOc",
|
|
190
|
+
"tur.tur.03.009.009.1080.mp4": "an59LRhUgaE",
|
|
191
|
+
"tur.tur.03.009.010.1080.mp4": "WN8pKrtyXGE",
|
|
192
|
+
"tzm.ara.03.009.001.1080.mp4": "mgxHzCJ0iHQ",
|
|
193
|
+
"tzm.ara.03.009.002.1080.mp4": "DLEeGAvEtec",
|
|
194
|
+
"tzm.ara.03.009.003.1080.mp4": "n8SVUGnzdSo",
|
|
195
|
+
"tzm.ara.03.009.004.1080.mp4": "8lCFrWH4AsQ",
|
|
196
|
+
"tzm.ara.03.009.005.1080.mp4": "U-YFTHg0CY0",
|
|
197
|
+
"tzm.ara.03.009.006.1080.mp4": "Os-IpNQ7MNM",
|
|
198
|
+
"tzm.ara.03.009.007.1080.mp4": "_vf4W2rrETk",
|
|
199
|
+
"tzm.ara.03.009.008.1080.mp4": "vMqkUTNjJ3s",
|
|
200
|
+
"tzm.ara.03.009.009.1080.mp4": "D0P-j9DlEEw",
|
|
201
|
+
"tzm.ara.03.009.010.1080.mp4": "WJ78izyn12w",
|
|
202
|
+
"tzm.ary.03.009.001.1080.mp4": "SGW0l5WwWzI",
|
|
203
|
+
"tzm.ary.03.009.002.1080.mp4": "AfzSpwDIqOM",
|
|
204
|
+
"tzm.ary.03.009.003.1080.mp4": "PZV-0ADfEA4",
|
|
205
|
+
"tzm.ary.03.009.004.1080.mp4": "E34gHf_qeSY",
|
|
206
|
+
"tzm.ary.03.009.005.1080.mp4": "rMWFMzuFrLA",
|
|
207
|
+
"tzm.ary.03.009.006.1080.mp4": "LURHJe-C-PY",
|
|
208
|
+
"tzm.ary.03.009.007.1080.mp4": "cid-RqyfR0o",
|
|
209
|
+
"tzm.ary.03.009.008.1080.mp4": "VKhlHTCsNoo",
|
|
210
|
+
"tzm.ary.03.009.009.1080.mp4": "v0UKTVK3xIc",
|
|
211
|
+
"tzm.ary.03.009.010.1080.mp4": "RdQn8LVJQ3A",
|
|
212
|
+
"tzm.eng.03.009.001.1080.mp4": "c0b-SpssbF4",
|
|
213
|
+
"tzm.eng.03.009.002.1080.mp4": "gAj65Zp-kmo",
|
|
214
|
+
"tzm.eng.03.009.003.1080.mp4": "y4DRad8u8Ps",
|
|
215
|
+
"tzm.eng.03.009.004.1080.mp4": "2bnrlBc9YPk",
|
|
216
|
+
"tzm.eng.03.009.005.1080.mp4": "ey79535FkSo",
|
|
217
|
+
"tzm.eng.03.009.006.1080.mp4": "s2bCJ9_nAIs",
|
|
218
|
+
"tzm.eng.03.009.007.1080.mp4": "CdRSIGf6jJc",
|
|
219
|
+
"tzm.eng.03.009.008.1080.mp4": "nqF_uwot-9Q",
|
|
220
|
+
"tzm.eng.03.009.009.1080.mp4": "9S0H15BYITY",
|
|
221
|
+
"tzm.eng.03.009.010.1080.mp4": "lhn0PvTX9nY",
|
|
222
|
+
"tzm.fra.03.009.001.1080.mp4": "8ATpaR3LZEY",
|
|
223
|
+
"tzm.fra.03.009.002.1080.mp4": "ZzPL4syuLyg",
|
|
224
|
+
"tzm.fra.03.009.003.1080.mp4": "fXpKxptysG8",
|
|
225
|
+
"tzm.fra.03.009.004.1080.mp4": "s8qJBlUZq1g",
|
|
226
|
+
"tzm.fra.03.009.005.1080.mp4": "a45bnUcVPBE",
|
|
227
|
+
"tzm.fra.03.009.006.1080.mp4": "X36T78A_Wz0",
|
|
228
|
+
"tzm.fra.03.009.007.1080.mp4": "50A9xSZJLsI",
|
|
229
|
+
"tzm.fra.03.009.008.1080.mp4": "HcA-dbBadoA",
|
|
230
|
+
"tzm.fra.03.009.009.1080.mp4": "wXisUXfthnU",
|
|
231
|
+
"tzm.fra.03.009.010.1080.mp4": "B3ndi20MbEU",
|
|
232
|
+
"rus.rus.03.009.001.1080.mp4": "H9cHu7c0xkU",
|
|
233
|
+
"rus.rus.03.009.002.1080.mp4": "VTH1NNET8w0",
|
|
234
|
+
"rus.rus.03.009.003.1080.mp4": "WO6MlCZ7lt4",
|
|
235
|
+
"rus.rus.03.009.004.1080.mp4": "PFN463wwzC0",
|
|
236
|
+
"rus.rus.03.009.005.1080.mp4": "dd7wfeLMBsU",
|
|
237
|
+
"rus.rus.03.009.006.1080.mp4": "vDvUbfWT34A",
|
|
238
|
+
"rus.rus.03.009.007.1080.mp4": "36Wb_WwV_F0",
|
|
239
|
+
"rus.rus.03.009.008.1080.mp4": "owe2aR1kvzw",
|
|
240
|
+
"rus.rus.03.009.009.1080.mp4": "gext84YEANs",
|
|
241
|
+
"rus.rus.03.009.010.1080.mp4": "hP9IysgcDI4",
|
|
242
|
+
"por.por.03.009.001.1080.mp4": "OEovxN59MEM",
|
|
243
|
+
"por.por.03.009.002.1080.mp4": "qNb_nBjdhbA",
|
|
244
|
+
"por.por.03.009.003.1080.mp4": "ocsSY_KWAWk",
|
|
245
|
+
"por.por.03.009.004.1080.mp4": "LFmGVVsZl6A",
|
|
246
|
+
"por.por.03.009.005.1080.mp4": "GDnpHPAxpOs",
|
|
247
|
+
"por.por.03.009.006.1080.mp4": "A0eJnewEkw0",
|
|
248
|
+
"por.por.03.009.007.1080.mp4": "BlP5BYPkRxY",
|
|
249
|
+
"por.por.03.009.008.1080.mp4": "OPDf7SkTxfo",
|
|
250
|
+
"por.por.03.009.009.1080.mp4": "t9gNQX6nYSM",
|
|
251
|
+
"por.por.03.009.010.1080.mp4": "fv83QTtZw8c",
|
|
252
|
+
"mfe.fra.03.009.001.1080.mp4": "ZoOXZPAfKNg",
|
|
253
|
+
"mfe.fra.03.009.002.1080.mp4": "OYlbIDAA1DE",
|
|
254
|
+
"mfe.fra.03.009.003.1080.mp4": "k-5LzA1a-5g",
|
|
255
|
+
"mfe.fra.03.009.004.1080.mp4": "PyRsVuhyB4I",
|
|
256
|
+
"mfe.fra.03.009.005.1080.mp4": "w3uvW1oIzq8",
|
|
257
|
+
"mfe.fra.03.009.006.1080.mp4": "8j7ispGTF-o",
|
|
258
|
+
"mfe.fra.03.009.007.1080.mp4": "VYiclt582T0",
|
|
259
|
+
"mfe.fra.03.009.008.1080.mp4": "DQo0kWNaMS4",
|
|
260
|
+
"mfe.fra.03.009.009.1080.mp4": "UlHwZEG5e3s",
|
|
261
|
+
"mfe.fra.03.009.010.1080.mp4": "cIrZhTwwPEc"
|
|
262
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
declare const listNumbers: {
|
|
2
|
+
newsletter: number;
|
|
3
|
+
volunteer: number;
|
|
4
|
+
'dm-course': number;
|
|
5
|
+
};
|
|
6
|
+
export declare function addToACList(token: string, baseUrl: string, email: string, list: keyof typeof listNumbers, name?: string): Promise<void>;
|
|
7
|
+
export declare function getContactsInList(token: string, baseUrl: string, list: keyof typeof listNumbers, limit?: number): Promise<string[]>;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.addToACList = addToACList;
|
|
7
|
+
exports.getContactsInList = getContactsInList;
|
|
8
|
+
const signale_1 = __importDefault(require("signale"));
|
|
9
|
+
const listNumbers = {
|
|
10
|
+
newsletter: 3,
|
|
11
|
+
volunteer: 5,
|
|
12
|
+
'dm-course': 9,
|
|
13
|
+
};
|
|
14
|
+
async function addToACList(token, baseUrl, email, list, name) {
|
|
15
|
+
const headers = { 'Api-Token': token, 'Content-Type': 'application/json' };
|
|
16
|
+
const url = `${baseUrl}/api/3`;
|
|
17
|
+
const findContact = await fetch(`${url}/contacts?email=${email}`, {
|
|
18
|
+
method: 'GET',
|
|
19
|
+
headers,
|
|
20
|
+
});
|
|
21
|
+
const findContactJson = await findContact.json();
|
|
22
|
+
if (!findContact.ok) {
|
|
23
|
+
throw new Error(`Failed to retrieve contact with ${email}. ${JSON.stringify(findContactJson)}`);
|
|
24
|
+
}
|
|
25
|
+
let contactId;
|
|
26
|
+
if (findContactJson.contacts.length > 0) {
|
|
27
|
+
contactId = findContactJson.contacts[0].id;
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
const createContact = await fetch(`${url}/contacts`, {
|
|
31
|
+
method: 'POST',
|
|
32
|
+
headers,
|
|
33
|
+
body: JSON.stringify({
|
|
34
|
+
contact: { email, name },
|
|
35
|
+
}),
|
|
36
|
+
});
|
|
37
|
+
const createContactJson = await createContact.json();
|
|
38
|
+
if (!createContact.ok) {
|
|
39
|
+
throw new Error(`Failed to create new contact with ${email}. ${JSON.stringify(createContactJson)}`);
|
|
40
|
+
}
|
|
41
|
+
signale_1.default.success(`Created new AC contact with email ${email}.`);
|
|
42
|
+
contactId = createContactJson.contact.id;
|
|
43
|
+
}
|
|
44
|
+
const subscribe = await fetch(`${url}/contactLists`, {
|
|
45
|
+
method: 'POST',
|
|
46
|
+
headers: { 'Api-Token': token, 'Content-Type': 'application/json' },
|
|
47
|
+
body: JSON.stringify({
|
|
48
|
+
contactList: {
|
|
49
|
+
list: listNumbers[list],
|
|
50
|
+
status: 1,
|
|
51
|
+
contact: contactId,
|
|
52
|
+
},
|
|
53
|
+
}),
|
|
54
|
+
});
|
|
55
|
+
const subscribeJson = await subscribe.json();
|
|
56
|
+
if (!subscribe.ok) {
|
|
57
|
+
throw new Error(`Failed to add contact to list ${list}. Response: ${JSON.stringify(subscribeJson)}`);
|
|
58
|
+
}
|
|
59
|
+
signale_1.default.success(`${email} added to AC list ${list}.`);
|
|
60
|
+
}
|
|
61
|
+
async function getContactsInList(token, baseUrl, list, limit = 100) {
|
|
62
|
+
const headers = { 'Api-Token': token, 'Content-Type': 'application/json' };
|
|
63
|
+
const url = `${baseUrl}/api/3`;
|
|
64
|
+
const allEmails = [];
|
|
65
|
+
let lastContactId = null;
|
|
66
|
+
let hasMoreContacts = true;
|
|
67
|
+
while (hasMoreContacts) {
|
|
68
|
+
let requestUrl = `${url}/contacts?listid=${listNumbers[list]}&orders[id]=ASC&limit=${limit}`;
|
|
69
|
+
if (lastContactId) {
|
|
70
|
+
requestUrl += `&id_greater=${lastContactId}`;
|
|
71
|
+
}
|
|
72
|
+
const response = await fetch(requestUrl, {
|
|
73
|
+
method: 'GET',
|
|
74
|
+
headers,
|
|
75
|
+
});
|
|
76
|
+
const data = await response.json();
|
|
77
|
+
if (!response.ok) {
|
|
78
|
+
throw new Error(`Failed to retrieve contacts in list ${list}. ${JSON.stringify(data)}`);
|
|
79
|
+
}
|
|
80
|
+
const contacts = data.contacts || [];
|
|
81
|
+
if (contacts.length === 0) {
|
|
82
|
+
hasMoreContacts = false;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
// Add emails from this batch
|
|
86
|
+
const emails = contacts.map((contact) => contact.email);
|
|
87
|
+
allEmails.push(...emails);
|
|
88
|
+
// Update the last contact ID for next iteration
|
|
89
|
+
lastContactId = contacts[contacts.length - 1].id;
|
|
90
|
+
// If we got fewer contacts than the limit, we've reached the end
|
|
91
|
+
if (contacts.length < limit) {
|
|
92
|
+
hasMoreContacts = false;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return allEmails;
|
|
97
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { BibleStatuses } from '../data/typescript/bibleStatuses';
|
|
2
|
+
export declare const OLD_TESTAMENT_BOOKS: Set<string>;
|
|
3
|
+
export declare const NEW_TESTAMENT_BOOKS: Set<string>;
|
|
4
|
+
/**
|
|
5
|
+
* Expands an optimized chapter list back to individual chapters Converts book
|
|
6
|
+
* names (e.g., "GEN") back to all chapters (e.g., ["GEN.1", "GEN.2", ..."])
|
|
7
|
+
* Converts testament names ("OT", "NT") back to all chapters in that testament
|
|
8
|
+
* Leaves individual chapters unchanged
|
|
9
|
+
*
|
|
10
|
+
* @param optimizedChapters - Array that may contain testament IDs, book IDs, or
|
|
11
|
+
* chapter IDs
|
|
12
|
+
* @returns Array of individual chapter IDs in canonical order
|
|
13
|
+
*/
|
|
14
|
+
export declare function getAvailableChapters(bibleId: string, type: keyof BibleStatuses[string]): string[];
|
|
15
|
+
export declare function getPercentage(bibleId: string, type: keyof BibleStatuses[string]): number;
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.NEW_TESTAMENT_BOOKS = exports.OLD_TESTAMENT_BOOKS = void 0;
|
|
7
|
+
exports.getAvailableChapters = getAvailableChapters;
|
|
8
|
+
exports.getPercentage = getPercentage;
|
|
9
|
+
const bibleChaptersList_1 = __importDefault(require("../data/bibleResources/bibleChaptersList"));
|
|
10
|
+
const bibleStatuses_1 = __importDefault(require("../data/bibleStatuses"));
|
|
11
|
+
// Old Testament books
|
|
12
|
+
exports.OLD_TESTAMENT_BOOKS = new Set([
|
|
13
|
+
'GEN',
|
|
14
|
+
'EXO',
|
|
15
|
+
'LEV',
|
|
16
|
+
'NUM',
|
|
17
|
+
'DEU',
|
|
18
|
+
'JOS',
|
|
19
|
+
'JDG',
|
|
20
|
+
'RUT',
|
|
21
|
+
'1SA',
|
|
22
|
+
'2SA',
|
|
23
|
+
'1KI',
|
|
24
|
+
'2KI',
|
|
25
|
+
'1CH',
|
|
26
|
+
'2CH',
|
|
27
|
+
'EZR',
|
|
28
|
+
'NEH',
|
|
29
|
+
'EST',
|
|
30
|
+
'JOB',
|
|
31
|
+
'PSA',
|
|
32
|
+
'PRO',
|
|
33
|
+
'ECC',
|
|
34
|
+
'SNG',
|
|
35
|
+
'ISA',
|
|
36
|
+
'JER',
|
|
37
|
+
'LAM',
|
|
38
|
+
'EZK',
|
|
39
|
+
'DAN',
|
|
40
|
+
'HOS',
|
|
41
|
+
'JOL',
|
|
42
|
+
'AMO',
|
|
43
|
+
'OBA',
|
|
44
|
+
'JON',
|
|
45
|
+
'MIC',
|
|
46
|
+
'NAM',
|
|
47
|
+
'HAB',
|
|
48
|
+
'ZEP',
|
|
49
|
+
'HAG',
|
|
50
|
+
'ZEC',
|
|
51
|
+
'MAL',
|
|
52
|
+
]);
|
|
53
|
+
// New Testament books
|
|
54
|
+
exports.NEW_TESTAMENT_BOOKS = new Set([
|
|
55
|
+
'MAT',
|
|
56
|
+
'MRK',
|
|
57
|
+
'LUK',
|
|
58
|
+
'JHN',
|
|
59
|
+
'ACT',
|
|
60
|
+
'ROM',
|
|
61
|
+
'1CO',
|
|
62
|
+
'2CO',
|
|
63
|
+
'GAL',
|
|
64
|
+
'EPH',
|
|
65
|
+
'PHP',
|
|
66
|
+
'COL',
|
|
67
|
+
'1TH',
|
|
68
|
+
'2TH',
|
|
69
|
+
'1TI',
|
|
70
|
+
'2TI',
|
|
71
|
+
'TIT',
|
|
72
|
+
'PHM',
|
|
73
|
+
'HEB',
|
|
74
|
+
'JAS',
|
|
75
|
+
'1PE',
|
|
76
|
+
'2PE',
|
|
77
|
+
'1JN',
|
|
78
|
+
'2JN',
|
|
79
|
+
'3JN',
|
|
80
|
+
'JUD',
|
|
81
|
+
'REV',
|
|
82
|
+
]);
|
|
83
|
+
const bookLengths = new Map([
|
|
84
|
+
['GEN', 50],
|
|
85
|
+
['EXO', 40],
|
|
86
|
+
['LEV', 27],
|
|
87
|
+
['NUM', 36],
|
|
88
|
+
['DEU', 34],
|
|
89
|
+
['JOS', 24],
|
|
90
|
+
['JDG', 21],
|
|
91
|
+
['RUT', 4],
|
|
92
|
+
['1SA', 31],
|
|
93
|
+
['2SA', 24],
|
|
94
|
+
['1KI', 22],
|
|
95
|
+
['2KI', 25],
|
|
96
|
+
['1CH', 29],
|
|
97
|
+
['2CH', 36],
|
|
98
|
+
['EZR', 10],
|
|
99
|
+
['NEH', 13],
|
|
100
|
+
['EST', 10],
|
|
101
|
+
['JOB', 42],
|
|
102
|
+
['PSA', 150],
|
|
103
|
+
['PRO', 31],
|
|
104
|
+
['ECC', 12],
|
|
105
|
+
['SNG', 8],
|
|
106
|
+
['ISA', 66],
|
|
107
|
+
['JER', 52],
|
|
108
|
+
['LAM', 5],
|
|
109
|
+
['EZK', 48],
|
|
110
|
+
['DAN', 12],
|
|
111
|
+
['HOS', 14],
|
|
112
|
+
['JOL', 3],
|
|
113
|
+
['AMO', 9],
|
|
114
|
+
['OBA', 1],
|
|
115
|
+
['JON', 4],
|
|
116
|
+
['MIC', 7],
|
|
117
|
+
['NAM', 3],
|
|
118
|
+
['HAB', 3],
|
|
119
|
+
['ZEP', 3],
|
|
120
|
+
['HAG', 2],
|
|
121
|
+
['ZEC', 14],
|
|
122
|
+
['MAL', 4],
|
|
123
|
+
['MAT', 28],
|
|
124
|
+
['MRK', 16],
|
|
125
|
+
['LUK', 24],
|
|
126
|
+
['JHN', 21],
|
|
127
|
+
['ACT', 28],
|
|
128
|
+
['ROM', 16],
|
|
129
|
+
['1CO', 16],
|
|
130
|
+
['2CO', 13],
|
|
131
|
+
['GAL', 6],
|
|
132
|
+
['EPH', 6],
|
|
133
|
+
['PHP', 4],
|
|
134
|
+
['COL', 4],
|
|
135
|
+
['1TH', 5],
|
|
136
|
+
['2TH', 3],
|
|
137
|
+
['1TI', 6],
|
|
138
|
+
['2TI', 4],
|
|
139
|
+
['TIT', 3],
|
|
140
|
+
['PHM', 1],
|
|
141
|
+
['HEB', 13],
|
|
142
|
+
['JAS', 5],
|
|
143
|
+
['1PE', 5],
|
|
144
|
+
['2PE', 3],
|
|
145
|
+
['1JN', 5],
|
|
146
|
+
['2JN', 1],
|
|
147
|
+
['3JN', 1],
|
|
148
|
+
['JUD', 1],
|
|
149
|
+
['REV', 22],
|
|
150
|
+
]);
|
|
151
|
+
/**
|
|
152
|
+
* Expands an optimized chapter list back to individual chapters Converts book
|
|
153
|
+
* names (e.g., "GEN") back to all chapters (e.g., ["GEN.1", "GEN.2", ..."])
|
|
154
|
+
* Converts testament names ("OT", "NT") back to all chapters in that testament
|
|
155
|
+
* Leaves individual chapters unchanged
|
|
156
|
+
*
|
|
157
|
+
* @param optimizedChapters - Array that may contain testament IDs, book IDs, or
|
|
158
|
+
* chapter IDs
|
|
159
|
+
* @returns Array of individual chapter IDs in canonical order
|
|
160
|
+
*/
|
|
161
|
+
function getAvailableChapters(bibleId, type) {
|
|
162
|
+
if (type === 'bookNames')
|
|
163
|
+
return []; // bookNames do not have chapters
|
|
164
|
+
const optimizedChapters = bibleStatuses_1.default[bibleId]?.[type] || [];
|
|
165
|
+
if (optimizedChapters.length === 0)
|
|
166
|
+
return [];
|
|
167
|
+
// Build a Set of included items for O(1) lookup
|
|
168
|
+
const includedSet = new Set(optimizedChapters);
|
|
169
|
+
// Check if we need OT/NT expansion
|
|
170
|
+
const hasOT = includedSet.has('OT');
|
|
171
|
+
const hasNT = includedSet.has('NT');
|
|
172
|
+
// If we have both OT and NT, we have the complete Bible - just return all chapters
|
|
173
|
+
if (hasOT && hasNT) {
|
|
174
|
+
return bibleChaptersList_1.default.slice();
|
|
175
|
+
}
|
|
176
|
+
// Pre-calculate which books to include
|
|
177
|
+
const includedBooks = new Set();
|
|
178
|
+
if (hasOT) {
|
|
179
|
+
exports.OLD_TESTAMENT_BOOKS.forEach((book) => includedBooks.add(book));
|
|
180
|
+
}
|
|
181
|
+
if (hasNT) {
|
|
182
|
+
exports.NEW_TESTAMENT_BOOKS.forEach((book) => includedBooks.add(book));
|
|
183
|
+
}
|
|
184
|
+
// Add individual books from the optimized list
|
|
185
|
+
for (const entry of optimizedChapters) {
|
|
186
|
+
if (entry !== 'OT' && entry !== 'NT' && !entry.includes('.')) {
|
|
187
|
+
includedBooks.add(entry);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
// Filter bibleChaptersList to only include relevant chapters
|
|
191
|
+
// This maintains canonical order without needing to sort
|
|
192
|
+
const result = [];
|
|
193
|
+
for (const chapter of bibleChaptersList_1.default) {
|
|
194
|
+
// Check if this specific chapter is included
|
|
195
|
+
if (includedSet.has(chapter)) {
|
|
196
|
+
result.push(chapter);
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
// Check if this chapter's book is included
|
|
200
|
+
const bookId = chapter.split('.')[0];
|
|
201
|
+
if (includedBooks.has(bookId)) {
|
|
202
|
+
result.push(chapter);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return result;
|
|
206
|
+
}
|
|
207
|
+
function getPercentage(bibleId, type) {
|
|
208
|
+
if (type === 'bookNames')
|
|
209
|
+
return 0; // bookNames do not have chapters
|
|
210
|
+
const optimizedChapters = bibleStatuses_1.default[bibleId]?.[type] || [];
|
|
211
|
+
let total = 0;
|
|
212
|
+
optimizedChapters.forEach((entry) => {
|
|
213
|
+
if (entry === 'OT') {
|
|
214
|
+
// All Old Testament books
|
|
215
|
+
total += 929;
|
|
216
|
+
}
|
|
217
|
+
else if (entry === 'NT') {
|
|
218
|
+
// All New Testament books
|
|
219
|
+
total += 260;
|
|
220
|
+
}
|
|
221
|
+
else if (entry.includes('.')) {
|
|
222
|
+
// It's already a chapter ID, count as 1
|
|
223
|
+
total += 1;
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
// It's a book ID, add its chapter count
|
|
227
|
+
total += bookLengths.get(entry) || 0;
|
|
228
|
+
}
|
|
229
|
+
});
|
|
230
|
+
return (total / 1189) * 100;
|
|
231
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Map of project names to their Crowdin ids. Can be retrieved by going to the
|
|
3
|
+
* project's dashboard in Crowdin and looking on the right side panel for ID:
|
|
4
|
+
* XXXXXX next to "Details".
|
|
5
|
+
*/
|
|
6
|
+
export declare const crowdinProjectIds: {
|
|
7
|
+
website: string;
|
|
8
|
+
app: string;
|
|
9
|
+
dmc: string;
|
|
10
|
+
};
|
|
11
|
+
interface DownloadTranslationsParams {
|
|
12
|
+
/** The name of the project to download translations for. */
|
|
13
|
+
project: keyof typeof crowdinProjectIds;
|
|
14
|
+
/**
|
|
15
|
+
* The folder where translations are stored. Source translations are assumed
|
|
16
|
+
* to be stored in `translationsFolder/eng/*.json`.
|
|
17
|
+
*/
|
|
18
|
+
translationsFolder: string;
|
|
19
|
+
/** The Crowdin personal access token to use for authentication. */
|
|
20
|
+
token: string;
|
|
21
|
+
}
|
|
22
|
+
/** Downloads translations from Crowdin for a given project ID and source path. */
|
|
23
|
+
export declare function downloadTranslations({ project, translationsFolder, token, }: DownloadTranslationsParams): void;
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.crowdinProjectIds = void 0;
|
|
4
|
+
exports.downloadTranslations = downloadTranslations;
|
|
5
|
+
const node_child_process_1 = require("node:child_process");
|
|
6
|
+
/**
|
|
7
|
+
* Map of project names to their Crowdin ids. Can be retrieved by going to the
|
|
8
|
+
* project's dashboard in Crowdin and looking on the right side panel for ID:
|
|
9
|
+
* XXXXXX next to "Details".
|
|
10
|
+
*/
|
|
11
|
+
exports.crowdinProjectIds = {
|
|
12
|
+
website: '698737',
|
|
13
|
+
app: '549537',
|
|
14
|
+
dmc: '663528',
|
|
15
|
+
};
|
|
16
|
+
/** Downloads translations from Crowdin for a given project ID and source path. */
|
|
17
|
+
function downloadTranslations({ project, translationsFolder, token, }) {
|
|
18
|
+
(0, node_child_process_1.spawnSync)([
|
|
19
|
+
'npx @crowdin/cli download translations',
|
|
20
|
+
`-i ${exports.crowdinProjectIds[project]}`,
|
|
21
|
+
`-s eng/*.json`,
|
|
22
|
+
// Add Crowdin token present in .env file.
|
|
23
|
+
`-T ${token}`,
|
|
24
|
+
// Set the base path for which the other paths will be relative to.
|
|
25
|
+
`--base-path="${translationsFolder}"`,
|
|
26
|
+
// Where to download translations to relative to the base path.
|
|
27
|
+
'-t "/%three_letters_code%/%original_file_name%"',
|
|
28
|
+
// Skip untranslated files to avoid downloading empty files.
|
|
29
|
+
'--skip-untranslated-files',
|
|
30
|
+
].join(' '), {
|
|
31
|
+
shell: true,
|
|
32
|
+
stdio: 'inherit',
|
|
33
|
+
});
|
|
34
|
+
}
|