@jobsearch-works/firestore-models 1.0.31 → 1.0.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -3
- package/dist/index.d.mts +0 -6
- package/dist/index.d.ts +0 -6
- package/dist/index.js +0 -57
- package/dist/index.mjs +0 -57
- package/package.json +1 -1
package/README.md
CHANGED
@@ -18,12 +18,26 @@ This library serves as a single source of truth for Firestore data structures ac
|
|
18
18
|
|
19
19
|
## Installation
|
20
20
|
|
21
|
+
The package is published on npm as [@jobsearch-works/firestore-models](https://www.npmjs.com/package/@jobsearch-works/firestore-models).
|
22
|
+
|
23
|
+
You can install it using npm:
|
24
|
+
|
25
|
+
```bash
|
26
|
+
npm install @jobsearch-works/firestore-models
|
27
|
+
```
|
28
|
+
|
29
|
+
For development purposes, you can also install directly from GitHub:
|
30
|
+
|
21
31
|
```bash
|
22
|
-
|
23
|
-
|
24
|
-
|
32
|
+
# Install from GitHub (for development only)
|
33
|
+
npm install github:jobsearch-works/firestore-models
|
34
|
+
|
35
|
+
# Or specify a particular commit/branch
|
36
|
+
npm install github:jobsearch-works/firestore-models#commit-hash
|
25
37
|
```
|
26
38
|
|
39
|
+
Note: Regular `npm update` won't update GitHub-hosted packages to the latest version. For production use, always use the npm package version.
|
40
|
+
|
27
41
|
## Project Structure
|
28
42
|
|
29
43
|
```
|
package/dist/index.d.mts
CHANGED
@@ -326,12 +326,6 @@ declare namespace GmailMessage {
|
|
326
326
|
}
|
327
327
|
const collection: (clientId: string) => string;
|
328
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
329
|
const createNew: (messageId: string, threadId?: string, payload?: Model["payload"], labelIds?: string[], snippet?: string, internalDate?: string) => Model;
|
336
330
|
}
|
337
331
|
|
package/dist/index.d.ts
CHANGED
@@ -326,12 +326,6 @@ declare namespace GmailMessage {
|
|
326
326
|
}
|
327
327
|
const collection: (clientId: string) => string;
|
328
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
329
|
const createNew: (messageId: string, threadId?: string, payload?: Model["payload"], labelIds?: string[], snippet?: string, internalDate?: string) => Model;
|
336
330
|
}
|
337
331
|
|
package/dist/index.js
CHANGED
@@ -382,63 +382,6 @@ var GmailMessage;
|
|
382
382
|
((GmailMessage2) => {
|
383
383
|
GmailMessage2.collection = (clientId) => `clientEmails/${clientId}/messages`;
|
384
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
385
|
GmailMessage2.createNew = (messageId, threadId, payload, labelIds, snippet, internalDate) => {
|
443
386
|
return {
|
444
387
|
messageId,
|
package/dist/index.mjs
CHANGED
@@ -346,63 +346,6 @@ var GmailMessage;
|
|
346
346
|
((GmailMessage2) => {
|
347
347
|
GmailMessage2.collection = (clientId) => `clientEmails/${clientId}/messages`;
|
348
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
349
|
GmailMessage2.createNew = (messageId, threadId, payload, labelIds, snippet, internalDate) => {
|
407
350
|
return {
|
408
351
|
messageId,
|
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.32",
|
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",
|