waha-shared 1.0.310 → 1.0.312

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.
@@ -0,0 +1,19 @@
1
+ {
2
+ "description": "This file is auto-generated by scripts/prep. Do not edit manually.",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "type": "object",
5
+ "properties": {
6
+ "$schema": { "type": "string" },
7
+ "data": {
8
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
9
+ "type": "object",
10
+ "propertyNames": { "type": "string", "pattern": "^[a-z]{3}$" },
11
+ "additionalProperties": {
12
+ "type": "array",
13
+ "items": { "type": "string" },
14
+ "description": "Language code (3-letter ISO code) containing assets"
15
+ }
16
+ }
17
+ },
18
+ "required": ["$schema", "data"]
19
+ }
@@ -0,0 +1,3 @@
1
+ import { z } from 'zod';
2
+ export declare const LanguageAssets: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>;
3
+ export type LanguageAssets = z.infer<typeof LanguageAssets>;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LanguageAssets = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.LanguageAssets = zod_1.z.record(zod_1.z.string().regex(new RegExp('^[a-z]{3}$')), zod_1.z
6
+ .array(zod_1.z.string())
7
+ .describe('Language code (3-letter ISO code) containing assets'));
@@ -1,15 +1,9 @@
1
1
  {
2
2
  "$schema": "./releaseNotes.schema.json",
3
3
  "data": [
4
- {
5
- "version": "8.0.1",
6
- "showInApp": false,
7
- "notes": {
8
- "eng": "Language beta"
9
- }
10
- },
11
4
  {
12
5
  "version": "8.0.0",
6
+ "showInApp": true,
13
7
  "notes": {
14
8
  "eng": "This update adds Acholi, Sorani (Central Kurdish), Malagasy, and Tamil as available languages, full support for karaoke-style verse highlighting to all languages, many additional full bibles available in the full bible screen, and many behind-the-scenes fixes and improvements to help us continue to add more languages and bibles in the future.",
15
9
  "ara": "يضيف هذا التحديث لغات الأشولي، والسورانية (الكردية الوسطى)، والمالاغاشية، والتاميلية كلغات متاحة، كما يضيف دعماً كاملاً لتمييز الآيات بأسلوب الكاراوكي لجميع اللغات، والعديد من الأسفار المقدسة الكاملة الإضافية المتاحة في شاشة الكتاب المقدس الكامل، فضلاً عن إصلاحات وتحسينات عديدة في الخلفية تساعدنا على مواصلة إضافة المزيد من اللغات والأسفار المقدسة في المستقبل.",
@@ -51,8 +45,7 @@
51
45
  "ukr": "Це оновлення додає ачолі, сорані (центральнокурдську), малагасійську та тамільську мови як доступні мови, повну підтримку виділення віршів у стилі караоке для всіх мов, багато додаткових повних Біблій у розділі повної Біблії, а також численні виправлення та вдосконалення, що відбуваються у фоновому режимі, які допоможуть нам продовжувати додавати більше мов і Біблій у майбутньому.",
52
46
  "urd": "اس اپ ڈیٹ میں اچولی، سورانی (وسطی کردش)، ملاگاسی، اور تامل کو دستیاب زبانوں میں شامل کیا گیا ہے، تمام زبانوں میں کراؤکی طرز کی آیت نمایاں کرنے کی مکمل سہولت، مکمل بائبل اسکرین میں کئی اضافی مکمل بائبلیں دستیاب ہیں، اور مستقبل میں مزید زبانیں اور بائبلیں شامل کرنے میں مدد کے لیے پس پردہ بہت سی اصلاحات اور بہتری کی گئی ہیں۔",
53
47
  "zsm": "Kemas kini ini menambahkan bahasa Acholi, Sorani (Kurdish Tengah), Malagasy, dan Tamil sebagai bahasa yang tersedia, sokongan penuh untuk penyerlahan ayat gaya karaoke kepada semua bahasa, banyak lagi Alkitab lengkap yang tersedia dalam skrin Alkitab penuh, serta banyak pembaikan dan penambahbaikan di sebalik tabir untuk membantu kami terus menambahkan lebih banyak bahasa dan Alkitab pada masa hadapan."
54
- },
55
- "showInApp": true
48
+ }
56
49
  },
57
50
  {
58
51
  "version": "7.3.2",
@@ -265,8 +265,28 @@ function getLessonInfo({ lessonId, languageInfo, setInfo, t, useSpokenQuestions,
265
265
  },
266
266
  };
267
267
  }
268
- else if (setInfo.setId === specialIds_1.specialIds.dmCourseSetId ||
269
- languageId === 'ase') {
268
+ const assetVersion = languageInfo.audioAssetVersion ?? '';
269
+ const fullLessonId = `${languageId}.${lessonId}`;
270
+ const fullLessonFileName = `${fullLessonId}.mp3`;
271
+ const fullLessonPath = (0, utils_1.join)(languageId, `full_lessons${assetVersion}`, setInfo.setId, fullLessonFileName);
272
+ const full = {
273
+ id: fullLessonId,
274
+ localFileName: fullLessonFileName,
275
+ remoteFileName: fullLessonFileName,
276
+ path: fullLessonPath,
277
+ url: (0, utils_1.firebasePath)(fullLessonPath),
278
+ };
279
+ const storyId = fullLessonId + '.story';
280
+ const storyFileName = `${storyId}.mp3`;
281
+ const storyPath = (0, utils_1.join)(languageId, `full_lessons${assetVersion}`, setInfo.setId, storyFileName);
282
+ const story = {
283
+ id: storyId,
284
+ localFileName: storyFileName,
285
+ remoteFileName: storyFileName,
286
+ path: storyPath,
287
+ url: (0, utils_1.firebasePath)(storyPath),
288
+ };
289
+ if (setInfo.setId === specialIds_1.specialIds.dmCourseSetId || languageId === 'ase') {
270
290
  let video;
271
291
  let trainingVideo;
272
292
  if (languageId === 'ase') {
@@ -330,38 +350,21 @@ function getLessonInfo({ lessonId, languageInfo, setInfo, t, useSpokenQuestions,
330
350
  lessonSectionBody: thisSetTranslations?.sectionBodies?.[lessonId],
331
351
  video,
332
352
  trainingVideo,
353
+ full: lesson.s.length > 0 ? story : undefined,
354
+ story: lesson.s.length > 0 ? story : undefined,
333
355
  youtubeLink,
334
356
  passagesString,
335
357
  };
336
358
  }
337
359
  else {
338
- const assetVersion = languageInfo.audioAssetVersion ?? '';
339
- const fullLessonId = `${languageId}.${lessonId}`;
340
- const fullLessonFileName = `${fullLessonId}.mp3`;
341
- const fullLessonPath = (0, utils_1.join)(languageId, `full_lessons${assetVersion}`, setInfo.setId, fullLessonFileName);
342
- const storyId = fullLessonId + '.story';
343
- const storyFileName = `${storyId}.mp3`;
344
- const storyPath = (0, utils_1.join)(languageId, `full_lessons${assetVersion}`, setInfo.setId, storyFileName);
345
360
  return {
346
361
  type: 'dbs',
347
362
  ...baseInfo,
348
363
  fellowshipDuration,
349
364
  applicationDuration,
350
365
  passagesString,
351
- full: {
352
- id: fullLessonId,
353
- localFileName: fullLessonFileName,
354
- remoteFileName: fullLessonFileName,
355
- path: fullLessonPath,
356
- url: (0, utils_1.firebasePath)(fullLessonPath),
357
- },
358
- story: {
359
- id: storyId,
360
- localFileName: storyFileName,
361
- remoteFileName: storyFileName,
362
- path: storyPath,
363
- url: (0, utils_1.firebasePath)(storyPath),
364
- },
366
+ full,
367
+ story,
365
368
  dbsCast: {
366
369
  remoteFileName: `${languageId}.${lessonId}.1080.mp4`,
367
370
  url: (0, utils_1.firebasePath)((0, utils_1.join)(languageId, `full_lessons${assetVersion}`, setInfo.setId, `${languageId}.${lessonId}.1080.mp4`)),
@@ -72,6 +72,14 @@ export interface VideoInfo extends BaseInfo, SetInfo, Lesson {
72
72
  type: 'video';
73
73
  video: Content;
74
74
  trainingVideo: Content | undefined;
75
+ /**
76
+ * Full audio file (training-video audio + scripture + questions). Populated
77
+ * only for video lessons that have audio to play (e.g. dmCourse lessons with
78
+ * scripture passages). Video-only lessons leave this undefined.
79
+ */
80
+ full?: Content;
81
+ /** Story audio file (scripture passages only). Same population rules as `full`. */
82
+ story?: Content;
75
83
  lessonSectionHeader: string | undefined;
76
84
  lessonSectionBody: string | undefined;
77
85
  youtubeLink: string | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "waha-shared",
3
- "version": "1.0.310",
3
+ "version": "1.0.312",
4
4
  "author": "Waha",
5
5
  "dependencies": {
6
6
  "@types/signale": "^1.4.7",