@brightnkhoma/domain 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/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +54111 -0
- package/dist/index.mjs +54101 -0
- package/dist/lib/@exprimental/domain.d.ts +21 -0
- package/dist/lib/@exprimental/domain.d.ts.map +1 -0
- package/dist/lib/abstract/x.d.ts +166 -0
- package/dist/lib/abstract/x.d.ts.map +1 -0
- package/dist/lib/data/baseTable.d.ts +5 -0
- package/dist/lib/data/baseTable.d.ts.map +1 -0
- package/dist/lib/data/user.d.ts +7 -0
- package/dist/lib/data/user.d.ts.map +1 -0
- package/dist/lib/domain/baseDomain.d.ts +44 -0
- package/dist/lib/domain/baseDomain.d.ts.map +1 -0
- package/dist/lib/domain/helper.d.ts +7 -0
- package/dist/lib/domain/helper.d.ts.map +1 -0
- package/dist/lib/domain/mainDomain.d.ts +18 -0
- package/dist/lib/domain/mainDomain.d.ts.map +1 -0
- package/dist/lib/domain/userDomain.d.ts +11 -0
- package/dist/lib/domain/userDomain.d.ts.map +1 -0
- package/dist/lib/error/error.d.ts +3 -0
- package/dist/lib/error/error.d.ts.map +1 -0
- package/dist/lib/router/baseRouter.d.ts +39 -0
- package/dist/lib/router/baseRouter.d.ts.map +1 -0
- package/dist/lib/types/activity.d.ts +44 -0
- package/dist/lib/types/activity.d.ts.map +1 -0
- package/dist/lib/types/entity.d.ts +10 -0
- package/dist/lib/types/entity.d.ts.map +1 -0
- package/dist/lib/types/loginProps.d.ts +6 -0
- package/dist/lib/types/loginProps.d.ts.map +1 -0
- package/dist/lib/types/routerQuery.d.ts +19 -0
- package/dist/lib/types/routerQuery.d.ts.map +1 -0
- package/dist/lib/types/signUpProps.d.ts +8 -0
- package/dist/lib/types/signUpProps.d.ts.map +1 -0
- package/dist/lib/types/user.d.ts +12 -0
- package/dist/lib/types/user.d.ts.map +1 -0
- package/package.json +45 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { App } from "firebase-admin/app";
|
|
2
|
+
import { AppDomain, DomainDB } from "../domain/helper";
|
|
3
|
+
import { UserDomain } from "../domain/userDomain";
|
|
4
|
+
import { Entity } from "../types/entity";
|
|
5
|
+
import { User } from "../types/user";
|
|
6
|
+
export declare class Domain<T extends Entity> extends UserDomain {
|
|
7
|
+
db: DomainDB<T>;
|
|
8
|
+
domain: AppDomain<T>;
|
|
9
|
+
constructor(user: User, tableName: string, db: App);
|
|
10
|
+
}
|
|
11
|
+
export declare const getDomainClass: <T extends Entity>(tableName: string, db: App) => {
|
|
12
|
+
new (user: User): {
|
|
13
|
+
db: DomainDB<T>;
|
|
14
|
+
domain: AppDomain<T>;
|
|
15
|
+
user: User;
|
|
16
|
+
userDb: DomainDB<User>;
|
|
17
|
+
userDomain: AppDomain<User>;
|
|
18
|
+
verifyUser(): Promise<true>;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=domain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../src/lib/@exprimental/domain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAGzC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,qBAAa,MAAM,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,UAAU;IACpD,EAAE,EAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjB,MAAM,EAAG,SAAS,CAAC,CAAC,CAAC,CAAA;IACrB,YAAY,IAAI,EAAG,IAAI,EAAC,SAAS,EAAG,MAAM,EAAC,EAAE,EAAG,GAAG,EAIlD;CAEJ;AAMD,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,MAAM,aAAc,MAAM,MAAM,GAAG;eAIrD,IAAI;YAFlB,QAAQ,CAAC,CAAC,CAAC;gBACP,SAAS,CAAC,CAAC,CAAC;;;;;;CAOxB,CAAA"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { FieldValue } from "firebase-admin/firestore";
|
|
2
|
+
import { LoggerConfig, LogLevel, LogEntry, DocActivity } from "../types/activity";
|
|
3
|
+
import { App } from "firebase-admin/app";
|
|
4
|
+
export declare abstract class AppDb<T extends {
|
|
5
|
+
id?: string;
|
|
6
|
+
}> {
|
|
7
|
+
protected path: string;
|
|
8
|
+
protected collection: FirebaseFirestore.CollectionReference;
|
|
9
|
+
protected loggerConfig: LoggerConfig;
|
|
10
|
+
protected userId?: string;
|
|
11
|
+
protected depth: number;
|
|
12
|
+
db: App;
|
|
13
|
+
constructor(path: string, db: App, userId?: string, loggerConfig?: Partial<LoggerConfig>, collectionRef?: FirebaseFirestore.CollectionReference);
|
|
14
|
+
/**
|
|
15
|
+
* Create an AppDb instance from an existing collection reference
|
|
16
|
+
* This is the preferred way to work with subcollections
|
|
17
|
+
*/
|
|
18
|
+
static fromRef<T extends {
|
|
19
|
+
id?: string;
|
|
20
|
+
}>(db: App, ref: FirebaseFirestore.CollectionReference, path: string, userId?: string, loggerConfig?: Partial<LoggerConfig>): AppDb<T>;
|
|
21
|
+
/**
|
|
22
|
+
* Create an AppDb instance from a document reference and subcollection name
|
|
23
|
+
*/
|
|
24
|
+
static fromDocRef<T extends {
|
|
25
|
+
id?: string;
|
|
26
|
+
}>(db: App, docRef: FirebaseFirestore.DocumentReference, subcollectionName: string, userId?: string, loggerConfig?: Partial<LoggerConfig>): AppDb<T>;
|
|
27
|
+
private validatePath;
|
|
28
|
+
now(): string;
|
|
29
|
+
setUserId(userId: string): void;
|
|
30
|
+
updateLoggerConfig(config: Partial<LoggerConfig>): void;
|
|
31
|
+
/**
|
|
32
|
+
* Get a subcollection that inherits all logging, performance tracking, and activity tracking
|
|
33
|
+
* Returns a full AppDb instance, not a lightweight helper
|
|
34
|
+
*/
|
|
35
|
+
subcollection<S extends {
|
|
36
|
+
id?: string;
|
|
37
|
+
}>(documentId: string, subcollectionName: string): AppDb<S>;
|
|
38
|
+
/**
|
|
39
|
+
* Create a reusable subcollection factory function
|
|
40
|
+
*/
|
|
41
|
+
subcollectionFactory<S extends {
|
|
42
|
+
id?: string;
|
|
43
|
+
}>(subcollectionName: string): (documentId: string) => AppDb<S>;
|
|
44
|
+
/**
|
|
45
|
+
* Get the parent document reference if this is a subcollection
|
|
46
|
+
*/
|
|
47
|
+
getParentDoc(): FirebaseFirestore.DocumentReference | null;
|
|
48
|
+
private log;
|
|
49
|
+
private logToConsoleMethod;
|
|
50
|
+
private logActivity;
|
|
51
|
+
/**
|
|
52
|
+
* Validates that an array field doesn't exceed Firestore's practical limits
|
|
53
|
+
*/
|
|
54
|
+
private validateArrayField;
|
|
55
|
+
/**
|
|
56
|
+
* Enhances Firestore errors with actionable messages
|
|
57
|
+
*/
|
|
58
|
+
private enhanceError;
|
|
59
|
+
create(data: Omit<T, 'id'>, userId?: string): Promise<string>;
|
|
60
|
+
getRef(id: string): Promise<FirebaseFirestore.DocumentSnapshot>;
|
|
61
|
+
createWithId(id: string, data: Omit<T, 'id'>): Promise<void>;
|
|
62
|
+
count(field: keyof T, value: any): Promise<number | null>;
|
|
63
|
+
queryCount(q: {
|
|
64
|
+
field: keyof T;
|
|
65
|
+
operator: FirebaseFirestore.WhereFilterOp;
|
|
66
|
+
value: any;
|
|
67
|
+
}[]): Promise<number | null>;
|
|
68
|
+
countIn(field: keyof T, values: any[]): Promise<number | null>;
|
|
69
|
+
add(data: T): Promise<void>;
|
|
70
|
+
set(id: string, data: T, userId?: string): Promise<void>;
|
|
71
|
+
get(id: string, userId?: string): Promise<T | null>;
|
|
72
|
+
getAll(): Promise<T[]>;
|
|
73
|
+
exists(id: string): Promise<boolean>;
|
|
74
|
+
select<K extends keyof T>(key: K, value: T[K], fields: K[]): Promise<Pick<T, K>[]>;
|
|
75
|
+
selectAll<K extends keyof T>(key: K): Promise<Pick<T, K>[]>;
|
|
76
|
+
getSortable(options?: {
|
|
77
|
+
lastDoc?: string;
|
|
78
|
+
sort?: "asc" | "desc";
|
|
79
|
+
limit?: number;
|
|
80
|
+
orderBy?: keyof T;
|
|
81
|
+
where?: {
|
|
82
|
+
field: keyof T;
|
|
83
|
+
value: string | number;
|
|
84
|
+
};
|
|
85
|
+
}): Promise<T[]>;
|
|
86
|
+
getFromFieldList<X extends keyof T>(key: X, values: T[X][]): Promise<T[]>;
|
|
87
|
+
getByField(field: keyof T, value: any, filter?: {
|
|
88
|
+
limit?: number;
|
|
89
|
+
startAfter?: string;
|
|
90
|
+
orderBy?: keyof T;
|
|
91
|
+
order?: "asc" | "desc";
|
|
92
|
+
}, userId?: string): Promise<T[]>;
|
|
93
|
+
getOneByField(field: keyof T, value: any): Promise<T | null>;
|
|
94
|
+
update(id: string, updates: Partial<Omit<T, 'id'>>): Promise<void>;
|
|
95
|
+
delete(id: string): Promise<void>;
|
|
96
|
+
batchCreate(items: Omit<T, 'id'>[]): Promise<string[]>;
|
|
97
|
+
batchDelete(ids: string[]): Promise<void>;
|
|
98
|
+
batchUpdate(updates: {
|
|
99
|
+
id: string;
|
|
100
|
+
data: Partial<Omit<T, 'id'>>;
|
|
101
|
+
}[]): Promise<void>;
|
|
102
|
+
incrementField(id: string, field: keyof T, value: number): Promise<void>;
|
|
103
|
+
arrayUnion(id: string, field: keyof T, ...elements: any[]): Promise<void>;
|
|
104
|
+
arrayRemove(id: string, field: keyof T, ...elements: any[]): Promise<void>;
|
|
105
|
+
query(queries: {
|
|
106
|
+
field: keyof T;
|
|
107
|
+
operator: FirebaseFirestore.WhereFilterOp;
|
|
108
|
+
value: any;
|
|
109
|
+
}[]): Promise<T[]>;
|
|
110
|
+
paginatedQuery(options: {
|
|
111
|
+
queries?: {
|
|
112
|
+
field: keyof T;
|
|
113
|
+
operator: FirebaseFirestore.WhereFilterOp;
|
|
114
|
+
value: any;
|
|
115
|
+
}[];
|
|
116
|
+
orderBy: {
|
|
117
|
+
key: keyof T;
|
|
118
|
+
order: "desc" | "asc";
|
|
119
|
+
};
|
|
120
|
+
limit?: number;
|
|
121
|
+
startAfter?: FirebaseFirestore.DocumentSnapshot;
|
|
122
|
+
startAt?: FirebaseFirestore.DocumentSnapshot;
|
|
123
|
+
}): Promise<T[]>;
|
|
124
|
+
/**
|
|
125
|
+
* Run a transaction with automatic retries and enhanced error handling
|
|
126
|
+
*/
|
|
127
|
+
runTransaction<R>(updateFunction: (transaction: FirebaseFirestore.Transaction) => Promise<R>): Promise<R>;
|
|
128
|
+
/**
|
|
129
|
+
* Common transaction pattern: Get document, update it, return result
|
|
130
|
+
*/
|
|
131
|
+
transactionGetAndUpdate<R>(documentId: string, updateFn: (data: T) => Partial<T> | Promise<Partial<T>>): Promise<R>;
|
|
132
|
+
/**
|
|
133
|
+
* Common transaction pattern: Get two documents atomically and update them
|
|
134
|
+
*/
|
|
135
|
+
transactionGetTwoAndUpdate<R>(documentId1: string, documentId2: string, updateFn: (data1: T, data2: T) => {
|
|
136
|
+
updates1: Partial<T>;
|
|
137
|
+
updates2: Partial<T>;
|
|
138
|
+
result: R;
|
|
139
|
+
}): Promise<R>;
|
|
140
|
+
withPerformanceLogging<R>(operation: () => Promise<R>, methodName: string, metadata?: Record<string, any>): Promise<R>;
|
|
141
|
+
getLogs(limit?: number, level?: LogLevel, startDate?: string, endDate?: string): Promise<LogEntry[]>;
|
|
142
|
+
getActivities(limit?: number, userId?: string, startDate?: string, endDate?: string): Promise<DocActivity[]>;
|
|
143
|
+
private chunkArray;
|
|
144
|
+
/**
|
|
145
|
+
* Get the underlying Firestore collection reference
|
|
146
|
+
* Use sparingly - prefer the abstracted methods
|
|
147
|
+
*/
|
|
148
|
+
getCollectionRef(): FirebaseFirestore.CollectionReference;
|
|
149
|
+
/**
|
|
150
|
+
* Get the collection path
|
|
151
|
+
*/
|
|
152
|
+
getPath(): string;
|
|
153
|
+
}
|
|
154
|
+
export declare class TimestampHelper {
|
|
155
|
+
static get createdAt(): {
|
|
156
|
+
createdAt: FieldValue;
|
|
157
|
+
};
|
|
158
|
+
static get updatedAt(): {
|
|
159
|
+
updatedAt: FieldValue;
|
|
160
|
+
};
|
|
161
|
+
static get timestamps(): {
|
|
162
|
+
createdAt: FieldValue;
|
|
163
|
+
updatedAt: FieldValue;
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=x.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"x.d.ts","sourceRoot":"","sources":["../../../src/lib/abstract/x.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseTable.d.ts","sourceRoot":"","sources":["../../../src/lib/data/baseTable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,aAAc,MAAM,MAAM,GAAG,KAAI,KAAK,CAAC,CAAC,CAQnF,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { App } from "firebase-admin/app";
|
|
2
|
+
import { AppDb } from "../abstract/x";
|
|
3
|
+
import { User } from "../types/user";
|
|
4
|
+
export declare class AppUser extends AppDb<User> {
|
|
5
|
+
constructor(userId: string | undefined, db: App);
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=user.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/lib/data/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAIrC,qBAAa,OAAQ,SAAQ,KAAK,CAAC,IAAI,CAAC;IACpC,YAAY,MAAM,EAAG,MAAM,YAAS,EAAE,EAAE,EAAG,GAAG,EAG7C;CAEJ"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { AppDb } from "../abstract/x";
|
|
2
|
+
import { Entity } from "../types/entity";
|
|
3
|
+
import { PaginatedQuery, RouterQuery } from "../types/routerQuery";
|
|
4
|
+
import { ElementType } from "./helper";
|
|
5
|
+
export declare const createDomain: <T extends AppDb<U>, U extends Entity>(db: T, key?: string, userId?: string) => {
|
|
6
|
+
exists: (id: string) => Promise<boolean>;
|
|
7
|
+
queryRouter: (q: RouterQuery<U>) => Promise<U[]>;
|
|
8
|
+
onSet: (id: string, v: U) => Promise<boolean>;
|
|
9
|
+
create: (v: U) => Promise<string>;
|
|
10
|
+
getByFied: (key: keyof U, value: string, filter?: {
|
|
11
|
+
limit?: number;
|
|
12
|
+
startAfter: string | undefined;
|
|
13
|
+
orderBy: keyof U;
|
|
14
|
+
order?: "asc" | "desc";
|
|
15
|
+
} | undefined, userId?: string) => Promise<U[]>;
|
|
16
|
+
delete: () => Promise<boolean>;
|
|
17
|
+
update: (updates: Partial<U>) => Promise<boolean>;
|
|
18
|
+
get: () => U;
|
|
19
|
+
set: (id: string) => Promise<void>;
|
|
20
|
+
search: (text: string, limit?: number, lastDoc?: string) => Promise<U[]>;
|
|
21
|
+
createTags: (word: string) => string[];
|
|
22
|
+
increment: (field: keyof U, amount: number, allowNegatives?: boolean) => Promise<true | undefined>;
|
|
23
|
+
getAll: () => Promise<U[]>;
|
|
24
|
+
getSortable: (lastDoc?: string, sort?: "asc" | "desc", limit?: number, orderBy?: keyof U, where?: {
|
|
25
|
+
field: keyof U;
|
|
26
|
+
value: string | number;
|
|
27
|
+
}) => Promise<U[]>;
|
|
28
|
+
count: (field: keyof U, value: string) => Promise<number | null>;
|
|
29
|
+
append: <B extends keyof U>(id: string, key: B, ...value: ElementType<U[B]>[]) => Promise<boolean>;
|
|
30
|
+
arrayRemove: <B extends keyof U>(id: string, key: B, ...value: ElementType<U[B]>[]) => Promise<boolean>;
|
|
31
|
+
paginatedQuery: (q: PaginatedQuery<U>) => Promise<U[]>;
|
|
32
|
+
select: <V extends keyof U>(options: {
|
|
33
|
+
key: V;
|
|
34
|
+
value: U[V];
|
|
35
|
+
fields: (keyof U)[];
|
|
36
|
+
}) => Promise<Pick<U, keyof U>[]>;
|
|
37
|
+
queryCount: (q: RouterQuery<U>) => Promise<number | null>;
|
|
38
|
+
encode: (obj: U) => {
|
|
39
|
+
size: number;
|
|
40
|
+
canUpload: boolean;
|
|
41
|
+
};
|
|
42
|
+
add: (v: U) => Promise<boolean>;
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=baseDomain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseDomain.d.ts","sourceRoot":"","sources":["../../../src/lib/domain/baseDomain.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,EAAC,CAAC,SAAS,MAAM,MAAO,CAAC,QAAQ,MAAM,WAAa,MAAM;iBAuF3E,MAAM;qBALF,WAAW,CAAC,CAAC,CAAC;gBAnBnB,MAAM,KAAM,CAAC;gBALT,CAAC;qBAHI,MAAM,CAAC,SAAU,MAAM,WAAU;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;KAAE,GAAG,SAAS,WAAW,MAAM;;sBAlC9J,OAAO,CAAC,CAAC,CAAC;;cAnBlB,MAAM;mBAyFA,MAAM,UAAS,MAAM,YAAiB,MAAM;uBAwClD,MAAM,KAAG,MAAM,EAAE;uBA7DR,MAAM,CAAC,UAAW,MAAM,mBAAmB,OAAO;;4BAxB9C,MAAM,SAAS,KAAK,GAAG,MAAM,UAAU,MAAM,YAAa,MAAM,CAAC,UAAW;QAAC,KAAK,EAAG,MAAM,CAAC,CAAC;QAAC,KAAK,EAAG,MAAM,GAAG,MAAM,CAAA;KAAC;mBA2GlI,MAAM,CAAC,SAAS,MAAM;aA1HzB,CAAC,SAAS,MAAM,CAAC,MAAO,MAAM,OAAO,CAAC,YAAY,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;kBAIhE,CAAC,SAAS,MAAM,CAAC,MAAO,MAAM,OAAO,CAAC,YAAY,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;wBAqE9D,cAAc,CAAC,CAAC,CAAC;aA6DjC,CAAC,SAAS,MAAM,CAAC,WAAY;QAAC,GAAG,EAAG,CAAC,CAAC;QAAA,KAAK,EAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAAA,MAAM,EAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAA;KAAC;oBAPhE,WAAW,CAAC,CAAC,CAAC;kBAvJjB,CAAC;;;;aA2FD,CAAC;CA0E1B,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createTable } from "../data/baseTable";
|
|
2
|
+
import { Entity } from "../types/entity";
|
|
3
|
+
import { createDomain } from "./baseDomain";
|
|
4
|
+
export type DomainDB<T extends Entity> = ReturnType<typeof createTable<T>>;
|
|
5
|
+
export type AppDomain<T extends Entity> = ReturnType<typeof createDomain<DomainDB<T>, T>>;
|
|
6
|
+
export type ElementType<T> = T extends (infer E)[] ? E : never;
|
|
7
|
+
//# sourceMappingURL=helper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../../src/lib/domain/helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,IAAI,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;AAC1E,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,IAAI,UAAU,CAAC,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA;AACxF,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { App } from "firebase-admin/app";
|
|
2
|
+
import { Entity } from "../types/entity";
|
|
3
|
+
export declare class MainDomain {
|
|
4
|
+
db: App;
|
|
5
|
+
constructor(db: App);
|
|
6
|
+
domain<T extends Entity>(collectionName: string): {
|
|
7
|
+
new (user: import("../..").User): {
|
|
8
|
+
db: import("../abstract/x").AppDb<T>;
|
|
9
|
+
domain: import("./helper").AppDomain<T>;
|
|
10
|
+
user: import("../..").User;
|
|
11
|
+
userDb: import("./helper").DomainDB<import("../..").User>;
|
|
12
|
+
userDomain: import("./helper").AppDomain<import("../..").User>;
|
|
13
|
+
verifyUser(): Promise<true>;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
static init(serviceAccount: string): MainDomain;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=mainDomain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mainDomain.d.ts","sourceRoot":"","sources":["../../../src/lib/domain/mainDomain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAuB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,qBAAa,UAAU;IACnB,EAAE,EAAG,GAAG,CAAC;IACT,YAAY,EAAE,EAAG,GAAG,EAEnB;IAED,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,cAAc,EAAG,MAAM;;;;;;;;;MAE/C;IAED,MAAM,CAAC,IAAI,CAAC,cAAc,EAAG,MAAM,cAMlC;CAEJ"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { App } from "firebase-admin/app";
|
|
2
|
+
import { User } from "../types/user";
|
|
3
|
+
import { AppDomain, DomainDB } from "./helper";
|
|
4
|
+
export declare class UserDomain {
|
|
5
|
+
user: User;
|
|
6
|
+
userDb: DomainDB<User>;
|
|
7
|
+
userDomain: AppDomain<User>;
|
|
8
|
+
constructor(user: User, db: App);
|
|
9
|
+
verifyUser(): Promise<true>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=userDomain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userDomain.d.ts","sourceRoot":"","sources":["../../../src/lib/domain/userDomain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAEzC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE/C,qBAAa,UAAU;IACnB,IAAI,EAAG,IAAI,CAAC;IACZ,MAAM,EAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxB,UAAU,EAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE7B,YAAY,IAAI,EAAG,IAAI,EAAC,EAAE,EAAG,GAAG,EAK/B;IAMK,UAAU,kBAIf;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/lib/error/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,OAAO,QAAU,QAAQ,SAAS,GAAG,SAGjD,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { AppDomain } from "../domain/helper";
|
|
2
|
+
import { UserDomain } from "../domain/userDomain";
|
|
3
|
+
import { Entity } from "../types/entity";
|
|
4
|
+
import express, { NextFunction, Request, Response } from "express";
|
|
5
|
+
import { User } from "../types/user";
|
|
6
|
+
interface AppRouter {
|
|
7
|
+
middleware: ((req: express.Request<any, any, any, any, Record<string, any>>, res: Response, next: NextFunction) => Promise<express.Response<any, Record<string, any>> | any | undefined>)[];
|
|
8
|
+
fn: (req: Request, res: Response, next?: NextFunction) => Promise<void>;
|
|
9
|
+
path: string;
|
|
10
|
+
}
|
|
11
|
+
type HTTPREQUEST = "post" | "get" | "put" | "delete";
|
|
12
|
+
export declare class BaseRouter<U extends Entity, T extends UserDomain & {
|
|
13
|
+
domain: AppDomain<U>;
|
|
14
|
+
create?: (v: U) => Promise<any>;
|
|
15
|
+
}> {
|
|
16
|
+
BaseDomain: new (user: User) => T;
|
|
17
|
+
router: express.Router;
|
|
18
|
+
routes: Map<HTTPREQUEST, AppRouter[]>;
|
|
19
|
+
setRouter: ((route: express.Router) => void) | null;
|
|
20
|
+
defaultMiddleware: AppRouter["middleware"];
|
|
21
|
+
constructor(domain: new (user: User) => T);
|
|
22
|
+
get(): void;
|
|
23
|
+
post(): void;
|
|
24
|
+
update(): void;
|
|
25
|
+
delete(): void;
|
|
26
|
+
query(): void;
|
|
27
|
+
qCount(): void;
|
|
28
|
+
pQuery(): void;
|
|
29
|
+
search(): void;
|
|
30
|
+
default(): void;
|
|
31
|
+
getRouter(): express.Router;
|
|
32
|
+
replace(target: HTTPREQUEST, path: string, fn: (req: Request, res: Response, next?: NextFunction) => Promise<any>, middleware?: AppRouter["middleware"]): express.Router;
|
|
33
|
+
addRoute(target: HTTPREQUEST, path: string, fn: (req: Request, res: Response, next?: NextFunction) => Promise<any>, middleware?: AppRouter["middleware"]): express.Router;
|
|
34
|
+
removeRoute(target: HTTPREQUEST, path: string): express.Router;
|
|
35
|
+
addMiddleWare(target: HTTPREQUEST, path: string, middleware: ((req: express.Request<any, any, any, any, Record<string, any>>, res: Response, next: NextFunction) => Promise<express.Response<any, Record<string, any>> | any | undefined>)): express.Router;
|
|
36
|
+
replaceMiddleWare(target: HTTPREQUEST, path: string, middleware: AppRouter["middleware"]): express.Router;
|
|
37
|
+
}
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=baseRouter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseRouter.d.ts","sourceRoot":"","sources":["../../../src/lib/router/baseRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export interface DocActivity {
|
|
2
|
+
depth: number;
|
|
3
|
+
userId: string;
|
|
4
|
+
date: string;
|
|
5
|
+
action: string;
|
|
6
|
+
status: "success" | "failed";
|
|
7
|
+
id: string;
|
|
8
|
+
documentId: string;
|
|
9
|
+
collection: string;
|
|
10
|
+
error?: string | undefined;
|
|
11
|
+
}
|
|
12
|
+
export declare enum LogLevel {
|
|
13
|
+
DEBUG = "DEBUG",
|
|
14
|
+
INFO = "INFO",
|
|
15
|
+
WARN = "WARN",
|
|
16
|
+
ERROR = "ERROR"
|
|
17
|
+
}
|
|
18
|
+
export interface LogEntry {
|
|
19
|
+
id: string;
|
|
20
|
+
depth: number;
|
|
21
|
+
timestamp: string;
|
|
22
|
+
level: LogLevel;
|
|
23
|
+
message: string;
|
|
24
|
+
method: string;
|
|
25
|
+
collection: string;
|
|
26
|
+
userId?: string | undefined;
|
|
27
|
+
documentId?: string | undefined;
|
|
28
|
+
metadata?: Record<string, any> | undefined;
|
|
29
|
+
error?: {
|
|
30
|
+
message: string;
|
|
31
|
+
stack?: string;
|
|
32
|
+
code?: string;
|
|
33
|
+
} | undefined;
|
|
34
|
+
}
|
|
35
|
+
export interface LoggerConfig {
|
|
36
|
+
enabled: boolean;
|
|
37
|
+
logLevel: LogLevel;
|
|
38
|
+
logToConsole: boolean;
|
|
39
|
+
logToDatabase: boolean;
|
|
40
|
+
activityCollection?: string;
|
|
41
|
+
logsCollection?: string;
|
|
42
|
+
includeMetadata: boolean;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=activity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../../src/lib/types/activity.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAG,MAAM,CAAC;IAChB,IAAI,EAAG,MAAM,CAAC;IACd,MAAM,EAAG,MAAM,CAAC;IAChB,MAAM,EAAG,SAAS,GAAG,QAAQ,CAAC;IAC9B,EAAE,EAAG,MAAM,CAAC;IACZ,UAAU,EAAG,MAAM,CAAC;IACpB,UAAU,EAAG,MAAM,CAAC;IACpB,KAAM,CAAC,EAAG,MAAM,GAAG,SAAS,CAAC;CAChC;AAID,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAG,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;IAC3C,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,SAAS,CAAC;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/lib/types/entity.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,MAAM;IACnB,EAAE,EAAG,MAAM,CAAC;IACZ,IAAI,EAAG,MAAM,CAAC;IACd,WAAW,EAAG,MAAM,CAAC;IACrB,WAAW,EAAG,MAAM,CAAC;IACrB,IAAI,EAAG,MAAM,EAAE,CAAC;IAChB,SAAS,EAAG,MAAM,CAAC;IACnB,SAAU,CAAC,EAAG,MAAM,EAAE,CAAA;CAEzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loginProps.d.ts","sourceRoot":"","sources":["../../../src/lib/types/loginProps.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACvB,KAAK,EAAG,MAAM,CAAC;IACf,QAAQ,EAAG,MAAM,CAAC;IAClB,WAAY,CAAC,EAAG,MAAM,CAAC;CAC1B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface RouterQuery<T> {
|
|
2
|
+
queries: Query<T>[];
|
|
3
|
+
}
|
|
4
|
+
interface Query<T> {
|
|
5
|
+
key: keyof T;
|
|
6
|
+
value: string;
|
|
7
|
+
operator: FirebaseFirestore.WhereFilterOp;
|
|
8
|
+
replacable?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface PaginatedQuery<T> extends RouterQuery<T> {
|
|
11
|
+
startAfter?: string;
|
|
12
|
+
limit?: number;
|
|
13
|
+
defaultQueries?: Query<T>[];
|
|
14
|
+
orderBy?: string;
|
|
15
|
+
defultOrderBy?: string;
|
|
16
|
+
hasMore?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=routerQuery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routerQuery.d.ts","sourceRoot":"","sources":["../../../src/lib/types/routerQuery.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW,CAAC,CAAC;IAC1B,OAAO,EAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;CACvB;AAED,UAAU,KAAK,CAAC,CAAC;IACb,GAAG,EAAG,MAAM,CAAC,CAAC;IACd,KAAK,EAAG,MAAM,CAAC;IACf,QAAQ,EAAG,iBAAiB,CAAC,aAAa,CAAC;IAC3C,UAAW,CAAC,EAAG,OAAO,CAAC;CAC1B;AAGD,MAAM,WAAW,cAAc,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IACrD,UAAW,CAAC,EAAG,MAAM,CAAC;IACtB,KAAM,CAAC,EAAG,MAAM,CAAC;IACjB,cAAe,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7B,OAAQ,CAAC,EAAG,MAAM,CAAC;IACnB,aAAc,CAAC,EAAG,MAAM,CAAC;IACzB,OAAQ,CAAC,EAAG,OAAO,CAAC;CAEvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signUpProps.d.ts","sourceRoot":"","sources":["../../../src/lib/types/signUpProps.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IACxB,IAAI,EAAG,MAAM,CAAC;IACd,KAAK,EAAG,MAAM,CAAC;IACf,QAAQ,EAAG,MAAM,CAAC;IAClB,QAAQ,EAAG,MAAM,CAAC;IAClB,GAAI,CAAC,EAAG,MAAM,CAAC;CAClB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Entity } from "./entity";
|
|
2
|
+
export interface User extends Entity {
|
|
3
|
+
email: string;
|
|
4
|
+
phoneNumber?: string | undefined;
|
|
5
|
+
avatar?: string | undefined;
|
|
6
|
+
}
|
|
7
|
+
export interface UserLocation {
|
|
8
|
+
district: string;
|
|
9
|
+
area: string;
|
|
10
|
+
}
|
|
11
|
+
export type PublicUser = Pick<User, "phoneNumber" | "email" | "name" | "dateCreated" | "avatar">;
|
|
12
|
+
//# sourceMappingURL=user.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/lib/types/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,MAAM,WAAW,IAAK,SAAQ,MAAM;IAChC,KAAK,EAAG,MAAM,CAAC;IACf,WAAW,CAAC,EAAG,MAAM,GAAG,SAAS,CAAC;IAClC,MAAO,CAAC,EAAG,MAAM,GAAG,SAAS,CAAC;CAEjC;AAGD,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAG,MAAM,CAAC;IAClB,IAAI,EAAG,MAAM,CAAC;CACjB;AAKD,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAC,aAAa,GAAG,OAAO,GAAG,MAAM,GAAI,aAAa,GAAG,QAAQ,CAAC,CAAA"}
|
package/package.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@brightnkhoma/domain",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "A module that automates CRUD functionality and routing and helps you follow DDD(Domain Driven Design) with ease using firebase, express and typescript",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"module": "./dist/index.mjs",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"default": "./dist/index.mjs"
|
|
13
|
+
},
|
|
14
|
+
"require": {
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"default": "./dist/index.js"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"dist"
|
|
22
|
+
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "tsup src/index.ts --format cjs,esm && tsc --emitDeclarationOnly --declaration --outDir dist",
|
|
25
|
+
"dev": "tsup src/index.ts --format cjs,esm --watch",
|
|
26
|
+
"test": "vitest",
|
|
27
|
+
"prepublishOnly": "npm run build"
|
|
28
|
+
},
|
|
29
|
+
"keywords": [],
|
|
30
|
+
"author": "Bright Nkhoma",
|
|
31
|
+
"license": "ISC",
|
|
32
|
+
"type": "commonjs",
|
|
33
|
+
"peerDependencies": {
|
|
34
|
+
"firebase-admin": "^13.8.0",
|
|
35
|
+
"uuid": "^14.0.2"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@types/express": "^5.0.6",
|
|
39
|
+
"express": "^5.2.1",
|
|
40
|
+
"firebase-admin": "^13.8.0",
|
|
41
|
+
"tsup": "^8.5.1",
|
|
42
|
+
"typescript": "^7.0.2",
|
|
43
|
+
"uuid": "^14.0.2"
|
|
44
|
+
}
|
|
45
|
+
}
|