@hasna/contacts 0.6.23 → 0.6.27
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 +61 -3
- package/dist/cli/commands/advanced.d.ts.map +1 -1
- package/dist/cli/commands/audience.d.ts +18 -0
- package/dist/cli/commands/audience.d.ts.map +1 -0
- package/dist/cli/commands/core.d.ts.map +1 -1
- package/dist/cli/commands/crm.d.ts.map +1 -1
- package/dist/cli/index.js +8728 -6044
- package/dist/cli/storage.d.ts.map +1 -1
- package/dist/cloud/http-storage.d.ts +88 -0
- package/dist/cloud/http-storage.d.ts.map +1 -0
- package/dist/db/audiences.d.ts +51 -0
- package/dist/db/audiences.d.ts.map +1 -0
- package/dist/db/companies.d.ts.map +1 -1
- package/dist/db/contacts.d.ts.map +1 -1
- package/dist/db/database.d.ts +1 -2
- package/dist/db/database.d.ts.map +1 -1
- package/dist/db/paths.d.ts +3 -0
- package/dist/db/paths.d.ts.map +1 -0
- package/dist/db/pg-migrations.d.ts.map +1 -1
- package/dist/db/storage.d.ts +1 -1
- package/dist/db/storage.d.ts.map +1 -1
- package/dist/db/tags.d.ts.map +1 -1
- package/dist/db/tombstones.d.ts +19 -0
- package/dist/db/tombstones.d.ts.map +1 -0
- package/dist/generated/storage-kit/health.d.ts +20 -0
- package/dist/generated/storage-kit/health.d.ts.map +1 -0
- package/dist/generated/storage-kit/index.d.ts +8 -0
- package/dist/generated/storage-kit/index.d.ts.map +1 -0
- package/dist/generated/storage-kit/migrations.d.ts +48 -0
- package/dist/generated/storage-kit/migrations.d.ts.map +1 -0
- package/dist/generated/storage-kit/mode.d.ts +48 -0
- package/dist/generated/storage-kit/mode.d.ts.map +1 -0
- package/dist/generated/storage-kit/pool.d.ts +34 -0
- package/dist/generated/storage-kit/pool.d.ts.map +1 -0
- package/dist/generated/storage-kit/query.d.ts +36 -0
- package/dist/generated/storage-kit/query.d.ts.map +1 -0
- package/dist/generated/storage-kit/tls.d.ts +26 -0
- package/dist/generated/storage-kit/tls.d.ts.map +1 -0
- package/dist/index.d.ts +6 -79
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4144 -4050
- package/dist/lib/audience-contract.d.ts +215 -0
- package/dist/lib/audience-contract.d.ts.map +1 -0
- package/dist/lib/mailery-sync.d.ts +46 -0
- package/dist/lib/mailery-sync.d.ts.map +1 -0
- package/dist/lib/package-version.d.ts +6 -0
- package/dist/lib/package-version.d.ts.map +1 -0
- package/dist/mcp/handlers/advanced.d.ts +5 -0
- package/dist/mcp/handlers/advanced.d.ts.map +1 -1
- package/dist/mcp/handlers/audience.d.ts +9 -0
- package/dist/mcp/handlers/audience.d.ts.map +1 -0
- package/dist/mcp/handlers/core.d.ts +4 -0
- package/dist/mcp/handlers/core.d.ts.map +1 -1
- package/dist/mcp/handlers/crm.d.ts +5 -0
- package/dist/mcp/handlers/crm.d.ts.map +1 -1
- package/dist/mcp/handlers/index.d.ts.map +1 -1
- package/dist/mcp/index.js +10963 -10178
- package/dist/mcp/storage-tools.d.ts.map +1 -1
- package/dist/mcp/tools.d.ts +252 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/sdk/index.d.ts +16 -0
- package/dist/sdk/index.d.ts.map +1 -0
- package/dist/sdk/index.js +173 -0
- package/dist/sdk/v1.generated.d.ts +189 -0
- package/dist/sdk/v1.generated.d.ts.map +1 -0
- package/dist/server/cloud.d.ts +51 -0
- package/dist/server/cloud.d.ts.map +1 -0
- package/dist/server/index.js +23204 -20342
- package/dist/server/openapi.d.ts +708 -0
- package/dist/server/openapi.d.ts.map +1 -0
- package/dist/server/pg-store.d.ts +57 -0
- package/dist/server/pg-store.d.ts.map +1 -0
- package/dist/server/security.d.ts +24 -0
- package/dist/server/security.d.ts.map +1 -0
- package/dist/server/serve.d.ts +8 -1
- package/dist/server/serve.d.ts.map +1 -1
- package/dist/server/v1.d.ts +6 -0
- package/dist/server/v1.d.ts.map +1 -0
- package/dist/store/index.d.ts +383 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +96 -0
- package/dist/types/index.d.ts.map +1 -1
- package/hasna.contract.json +32 -0
- package/migrations/0001_core_schema.sql +162 -0
- package/migrations/0002_contact_fields_groups.sql +22 -0
- package/migrations/0003_status_archiving.sql +17 -0
- package/migrations/0004_company_relationships.sql +16 -0
- package/migrations/0005_contact_projects.sql +19 -0
- package/migrations/0006_contact_notes.sql +14 -0
- package/migrations/0007_entities_vendor_tasks.sql +91 -0
- package/migrations/0008_deals_events.sql +36 -0
- package/migrations/0009_history_learnings_coordination.sql +122 -0
- package/migrations/0010_documents_health.sql +38 -0
- package/migrations/0011_feedback.sql +14 -0
- package/migrations/0012_audiences_consent_suppressions.sql +38 -0
- package/migrations/9001_api_keys.sql +18 -0
- package/package.json +14 -3
- package/dist/db/feedback.d.ts +0 -15
- package/dist/db/feedback.d.ts.map +0 -1
- package/dist/db/remote-storage.d.ts +0 -14
- package/dist/db/remote-storage.d.ts.map +0 -1
- package/dist/db/remote-sync.d.ts +0 -49
- package/dist/db/remote-sync.d.ts.map +0 -1
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure-remote Postgres data access for `contacts-serve` `/v1` (Amendment A1).
|
|
3
|
+
*
|
|
4
|
+
* A real, typed wrapper over the shared cloud Postgres relational schema
|
|
5
|
+
* (see src/db/pg-migrations.ts). It exposes CRUD for the core contacts domain
|
|
6
|
+
* entities — contacts, companies, tags — reading and writing RDS directly via
|
|
7
|
+
* the vendored kit's pooled query client. There are NO stubs: every method runs
|
|
8
|
+
* a parameterized SQL statement against the live database.
|
|
9
|
+
*/
|
|
10
|
+
import type { PoolQueryClient } from "../generated/storage-kit/query.js";
|
|
11
|
+
import type { Company, Contact, CreateCompanyInput, CreateContactInput, CreateTagInput, Tag, UpdateCompanyInput, UpdateContactInput, UpdateTagInput } from "../types/index.js";
|
|
12
|
+
export interface ContactListFilter {
|
|
13
|
+
limit?: number;
|
|
14
|
+
offset?: number;
|
|
15
|
+
company_id?: string;
|
|
16
|
+
status?: string;
|
|
17
|
+
q?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface CompanyListFilter {
|
|
20
|
+
limit?: number;
|
|
21
|
+
offset?: number;
|
|
22
|
+
industry?: string;
|
|
23
|
+
}
|
|
24
|
+
export declare class ContactsPgStore {
|
|
25
|
+
private readonly client;
|
|
26
|
+
constructor(client: PoolQueryClient);
|
|
27
|
+
listContacts(filter?: ContactListFilter): Promise<{
|
|
28
|
+
contacts: Contact[];
|
|
29
|
+
count: number;
|
|
30
|
+
}>;
|
|
31
|
+
getContact(id: string): Promise<Contact | null>;
|
|
32
|
+
createContact(input: CreateContactInput): Promise<Contact>;
|
|
33
|
+
updateContact(id: string, input: UpdateContactInput): Promise<Contact | null>;
|
|
34
|
+
deleteContact(id: string): Promise<boolean>;
|
|
35
|
+
listCompanies(filter?: CompanyListFilter): Promise<{
|
|
36
|
+
companies: Company[];
|
|
37
|
+
count: number;
|
|
38
|
+
}>;
|
|
39
|
+
getCompany(id: string): Promise<Company | null>;
|
|
40
|
+
createCompany(input: CreateCompanyInput): Promise<Company>;
|
|
41
|
+
updateCompany(id: string, input: UpdateCompanyInput): Promise<Company | null>;
|
|
42
|
+
deleteCompany(id: string): Promise<boolean>;
|
|
43
|
+
listTags(): Promise<Tag[]>;
|
|
44
|
+
getTag(id: string): Promise<Tag | null>;
|
|
45
|
+
createTag(input: CreateTagInput): Promise<Tag>;
|
|
46
|
+
updateTag(id: string, input: UpdateTagInput): Promise<Tag | null>;
|
|
47
|
+
deleteTag(id: string): Promise<boolean>;
|
|
48
|
+
stats(): Promise<{
|
|
49
|
+
contacts: number;
|
|
50
|
+
companies: number;
|
|
51
|
+
tags: number;
|
|
52
|
+
}>;
|
|
53
|
+
}
|
|
54
|
+
export declare function createContactsPgStore(client: PoolQueryClient): ContactsPgStore;
|
|
55
|
+
export declare function getContactsPgStore(client: PoolQueryClient): ContactsPgStore;
|
|
56
|
+
export declare function resetContactsPgStore(): void;
|
|
57
|
+
//# sourceMappingURL=pg-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pg-store.d.ts","sourceRoot":"","sources":["../../src/server/pg-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EACV,OAAO,EACP,OAAO,EACP,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,GAAG,EACH,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACf,MAAM,mBAAmB,CAAC;AA0I3B,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,eAAe;IAG9C,YAAY,CAAC,MAAM,GAAE,iBAAsB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IA8B7F,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAK/C,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IA4C1D,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IA2B7E,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM3C,aAAa,CAAC,MAAM,GAAE,iBAAsB,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAsB/F,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAK/C,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB1D,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAyB7E,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM3C,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAK1B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAKvC,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC;IAS9C,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAiBjE,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMvC,KAAK,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAa9E;AAID,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAE9E;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAG3E;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ContactWithDetails } from "../types/index.js";
|
|
2
|
+
export declare const CONTACTS_AUTH_ENV: readonly ["HASNA_CONTACTS_API_TOKENS", "OPEN_CONTACTS_API_TOKENS", "CONTACTS_API_TOKENS", "HASNA_CONTACTS_API_TOKEN", "OPEN_CONTACTS_API_TOKEN", "CONTACTS_API_TOKEN"];
|
|
3
|
+
export type ContactsScope = "contacts:read" | "contacts:write" | "companies:read" | "companies:write" | "tags:read" | "tags:write" | "contacts:import" | "contacts:export" | "contacts:export:full" | "documents:read" | "images:read" | "images:write" | "mcp:access" | "dashboard:read" | "stats:read";
|
|
4
|
+
export interface ContactsPrincipal {
|
|
5
|
+
id: string;
|
|
6
|
+
scopes: Set<string>;
|
|
7
|
+
localDevelopment: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface ContactsAuthResult {
|
|
10
|
+
ok: boolean;
|
|
11
|
+
principal?: ContactsPrincipal;
|
|
12
|
+
status?: number;
|
|
13
|
+
message?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface ContactsAuthContext {
|
|
16
|
+
allowUnauthenticatedLoopback: boolean;
|
|
17
|
+
}
|
|
18
|
+
export declare function allowUnauthenticatedLoopbackEnv(): boolean;
|
|
19
|
+
export declare function isLoopbackBindHost(hostname: string): boolean;
|
|
20
|
+
export declare function hasScope(principal: ContactsPrincipal, required: ContactsScope): boolean;
|
|
21
|
+
export declare function authenticateContactsRequest(req: Request, required: ContactsScope, context?: ContactsAuthContext): ContactsAuthResult;
|
|
22
|
+
export declare function auditServerAccess(action: string, details: Record<string, unknown>, principal?: ContactsPrincipal): void;
|
|
23
|
+
export declare function redactContactForExport(contact: ContactWithDetails): ContactWithDetails;
|
|
24
|
+
//# sourceMappingURL=security.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/server/security.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,eAAO,MAAM,iBAAiB,wKAOpB,CAAC;AAEX,MAAM,MAAM,aAAa,GACrB,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,iBAAiB,GACjB,WAAW,GACX,YAAY,GACZ,iBAAiB,GACjB,iBAAiB,GACjB,sBAAsB,GACtB,gBAAgB,GAChB,aAAa,GACb,cAAc,GACd,YAAY,GACZ,gBAAgB,GAChB,YAAY,CAAC;AAEjB,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,4BAA4B,EAAE,OAAO,CAAC;CACvC;AAyCD,wBAAgB,+BAA+B,IAAI,OAAO,CAEzD;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAG5D;AAED,wBAAgB,QAAQ,CAAC,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAGvF;AAED,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,aAAa,EACvB,OAAO,GAAE,mBAA6D,GACrE,kBAAkB,CAmBpB;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,CAAC,EAAE,iBAAiB,GAC5B,IAAI,CAaN;AASD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAkBtF"}
|
package/dist/server/serve.d.ts
CHANGED
|
@@ -1,2 +1,9 @@
|
|
|
1
|
-
export
|
|
1
|
+
export interface ContactsRequestHandlerOptions {
|
|
2
|
+
trustedLoopbackBind?: boolean;
|
|
3
|
+
}
|
|
4
|
+
export interface StartServerOptions {
|
|
5
|
+
hostname?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function createContactsRequestHandler(options?: ContactsRequestHandlerOptions): (req: Request) => Promise<Response>;
|
|
8
|
+
export declare function startServer(port: number, options?: StartServerOptions): void;
|
|
2
9
|
//# sourceMappingURL=serve.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/server/serve.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/server/serve.ts"],"names":[],"mappings":"AAoDA,MAAM,WAAW,6BAA6B;IAC5C,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA8aD,wBAAgB,4BAA4B,CAAC,OAAO,GAAE,6BAAkC,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAsH7H;AAID,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,IAAI,CAUhF"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handle a `/v1/*` request. Returns `null` when the path is not a `/v1` route so
|
|
3
|
+
* the caller can fall through to other handlers.
|
|
4
|
+
*/
|
|
5
|
+
export declare function handleV1Request(req: Request, url: URL): Promise<Response | null>;
|
|
6
|
+
//# sourceMappingURL=v1.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v1.d.ts","sourceRoot":"","sources":["../../src/server/v1.ts"],"names":[],"mappings":"AAwCA;;;GAGG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAyJtF"}
|
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
import type { ContactsStorageStatus } from "../db/storage.js";
|
|
2
|
+
import * as contactsDb from "../db/contacts.js";
|
|
3
|
+
import * as companiesDb from "../db/companies.js";
|
|
4
|
+
import * as tagsDb from "../db/tags.js";
|
|
5
|
+
import * as groupsDb from "../db/groups.js";
|
|
6
|
+
import * as relationshipsDb from "../db/relationships.js";
|
|
7
|
+
import * as activityDb from "../db/activity.js";
|
|
8
|
+
import * as vendorCommsDb from "../db/vendor-comms.js";
|
|
9
|
+
import * as contactTasksDb from "../db/contact-tasks.js";
|
|
10
|
+
import * as applicationsDb from "../db/applications.js";
|
|
11
|
+
import * as orgMembersDb from "../db/org-members.js";
|
|
12
|
+
import * as dealsDb from "../db/deals.js";
|
|
13
|
+
import * as eventsDb from "../db/events.js";
|
|
14
|
+
import * as jobHistoryDb from "../db/job-history.js";
|
|
15
|
+
import * as learningsDb from "../db/learnings.js";
|
|
16
|
+
import * as identityDb from "../db/identity.js";
|
|
17
|
+
import * as freshnessDb from "../db/freshness.js";
|
|
18
|
+
import * as orgChartDb from "../db/org-chart.js";
|
|
19
|
+
import * as documentsDb from "../db/documents.js";
|
|
20
|
+
import * as healthDb from "../db/health.js";
|
|
21
|
+
import * as audiencesDb from "../db/audiences.js";
|
|
22
|
+
import * as statsLib from "../lib/stats.js";
|
|
23
|
+
import * as meetingCaptureLib from "../lib/meeting-capture.js";
|
|
24
|
+
import * as contextLib from "../lib/context.js";
|
|
25
|
+
import * as mailerySyncLib from "../lib/mailery-sync.js";
|
|
26
|
+
type CreateContactInput = Parameters<typeof contactsDb.createContact>[0];
|
|
27
|
+
type UpdateContactInput = Parameters<typeof contactsDb.updateContact>[1];
|
|
28
|
+
type ContactListOptions = Parameters<typeof contactsDb.listContacts>[0];
|
|
29
|
+
type ContactListResult = Awaited<ReturnType<typeof contactsDb.listContacts>>;
|
|
30
|
+
type Contact = ReturnType<typeof contactsDb.getContact>;
|
|
31
|
+
type CreateEmailInput = Parameters<typeof contactsDb.addEmailToContact>[1];
|
|
32
|
+
type CreatePhoneInput = Parameters<typeof contactsDb.addPhoneToContact>[1];
|
|
33
|
+
type CreateCompanyInput = Parameters<typeof companiesDb.createCompany>[0];
|
|
34
|
+
type UpdateCompanyInput = Parameters<typeof companiesDb.updateCompany>[1];
|
|
35
|
+
type CompanyListOptions = Parameters<typeof companiesDb.listCompanies>[0];
|
|
36
|
+
type CompanyListResult = Awaited<ReturnType<typeof companiesDb.listCompanies>>;
|
|
37
|
+
type CreateTagInput = Parameters<typeof tagsDb.createTag>[0];
|
|
38
|
+
type CreateGroupInput = Parameters<typeof groupsDb.createGroup>[1];
|
|
39
|
+
type UpdateGroupInput = Parameters<typeof groupsDb.updateGroup>[2];
|
|
40
|
+
type CreateRelationshipInput = Parameters<typeof relationshipsDb.createRelationship>[0];
|
|
41
|
+
type ListRelationshipsOptions = Parameters<typeof relationshipsDb.listRelationships>[0];
|
|
42
|
+
type CreateCompanyRelationshipInput = Parameters<typeof relationshipsDb.createCompanyRelationship>[0];
|
|
43
|
+
type ListCompanyRelationshipsOptions = Parameters<typeof relationshipsDb.listCompanyRelationships>[0];
|
|
44
|
+
type ListActivityOptions = Parameters<typeof activityDb.listActivity>[0];
|
|
45
|
+
export interface ContactsStats {
|
|
46
|
+
contacts: number;
|
|
47
|
+
companies: number;
|
|
48
|
+
tags: number;
|
|
49
|
+
groups: number;
|
|
50
|
+
}
|
|
51
|
+
/** Thrown when an operation is requested in api (self_hosted/cloud) mode but the
|
|
52
|
+
* `/v1` server does not expose it yet. Never silently falls back to local. */
|
|
53
|
+
export declare class ApiUnavailableError extends Error {
|
|
54
|
+
constructor(operation: string);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* The single storage contract. Every method is async so LocalStore (sync SQLite)
|
|
58
|
+
* and ApiStore (async HTTP) share one shape. Callers never branch on transport.
|
|
59
|
+
*/
|
|
60
|
+
export interface Store {
|
|
61
|
+
readonly mode: "local" | "api";
|
|
62
|
+
createContact(input: CreateContactInput): Promise<Contact>;
|
|
63
|
+
getContact(id: string): Promise<Contact | null>;
|
|
64
|
+
getContactByEmail(email: string): Promise<Contact | null>;
|
|
65
|
+
updateContact(id: string, input: UpdateContactInput): Promise<Contact>;
|
|
66
|
+
deleteContact(id: string): Promise<void>;
|
|
67
|
+
listContacts(opts?: ContactListOptions): Promise<ContactListResult>;
|
|
68
|
+
searchContacts(query: string): Promise<Contact[]>;
|
|
69
|
+
listRecentContacts(limit: number): Promise<Contact[]>;
|
|
70
|
+
mergeContacts(keepId: string, mergeId: string): Promise<Contact>;
|
|
71
|
+
addEmailToContact(contactId: string, email: CreateEmailInput): Promise<unknown>;
|
|
72
|
+
addPhoneToContact(contactId: string, phone: CreatePhoneInput): Promise<unknown>;
|
|
73
|
+
archiveContact(id: string): Promise<Contact>;
|
|
74
|
+
unarchiveContact(id: string): Promise<Contact>;
|
|
75
|
+
autoLinkContactToCompany(contactId: string): Promise<Contact | null>;
|
|
76
|
+
/** Local-only helper for find-or-create/upsert flows: resolves an existing
|
|
77
|
+
* contact by one of its email addresses (case-insensitive by default). */
|
|
78
|
+
findContactByEmailAddress(address: string, opts?: {
|
|
79
|
+
caseSensitive?: boolean;
|
|
80
|
+
}): Promise<Contact | null>;
|
|
81
|
+
linkContactToProject(contactId: string, projectId: string): Promise<void>;
|
|
82
|
+
unlinkContactFromProject(contactId: string, projectId: string): Promise<void>;
|
|
83
|
+
getContactProjectIds(contactId: string): Promise<string[]>;
|
|
84
|
+
setContactProjects(contactId: string, projectIds: string[]): Promise<void>;
|
|
85
|
+
listContactIdsByProject(projectId: string): Promise<string[]>;
|
|
86
|
+
createCompany(input: CreateCompanyInput): Promise<unknown>;
|
|
87
|
+
getCompany(id: string): Promise<unknown | null>;
|
|
88
|
+
updateCompany(id: string, input: UpdateCompanyInput): Promise<unknown>;
|
|
89
|
+
deleteCompany(id: string): Promise<void>;
|
|
90
|
+
listCompanies(opts?: CompanyListOptions): Promise<CompanyListResult>;
|
|
91
|
+
searchCompanies(query: string): Promise<unknown[]>;
|
|
92
|
+
archiveCompany(id: string): Promise<unknown>;
|
|
93
|
+
unarchiveCompany(id: string): Promise<unknown>;
|
|
94
|
+
createTag(input: CreateTagInput): Promise<unknown>;
|
|
95
|
+
listTags(): Promise<unknown[]>;
|
|
96
|
+
getTagByName(name: string): Promise<unknown | null>;
|
|
97
|
+
deleteTag(id: string): Promise<void>;
|
|
98
|
+
addTagToContact(contactId: string, tagId: string): Promise<void>;
|
|
99
|
+
removeTagFromContact(contactId: string, tagId: string): Promise<void>;
|
|
100
|
+
addTagToCompany(companyId: string, tagId: string): Promise<void>;
|
|
101
|
+
removeTagFromCompany(companyId: string, tagId: string): Promise<void>;
|
|
102
|
+
createGroup(input: CreateGroupInput): Promise<unknown>;
|
|
103
|
+
getGroup(id: string): Promise<unknown | null>;
|
|
104
|
+
listGroups(projectId?: string): Promise<unknown[]>;
|
|
105
|
+
updateGroup(id: string, input: UpdateGroupInput): Promise<unknown>;
|
|
106
|
+
deleteGroup(id: string): Promise<void>;
|
|
107
|
+
addContactToGroup(contactId: string, groupId: string): Promise<unknown>;
|
|
108
|
+
removeContactFromGroup(contactId: string, groupId: string): Promise<void>;
|
|
109
|
+
listContactsInGroup(groupId: string): Promise<string[]>;
|
|
110
|
+
listGroupsForContact(contactId: string): Promise<unknown[]>;
|
|
111
|
+
addCompanyToGroup(companyId: string, groupId: string): Promise<unknown>;
|
|
112
|
+
removeCompanyFromGroup(companyId: string, groupId: string): Promise<void>;
|
|
113
|
+
listCompaniesInGroup(groupId: string): Promise<string[]>;
|
|
114
|
+
listGroupsForCompany(companyId: string): Promise<unknown[]>;
|
|
115
|
+
createRelationship(input: CreateRelationshipInput): Promise<unknown>;
|
|
116
|
+
listRelationships(opts?: ListRelationshipsOptions): Promise<unknown[]>;
|
|
117
|
+
deleteRelationship(id: string): Promise<void>;
|
|
118
|
+
createCompanyRelationship(input: CreateCompanyRelationshipInput): Promise<unknown>;
|
|
119
|
+
listCompanyRelationships(opts?: ListCompanyRelationshipsOptions): Promise<unknown[]>;
|
|
120
|
+
deleteCompanyRelationship(id: string): Promise<void>;
|
|
121
|
+
addNote(contactId: string, body: string, createdBy?: string, companyId?: string): Promise<unknown>;
|
|
122
|
+
listNotes(contactId: string): Promise<unknown[]>;
|
|
123
|
+
listNotesForContactAtCompany(contactId: string, companyId: string): Promise<unknown[]>;
|
|
124
|
+
deleteNote(noteId: string): Promise<void>;
|
|
125
|
+
listActivity(opts?: ListActivityOptions): Promise<unknown>;
|
|
126
|
+
stats(): Promise<ContactsStats>;
|
|
127
|
+
findEmailDuplicates(): Promise<Array<{
|
|
128
|
+
email: string;
|
|
129
|
+
contact_ids: string[];
|
|
130
|
+
}>>;
|
|
131
|
+
findNameDuplicates(): Promise<Array<{
|
|
132
|
+
contact_ids: [string, string];
|
|
133
|
+
similarity: number;
|
|
134
|
+
}>>;
|
|
135
|
+
/** Local-only: checkpoint + release the SQLite handle before a file backup. */
|
|
136
|
+
flushForBackup(): Promise<void>;
|
|
137
|
+
listColdContacts(days: number): Promise<unknown[]>;
|
|
138
|
+
findOrCreateContact(input: CreateContactInput): Promise<{
|
|
139
|
+
contact: Contact;
|
|
140
|
+
created: boolean;
|
|
141
|
+
}>;
|
|
142
|
+
findContactsForContext(topic: string, limit: number): Promise<Array<{
|
|
143
|
+
id: string;
|
|
144
|
+
display_name: string;
|
|
145
|
+
job_title: string | null;
|
|
146
|
+
reason: string;
|
|
147
|
+
}>>;
|
|
148
|
+
listContactsNotContactedSince(days: number, limit: number): Promise<Array<{
|
|
149
|
+
id: string;
|
|
150
|
+
display_name: string;
|
|
151
|
+
last_contacted_at: string | null;
|
|
152
|
+
}>>;
|
|
153
|
+
listFollowupDueContacts(onOrBefore: string): Promise<Array<{
|
|
154
|
+
id: string;
|
|
155
|
+
display_name: string;
|
|
156
|
+
follow_up_at: string;
|
|
157
|
+
}>>;
|
|
158
|
+
logVendorCommunication(input: Parameters<typeof vendorCommsDb.logVendorCommunication>[0]): Promise<unknown>;
|
|
159
|
+
listVendorCommunications(companyId: string, opts?: Parameters<typeof vendorCommsDb.listVendorCommunications>[1]): Promise<unknown[]>;
|
|
160
|
+
listMissingInvoices(): Promise<unknown[]>;
|
|
161
|
+
listPendingFollowUps(): Promise<unknown[]>;
|
|
162
|
+
markFollowUpDone(id: string): Promise<unknown>;
|
|
163
|
+
createContactTask(input: Parameters<typeof contactTasksDb.createContactTask>[0]): Promise<unknown>;
|
|
164
|
+
listContactTasks(opts?: Parameters<typeof contactTasksDb.listContactTasks>[0]): Promise<unknown[]>;
|
|
165
|
+
updateContactTask(id: string, input: Parameters<typeof contactTasksDb.updateContactTask>[1]): Promise<unknown>;
|
|
166
|
+
deleteContactTask(id: string): Promise<void>;
|
|
167
|
+
listOverdueTasks(): Promise<unknown[]>;
|
|
168
|
+
checkEscalations(): Promise<unknown[]>;
|
|
169
|
+
createApplication(input: Parameters<typeof applicationsDb.createApplication>[0]): Promise<unknown>;
|
|
170
|
+
listApplications(opts?: Parameters<typeof applicationsDb.listApplications>[0]): Promise<unknown[]>;
|
|
171
|
+
updateApplication(id: string, input: Parameters<typeof applicationsDb.updateApplication>[1]): Promise<unknown>;
|
|
172
|
+
listFollowUpDueApplications(): Promise<unknown[]>;
|
|
173
|
+
addOrgMember(input: Parameters<typeof orgMembersDb.addOrgMember>[0]): Promise<unknown>;
|
|
174
|
+
listOrgMembers(companyId: string): Promise<unknown[]>;
|
|
175
|
+
updateOrgMember(id: string, input: Parameters<typeof orgMembersDb.updateOrgMember>[1]): Promise<unknown>;
|
|
176
|
+
removeOrgMember(id: string): Promise<void>;
|
|
177
|
+
listOrgMembersForContact(contactId: string): Promise<unknown[]>;
|
|
178
|
+
createDeal(input: Parameters<typeof dealsDb.createDeal>[0]): Promise<unknown>;
|
|
179
|
+
getDeal(id: string): Promise<unknown | null>;
|
|
180
|
+
listDeals(opts?: Parameters<typeof dealsDb.listDeals>[0]): Promise<unknown[]>;
|
|
181
|
+
updateDeal(id: string, input: Parameters<typeof dealsDb.updateDeal>[1]): Promise<unknown | null>;
|
|
182
|
+
deleteDeal(id: string): Promise<void>;
|
|
183
|
+
logEvent(input: Parameters<typeof eventsDb.logEvent>[0]): Promise<unknown>;
|
|
184
|
+
listEvents(opts?: Parameters<typeof eventsDb.listEvents>[0]): Promise<unknown[]>;
|
|
185
|
+
deleteEvent(id: string): Promise<void>;
|
|
186
|
+
getFieldHistory(contactId: string, fieldName?: string): Promise<unknown[]>;
|
|
187
|
+
getContactAt(contactId: string, timestamp: string): Promise<Record<string, string>>;
|
|
188
|
+
addJobEntry(contactId: string, input: Parameters<typeof jobHistoryDb.addJobEntry>[1]): Promise<unknown>;
|
|
189
|
+
getJobHistory(contactId: string): Promise<unknown[]>;
|
|
190
|
+
saveLearning(contactId: string, input: Parameters<typeof learningsDb.saveLearning>[1]): Promise<unknown>;
|
|
191
|
+
getLearnings(contactId: string, opts?: Parameters<typeof learningsDb.getLearnings>[1]): Promise<Array<{
|
|
192
|
+
confidence: number;
|
|
193
|
+
type: string;
|
|
194
|
+
content: string;
|
|
195
|
+
}>>;
|
|
196
|
+
searchLearnings(query: string, opts?: Parameters<typeof learningsDb.searchLearnings>[1]): Promise<Array<{
|
|
197
|
+
contact_id: string;
|
|
198
|
+
type: string;
|
|
199
|
+
confidence: number;
|
|
200
|
+
content: string;
|
|
201
|
+
}>>;
|
|
202
|
+
confirmLearning(learningId: string, agentName: string): Promise<void>;
|
|
203
|
+
getStaleLearnings(daysOld: number, minConfidence: number): Promise<unknown[]>;
|
|
204
|
+
runLearningMaintenance(): Promise<{
|
|
205
|
+
decayed_count: number;
|
|
206
|
+
potential_contradictions: unknown[];
|
|
207
|
+
}>;
|
|
208
|
+
acquireContactLock(contactId: string, agentName: string, ttlSeconds?: number, reason?: string, sessionId?: string): Promise<unknown>;
|
|
209
|
+
releaseContactLock(contactId: string, agentName: string): Promise<boolean>;
|
|
210
|
+
checkContactLock(contactId: string): Promise<unknown | null>;
|
|
211
|
+
logAgentActivity(contactId: string, agentName: string, action: string, details?: string, sessionId?: string): Promise<void>;
|
|
212
|
+
getAgentActivity(contactId: string, limit: number): Promise<unknown[]>;
|
|
213
|
+
computeRelationshipStrength(contactId: string): Promise<number>;
|
|
214
|
+
findWarmPath(fromContactId: string, toContactId: string): Promise<unknown[]>;
|
|
215
|
+
findConnectionsAtCompany(companyId: string): Promise<unknown[]>;
|
|
216
|
+
detectCoolingRelationships(): Promise<Array<{
|
|
217
|
+
display_name: string;
|
|
218
|
+
days_since: number;
|
|
219
|
+
}>>;
|
|
220
|
+
resolveContactIdentity(partial: Parameters<typeof identityDb.resolveByPartial>[0]): Promise<Array<{
|
|
221
|
+
contact: {
|
|
222
|
+
display_name: string;
|
|
223
|
+
job_title?: string;
|
|
224
|
+
};
|
|
225
|
+
confidence_score: number;
|
|
226
|
+
match_reasons: string[];
|
|
227
|
+
}>>;
|
|
228
|
+
addContactIdentity(contactId: string, system: string, externalId: string, externalUrl?: string, confidence?: "verified" | "inferred"): Promise<unknown>;
|
|
229
|
+
getContactIdentities(contactId: string): Promise<unknown[]>;
|
|
230
|
+
semanticSearch(query: string, limit: number): Promise<Array<{
|
|
231
|
+
contact_id: string;
|
|
232
|
+
score: number;
|
|
233
|
+
}>>;
|
|
234
|
+
embedContact(contactId: string): Promise<void>;
|
|
235
|
+
embedAllContacts(): Promise<number>;
|
|
236
|
+
getRelationshipSignals(contactId: string): Promise<Array<{
|
|
237
|
+
signal_type: string;
|
|
238
|
+
reason: string;
|
|
239
|
+
days_since_contact: number | null;
|
|
240
|
+
}>>;
|
|
241
|
+
getGhostContacts(): Promise<Array<{
|
|
242
|
+
display_name: string;
|
|
243
|
+
days_since_contact: number | null;
|
|
244
|
+
}>>;
|
|
245
|
+
getWarmingContacts(): Promise<Array<{
|
|
246
|
+
display_name: string;
|
|
247
|
+
days_since_contact: number | null;
|
|
248
|
+
}>>;
|
|
249
|
+
recomputeSignals(): Promise<{
|
|
250
|
+
updated: number;
|
|
251
|
+
}>;
|
|
252
|
+
getFreshnessScore(contactId: string): Promise<ReturnType<typeof freshnessDb.getFreshnessScore>>;
|
|
253
|
+
getStaleContacts(threshold: number): Promise<Array<{
|
|
254
|
+
contact_id: string;
|
|
255
|
+
display_name: string;
|
|
256
|
+
score: number;
|
|
257
|
+
}>>;
|
|
258
|
+
markFieldVerified(contactId: string, fieldName: string, source?: string): Promise<void>;
|
|
259
|
+
addOrgChartEdge(companyId: string, contactAId: string, contactBId: string, edgeType: Parameters<typeof orgChartDb.addOrgChartEdge>[3], inferred?: boolean): Promise<unknown>;
|
|
260
|
+
listOrgChart(companyId: string): Promise<Array<{
|
|
261
|
+
contact_a_name: string;
|
|
262
|
+
contact_b_name: string;
|
|
263
|
+
edge_type: string;
|
|
264
|
+
}>>;
|
|
265
|
+
setDealContactRole(dealId: string, contactId: string, accountRole: Parameters<typeof orgChartDb.setDealContactRole>[2]): Promise<unknown>;
|
|
266
|
+
getDealTeam(dealId: string): Promise<Array<{
|
|
267
|
+
display_name: string;
|
|
268
|
+
account_role: string;
|
|
269
|
+
job_title?: string;
|
|
270
|
+
}>>;
|
|
271
|
+
getCoverageGaps(companyId: string): Promise<unknown>;
|
|
272
|
+
getRecentContactEvents(since?: string, eventTypes?: string[]): Promise<unknown[]>;
|
|
273
|
+
addDocument(input: Parameters<typeof documentsDb.addDocument>[0]): Promise<unknown>;
|
|
274
|
+
getDocument(id: string): Promise<unknown>;
|
|
275
|
+
listDocuments(contactId: string): Promise<Array<{
|
|
276
|
+
doc_type: string;
|
|
277
|
+
label?: string | null;
|
|
278
|
+
has_file: boolean;
|
|
279
|
+
expires_at?: string | null;
|
|
280
|
+
created_at: string;
|
|
281
|
+
}>>;
|
|
282
|
+
deleteDocument(id: string): Promise<void>;
|
|
283
|
+
getDocumentFilePath(id: string): Promise<string | null>;
|
|
284
|
+
setHealthData(contactId: string, input: Parameters<typeof healthDb.setHealthData>[1]): Promise<unknown>;
|
|
285
|
+
getHealthData(contactId: string): Promise<ReturnType<typeof healthDb.getHealthData>>;
|
|
286
|
+
deleteHealthData(contactId: string): Promise<void>;
|
|
287
|
+
createAudience(input: Parameters<typeof audiencesDb.createAudience>[0]): Promise<{
|
|
288
|
+
id: string;
|
|
289
|
+
audience_id: string;
|
|
290
|
+
}>;
|
|
291
|
+
getAudience(idOrSlug: string): Promise<ReturnType<typeof audiencesDb.getAudience>>;
|
|
292
|
+
listAudiences(): Promise<Array<{
|
|
293
|
+
audience_id: string;
|
|
294
|
+
name: string;
|
|
295
|
+
match: string;
|
|
296
|
+
consent_policy: string;
|
|
297
|
+
predicates: unknown[];
|
|
298
|
+
suppression_synced_at?: string | null;
|
|
299
|
+
}>>;
|
|
300
|
+
updateAudience(idOrSlug: string, input: Parameters<typeof audiencesDb.updateAudience>[1]): Promise<unknown>;
|
|
301
|
+
deleteAudience(idOrSlug: string): Promise<void>;
|
|
302
|
+
resolveAudience(idOrSlug: string, channel: Parameters<typeof audiencesDb.resolveAudience>[1]): Promise<ReturnType<typeof audiencesDb.resolveAudience>>;
|
|
303
|
+
setContactConsent(contactId: string, channel: Parameters<typeof audiencesDb.setContactConsent>[1], status: Parameters<typeof audiencesDb.setContactConsent>[2], source?: string): Promise<{
|
|
304
|
+
channel: string;
|
|
305
|
+
status: string;
|
|
306
|
+
}>;
|
|
307
|
+
listContactConsent(contactId: string): Promise<Array<{
|
|
308
|
+
channel: string;
|
|
309
|
+
status: string;
|
|
310
|
+
source?: string | null;
|
|
311
|
+
updated_at: string;
|
|
312
|
+
}>>;
|
|
313
|
+
suppressAddress(input: Parameters<typeof audiencesDb.suppressAddress>[0]): Promise<{
|
|
314
|
+
address: string;
|
|
315
|
+
channel: string;
|
|
316
|
+
}>;
|
|
317
|
+
unsuppressAddress(channel: Parameters<typeof audiencesDb.unsuppressAddress>[0], address: string): Promise<void>;
|
|
318
|
+
listSuppressions(opts?: Parameters<typeof audiencesDb.listSuppressions>[0]): Promise<Array<{
|
|
319
|
+
address: string;
|
|
320
|
+
channel: string;
|
|
321
|
+
reason?: string | null;
|
|
322
|
+
synced_at?: string | null;
|
|
323
|
+
}>>;
|
|
324
|
+
syncSuppressions(dryRun?: boolean): Promise<Awaited<ReturnType<typeof mailerySyncLib.syncSuppressions>>>;
|
|
325
|
+
generateBrief(contactId: string): Promise<string>;
|
|
326
|
+
getContactCard(contactId: string): Promise<object>;
|
|
327
|
+
getContactBrief(contactId: string, taskContext?: string): Promise<object>;
|
|
328
|
+
assembleContext(contactIds: string[], format: Parameters<typeof contextLib.assembleContext>[1]): Promise<object>;
|
|
329
|
+
getUpcomingItems(days: number): Promise<unknown[]>;
|
|
330
|
+
getNetworkStats(): Promise<ReturnType<typeof statsLib.getNetworkStats>>;
|
|
331
|
+
listContactAudit(): Promise<unknown[]>;
|
|
332
|
+
getContactTimeline(contactId: string, limit: number): Promise<Array<{
|
|
333
|
+
type: string;
|
|
334
|
+
date?: string | null;
|
|
335
|
+
title: string;
|
|
336
|
+
body?: string | null;
|
|
337
|
+
}>>;
|
|
338
|
+
ingestMeetingParticipants(input: Parameters<typeof meetingCaptureLib.ingestMeetingParticipants>[0]): Promise<{
|
|
339
|
+
created: number;
|
|
340
|
+
updated: number;
|
|
341
|
+
contact_ids: string[];
|
|
342
|
+
}>;
|
|
343
|
+
saveImage(entityId: string, source: string, options?: {
|
|
344
|
+
format?: string;
|
|
345
|
+
}): Promise<string>;
|
|
346
|
+
getImagePath(entityId: string): Promise<string | null>;
|
|
347
|
+
getImageAsBase64(entityId: string): Promise<string | null>;
|
|
348
|
+
deleteImage(entityId: string): Promise<boolean>;
|
|
349
|
+
listImages(): Promise<Array<{
|
|
350
|
+
entity_id: string;
|
|
351
|
+
filename: string;
|
|
352
|
+
path: string;
|
|
353
|
+
}>>;
|
|
354
|
+
initVault(passphrase: string): Promise<void>;
|
|
355
|
+
unlockVault(passphrase: string): Promise<boolean>;
|
|
356
|
+
lockVault(): Promise<void>;
|
|
357
|
+
isVaultInitialized(): Promise<boolean>;
|
|
358
|
+
isVaultUnlocked(): Promise<boolean>;
|
|
359
|
+
vaultStatus(): Promise<{
|
|
360
|
+
initialized: boolean;
|
|
361
|
+
unlocked: boolean;
|
|
362
|
+
document_count: number;
|
|
363
|
+
}>;
|
|
364
|
+
saveFeedback(message: string, email: string | null, category: string, version: string): Promise<void>;
|
|
365
|
+
storageStatus(): Promise<ContactsStorageStatus | null>;
|
|
366
|
+
listActiveWebhooks(): Promise<Array<{
|
|
367
|
+
id: string;
|
|
368
|
+
event_type: string;
|
|
369
|
+
url: string;
|
|
370
|
+
secret?: string | null;
|
|
371
|
+
}>>;
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* Resolve the single Store for this process. Memoized. Returns an ApiStore when
|
|
375
|
+
* the self_hosted/cloud client-flip env is set (URL + key), else a LocalStore.
|
|
376
|
+
* Throws if cloud was requested but is misconfigured — callers never silently
|
|
377
|
+
* read/write the wrong dataset.
|
|
378
|
+
*/
|
|
379
|
+
export declare function getStore(env?: Record<string, string | undefined>): Store;
|
|
380
|
+
/** Test hook: drop the memoized Store so a new env can be resolved. */
|
|
381
|
+
export declare function resetStoreCache(): void;
|
|
382
|
+
export type { ContactsStorageStatus, StorageTableStatus } from "../db/storage.js";
|
|
383
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -757,4 +757,100 @@ export declare class TagNotFoundError extends Error {
|
|
|
757
757
|
export declare class DuplicateTagNameError extends Error {
|
|
758
758
|
constructor(name: string);
|
|
759
759
|
}
|
|
760
|
+
export declare const AUDIENCE_CHANNELS: readonly ["email", "telegram", "sms"];
|
|
761
|
+
export type AudienceChannel = (typeof AUDIENCE_CHANNELS)[number];
|
|
762
|
+
export declare const CONSENT_STATUSES: readonly ["opt_in", "opt_out", "unknown"];
|
|
763
|
+
export type ConsentStatus = (typeof CONSENT_STATUSES)[number];
|
|
764
|
+
export declare const CONSENT_POLICIES: readonly ["opt_in", "opt_out", "transactional", "none"];
|
|
765
|
+
export type ConsentPolicy = (typeof CONSENT_POLICIES)[number];
|
|
766
|
+
export type AudienceMatch = "all" | "any";
|
|
767
|
+
export type AudiencePredicateKind = "tag" | "attribute" | "group";
|
|
768
|
+
export type AudiencePredicateOp = "eq" | "neq" | "in" | "not_in" | "exists" | "not_exists";
|
|
769
|
+
export type AudiencePredicateValue = string | number | boolean;
|
|
770
|
+
export interface AudiencePredicate {
|
|
771
|
+
kind: AudiencePredicateKind;
|
|
772
|
+
/** Attribute key (required for attribute predicates), e.g. `job_title` or a custom field name. */
|
|
773
|
+
key?: string;
|
|
774
|
+
op?: AudiencePredicateOp;
|
|
775
|
+
value?: AudiencePredicateValue;
|
|
776
|
+
values?: AudiencePredicateValue[];
|
|
777
|
+
}
|
|
778
|
+
export interface Audience {
|
|
779
|
+
id: string;
|
|
780
|
+
audience_id: string;
|
|
781
|
+
name: string;
|
|
782
|
+
match: AudienceMatch;
|
|
783
|
+
predicates: AudiencePredicate[];
|
|
784
|
+
consent_policy: ConsentPolicy;
|
|
785
|
+
suppression_synced_at: string | null;
|
|
786
|
+
created_at: string;
|
|
787
|
+
updated_at: string;
|
|
788
|
+
}
|
|
789
|
+
export interface AudienceRow {
|
|
790
|
+
id: string;
|
|
791
|
+
audience_id: string;
|
|
792
|
+
name: string;
|
|
793
|
+
match: AudienceMatch;
|
|
794
|
+
predicates: string;
|
|
795
|
+
consent_policy: ConsentPolicy;
|
|
796
|
+
suppression_synced_at: string | null;
|
|
797
|
+
created_at: string;
|
|
798
|
+
updated_at: string;
|
|
799
|
+
}
|
|
800
|
+
export interface CreateAudienceInput {
|
|
801
|
+
audience_id: string;
|
|
802
|
+
name: string;
|
|
803
|
+
match?: AudienceMatch;
|
|
804
|
+
predicates: AudiencePredicate[];
|
|
805
|
+
consent_policy?: ConsentPolicy;
|
|
806
|
+
}
|
|
807
|
+
export interface UpdateAudienceInput {
|
|
808
|
+
name?: string;
|
|
809
|
+
match?: AudienceMatch;
|
|
810
|
+
predicates?: AudiencePredicate[];
|
|
811
|
+
consent_policy?: ConsentPolicy;
|
|
812
|
+
}
|
|
813
|
+
export interface ContactConsent {
|
|
814
|
+
contact_id: string;
|
|
815
|
+
channel: AudienceChannel;
|
|
816
|
+
status: ConsentStatus;
|
|
817
|
+
source: string | null;
|
|
818
|
+
updated_at: string;
|
|
819
|
+
}
|
|
820
|
+
export interface ContactSuppression {
|
|
821
|
+
id: string;
|
|
822
|
+
contact_id: string | null;
|
|
823
|
+
channel: AudienceChannel;
|
|
824
|
+
address: string;
|
|
825
|
+
reason: string | null;
|
|
826
|
+
created_at: string;
|
|
827
|
+
synced_at: string | null;
|
|
828
|
+
}
|
|
829
|
+
export interface AudienceRecipient {
|
|
830
|
+
contact_id: string;
|
|
831
|
+
display_name: string;
|
|
832
|
+
address: string;
|
|
833
|
+
consent_status: ConsentStatus;
|
|
834
|
+
}
|
|
835
|
+
export interface AudienceExclusion {
|
|
836
|
+
contact_id: string;
|
|
837
|
+
reason: "consent" | "suppressed" | "do_not_contact" | "no_address" | "archived";
|
|
838
|
+
}
|
|
839
|
+
export interface AudienceResolution {
|
|
840
|
+
audience_id: string;
|
|
841
|
+
channel: AudienceChannel;
|
|
842
|
+
consent_policy: ConsentPolicy;
|
|
843
|
+
matched: number;
|
|
844
|
+
recipients: AudienceRecipient[];
|
|
845
|
+
excluded: AudienceExclusion[];
|
|
846
|
+
}
|
|
847
|
+
export declare class AudienceNotFoundError extends Error {
|
|
848
|
+
constructor(id: string);
|
|
849
|
+
}
|
|
850
|
+
export declare class DuplicateAudienceIdError extends Error {
|
|
851
|
+
constructor(audienceId: string);
|
|
852
|
+
}
|
|
853
|
+
export declare class InvalidAudienceDefinitionError extends Error {
|
|
854
|
+
constructor(detail: string);
|
|
855
|
+
}
|
|
760
856
|
//# sourceMappingURL=index.d.ts.map
|