@jobsearch-works/firestore-models 1.0.30 → 1.0.31
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.mts +35 -1
- package/dist/index.d.ts +35 -1
- package/dist/index.js +77 -0
- package/dist/index.mjs +76 -0
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
@@ -301,4 +301,38 @@ declare namespace Agent {
|
|
301
301
|
const createNew: (name: string, email: string) => Agent.Model;
|
302
302
|
}
|
303
303
|
|
304
|
-
|
304
|
+
declare namespace GmailMessage {
|
305
|
+
interface Model extends BaseModel {
|
306
|
+
messageId: string;
|
307
|
+
threadId?: string;
|
308
|
+
labelIds?: string[];
|
309
|
+
snippet?: string;
|
310
|
+
internalDate?: string;
|
311
|
+
payload?: {
|
312
|
+
headers?: Array<{
|
313
|
+
name: string;
|
314
|
+
value: string;
|
315
|
+
}>;
|
316
|
+
body?: {
|
317
|
+
data?: string;
|
318
|
+
};
|
319
|
+
parts?: Array<{
|
320
|
+
mimeType?: string;
|
321
|
+
body?: {
|
322
|
+
data?: string;
|
323
|
+
};
|
324
|
+
}>;
|
325
|
+
};
|
326
|
+
}
|
327
|
+
const collection: (clientId: string) => string;
|
328
|
+
const document: (clientId: string, messageId: string) => string;
|
329
|
+
const extractBody: (email: Model) => string;
|
330
|
+
const extractReceivedDate: (email: Model) => Date;
|
331
|
+
const extractSubject: (email: Model) => string;
|
332
|
+
const extractFromAddress: (email: Model) => string;
|
333
|
+
const formatEmailDate: (email: Model) => string;
|
334
|
+
const getEmailSender: (email: Model) => string;
|
335
|
+
const createNew: (messageId: string, threadId?: string, payload?: Model["payload"], labelIds?: string[], snippet?: string, internalDate?: string) => Model;
|
336
|
+
}
|
337
|
+
|
338
|
+
export { Agent, Application, ApplicationQuestion, AuthUser, Client, ClientData, ClientLogin, ClientQuestion, GmailMessage, Vacancy, VacancySuggestion };
|
package/dist/index.d.ts
CHANGED
@@ -301,4 +301,38 @@ declare namespace Agent {
|
|
301
301
|
const createNew: (name: string, email: string) => Agent.Model;
|
302
302
|
}
|
303
303
|
|
304
|
-
|
304
|
+
declare namespace GmailMessage {
|
305
|
+
interface Model extends BaseModel {
|
306
|
+
messageId: string;
|
307
|
+
threadId?: string;
|
308
|
+
labelIds?: string[];
|
309
|
+
snippet?: string;
|
310
|
+
internalDate?: string;
|
311
|
+
payload?: {
|
312
|
+
headers?: Array<{
|
313
|
+
name: string;
|
314
|
+
value: string;
|
315
|
+
}>;
|
316
|
+
body?: {
|
317
|
+
data?: string;
|
318
|
+
};
|
319
|
+
parts?: Array<{
|
320
|
+
mimeType?: string;
|
321
|
+
body?: {
|
322
|
+
data?: string;
|
323
|
+
};
|
324
|
+
}>;
|
325
|
+
};
|
326
|
+
}
|
327
|
+
const collection: (clientId: string) => string;
|
328
|
+
const document: (clientId: string, messageId: string) => string;
|
329
|
+
const extractBody: (email: Model) => string;
|
330
|
+
const extractReceivedDate: (email: Model) => Date;
|
331
|
+
const extractSubject: (email: Model) => string;
|
332
|
+
const extractFromAddress: (email: Model) => string;
|
333
|
+
const formatEmailDate: (email: Model) => string;
|
334
|
+
const getEmailSender: (email: Model) => string;
|
335
|
+
const createNew: (messageId: string, threadId?: string, payload?: Model["payload"], labelIds?: string[], snippet?: string, internalDate?: string) => Model;
|
336
|
+
}
|
337
|
+
|
338
|
+
export { Agent, Application, ApplicationQuestion, AuthUser, Client, ClientData, ClientLogin, ClientQuestion, GmailMessage, Vacancy, VacancySuggestion };
|
package/dist/index.js
CHANGED
@@ -28,6 +28,7 @@ __export(src_exports, {
|
|
28
28
|
ClientData: () => ClientData,
|
29
29
|
ClientLogin: () => ClientLogin,
|
30
30
|
ClientQuestion: () => ClientQuestion,
|
31
|
+
GmailMessage: () => GmailMessage,
|
31
32
|
Vacancy: () => Vacancy,
|
32
33
|
VacancySuggestion: () => VacancySuggestion
|
33
34
|
});
|
@@ -375,6 +376,81 @@ var Agent;
|
|
375
376
|
};
|
376
377
|
};
|
377
378
|
})(Agent || (Agent = {}));
|
379
|
+
|
380
|
+
// src/models/GmailMessage.ts
|
381
|
+
var GmailMessage;
|
382
|
+
((GmailMessage2) => {
|
383
|
+
GmailMessage2.collection = (clientId) => `clientEmails/${clientId}/messages`;
|
384
|
+
GmailMessage2.document = (clientId, messageId) => `${(0, GmailMessage2.collection)(clientId)}/${messageId}`;
|
385
|
+
GmailMessage2.extractBody = (email) => {
|
386
|
+
const payload = email.payload;
|
387
|
+
if (!payload)
|
388
|
+
return "No body available";
|
389
|
+
const getTextContent = (parts) => {
|
390
|
+
for (const part of parts) {
|
391
|
+
if (part.mimeType === "text/plain" && part.body?.data) {
|
392
|
+
return Buffer.from(part.body.data, "base64").toString();
|
393
|
+
}
|
394
|
+
}
|
395
|
+
return "";
|
396
|
+
};
|
397
|
+
if (payload.parts && Array.isArray(payload.parts)) {
|
398
|
+
return getTextContent(payload.parts) || "No body available";
|
399
|
+
}
|
400
|
+
if (payload.body?.data) {
|
401
|
+
return Buffer.from(payload.body.data, "base64").toString();
|
402
|
+
}
|
403
|
+
return "No body available";
|
404
|
+
};
|
405
|
+
GmailMessage2.extractReceivedDate = (email) => {
|
406
|
+
const headers = email.payload?.headers || [];
|
407
|
+
const dateHeader = headers.find(
|
408
|
+
(header) => header.name.toLowerCase() === "date"
|
409
|
+
);
|
410
|
+
if (dateHeader?.value) {
|
411
|
+
const parsedDate = new Date(dateHeader.value);
|
412
|
+
if (!isNaN(parsedDate.getTime())) {
|
413
|
+
return parsedDate;
|
414
|
+
}
|
415
|
+
}
|
416
|
+
if (email.internalDate) {
|
417
|
+
return new Date(parseInt(email.internalDate, 10));
|
418
|
+
}
|
419
|
+
return /* @__PURE__ */ new Date();
|
420
|
+
};
|
421
|
+
GmailMessage2.extractSubject = (email) => {
|
422
|
+
const headers = email.payload?.headers || [];
|
423
|
+
const subjectHeader = headers.find(
|
424
|
+
(header) => header.name.toLowerCase() === "subject"
|
425
|
+
);
|
426
|
+
return subjectHeader?.value || "No subject available";
|
427
|
+
};
|
428
|
+
GmailMessage2.extractFromAddress = (email) => {
|
429
|
+
const headers = email.payload?.headers || [];
|
430
|
+
const fromHeader = headers.find(
|
431
|
+
(header) => header.name.toLowerCase() === "from"
|
432
|
+
);
|
433
|
+
return fromHeader?.value || "No sender available";
|
434
|
+
};
|
435
|
+
GmailMessage2.formatEmailDate = (email) => {
|
436
|
+
const date = (0, GmailMessage2.extractReceivedDate)(email);
|
437
|
+
return date.toLocaleString();
|
438
|
+
};
|
439
|
+
GmailMessage2.getEmailSender = (email) => {
|
440
|
+
return (0, GmailMessage2.extractFromAddress)(email);
|
441
|
+
};
|
442
|
+
GmailMessage2.createNew = (messageId, threadId, payload, labelIds, snippet, internalDate) => {
|
443
|
+
return {
|
444
|
+
messageId,
|
445
|
+
threadId,
|
446
|
+
payload,
|
447
|
+
labelIds,
|
448
|
+
snippet,
|
449
|
+
internalDate,
|
450
|
+
createdAt: /* @__PURE__ */ new Date()
|
451
|
+
};
|
452
|
+
};
|
453
|
+
})(GmailMessage || (GmailMessage = {}));
|
378
454
|
// Annotate the CommonJS export names for ESM import in node:
|
379
455
|
0 && (module.exports = {
|
380
456
|
Agent,
|
@@ -385,6 +461,7 @@ var Agent;
|
|
385
461
|
ClientData,
|
386
462
|
ClientLogin,
|
387
463
|
ClientQuestion,
|
464
|
+
GmailMessage,
|
388
465
|
Vacancy,
|
389
466
|
VacancySuggestion
|
390
467
|
});
|
package/dist/index.mjs
CHANGED
@@ -340,6 +340,81 @@ var Agent;
|
|
340
340
|
};
|
341
341
|
};
|
342
342
|
})(Agent || (Agent = {}));
|
343
|
+
|
344
|
+
// src/models/GmailMessage.ts
|
345
|
+
var GmailMessage;
|
346
|
+
((GmailMessage2) => {
|
347
|
+
GmailMessage2.collection = (clientId) => `clientEmails/${clientId}/messages`;
|
348
|
+
GmailMessage2.document = (clientId, messageId) => `${(0, GmailMessage2.collection)(clientId)}/${messageId}`;
|
349
|
+
GmailMessage2.extractBody = (email) => {
|
350
|
+
const payload = email.payload;
|
351
|
+
if (!payload)
|
352
|
+
return "No body available";
|
353
|
+
const getTextContent = (parts) => {
|
354
|
+
for (const part of parts) {
|
355
|
+
if (part.mimeType === "text/plain" && part.body?.data) {
|
356
|
+
return Buffer.from(part.body.data, "base64").toString();
|
357
|
+
}
|
358
|
+
}
|
359
|
+
return "";
|
360
|
+
};
|
361
|
+
if (payload.parts && Array.isArray(payload.parts)) {
|
362
|
+
return getTextContent(payload.parts) || "No body available";
|
363
|
+
}
|
364
|
+
if (payload.body?.data) {
|
365
|
+
return Buffer.from(payload.body.data, "base64").toString();
|
366
|
+
}
|
367
|
+
return "No body available";
|
368
|
+
};
|
369
|
+
GmailMessage2.extractReceivedDate = (email) => {
|
370
|
+
const headers = email.payload?.headers || [];
|
371
|
+
const dateHeader = headers.find(
|
372
|
+
(header) => header.name.toLowerCase() === "date"
|
373
|
+
);
|
374
|
+
if (dateHeader?.value) {
|
375
|
+
const parsedDate = new Date(dateHeader.value);
|
376
|
+
if (!isNaN(parsedDate.getTime())) {
|
377
|
+
return parsedDate;
|
378
|
+
}
|
379
|
+
}
|
380
|
+
if (email.internalDate) {
|
381
|
+
return new Date(parseInt(email.internalDate, 10));
|
382
|
+
}
|
383
|
+
return /* @__PURE__ */ new Date();
|
384
|
+
};
|
385
|
+
GmailMessage2.extractSubject = (email) => {
|
386
|
+
const headers = email.payload?.headers || [];
|
387
|
+
const subjectHeader = headers.find(
|
388
|
+
(header) => header.name.toLowerCase() === "subject"
|
389
|
+
);
|
390
|
+
return subjectHeader?.value || "No subject available";
|
391
|
+
};
|
392
|
+
GmailMessage2.extractFromAddress = (email) => {
|
393
|
+
const headers = email.payload?.headers || [];
|
394
|
+
const fromHeader = headers.find(
|
395
|
+
(header) => header.name.toLowerCase() === "from"
|
396
|
+
);
|
397
|
+
return fromHeader?.value || "No sender available";
|
398
|
+
};
|
399
|
+
GmailMessage2.formatEmailDate = (email) => {
|
400
|
+
const date = (0, GmailMessage2.extractReceivedDate)(email);
|
401
|
+
return date.toLocaleString();
|
402
|
+
};
|
403
|
+
GmailMessage2.getEmailSender = (email) => {
|
404
|
+
return (0, GmailMessage2.extractFromAddress)(email);
|
405
|
+
};
|
406
|
+
GmailMessage2.createNew = (messageId, threadId, payload, labelIds, snippet, internalDate) => {
|
407
|
+
return {
|
408
|
+
messageId,
|
409
|
+
threadId,
|
410
|
+
payload,
|
411
|
+
labelIds,
|
412
|
+
snippet,
|
413
|
+
internalDate,
|
414
|
+
createdAt: /* @__PURE__ */ new Date()
|
415
|
+
};
|
416
|
+
};
|
417
|
+
})(GmailMessage || (GmailMessage = {}));
|
343
418
|
export {
|
344
419
|
Agent,
|
345
420
|
Application,
|
@@ -349,6 +424,7 @@ export {
|
|
349
424
|
ClientData,
|
350
425
|
ClientLogin,
|
351
426
|
ClientQuestion,
|
427
|
+
GmailMessage,
|
352
428
|
Vacancy,
|
353
429
|
VacancySuggestion
|
354
430
|
};
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@jobsearch-works/firestore-models",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.31",
|
4
4
|
"description": "A shared library for standardizing Firestore document schemas and paths across multiple projects",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"types": "dist/index.d.ts",
|