@hasna/contacts 0.6.34 → 0.6.36
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 +10 -1
- package/dashboard/dist/assets/index-0l6aQb1t.css +1 -0
- package/dashboard/dist/assets/index-opnZdkVD.js +229 -0
- package/dashboard/dist/index.html +13 -0
- package/dist/cli/commands/advanced.d.ts +3 -0
- package/dist/cli/commands/advanced.d.ts.map +1 -0
- 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 +3 -0
- package/dist/cli/commands/core.d.ts.map +1 -0
- package/dist/cli/commands/crm.d.ts +3 -0
- package/dist/cli/commands/crm.d.ts.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +2994 -579
- package/dist/cli/storage.d.ts +3 -0
- package/dist/cli/storage.d.ts.map +1 -0
- package/dist/cli/utils.d.ts +10 -0
- package/dist/cli/utils.d.ts.map +1 -0
- package/dist/cloud/http-storage.d.ts +88 -0
- package/dist/cloud/http-storage.d.ts.map +1 -0
- package/dist/db/activity.d.ts +15 -0
- package/dist/db/activity.d.ts.map +1 -0
- package/dist/db/applications.d.ts +10 -0
- package/dist/db/applications.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 +19 -0
- package/dist/db/companies.d.ts.map +1 -0
- package/dist/db/contact-tasks.d.ts +19 -0
- package/dist/db/contact-tasks.d.ts.map +1 -0
- package/dist/db/contacts.d.ts +30 -0
- package/dist/db/contacts.d.ts.map +1 -0
- package/dist/db/coordination.d.ts +30 -0
- package/dist/db/coordination.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/deals.d.ts +14 -0
- package/dist/db/deals.d.ts.map +1 -0
- package/dist/db/documents.d.ts +38 -0
- package/dist/db/documents.d.ts.map +1 -0
- package/dist/db/events.d.ts +14 -0
- package/dist/db/events.d.ts.map +1 -0
- package/dist/db/field-history.d.ts +17 -0
- package/dist/db/field-history.d.ts.map +1 -0
- package/dist/db/freshness.d.ts +24 -0
- package/dist/db/freshness.d.ts.map +1 -0
- package/dist/db/graph.d.ts +21 -0
- package/dist/db/graph.d.ts.map +1 -0
- package/dist/db/groups.d.ts +22 -0
- package/dist/db/groups.d.ts.map +1 -0
- package/dist/db/health.d.ts +40 -0
- package/dist/db/health.d.ts.map +1 -0
- package/dist/db/identity.d.ts +32 -0
- package/dist/db/identity.d.ts.map +1 -0
- package/dist/db/job-history.d.ts +29 -0
- package/dist/db/job-history.d.ts.map +1 -0
- package/dist/db/learnings.d.ts +43 -0
- package/dist/db/learnings.d.ts.map +1 -0
- package/dist/db/notes.d.ts +8 -0
- package/dist/db/notes.d.ts.map +1 -0
- package/dist/db/org-chart.d.ts +37 -0
- package/dist/db/org-chart.d.ts.map +1 -0
- package/dist/db/org-members.d.ts +9 -0
- package/dist/db/org-members.d.ts.map +1 -0
- package/dist/db/paths.d.ts +15 -0
- package/dist/db/paths.d.ts.map +1 -0
- package/dist/db/pg-migrations.d.ts +8 -0
- package/dist/db/pg-migrations.d.ts.map +1 -0
- package/dist/db/project-memberships.d.ts +8 -0
- package/dist/db/project-memberships.d.ts.map +1 -0
- package/dist/db/relationships.d.ts +30 -0
- package/dist/db/relationships.d.ts.map +1 -0
- package/dist/db/signals.d.ts +18 -0
- package/dist/db/signals.d.ts.map +1 -0
- package/dist/db/sqlite-adapter.d.ts +15 -0
- package/dist/db/sqlite-adapter.d.ts.map +1 -0
- package/dist/db/storage.d.ts +15 -0
- package/dist/db/storage.d.ts.map +1 -0
- package/dist/db/tags.d.ts +14 -0
- package/dist/db/tags.d.ts.map +1 -0
- package/dist/db/tombstones.d.ts +19 -0
- package/dist/db/tombstones.d.ts.map +1 -0
- package/dist/db/vendor-comms.d.ts +15 -0
- package/dist/db/vendor-comms.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 +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +805 -75
- package/dist/lib/apple-contacts.d.ts +3 -0
- package/dist/lib/apple-contacts.d.ts.map +1 -0
- package/dist/lib/audience-contract.d.ts +215 -0
- package/dist/lib/audience-contract.d.ts.map +1 -0
- package/dist/lib/audit.d.ts +12 -0
- package/dist/lib/audit.d.ts.map +1 -0
- package/dist/lib/brief.d.ts +3 -0
- package/dist/lib/brief.d.ts.map +1 -0
- package/dist/lib/config.d.ts +7 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/connector.d.ts +44 -0
- package/dist/lib/connector.d.ts.map +1 -0
- package/dist/lib/context.d.ts +5 -0
- package/dist/lib/context.d.ts.map +1 -0
- package/dist/lib/dedup.d.ts +10 -0
- package/dist/lib/dedup.d.ts.map +1 -0
- package/dist/lib/document-scanner.d.ts +8 -0
- package/dist/lib/document-scanner.d.ts.map +1 -0
- package/dist/lib/embeddings.d.ts +9 -0
- package/dist/lib/embeddings.d.ts.map +1 -0
- package/dist/lib/export.d.ts +8 -0
- package/dist/lib/export.d.ts.map +1 -0
- package/dist/lib/freshness.d.ts +19 -0
- package/dist/lib/freshness.d.ts.map +1 -0
- package/dist/lib/gmail-import.d.ts +51 -0
- package/dist/lib/gmail-import.d.ts.map +1 -0
- package/dist/lib/google-contacts.d.ts +115 -0
- package/dist/lib/google-contacts.d.ts.map +1 -0
- package/dist/lib/images.d.ts +30 -0
- package/dist/lib/images.d.ts.map +1 -0
- package/dist/lib/import.d.ts +10 -0
- package/dist/lib/import.d.ts.map +1 -0
- package/dist/lib/learning-maintenance.d.ts +8 -0
- package/dist/lib/learning-maintenance.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/meeting-capture.d.ts +15 -0
- package/dist/lib/meeting-capture.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/lib/signals.d.ts +9 -0
- package/dist/lib/signals.d.ts.map +1 -0
- package/dist/lib/signature-parser.d.ts +36 -0
- package/dist/lib/signature-parser.d.ts.map +1 -0
- package/dist/lib/stats.d.ts +24 -0
- package/dist/lib/stats.d.ts.map +1 -0
- package/dist/lib/timeline.d.ts +11 -0
- package/dist/lib/timeline.d.ts.map +1 -0
- package/dist/lib/upcoming.d.ts +14 -0
- package/dist/lib/upcoming.d.ts.map +1 -0
- package/dist/lib/vault.d.ts +28 -0
- package/dist/lib/vault.d.ts.map +1 -0
- package/dist/mcp/handlers/advanced.d.ts +14 -0
- package/dist/mcp/handlers/advanced.d.ts.map +1 -0
- 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 +10 -0
- package/dist/mcp/handlers/core.d.ts.map +1 -0
- package/dist/mcp/handlers/crm.d.ts +14 -0
- package/dist/mcp/handlers/crm.d.ts.map +1 -0
- package/dist/mcp/handlers/index.d.ts +4 -0
- package/dist/mcp/handlers/index.d.ts.map +1 -0
- package/dist/mcp/handlers/types.d.ts +10 -0
- package/dist/mcp/handlers/types.d.ts.map +1 -0
- package/dist/mcp/http.d.ts +17 -0
- package/dist/mcp/http.d.ts.map +1 -0
- package/dist/mcp/index.d.ts +5 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +1054 -291
- package/dist/mcp/register-tools.d.ts +3 -0
- package/dist/mcp/register-tools.d.ts.map +1 -0
- package/dist/mcp/schema.d.ts +3 -0
- package/dist/mcp/schema.d.ts.map +1 -0
- package/dist/mcp/storage-tools.d.ts +3 -0
- package/dist/mcp/storage-tools.d.ts.map +1 -0
- package/dist/mcp/tools.d.ts +3799 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/sdk/index.d.ts +16 -0
- package/dist/sdk/index.d.ts.map +1 -0
- package/dist/sdk/index.js +63 -0
- package/dist/sdk/v1.generated.d.ts +270 -0
- package/dist/sdk/v1.generated.d.ts.map +1 -0
- package/dist/server/cloud-index.d.ts +3 -0
- package/dist/server/cloud-index.d.ts.map +1 -0
- package/dist/server/cloud-serve.d.ts +3 -0
- package/dist/server/cloud-serve.d.ts.map +1 -0
- package/dist/server/cloud.d.ts +53 -0
- package/dist/server/cloud.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 +1750 -332
- package/dist/server/openapi.d.ts +1134 -0
- package/dist/server/openapi.d.ts.map +1 -0
- package/dist/server/pg-store.d.ts +893 -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 +9 -0
- package/dist/server/serve.d.ts.map +1 -0
- package/dist/server/v1.d.ts +28 -0
- package/dist/server/v1.d.ts.map +1 -0
- package/dist/store/index.d.ts +387 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +856 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/project-memberships.d.ts +32 -0
- package/dist/types/project-memberships.d.ts.map +1 -0
- package/hasna.contract.json +1 -1
- package/migrations/0015_contact_project_membership_authority.sql +88 -0
- package/package.json +4 -2
- package/vendor/fast-uri/README.md +12 -0
- package/dist/server/cloud-index.js +0 -9187
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/cli/storage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2DzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqD9D"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ContactWithDetails } from "../types/index.js";
|
|
2
|
+
interface TableRow {
|
|
3
|
+
[key: string]: string | undefined;
|
|
4
|
+
}
|
|
5
|
+
export declare function renderTable(headers: string[], rows: TableRow[]): void;
|
|
6
|
+
export declare function formatContact(c: ContactWithDetails): void;
|
|
7
|
+
export declare function promptUser(question: string): Promise<string>;
|
|
8
|
+
export declare function confirmUser(question: string): Promise<boolean>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/cli/utils.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,UAAU,QAAQ;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAqCrE;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,kBAAkB,GAAG,IAAI,CA8DzD;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAUlE;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGpE"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
export type Env = Record<string, string | undefined>;
|
|
2
|
+
/** Normalize a base URL to `<origin>/v1`. */
|
|
3
|
+
export declare function toV1BaseUrl(apiUrl: string): string;
|
|
4
|
+
export type ClientTransportKind = "local" | "cloud-http";
|
|
5
|
+
export interface ClientTransportResolution {
|
|
6
|
+
transport: ClientTransportKind;
|
|
7
|
+
mode: "local" | "cloud";
|
|
8
|
+
modeSource: string;
|
|
9
|
+
baseUrl: string | null;
|
|
10
|
+
apiKeyPresent: boolean;
|
|
11
|
+
apiKeySource: string | null;
|
|
12
|
+
misconfigured: boolean;
|
|
13
|
+
warning: string | null;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Decide whether this client should read/write from the cloud API or locally.
|
|
17
|
+
* Cloud-http IFF the resolved mode is cloud/self_hosted AND an API key is set.
|
|
18
|
+
* If cloud is requested but the key is missing/invalid, returns local with
|
|
19
|
+
* `misconfigured: true` so callers can hard-fail instead of drifting.
|
|
20
|
+
*/
|
|
21
|
+
export declare function resolveClientTransport(name: string, env?: Env): ClientTransportResolution;
|
|
22
|
+
/** Thrown when a cloud HTTP request returns a non-2xx status. */
|
|
23
|
+
export declare class HasnaHttpError extends Error {
|
|
24
|
+
readonly status: number;
|
|
25
|
+
readonly method: string;
|
|
26
|
+
readonly path: string;
|
|
27
|
+
readonly body: unknown;
|
|
28
|
+
constructor(method: string, path: string, status: number, body: unknown);
|
|
29
|
+
}
|
|
30
|
+
type FetchLike = (input: string, init?: RequestInit) => Promise<Response>;
|
|
31
|
+
export type QueryParams = Record<string, string | number | boolean | null | undefined>;
|
|
32
|
+
export interface RequestOptions {
|
|
33
|
+
query?: QueryParams;
|
|
34
|
+
idempotencyKey?: string;
|
|
35
|
+
timeoutMs?: number;
|
|
36
|
+
headers?: Record<string, string>;
|
|
37
|
+
signal?: AbortSignal;
|
|
38
|
+
retries?: number;
|
|
39
|
+
}
|
|
40
|
+
export interface HttpTransport {
|
|
41
|
+
readonly baseUrl: string;
|
|
42
|
+
request<T = unknown>(method: string, path: string, body?: unknown, opts?: RequestOptions): Promise<T>;
|
|
43
|
+
get<T = unknown>(path: string, opts?: RequestOptions): Promise<T>;
|
|
44
|
+
post<T = unknown>(path: string, body?: unknown, opts?: RequestOptions): Promise<T>;
|
|
45
|
+
put<T = unknown>(path: string, body?: unknown, opts?: RequestOptions): Promise<T>;
|
|
46
|
+
patch<T = unknown>(path: string, body?: unknown, opts?: RequestOptions): Promise<T>;
|
|
47
|
+
del<T = unknown>(path: string, body?: unknown, opts?: RequestOptions): Promise<T>;
|
|
48
|
+
}
|
|
49
|
+
interface TransportOptions {
|
|
50
|
+
name: string;
|
|
51
|
+
baseUrl: string;
|
|
52
|
+
apiKey: string;
|
|
53
|
+
fetchImpl?: FetchLike;
|
|
54
|
+
timeoutMs?: number;
|
|
55
|
+
retries?: number;
|
|
56
|
+
}
|
|
57
|
+
export declare function createHttpTransport(options: TransportOptions): HttpTransport;
|
|
58
|
+
export interface StorageClient {
|
|
59
|
+
readonly name: string;
|
|
60
|
+
readonly baseUrl: string;
|
|
61
|
+
readonly transport: HttpTransport;
|
|
62
|
+
list<T = unknown>(resource: string, opts?: RequestOptions): Promise<T>;
|
|
63
|
+
get<T = unknown>(resource: string, id: string, opts?: RequestOptions): Promise<T | null>;
|
|
64
|
+
create<T = unknown>(resource: string, body: unknown, opts?: RequestOptions): Promise<T>;
|
|
65
|
+
update<T = unknown>(resource: string, id: string, patch: unknown, opts?: RequestOptions & {
|
|
66
|
+
method?: "PATCH" | "PUT";
|
|
67
|
+
}): Promise<T>;
|
|
68
|
+
delete<T = unknown>(resource: string, id: string, opts?: RequestOptions): Promise<T>;
|
|
69
|
+
}
|
|
70
|
+
export declare function createStorageClient(name: string, transport: HttpTransport): StorageClient;
|
|
71
|
+
export type ResolveStorageClientResult = {
|
|
72
|
+
transport: "local";
|
|
73
|
+
client: null;
|
|
74
|
+
resolution: ClientTransportResolution;
|
|
75
|
+
} | {
|
|
76
|
+
transport: "cloud-http";
|
|
77
|
+
client: StorageClient;
|
|
78
|
+
resolution: ClientTransportResolution;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* The one call the app's storage resolver makes. Reads the client-flip env for
|
|
82
|
+
* `name`; returns a ready cloud client when self_hosted + API key are set, else
|
|
83
|
+
* `{ transport: 'local', client: null }`. Throws if cloud was requested but is
|
|
84
|
+
* misconfigured (so callers never silently read the wrong dataset).
|
|
85
|
+
*/
|
|
86
|
+
export declare function resolveStorageClient(name: string, env?: Env): ResolveStorageClientResult;
|
|
87
|
+
export {};
|
|
88
|
+
//# sourceMappingURL=http-storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-storage.d.ts","sourceRoot":"","sources":["../../src/cloud/http-storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ContactsDatabase } from "./database.js";
|
|
2
|
+
import type { ActivityLog, CreateActivityInput } from "../types/index.js";
|
|
3
|
+
export declare function logActivity(db: ContactsDatabase, input: CreateActivityInput): ActivityLog;
|
|
4
|
+
export interface ListActivityOptions {
|
|
5
|
+
contact_id?: string;
|
|
6
|
+
company_id?: string;
|
|
7
|
+
limit?: number;
|
|
8
|
+
offset?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function listActivity(opts?: ListActivityOptions, db?: ContactsDatabase): {
|
|
11
|
+
entries: ActivityLog[];
|
|
12
|
+
total: number;
|
|
13
|
+
};
|
|
14
|
+
export declare function getActivity(id: string, db?: ContactsDatabase): ActivityLog | null;
|
|
15
|
+
//# sourceMappingURL=activity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../src/db/activity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAe,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAOvF,wBAAgB,WAAW,CAAC,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,mBAAmB,GAAG,WAAW,CAOzF;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,YAAY,CAAC,IAAI,GAAE,mBAAwB,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG;IAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAe7H;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,WAAW,GAAG,IAAI,CAIjF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ContactsDatabase } from "./database.js";
|
|
2
|
+
import type { Application, CreateApplicationInput, UpdateApplicationInput, ListApplicationsOptions } from "../types/index.js";
|
|
3
|
+
export declare function createApplication(input: CreateApplicationInput, db?: ContactsDatabase): Application;
|
|
4
|
+
export declare function getApplication(id: string, db?: ContactsDatabase): Application | null;
|
|
5
|
+
export declare function listApplications(opts?: ListApplicationsOptions, db?: ContactsDatabase): Application[];
|
|
6
|
+
export declare function updateApplication(id: string, input: UpdateApplicationInput, db?: ContactsDatabase): Application;
|
|
7
|
+
export declare function deleteApplication(id: string, db?: ContactsDatabase): void;
|
|
8
|
+
export declare function listFollowUpDue(db?: ContactsDatabase): Application[];
|
|
9
|
+
export declare function listPendingApplications(db?: ContactsDatabase): Application[];
|
|
10
|
+
//# sourceMappingURL=applications.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applications.d.ts","sourceRoot":"","sources":["../../src/db/applications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EACV,WAAW,EACX,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EAIxB,MAAM,mBAAmB,CAAC;AAiD3B,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,WAAW,CAkCnG;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,WAAW,GAAG,IAAI,CAIpF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,uBAA4B,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,WAAW,EAAE,CAiBzG;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,WAAW,CA2B/G;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAGzE;AAED,wBAAgB,eAAe,CAAC,EAAE,CAAC,EAAE,gBAAgB,GAAG,WAAW,EAAE,CASpE;AAED,wBAAgB,uBAAuB,CAAC,EAAE,CAAC,EAAE,gBAAgB,GAAG,WAAW,EAAE,CAQ5E"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Audiences, per-channel consent, and suppression storage (distribution plan).
|
|
3
|
+
*
|
|
4
|
+
* Audience segment definitions follow hasna.audience.v1: predicates over
|
|
5
|
+
* contact tags, contact attributes (columns + custom fields), and group
|
|
6
|
+
* membership, combined with match=all|any. Resolution honors per-channel
|
|
7
|
+
* consent, the audience consent policy, suppression entries, do_not_contact,
|
|
8
|
+
* and archived status.
|
|
9
|
+
*/
|
|
10
|
+
import type { ContactsDatabase } from "./database.js";
|
|
11
|
+
import type { Audience, AudienceChannel, AudiencePredicate, AudienceResolution, ConsentStatus, ContactConsent, ContactSuppression, CreateAudienceInput, UpdateAudienceInput } from "../types/index.js";
|
|
12
|
+
export declare function createAudience(input: CreateAudienceInput, db?: ContactsDatabase): Audience;
|
|
13
|
+
/** Look up by internal id or by audience_id slug. */
|
|
14
|
+
export declare function getAudience(idOrSlug: string, db?: ContactsDatabase): Audience;
|
|
15
|
+
export declare function listAudiences(db?: ContactsDatabase): Audience[];
|
|
16
|
+
export declare function updateAudience(idOrSlug: string, input: UpdateAudienceInput, db?: ContactsDatabase): Audience;
|
|
17
|
+
export declare function deleteAudience(idOrSlug: string, db?: ContactsDatabase): void;
|
|
18
|
+
export declare function markAudienceSuppressionSynced(idOrSlug: string, at: string, db?: ContactsDatabase): Audience;
|
|
19
|
+
export declare function setContactConsent(contactId: string, channel: AudienceChannel, status: ConsentStatus, source?: string, db?: ContactsDatabase): ContactConsent;
|
|
20
|
+
export declare function getContactConsent(contactId: string, channel: AudienceChannel, db?: ContactsDatabase): ContactConsent | null;
|
|
21
|
+
export declare function listContactConsent(contactId: string, db?: ContactsDatabase): ContactConsent[];
|
|
22
|
+
export interface SuppressInput {
|
|
23
|
+
channel: AudienceChannel;
|
|
24
|
+
address: string;
|
|
25
|
+
contact_id?: string;
|
|
26
|
+
reason?: string;
|
|
27
|
+
}
|
|
28
|
+
export declare function suppressAddress(input: SuppressInput, db?: ContactsDatabase): ContactSuppression;
|
|
29
|
+
export declare function unsuppressAddress(channel: AudienceChannel, address: string, db?: ContactsDatabase): void;
|
|
30
|
+
export declare function listSuppressions(options?: {
|
|
31
|
+
channel?: AudienceChannel;
|
|
32
|
+
unsyncedOnly?: boolean;
|
|
33
|
+
}, db?: ContactsDatabase): ContactSuppression[];
|
|
34
|
+
export declare function markSuppressionsSynced(ids: string[], at: string, db?: ContactsDatabase): number;
|
|
35
|
+
interface CandidateRow {
|
|
36
|
+
id: string;
|
|
37
|
+
display_name: string;
|
|
38
|
+
archived: number;
|
|
39
|
+
do_not_contact: number;
|
|
40
|
+
custom_fields: string;
|
|
41
|
+
[key: string]: unknown;
|
|
42
|
+
}
|
|
43
|
+
export declare function evaluateAudiencePredicate(d: ContactsDatabase, row: CandidateRow, predicate: AudiencePredicate): boolean;
|
|
44
|
+
export declare function matchAudienceContacts(audience: Audience, db?: ContactsDatabase): CandidateRow[];
|
|
45
|
+
/**
|
|
46
|
+
* Resolve an audience to per-channel recipients, honoring consent policy,
|
|
47
|
+
* per-channel consent status, suppressions, and do_not_contact.
|
|
48
|
+
*/
|
|
49
|
+
export declare function resolveAudience(idOrSlug: string, channel: AudienceChannel, db?: ContactsDatabase): AudienceResolution;
|
|
50
|
+
export {};
|
|
51
|
+
//# sourceMappingURL=audiences.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audiences.d.ts","sourceRoot":"","sources":["../../src/db/audiences.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ContactsDatabase } from "./database.js";
|
|
2
|
+
import type { CompanyListOptions, CompanyWithDetails, Contact, CreateCompanyInput, UpdateCompanyInput } from "../types/index.js";
|
|
3
|
+
export declare function createCompany(input: CreateCompanyInput, db?: ContactsDatabase): CompanyWithDetails;
|
|
4
|
+
export declare function getCompany(id: string, db?: ContactsDatabase): CompanyWithDetails;
|
|
5
|
+
export declare function listCompanies(opts?: CompanyListOptions, db?: ContactsDatabase): {
|
|
6
|
+
companies: CompanyWithDetails[];
|
|
7
|
+
total: number;
|
|
8
|
+
};
|
|
9
|
+
export declare function updateCompany(id: string, input: UpdateCompanyInput, db?: ContactsDatabase): CompanyWithDetails;
|
|
10
|
+
export declare function deleteCompany(id: string, db?: ContactsDatabase): void;
|
|
11
|
+
export declare function searchCompanies(query: string, db?: ContactsDatabase): CompanyWithDetails[];
|
|
12
|
+
export declare function listCompanyEmployees(companyId: string, db?: ContactsDatabase): Contact[];
|
|
13
|
+
export declare function archiveCompany(id: string, db?: ContactsDatabase): CompanyWithDetails;
|
|
14
|
+
export declare function unarchiveCompany(id: string, db?: ContactsDatabase): CompanyWithDetails;
|
|
15
|
+
export declare function listOwnedEntities(db?: ContactsDatabase): {
|
|
16
|
+
companies: CompanyWithDetails[];
|
|
17
|
+
total: number;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=companies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"companies.d.ts","sourceRoot":"","sources":["../../src/db/companies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAGV,kBAAkB,EAElB,kBAAkB,EAClB,OAAO,EAGP,kBAAkB,EAUlB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAyG3B,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,kBAAkB,CAyClG;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,kBAAkB,CAKhF;AAED,wBAAgB,aAAa,CAAC,IAAI,GAAE,kBAAuB,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG;IAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAiDtI;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,kBAAkB,CA4B9G;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,IAAI,CASrE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,kBAAkB,EAAE,CAU1F;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,OAAO,EAAE,CAoBxF;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,kBAAkB,CAQpF;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,kBAAkB,CAQtF;AAED,wBAAgB,iBAAiB,CAAC,EAAE,CAAC,EAAE,gBAAgB,GAAG;IAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAE3G"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ContactsDatabase } from "./database.js";
|
|
2
|
+
import type { ContactTask, CreateContactTaskInput, UpdateContactTaskInput, EscalationRule } from "../types/index.js";
|
|
3
|
+
export declare function createContactTask(input: CreateContactTaskInput, db?: ContactsDatabase): ContactTask;
|
|
4
|
+
export declare function getContactTask(id: string, db?: ContactsDatabase): ContactTask | null;
|
|
5
|
+
export interface ListContactTasksOptions {
|
|
6
|
+
contact_id?: string;
|
|
7
|
+
entity_id?: string;
|
|
8
|
+
status?: ContactTask["status"];
|
|
9
|
+
priority?: ContactTask["priority"];
|
|
10
|
+
}
|
|
11
|
+
export declare function listContactTasks(opts?: ListContactTasksOptions, db?: ContactsDatabase): ContactTask[];
|
|
12
|
+
export declare function updateContactTask(id: string, input: UpdateContactTaskInput, db?: ContactsDatabase): ContactTask;
|
|
13
|
+
export declare function deleteContactTask(id: string, db?: ContactsDatabase): void;
|
|
14
|
+
export declare function listOverdueTasks(db?: ContactsDatabase): ContactTask[];
|
|
15
|
+
export declare function checkEscalations(db?: ContactsDatabase): Array<{
|
|
16
|
+
task: ContactTask;
|
|
17
|
+
rules_triggered: EscalationRule[];
|
|
18
|
+
}>;
|
|
19
|
+
//# sourceMappingURL=contact-tasks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contact-tasks.d.ts","sourceRoot":"","sources":["../../src/db/contact-tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EACV,WAAW,EACX,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAyC3B,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,WAAW,CA8BnG;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,WAAW,GAAG,IAAI,CAIpF;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;CACpC;AAED,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,uBAA4B,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,WAAW,EAAE,CAiBzG;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,WAAW,CAsB/G;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAGzE;AAED,wBAAgB,gBAAgB,CAAC,EAAE,CAAC,EAAE,gBAAgB,GAAG,WAAW,EAAE,CASrE;AAED,wBAAgB,gBAAgB,CAAC,EAAE,CAAC,EAAE,gBAAgB,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,eAAe,EAAE,cAAc,EAAE,CAAA;CAAE,CAAC,CAsBvH"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ContactsDatabase } from "./database.js";
|
|
2
|
+
import type { ContactListOptions, ContactWithDetails, CreateContactInput, CreateEmailInput, CreatePhoneInput, UpdateContactInput } from "../types/index.js";
|
|
3
|
+
export declare function createContact(input: CreateContactInput, db?: ContactsDatabase): ContactWithDetails;
|
|
4
|
+
export declare function getContact(id: string, db?: ContactsDatabase): ContactWithDetails;
|
|
5
|
+
export declare function listContacts(opts?: ContactListOptions, db?: ContactsDatabase): {
|
|
6
|
+
contacts: ContactWithDetails[];
|
|
7
|
+
total: number;
|
|
8
|
+
};
|
|
9
|
+
export declare function updateContact(id: string, input: UpdateContactInput, db?: ContactsDatabase): ContactWithDetails;
|
|
10
|
+
export declare function deleteContact(id: string, db?: ContactsDatabase): void;
|
|
11
|
+
export declare function searchContacts(query: string, db?: ContactsDatabase): ContactWithDetails[];
|
|
12
|
+
export declare function listRecentContacts(limit: number, db?: ContactsDatabase): ContactWithDetails[];
|
|
13
|
+
export declare function mergeContacts(keepId: string, mergeId: string, db?: ContactsDatabase): ContactWithDetails;
|
|
14
|
+
export declare function getContactByEmail(email: string, db?: ContactsDatabase): ContactWithDetails | null;
|
|
15
|
+
export declare function addEmailToContact(contactId: string, email: CreateEmailInput, db?: ContactsDatabase): ContactWithDetails;
|
|
16
|
+
export declare function addPhoneToContact(contactId: string, phone: CreatePhoneInput, db?: ContactsDatabase): ContactWithDetails;
|
|
17
|
+
export declare function archiveContact(id: string, db?: ContactsDatabase): ContactWithDetails;
|
|
18
|
+
export declare function unarchiveContact(id: string, db?: ContactsDatabase): ContactWithDetails;
|
|
19
|
+
export declare function listColdContacts(days: number, db?: ContactsDatabase): ContactWithDetails[];
|
|
20
|
+
export declare function findOrCreateContact(input: CreateContactInput, db?: ContactsDatabase): Promise<{
|
|
21
|
+
contact: ContactWithDetails;
|
|
22
|
+
created: boolean;
|
|
23
|
+
}>;
|
|
24
|
+
export declare function autoLinkContactToCompany(contactId: string, db?: ContactsDatabase): ContactWithDetails | null;
|
|
25
|
+
export declare function linkContactToProject(contactId: string, projectId: string, db?: ContactsDatabase): void;
|
|
26
|
+
export declare function unlinkContactFromProject(contactId: string, projectId: string, db?: ContactsDatabase): void;
|
|
27
|
+
export declare function getContactProjectIds(contactId: string, db?: ContactsDatabase): string[];
|
|
28
|
+
export declare function listContactIdsByProject(projectId: string, db?: ContactsDatabase): string[];
|
|
29
|
+
export declare function setContactProjects(contactId: string, projectIds: string[], db?: ContactsDatabase): void;
|
|
30
|
+
//# sourceMappingURL=contacts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../../src/db/contacts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ContactsDatabase } from "./database.js";
|
|
2
|
+
export interface ContactLock {
|
|
3
|
+
id: string;
|
|
4
|
+
contact_id: string;
|
|
5
|
+
agent_name: string;
|
|
6
|
+
reason?: string | null;
|
|
7
|
+
acquired_at: string;
|
|
8
|
+
expires_at: string;
|
|
9
|
+
session_id?: string | null;
|
|
10
|
+
}
|
|
11
|
+
export interface AgentActivity {
|
|
12
|
+
id: string;
|
|
13
|
+
contact_id: string;
|
|
14
|
+
agent_name: string;
|
|
15
|
+
action: string;
|
|
16
|
+
details?: string | null;
|
|
17
|
+
session_id?: string | null;
|
|
18
|
+
created_at: string;
|
|
19
|
+
}
|
|
20
|
+
export declare function acquireLock(contactId: string, agentName: string, ttlSeconds?: number, reason?: string, sessionId?: string, db?: ContactsDatabase): {
|
|
21
|
+
acquired: boolean;
|
|
22
|
+
lock?: ContactLock;
|
|
23
|
+
held_by?: string;
|
|
24
|
+
};
|
|
25
|
+
export declare function releaseLock(contactId: string, agentName: string, db?: ContactsDatabase): boolean;
|
|
26
|
+
export declare function checkLock(contactId: string, db?: ContactsDatabase): ContactLock | null;
|
|
27
|
+
export declare function cleanExpiredLocks(db?: ContactsDatabase): void;
|
|
28
|
+
export declare function logAgentActivity(contactId: string, agentName: string, action: string, details?: string, sessionId?: string, db?: ContactsDatabase): void;
|
|
29
|
+
export declare function getAgentActivity(contactId: string, limit?: number, db?: ContactsDatabase): AgentActivity[];
|
|
30
|
+
//# sourceMappingURL=coordination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coordination.d.ts","sourceRoot":"","sources":["../../src/db/coordination.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGtD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,WAAW,CACzB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,UAAU,SAAM,EAChB,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,gBAAgB,GACpB;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAkB7D;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAMhG;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,WAAW,GAAG,IAAI,CAMtF;AAED,wBAAgB,iBAAiB,CAAC,EAAE,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAG7D;AAED,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,gBAAgB,GACpB,IAAI,CAON;AAED,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,KAAK,SAAK,EACV,EAAE,CAAC,EAAE,gBAAgB,GACpB,aAAa,EAAE,CAOjB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { SqliteAdapter } from "./sqlite-adapter.js";
|
|
2
|
+
export { getDataDir, getDbPath, getStateDir } from "./paths.js";
|
|
3
|
+
export type ContactsDatabase = SqliteAdapter;
|
|
4
|
+
export declare function getDatabase(path?: string): ContactsDatabase;
|
|
5
|
+
export declare function resetDatabase(): void;
|
|
6
|
+
export declare function uuid(): string;
|
|
7
|
+
export declare function now(): string;
|
|
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,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMpD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAqqBhE,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAK7C,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAW3D;AAED,wBAAgB,aAAa,IAAI,IAAI,CAGpC;AAED,wBAAgB,IAAI,IAAI,MAAM,CAE7B;AAED,wBAAgB,GAAG,IAAI,MAAM,CAK5B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ContactsDatabase } from "./database.js";
|
|
2
|
+
import type { Deal, CreateDealInput, UpdateDealInput, DealStage } from "../types/index.js";
|
|
3
|
+
export declare function createDeal(input: CreateDealInput, db?: ContactsDatabase): Deal;
|
|
4
|
+
export declare function getDeal(id: string, db?: ContactsDatabase): Deal | null;
|
|
5
|
+
export interface ListDealsOptions {
|
|
6
|
+
stage?: DealStage;
|
|
7
|
+
contact_id?: string;
|
|
8
|
+
company_id?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function listDeals(opts?: ListDealsOptions, db?: ContactsDatabase): Deal[];
|
|
11
|
+
export declare function updateDeal(id: string, input: UpdateDealInput, db?: ContactsDatabase): Deal | null;
|
|
12
|
+
export declare function deleteDeal(id: string, db?: ContactsDatabase): void;
|
|
13
|
+
export declare function getDealsByStage(db?: ContactsDatabase): Record<DealStage, Deal[]>;
|
|
14
|
+
//# sourceMappingURL=deals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deals.d.ts","sourceRoot":"","sources":["../../src/db/deals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAqC3F,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAsB9E;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAItE;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,SAAS,CAAC,IAAI,GAAE,gBAAqB,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,IAAI,EAAE,CAYpF;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAoBjG;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAGlE;AAED,wBAAgB,eAAe,CAAC,EAAE,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAShF"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { ContactsDatabase } from "./database.js";
|
|
2
|
+
export declare const DOCUMENT_TYPES: readonly ["passport", "national_id", "tax_id", "ssn", "drivers_license", "bank_account", "visa", "insurance", "contract", "certificate", "medical_record", "prescription", "allergy_list", "vaccination", "blood_type", "health_insurance", "medical_condition", "emergency_contact_medical", "other"];
|
|
3
|
+
export type DocumentType = typeof DOCUMENT_TYPES[number];
|
|
4
|
+
export interface ContactDocument {
|
|
5
|
+
id: string;
|
|
6
|
+
contact_id: string;
|
|
7
|
+
doc_type: DocumentType;
|
|
8
|
+
label: string | null;
|
|
9
|
+
value: string;
|
|
10
|
+
has_file: boolean;
|
|
11
|
+
file_path: string | null;
|
|
12
|
+
metadata: Record<string, unknown>;
|
|
13
|
+
expires_at: string | null;
|
|
14
|
+
created_at: string;
|
|
15
|
+
updated_at: string;
|
|
16
|
+
}
|
|
17
|
+
export interface ContactDocumentSummary {
|
|
18
|
+
id: string;
|
|
19
|
+
doc_type: string;
|
|
20
|
+
label: string | null;
|
|
21
|
+
has_file: boolean;
|
|
22
|
+
expires_at: string | null;
|
|
23
|
+
created_at: string;
|
|
24
|
+
}
|
|
25
|
+
export interface CreateDocumentInput {
|
|
26
|
+
contact_id: string;
|
|
27
|
+
doc_type: DocumentType;
|
|
28
|
+
label?: string;
|
|
29
|
+
value: string;
|
|
30
|
+
file_path?: string;
|
|
31
|
+
metadata?: Record<string, unknown>;
|
|
32
|
+
expires_at?: string;
|
|
33
|
+
}
|
|
34
|
+
export declare function addDocument(input: CreateDocumentInput, db?: ContactsDatabase): ContactDocument;
|
|
35
|
+
export declare function getDocument(id: string, db?: ContactsDatabase): ContactDocument;
|
|
36
|
+
export declare function listDocuments(contactId: string, db?: ContactsDatabase): ContactDocumentSummary[];
|
|
37
|
+
export declare function deleteDocument(id: string, db?: ContactsDatabase): void;
|
|
38
|
+
//# sourceMappingURL=documents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/db/documents.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,eAAO,MAAM,cAAc,wSAMjB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAEzD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,mBAAmB,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,eAAe,CAY9F;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,eAAe,CAM9E;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,sBAAsB,EAAE,CAShG;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAOtE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ContactsDatabase } from "./database.js";
|
|
2
|
+
import type { ContactEvent, CreateEventInput, EventType } from "../types/index.js";
|
|
3
|
+
export declare function logEvent(input: CreateEventInput, db?: ContactsDatabase): ContactEvent;
|
|
4
|
+
export declare function getEvent(id: string, db?: ContactsDatabase): ContactEvent | null;
|
|
5
|
+
export interface ListEventsOptions {
|
|
6
|
+
contact_id?: string;
|
|
7
|
+
company_id?: string;
|
|
8
|
+
type?: EventType;
|
|
9
|
+
date_from?: string;
|
|
10
|
+
date_to?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function listEvents(opts?: ListEventsOptions, db?: ContactsDatabase): ContactEvent[];
|
|
13
|
+
export declare function deleteEvent(id: string, db?: ContactsDatabase): void;
|
|
14
|
+
//# 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,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AA2CnF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,YAAY,CAsBrF;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,YAAY,GAAG,IAAI,CAI/E;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,UAAU,CAAC,IAAI,GAAE,iBAAsB,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,YAAY,EAAE,CAkB9F;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAGnE"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ContactsDatabase } from "./database.js";
|
|
2
|
+
export interface ContactFieldHistory {
|
|
3
|
+
id: string;
|
|
4
|
+
contact_id: string;
|
|
5
|
+
field_name: string;
|
|
6
|
+
old_value?: string | null;
|
|
7
|
+
new_value?: string | null;
|
|
8
|
+
valid_from: string;
|
|
9
|
+
source?: string | null;
|
|
10
|
+
confidence: "verified" | "inferred" | "imported" | "stale";
|
|
11
|
+
created_by?: string | null;
|
|
12
|
+
created_at: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function recordFieldChange(contactId: string, fieldName: string, oldValue: unknown, newValue: unknown, source?: string, createdBy?: string, db?: ContactsDatabase): void;
|
|
15
|
+
export declare function getFieldHistory(contactId: string, fieldName?: string, db?: ContactsDatabase): ContactFieldHistory[];
|
|
16
|
+
export declare function getContactAt(contactId: string, timestamp: string, db?: ContactsDatabase): Record<string, string>;
|
|
17
|
+
//# sourceMappingURL=field-history.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-history.d.ts","sourceRoot":"","sources":["../../src/db/field-history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGtD,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;IAC3D,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,OAAO,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,gBAAgB,GACpB,IAAI,CAiBN;AAED,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,gBAAgB,GACpB,mBAAmB,EAAE,CAcvB;AAED,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,EAAE,CAAC,EAAE,gBAAgB,GACpB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAaxB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ContactsDatabase } from "./database.js";
|
|
2
|
+
export interface FieldFreshness {
|
|
3
|
+
field_name: string;
|
|
4
|
+
value: string | null;
|
|
5
|
+
last_verified_at: string | null;
|
|
6
|
+
source: string | null;
|
|
7
|
+
confidence: "verified" | "inferred" | "imported" | "stale" | "unknown";
|
|
8
|
+
days_old: number | null;
|
|
9
|
+
}
|
|
10
|
+
export interface FreshnessScore {
|
|
11
|
+
contact_id: string;
|
|
12
|
+
overall_score: number;
|
|
13
|
+
fields: FieldFreshness[];
|
|
14
|
+
stale_fields: string[];
|
|
15
|
+
verified_fields: string[];
|
|
16
|
+
}
|
|
17
|
+
export declare function getFreshnessScore(contactId: string, db?: ContactsDatabase): FreshnessScore;
|
|
18
|
+
export declare function getStaleContacts(threshold?: number, db?: ContactsDatabase): Array<{
|
|
19
|
+
contact_id: string;
|
|
20
|
+
display_name: string;
|
|
21
|
+
score: number;
|
|
22
|
+
}>;
|
|
23
|
+
export declare function markFieldVerified(contactId: string, fieldName: string, source?: string, db?: ContactsDatabase): void;
|
|
24
|
+
//# sourceMappingURL=freshness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"freshness.d.ts","sourceRoot":"","sources":["../../src/db/freshness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGtD,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;IACvE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAID,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,cAAc,CAoF1F;AAED,wBAAgB,gBAAgB,CAAC,SAAS,SAAK,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,KAAK,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAoB1I;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAsBpH"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ContactsDatabase } from "./database.js";
|
|
2
|
+
export interface PathNode {
|
|
3
|
+
contact_id: string;
|
|
4
|
+
display_name: string;
|
|
5
|
+
strength: number;
|
|
6
|
+
via_relationship?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function computeRelationshipStrength(contactId: string, db?: ContactsDatabase): number;
|
|
9
|
+
export declare function findWarmPath(fromContactId: string, toContactId: string, db?: ContactsDatabase): PathNode[];
|
|
10
|
+
export declare function findConnectionsAtCompany(companyId: string, db?: ContactsDatabase): Array<{
|
|
11
|
+
contact_id: string;
|
|
12
|
+
display_name: string;
|
|
13
|
+
job_title?: string;
|
|
14
|
+
strength: number;
|
|
15
|
+
}>;
|
|
16
|
+
export declare function detectCoolingRelationships(db?: ContactsDatabase): Array<{
|
|
17
|
+
contact_id: string;
|
|
18
|
+
display_name: string;
|
|
19
|
+
days_since: number;
|
|
20
|
+
}>;
|
|
21
|
+
//# sourceMappingURL=graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/db/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGtD,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAuB5F;AAED,wBAAgB,YAAY,CAC1B,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,EAAE,CAAC,EAAE,gBAAgB,GACpB,QAAQ,EAAE,CAkCZ;AAED,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,EAAE,CAAC,EAAE,gBAAgB,GACpB,KAAK,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAY3F;AAED,wBAAgB,0BAA0B,CACxC,EAAE,CAAC,EAAE,gBAAgB,GACpB,KAAK,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAQzE"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ContactsDatabase } from "./database.js";
|
|
2
|
+
import type { Group, CreateGroupInput, UpdateGroupInput } from "../types/index.js";
|
|
3
|
+
export declare function createGroup(db: ContactsDatabase, input: CreateGroupInput): Group;
|
|
4
|
+
export declare function getGroup(db: ContactsDatabase, id: string): Group | null;
|
|
5
|
+
export declare function listGroups(db: ContactsDatabase, projectId?: string): Group[];
|
|
6
|
+
export declare function updateGroup(db: ContactsDatabase, id: string, input: UpdateGroupInput): Group;
|
|
7
|
+
export declare function deleteGroup(db: ContactsDatabase, id: string): void;
|
|
8
|
+
export declare function addContactToGroup(db: ContactsDatabase, contactId: string, groupId: string): {
|
|
9
|
+
added: boolean;
|
|
10
|
+
already_member: boolean;
|
|
11
|
+
};
|
|
12
|
+
export declare function removeContactFromGroup(db: ContactsDatabase, contactId: string, groupId: string): void;
|
|
13
|
+
export declare function listContactsInGroup(db: ContactsDatabase, groupId: string): string[];
|
|
14
|
+
export declare function listGroupsForContact(db: ContactsDatabase, contactId: string): Group[];
|
|
15
|
+
export declare function addCompanyToGroup(db: ContactsDatabase, companyId: string, groupId: string): {
|
|
16
|
+
added: boolean;
|
|
17
|
+
already_member: boolean;
|
|
18
|
+
};
|
|
19
|
+
export declare function removeCompanyFromGroup(db: ContactsDatabase, companyId: string, groupId: string): void;
|
|
20
|
+
export declare function listCompaniesInGroup(db: ContactsDatabase, groupId: string): string[];
|
|
21
|
+
export declare function listGroupsForCompany(db: ContactsDatabase, companyId: string): Group[];
|
|
22
|
+
//# sourceMappingURL=groups.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../src/db/groups.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEnF,wBAAgB,WAAW,CAAC,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,GAAG,KAAK,CAKhF;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAEvE;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,gBAAgB,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,CAS5E;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,KAAK,CAU5F;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAElE;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,cAAc,EAAE,OAAO,CAAA;CAAE,CAKvI;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAErG;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAGnF;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,EAAE,CAIrF;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,cAAc,EAAE,OAAO,CAAA;CAAE,CAKvI;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAErG;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAGpF;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,EAAE,CAIrF"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { ContactsDatabase } from "./database.js";
|
|
2
|
+
export interface EmergencyContact {
|
|
3
|
+
name: string;
|
|
4
|
+
phone: string;
|
|
5
|
+
relationship: string;
|
|
6
|
+
}
|
|
7
|
+
export interface ContactHealth {
|
|
8
|
+
id: string;
|
|
9
|
+
contact_id: string;
|
|
10
|
+
blood_type: string | null;
|
|
11
|
+
allergies: string[];
|
|
12
|
+
medical_conditions: string[];
|
|
13
|
+
medications: string[];
|
|
14
|
+
emergency_contacts: EmergencyContact[];
|
|
15
|
+
health_insurance_provider: string | null;
|
|
16
|
+
health_insurance_id: string | null;
|
|
17
|
+
primary_physician: string | null;
|
|
18
|
+
primary_physician_phone: string | null;
|
|
19
|
+
organ_donor: boolean;
|
|
20
|
+
notes: string | null;
|
|
21
|
+
created_at: string;
|
|
22
|
+
updated_at: string;
|
|
23
|
+
}
|
|
24
|
+
export interface SetHealthInput {
|
|
25
|
+
blood_type?: string;
|
|
26
|
+
allergies?: string[];
|
|
27
|
+
medical_conditions?: string[];
|
|
28
|
+
medications?: string[];
|
|
29
|
+
emergency_contacts?: EmergencyContact[];
|
|
30
|
+
health_insurance_provider?: string;
|
|
31
|
+
health_insurance_id?: string;
|
|
32
|
+
primary_physician?: string;
|
|
33
|
+
primary_physician_phone?: string;
|
|
34
|
+
organ_donor?: boolean;
|
|
35
|
+
notes?: string;
|
|
36
|
+
}
|
|
37
|
+
export declare function setHealthData(contactId: string, input: SetHealthInput, db?: ContactsDatabase): ContactHealth;
|
|
38
|
+
export declare function getHealthData(contactId: string, db?: ContactsDatabase): ContactHealth | null;
|
|
39
|
+
export declare function deleteHealthData(contactId: string, db?: ContactsDatabase): void;
|
|
40
|
+
//# sourceMappingURL=health.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/db/health.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,kBAAkB,EAAE,gBAAgB,EAAE,CAAC;IACvC,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,kBAAkB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACxC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,aAAa,CAgC5G;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,aAAa,GAAG,IAAI,CAmB5F;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAG/E"}
|