@hastehaul/common 3.1.0 → 3.3.0
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.
@@ -1,27 +1,4 @@
|
|
1
1
|
"use strict";
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
-
if (k2 === undefined) k2 = k;
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
-
}
|
8
|
-
Object.defineProperty(o, k2, desc);
|
9
|
-
}) : (function(o, m, k, k2) {
|
10
|
-
if (k2 === undefined) k2 = k;
|
11
|
-
o[k2] = m[k];
|
12
|
-
}));
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
-
}) : function(o, v) {
|
16
|
-
o["default"] = v;
|
17
|
-
});
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
-
if (mod && mod.__esModule) return mod;
|
20
|
-
var result = {};
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
-
__setModuleDefault(result, mod);
|
23
|
-
return result;
|
24
|
-
};
|
25
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
26
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
27
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
@@ -31,9 +8,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
31
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
32
9
|
});
|
33
10
|
};
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
13
|
+
};
|
34
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
35
15
|
exports.currentUser = void 0;
|
36
|
-
const jsonwebtoken_1 =
|
16
|
+
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
37
17
|
/**
|
38
18
|
* Middleware function to extract the current user from the request's Authorization header.
|
39
19
|
*
|
@@ -51,23 +31,16 @@ const currentUser = (req, res, next) => __awaiter(void 0, void 0, void 0, functi
|
|
51
31
|
return next();
|
52
32
|
}
|
53
33
|
try {
|
34
|
+
const jwtKey = (_a = process.env.JWT_KEY) !== null && _a !== void 0 ? _a : "";
|
35
|
+
console.log("=== jwtKey ===", jwtKey);
|
54
36
|
const token = bearerToken.split(' ')[1];
|
55
37
|
if (token) {
|
56
|
-
// ! over here we should get the JWT_KEY from the db or use the => kubectl create secret generic jwt-secret --from-literal=jwt=secret
|
57
|
-
const jwtKey = (_a = process.env.JWT_KEY) !== null && _a !== void 0 ? _a : "";
|
58
38
|
const result = jsonwebtoken_1.default.verify(token, jwtKey.split('-').join(''));
|
59
39
|
req.currentUser = result;
|
60
40
|
}
|
61
41
|
}
|
62
42
|
catch (err) {
|
63
|
-
|
64
|
-
// If the token is expired, you may consider refreshing the token or taking appropriate actions.
|
65
|
-
// Uncomment the following line if you want to handle token expiration using the AuthController.
|
66
|
-
// await AuthController.refreshToken(req, res);
|
67
|
-
}
|
68
|
-
else {
|
69
|
-
console.error('Error verifying token:', err);
|
70
|
-
}
|
43
|
+
console.error('Error verifying token:', err);
|
71
44
|
}
|
72
45
|
next();
|
73
46
|
});
|
package/build/utils/utils.d.ts
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
import { Model, Document } from 'mongoose';
|
1
2
|
type Setting = {
|
2
3
|
key: string;
|
3
4
|
value: any;
|
@@ -16,4 +17,5 @@ export declare function isPointInGeoJSON(latLng: number[], fileName: string): Pr
|
|
16
17
|
properties: null;
|
17
18
|
}>;
|
18
19
|
export declare function clearGeoJsonCache(): void;
|
20
|
+
export declare function generateCode<T extends Document>(model: Model<T>, filterProperty: keyof T): Promise<string>;
|
19
21
|
export {};
|
package/build/utils/utils.js
CHANGED
@@ -20,6 +20,7 @@ exports.getValueFromSettings = getValueFromSettings;
|
|
20
20
|
exports.loadAsset = loadAsset;
|
21
21
|
exports.isPointInGeoJSON = isPointInGeoJSON;
|
22
22
|
exports.clearGeoJsonCache = clearGeoJsonCache;
|
23
|
+
exports.generateCode = generateCode;
|
23
24
|
const boolean_point_in_polygon_1 = __importDefault(require("@turf/boolean-point-in-polygon"));
|
24
25
|
const helpers_1 = require("@turf/helpers");
|
25
26
|
const moment_1 = __importDefault(require("moment"));
|
@@ -108,3 +109,24 @@ function isPointInGeoJSON(latLng, fileName) {
|
|
108
109
|
function clearGeoJsonCache() {
|
109
110
|
cachedGeoJsonData = null;
|
110
111
|
}
|
112
|
+
function generateCode(model, filterProperty) {
|
113
|
+
return __awaiter(this, void 0, void 0, function* () {
|
114
|
+
const batchSize = 10;
|
115
|
+
const prefixes = ['R'];
|
116
|
+
let totalDocuments = yield model.countDocuments();
|
117
|
+
let batch = Array.from({ length: batchSize }, (_, i) => {
|
118
|
+
const prefix = prefixes[Math.floor(Math.random() * prefixes.length)];
|
119
|
+
const code = (totalDocuments + i + 1).toString().padStart(4, '0'); // Adjust to 5 digits to fit prefix
|
120
|
+
return prefix + code;
|
121
|
+
});
|
122
|
+
let query = { [filterProperty]: { $in: batch } };
|
123
|
+
let foundCode = yield model.find({ query });
|
124
|
+
let foundSet = new Set(foundCode.map((document) => document[filterProperty]));
|
125
|
+
for (let code of batch) {
|
126
|
+
if (!foundSet.has(code)) {
|
127
|
+
return code;
|
128
|
+
}
|
129
|
+
}
|
130
|
+
return generateCode(model, filterProperty);
|
131
|
+
});
|
132
|
+
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@hastehaul/common",
|
3
|
-
"version": "3.
|
3
|
+
"version": "3.3.0",
|
4
4
|
"description": "",
|
5
5
|
"main": "./build/index.js",
|
6
6
|
"types": "./build/index.d.ts",
|
@@ -36,6 +36,7 @@
|
|
36
36
|
"ioredis": "^5.3.2",
|
37
37
|
"jsonwebtoken": "^9.0.1",
|
38
38
|
"moment": "^2.29.4",
|
39
|
+
"mongoose": "^8.5.2",
|
39
40
|
"nats": "^2.17.0",
|
40
41
|
"socket.io": "^4.7.1"
|
41
42
|
}
|