@extrahorizon/exh-cli 1.13.2-dev-197-674338d → 1.13.2-dev-198-edb4db6

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.
@@ -42,13 +42,15 @@ async function syncPasswordPolicy(passwordPolicy) {
42
42
  await (0, user_1.updatePasswordPolicy)(passwordPolicy);
43
43
  console.log((0, chalk_1.green)('✓ Synced password policy'));
44
44
  }
45
- async function syncEmailTemplates(emailTemplateNames) {
46
- if (!emailTemplateNames || Object.keys(emailTemplateNames).length === 0) {
45
+ async function syncEmailTemplates(emailTemplates) {
46
+ if (!emailTemplates || Object.keys(emailTemplates).length < 1) {
47
47
  return;
48
48
  }
49
- const emailTemplates = await convertEmailTemplateNamesToIds(emailTemplateNames);
50
- if (Object.keys(emailTemplates).length === 0) {
51
- return;
49
+ for (const name of Object.values(emailTemplates)) {
50
+ const template = await templateV2Repository.findByName(name);
51
+ if (!template) {
52
+ throw new Error(`❌ Template with name "${name}" not found.`);
53
+ }
52
54
  }
53
55
  console.log((0, chalk_1.blue)('Syncing email templates'));
54
56
  await (0, user_1.updateEmailTemplates)(emailTemplates);
@@ -62,27 +64,3 @@ async function syncVerificationSettings(verificationSettings) {
62
64
  await (0, user_1.updateVerificationSettings)(verificationSettings);
63
65
  console.log((0, chalk_1.green)('✓ Synced verification settings'));
64
66
  }
65
- async function convertEmailTemplateNamesToIds(emailTemplateNames) {
66
- const emailTemplates = {};
67
- const templateNameIdMap = {
68
- activationEmailTemplateName: 'activationEmailTemplateId',
69
- reactivationEmailTemplateName: 'reactivationEmailTemplateId',
70
- passwordResetEmailTemplateName: 'passwordResetEmailTemplateId',
71
- oidcUnlinkEmailTemplateName: 'oidcUnlinkEmailTemplateId',
72
- oidcUnlinkPinEmailTemplateName: 'oidcUnlinkPinEmailTemplateId',
73
- activationPinEmailTemplateName: 'activationPinEmailTemplateId',
74
- reactivationPinEmailTemplateName: 'reactivationPinEmailTemplateId',
75
- passwordResetPinEmailTemplateName: 'passwordResetPinEmailTemplateId',
76
- };
77
- for (const [nameProperty, idProperty] of Object.entries(templateNameIdMap)) {
78
- if (emailTemplateNames[nameProperty]) {
79
- const template = await templateV2Repository.findByName(emailTemplateNames[nameProperty]);
80
- if (!template) {
81
- console.log((0, chalk_1.yellow)(`⚠️ Template with name "${emailTemplateNames[nameProperty]}" not found. Skipping ${idProperty}.`));
82
- continue;
83
- }
84
- emailTemplates[idProperty] = template.id;
85
- }
86
- }
87
- return emailTemplates;
88
- }
@@ -1,19 +1,33 @@
1
- import { FileServiceSettingsUpdate, PasswordPolicy, VerificationSettings } from '@extrahorizon/javascript-sdk';
1
+ import { FileServiceSettingsUpdate } from '@extrahorizon/javascript-sdk';
2
+ export interface PasswordPolicySettings {
3
+ minimumLength?: number;
4
+ maximumLength?: number;
5
+ upperCaseRequired?: boolean;
6
+ lowerCaseRequired?: boolean;
7
+ symbolRequired?: boolean;
8
+ numberRequired?: boolean;
9
+ }
10
+ export interface VerificationSettings {
11
+ enablePinCodeActivationRequests?: boolean;
12
+ enablePinCodeForgotPasswordRequests?: boolean;
13
+ }
14
+ export interface EmailTemplateSettings {
15
+ activationEmailTemplateName?: string;
16
+ reactivationEmailTemplateName?: string;
17
+ passwordResetEmailTemplateName?: string;
18
+ oidcUnlinkEmailTemplateName?: string;
19
+ oidcUnlinkPinEmailTemplateName?: string;
20
+ activationPinEmailTemplateName?: string;
21
+ reactivationPinEmailTemplateName?: string;
22
+ passwordResetPinEmailTemplateName?: string;
23
+ }
24
+ export interface UserServiceSettings {
25
+ passwordPolicy?: PasswordPolicySettings;
26
+ verification?: VerificationSettings;
27
+ emailTemplates?: EmailTemplateSettings;
28
+ }
2
29
  export interface ServiceSettingsFile {
3
- users?: {
4
- passwordPolicy?: Partial<PasswordPolicy>;
5
- verification?: Partial<Pick<VerificationSettings, 'enablePinCodeActivationRequests' | 'enablePinCodeForgotPasswordRequests'>>;
6
- emailTemplates?: Partial<{
7
- activationEmailTemplateName: string;
8
- reactivationEmailTemplateName: string;
9
- passwordResetEmailTemplateName: string;
10
- oidcUnlinkEmailTemplateName: string;
11
- oidcUnlinkPinEmailTemplateName: string;
12
- activationPinEmailTemplateName: string;
13
- reactivationPinEmailTemplateName: string;
14
- passwordResetPinEmailTemplateName: string;
15
- }>;
16
- };
30
+ users?: UserServiceSettings;
17
31
  files?: FileServiceSettingsUpdate;
18
32
  }
19
33
  export declare function readAndValidateServiceSettingsConfig(path: string): Promise<ServiceSettingsFile>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@extrahorizon/exh-cli",
3
- "version": "1.13.2-dev-197-674338d",
3
+ "version": "1.13.2-dev-198-edb4db6",
4
4
  "main": "build/index.js",
5
5
  "exports": "./build/index.js",
6
6
  "license": "MIT",