waha-shared 1.0.553 → 1.0.555

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 (52) hide show
  1. package/dist/chunks/{chunk-K3ET7L2W.mjs → chunk-25H6LPID.mjs} +51 -2
  2. package/dist/chunks/{chunk-44FF5O3D.mjs → chunk-3GXMLGCF.mjs} +2 -2
  3. package/dist/chunks/{chunk-RQR7ADQ3.mjs → chunk-5JMRXTQB.mjs} +3 -1
  4. package/dist/chunks/{chunk-XA5TMOJO.mjs → chunk-6RO6HPL6.mjs} +2033 -1814
  5. package/dist/chunks/{chunk-OCE4ZKES.mjs → chunk-7WGNWNUX.mjs} +16 -16
  6. package/dist/chunks/{chunk-CNS62VOF.mjs → chunk-DCAA23B2.mjs} +18 -18
  7. package/dist/chunks/{chunk-RKEA5BP2.mjs → chunk-EACVJPMH.mjs} +8 -8
  8. package/dist/chunks/{chunk-DHR3J5ZL.mjs → chunk-FFYD6FOP.mjs} +22 -22
  9. package/dist/chunks/{chunk-7HGUA25M.mjs → chunk-IYDI5F2O.mjs} +1 -2
  10. package/dist/chunks/{chunk-PFSIHKAE.mjs → chunk-JCIE5T4Y.mjs} +1 -1
  11. package/dist/chunks/{chunk-JHDWCLXZ.mjs → chunk-LJPLTCGH.mjs} +1 -1
  12. package/dist/chunks/{chunk-7VYOSR3V.mjs → chunk-NIDAAFLH.mjs} +65 -253
  13. package/dist/chunks/{chunk-3KIKY44D.mjs → chunk-T5MYHXI6.mjs} +1 -1
  14. package/dist/chunks/{chunk-FBVDZGXA.mjs → chunk-VYO3H52S.mjs} +3 -1
  15. package/dist/chunks/{chunk-KCYVCCJ5.mjs → chunk-YOWQLQC3.mjs} +1 -2
  16. package/dist/chunks/{chunk-LZ7M5WP7.mjs → chunk-Z6YHVSNG.mjs} +1 -1
  17. package/dist/data/bibleStatuses/index.mjs +1 -1
  18. package/dist/data/bibleStatuses.mjs +1 -1
  19. package/dist/data/curriculumFoundations/curriculumFoundations.zod.d.ts +1 -1
  20. package/dist/data/curriculumFoundations/curriculumFoundations.zod.mjs +1 -1
  21. package/dist/data/curriculumFoundations/index.d.ts +1 -1
  22. package/dist/data/curriculumFoundations/index.mjs +2 -2
  23. package/dist/data/curriculumFoundations.mjs +2 -2
  24. package/dist/data/curriculumTopics/curriculumTopics.zod.d.ts +1 -1
  25. package/dist/data/curriculumTopics/curriculumTopics.zod.mjs +1 -1
  26. package/dist/data/curriculumTopics/index.d.ts +1 -1
  27. package/dist/data/curriculumTopics/index.mjs +2 -2
  28. package/dist/data/curriculumTopics.mjs +2 -2
  29. package/dist/data/mediaDurations/index.mjs +1 -1
  30. package/dist/data/mediaDurations.mjs +1 -1
  31. package/dist/data/releaseNotes/index.mjs +1 -1
  32. package/dist/data/releaseNotes.mjs +1 -1
  33. package/dist/data/translationsFtb/index.mjs +1 -1
  34. package/dist/data/translationsFtb.mjs +1 -1
  35. package/dist/data/translationsIntroduction/index.mjs +1 -1
  36. package/dist/data/translationsIntroduction.mjs +1 -1
  37. package/dist/data/translationsQuestion/index.mjs +1 -1
  38. package/dist/data/translationsQuestion.mjs +1 -1
  39. package/dist/data/translationsSet/index.mjs +1 -1
  40. package/dist/data/translationsSet.mjs +1 -1
  41. package/dist/data/translationsSpokenQuestion/index.mjs +1 -1
  42. package/dist/data/translationsSpokenQuestion.mjs +1 -1
  43. package/dist/functions/bibles.mjs +2 -2
  44. package/dist/functions/crowdin.d.ts +104 -13
  45. package/dist/functions/crowdin.mjs +99 -14
  46. package/dist/functions/languages.mjs +12 -12
  47. package/dist/functions/media.mjs +2 -2
  48. package/dist/functions/scripturePassages.mjs +13 -13
  49. package/dist/functions/sentry.d.ts +1 -0
  50. package/dist/functions/sentry.mjs +6 -0
  51. package/dist/functions/sets.mjs +15 -15
  52. package/package.json +1 -1
@@ -176,7 +176,7 @@ var require_translationsIntroduction = __commonJS({
176
176
  "03.007.010": "En una lecci\xF3n anterior examinamos la obediencia, y hoy volveremos a verla. \xBFPor qu\xE9? Porque Jes\xFAs y el resto de las Escrituras hacen mucho hincapi\xE9 en ella. Jes\xFAs asoci\xF3 fuertemente la obediencia y el discipulado. Dijo que quienes le aman le obedecer\xE1n. Dijo que el hombre sabio es aquel que oye sus palabras y las pone en pr\xE1ctica. Envi\xF3 a sus disc\xEDpulos, mand\xE1ndoles hacer disc\xEDpulos de todas las naciones y ense\xF1\xE1ndoles a obedecer todo lo que \xC9l mand\xF3. No es de extra\xF1ar que, cuando estudiamos los movimientos, descubramos que ense\xF1ar la obediencia a Dios y a sus Escrituras es un elemento esencial para formar disc\xEDpulos fuertes y sanos que se multipliquen. Hoy, para profundizar en este importante principio de los MHD, examinaremos el tema de la Obediencia.",
177
177
  "03.007.011": 'No ver\xE1s un Movimiento de Hacedores de \u201CDisc\xEDpulos\u201D sin \u201CDisc\xEDpulos\u201D. \xA1Jes\xFAs hizo disc\xEDpulos! Jes\xFAs nos mand\xF3 a ir y hacer disc\xEDpulos. En la Biblia, uno de los nombres m\xE1s comunes para la primera comunidad de seguidores de Jes\xFAs era "disc\xEDpulos". Ser\xEDa dif\xEDcil entender las ense\xF1anzas de Jes\xFAs sin comprender su deseo de formar disc\xEDpulos sanos. Y ser\xEDa dif\xEDcil cumplir los mandatos de Jes\xFAs si alguien estuviera confundido acerca de qu\xE9 es un disc\xEDpulo. Por lo tanto, en esta lecci\xF3n veremos m\xE1s de cerca lo que significa ser un disc\xEDpulo b\xEDblico. ',
178
178
  "03.007.012": "A menudo a los practicantes les lleva a\xF1os luchar con las complejidades del ejemplo de Pablo de \xABhacerse todo para todos\xBB. Sin embargo, \xA1no deber\xEDamos dejarnos intimidar por el tama\xF1o y la complejidad de este tema del \xABCompromiso Cultural\xBB! Los practicantes de los movimientos necesitan pensar de manera estrat\xE9gica e intencional sobre las palabras que usamos, la comida que comemos, la ropa que vestimos, c\xF3mo celebramos las festividades, c\xF3mo interactuamos con la gente y m\xE1s. Del mismo modo, los nuevos grupos de descubrimiento y las nuevas comunidades creyentes necesitan el espacio y la libertad para luchar b\xEDblicamente con estas cuestiones culturales sin que personas ajenas les impongan sus preferencias culturales. Por eso, hoy analizaremos una peque\xF1a muestra de los muchos, much\xEDsimos pasajes que se centran en la Importancia del Compromiso Cultural.",
179
- eq: 'La Biblia est\xE1 llena de pasajes sobre obtener sabio consejo, sobre ser honestos y rendir cuentas y aprender unos de otros, sobre planificar y sobre ser sabios. As\xED que, ahora que hemos completado este nuevo conjunto de historias, es momento de parar, evaluar y planificar. \xBFC\xF3mo vas a seguir adelante? \xBFEn qu\xE9 necesitas seguir desarroll\xE1ndote? \xBFHay \xE1reas en las que est\xE1s "atascado" y necesitas m\xE1s capacitaci\xF3n? Tom\xE9monos un momento para responder a las siguientes preguntas que podr\xEDan ayudarte a ti y a tu grupo a reflexionar y planificar.\n\n1. \xBFQu\xE9 tal has implantado tus declaraciones de "Yo lo har\xE9..." en los \xFAltimos meses? \xBFHas sido un oidor y un hacedor de la Palabra? \xBFC\xF3mo ha afectado el ser un oidor y un hacedor de la palabra a tu ministerio y a ti personalmente?\n\n2. Hemos utilizado regularmente un diagrama de un barco y velas para representar las 7 Pr\xE1cticas de un Disc\xEDpulo que se Multiplica. Tom\xE9monos un minuto ahora para volver a dibujar ese diagrama de memoria.\n\n3. Cada componente del diagrama del barco y las velas representa un avance hacia un nuevo nivel, as\xED como un \xE1rea donde alguien puede quedarse atascado. \xBFD\xF3nde sientes que has tenido el mayor avance en los \xFAltimos meses? \xBFD\xF3nde sientes que est\xE1s atascado?\n\n4. Dado que la oraci\xF3n es el combustible central de los movimientos, \xBFc\xF3mo te ha ido con la oraci\xF3n extraordinaria?\n\n5. Detr\xE1s de los movimientos siempre hay una visi\xF3n grande, del tama\xF1o de Dios. Esta visi\xF3n afecta a todo lo que hacemos. A partir de todos los pasajes que hemos examinado, \xBFc\xF3mo evaluar\xEDas el crecimiento de tu visi\xF3n? \xBFSe est\xE1n alineando tus acciones con esa visi\xF3n? Si es as\xED, \xA1excelente! Sigue as\xED (G\xE1latas 6:9). Si no es as\xED, \xBFqu\xE9 necesita cambiar?\n\n6. No todos est\xE1n listos para responder al evangelio, y no todos son personas de paz. Por lo tanto, filtramos para encontrar en qui\xE9n invertir. \xBFC\xF3mo te va al filtrar y vivir con prop\xF3sito? \xBFQu\xE9 ha funcionado bien? \xBFEn qu\xE9 necesitas a\xFAn m\xE1s pr\xE1ctica? \xBFQu\xE9 herramientas de filtrado has probado? \xBFNecesitas m\xE1s herramientas de filtrado?\n\n7. Cuando encuentras a una persona de paz potencial, quieres ayudarla a iniciar un Grupo de Descubrimiento dentro de su oikos. \xBFC\xF3mo te va en la transici\xF3n de filtrar a invitar a las personas a iniciar un Estudio B\xEDblico de Descubrimiento?\n\n8. Cuando encuentras a alguien que est\xE1 interesado en las cosas del Reino y quiere estudiar m\xE1s, tienes que actuar con prop\xF3sito para orientar a esa persona a fin de que alcance con eficacia a su red. \xBFC\xF3mo te va con esta orientaci\xF3n?\n\n9. Una vez iniciado un nuevo grupo de descubrimiento, debes orientar de manera eficaz a la persona de paz potencial para que facilite bien el proceso de descubrimiento con su grupo, sea un \n"formulador de preguntas" y no un maestro, siga un conjunto sencillo de preguntas y se mantenga enfocado en el texto. \xBFC\xF3mo te va en estas \xE1reas?\n\n10. \xBFEst\xE1n los grupos pasando por los Conjuntos Fundamentales desde el principio y sin saltarse pasos? Si los grupos est\xE1n realizando estudios tem\xE1ticos, \xBFbuscan r\xE1pidamente oportunidades para hacer la transici\xF3n del grupo hacia las lecciones fundamentales?\n\n11. El desarrollo de liderazgo es esencial para que emerja cualquier movimiento. En los grupos de descubrimiento, \xBFest\xE1s siendo intencional al discipular a las personas de paz potenciales de una manera que desarrolle su liderazgo?\n\n12. Bas\xE1ndote en toda esta reflexi\xF3n, \xBFcu\xE1l es la forma correcta de seguir adelante tanto individualmente como en grupo?'
179
+ eq: 'La Biblia est\xE1 llena de pasajes sobre buscar sabio consejo, sobre ser honestos y rendir cuentas y aprender unos de otros, sobre planificar y sobre actuar con sabidur\xEDa. As\xED que, ahora que hemos completado este nuevo conjunto de historias, es momento de detenernos, evaluar y planificar. \xBFC\xF3mo vas a avanzar? \xBFEn qu\xE9 necesitas seguir desarroll\xE1ndote? \xBFHay \xE1reas donde te encuentres "estancado" y necesites m\xE1s capacitaci\xF3n? Tomemos un momento para responder a las siguientes preguntas que pueden ayudarte a ti y a tu grupo a reflexionar y planificar.\n\n1. \xBFQu\xE9 tan bien has puesto en pr\xE1ctica tus declaraciones de "Yo har\xE9\u2026" durante los \xFAltimos meses? \xBFHas sido oidor y hacedor de la Palabra? \xBFDe qu\xE9 manera el ser oidor y hacedor de la palabra ha impactado tu ministerio y a ti personalmente?\n\n2. Con frecuencia hemos utilizado el diagrama del barco y las velas para representar las 7 Pr\xE1cticas de un Disc\xEDpulo que se Multiplica. Tomemos un minuto ahora para volver a dibujar ese diagrama de memoria.\n\n3. Cada componente del diagrama del barco y las velas representa tanto un avance hacia un nuevo nivel como un \xE1rea donde alguien puede quedarse estancado. \xBFEn qu\xE9 aspecto sientes que has tenido el mayor avance durante los \xFAltimos meses? \xBFD\xF3nde sientes que est\xE1s estancado?\n\n4. Puesto que la oraci\xF3n es el motor principal de los movimientos, \xBFc\xF3mo te ha ido al practicar la oraci\xF3n extraordinaria?\n\n5. Detr\xE1s de todo movimiento siempre hay una visi\xF3n grande, del tama\xF1o de Dios. Esta visi\xF3n influye en todo lo que hacemos. A partir de todos los pasajes que hemos revisado, \xBFc\xF3mo evaluar\xEDas el crecimiento de tu visi\xF3n? \xBFEst\xE1n tus acciones alineadas con esa visi\xF3n? Si es as\xED, \xA1excelente! Sigue adelante (G\xE1latas 6:9). Si no es as\xED, \xBFqu\xE9 necesita cambiar?\n\n6. No todos est\xE1n listos para responder al evangelio, y no todos son una persona de paz. Por eso, filtramos para saber en qui\xE9n invertir. \xBFC\xF3mo te est\xE1 yendo con el filtrado y al vivir con prop\xF3sito? \xBFQu\xE9 te ha funcionado bien? \xBFEn qu\xE9 necesitas a\xFAn m\xE1s pr\xE1ctica? \xBFQu\xE9 herramientas de filtrado has probado? \xBFNecesitas m\xE1s herramientas de filtrado?\n\n7. Cuando encuentras a una posible persona de paz, buscas ayudarle a iniciar un Grupo de Descubrimiento dentro de su oikos. \xBFC\xF3mo te est\xE1 yendo al hacer la transici\xF3n de filtrar a invitar a las personas a comenzar un Estudio B\xEDblico de Descubrimiento?\n\n8. Cuando encuentras a alguien que muestra inter\xE9s en las cosas del Reino y quiere estudiar m\xE1s, debes ser intencional en guiar a esa persona para que alcance con eficacia su red de contactos. \xBFC\xF3mo te est\xE1 yendo con este acompa\xF1amiento?\n\n9. Una vez que se inicia un nuevo grupo de descubrimiento, necesitas guiar eficazmente a la posible persona de paz para que facilite bien el proceso de descubrimiento en su grupo, sea alguien que haga preguntas y no un maestro, siga una serie simple de preguntas y se mantenga enfocado en el texto. \xBFC\xF3mo te est\xE1 yendo en estas \xE1reas?\n\n10. \xBFEst\xE1n los grupos recorriendo los Conjuntos Fundamentales desde el principio y sin saltarse temas? Si los grupos est\xE1n realizando estudios tem\xE1ticos, \xBFbuscan con rapidez oportunidades para hacer la transici\xF3n hacia las lecciones fundamentales?\n\n11. El desarrollo del liderazgo es fundamental para que surja cualquier movimiento. En los grupos de descubrimiento, \xBFest\xE1s siendo intencional en discipular a las posibles personas de paz de manera que desarrolle su liderazgo?\n\n12. Tomando como base toda esta reflexi\xF3n, \xBFcu\xE1l es la manera correcta de avanzar, tanto a nivel individual como en grupo?'
180
180
  }
181
181
  },
182
182
  fra: {
@@ -3,7 +3,9 @@ import { z } from "zod";
3
3
  var CurriculumFoundations = z.array(
4
4
  z.object({
5
5
  curriculumId: z.string(),
6
- crowdinProjectId: z.string(),
6
+ crowdinProjectId: z.string().optional().describe(
7
+ "The Crowdin project for this curriculum's title translations. Leave it out when the curriculum has no titles of its own, like ASL, whose sets take their titles from the main set with the same name. Prep and the Crowdin config then skip it."
8
+ ),
7
9
  sets: z.array(z.string()).describe(
8
10
  "An array of set ids that make up this foundations curriculum. Set ids must be linked to valid sets present in data/sets.json."
9
11
  )
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  CurriculumTopics
3
- } from "./chunk-RQR7ADQ3.mjs";
3
+ } from "./chunk-5JMRXTQB.mjs";
4
4
  import {
5
5
  __commonJS
6
6
  } from "./chunk-5AVXA5JL.mjs";
@@ -15,7 +15,6 @@ var require_curriculumTopics = __commonJS({
15
15
  data: [
16
16
  {
17
17
  curriculumId: "ase",
18
- crowdinProjectId: "549537",
19
18
  sets: ["02.073", "02.075", "02.076", "02.078", "02.079", "02.080"]
20
19
  },
21
20
  {
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-VJIMQWPM.mjs";
7
7
  import {
8
8
  bibleStatuses
9
- } from "./chunk-DHR3J5ZL.mjs";
9
+ } from "./chunk-FFYD6FOP.mjs";
10
10
  import {
11
11
  bibleChaptersList
12
12
  } from "./chunk-CAAVRETB.mjs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  bibleStatuses
3
- } from "../../chunks/chunk-DHR3J5ZL.mjs";
3
+ } from "../../chunks/chunk-FFYD6FOP.mjs";
4
4
  import "../../chunks/chunk-ET5K2SPZ.mjs";
5
5
  import "../../chunks/chunk-5AVXA5JL.mjs";
6
6
  export {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  bibleStatuses
3
- } from "../chunks/chunk-DHR3J5ZL.mjs";
3
+ } from "../chunks/chunk-FFYD6FOP.mjs";
4
4
  import "../chunks/chunk-ET5K2SPZ.mjs";
5
5
  import "../chunks/chunk-5AVXA5JL.mjs";
6
6
  export {
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  export declare const CurriculumFoundations: z.ZodArray<z.ZodObject<{
3
3
  curriculumId: z.ZodString;
4
- crowdinProjectId: z.ZodString;
4
+ crowdinProjectId: z.ZodOptional<z.ZodString>;
5
5
  sets: z.ZodArray<z.ZodString>;
6
6
  }, z.core.$strict>>;
7
7
  export type CurriculumFoundations = z.infer<typeof CurriculumFoundations>;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  CurriculumFoundations
3
- } from "../../chunks/chunk-FBVDZGXA.mjs";
3
+ } from "../../chunks/chunk-VYO3H52S.mjs";
4
4
  import "../../chunks/chunk-5AVXA5JL.mjs";
5
5
  export {
6
6
  CurriculumFoundations
@@ -1,5 +1,5 @@
1
1
  export declare const curriculumFoundations: {
2
2
  curriculumId: string;
3
- crowdinProjectId: string;
4
3
  sets: string[];
4
+ crowdinProjectId?: string | undefined;
5
5
  }[];
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  curriculumFoundations
3
- } from "../../chunks/chunk-7HGUA25M.mjs";
4
- import "../../chunks/chunk-FBVDZGXA.mjs";
3
+ } from "../../chunks/chunk-IYDI5F2O.mjs";
4
+ import "../../chunks/chunk-VYO3H52S.mjs";
5
5
  import "../../chunks/chunk-5AVXA5JL.mjs";
6
6
  export {
7
7
  curriculumFoundations
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  curriculumFoundations
3
- } from "../chunks/chunk-7HGUA25M.mjs";
4
- import "../chunks/chunk-FBVDZGXA.mjs";
3
+ } from "../chunks/chunk-IYDI5F2O.mjs";
4
+ import "../chunks/chunk-VYO3H52S.mjs";
5
5
  import "../chunks/chunk-5AVXA5JL.mjs";
6
6
  export {
7
7
  curriculumFoundations
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  export declare const CurriculumTopics: z.ZodArray<z.ZodObject<{
3
3
  curriculumId: z.ZodString;
4
- crowdinProjectId: z.ZodString;
4
+ crowdinProjectId: z.ZodOptional<z.ZodString>;
5
5
  sets: z.ZodArray<z.ZodString>;
6
6
  }, z.core.$strict>>;
7
7
  export type CurriculumTopics = z.infer<typeof CurriculumTopics>;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  CurriculumTopics
3
- } from "../../chunks/chunk-RQR7ADQ3.mjs";
3
+ } from "../../chunks/chunk-5JMRXTQB.mjs";
4
4
  import "../../chunks/chunk-5AVXA5JL.mjs";
5
5
  export {
6
6
  CurriculumTopics
@@ -1,5 +1,5 @@
1
1
  export declare const curriculumTopics: {
2
2
  curriculumId: string;
3
- crowdinProjectId: string;
4
3
  sets: string[];
4
+ crowdinProjectId?: string | undefined;
5
5
  }[];
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  curriculumTopics
3
- } from "../../chunks/chunk-KCYVCCJ5.mjs";
4
- import "../../chunks/chunk-RQR7ADQ3.mjs";
3
+ } from "../../chunks/chunk-YOWQLQC3.mjs";
4
+ import "../../chunks/chunk-5JMRXTQB.mjs";
5
5
  import "../../chunks/chunk-5AVXA5JL.mjs";
6
6
  export {
7
7
  curriculumTopics
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  curriculumTopics
3
- } from "../chunks/chunk-KCYVCCJ5.mjs";
4
- import "../chunks/chunk-RQR7ADQ3.mjs";
3
+ } from "../chunks/chunk-YOWQLQC3.mjs";
4
+ import "../chunks/chunk-5JMRXTQB.mjs";
5
5
  import "../chunks/chunk-5AVXA5JL.mjs";
6
6
  export {
7
7
  curriculumTopics
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  mediaDurations
3
- } from "../../chunks/chunk-XA5TMOJO.mjs";
3
+ } from "../../chunks/chunk-6RO6HPL6.mjs";
4
4
  import "../../chunks/chunk-SQIXBO2Z.mjs";
5
5
  import "../../chunks/chunk-5AVXA5JL.mjs";
6
6
  export {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  mediaDurations
3
- } from "../chunks/chunk-XA5TMOJO.mjs";
3
+ } from "../chunks/chunk-6RO6HPL6.mjs";
4
4
  import "../chunks/chunk-SQIXBO2Z.mjs";
5
5
  import "../chunks/chunk-5AVXA5JL.mjs";
6
6
  export {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  releaseNotes
3
- } from "../../chunks/chunk-K3ET7L2W.mjs";
3
+ } from "../../chunks/chunk-25H6LPID.mjs";
4
4
  import "../../chunks/chunk-7OQXPHD7.mjs";
5
5
  import "../../chunks/chunk-5AVXA5JL.mjs";
6
6
  export {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  releaseNotes
3
- } from "../chunks/chunk-K3ET7L2W.mjs";
3
+ } from "../chunks/chunk-25H6LPID.mjs";
4
4
  import "../chunks/chunk-7OQXPHD7.mjs";
5
5
  import "../chunks/chunk-5AVXA5JL.mjs";
6
6
  export {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  translationsFtb
3
- } from "../../chunks/chunk-JHDWCLXZ.mjs";
3
+ } from "../../chunks/chunk-LJPLTCGH.mjs";
4
4
  import "../../chunks/chunk-ZYY65KHC.mjs";
5
5
  import "../../chunks/chunk-5AVXA5JL.mjs";
6
6
  export {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  translationsFtb
3
- } from "../chunks/chunk-JHDWCLXZ.mjs";
3
+ } from "../chunks/chunk-LJPLTCGH.mjs";
4
4
  import "../chunks/chunk-ZYY65KHC.mjs";
5
5
  import "../chunks/chunk-5AVXA5JL.mjs";
6
6
  export {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  translationsIntroduction
3
- } from "../../chunks/chunk-3KIKY44D.mjs";
3
+ } from "../../chunks/chunk-T5MYHXI6.mjs";
4
4
  import "../../chunks/chunk-ZN7DL26Q.mjs";
5
5
  import "../../chunks/chunk-5AVXA5JL.mjs";
6
6
  export {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  translationsIntroduction
3
- } from "../chunks/chunk-3KIKY44D.mjs";
3
+ } from "../chunks/chunk-T5MYHXI6.mjs";
4
4
  import "../chunks/chunk-ZN7DL26Q.mjs";
5
5
  import "../chunks/chunk-5AVXA5JL.mjs";
6
6
  export {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  translationsQuestion
3
- } from "../../chunks/chunk-OCE4ZKES.mjs";
3
+ } from "../../chunks/chunk-7WGNWNUX.mjs";
4
4
  import "../../chunks/chunk-Y7GBCSFN.mjs";
5
5
  import "../../chunks/chunk-5AVXA5JL.mjs";
6
6
  export {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  translationsQuestion
3
- } from "../chunks/chunk-OCE4ZKES.mjs";
3
+ } from "../chunks/chunk-7WGNWNUX.mjs";
4
4
  import "../chunks/chunk-Y7GBCSFN.mjs";
5
5
  import "../chunks/chunk-5AVXA5JL.mjs";
6
6
  export {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  translationsSet
3
- } from "../../chunks/chunk-7VYOSR3V.mjs";
3
+ } from "../../chunks/chunk-NIDAAFLH.mjs";
4
4
  import "../../chunks/chunk-SMLKJF5I.mjs";
5
5
  import "../../chunks/chunk-5AVXA5JL.mjs";
6
6
  export {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  translationsSet
3
- } from "../chunks/chunk-7VYOSR3V.mjs";
3
+ } from "../chunks/chunk-NIDAAFLH.mjs";
4
4
  import "../chunks/chunk-SMLKJF5I.mjs";
5
5
  import "../chunks/chunk-5AVXA5JL.mjs";
6
6
  export {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  translationsSpokenQuestion
3
- } from "../../chunks/chunk-CNS62VOF.mjs";
3
+ } from "../../chunks/chunk-DCAA23B2.mjs";
4
4
  import "../../chunks/chunk-E6Y32NWX.mjs";
5
5
  import "../../chunks/chunk-5AVXA5JL.mjs";
6
6
  export {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  translationsSpokenQuestion
3
- } from "../chunks/chunk-CNS62VOF.mjs";
3
+ } from "../chunks/chunk-DCAA23B2.mjs";
4
4
  import "../chunks/chunk-E6Y32NWX.mjs";
5
5
  import "../chunks/chunk-5AVXA5JL.mjs";
6
6
  export {
@@ -7,12 +7,12 @@ import {
7
7
  getPercentage,
8
8
  replaceBibleWith,
9
9
  shouldConcatBibleWith
10
- } from "../chunks/chunk-LZ7M5WP7.mjs";
10
+ } from "../chunks/chunk-Z6YHVSNG.mjs";
11
11
  import "../chunks/chunk-TJKEAECC.mjs";
12
12
  import "../chunks/chunk-F6KX3ANZ.mjs";
13
13
  import "../chunks/chunk-VJIMQWPM.mjs";
14
14
  import "../chunks/chunk-P26UPNCJ.mjs";
15
- import "../chunks/chunk-DHR3J5ZL.mjs";
15
+ import "../chunks/chunk-FFYD6FOP.mjs";
16
16
  import "../chunks/chunk-ET5K2SPZ.mjs";
17
17
  import "../chunks/chunk-CAAVRETB.mjs";
18
18
  import "../chunks/chunk-RXDWB4BG.mjs";
@@ -54,16 +54,32 @@ interface DownloadTranslationsParams {
54
54
  * Downloads translations from Crowdin for a given project ID and source path.
55
55
  */
56
56
  export declare function downloadTranslations({ projectId, translationsFolder, token, sourcePattern, }: DownloadTranslationsParams): void;
57
+ /**
58
+ * Parser and import settings for files Crowdin can't read with its defaults,
59
+ * such as the `fm_md` drip emails. `type` only applies on create; Crowdin
60
+ * rejects it on update.
61
+ */
62
+ export interface CrowdinFileSettings {
63
+ type?: SourceFilesModel.FileType;
64
+ importOptions?: SourceFilesModel.ImportOptions;
65
+ }
57
66
  interface UploadSourceParams {
58
67
  /** The id of the project to upload to, from `crowdinProjectIds`. */
59
68
  projectId: string;
60
69
  /**
61
- * Absolute path to the source file to upload, somewhere under a `crowdin/`
62
- * directory (e.g. `/path/to/project/crowdin/eng/app_interface_text.json`,
63
- * or `/path/to/project/crowdin/foo.md` for a project that keeps sources at
64
- * the root). The path Crowdin sees is everything after `crowdin/`.
70
+ * Absolute path to the local source file. When `dest` is omitted this must
71
+ * sit somewhere under a `crowdin/` directory (e.g.
72
+ * `/path/to/project/crowdin/eng/app_interface_text.json`) so the Crowdin
73
+ * path can be derived from it.
65
74
  */
66
75
  source: string;
76
+ /**
77
+ * Where the file lives in Crowdin, e.g. `main.json`. Defaults to everything
78
+ * after `crowdin/` in `source`, which is wrong when the project's layout
79
+ * differs from the repo's. A wrong path creates a new file with none of the
80
+ * real one's translations, hence `allowCreate`.
81
+ */
82
+ dest?: string;
67
83
  /** The Crowdin personal access token to use for authentication. */
68
84
  token: string;
69
85
  /**
@@ -72,11 +88,15 @@ interface UploadSourceParams {
72
88
  */
73
89
  label?: string;
74
90
  /** Parser and import settings, for files needing more than the defaults. */
75
- fileSettings?: FileSettings;
76
- }
77
- interface FileSettings {
78
- type?: SourceFilesModel.FileType;
79
- importOptions?: SourceFilesModel.ImportOptions;
91
+ fileSettings?: CrowdinFileSettings;
92
+ /**
93
+ * Whether a file Crowdin doesn't already have may be created. Defaults to
94
+ * true. Pass false to make the upload update-only, so a mistyped path throws
95
+ * instead of orphaning the real file's translations.
96
+ */
97
+ allowCreate?: boolean;
98
+ /** Resolve what would happen and report it without uploading anything. */
99
+ dryRun?: boolean;
80
100
  }
81
101
  /**
82
102
  * The request that replaces an existing file. Built separately from
@@ -88,19 +108,26 @@ interface FileSettings {
88
108
  */
89
109
  export declare function replaceFileRequest({ storageId, fileSettings, attachLabelIds, }: {
90
110
  storageId: number;
91
- fileSettings?: FileSettings;
111
+ fileSettings?: CrowdinFileSettings;
92
112
  attachLabelIds?: number[];
93
113
  }): SourceFilesModel.ReplaceFileFromStorageRequest;
94
114
  /** The request that creates a new file. See {@link replaceFileRequest}. */
95
115
  export declare function createFileRequest({ storageId, name, fileSettings, attachLabelIds, directoryId, }: {
96
116
  storageId: number;
97
117
  name: string;
98
- fileSettings?: FileSettings;
118
+ fileSettings?: CrowdinFileSettings;
99
119
  attachLabelIds?: number[];
100
120
  directoryId?: number;
101
121
  }): SourceFilesModel.CreateFileRequest;
102
- /** Uploads a source file to Crowdin, creating it or replacing its contents. */
103
- export declare function uploadSource({ projectId, source, token, label, fileSettings, }: UploadSourceParams): Promise<void>;
122
+ /**
123
+ * Whether an upload created a new file in Crowdin or updated an existing one.
124
+ */
125
+ export type UploadSourceOutcome = 'created' | 'updated';
126
+ /**
127
+ * Uploads a source file to Crowdin, creating it or replacing its contents, and
128
+ * reports which of the two it did.
129
+ */
130
+ export declare function uploadSource({ projectId, source, dest, token, label, fileSettings, allowCreate, dryRun, }: UploadSourceParams): Promise<UploadSourceOutcome>;
104
131
  /**
105
132
  * The directory a new file at `relativePath` belongs in, or undefined for a
106
133
  * file at the project root.
@@ -115,4 +142,68 @@ export interface CrowdinDirectory {
115
142
  path: string;
116
143
  }
117
144
  export declare function findDirectoryId(directories: CrowdinDirectory[], projectId: number, relativePath: string): number | undefined;
145
+ /** One source file a repo owns, as declared in its Crowdin sources config. */
146
+ export interface CrowdinSourceFileConfig {
147
+ /**
148
+ * Path to the local file, relative to the `baseDir` passed to
149
+ * `uploadSources`. With the repo's `crowdin/` directory as `baseDir`, that's
150
+ * `eng/main.json`.
151
+ */
152
+ source: string;
153
+ /** The project this file belongs to, from `crowdinProjectIds`. */
154
+ projectId: string;
155
+ /**
156
+ * Where the file lives in Crowdin. Defaults to the part of `source` below
157
+ * the repo's `crowdin/` directory. See `UploadSourceParams['dest']`.
158
+ */
159
+ dest?: string;
160
+ /** Parser and import settings, for files needing more than the defaults. */
161
+ fileSettings?: CrowdinFileSettings;
162
+ /**
163
+ * Lets this file be created even when the run doesn't allow it. For files
164
+ * where a new one is routine rather than a typo, like the drip emails (one
165
+ * file per email). Leave it off for hand-maintained files.
166
+ */
167
+ allowCreate?: boolean;
168
+ }
169
+ /**
170
+ * Everything a repo uploads to Crowdin. One config per repo rather than per
171
+ * project, since a repo's files often span several projects and one list
172
+ * leaves one place to register a file.
173
+ */
174
+ export interface CrowdinSourcesConfig {
175
+ files: CrowdinSourceFileConfig[];
176
+ }
177
+ interface UploadSourcesParams {
178
+ config: CrowdinSourcesConfig;
179
+ /** The directory `config`'s `source` paths are relative to. */
180
+ baseDir: string;
181
+ /** The Crowdin personal access token to use for authentication. */
182
+ token: string;
183
+ /** Label to attach to new strings in every uploaded file. */
184
+ label?: string;
185
+ /**
186
+ * Whether files Crowdin doesn't already have may be created. Defaults to
187
+ * false, unlike `uploadSource`, so an unattended run fails on a wrong path.
188
+ * Entries that set their own `allowCreate` may be created either way.
189
+ */
190
+ allowCreate?: boolean;
191
+ /**
192
+ * Upload only the entries with these `source` paths, e.g.
193
+ * `['eng/app_interface_text.json']`, including every project a file is in.
194
+ * A path matching no entry throws before anything is uploaded.
195
+ */
196
+ only?: string[];
197
+ /** Report what each file would do without uploading anything. */
198
+ dryRun?: boolean;
199
+ }
200
+ /**
201
+ * Uploads every file in a Crowdin sources config, one at a time to stay under
202
+ * Crowdin's rate limit and keep the log readable, and returns how many it
203
+ * uploaded.
204
+ *
205
+ * A failed file doesn't stop the others: the run finishes, then throws with
206
+ * every failure listed.
207
+ */
208
+ export declare function uploadSources({ config, baseDir, token, label, allowCreate, only, dryRun, }: UploadSourcesParams): Promise<number>;
118
209
  export {};