@diagramers/cli 1.0.24 → 1.0.25
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.
- package/dist/services/template-updater.d.ts +0 -1
- package/dist/services/template-updater.d.ts.map +1 -1
- package/dist/services/template-updater.js +2 -41
- package/dist/services/template-updater.js.map +1 -1
- package/package.json +1 -1
- package/templates/api/certs/auth-app-cert.json +0 -13
- package/templates/api/main.ts +0 -10
- package/templates/api/package.json +0 -70
- package/templates/api/src/assets/css/email-template.css +0 -8
- package/templates/api/src/assets/images/logo_large.png +0 -0
- package/templates/api/src/assets/keys/certificate.pem +0 -22
- package/templates/api/src/assets/keys/private-key.pem +0 -28
- package/templates/api/src/config/config-interface.ts +0 -191
- package/templates/api/src/config/development.ts +0 -145
- package/templates/api/src/config/index.ts +0 -59
- package/templates/api/src/config/production.ts +0 -145
- package/templates/api/src/config/staging.ts +0 -144
- package/templates/api/src/config/uat.ts +0 -144
- package/templates/api/src/controllers/account-controller.ts +0 -162
- package/templates/api/src/entities/audit.ts +0 -12
- package/templates/api/src/entities/base-entity.ts +0 -10
- package/templates/api/src/entities/user.ts +0 -71
- package/templates/api/src/helpers/FrameworkHelper.ts +0 -157
- package/templates/api/src/helpers/auth.ts +0 -971
- package/templates/api/src/helpers/cronHelper.ts +0 -170
- package/templates/api/src/helpers/dbcontext.ts +0 -83
- package/templates/api/src/helpers/encryptionHelper.ts +0 -76
- package/templates/api/src/helpers/enums.ts +0 -258
- package/templates/api/src/helpers/handle-response.ts +0 -49
- package/templates/api/src/helpers/httpHelper.ts +0 -75
- package/templates/api/src/helpers/mailer.ts +0 -152
- package/templates/api/src/helpers/result.ts +0 -47
- package/templates/api/src/helpers/string-helper.ts +0 -27
- package/templates/api/src/routes/account-routes.ts +0 -37
- package/templates/api/src/routes/auth-routes.ts +0 -286
- package/templates/api/src/routes/index.ts +0 -92
- package/templates/api/src/schemas/audit.ts +0 -36
- package/templates/api/src/schemas/otp.ts +0 -52
- package/templates/api/src/schemas/session.ts +0 -57
- package/templates/api/src/schemas/user.ts +0 -125
- package/templates/api/src/server/index.ts +0 -86
- package/templates/api/src/server/socket-server-provider.ts +0 -209
- package/templates/api/src/services/account-service.ts +0 -243
- package/templates/api/src/services/audit-service.ts +0 -56
- package/templates/api/tsconfig.json +0 -16
- package/templates/api/webpack.config.js +0 -66
@@ -1,71 +0,0 @@
|
|
1
|
-
import * as mongoose from 'mongoose';
|
2
|
-
import { ObjectId } from "bson";
|
3
|
-
import { AuthProvider, AuthMethod } from '../helpers/enums';
|
4
|
-
|
5
|
-
export interface IUser extends mongoose.Document {
|
6
|
-
_id: ObjectId,
|
7
|
-
name: string,
|
8
|
-
email: string,
|
9
|
-
emailVerified: boolean,
|
10
|
-
username: string,
|
11
|
-
|
12
|
-
// Authentication fields
|
13
|
-
auth_providers: AuthProviderInfo[],
|
14
|
-
primary_auth_provider: AuthProvider,
|
15
|
-
|
16
|
-
// Legacy fields (for backward compatibility)
|
17
|
-
hashedPassword?: string,
|
18
|
-
firebaseUID?: string,
|
19
|
-
|
20
|
-
// Contact information
|
21
|
-
phone?: string,
|
22
|
-
phoneVerified: boolean,
|
23
|
-
|
24
|
-
// Profile information
|
25
|
-
identity: string,
|
26
|
-
address?: any,
|
27
|
-
invitationCode?: string,
|
28
|
-
registerationStatus?: boolean,
|
29
|
-
userType: string,
|
30
|
-
status: number,
|
31
|
-
|
32
|
-
// Timestamps
|
33
|
-
createdAt: Date,
|
34
|
-
updatedAt: Date
|
35
|
-
}
|
36
|
-
|
37
|
-
export interface AuthProviderInfo {
|
38
|
-
provider: AuthProvider;
|
39
|
-
provider_user_id?: string; // External provider user ID
|
40
|
-
provider_access_token?: string;
|
41
|
-
provider_refresh_token?: string;
|
42
|
-
provider_metadata?: any; // Additional provider-specific data
|
43
|
-
is_verified: boolean;
|
44
|
-
last_used: Date;
|
45
|
-
created_at: Date;
|
46
|
-
}
|
47
|
-
|
48
|
-
export interface UserSession {
|
49
|
-
session_id: string;
|
50
|
-
user_id: ObjectId;
|
51
|
-
auth_provider: AuthProvider;
|
52
|
-
auth_method: AuthMethod;
|
53
|
-
ip_address: string;
|
54
|
-
user_agent: string;
|
55
|
-
is_active: boolean;
|
56
|
-
expires_at: Date;
|
57
|
-
created_at: Date;
|
58
|
-
last_activity: Date;
|
59
|
-
}
|
60
|
-
|
61
|
-
export interface OTPCode {
|
62
|
-
code: string;
|
63
|
-
user_id: ObjectId;
|
64
|
-
auth_provider: AuthProvider;
|
65
|
-
purpose: 'email_verification' | 'phone_verification' | 'password_reset' | 'login';
|
66
|
-
expires_at: Date;
|
67
|
-
attempts: number;
|
68
|
-
max_attempts: number;
|
69
|
-
is_used: boolean;
|
70
|
-
created_at: Date;
|
71
|
-
}
|
@@ -1,157 +0,0 @@
|
|
1
|
-
/* eslint-disable */
|
2
|
-
import * as base64Encryption from "base-64";
|
3
|
-
import { date } from "yup";
|
4
|
-
import { ResponseCode } from "./enums";
|
5
|
-
import { Result } from "./result";
|
6
|
-
const momentTZ = require("moment-timezone");
|
7
|
-
|
8
|
-
class FrameworkHelper {
|
9
|
-
|
10
|
-
listAllTimeZones = () => {
|
11
|
-
var aryIannaTimeZones = Intl.supportedValuesOf("timeZone");
|
12
|
-
|
13
|
-
const date = new Date();
|
14
|
-
const timeZones = [];
|
15
|
-
aryIannaTimeZones.forEach((timeZone) => {
|
16
|
-
let strTime = date.toLocaleString("en-US", { timeZone: `${timeZone}` });
|
17
|
-
timeZones.push({
|
18
|
-
value: timeZone,
|
19
|
-
label: timeZone + " (" + strTime + ")",
|
20
|
-
});
|
21
|
-
});
|
22
|
-
return timeZones;
|
23
|
-
};
|
24
|
-
|
25
|
-
convertTimeToFriendly = (timeSpan, isPretty = true) => {
|
26
|
-
try {
|
27
|
-
var time = momentTZ.unix(timeSpan).format("MM/DD/YYYY hh:mm:ss.SSS a");
|
28
|
-
if (!isPretty) return momentTZ(time).toLocaleString();
|
29
|
-
return momentTZ(time).fromNow().toLocaleLowerCase();
|
30
|
-
} catch (ex) {
|
31
|
-
return new momentTZ().fromNow();
|
32
|
-
}
|
33
|
-
};
|
34
|
-
|
35
|
-
sortList(list, sortField, dir = 1) {
|
36
|
-
try {
|
37
|
-
var sortedList = list.sort((a, b) => {
|
38
|
-
if (a[sortField] > b[sortField]) {
|
39
|
-
return 1;
|
40
|
-
}
|
41
|
-
if (a[sortField] < b[sortField]) {
|
42
|
-
return -1;
|
43
|
-
}
|
44
|
-
return 0;
|
45
|
-
});
|
46
|
-
if (dir == -1) {
|
47
|
-
return sortedList.reverse();
|
48
|
-
}
|
49
|
-
return sortedList;
|
50
|
-
} catch (ex) {
|
51
|
-
return [];
|
52
|
-
}
|
53
|
-
}
|
54
|
-
|
55
|
-
deepEqual(obj1, obj2) {
|
56
|
-
// Check if both are objects
|
57
|
-
if (
|
58
|
-
typeof obj1 === "object" &&
|
59
|
-
obj1 !== null &&
|
60
|
-
typeof obj2 === "object" &&
|
61
|
-
obj2 !== null
|
62
|
-
) {
|
63
|
-
// Get the keys of the objects
|
64
|
-
const keys1 = Object.keys(obj1);
|
65
|
-
const keys2 = Object.keys(obj2);
|
66
|
-
|
67
|
-
// Check if the number of keys is the same
|
68
|
-
if (keys1.length !== keys2.length) {
|
69
|
-
return false;
|
70
|
-
}
|
71
|
-
|
72
|
-
// Check each property
|
73
|
-
for (const key of keys1) {
|
74
|
-
if (!keys2.includes(key) || !this.deepEqual(obj1[key], obj2[key])) {
|
75
|
-
return false;
|
76
|
-
}
|
77
|
-
}
|
78
|
-
|
79
|
-
return true;
|
80
|
-
} else {
|
81
|
-
// If not objects, use strict equality
|
82
|
-
return obj1 === obj2;
|
83
|
-
}
|
84
|
-
}
|
85
|
-
|
86
|
-
uniqueObjects = (dataArray) => {
|
87
|
-
return Array.from(
|
88
|
-
new Map(dataArray.map((obj) => [JSON.stringify(obj), obj])).values()
|
89
|
-
);
|
90
|
-
};
|
91
|
-
|
92
|
-
clearTextSpaces = (text) => {
|
93
|
-
let wordsArray = text.split(" ").filter((word) => word !== "");
|
94
|
-
let stringWithoutSpaces = wordsArray.join("");
|
95
|
-
return stringWithoutSpaces;
|
96
|
-
};
|
97
|
-
|
98
|
-
filterDictionaryObject = (inputObject, targetKey, targetValue) => {
|
99
|
-
return Object.keys(inputObject)
|
100
|
-
.filter(key => inputObject[key][targetKey] === targetValue)
|
101
|
-
.map(key => inputObject[key]);
|
102
|
-
};
|
103
|
-
|
104
|
-
generateRandomString(length) {
|
105
|
-
const crypto = require('crypto');
|
106
|
-
return crypto.randomBytes(Math.ceil(length / 2))
|
107
|
-
.toString('hex') // Convert to hexadecimal format
|
108
|
-
.slice(0, length); // Return required number of characters
|
109
|
-
}
|
110
|
-
|
111
|
-
mapObjectsToType(source, TargetType) {
|
112
|
-
const target = new TargetType();
|
113
|
-
if (source) {
|
114
|
-
// Iterate over the properties of the target object
|
115
|
-
Object.keys(target).forEach(key => {
|
116
|
-
if (key in source) {
|
117
|
-
const descriptor = Object.getOwnPropertyDescriptor(source, key);
|
118
|
-
if (descriptor && (descriptor.get || descriptor.set)) {
|
119
|
-
// Handle getters and setters
|
120
|
-
Object.defineProperty(target, key, descriptor);
|
121
|
-
} else {
|
122
|
-
// Direct value copy for normal properties
|
123
|
-
target[key] = source[key];
|
124
|
-
}
|
125
|
-
}
|
126
|
-
});
|
127
|
-
return target;
|
128
|
-
}
|
129
|
-
return null;
|
130
|
-
};
|
131
|
-
|
132
|
-
formatTextAsCode(input: String): String {
|
133
|
-
// Remove spaces and special characters using regex
|
134
|
-
let processedText = input.replace(/[^a-zA-Z0-9]/g, '');
|
135
|
-
// Capitalize all characters
|
136
|
-
processedText = processedText.toUpperCase();
|
137
|
-
return processedText;
|
138
|
-
}
|
139
|
-
|
140
|
-
getDifferenceDatesInDays(date1, date2) {
|
141
|
-
// Convert both dates to milliseconds
|
142
|
-
const date1Time = new Date(date1).getTime();
|
143
|
-
const date2Time = new Date(date2).getTime();
|
144
|
-
|
145
|
-
// Calculate the difference in milliseconds
|
146
|
-
const diffTime = Math.abs(date2Time - date1Time);
|
147
|
-
|
148
|
-
// Convert the difference to days
|
149
|
-
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
150
|
-
|
151
|
-
return diffDays;
|
152
|
-
}
|
153
|
-
|
154
|
-
|
155
|
-
}
|
156
|
-
|
157
|
-
export const frameworkHelper = new FrameworkHelper();
|