@lyxa.ai/core 1.0.29 → 1.0.31
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/libraries/mongo/models/core-user.model.d.ts +1 -1
- package/dist/libraries/mongo/models/core-user.model.js +1 -1
- package/dist/libraries/mongo/models/core-user.model.js.map +1 -1
- package/dist/libraries/mongo/models/embedded/otp-fields.model.js +5 -1
- package/dist/libraries/mongo/models/embedded/otp-fields.model.js.map +1 -1
- package/dist/libraries/mongo/models/providers/core-email-auth-identity.model.d.ts +1 -1
- package/dist/libraries/mongo/models/providers/core-email-auth-identity.model.js +1 -1
- package/dist/libraries/mongo/models/providers/core-email-auth-identity.model.js.map +1 -1
- package/dist/libraries/mongo/models/rider-timeout.model.d.ts +1 -1
- package/dist/libraries/mongo/models/rider-timeout.model.js +2 -2
- package/dist/libraries/mongo/models/rider-timeout.model.js.map +1 -1
- package/dist/libraries/mongo/models/rider.model.d.ts +1 -1
- package/dist/libraries/mongo/models/rider.model.js +2 -2
- package/dist/libraries/mongo/models/rider.model.js.map +1 -1
- package/dist/libraries/mongo/models/user.model.d.ts +4 -1
- package/dist/libraries/mongo/models/user.model.js +16 -5
- package/dist/libraries/mongo/models/user.model.js.map +1 -1
- package/dist/libraries/trpc/middlewares/phone-verified.d.ts +37 -0
- package/dist/libraries/trpc/middlewares/phone-verified.js +24 -0
- package/dist/libraries/trpc/middlewares/phone-verified.js.map +1 -0
- package/package.json +1 -1
|
@@ -50,7 +50,7 @@ __decorate([
|
|
|
50
50
|
__metadata("design:type", Array)
|
|
51
51
|
], CoreUser.prototype, "fcmTokens", void 0);
|
|
52
52
|
__decorate([
|
|
53
|
-
(0, typegoose_1.prop)({
|
|
53
|
+
(0, typegoose_1.prop)({ type: String }),
|
|
54
54
|
__metadata("design:type", String)
|
|
55
55
|
], CoreUser.prototype, "profilePhoto", void 0);
|
|
56
56
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-user.model.js","sourceRoot":"/","sources":["libraries/mongo/models/core-user.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA0D;AAC1D,4EAAqE;AACrE,kDAAiD;AAG1C,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,2BAAU;IAEhC,IAAI,CAAU;IAGd,KAAK,CAAU;IAGf,MAAM,CAAU;IAGhB,GAAG,CAAQ;IAGX,WAAW,CAAU;IAGrB,SAAS,CAAY;IAGrB,YAAY,CAAU;IAGtB,MAAM,CAAU;IAGhB,SAAS,CAAY;CAC5B,CAAA;AA3BY,4BAAQ;AAEb;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;sCAClB;AAGd;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;uCACjB;AAGf;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;wCAChB;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;8BACxB,IAAI;qCAAC;AAGX;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;6CACX;AAGrB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;;2CAChB;AAGrB;IADN,IAAA,gBAAI,EAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"core-user.model.js","sourceRoot":"/","sources":["libraries/mongo/models/core-user.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA0D;AAC1D,4EAAqE;AACrE,kDAAiD;AAG1C,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,2BAAU;IAEhC,IAAI,CAAU;IAGd,KAAK,CAAU;IAGf,MAAM,CAAU;IAGhB,GAAG,CAAQ;IAGX,WAAW,CAAU;IAGrB,SAAS,CAAY;IAGrB,YAAY,CAAU;IAGtB,MAAM,CAAU;IAGhB,SAAS,CAAY;CAC5B,CAAA;AA3BY,4BAAQ;AAEb;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;sCAClB;AAGd;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;uCACjB;AAGf;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;wCAChB;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;8BACxB,IAAI;qCAAC;AAGX;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;6CACX;AAGrB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;;2CAChB;AAGrB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;8CACM;AAGtB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAM,EAAE,OAAO,EAAE,aAAM,CAAC,MAAM,EAAE,CAAC;;wCACtC;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;;2CACnB;mBA1BhB,QAAQ;IADpB,IAAA,wBAAY,EAAC,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,CAAC;GAChD,QAAQ,CA2BpB","sourcesContent":["import { modelOptions, prop } from '@typegoose/typegoose';\r\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\r\nimport { Status } from '../../../utilities/enum';\r\n\r\n@modelOptions({ schemaOptions: { collection: 'coreUsers' } })\r\nexport class CoreUser extends TimeStamps {\r\n\t@prop({ required: true, type: String })\r\n\tpublic name!: string;\r\n\r\n\t@prop({ required: true, type: String })\r\n\tpublic email!: string;\r\n\r\n\t@prop({ required: true, type: String })\r\n\tpublic gender!: string;\r\n\r\n\t@prop({ required: true, type: Date })\r\n\tpublic dob!: Date;\r\n\r\n\t@prop({ required: true, type: String })\r\n\tpublic countryISO2!: string;\r\n\r\n\t@prop({ type: () => [String], default: [] })\r\n\tpublic fcmTokens?: string[];\r\n\r\n\t@prop({ type: String })\r\n\tpublic profilePhoto?: string;\r\n\r\n\t@prop({ type: String, enum: Status, default: Status.ACTIVE })\r\n\tpublic status?: Status;\r\n\r\n\t@prop({ required: true, type: () => [String] })\r\n\tpublic deviceIds!: string[];\r\n}\r\n"]}
|
|
@@ -20,7 +20,11 @@ class OTPFields {
|
|
|
20
20
|
}
|
|
21
21
|
exports.OTPFields = OTPFields;
|
|
22
22
|
__decorate([
|
|
23
|
-
(0, typegoose_1.prop)({
|
|
23
|
+
(0, typegoose_1.prop)({
|
|
24
|
+
required: true,
|
|
25
|
+
type: String,
|
|
26
|
+
enum: ['email_verification', 'reset_password', 'phone_verification'],
|
|
27
|
+
}),
|
|
24
28
|
__metadata("design:type", String)
|
|
25
29
|
], OTPFields.prototype, "type", void 0);
|
|
26
30
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otp-fields.model.js","sourceRoot":"/","sources":["libraries/mongo/models/embedded/otp-fields.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA4C;AAE5C,MAAa,SAAS;
|
|
1
|
+
{"version":3,"file":"otp-fields.model.js","sourceRoot":"/","sources":["libraries/mongo/models/embedded/otp-fields.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA4C;AAE5C,MAAa,SAAS;IAMd,IAAI,CAA2C;IAG/C,GAAG,CAAU;IAGb,iBAAiB,CAAQ;IAGzB,eAAe,CAAQ;IAGvB,UAAU,CAAW;CAC5B;AAnBD,8BAmBC;AAbO;IALN,IAAA,gBAAI,EAAC;QACL,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,CAAC,oBAAoB,EAAE,gBAAgB,EAAE,oBAAoB,CAAC;KACpE,CAAC;;uCACoD;AAG/C;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;sCACpB;AAGb;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;8BACX,IAAI;oDAAC;AAGzB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;8BACb,IAAI;kDAAC;AAGvB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;6CAC7B","sourcesContent":["import { prop } from '@typegoose/typegoose';\r\n\r\nexport class OTPFields {\r\n\t@prop({\r\n\t\trequired: true,\r\n\t\ttype: String,\r\n\t\tenum: ['email_verification', 'reset_password', 'phone_verification'],\r\n\t})\r\n\tpublic type!: 'email_verification' | 'reset_password';\r\n\r\n\t@prop({ required: false, type: String })\r\n\tpublic otp?: string;\r\n\r\n\t@prop({ required: false, type: Date })\r\n\tpublic otpExpirationDate?: Date;\r\n\r\n\t@prop({ required: false, type: Date })\r\n\tpublic lastSentOtpDate?: Date;\r\n\r\n\t@prop({ required: false, type: Boolean, default: false })\r\n\tpublic isVerified?: boolean;\r\n}\r\n"]}
|
|
@@ -36,7 +36,7 @@ __decorate([
|
|
|
36
36
|
__metadata("design:type", String)
|
|
37
37
|
], CoreEmailAuthIdentity.prototype, "password", void 0);
|
|
38
38
|
__decorate([
|
|
39
|
-
(0, typegoose_1.prop)({
|
|
39
|
+
(0, typegoose_1.prop)({ type: otp_fields_model_1.OTPFields }),
|
|
40
40
|
__metadata("design:type", Array)
|
|
41
41
|
], CoreEmailAuthIdentity.prototype, "otps", void 0);
|
|
42
42
|
exports.CoreEmailAuthIdentity = CoreEmailAuthIdentity = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-email-auth-identity.model.js","sourceRoot":"/","sources":["libraries/mongo/models/providers/core-email-auth-identity.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,oDAAoE;AACpE,0EAA+D;AAC/D,mEAAyD;AACzD,wDAA8B;AAG9B,KAAK,UAAU,YAAY,CAAC,QAAgB;IAC3C,MAAM,IAAI,GAAG,MAAM,kBAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACtC,OAAO,kBAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC;AAeM,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,2CAAgB;IAEnD,KAAK,CAAU;IAGf,QAAQ,CAAU;IAGlB,IAAI,CAAe;CAC1B,CAAA;AATY,sDAAqB;AAE1B;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;oDACjB;AAGf;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;uDACd;AAGlB;IADN,IAAA,gBAAI,EAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"core-email-auth-identity.model.js","sourceRoot":"/","sources":["libraries/mongo/models/providers/core-email-auth-identity.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,oDAAoE;AACpE,0EAA+D;AAC/D,mEAAyD;AACzD,wDAA8B;AAG9B,KAAK,UAAU,YAAY,CAAC,QAAgB;IAC3C,MAAM,IAAI,GAAG,MAAM,kBAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACtC,OAAO,kBAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC;AAeM,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,2CAAgB;IAEnD,KAAK,CAAU;IAGf,QAAQ,CAAU;IAGlB,IAAI,CAAe;CAC1B,CAAA;AATY,sDAAqB;AAE1B;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;oDACjB;AAGf;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;uDACd;AAGlB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,4BAAS,EAAE,CAAC;;mDACA;gCARd,qBAAqB;IAdjC,IAAA,eAAG,EAAwB,MAAM,EAAE,KAAK,WAAW,IAAI;QACvD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;IACD,IAAA,eAAG,EAAoC,kBAAkB,EAAE,KAAK,WAAW,IAAI;QAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAyB,CAAC;QACvD,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;YACtB,MAAM,CAAC,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;QACD,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;GACW,qBAAqB,CASjC","sourcesContent":["import { modelOptions, prop, pre, Ref } from '@typegoose/typegoose';\r\nimport { CoreAuthIdentity } from '../core-auth-identity.model';\r\nimport { OTPFields } from '../embedded/otp-fields.model';\r\nimport bcrypt from 'bcryptjs';\r\nimport { Query } from 'mongoose';\r\n\r\nasync function hashPassword(password: string): Promise<string> {\r\n\tconst salt = await bcrypt.genSalt(10);\r\n\treturn bcrypt.hash(password, salt);\r\n}\r\n@pre<CoreEmailAuthIdentity>('save', async function (next) {\r\n\tif (this.isModified('password')) {\r\n\t\tthis.password = await hashPassword(this.password);\r\n\t}\r\n\tnext();\r\n})\r\n@pre<Query<any, CoreEmailAuthIdentity>>('findOneAndUpdate', async function (next) {\r\n\tconst update = this.getUpdate() as Record<string, any>;\r\n\tif (update?.password) {\r\n\t\tupdate.password = await hashPassword(update.password);\r\n\t\tthis.setUpdate(update);\r\n\t}\r\n\tnext();\r\n})\r\nexport class CoreEmailAuthIdentity extends CoreAuthIdentity {\r\n\t@prop({ required: true, type: String })\r\n\tpublic email!: string;\r\n\r\n\t@prop({ required: true, type: String })\r\n\tpublic password!: string;\r\n\r\n\t@prop({ type: OTPFields })\r\n\tpublic otps?: OTPFields[];\r\n}\r\n"]}
|
|
@@ -3,7 +3,7 @@ import { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';
|
|
|
3
3
|
import { Rider } from './rider.model';
|
|
4
4
|
export declare class RiderTimeout extends TimeStamps {
|
|
5
5
|
rider: Ref<Rider>;
|
|
6
|
-
|
|
6
|
+
date?: Date;
|
|
7
7
|
timeIn?: Date;
|
|
8
8
|
timeOut?: Date;
|
|
9
9
|
activeTotal?: number;
|
|
@@ -15,7 +15,7 @@ const defaultClasses_1 = require("@typegoose/typegoose/lib/defaultClasses");
|
|
|
15
15
|
const rider_model_1 = require("./rider.model");
|
|
16
16
|
let RiderTimeout = class RiderTimeout extends defaultClasses_1.TimeStamps {
|
|
17
17
|
rider;
|
|
18
|
-
|
|
18
|
+
date;
|
|
19
19
|
timeIn;
|
|
20
20
|
timeOut;
|
|
21
21
|
activeTotal;
|
|
@@ -28,7 +28,7 @@ __decorate([
|
|
|
28
28
|
__decorate([
|
|
29
29
|
(0, typegoose_1.prop)({ type: Date }),
|
|
30
30
|
__metadata("design:type", Date)
|
|
31
|
-
], RiderTimeout.prototype, "
|
|
31
|
+
], RiderTimeout.prototype, "date", void 0);
|
|
32
32
|
__decorate([
|
|
33
33
|
(0, typegoose_1.prop)({ type: Date }),
|
|
34
34
|
__metadata("design:type", Date)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rider-timeout.model.js","sourceRoot":"/","sources":["libraries/mongo/models/rider-timeout.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA+D;AAC/D,4EAAqE;AACrE,+CAAsC;AAG/B,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,2BAAU;IAEpC,KAAK,CAAc;IAGnB,IAAI,CAAQ;IAGZ,MAAM,CAAQ;IAGd,OAAO,CAAQ;IAGf,WAAW,CAAU;CAC5B,CAAA;AAfY,oCAAY;AAEjB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,mBAAK,EAAE,CAAC;;2CACjB;AAGnB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;8BACP,IAAI;0CAAC;AAGZ;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;8BACL,IAAI;4CAAC;AAGd;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;8BACJ,IAAI;6CAAC;AAGf;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;iDACP;uBAdhB,YAAY;IADxB,IAAA,wBAAY,EAAC,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC;GACtE,YAAY,CAexB","sourcesContent":["import { modelOptions, prop, Ref } from '@typegoose/typegoose';\r\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\r\nimport { Rider } from './rider.model';\r\n\r\n@modelOptions({ schemaOptions: { collection: 'riderTimeouts', timestamps: true } })\r\nexport class RiderTimeout extends TimeStamps {\r\n\t@prop({ required: true, ref: () => Rider })\r\n\tpublic rider!: Ref<Rider>;\r\n\r\n\t@prop({ type: Date })\r\n\tpublic
|
|
1
|
+
{"version":3,"file":"rider-timeout.model.js","sourceRoot":"/","sources":["libraries/mongo/models/rider-timeout.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA+D;AAC/D,4EAAqE;AACrE,+CAAsC;AAG/B,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,2BAAU;IAEpC,KAAK,CAAc;IAGnB,IAAI,CAAQ;IAGZ,MAAM,CAAQ;IAGd,OAAO,CAAQ;IAGf,WAAW,CAAU;CAC5B,CAAA;AAfY,oCAAY;AAEjB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,mBAAK,EAAE,CAAC;;2CACjB;AAGnB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;8BACP,IAAI;0CAAC;AAGZ;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;8BACL,IAAI;4CAAC;AAGd;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;8BACJ,IAAI;6CAAC;AAGf;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;iDACP;uBAdhB,YAAY;IADxB,IAAA,wBAAY,EAAC,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC;GACtE,YAAY,CAexB","sourcesContent":["import { modelOptions, prop, Ref } from '@typegoose/typegoose';\r\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\r\nimport { Rider } from './rider.model';\r\n\r\n@modelOptions({ schemaOptions: { collection: 'riderTimeouts', timestamps: true } })\r\nexport class RiderTimeout extends TimeStamps {\r\n\t@prop({ required: true, ref: () => Rider })\r\n\tpublic rider!: Ref<Rider>;\r\n\r\n\t@prop({ type: Date })\r\n\tpublic date?: Date;\r\n\r\n\t@prop({ type: Date })\r\n\tpublic timeIn?: Date;\r\n\r\n\t@prop({ type: Date })\r\n\tpublic timeOut?: Date;\r\n\r\n\t@prop({ type: Number, default: 0 })\r\n\tpublic activeTotal?: number;\r\n}\r\n"]}
|
|
@@ -32,7 +32,7 @@ export declare class Rider extends TimeStamps {
|
|
|
32
32
|
forgetExpired?: Date;
|
|
33
33
|
lastLocationUpdateAt?: Date;
|
|
34
34
|
contractImage?: string;
|
|
35
|
-
|
|
35
|
+
createdBy?: CreatedBy;
|
|
36
36
|
isLogin?: boolean;
|
|
37
37
|
lastLoginDeviceId?: string;
|
|
38
38
|
reviews?: Ref<RiderReview>[];
|
|
@@ -48,7 +48,7 @@ let Rider = class Rider extends defaultClasses_1.TimeStamps {
|
|
|
48
48
|
forgetExpired;
|
|
49
49
|
lastLocationUpdateAt;
|
|
50
50
|
contractImage;
|
|
51
|
-
|
|
51
|
+
createdBy;
|
|
52
52
|
isLogin;
|
|
53
53
|
lastLoginDeviceId;
|
|
54
54
|
reviews;
|
|
@@ -169,7 +169,7 @@ __decorate([
|
|
|
169
169
|
__decorate([
|
|
170
170
|
(0, typegoose_1.prop)({ type: String, enum: enum_1.CreatedBy, default: enum_1.CreatedBy.ADMIN }),
|
|
171
171
|
__metadata("design:type", String)
|
|
172
|
-
], Rider.prototype, "
|
|
172
|
+
], Rider.prototype, "createdBy", void 0);
|
|
173
173
|
__decorate([
|
|
174
174
|
(0, typegoose_1.prop)({ type: Boolean, default: false }),
|
|
175
175
|
__metadata("design:type", Boolean)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rider.model.js","sourceRoot":"/","sources":["libraries/mongo/models/rider.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,oDAA2E;AAC3E,wDAA8B;AAC9B,4EAAqE;AACrE,oEAA0D;AAC1D,6DAAmD;AACnD,6CAAoC;AACpC,6CAAoC;AACpC,kDAAwG;AACxG,4EAAkE;AAS3D,IAAM,KAAK,GAAX,MAAM,KAAM,SAAQ,2BAAU;IAE7B,IAAI,CAAU;IAGd,KAAK,CAAU;IAGf,KAAK,CAAU;IAGf,QAAQ,CAAU;IAGlB,MAAM,CAAU;IAGhB,WAAW,CAAU;IAGrB,QAAQ,CAAY;IAGpB,MAAM,CAAU;IAGhB,MAAM,CAAU;IAGhB,GAAG,CAAQ;IAGX,UAAU,CAAU;IAGpB,UAAU,CAAc;IAGxB,QAAQ,CAAY;IAGpB,SAAS,CAAQ;IAGjB,UAAU,CAAQ;IAGlB,kBAAkB,CAAU;IAG5B,2BAA2B,CAAU;IAGrC,WAAW,CAAU;IAGrB,aAAa,CAAU;IAGvB,OAAO,CAAU;IAGjB,QAAQ,CAAe;IAGvB,WAAW,CAAU;IAGrB,aAAa,CAAQ;IAGrB,oBAAoB,CAAQ;IAG5B,aAAa,CAAU;IAGvB,
|
|
1
|
+
{"version":3,"file":"rider.model.js","sourceRoot":"/","sources":["libraries/mongo/models/rider.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { index, modelOptions, pre, prop, Ref } from '@typegoose/typegoose';\r\nimport bcrypt from 'bcryptjs';\r\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\r\nimport { GeoLocation } from './shared/geo-location.model';\r\nimport { RiderReview } from './rider-review.model';\r\nimport { Zone } from './zone.model';\r\nimport { Shop } from './shop.model';\r\nimport { CreatedBy, Language, LiveStatus, RiderType, ShiftType, Status } from '../../../utilities/enum';\r\nimport { RiderEquipment } from './embedded/rider-equipment.model';\r\n\r\n@pre<Rider>('save', async function () {\r\n\tif (!this.isModified('password')) return;\r\n\tconst salt = await bcrypt.genSalt(10);\r\n\tthis.password = await bcrypt.hash(this.password as string, salt);\r\n})\r\n@index({ location: '2dsphere' })\r\n@modelOptions({ schemaOptions: { collection: 'riders', timestamps: true } })\r\nexport class Rider extends TimeStamps {\r\n\t@prop({ type: String, required: true })\r\n\tpublic name!: string;\r\n\r\n\t@prop({ type: String })\r\n\tpublic image?: string;\r\n\r\n\t@prop({ type: String, required: true })\r\n\tpublic email!: string;\r\n\r\n\t@prop({ type: String })\r\n\tpublic password?: string;\r\n\r\n\t@prop({ type: String })\r\n\tpublic gender?: string;\r\n\r\n\t@prop({ type: String })\r\n\tpublic countryCode?: string;\r\n\r\n\t@prop({ type: String, enum: Language, default: Language.EN })\r\n\tpublic language?: Language;\r\n\r\n\t@prop({ type: String })\r\n\tpublic number?: string;\r\n\r\n\t@prop({ type: String, enum: Status, default: Status.INACTIVE })\r\n\tpublic status?: Status;\r\n\r\n\t@prop({ type: Date })\r\n\tpublic dob?: Date;\r\n\r\n\t@prop({ type: Number, default: 0 })\r\n\tpublic totalOrder?: number;\r\n\r\n\t@prop({ type: String, enum: LiveStatus, default: LiveStatus.OFFLINE })\r\n\tpublic liveStatus?: LiveStatus;\r\n\r\n\t@prop({ type: () => [String], default: [] })\r\n\tpublic fcmToken?: string[];\r\n\r\n\t@prop({ type: Date, default: Date.now })\r\n\tpublic lastLogin?: Date;\r\n\r\n\t@prop({ type: Date, default: Date.now })\r\n\tpublic lastOnline?: Date;\r\n\r\n\t@prop({ type: String })\r\n\tpublic nationalIdDocument?: string;\r\n\r\n\t@prop({ type: String })\r\n\tpublic vehicleRegistrationDocument?: string;\r\n\r\n\t@prop({ type: String })\r\n\tpublic vehicleType?: string;\r\n\r\n\t@prop({ type: String })\r\n\tpublic vehicleNumber?: string;\r\n\r\n\t@prop({ type: String })\r\n\tpublic address?: string;\r\n\r\n\t@prop({ type: GeoLocation })\r\n\tpublic location?: GeoLocation;\r\n\r\n\t@prop({ type: String })\r\n\tpublic forgetToken?: string;\r\n\r\n\t@prop({ type: Date })\r\n\tpublic forgetExpired?: Date;\r\n\r\n\t@prop({ type: Date })\r\n\tpublic lastLocationUpdateAt?: Date;\r\n\r\n\t@prop({ type: String })\r\n\tpublic contractImage?: string;\r\n\r\n\t@prop({ type: String, enum: CreatedBy, default: CreatedBy.ADMIN })\r\n\tpublic createdBy?: CreatedBy;\r\n\r\n\t@prop({ type: Boolean, default: false })\r\n\tpublic isLogin?: boolean;\r\n\r\n\t@prop({ type: String })\r\n\tpublic lastLoginDeviceId?: string;\r\n\r\n\t@prop({ type: () => [String], ref: () => RiderReview, default: [] })\r\n\tpublic reviews?: Ref<RiderReview>[];\r\n\r\n\t@prop({ type: Number, default: 0 })\r\n\tpublic rating?: number;\r\n\r\n\t@prop({ type: String, enum: ShiftType, default: ShiftType.DAY })\r\n\tpublic shift?: ShiftType;\r\n\r\n\t@prop({ type: String, ref: () => Zone })\r\n\tpublic zone?: Ref<Zone>;\r\n\r\n\t@prop({ type: String, enum: RiderType, default: RiderType.LYXA_RIDER })\r\n\tpublic riderType?: RiderType;\r\n\r\n\t@prop({ type: String, ref: () => Shop })\r\n\tpublic shop?: Ref<Shop>;\r\n\r\n\t@prop({ type: String })\r\n\tpublic riderNationality?: string;\r\n\r\n\t@prop({ type: Boolean, default: false })\r\n\tpublic isCashSettlementLimitReached?: boolean;\r\n\r\n\t@prop({ type: Date, default: null })\r\n\tpublic firstActiveAt?: Date | null;\r\n\r\n\t@prop({ type: () => [RiderEquipment], default: [] })\r\n\tpublic riderEquipments?: RiderEquipment[];\r\n\r\n\t@prop({ type: String })\r\n\tpublic insurance?: string;\r\n\r\n\t@prop({ type: String })\r\n\tpublic powerOfAttorney?: string;\r\n\r\n\t@prop({ type: String })\r\n\tpublic proofOfResidence?: string;\r\n}\r\n"]}
|
|
@@ -7,9 +7,9 @@ import { UserAddress } from './shared/address.model';
|
|
|
7
7
|
import { Coupon } from './coupon.model';
|
|
8
8
|
import { Subscription } from './subscription.model';
|
|
9
9
|
import { Status } from '../../../utilities/enum';
|
|
10
|
+
import { OTPFields } from './embedded/otp-fields.model';
|
|
10
11
|
export declare class User extends TimeStamps {
|
|
11
12
|
coreUser: Ref<CoreUser>;
|
|
12
|
-
companyName?: string;
|
|
13
13
|
favoriteProducts?: Ref<Product>[];
|
|
14
14
|
favoriteShops?: Ref<Shop>[];
|
|
15
15
|
addresses?: UserAddress[];
|
|
@@ -27,4 +27,7 @@ export declare class User extends TimeStamps {
|
|
|
27
27
|
referralCode?: Ref<Coupon>;
|
|
28
28
|
subscription?: Ref<Subscription>;
|
|
29
29
|
isSubscribed?: boolean;
|
|
30
|
+
phoneNumber?: string;
|
|
31
|
+
phoneOtpInfo?: OTPFields;
|
|
32
|
+
isPhoneVerified?: boolean;
|
|
30
33
|
}
|
|
@@ -19,9 +19,9 @@ const address_model_1 = require("./shared/address.model");
|
|
|
19
19
|
const coupon_model_1 = require("./coupon.model");
|
|
20
20
|
const subscription_model_1 = require("./subscription.model");
|
|
21
21
|
const enum_1 = require("../../../utilities/enum");
|
|
22
|
+
const otp_fields_model_1 = require("./embedded/otp-fields.model");
|
|
22
23
|
let User = class User extends defaultClasses_1.TimeStamps {
|
|
23
24
|
coreUser;
|
|
24
|
-
companyName;
|
|
25
25
|
favoriteProducts;
|
|
26
26
|
favoriteShops;
|
|
27
27
|
addresses;
|
|
@@ -39,16 +39,15 @@ let User = class User extends defaultClasses_1.TimeStamps {
|
|
|
39
39
|
referralCode;
|
|
40
40
|
subscription;
|
|
41
41
|
isSubscribed;
|
|
42
|
+
phoneNumber;
|
|
43
|
+
phoneOtpInfo;
|
|
44
|
+
isPhoneVerified;
|
|
42
45
|
};
|
|
43
46
|
exports.User = User;
|
|
44
47
|
__decorate([
|
|
45
48
|
(0, typegoose_1.prop)({ required: true, type: typegoose_1.mongoose.Types.ObjectId, ref: () => core_user_model_1.CoreUser }),
|
|
46
49
|
__metadata("design:type", Object)
|
|
47
50
|
], User.prototype, "coreUser", void 0);
|
|
48
|
-
__decorate([
|
|
49
|
-
(0, typegoose_1.prop)({ type: String }),
|
|
50
|
-
__metadata("design:type", String)
|
|
51
|
-
], User.prototype, "companyName", void 0);
|
|
52
51
|
__decorate([
|
|
53
52
|
(0, typegoose_1.prop)({ type: () => [String], ref: () => product_model_1.Product }),
|
|
54
53
|
__metadata("design:type", Array)
|
|
@@ -122,6 +121,18 @@ __decorate([
|
|
|
122
121
|
(0, typegoose_1.prop)({ type: Boolean, default: false }),
|
|
123
122
|
__metadata("design:type", Boolean)
|
|
124
123
|
], User.prototype, "isSubscribed", void 0);
|
|
124
|
+
__decorate([
|
|
125
|
+
(0, typegoose_1.prop)({ type: String, unique: true, sparse: true }),
|
|
126
|
+
__metadata("design:type", String)
|
|
127
|
+
], User.prototype, "phoneNumber", void 0);
|
|
128
|
+
__decorate([
|
|
129
|
+
(0, typegoose_1.prop)({ type: otp_fields_model_1.OTPFields }),
|
|
130
|
+
__metadata("design:type", otp_fields_model_1.OTPFields)
|
|
131
|
+
], User.prototype, "phoneOtpInfo", void 0);
|
|
132
|
+
__decorate([
|
|
133
|
+
(0, typegoose_1.prop)({ type: Boolean, default: false }),
|
|
134
|
+
__metadata("design:type", Boolean)
|
|
135
|
+
], User.prototype, "isPhoneVerified", void 0);
|
|
125
136
|
exports.User = User = __decorate([
|
|
126
137
|
(0, typegoose_1.index)({ location: '2dsphere' }),
|
|
127
138
|
(0, typegoose_1.modelOptions)({ schemaOptions: { collection: 'users' } })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.model.js","sourceRoot":"/","sources":["libraries/mongo/models/user.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAgF;AAChF,4EAAqE;AACrE,uDAA6C;AAC7C,mDAA0C;AAC1C,6CAAoC;AACpC,0DAAqD;AACrD,iDAAwC;AACxC,6DAAoD;AACpD,kDAAiD;
|
|
1
|
+
{"version":3,"file":"user.model.js","sourceRoot":"/","sources":["libraries/mongo/models/user.model.ts"],"names":[],"mappings":"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","sourcesContent":["import { index, modelOptions, mongoose, prop, Ref } from '@typegoose/typegoose';\r\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\r\nimport { CoreUser } from './core-user.model';\r\nimport { Product } from './product.model';\r\nimport { Shop } from './shop.model';\r\nimport { UserAddress } from './shared/address.model';\r\nimport { Coupon } from './coupon.model';\r\nimport { Subscription } from './subscription.model';\r\nimport { Status } from '../../../utilities/enum';\r\nimport { OTPFields } from './embedded/otp-fields.model';\r\n\r\n@index({ location: '2dsphere' })\r\n@modelOptions({ schemaOptions: { collection: 'users' } })\r\nexport class User extends TimeStamps {\r\n\t@prop({ required: true, type: mongoose.Types.ObjectId, ref: () => CoreUser })\r\n\tpublic coreUser!: Ref<CoreUser>;\r\n\r\n\t@prop({ type: () => [String], ref: () => Product })\r\n\tpublic favoriteProducts?: Ref<Product>[];\r\n\r\n\t@prop({ type: () => [String], ref: () => Shop })\r\n\tpublic favoriteShops?: Ref<Shop>[];\r\n\r\n\t@prop({ type: () => [UserAddress] })\r\n\tpublic addresses?: UserAddress[];\r\n\r\n\t@prop({ type: String, enum: Status, default: Status.ACTIVE })\r\n\tpublic status?: Status;\r\n\r\n\t@prop({ type: String })\r\n\tpublic socialId?: string;\r\n\r\n\t@prop({ type: Number, default: 0 })\r\n\tpublic tempBalance?: number;\r\n\r\n\t@prop({ type: Number, default: 0 })\r\n\tpublic orderCompleted?: number;\r\n\r\n\t@prop({ type: Date })\r\n\tpublic repeatedOrderAt?: Date;\r\n\r\n\t@prop({\r\n\t\ttype: Number,\r\n\t\tdefault: 0,\r\n\t\tset: (points: number) => Math.max(points, 0),\r\n\t\tget: (points: number) => Math.max(points, 0),\r\n\t})\r\n\tpublic tempRewardPoints?: number;\r\n\r\n\t@prop({ type: () => [String], ref: () => Coupon })\r\n\tpublic coupons?: Ref<Coupon>[];\r\n\r\n\t@prop({ type: String })\r\n\tpublic newUserCouponDiscountType?: string;\r\n\r\n\t@prop({ type: Number })\r\n\tpublic newUserCouponValue?: number;\r\n\r\n\t@prop({ type: Number })\r\n\tpublic newUserCouponMaximumDiscountLimit?: number;\r\n\r\n\t@prop({ type: Boolean, default: false })\r\n\tpublic isNewUserCouponShowed?: boolean;\r\n\r\n\t@prop({ type: String, ref: () => Coupon })\r\n\tpublic referralCode?: Ref<Coupon>;\r\n\r\n\t@prop({ type: String, ref: () => Subscription })\r\n\tpublic subscription?: Ref<Subscription>;\r\n\r\n\t@prop({ type: Boolean, default: false })\r\n\tpublic isSubscribed?: boolean;\r\n\r\n\t@prop({ type: String, unique: true, sparse: true })\r\n\tpublic phoneNumber?: string;\r\n\r\n\t@prop({ type: OTPFields })\r\n\tpublic phoneOtpInfo?: OTPFields;\r\n\r\n\t@prop({ type: Boolean, default: false })\r\n\tpublic isPhoneVerified?: boolean;\r\n}\r\n"]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { AuthEntityType } from '../../auth';
|
|
2
|
+
interface PhoneVerifiedOptions {
|
|
3
|
+
entityTypes: AuthEntityType[];
|
|
4
|
+
}
|
|
5
|
+
export declare function createPhoneVerifiedProcedure(options: PhoneVerifiedOptions): import("@trpc/server").ProcedureBuilder<{
|
|
6
|
+
_config: import("@trpc/server").RootConfig<{
|
|
7
|
+
ctx: import("@trpc/server/dist/adapters/standalone").CreateHTTPContextOptions & import("../context").LyxaContextParams;
|
|
8
|
+
meta: object;
|
|
9
|
+
errorShape: {
|
|
10
|
+
message: string;
|
|
11
|
+
data: {
|
|
12
|
+
stack: undefined;
|
|
13
|
+
path: undefined;
|
|
14
|
+
code: import("@trpc/server/rpc").TRPC_ERROR_CODE_KEY;
|
|
15
|
+
httpStatus: number;
|
|
16
|
+
};
|
|
17
|
+
stack: undefined;
|
|
18
|
+
code: import("@trpc/server/rpc").TRPC_ERROR_CODE_NUMBER;
|
|
19
|
+
};
|
|
20
|
+
transformer: import("@trpc/server").DefaultDataTransformer;
|
|
21
|
+
}>;
|
|
22
|
+
_meta: object;
|
|
23
|
+
_ctx_out: {
|
|
24
|
+
requestId: string | undefined;
|
|
25
|
+
res: import("http").ServerResponse<import("http").IncomingMessage>;
|
|
26
|
+
tokenType: import("../../auth").TokenType | undefined;
|
|
27
|
+
entity: import("../context").EntityContext | undefined;
|
|
28
|
+
req: import("http").IncomingMessage;
|
|
29
|
+
usedRefreshToken: boolean | undefined;
|
|
30
|
+
tokenRenewed: boolean | undefined;
|
|
31
|
+
};
|
|
32
|
+
_input_in: typeof import("@trpc/server").unsetMarker;
|
|
33
|
+
_input_out: typeof import("@trpc/server").unsetMarker;
|
|
34
|
+
_output_in: typeof import("@trpc/server").unsetMarker;
|
|
35
|
+
_output_out: typeof import("@trpc/server").unsetMarker;
|
|
36
|
+
}>;
|
|
37
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createPhoneVerifiedProcedure = createPhoneVerifiedProcedure;
|
|
4
|
+
const server_1 = require("@trpc/server");
|
|
5
|
+
const auth_1 = require("./auth");
|
|
6
|
+
const models_1 = require("../../mongo/models");
|
|
7
|
+
function createPhoneVerifiedProcedure(options) {
|
|
8
|
+
return (0, auth_1.createAuthenticatedProcedure)(options).use(async ({ ctx, next }) => {
|
|
9
|
+
if (!ctx.entity) {
|
|
10
|
+
throw new server_1.TRPCError({ code: 'UNAUTHORIZED', message: 'User not authenticated' });
|
|
11
|
+
}
|
|
12
|
+
const user = await models_1.UserModel.findOne({ _id: ctx.entity.id });
|
|
13
|
+
if (!user) {
|
|
14
|
+
throw new server_1.TRPCError({ code: 'UNAUTHORIZED', message: 'User not found' });
|
|
15
|
+
}
|
|
16
|
+
if (!user.isPhoneVerified)
|
|
17
|
+
throw new server_1.TRPCError({
|
|
18
|
+
code: 'FORBIDDEN',
|
|
19
|
+
message: 'Please verify your phone number to access this resource',
|
|
20
|
+
});
|
|
21
|
+
return next({ ctx });
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=phone-verified.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phone-verified.js","sourceRoot":"/","sources":["libraries/trpc/middlewares/phone-verified.ts"],"names":[],"mappings":";;AAaA,oEAkBC;AA/BD,yCAAyC;AACzC,iCAAsD;AAEtD,+CAA+C;AAU/C,SAAgB,4BAA4B,CAAC,OAA6B;IACzE,OAAO,IAAA,mCAA4B,EAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;QACxE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,kBAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAC;QAClF,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,kBAAS,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,MAAM,IAAI,kBAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,eAAe;YACxB,MAAM,IAAI,kBAAS,CAAC;gBACnB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,yDAAyD;aAClE,CAAC,CAAC;QAEJ,OAAO,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { TRPCError } from '@trpc/server';\r\nimport { createAuthenticatedProcedure } from './auth'; // Adjust import path!\r\nimport { AuthEntityType } from '../../auth';\r\nimport { UserModel } from '../../mongo/models';\r\n\r\ninterface PhoneVerifiedOptions {\r\n\tentityTypes: AuthEntityType[];\r\n}\r\n\r\n/**\r\n * A factory that creates a procedure requiring a verified phone number,\r\n * ensuring the user is authenticated and their phone is verified.\r\n */\r\nexport function createPhoneVerifiedProcedure(options: PhoneVerifiedOptions) {\r\n\treturn createAuthenticatedProcedure(options).use(async ({ ctx, next }) => {\r\n\t\tif (!ctx.entity) {\r\n\t\t\tthrow new TRPCError({ code: 'UNAUTHORIZED', message: 'User not authenticated' });\r\n\t\t}\r\n\r\n\t\tconst user = await UserModel.findOne({ _id: ctx.entity.id });\r\n\t\tif (!user) {\r\n\t\t\tthrow new TRPCError({ code: 'UNAUTHORIZED', message: 'User not found' });\r\n\t\t}\r\n\t\tif (!user.isPhoneVerified)\r\n\t\t\tthrow new TRPCError({\r\n\t\t\t\tcode: 'FORBIDDEN',\r\n\t\t\t\tmessage: 'Please verify your phone number to access this resource',\r\n\t\t\t});\r\n\r\n\t\treturn next({ ctx });\r\n\t});\r\n}\r\n"]}
|