eggi-ai-db-schema-2 12.54.30 → 12.55.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/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/unipile-gmail-account-operations.d.ts +53 -0
- package/dist/utils/unipile-gmail-account-operations.d.ts.map +1 -0
- package/dist/utils/unipile-gmail-account-operations.js +210 -0
- package/dist/utils/unipile-gmail-account-operations.js.map +1 -0
- package/dist/utils/unipile-linkedin-account-operations.d.ts +55 -0
- package/dist/utils/unipile-linkedin-account-operations.d.ts.map +1 -0
- package/dist/utils/unipile-linkedin-account-operations.js +220 -0
- package/dist/utils/unipile-linkedin-account-operations.js.map +1 -0
- package/package.json +1 -1
package/dist/utils/index.d.ts
CHANGED
|
@@ -9,6 +9,8 @@ export * from "./introduction-request-operations";
|
|
|
9
9
|
export * from "./linkedin-account-operations";
|
|
10
10
|
export * from "./contact-operations";
|
|
11
11
|
export * from "./unipile-account-operations";
|
|
12
|
+
export * from "./unipile-linkedin-account-operations";
|
|
13
|
+
export * from "./unipile-gmail-account-operations";
|
|
12
14
|
export * from "./linkedin-profile-cache";
|
|
13
15
|
export * from "./linkedin-data-operations";
|
|
14
16
|
export * from "./linkedin-identifier-utils";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,cAAc,mBAAmB,CAAC;AAClC,cAAc,iCAAiC,CAAC;AAEhD,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AAKrC,cAAc,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,cAAc,mBAAmB,CAAC;AAClC,cAAc,iCAAiC,CAAC;AAEhD,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AAKrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AAKnD,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAE5C,cAAc,6BAA6B,CAAC;AAK5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,4CAA4C,CAAC;AAC3D,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAK3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wCAAwC,CAAC;AAKvD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AAKrC,cAAc,6BAA6B,CAAC;AAK5C,cAAc,oBAAoB,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -31,7 +31,9 @@ __exportStar(require("./contact-operations"), exports);
|
|
|
31
31
|
// =============================================================================
|
|
32
32
|
// UNIPILE INTEGRATION
|
|
33
33
|
// =============================================================================
|
|
34
|
-
__exportStar(require("./unipile-account-operations"), exports);
|
|
34
|
+
__exportStar(require("./unipile-account-operations"), exports); // Deprecated - use platform-specific operations
|
|
35
|
+
__exportStar(require("./unipile-linkedin-account-operations"), exports);
|
|
36
|
+
__exportStar(require("./unipile-gmail-account-operations"), exports);
|
|
35
37
|
// =============================================================================
|
|
36
38
|
// LINKEDIN OPERATIONS
|
|
37
39
|
// =============================================================================
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAChF,oDAAkC;AAClC,kEAAgD;AAChD,iEAAiE;AACjE,oEAAkD;AAClD,gEAA8C;AAC9C,uDAAqC;AAErC,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAChF,+DAA6C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAChF,oDAAkC;AAClC,kEAAgD;AAChD,iEAAiE;AACjE,oEAAkD;AAClD,gEAA8C;AAC9C,uDAAqC;AAErC,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAChF,+DAA6C,CAAC,gDAAgD;AAC9F,wEAAsD;AACtD,qEAAmD;AAEnD,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAChF,2DAAyC;AACzC,6DAA2C;AAC3C,8DAA4C;AAE5C,8DAA4C;AAE5C,gFAAgF;AAChF,mDAAmD;AACnD,gFAAgF;AAChF,sDAAoC;AACpC,6EAA2D;AAC3D,4DAA0C;AAC1C,6DAA2C;AAE3C,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAChF,2DAAyC;AACzC,iEAA+C;AAC/C,8DAA4C;AAC5C,2EAAyD;AACzD,iEAA+C;AAC/C,yEAAuD;AAEvD,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAChF,4DAA0C;AAC1C,uDAAqC;AAErC,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAChF,8DAA4C;AAE5C,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAChF,qDAAmC;AAEnC,gFAAgF;AAChF,kCAAkC;AAClC,gFAAgF;AAChF,oDAAoD;AACpD,2DAA2D;AAC3D,mDAAmD;AACnD,yCAAyC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* =============================================================================
|
|
3
|
+
* UNIPILE GMAIL ACCOUNT OPERATIONS UTILITIES
|
|
4
|
+
* =============================================================================
|
|
5
|
+
* Utility functions for creating and managing Unipile Gmail accounts
|
|
6
|
+
*/
|
|
7
|
+
import { Pool, PoolClient } from 'pg';
|
|
8
|
+
import type { Database } from "../lib/db";
|
|
9
|
+
export interface UnipileGmailAccount {
|
|
10
|
+
id: number;
|
|
11
|
+
gmailAccountId: number;
|
|
12
|
+
unipileAccountId: string;
|
|
13
|
+
isActive: boolean;
|
|
14
|
+
connectedAt: Date | null;
|
|
15
|
+
lastSyncedAt: Date | null;
|
|
16
|
+
metadata: Record<string, any>;
|
|
17
|
+
createdAt: Date;
|
|
18
|
+
updatedAt: Date;
|
|
19
|
+
}
|
|
20
|
+
export interface CreateUnipileGmailAccountData {
|
|
21
|
+
gmailAccountId: number;
|
|
22
|
+
unipileAccountId: string;
|
|
23
|
+
isActive?: boolean;
|
|
24
|
+
connectedAt?: Date;
|
|
25
|
+
lastSyncedAt?: Date;
|
|
26
|
+
metadata?: Record<string, any>;
|
|
27
|
+
}
|
|
28
|
+
export interface UpdateUnipileGmailAccountData {
|
|
29
|
+
isActive?: boolean;
|
|
30
|
+
lastSyncedAt?: Date;
|
|
31
|
+
metadata?: Record<string, any>;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Creates a new Unipile Gmail account record
|
|
35
|
+
*/
|
|
36
|
+
export declare function createUnipileGmailAccount(db: Database | Pool | PoolClient, data: CreateUnipileGmailAccountData): Promise<UnipileGmailAccount>;
|
|
37
|
+
/**
|
|
38
|
+
* Creates or updates a Unipile Gmail account (upsert)
|
|
39
|
+
*/
|
|
40
|
+
export declare function upsertUnipileGmailAccount(db: Database | Pool | PoolClient, data: CreateUnipileGmailAccountData): Promise<UnipileGmailAccount>;
|
|
41
|
+
/**
|
|
42
|
+
* Gets a Unipile Gmail account by Gmail account ID
|
|
43
|
+
*/
|
|
44
|
+
export declare function getUnipileGmailAccountByGmailId(db: Database | Pool | PoolClient, gmailAccountId: number): Promise<UnipileGmailAccount | null>;
|
|
45
|
+
/**
|
|
46
|
+
* Gets a Unipile Gmail account by Unipile account ID
|
|
47
|
+
*/
|
|
48
|
+
export declare function getUnipileGmailAccountByUnipileId(db: Database | Pool | PoolClient, unipileAccountId: string): Promise<UnipileGmailAccount | null>;
|
|
49
|
+
/**
|
|
50
|
+
* Updates a Unipile Gmail account
|
|
51
|
+
*/
|
|
52
|
+
export declare function updateUnipileGmailAccount(db: Database | Pool | PoolClient, id: number, data: UpdateUnipileGmailAccountData): Promise<UnipileGmailAccount>;
|
|
53
|
+
//# sourceMappingURL=unipile-gmail-account-operations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unipile-gmail-account-operations.d.ts","sourceRoot":"","sources":["../../src/utils/unipile-gmail-account-operations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEtC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAM1C,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,6BAA6B;IAC5C,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAMD;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU,EAChC,IAAI,EAAE,6BAA6B,GAClC,OAAO,CAAC,mBAAmB,CAAC,CAwD9B;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU,EAChC,IAAI,EAAE,6BAA6B,GAClC,OAAO,CAAC,mBAAmB,CAAC,CA6D9B;AAED;;GAEG;AACH,wBAAsB,+BAA+B,CACnD,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU,EAChC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAiBrC;AAED;;GAEG;AACH,wBAAsB,iCAAiC,CACrD,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU,EAChC,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAiBrC;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU,EAChC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,6BAA6B,GAClC,OAAO,CAAC,mBAAmB,CAAC,CAsD9B"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* =============================================================================
|
|
4
|
+
* UNIPILE GMAIL ACCOUNT OPERATIONS UTILITIES
|
|
5
|
+
* =============================================================================
|
|
6
|
+
* Utility functions for creating and managing Unipile Gmail accounts
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.createUnipileGmailAccount = createUnipileGmailAccount;
|
|
10
|
+
exports.upsertUnipileGmailAccount = upsertUnipileGmailAccount;
|
|
11
|
+
exports.getUnipileGmailAccountByGmailId = getUnipileGmailAccountByGmailId;
|
|
12
|
+
exports.getUnipileGmailAccountByUnipileId = getUnipileGmailAccountByUnipileId;
|
|
13
|
+
exports.updateUnipileGmailAccount = updateUnipileGmailAccount;
|
|
14
|
+
const pg_client_1 = require("../lib/pg-client");
|
|
15
|
+
// =============================================================================
|
|
16
|
+
// UNIPILE GMAIL ACCOUNT OPERATIONS
|
|
17
|
+
// =============================================================================
|
|
18
|
+
/**
|
|
19
|
+
* Creates a new Unipile Gmail account record
|
|
20
|
+
*/
|
|
21
|
+
async function createUnipileGmailAccount(db, data) {
|
|
22
|
+
if (!data.gmailAccountId || !data.unipileAccountId) {
|
|
23
|
+
throw new Error("Missing required fields: gmailAccountId and unipileAccountId are required");
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
const sql = `
|
|
27
|
+
INSERT INTO public.unipile_gmail_accounts (
|
|
28
|
+
gmail_account_id,
|
|
29
|
+
unipile_account_id,
|
|
30
|
+
is_active,
|
|
31
|
+
connected_at,
|
|
32
|
+
last_synced_at,
|
|
33
|
+
metadata,
|
|
34
|
+
created_at,
|
|
35
|
+
updated_at
|
|
36
|
+
)
|
|
37
|
+
VALUES ($1, $2, $3, $4, $5, $6, NOW(), NOW())
|
|
38
|
+
RETURNING
|
|
39
|
+
id,
|
|
40
|
+
gmail_account_id,
|
|
41
|
+
unipile_account_id,
|
|
42
|
+
is_active,
|
|
43
|
+
connected_at,
|
|
44
|
+
last_synced_at,
|
|
45
|
+
metadata,
|
|
46
|
+
created_at,
|
|
47
|
+
updated_at
|
|
48
|
+
`;
|
|
49
|
+
const result = await (0, pg_client_1.queryOne)(db, sql, [
|
|
50
|
+
data.gmailAccountId,
|
|
51
|
+
data.unipileAccountId,
|
|
52
|
+
data.isActive ?? true,
|
|
53
|
+
data.connectedAt || new Date(),
|
|
54
|
+
data.lastSyncedAt || null,
|
|
55
|
+
JSON.stringify(data.metadata || {}),
|
|
56
|
+
]);
|
|
57
|
+
if (!result) {
|
|
58
|
+
throw new Error("Failed to create Unipile Gmail account");
|
|
59
|
+
}
|
|
60
|
+
return result;
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
if (error instanceof Error && error.message.includes("unique constraint")) {
|
|
64
|
+
throw new Error(`Gmail account already has a Unipile account linked`);
|
|
65
|
+
}
|
|
66
|
+
throw new Error(`Failed to create Unipile Gmail account: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Creates or updates a Unipile Gmail account (upsert)
|
|
71
|
+
*/
|
|
72
|
+
async function upsertUnipileGmailAccount(db, data) {
|
|
73
|
+
if (!data.gmailAccountId || !data.unipileAccountId) {
|
|
74
|
+
throw new Error("Missing required fields: gmailAccountId and unipileAccountId are required");
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
const sql = `
|
|
78
|
+
INSERT INTO public.unipile_gmail_accounts (
|
|
79
|
+
gmail_account_id,
|
|
80
|
+
unipile_account_id,
|
|
81
|
+
is_active,
|
|
82
|
+
connected_at,
|
|
83
|
+
last_synced_at,
|
|
84
|
+
metadata,
|
|
85
|
+
created_at,
|
|
86
|
+
updated_at
|
|
87
|
+
)
|
|
88
|
+
VALUES ($1, $2, $3, $4, $5, $6, NOW(), NOW())
|
|
89
|
+
ON CONFLICT (gmail_account_id)
|
|
90
|
+
DO UPDATE SET
|
|
91
|
+
unipile_account_id = EXCLUDED.unipile_account_id,
|
|
92
|
+
is_active = EXCLUDED.is_active,
|
|
93
|
+
connected_at = EXCLUDED.connected_at,
|
|
94
|
+
last_synced_at = EXCLUDED.last_synced_at,
|
|
95
|
+
metadata = EXCLUDED.metadata,
|
|
96
|
+
updated_at = NOW()
|
|
97
|
+
RETURNING
|
|
98
|
+
id,
|
|
99
|
+
gmail_account_id,
|
|
100
|
+
unipile_account_id,
|
|
101
|
+
is_active,
|
|
102
|
+
connected_at,
|
|
103
|
+
last_synced_at,
|
|
104
|
+
metadata,
|
|
105
|
+
created_at,
|
|
106
|
+
updated_at
|
|
107
|
+
`;
|
|
108
|
+
const result = await (0, pg_client_1.queryOne)(db, sql, [
|
|
109
|
+
data.gmailAccountId,
|
|
110
|
+
data.unipileAccountId,
|
|
111
|
+
data.isActive ?? true,
|
|
112
|
+
data.connectedAt || new Date(),
|
|
113
|
+
data.lastSyncedAt || null,
|
|
114
|
+
JSON.stringify(data.metadata || {}),
|
|
115
|
+
]);
|
|
116
|
+
if (!result) {
|
|
117
|
+
throw new Error("Failed to upsert Unipile Gmail account");
|
|
118
|
+
}
|
|
119
|
+
return result;
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
throw new Error(`Failed to upsert Unipile Gmail account: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Gets a Unipile Gmail account by Gmail account ID
|
|
127
|
+
*/
|
|
128
|
+
async function getUnipileGmailAccountByGmailId(db, gmailAccountId) {
|
|
129
|
+
const sql = `
|
|
130
|
+
SELECT
|
|
131
|
+
id,
|
|
132
|
+
gmail_account_id,
|
|
133
|
+
unipile_account_id,
|
|
134
|
+
is_active,
|
|
135
|
+
connected_at,
|
|
136
|
+
last_synced_at,
|
|
137
|
+
metadata,
|
|
138
|
+
created_at,
|
|
139
|
+
updated_at
|
|
140
|
+
FROM public.unipile_gmail_accounts
|
|
141
|
+
WHERE gmail_account_id = $1
|
|
142
|
+
`;
|
|
143
|
+
return (0, pg_client_1.queryOne)(db, sql, [gmailAccountId]);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Gets a Unipile Gmail account by Unipile account ID
|
|
147
|
+
*/
|
|
148
|
+
async function getUnipileGmailAccountByUnipileId(db, unipileAccountId) {
|
|
149
|
+
const sql = `
|
|
150
|
+
SELECT
|
|
151
|
+
id,
|
|
152
|
+
gmail_account_id,
|
|
153
|
+
unipile_account_id,
|
|
154
|
+
is_active,
|
|
155
|
+
connected_at,
|
|
156
|
+
last_synced_at,
|
|
157
|
+
metadata,
|
|
158
|
+
created_at,
|
|
159
|
+
updated_at
|
|
160
|
+
FROM public.unipile_gmail_accounts
|
|
161
|
+
WHERE unipile_account_id = $1
|
|
162
|
+
`;
|
|
163
|
+
return (0, pg_client_1.queryOne)(db, sql, [unipileAccountId]);
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Updates a Unipile Gmail account
|
|
167
|
+
*/
|
|
168
|
+
async function updateUnipileGmailAccount(db, id, data) {
|
|
169
|
+
const updates = [];
|
|
170
|
+
const values = [];
|
|
171
|
+
let paramIndex = 1;
|
|
172
|
+
if (data.isActive !== undefined) {
|
|
173
|
+
updates.push(`is_active = $${paramIndex++}`);
|
|
174
|
+
values.push(data.isActive);
|
|
175
|
+
}
|
|
176
|
+
if (data.lastSyncedAt !== undefined) {
|
|
177
|
+
updates.push(`last_synced_at = $${paramIndex++}`);
|
|
178
|
+
values.push(data.lastSyncedAt);
|
|
179
|
+
}
|
|
180
|
+
if (data.metadata !== undefined) {
|
|
181
|
+
updates.push(`metadata = $${paramIndex++}`);
|
|
182
|
+
values.push(JSON.stringify(data.metadata));
|
|
183
|
+
}
|
|
184
|
+
if (updates.length === 0) {
|
|
185
|
+
throw new Error("No fields to update");
|
|
186
|
+
}
|
|
187
|
+
updates.push(`updated_at = NOW()`);
|
|
188
|
+
values.push(id);
|
|
189
|
+
const sql = `
|
|
190
|
+
UPDATE public.unipile_gmail_accounts
|
|
191
|
+
SET ${updates.join(', ')}
|
|
192
|
+
WHERE id = $${paramIndex}
|
|
193
|
+
RETURNING
|
|
194
|
+
id,
|
|
195
|
+
gmail_account_id,
|
|
196
|
+
unipile_account_id,
|
|
197
|
+
is_active,
|
|
198
|
+
connected_at,
|
|
199
|
+
last_synced_at,
|
|
200
|
+
metadata,
|
|
201
|
+
created_at,
|
|
202
|
+
updated_at
|
|
203
|
+
`;
|
|
204
|
+
const result = await (0, pg_client_1.queryOne)(db, sql, values);
|
|
205
|
+
if (!result) {
|
|
206
|
+
throw new Error("Unipile Gmail account not found");
|
|
207
|
+
}
|
|
208
|
+
return result;
|
|
209
|
+
}
|
|
210
|
+
//# sourceMappingURL=unipile-gmail-account-operations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unipile-gmail-account-operations.js","sourceRoot":"","sources":["../../src/utils/unipile-gmail-account-operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* =============================================================================
|
|
3
|
+
* UNIPILE LINKEDIN ACCOUNT OPERATIONS UTILITIES
|
|
4
|
+
* =============================================================================
|
|
5
|
+
* Utility functions for creating and managing Unipile LinkedIn accounts
|
|
6
|
+
*/
|
|
7
|
+
import { Pool, PoolClient } from 'pg';
|
|
8
|
+
import type { Database } from "../lib/db";
|
|
9
|
+
export interface UnipileLinkedInAccount {
|
|
10
|
+
id: number;
|
|
11
|
+
linkedinAccountId: number;
|
|
12
|
+
unipileAccountId: string;
|
|
13
|
+
accountType: 'linkedin_regular' | 'linkedin_sales_navigator';
|
|
14
|
+
isActive: boolean;
|
|
15
|
+
connectedAt: Date | null;
|
|
16
|
+
lastSyncedAt: Date | null;
|
|
17
|
+
metadata: Record<string, any>;
|
|
18
|
+
createdAt: Date;
|
|
19
|
+
updatedAt: Date;
|
|
20
|
+
}
|
|
21
|
+
export interface CreateUnipileLinkedInAccountData {
|
|
22
|
+
linkedinAccountId: number;
|
|
23
|
+
unipileAccountId: string;
|
|
24
|
+
accountType?: 'linkedin_regular' | 'linkedin_sales_navigator';
|
|
25
|
+
isActive?: boolean;
|
|
26
|
+
connectedAt?: Date;
|
|
27
|
+
lastSyncedAt?: Date;
|
|
28
|
+
metadata?: Record<string, any>;
|
|
29
|
+
}
|
|
30
|
+
export interface UpdateUnipileLinkedInAccountData {
|
|
31
|
+
isActive?: boolean;
|
|
32
|
+
lastSyncedAt?: Date;
|
|
33
|
+
metadata?: Record<string, any>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Creates a new Unipile LinkedIn account record
|
|
37
|
+
*/
|
|
38
|
+
export declare function createUnipileLinkedInAccount(db: Database | Pool | PoolClient, data: CreateUnipileLinkedInAccountData): Promise<UnipileLinkedInAccount>;
|
|
39
|
+
/**
|
|
40
|
+
* Creates or updates a Unipile LinkedIn account (upsert)
|
|
41
|
+
*/
|
|
42
|
+
export declare function upsertUnipileLinkedInAccount(db: Database | Pool | PoolClient, data: CreateUnipileLinkedInAccountData): Promise<UnipileLinkedInAccount>;
|
|
43
|
+
/**
|
|
44
|
+
* Gets a Unipile LinkedIn account by LinkedIn account ID
|
|
45
|
+
*/
|
|
46
|
+
export declare function getUnipileLinkedInAccountByLinkedInId(db: Database | Pool | PoolClient, linkedinAccountId: number): Promise<UnipileLinkedInAccount | null>;
|
|
47
|
+
/**
|
|
48
|
+
* Gets a Unipile LinkedIn account by Unipile account ID
|
|
49
|
+
*/
|
|
50
|
+
export declare function getUnipileLinkedInAccountByUnipileId(db: Database | Pool | PoolClient, unipileAccountId: string): Promise<UnipileLinkedInAccount | null>;
|
|
51
|
+
/**
|
|
52
|
+
* Updates a Unipile LinkedIn account
|
|
53
|
+
*/
|
|
54
|
+
export declare function updateUnipileLinkedInAccount(db: Database | Pool | PoolClient, id: number, data: UpdateUnipileLinkedInAccountData): Promise<UnipileLinkedInAccount>;
|
|
55
|
+
//# sourceMappingURL=unipile-linkedin-account-operations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unipile-linkedin-account-operations.d.ts","sourceRoot":"","sources":["../../src/utils/unipile-linkedin-account-operations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEtC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAM1C,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,kBAAkB,GAAG,0BAA0B,CAAC;IAC7D,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,gCAAgC;IAC/C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,kBAAkB,GAAG,0BAA0B,CAAC;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAMD;;GAEG;AACH,wBAAsB,4BAA4B,CAChD,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU,EAChC,IAAI,EAAE,gCAAgC,GACrC,OAAO,CAAC,sBAAsB,CAAC,CA2DjC;AAED;;GAEG;AACH,wBAAsB,4BAA4B,CAChD,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU,EAChC,IAAI,EAAE,gCAAgC,GACrC,OAAO,CAAC,sBAAsB,CAAC,CAiEjC;AAED;;GAEG;AACH,wBAAsB,qCAAqC,CACzD,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU,EAChC,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAkBxC;AAED;;GAEG;AACH,wBAAsB,oCAAoC,CACxD,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU,EAChC,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAkBxC;AAED;;GAEG;AACH,wBAAsB,4BAA4B,CAChD,EAAE,EAAE,QAAQ,GAAG,IAAI,GAAG,UAAU,EAChC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,gCAAgC,GACrC,OAAO,CAAC,sBAAsB,CAAC,CAuDjC"}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* =============================================================================
|
|
4
|
+
* UNIPILE LINKEDIN ACCOUNT OPERATIONS UTILITIES
|
|
5
|
+
* =============================================================================
|
|
6
|
+
* Utility functions for creating and managing Unipile LinkedIn accounts
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.createUnipileLinkedInAccount = createUnipileLinkedInAccount;
|
|
10
|
+
exports.upsertUnipileLinkedInAccount = upsertUnipileLinkedInAccount;
|
|
11
|
+
exports.getUnipileLinkedInAccountByLinkedInId = getUnipileLinkedInAccountByLinkedInId;
|
|
12
|
+
exports.getUnipileLinkedInAccountByUnipileId = getUnipileLinkedInAccountByUnipileId;
|
|
13
|
+
exports.updateUnipileLinkedInAccount = updateUnipileLinkedInAccount;
|
|
14
|
+
const pg_client_1 = require("../lib/pg-client");
|
|
15
|
+
// =============================================================================
|
|
16
|
+
// UNIPILE LINKEDIN ACCOUNT OPERATIONS
|
|
17
|
+
// =============================================================================
|
|
18
|
+
/**
|
|
19
|
+
* Creates a new Unipile LinkedIn account record
|
|
20
|
+
*/
|
|
21
|
+
async function createUnipileLinkedInAccount(db, data) {
|
|
22
|
+
if (!data.linkedinAccountId || !data.unipileAccountId) {
|
|
23
|
+
throw new Error("Missing required fields: linkedinAccountId and unipileAccountId are required");
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
const sql = `
|
|
27
|
+
INSERT INTO public.unipile_linkedin_accounts (
|
|
28
|
+
linkedin_account_id,
|
|
29
|
+
unipile_account_id,
|
|
30
|
+
account_type,
|
|
31
|
+
is_active,
|
|
32
|
+
connected_at,
|
|
33
|
+
last_synced_at,
|
|
34
|
+
metadata,
|
|
35
|
+
created_at,
|
|
36
|
+
updated_at
|
|
37
|
+
)
|
|
38
|
+
VALUES ($1, $2, $3, $4, $5, $6, $7, NOW(), NOW())
|
|
39
|
+
RETURNING
|
|
40
|
+
id,
|
|
41
|
+
linkedin_account_id,
|
|
42
|
+
unipile_account_id,
|
|
43
|
+
account_type,
|
|
44
|
+
is_active,
|
|
45
|
+
connected_at,
|
|
46
|
+
last_synced_at,
|
|
47
|
+
metadata,
|
|
48
|
+
created_at,
|
|
49
|
+
updated_at
|
|
50
|
+
`;
|
|
51
|
+
const result = await (0, pg_client_1.queryOne)(db, sql, [
|
|
52
|
+
data.linkedinAccountId,
|
|
53
|
+
data.unipileAccountId,
|
|
54
|
+
data.accountType || 'linkedin_regular',
|
|
55
|
+
data.isActive ?? true,
|
|
56
|
+
data.connectedAt || new Date(),
|
|
57
|
+
data.lastSyncedAt || null,
|
|
58
|
+
JSON.stringify(data.metadata || {}),
|
|
59
|
+
]);
|
|
60
|
+
if (!result) {
|
|
61
|
+
throw new Error("Failed to create Unipile LinkedIn account");
|
|
62
|
+
}
|
|
63
|
+
return result;
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
if (error instanceof Error && error.message.includes("unique constraint")) {
|
|
67
|
+
throw new Error(`LinkedIn account already has a Unipile account linked`);
|
|
68
|
+
}
|
|
69
|
+
throw new Error(`Failed to create Unipile LinkedIn account: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Creates or updates a Unipile LinkedIn account (upsert)
|
|
74
|
+
*/
|
|
75
|
+
async function upsertUnipileLinkedInAccount(db, data) {
|
|
76
|
+
if (!data.linkedinAccountId || !data.unipileAccountId) {
|
|
77
|
+
throw new Error("Missing required fields: linkedinAccountId and unipileAccountId are required");
|
|
78
|
+
}
|
|
79
|
+
try {
|
|
80
|
+
const sql = `
|
|
81
|
+
INSERT INTO public.unipile_linkedin_accounts (
|
|
82
|
+
linkedin_account_id,
|
|
83
|
+
unipile_account_id,
|
|
84
|
+
account_type,
|
|
85
|
+
is_active,
|
|
86
|
+
connected_at,
|
|
87
|
+
last_synced_at,
|
|
88
|
+
metadata,
|
|
89
|
+
created_at,
|
|
90
|
+
updated_at
|
|
91
|
+
)
|
|
92
|
+
VALUES ($1, $2, $3, $4, $5, $6, $7, NOW(), NOW())
|
|
93
|
+
ON CONFLICT (linkedin_account_id)
|
|
94
|
+
DO UPDATE SET
|
|
95
|
+
unipile_account_id = EXCLUDED.unipile_account_id,
|
|
96
|
+
account_type = EXCLUDED.account_type,
|
|
97
|
+
is_active = EXCLUDED.is_active,
|
|
98
|
+
connected_at = EXCLUDED.connected_at,
|
|
99
|
+
last_synced_at = EXCLUDED.last_synced_at,
|
|
100
|
+
metadata = EXCLUDED.metadata,
|
|
101
|
+
updated_at = NOW()
|
|
102
|
+
RETURNING
|
|
103
|
+
id,
|
|
104
|
+
linkedin_account_id,
|
|
105
|
+
unipile_account_id,
|
|
106
|
+
account_type,
|
|
107
|
+
is_active,
|
|
108
|
+
connected_at,
|
|
109
|
+
last_synced_at,
|
|
110
|
+
metadata,
|
|
111
|
+
created_at,
|
|
112
|
+
updated_at
|
|
113
|
+
`;
|
|
114
|
+
const result = await (0, pg_client_1.queryOne)(db, sql, [
|
|
115
|
+
data.linkedinAccountId,
|
|
116
|
+
data.unipileAccountId,
|
|
117
|
+
data.accountType || 'linkedin_regular',
|
|
118
|
+
data.isActive ?? true,
|
|
119
|
+
data.connectedAt || new Date(),
|
|
120
|
+
data.lastSyncedAt || null,
|
|
121
|
+
JSON.stringify(data.metadata || {}),
|
|
122
|
+
]);
|
|
123
|
+
if (!result) {
|
|
124
|
+
throw new Error("Failed to upsert Unipile LinkedIn account");
|
|
125
|
+
}
|
|
126
|
+
return result;
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
throw new Error(`Failed to upsert Unipile LinkedIn account: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Gets a Unipile LinkedIn account by LinkedIn account ID
|
|
134
|
+
*/
|
|
135
|
+
async function getUnipileLinkedInAccountByLinkedInId(db, linkedinAccountId) {
|
|
136
|
+
const sql = `
|
|
137
|
+
SELECT
|
|
138
|
+
id,
|
|
139
|
+
linkedin_account_id,
|
|
140
|
+
unipile_account_id,
|
|
141
|
+
account_type,
|
|
142
|
+
is_active,
|
|
143
|
+
connected_at,
|
|
144
|
+
last_synced_at,
|
|
145
|
+
metadata,
|
|
146
|
+
created_at,
|
|
147
|
+
updated_at
|
|
148
|
+
FROM public.unipile_linkedin_accounts
|
|
149
|
+
WHERE linkedin_account_id = $1
|
|
150
|
+
`;
|
|
151
|
+
return (0, pg_client_1.queryOne)(db, sql, [linkedinAccountId]);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Gets a Unipile LinkedIn account by Unipile account ID
|
|
155
|
+
*/
|
|
156
|
+
async function getUnipileLinkedInAccountByUnipileId(db, unipileAccountId) {
|
|
157
|
+
const sql = `
|
|
158
|
+
SELECT
|
|
159
|
+
id,
|
|
160
|
+
linkedin_account_id,
|
|
161
|
+
unipile_account_id,
|
|
162
|
+
account_type,
|
|
163
|
+
is_active,
|
|
164
|
+
connected_at,
|
|
165
|
+
last_synced_at,
|
|
166
|
+
metadata,
|
|
167
|
+
created_at,
|
|
168
|
+
updated_at
|
|
169
|
+
FROM public.unipile_linkedin_accounts
|
|
170
|
+
WHERE unipile_account_id = $1
|
|
171
|
+
`;
|
|
172
|
+
return (0, pg_client_1.queryOne)(db, sql, [unipileAccountId]);
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Updates a Unipile LinkedIn account
|
|
176
|
+
*/
|
|
177
|
+
async function updateUnipileLinkedInAccount(db, id, data) {
|
|
178
|
+
const updates = [];
|
|
179
|
+
const values = [];
|
|
180
|
+
let paramIndex = 1;
|
|
181
|
+
if (data.isActive !== undefined) {
|
|
182
|
+
updates.push(`is_active = $${paramIndex++}`);
|
|
183
|
+
values.push(data.isActive);
|
|
184
|
+
}
|
|
185
|
+
if (data.lastSyncedAt !== undefined) {
|
|
186
|
+
updates.push(`last_synced_at = $${paramIndex++}`);
|
|
187
|
+
values.push(data.lastSyncedAt);
|
|
188
|
+
}
|
|
189
|
+
if (data.metadata !== undefined) {
|
|
190
|
+
updates.push(`metadata = $${paramIndex++}`);
|
|
191
|
+
values.push(JSON.stringify(data.metadata));
|
|
192
|
+
}
|
|
193
|
+
if (updates.length === 0) {
|
|
194
|
+
throw new Error("No fields to update");
|
|
195
|
+
}
|
|
196
|
+
updates.push(`updated_at = NOW()`);
|
|
197
|
+
values.push(id);
|
|
198
|
+
const sql = `
|
|
199
|
+
UPDATE public.unipile_linkedin_accounts
|
|
200
|
+
SET ${updates.join(', ')}
|
|
201
|
+
WHERE id = $${paramIndex}
|
|
202
|
+
RETURNING
|
|
203
|
+
id,
|
|
204
|
+
linkedin_account_id,
|
|
205
|
+
unipile_account_id,
|
|
206
|
+
account_type,
|
|
207
|
+
is_active,
|
|
208
|
+
connected_at,
|
|
209
|
+
last_synced_at,
|
|
210
|
+
metadata,
|
|
211
|
+
created_at,
|
|
212
|
+
updated_at
|
|
213
|
+
`;
|
|
214
|
+
const result = await (0, pg_client_1.queryOne)(db, sql, values);
|
|
215
|
+
if (!result) {
|
|
216
|
+
throw new Error("Unipile LinkedIn account not found");
|
|
217
|
+
}
|
|
218
|
+
return result;
|
|
219
|
+
}
|
|
220
|
+
//# sourceMappingURL=unipile-linkedin-account-operations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unipile-linkedin-account-operations.js","sourceRoot":"","sources":["../../src/utils/unipile-linkedin-account-operations.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA8CH,oEA8DC;AAKD,oEAoEC;AAKD,sFAqBC;AAKD,oFAqBC;AAKD,oEA2DC;AAtSD,gDAAmD;AAoCnD,gFAAgF;AAChF,sCAAsC;AACtC,gFAAgF;AAEhF;;GAEG;AACI,KAAK,UAAU,4BAA4B,CAChD,EAAgC,EAChC,IAAsC;IAEtC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;IAClG,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;KAwBX,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAQ,EAC3B,EAAuB,EACvB,GAAG,EACH;YACE,IAAI,CAAC,iBAAiB;YACtB,IAAI,CAAC,gBAAgB;YACrB,IAAI,CAAC,WAAW,IAAI,kBAAkB;YACtC,IAAI,CAAC,QAAQ,IAAI,IAAI;YACrB,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,EAAE;YAC9B,IAAI,CAAC,YAAY,IAAI,IAAI;YACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;SACpC,CACF,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC1E,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,IAAI,KAAK,CACb,8CAA8C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACzG,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,4BAA4B,CAChD,EAAgC,EAChC,IAAsC;IAEtC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;IAClG,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiCX,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAQ,EAC3B,EAAuB,EACvB,GAAG,EACH;YACE,IAAI,CAAC,iBAAiB;YACtB,IAAI,CAAC,gBAAgB;YACrB,IAAI,CAAC,WAAW,IAAI,kBAAkB;YACtC,IAAI,CAAC,QAAQ,IAAI,IAAI;YACrB,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,EAAE;YAC9B,IAAI,CAAC,YAAY,IAAI,IAAI;YACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;SACpC,CACF,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,8CAA8C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACzG,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,qCAAqC,CACzD,EAAgC,EAChC,iBAAyB;IAEzB,MAAM,GAAG,GAAG;;;;;;;;;;;;;;GAcX,CAAC;IAEF,OAAO,IAAA,oBAAQ,EAAyB,EAAuB,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,oCAAoC,CACxD,EAAgC,EAChC,gBAAwB;IAExB,MAAM,GAAG,GAAG;;;;;;;;;;;;;;GAcX,CAAC;IAEF,OAAO,IAAA,oBAAQ,EAAyB,EAAuB,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,4BAA4B,CAChD,EAAgC,EAChC,EAAU,EACV,IAAsC;IAEtC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAU,EAAE,CAAC;IACzB,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,gBAAgB,UAAU,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,qBAAqB,UAAU,EAAE,EAAE,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,eAAe,UAAU,EAAE,EAAE,CAAC,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACnC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,GAAG,GAAG;;UAEJ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;kBACV,UAAU;;;;;;;;;;;;GAYzB,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAQ,EAC3B,EAAuB,EACvB,GAAG,EACH,MAAM,CACP,CAAC;IAEF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/package.json
CHANGED