@exyconn/common 1.0.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.
- package/README.md +259 -0
- package/dist/client/http/index.d.mts +85 -0
- package/dist/client/http/index.d.ts +85 -0
- package/dist/client/http/index.js +127 -0
- package/dist/client/http/index.js.map +1 -0
- package/dist/client/http/index.mjs +109 -0
- package/dist/client/http/index.mjs.map +1 -0
- package/dist/client/index.d.mts +7 -0
- package/dist/client/index.d.ts +7 -0
- package/dist/client/index.js +964 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/index.mjs +889 -0
- package/dist/client/index.mjs.map +1 -0
- package/dist/client/logger/index.d.mts +53 -0
- package/dist/client/logger/index.d.ts +53 -0
- package/dist/client/logger/index.js +120 -0
- package/dist/client/logger/index.js.map +1 -0
- package/dist/client/logger/index.mjs +116 -0
- package/dist/client/logger/index.mjs.map +1 -0
- package/dist/client/utils/index.d.mts +285 -0
- package/dist/client/utils/index.d.ts +285 -0
- package/dist/client/utils/index.js +403 -0
- package/dist/client/utils/index.js.map +1 -0
- package/dist/client/utils/index.mjs +362 -0
- package/dist/client/utils/index.mjs.map +1 -0
- package/dist/index-BNdT-2X4.d.ts +229 -0
- package/dist/index-CcrANHAQ.d.mts +59 -0
- package/dist/index-ClWtDfwk.d.ts +833 -0
- package/dist/index-DSW6JfD-.d.mts +833 -0
- package/dist/index-Du0LLt9f.d.mts +229 -0
- package/dist/index-iTKxFa78.d.ts +59 -0
- package/dist/index.d.mts +171 -0
- package/dist/index.d.ts +171 -0
- package/dist/index.js +3806 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +3792 -0
- package/dist/index.mjs.map +1 -0
- package/dist/response.types-D--UhLJq.d.mts +67 -0
- package/dist/response.types-D--UhLJq.d.ts +67 -0
- package/dist/server/db/index.d.mts +38 -0
- package/dist/server/db/index.d.ts +38 -0
- package/dist/server/db/index.js +68 -0
- package/dist/server/db/index.js.map +1 -0
- package/dist/server/db/index.mjs +60 -0
- package/dist/server/db/index.mjs.map +1 -0
- package/dist/server/enums/index.d.mts +46 -0
- package/dist/server/enums/index.d.ts +46 -0
- package/dist/server/enums/index.js +48 -0
- package/dist/server/enums/index.js.map +1 -0
- package/dist/server/enums/index.mjs +43 -0
- package/dist/server/enums/index.mjs.map +1 -0
- package/dist/server/index.d.mts +9 -0
- package/dist/server/index.d.ts +9 -0
- package/dist/server/index.js +569 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/index.mjs +523 -0
- package/dist/server/index.mjs.map +1 -0
- package/dist/server/logger/index.d.mts +34 -0
- package/dist/server/logger/index.d.ts +34 -0
- package/dist/server/logger/index.js +125 -0
- package/dist/server/logger/index.js.map +1 -0
- package/dist/server/logger/index.mjs +113 -0
- package/dist/server/logger/index.mjs.map +1 -0
- package/dist/server/middleware/index.d.mts +56 -0
- package/dist/server/middleware/index.d.ts +56 -0
- package/dist/server/middleware/index.js +128 -0
- package/dist/server/middleware/index.js.map +1 -0
- package/dist/server/middleware/index.mjs +118 -0
- package/dist/server/middleware/index.mjs.map +1 -0
- package/dist/server/response/index.d.mts +86 -0
- package/dist/server/response/index.d.ts +86 -0
- package/dist/server/response/index.js +140 -0
- package/dist/server/response/index.js.map +1 -0
- package/dist/server/response/index.mjs +126 -0
- package/dist/server/response/index.mjs.map +1 -0
- package/dist/server/utils/index.d.mts +69 -0
- package/dist/server/utils/index.d.ts +69 -0
- package/dist/server/utils/index.js +114 -0
- package/dist/server/utils/index.js.map +1 -0
- package/dist/server/utils/index.mjs +106 -0
- package/dist/server/utils/index.mjs.map +1 -0
- package/dist/shared/index.d.mts +4 -0
- package/dist/shared/index.d.ts +4 -0
- package/dist/shared/index.js +933 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/index.mjs +612 -0
- package/dist/shared/index.mjs.map +1 -0
- package/package.json +202 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard API Response Types
|
|
3
|
+
*/
|
|
4
|
+
interface ApiResponse<T = unknown> {
|
|
5
|
+
success: boolean;
|
|
6
|
+
message: string;
|
|
7
|
+
data?: T;
|
|
8
|
+
error?: string;
|
|
9
|
+
statusCode?: number;
|
|
10
|
+
}
|
|
11
|
+
interface ApiErrorResponse {
|
|
12
|
+
success: false;
|
|
13
|
+
message: string;
|
|
14
|
+
error?: string;
|
|
15
|
+
statusCode: number;
|
|
16
|
+
stack?: string;
|
|
17
|
+
}
|
|
18
|
+
interface ApiSuccessResponse<T = unknown> {
|
|
19
|
+
success: true;
|
|
20
|
+
message: string;
|
|
21
|
+
data: T;
|
|
22
|
+
statusCode: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Pagination Types
|
|
26
|
+
*/
|
|
27
|
+
interface PaginationMeta {
|
|
28
|
+
total: number;
|
|
29
|
+
page: number;
|
|
30
|
+
limit: number;
|
|
31
|
+
totalPages: number;
|
|
32
|
+
hasNextPage: boolean;
|
|
33
|
+
hasPrevPage: boolean;
|
|
34
|
+
}
|
|
35
|
+
interface PaginatedResponse<T = unknown> extends ApiSuccessResponse<T[]> {
|
|
36
|
+
pagination: PaginationMeta;
|
|
37
|
+
}
|
|
38
|
+
interface PaginationParams {
|
|
39
|
+
page?: number;
|
|
40
|
+
limit?: number;
|
|
41
|
+
sortBy?: string;
|
|
42
|
+
sortOrder?: 'asc' | 'desc';
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Filter Types
|
|
46
|
+
*/
|
|
47
|
+
interface BaseFilterParams {
|
|
48
|
+
search?: string;
|
|
49
|
+
startDate?: string;
|
|
50
|
+
endDate?: string;
|
|
51
|
+
status?: string;
|
|
52
|
+
isActive?: boolean;
|
|
53
|
+
}
|
|
54
|
+
interface FilterWithPagination extends BaseFilterParams, PaginationParams {
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* CRUD Operation Types
|
|
58
|
+
*/
|
|
59
|
+
type CreateResponse<T> = ApiSuccessResponse<T>;
|
|
60
|
+
type UpdateResponse<T> = ApiSuccessResponse<T>;
|
|
61
|
+
type DeleteResponse = ApiSuccessResponse<{
|
|
62
|
+
deleted: boolean;
|
|
63
|
+
}>;
|
|
64
|
+
type GetResponse<T> = ApiSuccessResponse<T>;
|
|
65
|
+
type ListResponse<T> = PaginatedResponse<T>;
|
|
66
|
+
|
|
67
|
+
export type { ApiErrorResponse as A, BaseFilterParams as B, CreateResponse as C, DeleteResponse as D, FilterWithPagination as F, GetResponse as G, ListResponse as L, PaginatedResponse as P, UpdateResponse as U, ApiResponse as a, ApiSuccessResponse as b, PaginationMeta as c, PaginationParams as d };
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard API Response Types
|
|
3
|
+
*/
|
|
4
|
+
interface ApiResponse<T = unknown> {
|
|
5
|
+
success: boolean;
|
|
6
|
+
message: string;
|
|
7
|
+
data?: T;
|
|
8
|
+
error?: string;
|
|
9
|
+
statusCode?: number;
|
|
10
|
+
}
|
|
11
|
+
interface ApiErrorResponse {
|
|
12
|
+
success: false;
|
|
13
|
+
message: string;
|
|
14
|
+
error?: string;
|
|
15
|
+
statusCode: number;
|
|
16
|
+
stack?: string;
|
|
17
|
+
}
|
|
18
|
+
interface ApiSuccessResponse<T = unknown> {
|
|
19
|
+
success: true;
|
|
20
|
+
message: string;
|
|
21
|
+
data: T;
|
|
22
|
+
statusCode: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Pagination Types
|
|
26
|
+
*/
|
|
27
|
+
interface PaginationMeta {
|
|
28
|
+
total: number;
|
|
29
|
+
page: number;
|
|
30
|
+
limit: number;
|
|
31
|
+
totalPages: number;
|
|
32
|
+
hasNextPage: boolean;
|
|
33
|
+
hasPrevPage: boolean;
|
|
34
|
+
}
|
|
35
|
+
interface PaginatedResponse<T = unknown> extends ApiSuccessResponse<T[]> {
|
|
36
|
+
pagination: PaginationMeta;
|
|
37
|
+
}
|
|
38
|
+
interface PaginationParams {
|
|
39
|
+
page?: number;
|
|
40
|
+
limit?: number;
|
|
41
|
+
sortBy?: string;
|
|
42
|
+
sortOrder?: 'asc' | 'desc';
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Filter Types
|
|
46
|
+
*/
|
|
47
|
+
interface BaseFilterParams {
|
|
48
|
+
search?: string;
|
|
49
|
+
startDate?: string;
|
|
50
|
+
endDate?: string;
|
|
51
|
+
status?: string;
|
|
52
|
+
isActive?: boolean;
|
|
53
|
+
}
|
|
54
|
+
interface FilterWithPagination extends BaseFilterParams, PaginationParams {
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* CRUD Operation Types
|
|
58
|
+
*/
|
|
59
|
+
type CreateResponse<T> = ApiSuccessResponse<T>;
|
|
60
|
+
type UpdateResponse<T> = ApiSuccessResponse<T>;
|
|
61
|
+
type DeleteResponse = ApiSuccessResponse<{
|
|
62
|
+
deleted: boolean;
|
|
63
|
+
}>;
|
|
64
|
+
type GetResponse<T> = ApiSuccessResponse<T>;
|
|
65
|
+
type ListResponse<T> = PaginatedResponse<T>;
|
|
66
|
+
|
|
67
|
+
export type { ApiErrorResponse as A, BaseFilterParams as B, CreateResponse as C, DeleteResponse as D, FilterWithPagination as F, GetResponse as G, ListResponse as L, PaginatedResponse as P, UpdateResponse as U, ApiResponse as a, ApiSuccessResponse as b, PaginationMeta as c, PaginationParams as d };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import mongoose from 'mongoose';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Database Connection Options
|
|
5
|
+
*/
|
|
6
|
+
interface DbConnectionOptions {
|
|
7
|
+
maxPoolSize?: number;
|
|
8
|
+
minPoolSize?: number;
|
|
9
|
+
socketTimeoutMS?: number;
|
|
10
|
+
serverSelectionTimeoutMS?: number;
|
|
11
|
+
maxIdleTimeMS?: number;
|
|
12
|
+
retryWrites?: boolean;
|
|
13
|
+
retryReads?: boolean;
|
|
14
|
+
w?: 'majority' | number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Connect to MongoDB with mongoose
|
|
18
|
+
* @param mongoUri - MongoDB connection string
|
|
19
|
+
* @param options - Connection options
|
|
20
|
+
* @param logger - Optional logger instance
|
|
21
|
+
*/
|
|
22
|
+
declare const connectDB: (mongoUri: string, options?: DbConnectionOptions, logger?: {
|
|
23
|
+
info: (msg: string, meta?: unknown) => void;
|
|
24
|
+
error: (msg: string, meta?: unknown) => void;
|
|
25
|
+
}) => Promise<typeof mongoose>;
|
|
26
|
+
/**
|
|
27
|
+
* Disconnect from MongoDB
|
|
28
|
+
*/
|
|
29
|
+
declare const disconnectDB: (logger?: {
|
|
30
|
+
info: (msg: string) => void;
|
|
31
|
+
error: (msg: string, meta?: unknown) => void;
|
|
32
|
+
}) => Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Get connection status
|
|
35
|
+
*/
|
|
36
|
+
declare const getConnectionStatus: () => string;
|
|
37
|
+
|
|
38
|
+
export { type DbConnectionOptions, connectDB, disconnectDB, getConnectionStatus };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import mongoose from 'mongoose';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Database Connection Options
|
|
5
|
+
*/
|
|
6
|
+
interface DbConnectionOptions {
|
|
7
|
+
maxPoolSize?: number;
|
|
8
|
+
minPoolSize?: number;
|
|
9
|
+
socketTimeoutMS?: number;
|
|
10
|
+
serverSelectionTimeoutMS?: number;
|
|
11
|
+
maxIdleTimeMS?: number;
|
|
12
|
+
retryWrites?: boolean;
|
|
13
|
+
retryReads?: boolean;
|
|
14
|
+
w?: 'majority' | number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Connect to MongoDB with mongoose
|
|
18
|
+
* @param mongoUri - MongoDB connection string
|
|
19
|
+
* @param options - Connection options
|
|
20
|
+
* @param logger - Optional logger instance
|
|
21
|
+
*/
|
|
22
|
+
declare const connectDB: (mongoUri: string, options?: DbConnectionOptions, logger?: {
|
|
23
|
+
info: (msg: string, meta?: unknown) => void;
|
|
24
|
+
error: (msg: string, meta?: unknown) => void;
|
|
25
|
+
}) => Promise<typeof mongoose>;
|
|
26
|
+
/**
|
|
27
|
+
* Disconnect from MongoDB
|
|
28
|
+
*/
|
|
29
|
+
declare const disconnectDB: (logger?: {
|
|
30
|
+
info: (msg: string) => void;
|
|
31
|
+
error: (msg: string, meta?: unknown) => void;
|
|
32
|
+
}) => Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Get connection status
|
|
35
|
+
*/
|
|
36
|
+
declare const getConnectionStatus: () => string;
|
|
37
|
+
|
|
38
|
+
export { type DbConnectionOptions, connectDB, disconnectDB, getConnectionStatus };
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var mongoose = require('mongoose');
|
|
4
|
+
|
|
5
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
+
|
|
7
|
+
var mongoose__default = /*#__PURE__*/_interopDefault(mongoose);
|
|
8
|
+
|
|
9
|
+
// src/server/db/mongoose-connect.ts
|
|
10
|
+
var defaultOptions = {
|
|
11
|
+
maxPoolSize: process.env.NODE_ENV === "production" ? 50 : 10,
|
|
12
|
+
minPoolSize: process.env.NODE_ENV === "production" ? 10 : 5,
|
|
13
|
+
socketTimeoutMS: 45e3,
|
|
14
|
+
serverSelectionTimeoutMS: 1e4,
|
|
15
|
+
maxIdleTimeMS: 1e4,
|
|
16
|
+
retryWrites: true,
|
|
17
|
+
retryReads: true,
|
|
18
|
+
w: "majority"
|
|
19
|
+
};
|
|
20
|
+
var connectDB = async (mongoUri, options = {}, logger) => {
|
|
21
|
+
if (mongoose__default.default.connection.readyState === 1) {
|
|
22
|
+
logger?.info("Database already connected, reusing connection");
|
|
23
|
+
return mongoose__default.default;
|
|
24
|
+
}
|
|
25
|
+
const finalOptions = { ...defaultOptions, ...options };
|
|
26
|
+
try {
|
|
27
|
+
await mongoose__default.default.connect(mongoUri, finalOptions);
|
|
28
|
+
logger?.info("MongoDB connected successfully");
|
|
29
|
+
mongoose__default.default.connection.on("error", (err) => {
|
|
30
|
+
logger?.error("MongoDB connection error", err);
|
|
31
|
+
});
|
|
32
|
+
mongoose__default.default.connection.on("disconnected", () => {
|
|
33
|
+
logger?.info("MongoDB disconnected");
|
|
34
|
+
});
|
|
35
|
+
mongoose__default.default.connection.on("reconnected", () => {
|
|
36
|
+
logger?.info("MongoDB reconnected");
|
|
37
|
+
});
|
|
38
|
+
return mongoose__default.default;
|
|
39
|
+
} catch (error) {
|
|
40
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
41
|
+
logger?.error("MongoDB connection failed", { error: errorMessage });
|
|
42
|
+
throw error;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
var disconnectDB = async (logger) => {
|
|
46
|
+
try {
|
|
47
|
+
await mongoose__default.default.disconnect();
|
|
48
|
+
logger?.info("MongoDB disconnected successfully");
|
|
49
|
+
} catch (error) {
|
|
50
|
+
logger?.error("Error disconnecting from MongoDB", error);
|
|
51
|
+
throw error;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
var getConnectionStatus = () => {
|
|
55
|
+
const states = {
|
|
56
|
+
0: "disconnected",
|
|
57
|
+
1: "connected",
|
|
58
|
+
2: "connecting",
|
|
59
|
+
3: "disconnecting"
|
|
60
|
+
};
|
|
61
|
+
return states[mongoose__default.default.connection.readyState] || "unknown";
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
exports.connectDB = connectDB;
|
|
65
|
+
exports.disconnectDB = disconnectDB;
|
|
66
|
+
exports.getConnectionStatus = getConnectionStatus;
|
|
67
|
+
//# sourceMappingURL=index.js.map
|
|
68
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/server/db/mongoose-connect.ts"],"names":["mongoose"],"mappings":";;;;;;;;;AAmBA,IAAM,cAAA,GAAsC;AAAA,EAC1C,WAAA,EAAa,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,eAAe,EAAA,GAAK,EAAA;AAAA,EAC1D,WAAA,EAAa,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,eAAe,EAAA,GAAK,CAAA;AAAA,EAC1D,eAAA,EAAiB,IAAA;AAAA,EACjB,wBAAA,EAA0B,GAAA;AAAA,EAC1B,aAAA,EAAe,GAAA;AAAA,EACf,WAAA,EAAa,IAAA;AAAA,EACb,UAAA,EAAY,IAAA;AAAA,EACZ,CAAA,EAAG;AACL,CAAA;AAQO,IAAM,YAAY,OACvB,QAAA,EACA,OAAA,GAA+B,IAC/B,MAAA,KAC6B;AAE7B,EAAA,IAAIA,yBAAA,CAAS,UAAA,CAAW,UAAA,KAAe,CAAA,EAAG;AACxC,IAAA,MAAA,EAAQ,KAAK,gDAAgD,CAAA;AAC7D,IAAA,OAAOA,yBAAA;AAAA,EACT;AAEA,EAAA,MAAM,YAAA,GAA+B,EAAE,GAAG,cAAA,EAAgB,GAAG,OAAA,EAAQ;AAErE,EAAA,IAAI;AACF,IAAA,MAAMA,yBAAA,CAAS,OAAA,CAAQ,QAAA,EAAU,YAAY,CAAA;AAC7C,IAAA,MAAA,EAAQ,KAAK,gCAAgC,CAAA;AAG7C,IAAAA,yBAAA,CAAS,UAAA,CAAW,EAAA,CAAG,OAAA,EAAS,CAAC,GAAA,KAAe;AAC9C,MAAA,MAAA,EAAQ,KAAA,CAAM,4BAA4B,GAAG,CAAA;AAAA,IAC/C,CAAC,CAAA;AAED,IAAAA,yBAAA,CAAS,UAAA,CAAW,EAAA,CAAG,cAAA,EAAgB,MAAM;AAC3C,MAAA,MAAA,EAAQ,KAAK,sBAAsB,CAAA;AAAA,IACrC,CAAC,CAAA;AAED,IAAAA,yBAAA,CAAS,UAAA,CAAW,EAAA,CAAG,aAAA,EAAe,MAAM;AAC1C,MAAA,MAAA,EAAQ,KAAK,qBAAqB,CAAA;AAAA,IACpC,CAAC,CAAA;AAED,IAAA,OAAOA,yBAAA;AAAA,EACT,SAAS,KAAA,EAAO;AACd,IAAA,MAAM,eAAe,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,OAAO,KAAK,CAAA;AAC1E,IAAA,MAAA,EAAQ,KAAA,CAAM,2BAAA,EAA6B,EAAE,KAAA,EAAO,cAAc,CAAA;AAClE,IAAA,MAAM,KAAA;AAAA,EACR;AACF;AAKO,IAAM,YAAA,GAAe,OAC1B,MAAA,KACkB;AAClB,EAAA,IAAI;AACF,IAAA,MAAMA,0BAAS,UAAA,EAAW;AAC1B,IAAA,MAAA,EAAQ,KAAK,mCAAmC,CAAA;AAAA,EAClD,SAAS,KAAA,EAAO;AACd,IAAA,MAAA,EAAQ,KAAA,CAAM,oCAAoC,KAAK,CAAA;AACvD,IAAA,MAAM,KAAA;AAAA,EACR;AACF;AAKO,IAAM,sBAAsB,MAAc;AAC/C,EAAA,MAAM,MAAA,GAAiC;AAAA,IACrC,CAAA,EAAG,cAAA;AAAA,IACH,CAAA,EAAG,WAAA;AAAA,IACH,CAAA,EAAG,YAAA;AAAA,IACH,CAAA,EAAG;AAAA,GACL;AACA,EAAA,OAAO,MAAA,CAAOA,yBAAA,CAAS,UAAA,CAAW,UAAU,CAAA,IAAK,SAAA;AACnD","file":"index.js","sourcesContent":["import mongoose, { ConnectOptions } from 'mongoose';\r\n\r\n/**\r\n * Database Connection Options\r\n */\r\nexport interface DbConnectionOptions {\r\n maxPoolSize?: number;\r\n minPoolSize?: number;\r\n socketTimeoutMS?: number;\r\n serverSelectionTimeoutMS?: number;\r\n maxIdleTimeMS?: number;\r\n retryWrites?: boolean;\r\n retryReads?: boolean;\r\n w?: 'majority' | number;\r\n}\r\n\r\n/**\r\n * Default connection options\r\n */\r\nconst defaultOptions: DbConnectionOptions = {\r\n maxPoolSize: process.env.NODE_ENV === 'production' ? 50 : 10,\r\n minPoolSize: process.env.NODE_ENV === 'production' ? 10 : 5,\r\n socketTimeoutMS: 45000,\r\n serverSelectionTimeoutMS: 10000,\r\n maxIdleTimeMS: 10000,\r\n retryWrites: true,\r\n retryReads: true,\r\n w: 'majority',\r\n};\r\n\r\n/**\r\n * Connect to MongoDB with mongoose\r\n * @param mongoUri - MongoDB connection string\r\n * @param options - Connection options\r\n * @param logger - Optional logger instance\r\n */\r\nexport const connectDB = async (\r\n mongoUri: string,\r\n options: DbConnectionOptions = {},\r\n logger?: { info: (msg: string, meta?: unknown) => void; error: (msg: string, meta?: unknown) => void }\r\n): Promise<typeof mongoose> => {\r\n // Check if already connected\r\n if (mongoose.connection.readyState === 1) {\r\n logger?.info('Database already connected, reusing connection');\r\n return mongoose;\r\n }\r\n\r\n const finalOptions: ConnectOptions = { ...defaultOptions, ...options };\r\n\r\n try {\r\n await mongoose.connect(mongoUri, finalOptions);\r\n logger?.info('MongoDB connected successfully');\r\n\r\n // Handle connection events\r\n mongoose.connection.on('error', (err: Error) => {\r\n logger?.error('MongoDB connection error', err);\r\n });\r\n\r\n mongoose.connection.on('disconnected', () => {\r\n logger?.info('MongoDB disconnected');\r\n });\r\n\r\n mongoose.connection.on('reconnected', () => {\r\n logger?.info('MongoDB reconnected');\r\n });\r\n\r\n return mongoose;\r\n } catch (error) {\r\n const errorMessage = error instanceof Error ? error.message : String(error);\r\n logger?.error('MongoDB connection failed', { error: errorMessage });\r\n throw error;\r\n }\r\n};\r\n\r\n/**\r\n * Disconnect from MongoDB\r\n */\r\nexport const disconnectDB = async (\r\n logger?: { info: (msg: string) => void; error: (msg: string, meta?: unknown) => void }\r\n): Promise<void> => {\r\n try {\r\n await mongoose.disconnect();\r\n logger?.info('MongoDB disconnected successfully');\r\n } catch (error) {\r\n logger?.error('Error disconnecting from MongoDB', error);\r\n throw error;\r\n }\r\n};\r\n\r\n/**\r\n * Get connection status\r\n */\r\nexport const getConnectionStatus = (): string => {\r\n const states: Record<number, string> = {\r\n 0: 'disconnected',\r\n 1: 'connected',\r\n 2: 'connecting',\r\n 3: 'disconnecting',\r\n };\r\n return states[mongoose.connection.readyState] || 'unknown';\r\n};\r\n\r\nexport default {\r\n connectDB,\r\n disconnectDB,\r\n getConnectionStatus,\r\n};\r\n"]}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import mongoose from 'mongoose';
|
|
2
|
+
|
|
3
|
+
// src/server/db/mongoose-connect.ts
|
|
4
|
+
var defaultOptions = {
|
|
5
|
+
maxPoolSize: process.env.NODE_ENV === "production" ? 50 : 10,
|
|
6
|
+
minPoolSize: process.env.NODE_ENV === "production" ? 10 : 5,
|
|
7
|
+
socketTimeoutMS: 45e3,
|
|
8
|
+
serverSelectionTimeoutMS: 1e4,
|
|
9
|
+
maxIdleTimeMS: 1e4,
|
|
10
|
+
retryWrites: true,
|
|
11
|
+
retryReads: true,
|
|
12
|
+
w: "majority"
|
|
13
|
+
};
|
|
14
|
+
var connectDB = async (mongoUri, options = {}, logger) => {
|
|
15
|
+
if (mongoose.connection.readyState === 1) {
|
|
16
|
+
logger?.info("Database already connected, reusing connection");
|
|
17
|
+
return mongoose;
|
|
18
|
+
}
|
|
19
|
+
const finalOptions = { ...defaultOptions, ...options };
|
|
20
|
+
try {
|
|
21
|
+
await mongoose.connect(mongoUri, finalOptions);
|
|
22
|
+
logger?.info("MongoDB connected successfully");
|
|
23
|
+
mongoose.connection.on("error", (err) => {
|
|
24
|
+
logger?.error("MongoDB connection error", err);
|
|
25
|
+
});
|
|
26
|
+
mongoose.connection.on("disconnected", () => {
|
|
27
|
+
logger?.info("MongoDB disconnected");
|
|
28
|
+
});
|
|
29
|
+
mongoose.connection.on("reconnected", () => {
|
|
30
|
+
logger?.info("MongoDB reconnected");
|
|
31
|
+
});
|
|
32
|
+
return mongoose;
|
|
33
|
+
} catch (error) {
|
|
34
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
35
|
+
logger?.error("MongoDB connection failed", { error: errorMessage });
|
|
36
|
+
throw error;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
var disconnectDB = async (logger) => {
|
|
40
|
+
try {
|
|
41
|
+
await mongoose.disconnect();
|
|
42
|
+
logger?.info("MongoDB disconnected successfully");
|
|
43
|
+
} catch (error) {
|
|
44
|
+
logger?.error("Error disconnecting from MongoDB", error);
|
|
45
|
+
throw error;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
var getConnectionStatus = () => {
|
|
49
|
+
const states = {
|
|
50
|
+
0: "disconnected",
|
|
51
|
+
1: "connected",
|
|
52
|
+
2: "connecting",
|
|
53
|
+
3: "disconnecting"
|
|
54
|
+
};
|
|
55
|
+
return states[mongoose.connection.readyState] || "unknown";
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
export { connectDB, disconnectDB, getConnectionStatus };
|
|
59
|
+
//# sourceMappingURL=index.mjs.map
|
|
60
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/server/db/mongoose-connect.ts"],"names":[],"mappings":";;;AAmBA,IAAM,cAAA,GAAsC;AAAA,EAC1C,WAAA,EAAa,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,eAAe,EAAA,GAAK,EAAA;AAAA,EAC1D,WAAA,EAAa,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,eAAe,EAAA,GAAK,CAAA;AAAA,EAC1D,eAAA,EAAiB,IAAA;AAAA,EACjB,wBAAA,EAA0B,GAAA;AAAA,EAC1B,aAAA,EAAe,GAAA;AAAA,EACf,WAAA,EAAa,IAAA;AAAA,EACb,UAAA,EAAY,IAAA;AAAA,EACZ,CAAA,EAAG;AACL,CAAA;AAQO,IAAM,YAAY,OACvB,QAAA,EACA,OAAA,GAA+B,IAC/B,MAAA,KAC6B;AAE7B,EAAA,IAAI,QAAA,CAAS,UAAA,CAAW,UAAA,KAAe,CAAA,EAAG;AACxC,IAAA,MAAA,EAAQ,KAAK,gDAAgD,CAAA;AAC7D,IAAA,OAAO,QAAA;AAAA,EACT;AAEA,EAAA,MAAM,YAAA,GAA+B,EAAE,GAAG,cAAA,EAAgB,GAAG,OAAA,EAAQ;AAErE,EAAA,IAAI;AACF,IAAA,MAAM,QAAA,CAAS,OAAA,CAAQ,QAAA,EAAU,YAAY,CAAA;AAC7C,IAAA,MAAA,EAAQ,KAAK,gCAAgC,CAAA;AAG7C,IAAA,QAAA,CAAS,UAAA,CAAW,EAAA,CAAG,OAAA,EAAS,CAAC,GAAA,KAAe;AAC9C,MAAA,MAAA,EAAQ,KAAA,CAAM,4BAA4B,GAAG,CAAA;AAAA,IAC/C,CAAC,CAAA;AAED,IAAA,QAAA,CAAS,UAAA,CAAW,EAAA,CAAG,cAAA,EAAgB,MAAM;AAC3C,MAAA,MAAA,EAAQ,KAAK,sBAAsB,CAAA;AAAA,IACrC,CAAC,CAAA;AAED,IAAA,QAAA,CAAS,UAAA,CAAW,EAAA,CAAG,aAAA,EAAe,MAAM;AAC1C,MAAA,MAAA,EAAQ,KAAK,qBAAqB,CAAA;AAAA,IACpC,CAAC,CAAA;AAED,IAAA,OAAO,QAAA;AAAA,EACT,SAAS,KAAA,EAAO;AACd,IAAA,MAAM,eAAe,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,OAAO,KAAK,CAAA;AAC1E,IAAA,MAAA,EAAQ,KAAA,CAAM,2BAAA,EAA6B,EAAE,KAAA,EAAO,cAAc,CAAA;AAClE,IAAA,MAAM,KAAA;AAAA,EACR;AACF;AAKO,IAAM,YAAA,GAAe,OAC1B,MAAA,KACkB;AAClB,EAAA,IAAI;AACF,IAAA,MAAM,SAAS,UAAA,EAAW;AAC1B,IAAA,MAAA,EAAQ,KAAK,mCAAmC,CAAA;AAAA,EAClD,SAAS,KAAA,EAAO;AACd,IAAA,MAAA,EAAQ,KAAA,CAAM,oCAAoC,KAAK,CAAA;AACvD,IAAA,MAAM,KAAA;AAAA,EACR;AACF;AAKO,IAAM,sBAAsB,MAAc;AAC/C,EAAA,MAAM,MAAA,GAAiC;AAAA,IACrC,CAAA,EAAG,cAAA;AAAA,IACH,CAAA,EAAG,WAAA;AAAA,IACH,CAAA,EAAG,YAAA;AAAA,IACH,CAAA,EAAG;AAAA,GACL;AACA,EAAA,OAAO,MAAA,CAAO,QAAA,CAAS,UAAA,CAAW,UAAU,CAAA,IAAK,SAAA;AACnD","file":"index.mjs","sourcesContent":["import mongoose, { ConnectOptions } from 'mongoose';\r\n\r\n/**\r\n * Database Connection Options\r\n */\r\nexport interface DbConnectionOptions {\r\n maxPoolSize?: number;\r\n minPoolSize?: number;\r\n socketTimeoutMS?: number;\r\n serverSelectionTimeoutMS?: number;\r\n maxIdleTimeMS?: number;\r\n retryWrites?: boolean;\r\n retryReads?: boolean;\r\n w?: 'majority' | number;\r\n}\r\n\r\n/**\r\n * Default connection options\r\n */\r\nconst defaultOptions: DbConnectionOptions = {\r\n maxPoolSize: process.env.NODE_ENV === 'production' ? 50 : 10,\r\n minPoolSize: process.env.NODE_ENV === 'production' ? 10 : 5,\r\n socketTimeoutMS: 45000,\r\n serverSelectionTimeoutMS: 10000,\r\n maxIdleTimeMS: 10000,\r\n retryWrites: true,\r\n retryReads: true,\r\n w: 'majority',\r\n};\r\n\r\n/**\r\n * Connect to MongoDB with mongoose\r\n * @param mongoUri - MongoDB connection string\r\n * @param options - Connection options\r\n * @param logger - Optional logger instance\r\n */\r\nexport const connectDB = async (\r\n mongoUri: string,\r\n options: DbConnectionOptions = {},\r\n logger?: { info: (msg: string, meta?: unknown) => void; error: (msg: string, meta?: unknown) => void }\r\n): Promise<typeof mongoose> => {\r\n // Check if already connected\r\n if (mongoose.connection.readyState === 1) {\r\n logger?.info('Database already connected, reusing connection');\r\n return mongoose;\r\n }\r\n\r\n const finalOptions: ConnectOptions = { ...defaultOptions, ...options };\r\n\r\n try {\r\n await mongoose.connect(mongoUri, finalOptions);\r\n logger?.info('MongoDB connected successfully');\r\n\r\n // Handle connection events\r\n mongoose.connection.on('error', (err: Error) => {\r\n logger?.error('MongoDB connection error', err);\r\n });\r\n\r\n mongoose.connection.on('disconnected', () => {\r\n logger?.info('MongoDB disconnected');\r\n });\r\n\r\n mongoose.connection.on('reconnected', () => {\r\n logger?.info('MongoDB reconnected');\r\n });\r\n\r\n return mongoose;\r\n } catch (error) {\r\n const errorMessage = error instanceof Error ? error.message : String(error);\r\n logger?.error('MongoDB connection failed', { error: errorMessage });\r\n throw error;\r\n }\r\n};\r\n\r\n/**\r\n * Disconnect from MongoDB\r\n */\r\nexport const disconnectDB = async (\r\n logger?: { info: (msg: string) => void; error: (msg: string, meta?: unknown) => void }\r\n): Promise<void> => {\r\n try {\r\n await mongoose.disconnect();\r\n logger?.info('MongoDB disconnected successfully');\r\n } catch (error) {\r\n logger?.error('Error disconnecting from MongoDB', error);\r\n throw error;\r\n }\r\n};\r\n\r\n/**\r\n * Get connection status\r\n */\r\nexport const getConnectionStatus = (): string => {\r\n const states: Record<number, string> = {\r\n 0: 'disconnected',\r\n 1: 'connected',\r\n 2: 'connecting',\r\n 3: 'disconnecting',\r\n };\r\n return states[mongoose.connection.readyState] || 'unknown';\r\n};\r\n\r\nexport default {\r\n connectDB,\r\n disconnectDB,\r\n getConnectionStatus,\r\n};\r\n"]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP Status Codes
|
|
3
|
+
* Standard HTTP status codes used across all projects
|
|
4
|
+
*/
|
|
5
|
+
declare enum StatusCode {
|
|
6
|
+
SUCCESS = 200,
|
|
7
|
+
CREATED = 201,
|
|
8
|
+
ACCEPTED = 202,
|
|
9
|
+
NO_CONTENT = 204,
|
|
10
|
+
BAD_REQUEST = 400,
|
|
11
|
+
UNAUTHORIZED = 401,
|
|
12
|
+
FORBIDDEN = 403,
|
|
13
|
+
NOT_FOUND = 404,
|
|
14
|
+
CONFLICT = 409,
|
|
15
|
+
UNPROCESSABLE_ENTITY = 422,
|
|
16
|
+
TOO_MANY_REQUESTS = 429,
|
|
17
|
+
INTERNAL_ERROR = 500,
|
|
18
|
+
NOT_IMPLEMENTED = 501,
|
|
19
|
+
BAD_GATEWAY = 502,
|
|
20
|
+
SERVICE_UNAVAILABLE = 503
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Status Messages
|
|
24
|
+
* Human-readable status messages
|
|
25
|
+
*/
|
|
26
|
+
declare enum StatusMessage {
|
|
27
|
+
SUCCESS = "success",
|
|
28
|
+
CREATED = "created",
|
|
29
|
+
ACCEPTED = "accepted",
|
|
30
|
+
NO_CONTENT = "no-data-found",
|
|
31
|
+
BAD_REQUEST = "bad-request",
|
|
32
|
+
UNAUTHORIZED = "unauthorized",
|
|
33
|
+
FORBIDDEN = "forbidden",
|
|
34
|
+
NOT_FOUND = "not-found",
|
|
35
|
+
CONFLICT = "conflict",
|
|
36
|
+
UNPROCESSABLE_ENTITY = "validation-error",
|
|
37
|
+
TOO_MANY_REQUESTS = "rate-limit-exceeded",
|
|
38
|
+
INTERNAL_ERROR = "error",
|
|
39
|
+
NOT_IMPLEMENTED = "not-implemented",
|
|
40
|
+
BAD_GATEWAY = "bad-gateway",
|
|
41
|
+
SERVICE_UNAVAILABLE = "service-unavailable"
|
|
42
|
+
}
|
|
43
|
+
declare const statusCode: typeof StatusCode;
|
|
44
|
+
declare const statusMessage: typeof StatusMessage;
|
|
45
|
+
|
|
46
|
+
export { StatusCode, StatusMessage, statusCode, statusMessage };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP Status Codes
|
|
3
|
+
* Standard HTTP status codes used across all projects
|
|
4
|
+
*/
|
|
5
|
+
declare enum StatusCode {
|
|
6
|
+
SUCCESS = 200,
|
|
7
|
+
CREATED = 201,
|
|
8
|
+
ACCEPTED = 202,
|
|
9
|
+
NO_CONTENT = 204,
|
|
10
|
+
BAD_REQUEST = 400,
|
|
11
|
+
UNAUTHORIZED = 401,
|
|
12
|
+
FORBIDDEN = 403,
|
|
13
|
+
NOT_FOUND = 404,
|
|
14
|
+
CONFLICT = 409,
|
|
15
|
+
UNPROCESSABLE_ENTITY = 422,
|
|
16
|
+
TOO_MANY_REQUESTS = 429,
|
|
17
|
+
INTERNAL_ERROR = 500,
|
|
18
|
+
NOT_IMPLEMENTED = 501,
|
|
19
|
+
BAD_GATEWAY = 502,
|
|
20
|
+
SERVICE_UNAVAILABLE = 503
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Status Messages
|
|
24
|
+
* Human-readable status messages
|
|
25
|
+
*/
|
|
26
|
+
declare enum StatusMessage {
|
|
27
|
+
SUCCESS = "success",
|
|
28
|
+
CREATED = "created",
|
|
29
|
+
ACCEPTED = "accepted",
|
|
30
|
+
NO_CONTENT = "no-data-found",
|
|
31
|
+
BAD_REQUEST = "bad-request",
|
|
32
|
+
UNAUTHORIZED = "unauthorized",
|
|
33
|
+
FORBIDDEN = "forbidden",
|
|
34
|
+
NOT_FOUND = "not-found",
|
|
35
|
+
CONFLICT = "conflict",
|
|
36
|
+
UNPROCESSABLE_ENTITY = "validation-error",
|
|
37
|
+
TOO_MANY_REQUESTS = "rate-limit-exceeded",
|
|
38
|
+
INTERNAL_ERROR = "error",
|
|
39
|
+
NOT_IMPLEMENTED = "not-implemented",
|
|
40
|
+
BAD_GATEWAY = "bad-gateway",
|
|
41
|
+
SERVICE_UNAVAILABLE = "service-unavailable"
|
|
42
|
+
}
|
|
43
|
+
declare const statusCode: typeof StatusCode;
|
|
44
|
+
declare const statusMessage: typeof StatusMessage;
|
|
45
|
+
|
|
46
|
+
export { StatusCode, StatusMessage, statusCode, statusMessage };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// src/server/enums/status.ts
|
|
4
|
+
var StatusCode = /* @__PURE__ */ ((StatusCode2) => {
|
|
5
|
+
StatusCode2[StatusCode2["SUCCESS"] = 200] = "SUCCESS";
|
|
6
|
+
StatusCode2[StatusCode2["CREATED"] = 201] = "CREATED";
|
|
7
|
+
StatusCode2[StatusCode2["ACCEPTED"] = 202] = "ACCEPTED";
|
|
8
|
+
StatusCode2[StatusCode2["NO_CONTENT"] = 204] = "NO_CONTENT";
|
|
9
|
+
StatusCode2[StatusCode2["BAD_REQUEST"] = 400] = "BAD_REQUEST";
|
|
10
|
+
StatusCode2[StatusCode2["UNAUTHORIZED"] = 401] = "UNAUTHORIZED";
|
|
11
|
+
StatusCode2[StatusCode2["FORBIDDEN"] = 403] = "FORBIDDEN";
|
|
12
|
+
StatusCode2[StatusCode2["NOT_FOUND"] = 404] = "NOT_FOUND";
|
|
13
|
+
StatusCode2[StatusCode2["CONFLICT"] = 409] = "CONFLICT";
|
|
14
|
+
StatusCode2[StatusCode2["UNPROCESSABLE_ENTITY"] = 422] = "UNPROCESSABLE_ENTITY";
|
|
15
|
+
StatusCode2[StatusCode2["TOO_MANY_REQUESTS"] = 429] = "TOO_MANY_REQUESTS";
|
|
16
|
+
StatusCode2[StatusCode2["INTERNAL_ERROR"] = 500] = "INTERNAL_ERROR";
|
|
17
|
+
StatusCode2[StatusCode2["NOT_IMPLEMENTED"] = 501] = "NOT_IMPLEMENTED";
|
|
18
|
+
StatusCode2[StatusCode2["BAD_GATEWAY"] = 502] = "BAD_GATEWAY";
|
|
19
|
+
StatusCode2[StatusCode2["SERVICE_UNAVAILABLE"] = 503] = "SERVICE_UNAVAILABLE";
|
|
20
|
+
return StatusCode2;
|
|
21
|
+
})(StatusCode || {});
|
|
22
|
+
var StatusMessage = /* @__PURE__ */ ((StatusMessage2) => {
|
|
23
|
+
StatusMessage2["SUCCESS"] = "success";
|
|
24
|
+
StatusMessage2["CREATED"] = "created";
|
|
25
|
+
StatusMessage2["ACCEPTED"] = "accepted";
|
|
26
|
+
StatusMessage2["NO_CONTENT"] = "no-data-found";
|
|
27
|
+
StatusMessage2["BAD_REQUEST"] = "bad-request";
|
|
28
|
+
StatusMessage2["UNAUTHORIZED"] = "unauthorized";
|
|
29
|
+
StatusMessage2["FORBIDDEN"] = "forbidden";
|
|
30
|
+
StatusMessage2["NOT_FOUND"] = "not-found";
|
|
31
|
+
StatusMessage2["CONFLICT"] = "conflict";
|
|
32
|
+
StatusMessage2["UNPROCESSABLE_ENTITY"] = "validation-error";
|
|
33
|
+
StatusMessage2["TOO_MANY_REQUESTS"] = "rate-limit-exceeded";
|
|
34
|
+
StatusMessage2["INTERNAL_ERROR"] = "error";
|
|
35
|
+
StatusMessage2["NOT_IMPLEMENTED"] = "not-implemented";
|
|
36
|
+
StatusMessage2["BAD_GATEWAY"] = "bad-gateway";
|
|
37
|
+
StatusMessage2["SERVICE_UNAVAILABLE"] = "service-unavailable";
|
|
38
|
+
return StatusMessage2;
|
|
39
|
+
})(StatusMessage || {});
|
|
40
|
+
var statusCode = StatusCode;
|
|
41
|
+
var statusMessage = StatusMessage;
|
|
42
|
+
|
|
43
|
+
exports.StatusCode = StatusCode;
|
|
44
|
+
exports.StatusMessage = StatusMessage;
|
|
45
|
+
exports.statusCode = statusCode;
|
|
46
|
+
exports.statusMessage = statusMessage;
|
|
47
|
+
//# sourceMappingURL=index.js.map
|
|
48
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/server/enums/status.ts"],"names":["StatusCode","StatusMessage"],"mappings":";;;AAIO,IAAK,UAAA,qBAAAA,WAAAA,KAAL;AAEL,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,aAAU,GAAA,CAAA,GAAV,SAAA;AACA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,aAAU,GAAA,CAAA,GAAV,SAAA;AACA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,cAAW,GAAA,CAAA,GAAX,UAAA;AACA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,gBAAa,GAAA,CAAA,GAAb,YAAA;AAGA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,iBAAc,GAAA,CAAA,GAAd,aAAA;AACA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,kBAAe,GAAA,CAAA,GAAf,cAAA;AACA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,eAAY,GAAA,CAAA,GAAZ,WAAA;AACA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,eAAY,GAAA,CAAA,GAAZ,WAAA;AACA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,cAAW,GAAA,CAAA,GAAX,UAAA;AACA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,0BAAuB,GAAA,CAAA,GAAvB,sBAAA;AACA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,uBAAoB,GAAA,CAAA,GAApB,mBAAA;AAGA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,oBAAiB,GAAA,CAAA,GAAjB,gBAAA;AACA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,qBAAkB,GAAA,CAAA,GAAlB,iBAAA;AACA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,iBAAc,GAAA,CAAA,GAAd,aAAA;AACA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,yBAAsB,GAAA,CAAA,GAAtB,qBAAA;AApBU,EAAA,OAAAA,WAAAA;AAAA,CAAA,EAAA,UAAA,IAAA,EAAA;AA2BL,IAAK,aAAA,qBAAAC,cAAAA,KAAL;AACL,EAAAA,eAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,eAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,eAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,eAAA,YAAA,CAAA,GAAa,eAAA;AACb,EAAAA,eAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,eAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,eAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,eAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,eAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,eAAA,sBAAA,CAAA,GAAuB,kBAAA;AACvB,EAAAA,eAAA,mBAAA,CAAA,GAAoB,qBAAA;AACpB,EAAAA,eAAA,gBAAA,CAAA,GAAiB,OAAA;AACjB,EAAAA,eAAA,iBAAA,CAAA,GAAkB,iBAAA;AAClB,EAAAA,eAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,eAAA,qBAAA,CAAA,GAAsB,qBAAA;AAfZ,EAAA,OAAAA,cAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA;AAmBL,IAAM,UAAA,GAAa;AACnB,IAAM,aAAA,GAAgB","file":"index.js","sourcesContent":["/**\r\n * HTTP Status Codes\r\n * Standard HTTP status codes used across all projects\r\n */\r\nexport enum StatusCode {\r\n // Success\r\n SUCCESS = 200,\r\n CREATED = 201,\r\n ACCEPTED = 202,\r\n NO_CONTENT = 204,\r\n\r\n // Client Errors\r\n BAD_REQUEST = 400,\r\n UNAUTHORIZED = 401,\r\n FORBIDDEN = 403,\r\n NOT_FOUND = 404,\r\n CONFLICT = 409,\r\n UNPROCESSABLE_ENTITY = 422,\r\n TOO_MANY_REQUESTS = 429,\r\n\r\n // Server Errors\r\n INTERNAL_ERROR = 500,\r\n NOT_IMPLEMENTED = 501,\r\n BAD_GATEWAY = 502,\r\n SERVICE_UNAVAILABLE = 503,\r\n}\r\n\r\n/**\r\n * Status Messages\r\n * Human-readable status messages\r\n */\r\nexport enum StatusMessage {\r\n SUCCESS = 'success',\r\n CREATED = 'created',\r\n ACCEPTED = 'accepted',\r\n NO_CONTENT = 'no-data-found',\r\n BAD_REQUEST = 'bad-request',\r\n UNAUTHORIZED = 'unauthorized',\r\n FORBIDDEN = 'forbidden',\r\n NOT_FOUND = 'not-found',\r\n CONFLICT = 'conflict',\r\n UNPROCESSABLE_ENTITY = 'validation-error',\r\n TOO_MANY_REQUESTS = 'rate-limit-exceeded',\r\n INTERNAL_ERROR = 'error',\r\n NOT_IMPLEMENTED = 'not-implemented',\r\n BAD_GATEWAY = 'bad-gateway',\r\n SERVICE_UNAVAILABLE = 'service-unavailable',\r\n}\r\n\r\n// Legacy aliases for backward compatibility\r\nexport const statusCode = StatusCode;\r\nexport const statusMessage = StatusMessage;\r\n\r\nexport default {\r\n StatusCode,\r\n StatusMessage,\r\n statusCode,\r\n statusMessage,\r\n};\r\n"]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// src/server/enums/status.ts
|
|
2
|
+
var StatusCode = /* @__PURE__ */ ((StatusCode2) => {
|
|
3
|
+
StatusCode2[StatusCode2["SUCCESS"] = 200] = "SUCCESS";
|
|
4
|
+
StatusCode2[StatusCode2["CREATED"] = 201] = "CREATED";
|
|
5
|
+
StatusCode2[StatusCode2["ACCEPTED"] = 202] = "ACCEPTED";
|
|
6
|
+
StatusCode2[StatusCode2["NO_CONTENT"] = 204] = "NO_CONTENT";
|
|
7
|
+
StatusCode2[StatusCode2["BAD_REQUEST"] = 400] = "BAD_REQUEST";
|
|
8
|
+
StatusCode2[StatusCode2["UNAUTHORIZED"] = 401] = "UNAUTHORIZED";
|
|
9
|
+
StatusCode2[StatusCode2["FORBIDDEN"] = 403] = "FORBIDDEN";
|
|
10
|
+
StatusCode2[StatusCode2["NOT_FOUND"] = 404] = "NOT_FOUND";
|
|
11
|
+
StatusCode2[StatusCode2["CONFLICT"] = 409] = "CONFLICT";
|
|
12
|
+
StatusCode2[StatusCode2["UNPROCESSABLE_ENTITY"] = 422] = "UNPROCESSABLE_ENTITY";
|
|
13
|
+
StatusCode2[StatusCode2["TOO_MANY_REQUESTS"] = 429] = "TOO_MANY_REQUESTS";
|
|
14
|
+
StatusCode2[StatusCode2["INTERNAL_ERROR"] = 500] = "INTERNAL_ERROR";
|
|
15
|
+
StatusCode2[StatusCode2["NOT_IMPLEMENTED"] = 501] = "NOT_IMPLEMENTED";
|
|
16
|
+
StatusCode2[StatusCode2["BAD_GATEWAY"] = 502] = "BAD_GATEWAY";
|
|
17
|
+
StatusCode2[StatusCode2["SERVICE_UNAVAILABLE"] = 503] = "SERVICE_UNAVAILABLE";
|
|
18
|
+
return StatusCode2;
|
|
19
|
+
})(StatusCode || {});
|
|
20
|
+
var StatusMessage = /* @__PURE__ */ ((StatusMessage2) => {
|
|
21
|
+
StatusMessage2["SUCCESS"] = "success";
|
|
22
|
+
StatusMessage2["CREATED"] = "created";
|
|
23
|
+
StatusMessage2["ACCEPTED"] = "accepted";
|
|
24
|
+
StatusMessage2["NO_CONTENT"] = "no-data-found";
|
|
25
|
+
StatusMessage2["BAD_REQUEST"] = "bad-request";
|
|
26
|
+
StatusMessage2["UNAUTHORIZED"] = "unauthorized";
|
|
27
|
+
StatusMessage2["FORBIDDEN"] = "forbidden";
|
|
28
|
+
StatusMessage2["NOT_FOUND"] = "not-found";
|
|
29
|
+
StatusMessage2["CONFLICT"] = "conflict";
|
|
30
|
+
StatusMessage2["UNPROCESSABLE_ENTITY"] = "validation-error";
|
|
31
|
+
StatusMessage2["TOO_MANY_REQUESTS"] = "rate-limit-exceeded";
|
|
32
|
+
StatusMessage2["INTERNAL_ERROR"] = "error";
|
|
33
|
+
StatusMessage2["NOT_IMPLEMENTED"] = "not-implemented";
|
|
34
|
+
StatusMessage2["BAD_GATEWAY"] = "bad-gateway";
|
|
35
|
+
StatusMessage2["SERVICE_UNAVAILABLE"] = "service-unavailable";
|
|
36
|
+
return StatusMessage2;
|
|
37
|
+
})(StatusMessage || {});
|
|
38
|
+
var statusCode = StatusCode;
|
|
39
|
+
var statusMessage = StatusMessage;
|
|
40
|
+
|
|
41
|
+
export { StatusCode, StatusMessage, statusCode, statusMessage };
|
|
42
|
+
//# sourceMappingURL=index.mjs.map
|
|
43
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/server/enums/status.ts"],"names":["StatusCode","StatusMessage"],"mappings":";AAIO,IAAK,UAAA,qBAAAA,WAAAA,KAAL;AAEL,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,aAAU,GAAA,CAAA,GAAV,SAAA;AACA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,aAAU,GAAA,CAAA,GAAV,SAAA;AACA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,cAAW,GAAA,CAAA,GAAX,UAAA;AACA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,gBAAa,GAAA,CAAA,GAAb,YAAA;AAGA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,iBAAc,GAAA,CAAA,GAAd,aAAA;AACA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,kBAAe,GAAA,CAAA,GAAf,cAAA;AACA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,eAAY,GAAA,CAAA,GAAZ,WAAA;AACA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,eAAY,GAAA,CAAA,GAAZ,WAAA;AACA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,cAAW,GAAA,CAAA,GAAX,UAAA;AACA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,0BAAuB,GAAA,CAAA,GAAvB,sBAAA;AACA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,uBAAoB,GAAA,CAAA,GAApB,mBAAA;AAGA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,oBAAiB,GAAA,CAAA,GAAjB,gBAAA;AACA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,qBAAkB,GAAA,CAAA,GAAlB,iBAAA;AACA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,iBAAc,GAAA,CAAA,GAAd,aAAA;AACA,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,yBAAsB,GAAA,CAAA,GAAtB,qBAAA;AApBU,EAAA,OAAAA,WAAAA;AAAA,CAAA,EAAA,UAAA,IAAA,EAAA;AA2BL,IAAK,aAAA,qBAAAC,cAAAA,KAAL;AACL,EAAAA,eAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,eAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,eAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,eAAA,YAAA,CAAA,GAAa,eAAA;AACb,EAAAA,eAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,eAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,eAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,eAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,eAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,eAAA,sBAAA,CAAA,GAAuB,kBAAA;AACvB,EAAAA,eAAA,mBAAA,CAAA,GAAoB,qBAAA;AACpB,EAAAA,eAAA,gBAAA,CAAA,GAAiB,OAAA;AACjB,EAAAA,eAAA,iBAAA,CAAA,GAAkB,iBAAA;AAClB,EAAAA,eAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,eAAA,qBAAA,CAAA,GAAsB,qBAAA;AAfZ,EAAA,OAAAA,cAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA;AAmBL,IAAM,UAAA,GAAa;AACnB,IAAM,aAAA,GAAgB","file":"index.mjs","sourcesContent":["/**\r\n * HTTP Status Codes\r\n * Standard HTTP status codes used across all projects\r\n */\r\nexport enum StatusCode {\r\n // Success\r\n SUCCESS = 200,\r\n CREATED = 201,\r\n ACCEPTED = 202,\r\n NO_CONTENT = 204,\r\n\r\n // Client Errors\r\n BAD_REQUEST = 400,\r\n UNAUTHORIZED = 401,\r\n FORBIDDEN = 403,\r\n NOT_FOUND = 404,\r\n CONFLICT = 409,\r\n UNPROCESSABLE_ENTITY = 422,\r\n TOO_MANY_REQUESTS = 429,\r\n\r\n // Server Errors\r\n INTERNAL_ERROR = 500,\r\n NOT_IMPLEMENTED = 501,\r\n BAD_GATEWAY = 502,\r\n SERVICE_UNAVAILABLE = 503,\r\n}\r\n\r\n/**\r\n * Status Messages\r\n * Human-readable status messages\r\n */\r\nexport enum StatusMessage {\r\n SUCCESS = 'success',\r\n CREATED = 'created',\r\n ACCEPTED = 'accepted',\r\n NO_CONTENT = 'no-data-found',\r\n BAD_REQUEST = 'bad-request',\r\n UNAUTHORIZED = 'unauthorized',\r\n FORBIDDEN = 'forbidden',\r\n NOT_FOUND = 'not-found',\r\n CONFLICT = 'conflict',\r\n UNPROCESSABLE_ENTITY = 'validation-error',\r\n TOO_MANY_REQUESTS = 'rate-limit-exceeded',\r\n INTERNAL_ERROR = 'error',\r\n NOT_IMPLEMENTED = 'not-implemented',\r\n BAD_GATEWAY = 'bad-gateway',\r\n SERVICE_UNAVAILABLE = 'service-unavailable',\r\n}\r\n\r\n// Legacy aliases for backward compatibility\r\nexport const statusCode = StatusCode;\r\nexport const statusMessage = StatusMessage;\r\n\r\nexport default {\r\n StatusCode,\r\n StatusMessage,\r\n statusCode,\r\n statusMessage,\r\n};\r\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { ApiResponse, ColumnMetadata, PaginationData, badRequestResponse, conflictResponse, createdResponse, errorResponse, extractColumns, forbiddenResponse, noContentResponse, notFoundResponse, rateLimitResponse, successResponse, successResponseArr, unauthorizedResponse, validationErrorResponse } from './response/index.mjs';
|
|
2
|
+
export { StatusCode, StatusMessage, statusCode, statusMessage } from './enums/index.mjs';
|
|
3
|
+
export { LoggerConfig, createLogger, createMorganStream, logger, simpleLogger, stream } from './logger/index.mjs';
|
|
4
|
+
export { DbConnectionOptions, connectDB, disconnectDB, getConnectionStatus } from './db/index.mjs';
|
|
5
|
+
export { AuthRequest, JWTPayload, authenticateApiKey, authenticateJWT, extractOrganization, optionalAuthenticateJWT, requireOrganization } from './middleware/index.mjs';
|
|
6
|
+
export { FilterOptions, PaginationOptions, PaginationResult, buildFilter, buildPagination, buildPaginationMeta, omitFields, pickFields, sanitizeDocument, sanitizeUser } from './utils/index.mjs';
|
|
7
|
+
import 'express';
|
|
8
|
+
import 'winston';
|
|
9
|
+
import 'mongoose';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { ApiResponse, ColumnMetadata, PaginationData, badRequestResponse, conflictResponse, createdResponse, errorResponse, extractColumns, forbiddenResponse, noContentResponse, notFoundResponse, rateLimitResponse, successResponse, successResponseArr, unauthorizedResponse, validationErrorResponse } from './response/index.js';
|
|
2
|
+
export { StatusCode, StatusMessage, statusCode, statusMessage } from './enums/index.js';
|
|
3
|
+
export { LoggerConfig, createLogger, createMorganStream, logger, simpleLogger, stream } from './logger/index.js';
|
|
4
|
+
export { DbConnectionOptions, connectDB, disconnectDB, getConnectionStatus } from './db/index.js';
|
|
5
|
+
export { AuthRequest, JWTPayload, authenticateApiKey, authenticateJWT, extractOrganization, optionalAuthenticateJWT, requireOrganization } from './middleware/index.js';
|
|
6
|
+
export { FilterOptions, PaginationOptions, PaginationResult, buildFilter, buildPagination, buildPaginationMeta, omitFields, pickFields, sanitizeDocument, sanitizeUser } from './utils/index.js';
|
|
7
|
+
import 'express';
|
|
8
|
+
import 'winston';
|
|
9
|
+
import 'mongoose';
|