@diagramers/cli 1.0.22 → 1.0.24

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 (65) hide show
  1. package/README.md +17 -3
  2. package/dist/services/template-updater.d.ts +2 -0
  3. package/dist/services/template-updater.d.ts.map +1 -1
  4. package/dist/services/template-updater.js +66 -14
  5. package/dist/services/template-updater.js.map +1 -1
  6. package/package.json +5 -1
  7. package/templates/api/certs/auth-app-cert.json +13 -0
  8. package/templates/api/main.ts +10 -0
  9. package/templates/api/package.json +70 -0
  10. package/templates/api/src/assets/css/email-template.css +8 -0
  11. package/templates/api/src/assets/images/logo_large.png +0 -0
  12. package/templates/api/src/assets/keys/certificate.pem +22 -0
  13. package/templates/api/src/assets/keys/private-key.pem +28 -0
  14. package/templates/api/src/config/config-interface.ts +191 -0
  15. package/templates/api/src/config/development.ts +145 -0
  16. package/templates/api/src/config/index.ts +59 -0
  17. package/templates/api/src/config/production.ts +145 -0
  18. package/templates/api/src/config/staging.ts +144 -0
  19. package/templates/api/src/config/uat.ts +144 -0
  20. package/templates/api/src/controllers/account-controller.ts +162 -0
  21. package/templates/api/src/entities/audit.ts +12 -0
  22. package/templates/api/src/entities/base-entity.ts +10 -0
  23. package/templates/api/src/entities/user.ts +71 -0
  24. package/templates/api/src/helpers/FrameworkHelper.ts +157 -0
  25. package/templates/api/src/helpers/auth.ts +971 -0
  26. package/templates/api/src/helpers/cronHelper.ts +170 -0
  27. package/templates/api/src/helpers/dbcontext.ts +83 -0
  28. package/templates/api/src/helpers/encryptionHelper.ts +76 -0
  29. package/templates/api/src/helpers/enums.ts +258 -0
  30. package/templates/api/src/helpers/handle-response.ts +49 -0
  31. package/templates/api/src/helpers/httpHelper.ts +75 -0
  32. package/templates/api/src/helpers/mailer.ts +152 -0
  33. package/templates/api/src/helpers/result.ts +47 -0
  34. package/templates/api/src/helpers/string-helper.ts +27 -0
  35. package/templates/api/src/routes/account-routes.ts +37 -0
  36. package/templates/api/src/routes/auth-routes.ts +286 -0
  37. package/templates/api/src/routes/index.ts +92 -0
  38. package/templates/api/src/schemas/audit.ts +36 -0
  39. package/templates/api/src/schemas/otp.ts +52 -0
  40. package/templates/api/src/schemas/session.ts +57 -0
  41. package/templates/api/src/schemas/user.ts +125 -0
  42. package/templates/api/src/server/index.ts +86 -0
  43. package/templates/api/src/server/socket-server-provider.ts +209 -0
  44. package/templates/api/src/services/account-service.ts +243 -0
  45. package/templates/api/src/services/audit-service.ts +56 -0
  46. package/templates/api/tsconfig.json +16 -0
  47. package/templates/api/webpack.config.js +66 -0
  48. package/scripts/publish.sh +0 -58
  49. package/scripts/setup.sh +0 -38
  50. package/scripts/version.sh +0 -80
  51. package/src/commands/api.ts +0 -76
  52. package/src/commands/extend.ts +0 -35
  53. package/src/commands/init.ts +0 -32
  54. package/src/commands/update.ts +0 -25
  55. package/src/config/template-config.ts +0 -111
  56. package/src/index.ts +0 -41
  57. package/src/services/api-generator.ts +0 -378
  58. package/src/services/project-extender.ts +0 -330
  59. package/src/services/project-initializer.ts +0 -335
  60. package/src/services/project-updater.ts +0 -117
  61. package/src/services/relation-generator.ts +0 -203
  62. package/src/services/table-generator.ts +0 -114
  63. package/src/services/template-processor.ts +0 -166
  64. package/src/services/template-updater.ts +0 -184
  65. package/tsconfig.json +0 -19
package/README.md CHANGED
@@ -55,10 +55,10 @@ diagramers init admin <project-name>
55
55
  - MongoDB with Mongoose
56
56
  - Firebase Functions integration
57
57
  - Socket.io for real-time features
58
- - Authentication system
58
+ - **Multi-Provider Authentication System** - Internal, Firebase, OAuth, SMS OTP, Email OTP
59
59
  - Email and SMS services
60
60
  - Audit logging
61
- - Environment configurations
61
+ - Environment configurations with comprehensive auth settings
62
62
 
63
63
  ### Project Updates
64
64
 
@@ -79,7 +79,7 @@ diagramers update --force
79
79
  # List available features
80
80
  diagramers extend --list
81
81
 
82
- # Add authentication system
82
+ # Add authentication system (includes multi-provider auth)
83
83
  diagramers extend --feature auth
84
84
 
85
85
  # Add email service
@@ -95,6 +95,20 @@ diagramers extend --feature cron
95
95
  diagramers extend --feature audit
96
96
  ```
97
97
 
98
+ ### Authentication System Features
99
+
100
+ The CLI now supports the enhanced multi-provider authentication system:
101
+
102
+ - **Internal Authentication** - Email/password with configurable policies
103
+ - **Firebase Authentication** - Google Firebase integration
104
+ - **OAuth Providers** - Google, Facebook, GitHub, LinkedIn, Twitter
105
+ - **SMS OTP** - One-time passwords via SMS (Twilio/AWS SNS)
106
+ - **Email OTP** - One-time passwords via email
107
+ - **Session Management** - JWT tokens with refresh capabilities
108
+ - **Unified User Model** - Single user with multiple auth providers
109
+
110
+ All new projects include comprehensive authentication configuration with dummy values that developers can replace with their own credentials.
111
+
98
112
  ## 🔧 API Development Commands
99
113
 
100
114
  ### Generate Complete Module
@@ -11,6 +11,8 @@ export declare class TemplateUpdater {
11
11
  private isValidProject;
12
12
  private createBackup;
13
13
  private downloadTemplate;
14
+ private downloadFromNpm;
15
+ private copyLocalTemplate;
14
16
  private getUpdateableFiles;
15
17
  private checkConflicts;
16
18
  private performUpdate;
@@ -1 +1 @@
1
- {"version":3,"file":"template-updater.d.ts","sourceRoot":"","sources":["../../src/services/template-updater.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,gBAAgB,CAAS;;IAO3B,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;YAyC7C,cAAc;YAOd,YAAY;YA8BZ,gBAAgB;YAyBhB,kBAAkB;YAmBlB,cAAc;YAqBd,aAAa;YAeb,OAAO;CAKtB"}
1
+ {"version":3,"file":"template-updater.d.ts","sourceRoot":"","sources":["../../src/services/template-updater.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,gBAAgB,CAAS;;IAO3B,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;YAyC7C,cAAc;YAOd,YAAY;YA8BZ,gBAAgB;YAiBhB,eAAe;YAiCf,iBAAiB;YAoCjB,kBAAkB;YAmBlB,cAAc;YAqBd,aAAa;YAeb,OAAO;CAKtB"}
@@ -41,6 +41,7 @@ const fs = __importStar(require("fs-extra"));
41
41
  const path = __importStar(require("path"));
42
42
  const glob = __importStar(require("glob"));
43
43
  const chalk_1 = __importDefault(require("chalk"));
44
+ const child_process_1 = require("child_process");
44
45
  class TemplateUpdater {
45
46
  constructor() {
46
47
  this.currentProjectPath = process.cwd();
@@ -112,22 +113,73 @@ class TemplateUpdater {
112
113
  console.log(chalk_1.default.blue(`📦 Downloading latest template: ${templatePackage}`));
113
114
  // Create temporary directory
114
115
  await fs.ensureDir(this.tempTemplatePath);
115
- // For now, we'll simulate downloading by copying from the CLI package
116
- // In a real implementation, you'd use npm to download the latest version
117
- const cliTemplatePath = path.resolve(__dirname, '../../../diagramers-api');
118
- if (await fs.pathExists(cliTemplatePath)) {
119
- await fs.copy(cliTemplatePath, this.tempTemplatePath, {
120
- filter: (src) => {
121
- const relativePath = path.relative(cliTemplatePath, src);
122
- return !relativePath.startsWith('node_modules') &&
123
- !relativePath.startsWith('.git') &&
124
- !relativePath.startsWith('dist') &&
125
- !relativePath.startsWith('lib');
126
- }
116
+ try {
117
+ // Try to download from npm registry first
118
+ await this.downloadFromNpm(templatePackage);
119
+ }
120
+ catch (error) {
121
+ console.log(chalk_1.default.yellow('⚠️ Could not download from npm, trying local template...'));
122
+ // Fallback to local template if available
123
+ await this.copyLocalTemplate();
124
+ }
125
+ }
126
+ async downloadFromNpm(templatePackage) {
127
+ const npmCachePath = path.join(this.tempTemplatePath, 'node_modules', templatePackage);
128
+ try {
129
+ // Use npm pack to download the package
130
+ (0, child_process_1.execSync)(`npm pack ${templatePackage} --silent`, {
131
+ cwd: this.tempTemplatePath,
132
+ stdio: 'pipe'
133
+ });
134
+ // Find the downloaded tarball
135
+ const files = await fs.readdir(this.tempTemplatePath);
136
+ const tarball = files.find(file => file.endsWith('.tgz'));
137
+ if (!tarball) {
138
+ throw new Error('No tarball found after npm pack');
139
+ }
140
+ // Extract the tarball
141
+ (0, child_process_1.execSync)(`tar -xzf ${tarball} --strip-components=1`, {
142
+ cwd: this.tempTemplatePath,
143
+ stdio: 'pipe'
127
144
  });
145
+ // Clean up tarball
146
+ await fs.remove(path.join(this.tempTemplatePath, tarball));
147
+ console.log(chalk_1.default.green(`✅ Template downloaded from npm: ${templatePackage}`));
148
+ }
149
+ catch (error) {
150
+ throw new Error(`Failed to download template from npm: ${error.message}`);
151
+ }
152
+ }
153
+ async copyLocalTemplate() {
154
+ // Try to find local template in CLI package
155
+ const cliRoot = path.resolve(__dirname, '../../../');
156
+ const possiblePaths = [
157
+ path.join(cliRoot, 'diagramers-api'),
158
+ path.join(cliRoot, 'templates', 'api'),
159
+ path.join(cliRoot, 'template'),
160
+ path.join(__dirname, '../../templates/api'),
161
+ path.join(__dirname, '../templates/api')
162
+ ];
163
+ let templateFound = false;
164
+ for (const templatePath of possiblePaths) {
165
+ if (await fs.pathExists(templatePath)) {
166
+ await fs.copy(templatePath, this.tempTemplatePath, {
167
+ filter: (src) => {
168
+ const relativePath = path.relative(templatePath, src);
169
+ return !relativePath.startsWith('node_modules') &&
170
+ !relativePath.startsWith('.git') &&
171
+ !relativePath.startsWith('dist') &&
172
+ !relativePath.startsWith('lib') &&
173
+ !relativePath.startsWith('.temp');
174
+ }
175
+ });
176
+ templateFound = true;
177
+ console.log(chalk_1.default.green(`✅ Local template copied from: ${templatePath}`));
178
+ break;
179
+ }
128
180
  }
129
- else {
130
- throw new Error('Template source not found. Please ensure the CLI is properly installed.');
181
+ if (!templateFound) {
182
+ throw new Error('Template source not found. Please ensure the CLI is properly installed or the template package is available.');
131
183
  }
132
184
  }
133
185
  async getUpdateableFiles() {
@@ -1 +1 @@
1
- {"version":3,"file":"template-updater.js","sourceRoot":"","sources":["../../src/services/template-updater.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template-updater.js","sourceRoot":"","sources":["../../src/services/template-updater.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,2CAA6B;AAC7B,2CAA6B;AAC7B,kDAA0B;AAC1B,iDAAyC;AAQzC,MAAa,eAAe;IAI1B;QACE,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QACxC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAA8B;QACzC,8CAA8C;QAC9C,IAAI,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;QACpG,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAE/D,6BAA6B;QAC7B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC;YACH,2BAA2B;YAC3B,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,IAAI,iBAAiB,CAAC,CAAC;YAEnE,wCAAwC;YACxC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAExD,sBAAsB;YACtB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;YAE7D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC3C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAC;gBAC5E,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACrE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC,CAAC;gBAClE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrD,CAAC;YAED,qBAAqB;YACrB,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YAEzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,iDAAiD,CAAC,CAAC,CAAC;QAC/E,CAAC;gBAAS,CAAC;YACT,8BAA8B;YAC9B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;QAEjE,OAAO,MAAM,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACjF,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,SAAS,EAAE,CAAC,CAAC;QAE7E,gCAAgC;QAChC,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAE/B,0DAA0D;QAC1D,MAAM,aAAa,GAAG;YACpB,KAAK;YACL,SAAS;YACT,cAAc;YACd,eAAe;YACf,mBAAmB;YACnB,WAAW;YACX,YAAY;SACb,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;YAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAE7C,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpC,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,yBAAyB,UAAU,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,eAAuB;QACpD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mCAAmC,eAAe,EAAE,CAAC,CAAC,CAAC;QAE9E,6BAA6B;QAC7B,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAE1C,IAAI,CAAC;YACH,0CAA0C;YAC1C,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,2DAA2D,CAAC,CAAC,CAAC;YAEvF,0CAA0C;YAC1C,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,eAAuB;QACnD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;QAEvF,IAAI,CAAC;YACH,uCAAuC;YACvC,IAAA,wBAAQ,EAAC,YAAY,eAAe,WAAW,EAAE;gBAC/C,GAAG,EAAE,IAAI,CAAC,gBAAgB;gBAC1B,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;YAEH,8BAA8B;YAC9B,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACtD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YAE1D,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrD,CAAC;YAED,sBAAsB;YACtB,IAAA,wBAAQ,EAAC,YAAY,OAAO,uBAAuB,EAAE;gBACnD,GAAG,EAAE,IAAI,CAAC,gBAAgB;gBAC1B,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;YAEH,mBAAmB;YACnB,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC;YAE3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,mCAAmC,eAAe,EAAE,CAAC,CAAC,CAAC;QACjF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,yCAAyC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC7B,4CAA4C;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACrD,MAAM,aAAa,GAAG;YACpB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC;SACzC,CAAC;QAEF,IAAI,aAAa,GAAG,KAAK,CAAC;QAE1B,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;YACzC,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBACtC,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE;oBACjD,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE;wBACd,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;wBACtD,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC;4BACxC,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC;4BAChC,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC;4BAChC,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC;4BAC/B,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;oBAC3C,CAAC;iBACF,CAAC,CAAC;gBACH,aAAa,GAAG,IAAI,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,iCAAiC,YAAY,EAAE,CAAC,CAAC,CAAC;gBAC1E,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,8GAA8G,CAAC,CAAC;QAClI,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC9B,MAAM,kBAAkB,GAAG;YACzB,kBAAkB;YAClB,iBAAiB;YACjB,iBAAiB;YACjB,mBAAmB;YACnB,eAAe;SAChB,CAAC;QAEF,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;YACnE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,KAAe;QAC1C,MAAM,SAAS,GAAa,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;YAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;YAE7D,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC1E,MAAM,eAAe,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBAChE,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBAE9D,qDAAqD;gBACrD,IAAI,eAAe,KAAK,cAAc,EAAE,CAAC;oBACvC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,KAAe,EAAE,QAAiB,KAAK;QACjE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;QAExD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;YAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;YAE7D,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBACtC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC9C,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;gBACzC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,OAAO;QACnB,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC/C,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;CACF;AAzOD,0CAyOC"}
package/package.json CHANGED
@@ -1,11 +1,15 @@
1
1
  {
2
2
  "name": "@diagramers/cli",
3
- "version": "1.0.22",
3
+ "version": "1.0.24",
4
4
  "description": "Diagramers CLI - Command-line tools for managing Diagramers projects",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
7
7
  "diagramers": "./dist/index.js"
8
8
  },
9
+ "files": [
10
+ "dist/**/*",
11
+ "templates/**/*"
12
+ ],
9
13
  "scripts": {
10
14
  "build": "tsc",
11
15
  "dev": "ts-node src/index.ts",
@@ -0,0 +1,13 @@
1
+ {
2
+ "type": "service_account",
3
+ "project_id": "sendifier-web-app",
4
+ "private_key_id": "a8b7d1851d52845652d8dea6dc61c1e65480ad75",
5
+ "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCW+GaKvk2Tt01z\n98kg1T2UQXijAGKihF9gELDy/s2dF6taSUZQ5ldf2i3TSz3cdg5cmwZDFZBXXCOi\nV4nGiz0TtkE7bcTvYRDTdCMglQXOUQFFSWTNGBvvzFLk6gqpnoRnZOfS0Izi36ZN\nl/iKmo7cpkFWKWqqI2h5By856JoQVHx3Fc/c+8Zi+IcK/o/94Oh4aAE7evKBtQ6o\nbJw/0MwdxfoawkFA410qR7EZRobYECvZ1gmXmvw81AKLVDxtGaTlzNWAfMQsYt7S\nAT3OO8dkC09hwSdsaz9Sz2CiTYc7PY4SUFjYb01MtI8qrHpGy7PWrCm5MqXlMVaj\nLtdsr5+lAgMBAAECggEADy0RQck3iy3V/15dPYuyEQEz207im2urGsESyJqMmMoU\nU5MiGmfNSLlp+d+KbGsBrpV2369/PwjoHB2on+jHTv/3Nr4mGdosEtWN4myYlNDX\ny9tA4s0VodlsS86rG7nvnWUrWKnWP8gzs4EfXu+ChPPBhaPMMSY2DlSGjs+vDQ0J\nnFGeJgmbb2WezJQIWYxunpYwKN9gxmMY796baLjQriIz3ZG3n543nMLX8+2bJskz\n4NwsOYg2Od59FI5G9ukm1ZCUksjU+gVkVNaiHzjMgoWROSnotCKUrkkzP01a1WNu\nwrXQ354NNbCrvfF9J0gLyFyh1WlXID/6I8t7MYFOgQKBgQDJtEnmpj4mOPSh3LzR\nH7lUcVSccZxBXiQZ8nPA2R0ijjWd9nd5tWUeRkPFrSzZbDjDwhC0eeJTfL+RFG+M\nuhT33VRE1NMWnDl4JjyN0JgMAtkh46t0Wssouy2lsJHhmnvg+x4IXeY+VTs59vTm\np8+i4DDZSVYRTeMoNXPSFk7EqQKBgQC/m/fNj1kAplJN25x7qKemQGZJ71j0X5Ga\nmWPS4N1DowldjK6tYUyJYiHkAlgynPHh34Bu2hcsKq4NjrMfGXHg16/41gqtm5Ji\nE6N3B6EZmWHn6EetPQTu7EUv93Xt9CL42/QoKl+GgW0nP1Oq5/33xEKmn5ytFnxA\nn4/Zd3dknQKBgGlCzeIxVXOq+3dQ87SKwrPfpNEztOCkGWD1FxVH+J1k63QxAC6i\nzE9dSdbqReJ9SK5YI1Gb3dHF4076BDDDl1e2yFhXXIWLJ66c/bLgbciu39OAtaQ2\nEZmC/RJfr/G1JfrF8elZ32MeJZddWnbYklIkfzmVvPWw2N/N7VBw1dBpAoGBAJer\nOce5BFaDUPrYL1Gi+rGaoF093EfzrimV6XJvFDYJw8wNI+eR8Sd+Sh1VzcKigMSu\nSdd1Qopvbj7FCfxAA+haUqzBoMozLvf7W5VIsLi2tM0BDFuQxWrqEwoY83xbl6Mt\nWGLCx8KMiH5cnjnWUS3iaG/EQByyg8ATjaYx7ovxAoGAIEL3/VVDvmHoVNeymEId\nEzPcpo9rXlM6TqF+GPvv70RkCStYchMXpIStw0Ol50J1M8Wekjk3zapktnIEeNkV\nRu7LIBfLCKZUi5S2Eje2ySNqPwthsLGnf2ucAbmxf9iGKdVYsygCWiKjzWzMY6R0\nLIP9WS2447iE8WzT3boErEs=\n-----END PRIVATE KEY-----\n",
6
+ "client_email": "sendifier-web-app@appspot.gserviceaccount.com",
7
+ "client_id": "106469361322605622638",
8
+ "auth_uri": "https://accounts.google.com/o/oauth2/auth",
9
+ "token_uri": "https://oauth2.googleapis.com/token",
10
+ "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
11
+ "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/sendifier-web-app%40appspot.gserviceaccount.com",
12
+ "universe_domain": "googleapis.com"
13
+ }
@@ -0,0 +1,10 @@
1
+ // import { Server } from "./server";
2
+ import {https} from "firebase-functions";
3
+ import { Server } from './src/server';
4
+ import { Config } from './src/config';
5
+ const server = new Server();
6
+ const config = Config;
7
+ server.Create(config);
8
+ server.Start(config);
9
+ const app = https.onRequest(server.app);
10
+ export default app;
@@ -0,0 +1,70 @@
1
+ {
2
+ "name": "diagramers-api-project",
3
+ "version": "1.0.0",
4
+ "description": "Diagramers API Project - Generated from @diagramers/cli",
5
+ "main": "main.ts",
6
+ "scripts": {
7
+ "build": "webpack --mode production",
8
+ "dev": "webpack --mode development --watch",
9
+ "start": "node dist/main.js",
10
+ "dev:server": "ts-node main.ts",
11
+ "clean": "rm -rf dist",
12
+ "test": "echo \"No tests specified\" && exit 0"
13
+ },
14
+ "dependencies": {
15
+ "express": "^4.18.2",
16
+ "cors": "^2.8.5",
17
+ "helmet": "^7.1.0",
18
+ "compression": "^1.7.4",
19
+ "morgan": "^1.10.0",
20
+ "dotenv": "^16.3.1",
21
+ "joi": "^17.11.0",
22
+ "bcryptjs": "^2.4.3",
23
+ "jsonwebtoken": "^9.0.2",
24
+ "nodemailer": "^6.9.7",
25
+ "handlebars": "^4.7.8",
26
+ "socket.io": "^4.7.4",
27
+ "node-cron": "^3.0.3",
28
+ "aws-sdk": "^2.1531.0",
29
+ "firebase-admin": "^12.0.0",
30
+ "google-auth-library": "^9.4.1",
31
+ "twilio": "^4.19.0",
32
+ "multer": "^1.4.5-lts.1",
33
+ "sharp": "^0.33.1",
34
+ "uuid": "^9.0.1",
35
+ "moment": "^2.29.4",
36
+ "lodash": "^4.17.21"
37
+ },
38
+ "devDependencies": {
39
+ "@types/express": "^4.17.21",
40
+ "@types/cors": "^2.8.17",
41
+ "@types/compression": "^1.7.5",
42
+ "@types/morgan": "^1.9.9",
43
+ "@types/bcryptjs": "^2.4.6",
44
+ "@types/jsonwebtoken": "^9.0.5",
45
+ "@types/nodemailer": "^6.4.14",
46
+ "@types/node-cron": "^3.0.11",
47
+ "@types/multer": "^1.4.11",
48
+ "@types/sharp": "^0.32.0",
49
+ "@types/uuid": "^9.0.7",
50
+ "@types/lodash": "^4.14.202",
51
+ "@types/node": "^20.10.0",
52
+ "typescript": "^5.4.5",
53
+ "ts-node": "^10.9.2",
54
+ "webpack": "^5.89.0",
55
+ "webpack-cli": "^5.1.4",
56
+ "webpack-node-externals": "^3.0.0",
57
+ "ts-loader": "^9.5.1"
58
+ },
59
+ "keywords": [
60
+ "diagramers",
61
+ "api",
62
+ "nodejs",
63
+ "typescript",
64
+ "express",
65
+ "authentication",
66
+ "websocket"
67
+ ],
68
+ "author": "Diagramers Team",
69
+ "license": "MIT"
70
+ }
@@ -0,0 +1,8 @@
1
+ .activation_button {
2
+ background-color: #272727;
3
+ color: #fff;
4
+ width: 150px;
5
+ height: 40px;
6
+ padding: 10px 10px 10px 10px;
7
+ border-radius: 5px;
8
+ }
@@ -0,0 +1,22 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDtzCCAp8CFGGm7kkYGsjlcwvRxs71EZqhheGYMA0GCSqGSIb3DQEBCwUAMIGX
3
+ MQswCQYDVQQGEwJFRzEOMAwGA1UECAwFQ2Fpcm8xDjAMBgNVBAcMBUNhaXJvMRMw
4
+ EQYDVQQKDApTZW5kaWZpZXIhMRMwEQYDVQQLDApTZW5kaWZpZXIhMRowGAYDVQQD
5
+ DBFzZW5kaWZpZXItYmFja2VuZDEiMCAGCSqGSIb3DQEJARYTYXlkYWhhYkBvdXRs
6
+ b29rLmNvbTAeFw0yMzEyMTQwMDM2MTFaFw0yNDEyMTMwMDM2MTFaMIGXMQswCQYD
7
+ VQQGEwJFRzEOMAwGA1UECAwFQ2Fpcm8xDjAMBgNVBAcMBUNhaXJvMRMwEQYDVQQK
8
+ DApTZW5kaWZpZXIhMRMwEQYDVQQLDApTZW5kaWZpZXIhMRowGAYDVQQDDBFzZW5k
9
+ aWZpZXItYmFja2VuZDEiMCAGCSqGSIb3DQEJARYTYXlkYWhhYkBvdXRsb29rLmNv
10
+ bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALnLPve1wO/7Xq9tgEsl
11
+ /zE5qUS9p8vYgjA2953MubcDeaCrqpxRP/LSqM2bMd/uIQUqL3VLYK9sfcJV7RXT
12
+ HazhbP2OTH+ny+qHWx4VLrbFVpc0w8EUPAEUXcBZEX52ueTtKrtxgv+R5nCSXRs2
13
+ CanMTcaNVlVnOq+cQkq04UuvpBjjBrdINX6+x/WSCGqRuq/qmz9/kcf53sYOBkFT
14
+ VlZmhMdQAXBFuaUxBHLSxYtBmndk1jlHEQFX4t5cdAOHfLiaqbd2Cp/aWQbV4O/V
15
+ 8jJ/SJVenA1P1wnGJrilvffMpIKaWMXOob+78nbnt221rWgempIJQRg5hxr7zG25
16
+ TT0CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEArP87tWT8CzJO5Gn9fwlH21JHurJM
17
+ NYWtRtFWevD7eyzoai+8DTRwEbSWAJPA28+fxzUeN8mEDZg47HkM9mQmE+mZwg8Q
18
+ XY5R+3kloBtTSUMxfLlfUaC+1zkjuYgtfUL2QMcUd8OrcHbbQAktkS+A2IBNDNlH
19
+ E11lxhcEO1oTn1/Bp3S7Wkdju832s+Vth7pPHZg32jzmZ8vpi/U7xv8pGHIJF+eh
20
+ WMgAM7OLX343/FOGOzF5xh114NKl+8gD6fbZ+KB6XM/wKt1GyZsNEdacLXTjhPPe
21
+ TgajLRhjcmwSHa/UL6Hu+68kCFoOr7yyUoZxoiy2jnHGnJesoWs43kHHLQ==
22
+ -----END CERTIFICATE-----
@@ -0,0 +1,28 @@
1
+ -----BEGIN PRIVATE KEY-----
2
+ MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC5yz73tcDv+16v
3
+ bYBLJf8xOalEvafL2IIwNvedzLm3A3mgq6qcUT/y0qjNmzHf7iEFKi91S2CvbH3C
4
+ Ve0V0x2s4Wz9jkx/p8vqh1seFS62xVaXNMPBFDwBFF3AWRF+drnk7Sq7cYL/keZw
5
+ kl0bNgmpzE3GjVZVZzqvnEJKtOFLr6QY4wa3SDV+vsf1kghqkbqv6ps/f5HH+d7G
6
+ DgZBU1ZWZoTHUAFwRbmlMQRy0sWLQZp3ZNY5RxEBV+LeXHQDh3y4mqm3dgqf2lkG
7
+ 1eDv1fIyf0iVXpwNT9cJxia4pb33zKSCmljFzqG/u/J257dtta1oHpqSCUEYOYca
8
+ +8xtuU09AgMBAAECggEAXZK2qO16OaOBYZslxTNi3njq/nsCepEVqJDWjzwfwMPY
9
+ SwqKh+YH7hUY/UyPhveY29AOTOXk0RU0FV9PY/GK/ZofWWiEsLpi4kC/rFwAxf6H
10
+ iOoDOUgmnGiUex6gx++l2l10aylVT8A8ri+ZAu5pWYJTHY/rjmHKVc2+OX/2BDab
11
+ ISfYdv2HKSyS7R1t2qLP66LV5u1Kvob4YX3PBweReA622piTtwxtXrIuF5/AjgQe
12
+ LF1P9rxpGO3woQjdc9EKBC5I9Erc/HuHuxMfSFdtTWSYKmaqGLPZ6/GQthsg6UPC
13
+ NZ3aC7LKcLg0Qow6VmnfMBwjXt2shp16qXEkL4mZYQKBgQDbH5EQyl6cjIC16rDs
14
+ Qi4pvOvPYgkkCR56NkNcJfiB2A6g2j9R/dsC+AxdP0N7lPeJPSgm4VNBG4cTNcCl
15
+ a6ARQ5h77P0BLzz0LlrluIC0qP2E11Luz68B/xHobpV6w+t2/2Jbsa5U47uFikEQ
16
+ B4CzMtGVryRaFb7slWkOp69WlQKBgQDZD8IdRcWxrqbOSAY66NbkgBfUDKfr/X8B
17
+ QEy2PwMPYSQM5fEfwXbVNeI7pMgxWrM8eoOyGLcjhP+DVyjmLIL1Xw6QZTR84GGr
18
+ 7ooWS9eG+ryM3IcZyjZwcvCkNGz8CfgXxw01oW7ICvluBxZRIf/qFXHZKIjIO15e
19
+ r3TuLku6CQKBgFmPI1l7fQP7ITg5PiqyOe/xOWg/p4DFAWHt/8YP9uwLBJ+V1D+M
20
+ xBEIlPUfwFMoZawABQMvIToBKEoftCdoP7oOqKouCJKNXhpnP9uYd3Jfh47d+xWE
21
+ aQEl4YngeNP+c6TlaKwViS1FDwXbphAJIP8dDDBjrzXqoWhNAO1ud+mpAoGAdf3b
22
+ 7h+kZH7lC9MZF+LEFbgPu+QZT+4foOV8DcFY/341o5FHLpTy7Nl6niNn83QzZFfQ
23
+ yPooa3V7k8DIab6efZVrjFCHZK5wSY7En3Qgt64K2qNyCTHjv+KrLweUirk8lGhO
24
+ pO2ZE8LrbcUKe5X40B1SItKm7/ldxiiobmTaI0kCgYA8xTX1p09wK5v9tLomL3I1
25
+ dzDMgEiIDwMEmhHjPP/4aWCQqntyShAN1hkvOE6OifJuJUZbEnHo3ihAGuw45xn8
26
+ l8NJd9y2eEX0Se0BeJxyJDYii592MbffIpGcoV1WkR0YRiUPTfkN+L0OBjFN02q+
27
+ wgJPNX0LwIfI7oyFrlW/8g==
28
+ -----END PRIVATE KEY-----
@@ -0,0 +1,191 @@
1
+ import { WhatsappProviders, AuthProvider, OAuthProvider } from "../helpers/enums";
2
+
3
+ export interface IConfig {
4
+ variables: any,
5
+ props: IConfigProps
6
+ }
7
+
8
+ export interface IConfigProps {
9
+ isProd: boolean;
10
+ isDev: boolean;
11
+ host_name: string;
12
+ port: string;
13
+ database_connectionstring: string;
14
+ base_site_url: string,
15
+ register_complete_page_url: string;
16
+ whatsapp_default_provider: WhatsappProviders;
17
+ whatsapp_providers_configurations: {
18
+ key: WhatsappProviders,
19
+ value: WhatsappProvidersConfig
20
+ }[];
21
+ development_environment_url: string;
22
+
23
+ // Authentication Configuration
24
+ auth: AuthConfig;
25
+
26
+ // Legacy Firebase config (kept for backward compatibility)
27
+ firebase_application_config: FirebaseConfig;
28
+ firebase_auth_certification_path: string;
29
+
30
+ internal_http_request_header_value: string;
31
+ internal_http_request_header_key: string;
32
+ http_request_header_requestidentifier_key: string;
33
+ redirect_all_requests_to_local: boolean;
34
+ local_api_tunnel_url: string;
35
+ local_ui_tunnel_url: string;
36
+ load_scheduled_tasks: boolean;
37
+ backup_databases_folder_path: string;
38
+ external_http_request_timeout: number;
39
+ }
40
+
41
+ export interface FirebaseConfig {
42
+ apiKey: string;
43
+ authDomain: string;
44
+ projectId: string;
45
+ storageBucket: string;
46
+ messagingSenderId: string;
47
+ appId: string;
48
+ }
49
+
50
+ export interface AuthConfig {
51
+ // Enabled authentication providers
52
+ enabled_providers: AuthProvider[];
53
+
54
+ // Default authentication provider
55
+ default_provider: AuthProvider;
56
+
57
+ // JWT Configuration
58
+ jwt: JWTConfig;
59
+
60
+ // Internal Authentication
61
+ internal: InternalAuthConfig;
62
+
63
+ // Firebase Authentication
64
+ firebase: FirebaseAuthConfig;
65
+
66
+ // OAuth Providers
67
+ oauth: OAuthConfig;
68
+
69
+ // SMS/OTP Configuration
70
+ sms_otp: SMSOTPConfig;
71
+
72
+ // Email OTP Configuration
73
+ email_otp: EmailOTPConfig;
74
+
75
+ // Session Configuration
76
+ session: SessionConfig;
77
+ }
78
+
79
+ export interface JWTConfig {
80
+ secret: string;
81
+ expires_in: string; // e.g., "24h", "7d"
82
+ refresh_token_expires_in: string;
83
+ issuer: string;
84
+ audience: string;
85
+ }
86
+
87
+ export interface InternalAuthConfig {
88
+ password_min_length: number;
89
+ password_require_uppercase: boolean;
90
+ password_require_lowercase: boolean;
91
+ password_require_numbers: boolean;
92
+ password_require_special_chars: boolean;
93
+ max_login_attempts: number;
94
+ lockout_duration_minutes: number;
95
+ require_email_verification: boolean;
96
+ require_phone_verification: boolean;
97
+ }
98
+
99
+ export interface FirebaseAuthConfig {
100
+ enabled: boolean;
101
+ project_id: string;
102
+ private_key_path: string;
103
+ client_email: string;
104
+ api_key: string;
105
+ auth_domain: string;
106
+ storage_bucket: string;
107
+ messaging_sender_id: string;
108
+ app_id: string;
109
+ }
110
+
111
+ export interface OAuthConfig {
112
+ enabled_providers: OAuthProvider[];
113
+ providers: {
114
+ [key in OAuthProvider]?: OAuthProviderConfig;
115
+ };
116
+ callback_url: string;
117
+ state_secret: string;
118
+ }
119
+
120
+ export interface OAuthProviderConfig {
121
+ client_id: string;
122
+ client_secret: string;
123
+ redirect_uri: string;
124
+ scope: string[];
125
+ enabled: boolean;
126
+ }
127
+
128
+ export interface SMSOTPConfig {
129
+ enabled: boolean;
130
+ provider: 'twilio' | 'aws_sns' | 'custom';
131
+ twilio?: {
132
+ account_sid: string;
133
+ auth_token: string;
134
+ from_number: string;
135
+ };
136
+ aws_sns?: {
137
+ access_key_id: string;
138
+ secret_access_key: string;
139
+ region: string;
140
+ };
141
+ otp_length: number;
142
+ otp_expiry_minutes: number;
143
+ max_attempts: number;
144
+ }
145
+
146
+ export interface EmailOTPConfig {
147
+ enabled: boolean;
148
+ smtp: {
149
+ host: string;
150
+ port: number;
151
+ secure: boolean;
152
+ user: string;
153
+ pass: string;
154
+ };
155
+ otp_length: number;
156
+ otp_expiry_minutes: number;
157
+ max_attempts: number;
158
+ from_email: string;
159
+ from_name: string;
160
+ }
161
+
162
+ export interface SessionConfig {
163
+ max_sessions_per_user: number;
164
+ session_timeout_minutes: number;
165
+ remember_me_days: number;
166
+ concurrent_login_allowed: boolean;
167
+ }
168
+
169
+ export class WhatsappProvidersConfig {
170
+ provider_type: WhatsappProviders;
171
+ account_id: string;
172
+ token: string;
173
+ }
174
+
175
+ // Environment variable validation
176
+ export interface EnvironmentVariables {
177
+ NODE_ENV?: string;
178
+ PORT?: string;
179
+ HOST?: string;
180
+ MONGODB_URI?: string;
181
+ FIREBASE_PROJECT_ID?: string;
182
+ FIREBASE_PRIVATE_KEY?: string;
183
+ FIREBASE_CLIENT_EMAIL?: string;
184
+ JWT_SECRET?: string;
185
+ TWILIO_ACCOUNT_SID?: string;
186
+ TWILIO_AUTH_TOKEN?: string;
187
+ SMTP_HOST?: string;
188
+ SMTP_PORT?: string;
189
+ SMTP_USER?: string;
190
+ SMTP_PASS?: string;
191
+ }