@fonderie/client 1.10.0 → 1.11.1

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.
@@ -424,6 +424,17 @@ new CourierAdminClient(opts: ICourierAdminClientOptions): CourierAdminClient
424
424
  .rollback(type: string, input: IRollbackTemplateInput, locale?: string | null | undefined): Promise<IApiResponse<ITemplateEntry>>
425
425
  .previewTemplate(type: string, input: IPreviewTemplateInput, locale?: string | null | undefined): Promise<IApiResponse<IRenderedTemplateResult>>
426
426
 
427
+ interface ITemplateGroup {
428
+ type: string;
429
+ entries: ITemplateEntry[];
430
+ primary: ITemplateEntry;
431
+ system: boolean;
432
+ }
433
+
434
+ function groupTemplatesByType(rows: readonly ITemplateEntry[]): ITemplateGroup[]
435
+
436
+ function missingTemplateLocales(rows: readonly ITemplateEntry[], type: string): string[]
437
+
427
438
  interface IAddAddressInput {
428
439
  countryIso: string;
429
440
  zipPostalCode: string;
package/dist/index.cjs CHANGED
@@ -52,9 +52,11 @@ __export(index_exports, {
52
52
  detectAdminLocale: () => detectAdminLocale,
53
53
  formatAdminDate: () => formatAdminDate,
54
54
  formatConfigValue: () => formatConfigValue,
55
+ groupTemplatesByType: () => groupTemplatesByType,
55
56
  inferConfigValue: () => inferConfigValue,
56
57
  isAdminLocale: () => isAdminLocale,
57
- isMfaRequired: () => isMfaRequired
58
+ isMfaRequired: () => isMfaRequired,
59
+ missingTemplateLocales: () => missingTemplateLocales
58
60
  });
59
61
  module.exports = __toCommonJS(index_exports);
60
62
 
@@ -2258,6 +2260,27 @@ var CourierAdminClient = class {
2258
2260
  }
2259
2261
  };
2260
2262
 
2263
+ // src/template-locales.ts
2264
+ var byLocale = (a, b) => a.locale === b.locale ? 0 : a.locale === null ? -1 : b.locale === null ? 1 : a.locale.localeCompare(b.locale);
2265
+ function groupTemplatesByType(rows) {
2266
+ const groups = /* @__PURE__ */ new Map();
2267
+ for (const row of rows) {
2268
+ const entries = groups.get(row.type);
2269
+ if (entries) entries.push(row);
2270
+ else groups.set(row.type, [row]);
2271
+ }
2272
+ return [...groups].map(([type, entries]) => {
2273
+ entries.sort(byLocale);
2274
+ const primary = entries[0];
2275
+ return { type, entries, primary, system: entries.some((e) => e.system === true) };
2276
+ });
2277
+ }
2278
+ function missingTemplateLocales(rows, type) {
2279
+ const has = new Set(rows.filter((r) => r.type === type).map((r) => r.locale));
2280
+ const used = new Set(rows.map((r) => r.locale).filter((l) => l !== null && !has.has(l)));
2281
+ return [...used].sort();
2282
+ }
2283
+
2261
2284
  // src/types.ts
2262
2285
  function isMfaRequired(result) {
2263
2286
  return !("tokens" in result);
@@ -2975,6 +2998,7 @@ var config_default = config;
2975
2998
  // src/admin-i18n/en/templates.ts
2976
2999
  var templates = {
2977
3000
  defaultLocale: "default locale",
3001
+ defaultChip: "default",
2978
3002
  builtInBadge: "built-in",
2979
3003
  subject: "Subject",
2980
3004
  htmlBody: "HTML body",
@@ -2983,10 +3007,13 @@ var templates = {
2983
3007
  title: "Templates",
2984
3008
  newTemplate: "New template",
2985
3009
  hint: "Every email the app sends. Open one to edit its copy and preview it live.",
2986
- loading: "Loading templates\u2026"
3010
+ loading: "Loading templates\u2026",
3011
+ openLocale: "Open the {locale} version of {type}"
2987
3012
  },
2988
3013
  editor: {
2989
3014
  loading: "Loading template\u2026",
3015
+ locales: "Locales",
3016
+ discardChanges: "You have unsaved changes to this locale. Discard them and switch?",
2990
3017
  addLocale: "+ Add locale",
2991
3018
  builtInNote: "built-in email: edit or roll back, it cannot be deleted",
2992
3019
  active: "Active",
@@ -3022,7 +3049,8 @@ var templates = {
3022
3049
  errorLocale: "Locale: a language tag such as fr, es or fr-CA.",
3023
3050
  errorText: "The plain-text body is required \u2014 it is what every email client can show.",
3024
3051
  exists: '"{type}" already exists \u2014 open it from the list to edit.',
3025
- existsLocale: '"{type}" ({locale}) already exists \u2014 open it from the list to edit.'
3052
+ existsLocale: '"{type}" ({locale}) already exists \u2014 open it from the list to edit.',
3053
+ untranslated: "Still the default copy: {fields}. Translate them before adding this locale."
3026
3054
  }
3027
3055
  };
3028
3056
  var templates_default = templates;
@@ -3666,6 +3694,7 @@ var config_default2 = config2;
3666
3694
  // src/admin-i18n/es/templates.ts
3667
3695
  var templates2 = {
3668
3696
  defaultLocale: "idioma predeterminado",
3697
+ defaultChip: "predeterminado",
3669
3698
  builtInBadge: "integrado",
3670
3699
  subject: "Asunto",
3671
3700
  htmlBody: "Cuerpo HTML",
@@ -3674,10 +3703,13 @@ var templates2 = {
3674
3703
  title: "Plantillas",
3675
3704
  newTemplate: "Nueva plantilla",
3676
3705
  hint: "Cada correo que env\xEDa la aplicaci\xF3n. Abre uno para editar su contenido y ver la vista previa en directo.",
3677
- loading: "Cargando plantillas\u2026"
3706
+ loading: "Cargando plantillas\u2026",
3707
+ openLocale: "Abrir la versi\xF3n {locale} de {type}"
3678
3708
  },
3679
3709
  editor: {
3680
3710
  loading: "Cargando plantilla\u2026",
3711
+ locales: "Idiomas",
3712
+ discardChanges: "Este idioma tiene cambios sin guardar. \xBFDescartarlos y cambiar de idioma?",
3681
3713
  addLocale: "+ A\xF1adir idioma",
3682
3714
  builtInNote: "correo integrado: se puede editar o restaurar, no eliminar",
3683
3715
  active: "Activa",
@@ -3713,7 +3745,8 @@ var templates2 = {
3713
3745
  errorLocale: "Idioma: una etiqueta de idioma como fr, es o fr-CA.",
3714
3746
  errorText: "El cuerpo en texto plano es obligatorio \u2014 es lo que puede mostrar cualquier cliente de correo.",
3715
3747
  exists: '"{type}" ya existe \u2014 \xE1brela desde la lista para editarla.',
3716
- existsLocale: '"{type}" ({locale}) ya existe \u2014 \xE1brela desde la lista para editarla.'
3748
+ existsLocale: '"{type}" ({locale}) ya existe \u2014 \xE1brela desde la lista para editarla.',
3749
+ untranslated: "Todav\xEDa en la versi\xF3n predeterminada: {fields}. Trad\xFAcelos antes de a\xF1adir este idioma."
3717
3750
  }
3718
3751
  };
3719
3752
  var templates_default2 = templates2;
@@ -4357,6 +4390,7 @@ var config_default3 = config3;
4357
4390
  // src/admin-i18n/fr/templates.ts
4358
4391
  var templates3 = {
4359
4392
  defaultLocale: "langue par d\xE9faut",
4393
+ defaultChip: "par d\xE9faut",
4360
4394
  builtInBadge: "int\xE9gr\xE9",
4361
4395
  subject: "Objet",
4362
4396
  htmlBody: "Corps HTML",
@@ -4365,10 +4399,13 @@ var templates3 = {
4365
4399
  title: "Mod\xE8les",
4366
4400
  newTemplate: "Nouveau mod\xE8le",
4367
4401
  hint: "Chaque e-mail envoy\xE9 par l'application. Ouvrez-en un pour modifier son contenu et le pr\xE9visualiser en direct.",
4368
- loading: "Chargement des mod\xE8les\u2026"
4402
+ loading: "Chargement des mod\xE8les\u2026",
4403
+ openLocale: "Ouvrir la version {locale} de {type}"
4369
4404
  },
4370
4405
  editor: {
4371
4406
  loading: "Chargement du mod\xE8le\u2026",
4407
+ locales: "Langues",
4408
+ discardChanges: "Cette langue a des modifications non enregistr\xE9es. Les abandonner et changer de langue ?",
4372
4409
  addLocale: "+ Ajouter une langue",
4373
4410
  builtInNote: "e-mail int\xE9gr\xE9 : modifiable ou restaurable, mais pas supprimable",
4374
4411
  active: "Actif",
@@ -4404,7 +4441,8 @@ var templates3 = {
4404
4441
  errorLocale: "Langue : une \xE9tiquette de langue comme fr, es ou fr-CA.",
4405
4442
  errorText: "Le corps en texte brut est obligatoire \u2014 c\u2019est ce que tout client e-mail peut afficher.",
4406
4443
  exists: "\xAB {type} \xBB existe d\xE9j\xE0 \u2014 ouvrez-le depuis la liste pour le modifier.",
4407
- existsLocale: "\xAB {type} \xBB ({locale}) existe d\xE9j\xE0 \u2014 ouvrez-le depuis la liste pour le modifier."
4444
+ existsLocale: "\xAB {type} \xBB ({locale}) existe d\xE9j\xE0 \u2014 ouvrez-le depuis la liste pour le modifier.",
4445
+ untranslated: "Encore dans la version par d\xE9faut : {fields}. Traduisez-les avant d\u2019ajouter cette langue."
4408
4446
  }
4409
4447
  };
4410
4448
  var templates_default3 = templates3;
@@ -4489,8 +4527,10 @@ function formatAdminDate(value, locale = DEFAULT_ADMIN_LOCALE, style = "datetime
4489
4527
  detectAdminLocale,
4490
4528
  formatAdminDate,
4491
4529
  formatConfigValue,
4530
+ groupTemplatesByType,
4492
4531
  inferConfigValue,
4493
4532
  isAdminLocale,
4494
- isMfaRequired
4533
+ isMfaRequired,
4534
+ missingTemplateLocales
4495
4535
  });
4496
4536
  //# sourceMappingURL=index.cjs.map