@euler-edu/nest 7.0.7 → 7.0.8
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/lib/.tsbuildinfo +1 -1
- package/lib/connection/mongo/oj-main/user.d.ts +4 -0
- package/lib/connection/mongo/oj-main/user.d.ts.map +1 -1
- package/lib/connection/mongo/oj-main/user.js +1 -0
- package/lib/connection/mongo/oj-main/user.js.map +1 -1
- package/lib/decorators/client.decorator.d.ts +2 -0
- package/lib/decorators/client.decorator.d.ts.map +1 -1
- package/lib/decorators/client.decorator.js +19 -1
- package/lib/decorators/client.decorator.js.map +1 -1
- package/package.json +4 -4
|
@@ -21,6 +21,7 @@ export declare const userSchema: Schema<any, import("mongoose").Model<any, any,
|
|
|
21
21
|
email?: string | null | undefined;
|
|
22
22
|
school?: string | null | undefined;
|
|
23
23
|
facebook?: string | null | undefined;
|
|
24
|
+
academy_access_at?: NativeDate | null | undefined;
|
|
24
25
|
agree_terms_at?: NativeDate | null | undefined;
|
|
25
26
|
profile_image_key?: string | null | undefined;
|
|
26
27
|
profile_image_updated_at?: NativeDate | null | undefined;
|
|
@@ -50,6 +51,7 @@ export declare const userSchema: Schema<any, import("mongoose").Model<any, any,
|
|
|
50
51
|
email?: string | null | undefined;
|
|
51
52
|
school?: string | null | undefined;
|
|
52
53
|
facebook?: string | null | undefined;
|
|
54
|
+
academy_access_at?: NativeDate | null | undefined;
|
|
53
55
|
agree_terms_at?: NativeDate | null | undefined;
|
|
54
56
|
profile_image_key?: string | null | undefined;
|
|
55
57
|
profile_image_updated_at?: NativeDate | null | undefined;
|
|
@@ -81,6 +83,7 @@ export declare const userSchema: Schema<any, import("mongoose").Model<any, any,
|
|
|
81
83
|
email?: string | null | undefined;
|
|
82
84
|
school?: string | null | undefined;
|
|
83
85
|
facebook?: string | null | undefined;
|
|
86
|
+
academy_access_at?: NativeDate | null | undefined;
|
|
84
87
|
agree_terms_at?: NativeDate | null | undefined;
|
|
85
88
|
profile_image_key?: string | null | undefined;
|
|
86
89
|
profile_image_updated_at?: NativeDate | null | undefined;
|
|
@@ -116,6 +119,7 @@ export declare const userSchema: Schema<any, import("mongoose").Model<any, any,
|
|
|
116
119
|
email?: string | null | undefined;
|
|
117
120
|
school?: string | null | undefined;
|
|
118
121
|
facebook?: string | null | undefined;
|
|
122
|
+
academy_access_at?: NativeDate | null | undefined;
|
|
119
123
|
agree_terms_at?: NativeDate | null | undefined;
|
|
120
124
|
profile_image_key?: string | null | undefined;
|
|
121
125
|
profile_image_updated_at?: NativeDate | null | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/connection/mongo/oj-main/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/connection/mongo/oj-main/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCrB,CAAC"}
|
|
@@ -11,6 +11,7 @@ exports.userSchema = new mongoose_1.Schema({
|
|
|
11
11
|
school: String,
|
|
12
12
|
facebook: String,
|
|
13
13
|
access_at: { type: Date, required: true },
|
|
14
|
+
academy_access_at: { type: Date, required: false },
|
|
14
15
|
created_at: { type: Date, default: Date.now() },
|
|
15
16
|
agree_terms_at: { type: Date },
|
|
16
17
|
feeling: { type: String, default: '' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../src/connection/mongo/oj-main/user.ts"],"names":[],"mappings":";;;AAAA,uCAAkC;AAErB,QAAA,UAAU,GAAG,IAAI,iBAAM,CAAC;IACnC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACxD,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC1C,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACtC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACtC,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,MAAM;IAChB,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE;IAC/C,cAAc,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;IAC9B,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IACtC,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IAC5D,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IACzC,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IAC5C,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IACzC,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IAC1C,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IACpD,wBAAwB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;IACzD,eAAe,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;IACnE,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;IACtC,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC/C,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAChD,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAE7C,kBAAkB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;IAChE,mBAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;IACjE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;IACxD,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;IAEzD,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;CACtD,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../src/connection/mongo/oj-main/user.ts"],"names":[],"mappings":";;;AAAA,uCAAkC;AAErB,QAAA,UAAU,GAAG,IAAI,iBAAM,CAAC;IACnC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACxD,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC1C,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACtC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACtC,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,MAAM;IAChB,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzC,iBAAiB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;IAClD,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE;IAC/C,cAAc,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;IAC9B,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IACtC,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IAC5D,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IACzC,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IAC5C,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IACzC,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IAC1C,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IACpD,wBAAwB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;IACzD,eAAe,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;IACnE,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;IACtC,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC/C,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAChD,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAE7C,kBAAkB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;IAChE,mBAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;IACjE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;IACxD,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;IAEzD,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;CACtD,CAAC,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export type ClientIPType = string | undefined;
|
|
2
2
|
export declare const ClientIP: (...dataOrPipes: unknown[]) => ParameterDecorator;
|
|
3
|
+
export type IsAcademyAccessType = boolean;
|
|
4
|
+
export declare const IsAcademyAccess: (...dataOrPipes: unknown[]) => ParameterDecorator;
|
|
3
5
|
export type ClientUserAgentType = {
|
|
4
6
|
browser?: string;
|
|
5
7
|
os?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/client.decorator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/client.decorator.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;AAC9C,eAAO,MAAM,QAAQ,mDAWpB,CAAC;AAGF,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC;AAC1C,eAAO,MAAM,eAAe,mDAuB3B,CAAC;AAGF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AACF,eAAO,MAAM,eAAe,mDA0B3B,CAAC"}
|
|
@@ -3,10 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ClientUserAgent = exports.ClientIP = void 0;
|
|
6
|
+
exports.ClientUserAgent = exports.IsAcademyAccess = exports.ClientIP = void 0;
|
|
7
7
|
const common_1 = require("@nestjs/common");
|
|
8
8
|
const request_ip_1 = __importDefault(require("request-ip"));
|
|
9
9
|
const client_1 = require("@euler-edu/utils/client");
|
|
10
|
+
const constants_1 = __importDefault(require("@euler-edu/utils/constants"));
|
|
10
11
|
const clientIPLogger = new common_1.Logger('ClientIP');
|
|
11
12
|
exports.ClientIP = (0, common_1.createParamDecorator)((data, context) => {
|
|
12
13
|
try {
|
|
@@ -19,6 +20,23 @@ exports.ClientIP = (0, common_1.createParamDecorator)((data, context) => {
|
|
|
19
20
|
}
|
|
20
21
|
return undefined;
|
|
21
22
|
});
|
|
23
|
+
const isAcademyAccessLogger = new common_1.Logger('IsAcademyAccess');
|
|
24
|
+
exports.IsAcademyAccess = (0, common_1.createParamDecorator)((data, context) => {
|
|
25
|
+
try {
|
|
26
|
+
const request = context.switchToHttp().getRequest();
|
|
27
|
+
const forwardedFor = request.headers['x-forwarded-for'];
|
|
28
|
+
const forwardedIp = (Array.isArray(forwardedFor) ? forwardedFor.join(',') : forwardedFor)
|
|
29
|
+
?.split(',')
|
|
30
|
+
.at(-1)
|
|
31
|
+
?.trim();
|
|
32
|
+
const clientIp = (forwardedIp || request.socket.remoteAddress)?.replace(/^::ffff:/, '');
|
|
33
|
+
return !!clientIp && constants_1.default.ip.academies.includes(clientIp);
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
isAcademyAccessLogger.warn(error);
|
|
37
|
+
}
|
|
38
|
+
return false;
|
|
39
|
+
});
|
|
22
40
|
const clientUserAgentLogger = new common_1.Logger('ClientUserAgent');
|
|
23
41
|
exports.ClientUserAgent = (0, common_1.createParamDecorator)((data, context) => {
|
|
24
42
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.decorator.js","sourceRoot":"","sources":["../../src/decorators/client.decorator.ts"],"names":[],"mappings":";;;;;;AAAA,2CAAgF;
|
|
1
|
+
{"version":3,"file":"client.decorator.js","sourceRoot":"","sources":["../../src/decorators/client.decorator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@euler-edu/nest",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.8",
|
|
4
4
|
"description": "Euler-edu Shared NestJS Modules/Utils",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "Geon Kim",
|
|
@@ -46,9 +46,9 @@
|
|
|
46
46
|
"request-ip": "^2.2.0",
|
|
47
47
|
"sharp": "^0.34.5",
|
|
48
48
|
"sqs-consumer": "^15.0.4",
|
|
49
|
-
"@euler-edu/constant": "7.0.
|
|
50
|
-
"@euler-edu/
|
|
51
|
-
"@euler-edu/
|
|
49
|
+
"@euler-edu/constant": "7.0.8",
|
|
50
|
+
"@euler-edu/schema": "7.0.8",
|
|
51
|
+
"@euler-edu/utils": "7.0.8"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@types/express": "^5.0.6",
|