@hasna/emails 0.1.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/dashboard/index.html +479 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +55403 -0
- package/dist/db/addresses.d.ts +10 -0
- package/dist/db/addresses.d.ts.map +1 -0
- package/dist/db/database.d.ts +8 -0
- package/dist/db/database.d.ts.map +1 -0
- package/dist/db/domains.d.ts +10 -0
- package/dist/db/domains.d.ts.map +1 -0
- package/dist/db/emails.d.ts +8 -0
- package/dist/db/emails.d.ts.map +1 -0
- package/dist/db/events.d.ts +16 -0
- package/dist/db/events.d.ts.map +1 -0
- package/dist/db/providers.d.ts +11 -0
- package/dist/db/providers.d.ts.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +54149 -0
- package/dist/lib/dns.d.ts +5 -0
- package/dist/lib/dns.d.ts.map +1 -0
- package/dist/lib/stats.d.ts +5 -0
- package/dist/lib/stats.d.ts.map +1 -0
- package/dist/lib/sync.d.ts +4 -0
- package/dist/lib/sync.d.ts.map +1 -0
- package/dist/mcp/index.d.ts +3 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +58282 -0
- package/dist/providers/index.d.ts +7 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/interface.d.ts +37 -0
- package/dist/providers/interface.d.ts.map +1 -0
- package/dist/providers/resend.d.ts +24 -0
- package/dist/providers/resend.d.ts.map +1 -0
- package/dist/providers/ses.d.ts +23 -0
- package/dist/providers/ses.d.ts.map +1 -0
- package/dist/server/index.d.ts +3 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +54208 -0
- package/dist/server/serve.d.ts +6 -0
- package/dist/server/serve.d.ts.map +1 -0
- package/dist/types/index.d.ts +202 -0
- package/dist/types/index.d.ts.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
import type { CreateAddressInput, EmailAddress } from "../types/index.js";
|
|
3
|
+
export declare function createAddress(input: CreateAddressInput, db?: Database): EmailAddress;
|
|
4
|
+
export declare function getAddress(id: string, db?: Database): EmailAddress | null;
|
|
5
|
+
export declare function getAddressByEmail(provider_id: string, email: string, db?: Database): EmailAddress | null;
|
|
6
|
+
export declare function listAddresses(provider_id?: string, db?: Database): EmailAddress[];
|
|
7
|
+
export declare function updateAddress(id: string, input: Partial<Pick<EmailAddress, "display_name" | "verified">>, db?: Database): EmailAddress;
|
|
8
|
+
export declare function deleteAddress(id: string, db?: Database): boolean;
|
|
9
|
+
export declare function markVerified(id: string, db?: Database): EmailAddress;
|
|
10
|
+
//# sourceMappingURL=addresses.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addresses.d.ts","sourceRoot":"","sources":["../../src/db/addresses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAc,kBAAkB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAWtF,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,YAAY,CAYpF;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,IAAI,CAKzE;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,IAAI,CAKxG;AAED,wBAAgB,aAAa,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,YAAY,EAAE,CAQjF;AAED,wBAAgB,aAAa,CAC3B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,GAAG,UAAU,CAAC,CAAC,EAC/D,EAAE,CAAC,EAAE,QAAQ,GACZ,YAAY,CAed;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAIhE;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,YAAY,CAOpE"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Database } from "bun:sqlite";
|
|
2
|
+
export declare function getDatabase(dbPath?: string): Database;
|
|
3
|
+
export declare function closeDatabase(): void;
|
|
4
|
+
export declare function resetDatabase(): void;
|
|
5
|
+
export declare function now(): string;
|
|
6
|
+
export declare function uuid(): string;
|
|
7
|
+
export declare function resolvePartialId(db: Database, table: string, partialId: string): string | null;
|
|
8
|
+
//# sourceMappingURL=database.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA0HtC,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAerD;AA+CD,wBAAgB,aAAa,IAAI,IAAI,CAKpC;AAED,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED,wBAAgB,GAAG,IAAI,MAAM,CAE5B;AAED,wBAAgB,IAAI,IAAI,MAAM,CAE7B;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAW9F"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
import type { Domain, DnsStatus } from "../types/index.js";
|
|
3
|
+
export declare function createDomain(provider_id: string, domain: string, db?: Database): Domain;
|
|
4
|
+
export declare function getDomain(id: string, db?: Database): Domain | null;
|
|
5
|
+
export declare function getDomainByName(provider_id: string, domain: string, db?: Database): Domain | null;
|
|
6
|
+
export declare function listDomains(provider_id?: string, db?: Database): Domain[];
|
|
7
|
+
export declare function updateDomain(id: string, input: Partial<Pick<Domain, "dkim_status" | "spf_status" | "dmarc_status" | "verified_at">>, db?: Database): Domain;
|
|
8
|
+
export declare function deleteDomain(id: string, db?: Database): boolean;
|
|
9
|
+
export declare function updateDnsStatus(id: string, dkim: DnsStatus, spf: DnsStatus, dmarc: DnsStatus, db?: Database): Domain;
|
|
10
|
+
//# sourceMappingURL=domains.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domains.d.ts","sourceRoot":"","sources":["../../src/db/domains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAyB3D,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,EAAE,CAAC,EAAE,QAAQ,GACZ,MAAM,CAYR;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAKlE;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAKjG;AAED,wBAAgB,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,EAAE,CAQzE;AAED,wBAAgB,YAAY,CAC1B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,GAAG,YAAY,GAAG,cAAc,GAAG,aAAa,CAAC,CAAC,EAC3F,EAAE,CAAC,EAAE,QAAQ,GACZ,MAAM,CAiBR;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAI/D;AAED,wBAAgB,eAAe,CAC7B,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,SAAS,EAChB,EAAE,CAAC,EAAE,QAAQ,GACZ,MAAM,CAcR"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
import type { Email, EmailFilter, EmailStatus, SendEmailOptions } from "../types/index.js";
|
|
3
|
+
export declare function createEmail(provider_id: string, opts: SendEmailOptions, provider_message_id?: string, db?: Database): Email;
|
|
4
|
+
export declare function getEmail(id: string, db?: Database): Email | null;
|
|
5
|
+
export declare function listEmails(filter?: EmailFilter, db?: Database): Email[];
|
|
6
|
+
export declare function updateEmailStatus(id: string, status: EmailStatus, db?: Database): Email;
|
|
7
|
+
export declare function deleteEmail(id: string, db?: Database): boolean;
|
|
8
|
+
//# sourceMappingURL=emails.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emails.d.ts","sourceRoot":"","sources":["../../src/db/emails.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAY,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAgBrG,wBAAgB,WAAW,CACzB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,gBAAgB,EACtB,mBAAmB,CAAC,EAAE,MAAM,EAC5B,EAAE,CAAC,EAAE,QAAQ,GACZ,KAAK,CAgCP;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,IAAI,CAKhE;AAED,wBAAgB,UAAU,CAAC,MAAM,GAAE,WAAgB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,CAoD3E;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK,CAOvF;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAI9D"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
import type { EmailEvent, EventFilter, EventType } from "../types/index.js";
|
|
3
|
+
export interface CreateEventInput {
|
|
4
|
+
email_id?: string | null;
|
|
5
|
+
provider_id: string;
|
|
6
|
+
provider_event_id?: string | null;
|
|
7
|
+
type: EventType;
|
|
8
|
+
recipient?: string | null;
|
|
9
|
+
metadata?: Record<string, unknown>;
|
|
10
|
+
occurred_at: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function createEvent(input: CreateEventInput, db?: Database): EmailEvent;
|
|
13
|
+
export declare function listEvents(filter?: EventFilter, db?: Database): EmailEvent[];
|
|
14
|
+
export declare function getEventsByEmail(email_id: string, db?: Database): EmailEvent[];
|
|
15
|
+
export declare function upsertEvent(input: CreateEventInput, db?: Database): EmailEvent;
|
|
16
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/db/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAY,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAWtF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,UAAU,CAuB9E;AAED,wBAAgB,UAAU,CAAC,MAAM,GAAE,WAAgB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,UAAU,EAAE,CA+ChF;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,UAAU,EAAE,CAE9E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,UAAU,CAe9E"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
import type { CreateProviderInput, Provider } from "../types/index.js";
|
|
3
|
+
export declare function createProvider(input: CreateProviderInput, db?: Database): Provider;
|
|
4
|
+
export declare function getProvider(id: string, db?: Database): Provider | null;
|
|
5
|
+
export declare function listProviders(db?: Database): Provider[];
|
|
6
|
+
export declare function updateProvider(id: string, input: Partial<CreateProviderInput> & {
|
|
7
|
+
active?: boolean;
|
|
8
|
+
}, db?: Database): Provider;
|
|
9
|
+
export declare function deleteProvider(id: string, db?: Database): boolean;
|
|
10
|
+
export declare function getActiveProvider(db?: Database): Provider;
|
|
11
|
+
//# sourceMappingURL=providers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/db/providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAe,MAAM,mBAAmB,CAAC;AAYpF,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAsBlF;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAKtE;AAED,wBAAgB,aAAa,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAIvD;AAED,wBAAgB,cAAc,CAC5B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,EAC1D,EAAE,CAAC,EAAE,QAAQ,GACZ,QAAQ,CAoBV;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAIjE;AAED,wBAAgB,iBAAiB,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAKzD"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type { Provider, ProviderType, CreateProviderInput, Domain, DnsStatus, DnsRecord, EmailAddress, CreateAddressInput, Attachment, SendEmailOptions, Email, EmailStatus, EmailEvent, EventType, Stats, EmailFilter, EventFilter, } from "./types/index.js";
|
|
2
|
+
export { ProviderNotFoundError, DomainNotFoundError, AddressNotFoundError, EmailNotFoundError, ProviderConfigError, } from "./types/index.js";
|
|
3
|
+
export { createProvider, getProvider, listProviders, updateProvider, deleteProvider, getActiveProvider, } from "./db/providers.js";
|
|
4
|
+
export { createDomain, getDomain, getDomainByName, listDomains, updateDomain, deleteDomain, updateDnsStatus, } from "./db/domains.js";
|
|
5
|
+
export { createAddress, getAddress, getAddressByEmail, listAddresses, updateAddress, deleteAddress, markVerified, } from "./db/addresses.js";
|
|
6
|
+
export { createEmail, getEmail, listEmails, updateEmailStatus, deleteEmail, } from "./db/emails.js";
|
|
7
|
+
export { createEvent, listEvents, getEventsByEmail, upsertEvent, } from "./db/events.js";
|
|
8
|
+
export { getDatabase, closeDatabase, resetDatabase, uuid, now, resolvePartialId } from "./db/database.js";
|
|
9
|
+
export { getLocalStats, formatStatsTable } from "./lib/stats.js";
|
|
10
|
+
export { generateSpfRecord, generateDmarcRecord, formatDnsTable } from "./lib/dns.js";
|
|
11
|
+
export { syncProvider, syncAll } from "./lib/sync.js";
|
|
12
|
+
export { getAdapter } from "./providers/index.js";
|
|
13
|
+
export type { ProviderAdapter, RemoteDomain, RemoteAddress, RemoteEvent } from "./providers/interface.js";
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,mBAAmB,EACnB,MAAM,EACN,SAAS,EACT,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,KAAK,EACL,WAAW,EACX,UAAU,EACV,SAAS,EACT,KAAK,EACL,WAAW,EACX,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,cAAc,EACd,WAAW,EACX,aAAa,EACb,cAAc,EACd,cAAc,EACd,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,YAAY,EACZ,SAAS,EACT,eAAe,EACf,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,aAAa,EACb,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,WAAW,EACX,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAG1G,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC"}
|