eggi-ai-db-schema-2 0.1.1
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/CHANGELOG.md +750 -0
- package/README.md +660 -0
- package/dist/config/database.d.ts +28 -0
- package/dist/config/database.d.ts.map +1 -0
- package/dist/config/database.js +72 -0
- package/dist/config/database.js.map +1 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +199 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/database-service.d.ts +714 -0
- package/dist/lib/database-service.d.ts.map +1 -0
- package/dist/lib/database-service.js +1394 -0
- package/dist/lib/database-service.js.map +1 -0
- package/dist/lib/db-types.d.ts +167 -0
- package/dist/lib/db-types.d.ts.map +1 -0
- package/dist/lib/db-types.js +28 -0
- package/dist/lib/db-types.js.map +1 -0
- package/dist/lib/db.d.ts +58 -0
- package/dist/lib/db.d.ts.map +1 -0
- package/dist/lib/db.js +292 -0
- package/dist/lib/db.js.map +1 -0
- package/dist/lib/index.d.ts +11 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +26 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/pg-client.d.ts +50 -0
- package/dist/lib/pg-client.d.ts.map +1 -0
- package/dist/lib/pg-client.js +106 -0
- package/dist/lib/pg-client.js.map +1 -0
- package/dist/lib/schema.d.ts +298 -0
- package/dist/lib/schema.d.ts.map +1 -0
- package/dist/lib/schema.js +12 -0
- package/dist/lib/schema.js.map +1 -0
- package/dist/migration-manager.d.ts +49 -0
- package/dist/migration-manager.d.ts.map +1 -0
- package/dist/migration-manager.js +282 -0
- package/dist/migration-manager.js.map +1 -0
- package/dist/queries/minimal-connections.d.ts +31 -0
- package/dist/queries/minimal-connections.d.ts.map +1 -0
- package/dist/queries/minimal-connections.js +143 -0
- package/dist/queries/minimal-connections.js.map +1 -0
- package/dist/schema.ts +340 -0
- package/dist/seed.d.ts +8 -0
- package/dist/seed.d.ts.map +1 -0
- package/dist/seed.js +40 -0
- package/dist/seed.js.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +23 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/types.d.ts +77 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/types.js +3 -0
- package/dist/types/types.js.map +1 -0
- package/dist/utils/authenticated-user-operations.d.ts +110 -0
- package/dist/utils/authenticated-user-operations.d.ts.map +1 -0
- package/dist/utils/authenticated-user-operations.js +292 -0
- package/dist/utils/authenticated-user-operations.js.map +1 -0
- package/dist/utils/authentication-operations.d.ts +48 -0
- package/dist/utils/authentication-operations.d.ts.map +1 -0
- package/dist/utils/authentication-operations.js +172 -0
- package/dist/utils/authentication-operations.js.map +1 -0
- package/dist/utils/company-mapping-job-operations.d.ts +103 -0
- package/dist/utils/company-mapping-job-operations.d.ts.map +1 -0
- package/dist/utils/company-mapping-job-operations.js +413 -0
- package/dist/utils/company-mapping-job-operations.js.map +1 -0
- package/dist/utils/company-sheet-upload-operations.d.ts +53 -0
- package/dist/utils/company-sheet-upload-operations.d.ts.map +1 -0
- package/dist/utils/company-sheet-upload-operations.js +135 -0
- package/dist/utils/company-sheet-upload-operations.js.map +1 -0
- package/dist/utils/contact-operations.d.ts +70 -0
- package/dist/utils/contact-operations.d.ts.map +1 -0
- package/dist/utils/contact-operations.js +294 -0
- package/dist/utils/contact-operations.js.map +1 -0
- package/dist/utils/forager-linkedin-operations.d.ts +74 -0
- package/dist/utils/forager-linkedin-operations.d.ts.map +1 -0
- package/dist/utils/forager-linkedin-operations.js +778 -0
- package/dist/utils/forager-linkedin-operations.js.map +1 -0
- package/dist/utils/ghost-genius-linkedin-operations.d.ts +23 -0
- package/dist/utils/ghost-genius-linkedin-operations.d.ts.map +1 -0
- package/dist/utils/ghost-genius-linkedin-operations.js +282 -0
- package/dist/utils/ghost-genius-linkedin-operations.js.map +1 -0
- package/dist/utils/index.d.ts +29 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +77 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/introduction-request-operations.d.ts +160 -0
- package/dist/utils/introduction-request-operations.d.ts.map +1 -0
- package/dist/utils/introduction-request-operations.js +492 -0
- package/dist/utils/introduction-request-operations.js.map +1 -0
- package/dist/utils/invitation-operations.d.ts +141 -0
- package/dist/utils/invitation-operations.d.ts.map +1 -0
- package/dist/utils/invitation-operations.js +749 -0
- package/dist/utils/invitation-operations.js.map +1 -0
- package/dist/utils/linkedin-account-operations.d.ts +45 -0
- package/dist/utils/linkedin-account-operations.d.ts.map +1 -0
- package/dist/utils/linkedin-account-operations.js +279 -0
- package/dist/utils/linkedin-account-operations.js.map +1 -0
- package/dist/utils/linkedin-account-relationship-operations.d.ts +77 -0
- package/dist/utils/linkedin-account-relationship-operations.d.ts.map +1 -0
- package/dist/utils/linkedin-account-relationship-operations.js +274 -0
- package/dist/utils/linkedin-account-relationship-operations.js.map +1 -0
- package/dist/utils/linkedin-data-operations.d.ts +102 -0
- package/dist/utils/linkedin-data-operations.d.ts.map +1 -0
- package/dist/utils/linkedin-data-operations.js +613 -0
- package/dist/utils/linkedin-data-operations.js.map +1 -0
- package/dist/utils/linkedin-identifier-utils.d.ts +31 -0
- package/dist/utils/linkedin-identifier-utils.d.ts.map +1 -0
- package/dist/utils/linkedin-identifier-utils.js +63 -0
- package/dist/utils/linkedin-identifier-utils.js.map +1 -0
- package/dist/utils/linkedin-profile-cache.d.ts +131 -0
- package/dist/utils/linkedin-profile-cache.d.ts.map +1 -0
- package/dist/utils/linkedin-profile-cache.js +418 -0
- package/dist/utils/linkedin-profile-cache.js.map +1 -0
- package/dist/utils/llm-inference-job-operations.d.ts +116 -0
- package/dist/utils/llm-inference-job-operations.d.ts.map +1 -0
- package/dist/utils/llm-inference-job-operations.js +267 -0
- package/dist/utils/llm-inference-job-operations.js.map +1 -0
- package/dist/utils/mapping-job-operations.d.ts +272 -0
- package/dist/utils/mapping-job-operations.d.ts.map +1 -0
- package/dist/utils/mapping-job-operations.js +833 -0
- package/dist/utils/mapping-job-operations.js.map +1 -0
- package/dist/utils/mapping-operations.d.ts +80 -0
- package/dist/utils/mapping-operations.d.ts.map +1 -0
- package/dist/utils/mapping-operations.js +318 -0
- package/dist/utils/mapping-operations.js.map +1 -0
- package/dist/utils/on-demand-mapping-operations.d.ts +199 -0
- package/dist/utils/on-demand-mapping-operations.d.ts.map +1 -0
- package/dist/utils/on-demand-mapping-operations.js +728 -0
- package/dist/utils/on-demand-mapping-operations.js.map +1 -0
- package/dist/utils/onboarding-operations.d.ts +53 -0
- package/dist/utils/onboarding-operations.d.ts.map +1 -0
- package/dist/utils/onboarding-operations.js +223 -0
- package/dist/utils/onboarding-operations.js.map +1 -0
- package/dist/utils/organization-assignment-job-operations.d.ts +258 -0
- package/dist/utils/organization-assignment-job-operations.d.ts.map +1 -0
- package/dist/utils/organization-assignment-job-operations.js +881 -0
- package/dist/utils/organization-assignment-job-operations.js.map +1 -0
- package/dist/utils/organization-assignment-operations.d.ts +59 -0
- package/dist/utils/organization-assignment-operations.d.ts.map +1 -0
- package/dist/utils/organization-assignment-operations.js +130 -0
- package/dist/utils/organization-assignment-operations.js.map +1 -0
- package/dist/utils/organization-operations.d.ts +284 -0
- package/dist/utils/organization-operations.d.ts.map +1 -0
- package/dist/utils/organization-operations.js +1030 -0
- package/dist/utils/organization-operations.js.map +1 -0
- package/dist/utils/organization-relationship-operations.d.ts +79 -0
- package/dist/utils/organization-relationship-operations.d.ts.map +1 -0
- package/dist/utils/organization-relationship-operations.js +294 -0
- package/dist/utils/organization-relationship-operations.js.map +1 -0
- package/dist/utils/quota-operations.d.ts +107 -0
- package/dist/utils/quota-operations.d.ts.map +1 -0
- package/dist/utils/quota-operations.js +692 -0
- package/dist/utils/quota-operations.js.map +1 -0
- package/dist/utils/recursive-mapping-job-operations.d.ts +42 -0
- package/dist/utils/recursive-mapping-job-operations.d.ts.map +1 -0
- package/dist/utils/recursive-mapping-job-operations.js +169 -0
- package/dist/utils/recursive-mapping-job-operations.js.map +1 -0
- package/dist/utils/relationship-operations.d.ts +130 -0
- package/dist/utils/relationship-operations.d.ts.map +1 -0
- package/dist/utils/relationship-operations.js +329 -0
- package/dist/utils/relationship-operations.js.map +1 -0
- package/dist/utils/sales-pipeline-operations.d.ts +163 -0
- package/dist/utils/sales-pipeline-operations.d.ts.map +1 -0
- package/dist/utils/sales-pipeline-operations.js +725 -0
- package/dist/utils/sales-pipeline-operations.js.map +1 -0
- package/dist/utils/skills-operations.d.ts +117 -0
- package/dist/utils/skills-operations.d.ts.map +1 -0
- package/dist/utils/skills-operations.js +487 -0
- package/dist/utils/skills-operations.js.map +1 -0
- package/dist/utils/subscription-operations.d.ts +123 -0
- package/dist/utils/subscription-operations.d.ts.map +1 -0
- package/dist/utils/subscription-operations.js +391 -0
- package/dist/utils/subscription-operations.js.map +1 -0
- package/dist/utils/unipile-account-operations.d.ts +96 -0
- package/dist/utils/unipile-account-operations.d.ts.map +1 -0
- package/dist/utils/unipile-account-operations.js +255 -0
- package/dist/utils/unipile-account-operations.js.map +1 -0
- package/dist/utils/user-industry-operations.d.ts +80 -0
- package/dist/utils/user-industry-operations.d.ts.map +1 -0
- package/dist/utils/user-industry-operations.js +237 -0
- package/dist/utils/user-industry-operations.js.map +1 -0
- package/dist/utils/user-operations.d.ts +87 -0
- package/dist/utils/user-operations.d.ts.map +1 -0
- package/dist/utils/user-operations.js +212 -0
- package/dist/utils/user-operations.js.map +1 -0
- package/package.json +98 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-service.js","sourceRoot":"","sources":["../../src/lib/database-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript interfaces for database tables
|
|
3
|
+
*
|
|
4
|
+
* These types define the shape of data returned from PostgreSQL queries.
|
|
5
|
+
* Column names use snake_case to match database schema.
|
|
6
|
+
*/
|
|
7
|
+
export interface User {
|
|
8
|
+
id: number;
|
|
9
|
+
given_name: string | null;
|
|
10
|
+
family_name: string | null;
|
|
11
|
+
created_at: Date;
|
|
12
|
+
}
|
|
13
|
+
export interface AuthenticatedUser {
|
|
14
|
+
id: number;
|
|
15
|
+
user_id: number | null;
|
|
16
|
+
cognito_user_id: string;
|
|
17
|
+
auth_provider: string;
|
|
18
|
+
created_at: Date;
|
|
19
|
+
contact_info_id: number | null;
|
|
20
|
+
is_admin: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface LinkedInAccount {
|
|
23
|
+
id: number;
|
|
24
|
+
user_id: number | null;
|
|
25
|
+
forager_id: number | null;
|
|
26
|
+
public_identifier: string | null;
|
|
27
|
+
linkedin_identifier_acoa: string;
|
|
28
|
+
first_name: string | null;
|
|
29
|
+
last_name: string | null;
|
|
30
|
+
headline: string | null;
|
|
31
|
+
summary: string | null;
|
|
32
|
+
location: string | null;
|
|
33
|
+
profile_picture_url: string | null;
|
|
34
|
+
profile_image_cloudfront_url: string | null;
|
|
35
|
+
profile_image_hash: string | null;
|
|
36
|
+
follower_count: number | null;
|
|
37
|
+
connections_count: number | null;
|
|
38
|
+
profiles_updated_at: Date | null;
|
|
39
|
+
created_at: Date;
|
|
40
|
+
}
|
|
41
|
+
export interface LinkedInProfile {
|
|
42
|
+
id: number;
|
|
43
|
+
linkedin_account_id: number;
|
|
44
|
+
first_name: string | null;
|
|
45
|
+
last_name: string | null;
|
|
46
|
+
headline: string | null;
|
|
47
|
+
summary: string | null;
|
|
48
|
+
location: string | null;
|
|
49
|
+
profile_picture_url: string | null;
|
|
50
|
+
follower_count: number | null;
|
|
51
|
+
connections_count: number | null;
|
|
52
|
+
created_at: Date;
|
|
53
|
+
updated_at: Date | null;
|
|
54
|
+
}
|
|
55
|
+
export interface LinkedInWorkExperience {
|
|
56
|
+
id: number;
|
|
57
|
+
linkedin_account_id: number;
|
|
58
|
+
position: string | null;
|
|
59
|
+
company: string | null;
|
|
60
|
+
company_id: string | null;
|
|
61
|
+
company_linkedin_url: string | null;
|
|
62
|
+
location: string | null;
|
|
63
|
+
employment_type: string | null;
|
|
64
|
+
description: string | null;
|
|
65
|
+
is_current: boolean;
|
|
66
|
+
start_date: string | null;
|
|
67
|
+
end_date: string | null;
|
|
68
|
+
created_at: Date;
|
|
69
|
+
updated_at: Date | null;
|
|
70
|
+
}
|
|
71
|
+
export interface LinkedInEducation {
|
|
72
|
+
id: number;
|
|
73
|
+
linkedin_account_id: number;
|
|
74
|
+
degree: string | null;
|
|
75
|
+
school: string | null;
|
|
76
|
+
school_id: string | null;
|
|
77
|
+
field_of_study: string | null;
|
|
78
|
+
grade: string | null;
|
|
79
|
+
description: string | null;
|
|
80
|
+
activities_and_societies: string | null;
|
|
81
|
+
school_linkedin_url: string | null;
|
|
82
|
+
start_date: string | null;
|
|
83
|
+
end_date: string | null;
|
|
84
|
+
created_at: Date;
|
|
85
|
+
updated_at: Date | null;
|
|
86
|
+
}
|
|
87
|
+
export interface LinkedInProfileSkill {
|
|
88
|
+
id: number;
|
|
89
|
+
linkedin_account_id: number;
|
|
90
|
+
skill_name: string;
|
|
91
|
+
created_at: Date;
|
|
92
|
+
}
|
|
93
|
+
export interface LinkedInWorkExperienceSkill {
|
|
94
|
+
id: number;
|
|
95
|
+
work_experience_id: number;
|
|
96
|
+
skill_name: string;
|
|
97
|
+
created_at: Date;
|
|
98
|
+
}
|
|
99
|
+
export interface LinkedInEducationSkill {
|
|
100
|
+
id: number;
|
|
101
|
+
education_id: number;
|
|
102
|
+
skill_name: string;
|
|
103
|
+
created_at: Date;
|
|
104
|
+
}
|
|
105
|
+
export interface LinkedInProject {
|
|
106
|
+
id: number;
|
|
107
|
+
linkedin_account_id: number;
|
|
108
|
+
title: string;
|
|
109
|
+
description: string | null;
|
|
110
|
+
url: string | null;
|
|
111
|
+
start_date: string | null;
|
|
112
|
+
end_date: string | null;
|
|
113
|
+
created_at: Date;
|
|
114
|
+
updated_at: Date | null;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Partial update type - all fields optional except ID
|
|
118
|
+
*/
|
|
119
|
+
export type PartialUpdate<T> = Partial<Omit<T, 'id' | 'created_at'>> & {
|
|
120
|
+
id: number;
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* Insert type - omit auto-generated fields
|
|
124
|
+
*/
|
|
125
|
+
export type InsertType<T> = Omit<T, 'id' | 'created_at' | 'updated_at'>;
|
|
126
|
+
/**
|
|
127
|
+
* Common result types
|
|
128
|
+
*/
|
|
129
|
+
export interface FindOrCreateResult {
|
|
130
|
+
id: number;
|
|
131
|
+
wasNewlyCreated: boolean;
|
|
132
|
+
wasUpdated: boolean;
|
|
133
|
+
}
|
|
134
|
+
export interface ProfileFetchResult {
|
|
135
|
+
user_id: number;
|
|
136
|
+
linkedin_account_id: number;
|
|
137
|
+
isNewUser: boolean;
|
|
138
|
+
linkedinAccountWasCreated: boolean;
|
|
139
|
+
linkedinAccountWasUpdated: boolean;
|
|
140
|
+
profileData?: CompleteLinkedInProfileResult;
|
|
141
|
+
}
|
|
142
|
+
export interface CompleteLinkedInProfileResult {
|
|
143
|
+
user: import('../lib/schema').User | undefined;
|
|
144
|
+
linkedinAccount: LinkedInAccount | any;
|
|
145
|
+
profile?: LinkedInProfile | null;
|
|
146
|
+
workExperience: any[];
|
|
147
|
+
workExperiences?: LinkedInWorkExperience[];
|
|
148
|
+
education: any[];
|
|
149
|
+
educations?: LinkedInEducation[];
|
|
150
|
+
certifications: any[];
|
|
151
|
+
projects: any[];
|
|
152
|
+
skills?: LinkedInProfileSkill[];
|
|
153
|
+
skillsAdded: number;
|
|
154
|
+
contactInfosAdded: number;
|
|
155
|
+
userWasCreated: boolean;
|
|
156
|
+
linkedinAccountWasCreated: boolean;
|
|
157
|
+
linkedinAccountWasUpdated: boolean;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Type guard to check if a value is a valid Date
|
|
161
|
+
*/
|
|
162
|
+
export declare function isValidDate(date: any): date is Date;
|
|
163
|
+
/**
|
|
164
|
+
* Convert database timestamp string to Date
|
|
165
|
+
*/
|
|
166
|
+
export declare function parseTimestamp(timestamp: string | Date | null): Date | null;
|
|
167
|
+
//# sourceMappingURL=db-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-types.d.ts","sourceRoot":"","sources":["../../src/lib/db-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* TypeScript interfaces for database tables
|
|
4
|
+
*
|
|
5
|
+
* These types define the shape of data returned from PostgreSQL queries.
|
|
6
|
+
* Column names use snake_case to match database schema.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.isValidDate = isValidDate;
|
|
10
|
+
exports.parseTimestamp = parseTimestamp;
|
|
11
|
+
/**
|
|
12
|
+
* Type guard to check if a value is a valid Date
|
|
13
|
+
*/
|
|
14
|
+
function isValidDate(date) {
|
|
15
|
+
return date instanceof Date && !isNaN(date.getTime());
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Convert database timestamp string to Date
|
|
19
|
+
*/
|
|
20
|
+
function parseTimestamp(timestamp) {
|
|
21
|
+
if (!timestamp)
|
|
22
|
+
return null;
|
|
23
|
+
if (timestamp instanceof Date)
|
|
24
|
+
return timestamp;
|
|
25
|
+
const date = new Date(timestamp);
|
|
26
|
+
return isValidDate(date) ? date : null;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=db-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-types.js","sourceRoot":"","sources":["../../src/lib/db-types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAwLH,kCAEC;AAKD,wCAKC;AAfD;;GAEG;AACH,SAAgB,WAAW,CAAC,IAAS;IACnC,OAAO,IAAI,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,SAA+B;IAC5D,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,IAAI,SAAS,YAAY,IAAI;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACzC,CAAC"}
|
package/dist/lib/db.d.ts
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* =============================================================================
|
|
3
|
+
* NATIVE POSTGRESQL DATABASE CLIENT
|
|
4
|
+
* =============================================================================
|
|
5
|
+
* Native PostgreSQL client using the pg library for direct database access
|
|
6
|
+
*/
|
|
7
|
+
import { Pool, PoolClient } from "pg";
|
|
8
|
+
/**
|
|
9
|
+
* Debug log database operations with structured data
|
|
10
|
+
* @param operation - The type of operation (e.g., 'insert', 'upsert', 'select', 'update', 'delete')
|
|
11
|
+
* @param tableName - Name of the table being operated on
|
|
12
|
+
* @param data - The data being used (for inserts/updates) or conditions (for selects/deletes)
|
|
13
|
+
* @param result - The result from the database operation (optional)
|
|
14
|
+
* @param metadata - Additional metadata about the operation (optional)
|
|
15
|
+
*/
|
|
16
|
+
export declare function debugLogDbOperation(operation: string, tableName: string, data: any, result?: any, metadata?: Record<string, any>): void;
|
|
17
|
+
/**
|
|
18
|
+
* Test database connectivity with comprehensive logging
|
|
19
|
+
* @returns {Promise<boolean>} True if connection successful, false otherwise
|
|
20
|
+
*/
|
|
21
|
+
export declare function testDatabaseConnectivity(): Promise<boolean>;
|
|
22
|
+
export interface ConnectionPoolConfig {
|
|
23
|
+
max?: number;
|
|
24
|
+
idleTimeoutMillis?: number;
|
|
25
|
+
connectionTimeoutMillis?: number;
|
|
26
|
+
maxUses?: number;
|
|
27
|
+
}
|
|
28
|
+
export interface DbConfig {
|
|
29
|
+
poolConfig?: ConnectionPoolConfig;
|
|
30
|
+
testConnectivity?: boolean | undefined;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Initialize database connection with explicit configuration
|
|
34
|
+
* This function ensures race-condition-free initialization
|
|
35
|
+
*
|
|
36
|
+
* @param config - Database configuration options with smart defaults
|
|
37
|
+
* @returns Promise resolving to the database pool instance
|
|
38
|
+
*/
|
|
39
|
+
export declare function initializeDb(config?: DbConfig): Promise<Pool>;
|
|
40
|
+
/**
|
|
41
|
+
* Get database pool instance - requires explicit initialization
|
|
42
|
+
* Call initializeDb() first before using any database operations
|
|
43
|
+
*
|
|
44
|
+
* @returns Promise resolving to the database pool instance
|
|
45
|
+
* @throws Error if database is not initialized
|
|
46
|
+
*/
|
|
47
|
+
export declare function getDb(): Promise<Pool>;
|
|
48
|
+
/**
|
|
49
|
+
* Get a client from the pool for transaction handling
|
|
50
|
+
*/
|
|
51
|
+
export declare function getClient(): Promise<PoolClient>;
|
|
52
|
+
/**
|
|
53
|
+
* Close the database pool
|
|
54
|
+
*/
|
|
55
|
+
export declare function closeDb(): Promise<void>;
|
|
56
|
+
export type Database = Pool;
|
|
57
|
+
export type DatabaseOrTransaction = Pool | PoolClient;
|
|
58
|
+
//# sourceMappingURL=db.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/lib/db.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,UAAU,EAAc,MAAM,IAAI,CAAC;AAMlD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,GAAG,EACT,MAAM,CAAC,EAAE,GAAG,EACZ,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,IAAI,CA8CN;AASD;;;GAGG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC,CAqCjE;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACxC;AAyGD;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,MAAM,GAAE,QAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCvE;AAED;;;;;;GAMG;AACH,wBAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ3C;AAED;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,CAGrD;AAED;;GAEG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAM7C;AAMD,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC;AAG5B,MAAM,MAAM,qBAAqB,GAAG,IAAI,GAAG,UAAU,CAAC"}
|
package/dist/lib/db.js
ADDED
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* =============================================================================
|
|
4
|
+
* NATIVE POSTGRESQL DATABASE CLIENT
|
|
5
|
+
* =============================================================================
|
|
6
|
+
* Native PostgreSQL client using the pg library for direct database access
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.debugLogDbOperation = debugLogDbOperation;
|
|
10
|
+
exports.testDatabaseConnectivity = testDatabaseConnectivity;
|
|
11
|
+
exports.initializeDb = initializeDb;
|
|
12
|
+
exports.getDb = getDb;
|
|
13
|
+
exports.getClient = getClient;
|
|
14
|
+
exports.closeDb = closeDb;
|
|
15
|
+
const pg_1 = require("pg");
|
|
16
|
+
// =============================================================================
|
|
17
|
+
// DEBUG LOGGING UTILITIES
|
|
18
|
+
// =============================================================================
|
|
19
|
+
/**
|
|
20
|
+
* Debug log database operations with structured data
|
|
21
|
+
* @param operation - The type of operation (e.g., 'insert', 'upsert', 'select', 'update', 'delete')
|
|
22
|
+
* @param tableName - Name of the table being operated on
|
|
23
|
+
* @param data - The data being used (for inserts/updates) or conditions (for selects/deletes)
|
|
24
|
+
* @param result - The result from the database operation (optional)
|
|
25
|
+
* @param metadata - Additional metadata about the operation (optional)
|
|
26
|
+
*/
|
|
27
|
+
function debugLogDbOperation(operation, tableName, data, result, metadata) {
|
|
28
|
+
// Only log DB operations in debug mode or when explicitly enabled
|
|
29
|
+
const logLevel = (process.env.LOG_LEVEL || "info").toLowerCase();
|
|
30
|
+
const shouldLogDebug = logLevel === "debug" || process.env.NODE_ENV === "dev";
|
|
31
|
+
if (shouldLogDebug) {
|
|
32
|
+
const logData = {
|
|
33
|
+
operation,
|
|
34
|
+
table: tableName,
|
|
35
|
+
timestamp: new Date().toISOString(),
|
|
36
|
+
};
|
|
37
|
+
// Add data information
|
|
38
|
+
if (Array.isArray(data)) {
|
|
39
|
+
logData.data_type = "array";
|
|
40
|
+
logData.data_count = data.length;
|
|
41
|
+
logData.sample_data = data.length > 0 ? data[0] : null;
|
|
42
|
+
if (data.length > 1) {
|
|
43
|
+
logData.data_preview = `[${data.length} items: ${JSON.stringify(data[0])}, ...]`;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
logData.data_preview = JSON.stringify(data);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
logData.data_type = "object";
|
|
51
|
+
logData.data_count = 1;
|
|
52
|
+
logData.data_preview = JSON.stringify(data);
|
|
53
|
+
}
|
|
54
|
+
// Add result information if provided
|
|
55
|
+
if (result) {
|
|
56
|
+
if (Array.isArray(result)) {
|
|
57
|
+
logData.result_count = result.length;
|
|
58
|
+
logData.result_sample = result.length > 0 ? result[0] : null;
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
logData.result_count = 1;
|
|
62
|
+
logData.result_sample = result;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// Add metadata if provided
|
|
66
|
+
if (metadata) {
|
|
67
|
+
logData.metadata = metadata;
|
|
68
|
+
}
|
|
69
|
+
console.debug(`📊 DB_OPERATION: ${operation.toUpperCase()} ${tableName}`, logData);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// =============================================================================
|
|
73
|
+
// DATABASE CONNECTION
|
|
74
|
+
// =============================================================================
|
|
75
|
+
let pool = null;
|
|
76
|
+
let dbInitializationPromise = null;
|
|
77
|
+
/**
|
|
78
|
+
* Test database connectivity with comprehensive logging
|
|
79
|
+
* @returns {Promise<boolean>} True if connection successful, false otherwise
|
|
80
|
+
*/
|
|
81
|
+
async function testDatabaseConnectivity() {
|
|
82
|
+
if (!pool) {
|
|
83
|
+
console.error("❌ Cannot test connectivity: pool not initialized");
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
try {
|
|
87
|
+
console.log("🔍 Testing database connectivity...");
|
|
88
|
+
const startTime = Date.now();
|
|
89
|
+
// Test basic connectivity with a simple query
|
|
90
|
+
const result = await pool.query("SELECT NOW() as current_time, version() as db_version");
|
|
91
|
+
const executionTime = Date.now() - startTime;
|
|
92
|
+
const dbInfo = result.rows[0];
|
|
93
|
+
console.log("✅ Database connectivity test successful", {
|
|
94
|
+
executionTime: `${executionTime}ms`,
|
|
95
|
+
currentTime: dbInfo?.current_time,
|
|
96
|
+
dbVersion: typeof dbInfo?.db_version === "string"
|
|
97
|
+
? dbInfo.db_version.substring(0, 50) + "..."
|
|
98
|
+
: dbInfo?.db_version,
|
|
99
|
+
connectionStatus: "success",
|
|
100
|
+
});
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
console.error("❌ Database connectivity test failed", {
|
|
105
|
+
error: error.message,
|
|
106
|
+
errorCode: error.code,
|
|
107
|
+
errorDetail: error.detail,
|
|
108
|
+
connectionStatus: "failed",
|
|
109
|
+
stack: typeof error.stack === "string" ? error.stack.substring(0, 200) + "..." : error.stack,
|
|
110
|
+
});
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Internal async initialization function
|
|
116
|
+
* This handles the actual database connection setup
|
|
117
|
+
*/
|
|
118
|
+
async function initializeDatabaseConnection(config) {
|
|
119
|
+
console.log("⚡ Initializing database connection...");
|
|
120
|
+
const connectionStartTime = Date.now();
|
|
121
|
+
// Log connection type for debugging
|
|
122
|
+
const isLocal = !process.env.AWS_REGION && !process.env.AWS_LAMBDA_FUNCTION_NAME;
|
|
123
|
+
const useProxy = isLocal
|
|
124
|
+
? false // Local: default to direct connection
|
|
125
|
+
: process.env.USE_DIRECT_CONNECTION !== "true"; // Production: default to proxy
|
|
126
|
+
// Default connection pool settings based on environment
|
|
127
|
+
const defaultPoolConfig = {
|
|
128
|
+
max: useProxy ? 5 : 10, // Lower for proxy (proxy handles pooling), higher for direct
|
|
129
|
+
idleTimeoutMillis: 120000, // 2 minutes (shorter for Lambda)
|
|
130
|
+
connectionTimeoutMillis: 60000, // 60 seconds connection timeout
|
|
131
|
+
maxUses: 7500, // Max uses per connection (for connection cycling)
|
|
132
|
+
};
|
|
133
|
+
// Merge user config with defaults and environment overrides
|
|
134
|
+
const poolConfig = {
|
|
135
|
+
...defaultPoolConfig,
|
|
136
|
+
...config?.poolConfig,
|
|
137
|
+
// Allow environment variable overrides
|
|
138
|
+
max: config?.poolConfig?.max ??
|
|
139
|
+
parseInt(process.env.DB_MAX_CONNECTIONS || String(defaultPoolConfig.max)),
|
|
140
|
+
idleTimeoutMillis: config?.poolConfig?.idleTimeoutMillis ??
|
|
141
|
+
parseInt(process.env.DB_IDLE_TIMEOUT || String(defaultPoolConfig.idleTimeoutMillis)),
|
|
142
|
+
connectionTimeoutMillis: config?.poolConfig?.connectionTimeoutMillis ??
|
|
143
|
+
parseInt(process.env.DB_CONNECT_TIMEOUT || String(defaultPoolConfig.connectionTimeoutMillis)),
|
|
144
|
+
};
|
|
145
|
+
console.log("🔧 Database connection configuration", {
|
|
146
|
+
environment: isLocal ? "local" : "cloud/lambda",
|
|
147
|
+
connectionType: useProxy ? "proxy" : "direct",
|
|
148
|
+
useDirectConnection: process.env.USE_DIRECT_CONNECTION,
|
|
149
|
+
awsRegion: process.env.AWS_REGION,
|
|
150
|
+
poolConfig,
|
|
151
|
+
});
|
|
152
|
+
const databaseUrl = process.env.DATABASE_URL;
|
|
153
|
+
if (!databaseUrl) {
|
|
154
|
+
throw new Error("DATABASE_URL environment variable is required for database initialization");
|
|
155
|
+
}
|
|
156
|
+
// Parse DATABASE_URL to extract connection parameters
|
|
157
|
+
const url = new URL(databaseUrl);
|
|
158
|
+
const pgPoolConfig = {
|
|
159
|
+
host: url.hostname,
|
|
160
|
+
port: parseInt(url.port) || 5432,
|
|
161
|
+
database: url.pathname.slice(1), // Remove leading '/'
|
|
162
|
+
user: url.username,
|
|
163
|
+
password: url.password,
|
|
164
|
+
ssl: url.searchParams.get('sslmode') === 'disable' ? false : { rejectUnauthorized: false },
|
|
165
|
+
...poolConfig,
|
|
166
|
+
};
|
|
167
|
+
pool = new pg_1.Pool(pgPoolConfig);
|
|
168
|
+
// Set up error handlers
|
|
169
|
+
pool.on('error', (err) => {
|
|
170
|
+
console.error('❌ Unexpected error on idle client', err);
|
|
171
|
+
});
|
|
172
|
+
pool.on('connect', () => {
|
|
173
|
+
console.log('🔗 New client connected to pool');
|
|
174
|
+
});
|
|
175
|
+
pool.on('remove', () => {
|
|
176
|
+
console.log('🔌 Client removed from pool');
|
|
177
|
+
});
|
|
178
|
+
const initTime = Date.now() - connectionStartTime;
|
|
179
|
+
console.log("🔗 Database connection pool initialized", {
|
|
180
|
+
initializationTime: `${initTime}ms`,
|
|
181
|
+
poolConfig,
|
|
182
|
+
});
|
|
183
|
+
// Test connectivity if requested (default: true)
|
|
184
|
+
const shouldTestConnectivity = config?.testConnectivity !== false;
|
|
185
|
+
if (shouldTestConnectivity) {
|
|
186
|
+
const connectivityTest = await testDatabaseConnectivity();
|
|
187
|
+
if (!connectivityTest) {
|
|
188
|
+
console.warn("⚠️ Database connectivity test failed, but proceeding with initialized connection");
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return pool;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Initialize database connection with explicit configuration
|
|
195
|
+
* This function ensures race-condition-free initialization
|
|
196
|
+
*
|
|
197
|
+
* @param config - Database configuration options with smart defaults
|
|
198
|
+
* @returns Promise resolving to the database pool instance
|
|
199
|
+
*/
|
|
200
|
+
async function initializeDb(config = {}) {
|
|
201
|
+
if (!dbInitializationPromise) {
|
|
202
|
+
// Smart defaults based on environment
|
|
203
|
+
const isLambda = !!process.env.AWS_LAMBDA_FUNCTION_NAME;
|
|
204
|
+
const isLocal = !process.env.AWS_REGION && !isLambda;
|
|
205
|
+
const defaultConfig = {
|
|
206
|
+
poolConfig: {
|
|
207
|
+
max: isLambda ? 1 : isLocal ? 3 : 5, // Lambda: 1, Local: 3, ECS: 5
|
|
208
|
+
idleTimeoutMillis: isLambda ? 120000 : 300000, // Lambda: 2min, Others: 5min
|
|
209
|
+
connectionTimeoutMillis: 30000, // Always 30 seconds
|
|
210
|
+
},
|
|
211
|
+
testConnectivity: !isLambda, // Skip test in Lambda for faster startup
|
|
212
|
+
};
|
|
213
|
+
// Merge with user config
|
|
214
|
+
const finalConfig = {
|
|
215
|
+
poolConfig: {
|
|
216
|
+
...defaultConfig.poolConfig,
|
|
217
|
+
...config.poolConfig,
|
|
218
|
+
},
|
|
219
|
+
testConnectivity: config.testConnectivity !== undefined
|
|
220
|
+
? config.testConnectivity
|
|
221
|
+
: defaultConfig.testConnectivity,
|
|
222
|
+
};
|
|
223
|
+
console.log("🚀 Starting database initialization", {
|
|
224
|
+
environment: isLambda ? "lambda" : isLocal ? "local" : "cloud",
|
|
225
|
+
config: finalConfig.poolConfig,
|
|
226
|
+
testConnectivity: finalConfig.testConnectivity,
|
|
227
|
+
});
|
|
228
|
+
dbInitializationPromise = initializeDatabaseConnection(finalConfig);
|
|
229
|
+
}
|
|
230
|
+
return await dbInitializationPromise;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Get database pool instance - requires explicit initialization
|
|
234
|
+
* Call initializeDb() first before using any database operations
|
|
235
|
+
*
|
|
236
|
+
* @returns Promise resolving to the database pool instance
|
|
237
|
+
* @throws Error if database is not initialized
|
|
238
|
+
*/
|
|
239
|
+
async function getDb() {
|
|
240
|
+
if (!dbInitializationPromise) {
|
|
241
|
+
throw new Error("Database not initialized! Call initializeDb() first before any database operations.\n" +
|
|
242
|
+
"Example: await initializeDb({ poolConfig: { max: 1 } });");
|
|
243
|
+
}
|
|
244
|
+
return await dbInitializationPromise;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Get a client from the pool for transaction handling
|
|
248
|
+
*/
|
|
249
|
+
async function getClient() {
|
|
250
|
+
const db = await getDb();
|
|
251
|
+
return await db.connect();
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Close the database pool
|
|
255
|
+
*/
|
|
256
|
+
async function closeDb() {
|
|
257
|
+
if (pool) {
|
|
258
|
+
await pool.end();
|
|
259
|
+
pool = null;
|
|
260
|
+
dbInitializationPromise = null;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
// =============================================================================
|
|
264
|
+
// EXAMPLE USAGE WITH NATIVE SQL
|
|
265
|
+
// =============================================================================
|
|
266
|
+
/*
|
|
267
|
+
// Example 1: Simple query
|
|
268
|
+
const db = await getDb();
|
|
269
|
+
const users = await db.query('SELECT * FROM public.users WHERE id = $1', [123]);
|
|
270
|
+
|
|
271
|
+
// Example 2: Insert with RETURNING
|
|
272
|
+
const result = await db.query(
|
|
273
|
+
'INSERT INTO public.users (given_name, family_name) VALUES ($1, $2) RETURNING *',
|
|
274
|
+
['John', 'Doe']
|
|
275
|
+
);
|
|
276
|
+
const newUser = result.rows[0];
|
|
277
|
+
|
|
278
|
+
// Example 3: Transactions
|
|
279
|
+
const client = await getClient();
|
|
280
|
+
try {
|
|
281
|
+
await client.query('BEGIN');
|
|
282
|
+
await client.query('INSERT INTO public.users (given_name) VALUES ($1)', ['Jane']);
|
|
283
|
+
await client.query('INSERT INTO linkedin.accounts (user_id, forager_id) VALUES ($1, $2)', [123, 456]);
|
|
284
|
+
await client.query('COMMIT');
|
|
285
|
+
} catch (error) {
|
|
286
|
+
await client.query('ROLLBACK');
|
|
287
|
+
throw error;
|
|
288
|
+
} finally {
|
|
289
|
+
client.release();
|
|
290
|
+
}
|
|
291
|
+
*/
|
|
292
|
+
//# sourceMappingURL=db.js.map
|