@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.
Files changed (214) hide show
  1. package/README.md +10 -1
  2. package/dashboard/dist/assets/index-0l6aQb1t.css +1 -0
  3. package/dashboard/dist/assets/index-opnZdkVD.js +229 -0
  4. package/dashboard/dist/index.html +13 -0
  5. package/dist/cli/commands/advanced.d.ts +3 -0
  6. package/dist/cli/commands/advanced.d.ts.map +1 -0
  7. package/dist/cli/commands/audience.d.ts +18 -0
  8. package/dist/cli/commands/audience.d.ts.map +1 -0
  9. package/dist/cli/commands/core.d.ts +3 -0
  10. package/dist/cli/commands/core.d.ts.map +1 -0
  11. package/dist/cli/commands/crm.d.ts +3 -0
  12. package/dist/cli/commands/crm.d.ts.map +1 -0
  13. package/dist/cli/index.d.ts +3 -0
  14. package/dist/cli/index.d.ts.map +1 -0
  15. package/dist/cli/index.js +2994 -579
  16. package/dist/cli/storage.d.ts +3 -0
  17. package/dist/cli/storage.d.ts.map +1 -0
  18. package/dist/cli/utils.d.ts +10 -0
  19. package/dist/cli/utils.d.ts.map +1 -0
  20. package/dist/cloud/http-storage.d.ts +88 -0
  21. package/dist/cloud/http-storage.d.ts.map +1 -0
  22. package/dist/db/activity.d.ts +15 -0
  23. package/dist/db/activity.d.ts.map +1 -0
  24. package/dist/db/applications.d.ts +10 -0
  25. package/dist/db/applications.d.ts.map +1 -0
  26. package/dist/db/audiences.d.ts +51 -0
  27. package/dist/db/audiences.d.ts.map +1 -0
  28. package/dist/db/companies.d.ts +19 -0
  29. package/dist/db/companies.d.ts.map +1 -0
  30. package/dist/db/contact-tasks.d.ts +19 -0
  31. package/dist/db/contact-tasks.d.ts.map +1 -0
  32. package/dist/db/contacts.d.ts +30 -0
  33. package/dist/db/contacts.d.ts.map +1 -0
  34. package/dist/db/coordination.d.ts +30 -0
  35. package/dist/db/coordination.d.ts.map +1 -0
  36. package/dist/db/database.d.ts +8 -0
  37. package/dist/db/database.d.ts.map +1 -0
  38. package/dist/db/deals.d.ts +14 -0
  39. package/dist/db/deals.d.ts.map +1 -0
  40. package/dist/db/documents.d.ts +38 -0
  41. package/dist/db/documents.d.ts.map +1 -0
  42. package/dist/db/events.d.ts +14 -0
  43. package/dist/db/events.d.ts.map +1 -0
  44. package/dist/db/field-history.d.ts +17 -0
  45. package/dist/db/field-history.d.ts.map +1 -0
  46. package/dist/db/freshness.d.ts +24 -0
  47. package/dist/db/freshness.d.ts.map +1 -0
  48. package/dist/db/graph.d.ts +21 -0
  49. package/dist/db/graph.d.ts.map +1 -0
  50. package/dist/db/groups.d.ts +22 -0
  51. package/dist/db/groups.d.ts.map +1 -0
  52. package/dist/db/health.d.ts +40 -0
  53. package/dist/db/health.d.ts.map +1 -0
  54. package/dist/db/identity.d.ts +32 -0
  55. package/dist/db/identity.d.ts.map +1 -0
  56. package/dist/db/job-history.d.ts +29 -0
  57. package/dist/db/job-history.d.ts.map +1 -0
  58. package/dist/db/learnings.d.ts +43 -0
  59. package/dist/db/learnings.d.ts.map +1 -0
  60. package/dist/db/notes.d.ts +8 -0
  61. package/dist/db/notes.d.ts.map +1 -0
  62. package/dist/db/org-chart.d.ts +37 -0
  63. package/dist/db/org-chart.d.ts.map +1 -0
  64. package/dist/db/org-members.d.ts +9 -0
  65. package/dist/db/org-members.d.ts.map +1 -0
  66. package/dist/db/paths.d.ts +15 -0
  67. package/dist/db/paths.d.ts.map +1 -0
  68. package/dist/db/pg-migrations.d.ts +8 -0
  69. package/dist/db/pg-migrations.d.ts.map +1 -0
  70. package/dist/db/project-memberships.d.ts +8 -0
  71. package/dist/db/project-memberships.d.ts.map +1 -0
  72. package/dist/db/relationships.d.ts +30 -0
  73. package/dist/db/relationships.d.ts.map +1 -0
  74. package/dist/db/signals.d.ts +18 -0
  75. package/dist/db/signals.d.ts.map +1 -0
  76. package/dist/db/sqlite-adapter.d.ts +15 -0
  77. package/dist/db/sqlite-adapter.d.ts.map +1 -0
  78. package/dist/db/storage.d.ts +15 -0
  79. package/dist/db/storage.d.ts.map +1 -0
  80. package/dist/db/tags.d.ts +14 -0
  81. package/dist/db/tags.d.ts.map +1 -0
  82. package/dist/db/tombstones.d.ts +19 -0
  83. package/dist/db/tombstones.d.ts.map +1 -0
  84. package/dist/db/vendor-comms.d.ts +15 -0
  85. package/dist/db/vendor-comms.d.ts.map +1 -0
  86. package/dist/generated/storage-kit/health.d.ts +20 -0
  87. package/dist/generated/storage-kit/health.d.ts.map +1 -0
  88. package/dist/generated/storage-kit/index.d.ts +8 -0
  89. package/dist/generated/storage-kit/index.d.ts.map +1 -0
  90. package/dist/generated/storage-kit/migrations.d.ts +48 -0
  91. package/dist/generated/storage-kit/migrations.d.ts.map +1 -0
  92. package/dist/generated/storage-kit/mode.d.ts +48 -0
  93. package/dist/generated/storage-kit/mode.d.ts.map +1 -0
  94. package/dist/generated/storage-kit/pool.d.ts +34 -0
  95. package/dist/generated/storage-kit/pool.d.ts.map +1 -0
  96. package/dist/generated/storage-kit/query.d.ts +36 -0
  97. package/dist/generated/storage-kit/query.d.ts.map +1 -0
  98. package/dist/generated/storage-kit/tls.d.ts +26 -0
  99. package/dist/generated/storage-kit/tls.d.ts.map +1 -0
  100. package/dist/index.d.ts +9 -0
  101. package/dist/index.d.ts.map +1 -0
  102. package/dist/index.js +805 -75
  103. package/dist/lib/apple-contacts.d.ts +3 -0
  104. package/dist/lib/apple-contacts.d.ts.map +1 -0
  105. package/dist/lib/audience-contract.d.ts +215 -0
  106. package/dist/lib/audience-contract.d.ts.map +1 -0
  107. package/dist/lib/audit.d.ts +12 -0
  108. package/dist/lib/audit.d.ts.map +1 -0
  109. package/dist/lib/brief.d.ts +3 -0
  110. package/dist/lib/brief.d.ts.map +1 -0
  111. package/dist/lib/config.d.ts +7 -0
  112. package/dist/lib/config.d.ts.map +1 -0
  113. package/dist/lib/connector.d.ts +44 -0
  114. package/dist/lib/connector.d.ts.map +1 -0
  115. package/dist/lib/context.d.ts +5 -0
  116. package/dist/lib/context.d.ts.map +1 -0
  117. package/dist/lib/dedup.d.ts +10 -0
  118. package/dist/lib/dedup.d.ts.map +1 -0
  119. package/dist/lib/document-scanner.d.ts +8 -0
  120. package/dist/lib/document-scanner.d.ts.map +1 -0
  121. package/dist/lib/embeddings.d.ts +9 -0
  122. package/dist/lib/embeddings.d.ts.map +1 -0
  123. package/dist/lib/export.d.ts +8 -0
  124. package/dist/lib/export.d.ts.map +1 -0
  125. package/dist/lib/freshness.d.ts +19 -0
  126. package/dist/lib/freshness.d.ts.map +1 -0
  127. package/dist/lib/gmail-import.d.ts +51 -0
  128. package/dist/lib/gmail-import.d.ts.map +1 -0
  129. package/dist/lib/google-contacts.d.ts +115 -0
  130. package/dist/lib/google-contacts.d.ts.map +1 -0
  131. package/dist/lib/images.d.ts +30 -0
  132. package/dist/lib/images.d.ts.map +1 -0
  133. package/dist/lib/import.d.ts +10 -0
  134. package/dist/lib/import.d.ts.map +1 -0
  135. package/dist/lib/learning-maintenance.d.ts +8 -0
  136. package/dist/lib/learning-maintenance.d.ts.map +1 -0
  137. package/dist/lib/mailery-sync.d.ts +46 -0
  138. package/dist/lib/mailery-sync.d.ts.map +1 -0
  139. package/dist/lib/meeting-capture.d.ts +15 -0
  140. package/dist/lib/meeting-capture.d.ts.map +1 -0
  141. package/dist/lib/package-version.d.ts +6 -0
  142. package/dist/lib/package-version.d.ts.map +1 -0
  143. package/dist/lib/signals.d.ts +9 -0
  144. package/dist/lib/signals.d.ts.map +1 -0
  145. package/dist/lib/signature-parser.d.ts +36 -0
  146. package/dist/lib/signature-parser.d.ts.map +1 -0
  147. package/dist/lib/stats.d.ts +24 -0
  148. package/dist/lib/stats.d.ts.map +1 -0
  149. package/dist/lib/timeline.d.ts +11 -0
  150. package/dist/lib/timeline.d.ts.map +1 -0
  151. package/dist/lib/upcoming.d.ts +14 -0
  152. package/dist/lib/upcoming.d.ts.map +1 -0
  153. package/dist/lib/vault.d.ts +28 -0
  154. package/dist/lib/vault.d.ts.map +1 -0
  155. package/dist/mcp/handlers/advanced.d.ts +14 -0
  156. package/dist/mcp/handlers/advanced.d.ts.map +1 -0
  157. package/dist/mcp/handlers/audience.d.ts +9 -0
  158. package/dist/mcp/handlers/audience.d.ts.map +1 -0
  159. package/dist/mcp/handlers/core.d.ts +10 -0
  160. package/dist/mcp/handlers/core.d.ts.map +1 -0
  161. package/dist/mcp/handlers/crm.d.ts +14 -0
  162. package/dist/mcp/handlers/crm.d.ts.map +1 -0
  163. package/dist/mcp/handlers/index.d.ts +4 -0
  164. package/dist/mcp/handlers/index.d.ts.map +1 -0
  165. package/dist/mcp/handlers/types.d.ts +10 -0
  166. package/dist/mcp/handlers/types.d.ts.map +1 -0
  167. package/dist/mcp/http.d.ts +17 -0
  168. package/dist/mcp/http.d.ts.map +1 -0
  169. package/dist/mcp/index.d.ts +5 -0
  170. package/dist/mcp/index.d.ts.map +1 -0
  171. package/dist/mcp/index.js +1054 -291
  172. package/dist/mcp/register-tools.d.ts +3 -0
  173. package/dist/mcp/register-tools.d.ts.map +1 -0
  174. package/dist/mcp/schema.d.ts +3 -0
  175. package/dist/mcp/schema.d.ts.map +1 -0
  176. package/dist/mcp/storage-tools.d.ts +3 -0
  177. package/dist/mcp/storage-tools.d.ts.map +1 -0
  178. package/dist/mcp/tools.d.ts +3799 -0
  179. package/dist/mcp/tools.d.ts.map +1 -0
  180. package/dist/sdk/index.d.ts +16 -0
  181. package/dist/sdk/index.d.ts.map +1 -0
  182. package/dist/sdk/index.js +63 -0
  183. package/dist/sdk/v1.generated.d.ts +270 -0
  184. package/dist/sdk/v1.generated.d.ts.map +1 -0
  185. package/dist/server/cloud-index.d.ts +3 -0
  186. package/dist/server/cloud-index.d.ts.map +1 -0
  187. package/dist/server/cloud-serve.d.ts +3 -0
  188. package/dist/server/cloud-serve.d.ts.map +1 -0
  189. package/dist/server/cloud.d.ts +53 -0
  190. package/dist/server/cloud.d.ts.map +1 -0
  191. package/dist/server/index.d.ts +3 -0
  192. package/dist/server/index.d.ts.map +1 -0
  193. package/dist/server/index.js +1750 -332
  194. package/dist/server/openapi.d.ts +1134 -0
  195. package/dist/server/openapi.d.ts.map +1 -0
  196. package/dist/server/pg-store.d.ts +893 -0
  197. package/dist/server/pg-store.d.ts.map +1 -0
  198. package/dist/server/security.d.ts +24 -0
  199. package/dist/server/security.d.ts.map +1 -0
  200. package/dist/server/serve.d.ts +9 -0
  201. package/dist/server/serve.d.ts.map +1 -0
  202. package/dist/server/v1.d.ts +28 -0
  203. package/dist/server/v1.d.ts.map +1 -0
  204. package/dist/store/index.d.ts +387 -0
  205. package/dist/store/index.d.ts.map +1 -0
  206. package/dist/types/index.d.ts +856 -0
  207. package/dist/types/index.d.ts.map +1 -0
  208. package/dist/types/project-memberships.d.ts +32 -0
  209. package/dist/types/project-memberships.d.ts.map +1 -0
  210. package/hasna.contract.json +1 -1
  211. package/migrations/0015_contact_project_membership_authority.sql +88 -0
  212. package/package.json +4 -2
  213. package/vendor/fast-uri/README.md +12 -0
  214. package/dist/server/cloud-index.js +0 -9187
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAg/CnB,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @hasna/contacts SDK — typed `/v1` cloud client.
3
+ *
4
+ * Generated from the serve OpenAPI document (src/server/openapi.ts).
5
+ * Regenerate with `bun run scripts/generate-sdk.ts`.
6
+ *
7
+ * import { ContactsV1Client } from "@hasna/contacts/sdk";
8
+ * const client = new ContactsV1Client({
9
+ * baseUrl: process.env.CONTACTS_API_URL!, // self_hosted service URL
10
+ * apiKey: process.env.CONTACTS_API_KEY!, // contracts-issued key
11
+ * });
12
+ * const { contacts } = await client.listContacts({ limit: 20 });
13
+ */
14
+ export { ContactsV1Client, ApiError as ContactsV1ApiError } from "./v1.generated.js";
15
+ export type { ContactsV1ClientOptions, Contact as ContactsV1Contact, Company as ContactsV1Company, Tag as ContactsV1Tag, CreateContactInput as ContactsV1CreateContactInput, UpdateContactInput as ContactsV1UpdateContactInput, CreateCompanyInput as ContactsV1CreateCompanyInput, UpdateCompanyInput as ContactsV1UpdateCompanyInput, CreateTagInput as ContactsV1CreateTagInput, UpdateTagInput as ContactsV1UpdateTagInput, ProjectIdsInput as ContactsV1ProjectIdsInput, ContactProjectMembershipSnapshot as ContactsV1ProjectMembershipSnapshot, ContactProjectMembershipMutationInput as ContactsV1ProjectMembershipMutationInput, ContactProjectMembershipMutationResult as ContactsV1ProjectMembershipMutationResult, ContactProjectMembershipListResult as ContactsV1ProjectMembershipListResult, } from "./v1.generated.js";
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,gBAAgB,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACrF,YAAY,EACV,uBAAuB,EACvB,OAAO,IAAI,iBAAiB,EAC5B,OAAO,IAAI,iBAAiB,EAC5B,GAAG,IAAI,aAAa,EACpB,kBAAkB,IAAI,4BAA4B,EAClD,kBAAkB,IAAI,4BAA4B,EAClD,kBAAkB,IAAI,4BAA4B,EAClD,kBAAkB,IAAI,4BAA4B,EAClD,cAAc,IAAI,wBAAwB,EAC1C,cAAc,IAAI,wBAAwB,EAC1C,eAAe,IAAI,yBAAyB,EAC5C,gCAAgC,IAAI,mCAAmC,EACvE,qCAAqC,IAAI,wCAAwC,EACjF,sCAAsC,IAAI,yCAAyC,EACnF,kCAAkC,IAAI,qCAAqC,GAC5E,MAAM,mBAAmB,CAAC"}
package/dist/sdk/index.js CHANGED
@@ -103,6 +103,34 @@ class ContactsV1Client {
103
103
  init
104
104
  });
105
105
  }
106
+ async getContactProjectIds(contactId, init) {
107
+ return this.request("GET", `/v1/contacts/${encodeURIComponent(String(contactId))}/projects`, {
108
+ body: undefined,
109
+ query: undefined,
110
+ init
111
+ });
112
+ }
113
+ async setContactProjects(contactId, body, init) {
114
+ return this.request("PUT", `/v1/contacts/${encodeURIComponent(String(contactId))}/projects`, {
115
+ body,
116
+ query: undefined,
117
+ init
118
+ });
119
+ }
120
+ async linkContactToProject(contactId, projectId, init) {
121
+ return this.request("PUT", `/v1/contacts/${encodeURIComponent(String(contactId))}/projects/${encodeURIComponent(String(projectId))}`, {
122
+ body: undefined,
123
+ query: undefined,
124
+ init
125
+ });
126
+ }
127
+ async unlinkContactFromProject(contactId, projectId, init) {
128
+ return this.request("DELETE", `/v1/contacts/${encodeURIComponent(String(contactId))}/projects/${encodeURIComponent(String(projectId))}`, {
129
+ body: undefined,
130
+ query: undefined,
131
+ init
132
+ });
133
+ }
106
134
  async addTagToContact(contactId, tagId, init) {
107
135
  return this.request("PUT", `/v1/contacts/${encodeURIComponent(String(contactId))}/tags/${encodeURIComponent(String(tagId))}`, {
108
136
  body: undefined,
@@ -138,6 +166,41 @@ class ContactsV1Client {
138
166
  init
139
167
  });
140
168
  }
169
+ async listContactProjectMemberships(projectId, query, init) {
170
+ return this.request("GET", `/v1/projects/${encodeURIComponent(String(projectId))}/contact-memberships`, {
171
+ body: undefined,
172
+ query,
173
+ init
174
+ });
175
+ }
176
+ async readContactProjectMembership(projectId, contactId, init) {
177
+ return this.request("GET", `/v1/projects/${encodeURIComponent(String(projectId))}/contact-memberships/${encodeURIComponent(String(contactId))}`, {
178
+ body: undefined,
179
+ query: undefined,
180
+ init
181
+ });
182
+ }
183
+ async attachContactProjectMembership(projectId, contactId, body, init) {
184
+ return this.request("POST", `/v1/projects/${encodeURIComponent(String(projectId))}/contact-memberships/${encodeURIComponent(String(contactId))}/attach`, {
185
+ body,
186
+ query: undefined,
187
+ init
188
+ });
189
+ }
190
+ async detachContactProjectMembership(projectId, contactId, body, init) {
191
+ return this.request("POST", `/v1/projects/${encodeURIComponent(String(projectId))}/contact-memberships/${encodeURIComponent(String(contactId))}/detach`, {
192
+ body,
193
+ query: undefined,
194
+ init
195
+ });
196
+ }
197
+ async listContactIdsByProject(projectId, init) {
198
+ return this.request("GET", `/v1/projects/${encodeURIComponent(String(projectId))}/contacts`, {
199
+ body: undefined,
200
+ query: undefined,
201
+ init
202
+ });
203
+ }
141
204
  async getStats(init) {
142
205
  return this.request("GET", `/v1/stats`, {
143
206
  body: undefined,
@@ -0,0 +1,270 @@
1
+ export interface Contact {
2
+ "id"?: string;
3
+ "first_name"?: string;
4
+ "last_name"?: string;
5
+ "display_name"?: string;
6
+ "nickname"?: string | null;
7
+ "company_id"?: string | null;
8
+ "job_title"?: string | null;
9
+ "notes"?: string | null;
10
+ "source"?: string;
11
+ "status"?: string;
12
+ "sensitivity"?: string;
13
+ "archived"?: boolean;
14
+ "priority"?: number;
15
+ "tags": Array<Tag>;
16
+ "created_at"?: string;
17
+ "updated_at"?: string;
18
+ }
19
+ export interface Company {
20
+ "id"?: string;
21
+ "name"?: string;
22
+ "domain"?: string | null;
23
+ "industry"?: string | null;
24
+ "size"?: string | null;
25
+ "founded_year"?: number | null;
26
+ "notes"?: string | null;
27
+ "is_owned_entity"?: boolean;
28
+ "created_at"?: string;
29
+ "updated_at"?: string;
30
+ }
31
+ export interface Tag {
32
+ "id"?: string;
33
+ "name"?: string;
34
+ "color"?: string;
35
+ "description"?: string | null;
36
+ "created_at"?: string;
37
+ }
38
+ export interface CreateContactInput {
39
+ "first_name"?: string;
40
+ "last_name"?: string;
41
+ "display_name"?: string;
42
+ "nickname"?: string;
43
+ "company_id"?: string;
44
+ "job_title"?: string;
45
+ "notes"?: string;
46
+ "source"?: string;
47
+ "status"?: string;
48
+ "sensitivity"?: string;
49
+ }
50
+ export interface UpdateContactInput {
51
+ "first_name"?: string;
52
+ "last_name"?: string;
53
+ "display_name"?: string;
54
+ "nickname"?: string;
55
+ "company_id"?: string;
56
+ "job_title"?: string;
57
+ "notes"?: string;
58
+ "status"?: string;
59
+ }
60
+ export interface CreateCompanyInput {
61
+ "name": string;
62
+ "domain"?: string;
63
+ "industry"?: string;
64
+ "size"?: string;
65
+ "founded_year"?: number;
66
+ "notes"?: string;
67
+ "is_owned_entity"?: boolean;
68
+ }
69
+ export interface UpdateCompanyInput {
70
+ "name"?: string;
71
+ "domain"?: string;
72
+ "industry"?: string;
73
+ "notes"?: string;
74
+ }
75
+ export interface CreateTagInput {
76
+ "name": string;
77
+ "color"?: string;
78
+ "description"?: string;
79
+ }
80
+ export interface UpdateTagInput {
81
+ "name"?: string;
82
+ "color"?: string;
83
+ "description"?: string;
84
+ }
85
+ export interface ProjectIdsInput {
86
+ "project_ids": Array<string>;
87
+ }
88
+ export interface ContactProjectMembershipSnapshot {
89
+ "contact_id": string;
90
+ "project_id": string;
91
+ "linked": boolean;
92
+ "version": string;
93
+ }
94
+ export interface ContactProjectMembershipMutationInput {
95
+ "operation_id": string;
96
+ "step_id": string;
97
+ "expected_version": string;
98
+ }
99
+ export interface ContactProjectMembershipMutationResult {
100
+ "outcome": "accepted" | "duplicate_of_accepted";
101
+ "operation_id": string;
102
+ "step_id": string;
103
+ "before": ContactProjectMembershipSnapshot;
104
+ "after": ContactProjectMembershipSnapshot;
105
+ "receipt_id": string;
106
+ }
107
+ export interface ContactProjectMembershipListResult {
108
+ "project_id": string;
109
+ "contact_ids": Array<string>;
110
+ "complete": boolean;
111
+ "membership_revision": string;
112
+ }
113
+ export interface ContactsV1ClientOptions {
114
+ /** Base URL, e.g. process.env.APP_API_URL. */
115
+ baseUrl: string;
116
+ /** API key, e.g. process.env.APP_API_KEY. Sent as the 'x-api-key' header. */
117
+ apiKey?: string;
118
+ /** Custom fetch (defaults to global fetch). */
119
+ fetch?: typeof fetch;
120
+ /** Extra headers merged into every request. */
121
+ headers?: Record<string, string>;
122
+ }
123
+ export declare class ApiError extends Error {
124
+ readonly status: number;
125
+ readonly body: unknown;
126
+ constructor(status: number, message: string, body: unknown);
127
+ }
128
+ export declare class ContactsV1Client {
129
+ private readonly baseUrl;
130
+ private readonly apiKey;
131
+ private readonly fetchImpl;
132
+ private readonly baseHeaders;
133
+ constructor(options: ContactsV1ClientOptions);
134
+ private request;
135
+ /** List companies */
136
+ listCompanies(query?: {
137
+ "industry"?: string;
138
+ "limit"?: number;
139
+ "offset"?: number;
140
+ }, init?: RequestInit): Promise<{
141
+ "companies"?: Array<Company>;
142
+ "count"?: number;
143
+ }>;
144
+ /** Create a company */
145
+ createCompany(body: CreateCompanyInput, init?: RequestInit): Promise<{
146
+ "company"?: Company;
147
+ }>;
148
+ /** Get a company by id */
149
+ getCompany(id: string, init?: RequestInit): Promise<{
150
+ "company"?: Company;
151
+ }>;
152
+ /** Delete a company */
153
+ deleteCompany(id: string, init?: RequestInit): Promise<{
154
+ "deleted"?: boolean;
155
+ "id"?: string;
156
+ }>;
157
+ /** Update a company */
158
+ updateCompany(id: string, body: UpdateCompanyInput, init?: RequestInit): Promise<{
159
+ "company"?: Company;
160
+ }>;
161
+ /** List contacts */
162
+ listContacts(query?: {
163
+ "q"?: string;
164
+ "company_id"?: string;
165
+ "status"?: string;
166
+ "tag_id"?: string;
167
+ "limit"?: number;
168
+ "offset"?: number;
169
+ }, init?: RequestInit): Promise<{
170
+ "contacts"?: Array<Contact>;
171
+ "count"?: number;
172
+ }>;
173
+ /** Create a contact */
174
+ createContact(body: CreateContactInput, init?: RequestInit): Promise<{
175
+ "contact"?: Contact;
176
+ }>;
177
+ /** List project ids attached to a contact */
178
+ getContactProjectIds(contactId: string, init?: RequestInit): Promise<{
179
+ "contact_id"?: string;
180
+ "project_ids"?: Array<string>;
181
+ }>;
182
+ /** Atomically replace a contact's project memberships */
183
+ setContactProjects(contactId: string, body: ProjectIdsInput, init?: RequestInit): Promise<{
184
+ "contact_id"?: string;
185
+ "project_ids"?: Array<string>;
186
+ }>;
187
+ /** Attach a contact to a project idempotently */
188
+ linkContactToProject(contactId: string, projectId: string, init?: RequestInit): Promise<{
189
+ "attached"?: boolean;
190
+ "contact_id"?: string;
191
+ "project_id"?: string;
192
+ }>;
193
+ /** Detach a contact from a project */
194
+ unlinkContactFromProject(contactId: string, projectId: string, init?: RequestInit): Promise<{
195
+ "removed"?: boolean;
196
+ "contact_id"?: string;
197
+ "project_id"?: string;
198
+ }>;
199
+ /** Attach a tag to a contact idempotently */
200
+ addTagToContact(contactId: string, tagId: string, init?: RequestInit): Promise<{
201
+ "attached"?: boolean;
202
+ "contact_id"?: string;
203
+ "tag_id"?: string;
204
+ }>;
205
+ /** Remove a tag from a contact */
206
+ removeTagFromContact(contactId: string, tagId: string, init?: RequestInit): Promise<{
207
+ "removed"?: boolean;
208
+ "contact_id"?: string;
209
+ "tag_id"?: string;
210
+ }>;
211
+ /** Get a contact by id */
212
+ getContact(id: string, init?: RequestInit): Promise<{
213
+ "contact"?: Contact;
214
+ }>;
215
+ /** Delete a contact */
216
+ deleteContact(id: string, init?: RequestInit): Promise<{
217
+ "deleted"?: boolean;
218
+ "id"?: string;
219
+ }>;
220
+ /** Update a contact */
221
+ updateContact(id: string, body: UpdateContactInput, init?: RequestInit): Promise<{
222
+ "contact"?: Contact;
223
+ }>;
224
+ /** List the complete authoritative contact membership collection for a project */
225
+ listContactProjectMemberships(projectId: string, query?: {
226
+ "max_items": number;
227
+ }, init?: RequestInit): Promise<ContactProjectMembershipListResult>;
228
+ /** Read one authoritative contact-project membership snapshot */
229
+ readContactProjectMembership(projectId: string, contactId: string, init?: RequestInit): Promise<ContactProjectMembershipSnapshot>;
230
+ /** Attach a contact to a project under expected-version CAS with a replay-safe receipt */
231
+ attachContactProjectMembership(projectId: string, contactId: string, body: ContactProjectMembershipMutationInput, init?: RequestInit): Promise<ContactProjectMembershipMutationResult>;
232
+ /** Detach a contact from a project under expected-version CAS with a replay-safe receipt */
233
+ detachContactProjectMembership(projectId: string, contactId: string, body: ContactProjectMembershipMutationInput, init?: RequestInit): Promise<ContactProjectMembershipMutationResult>;
234
+ /** List contact ids attached to a project */
235
+ listContactIdsByProject(projectId: string, init?: RequestInit): Promise<{
236
+ "project_id"?: string;
237
+ "contact_ids"?: Array<string>;
238
+ }>;
239
+ /** Aggregate counts */
240
+ getStats(init?: RequestInit): Promise<{
241
+ "contacts"?: number;
242
+ "companies"?: number;
243
+ "tags"?: number;
244
+ }>;
245
+ /** List tags */
246
+ listTags(query?: {
247
+ "name"?: string;
248
+ }, init?: RequestInit): Promise<{
249
+ "tags"?: Array<Tag>;
250
+ "count"?: number;
251
+ }>;
252
+ /** Create a tag */
253
+ createTag(body: CreateTagInput, init?: RequestInit): Promise<{
254
+ "tag"?: Tag;
255
+ }>;
256
+ /** Get a tag by id */
257
+ getTag(id: string, init?: RequestInit): Promise<{
258
+ "tag"?: Tag;
259
+ }>;
260
+ /** Delete a tag */
261
+ deleteTag(id: string, init?: RequestInit): Promise<{
262
+ "deleted"?: boolean;
263
+ "id"?: string;
264
+ }>;
265
+ /** Update a tag */
266
+ updateTag(id: string, body: UpdateTagInput, init?: RequestInit): Promise<{
267
+ "tag"?: Tag;
268
+ }>;
269
+ }
270
+ //# sourceMappingURL=v1.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v1.generated.d.ts","sourceRoot":"","sources":["../../src/sdk/v1.generated.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,OAAO;IAAG,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE;AAE3Y,MAAM,WAAW,OAAO;IAAG,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE;AAE7Q,MAAM,WAAW,GAAG;IAAG,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE;AAE/H,MAAM,WAAW,kBAAkB;IAAG,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE;AAE9P,MAAM,WAAW,kBAAkB;IAAG,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE;AAEnN,MAAM,WAAW,kBAAkB;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAE;AAEvL,MAAM,WAAW,kBAAkB;IAAG,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;AAEjH,MAAM,WAAW,cAAc;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE;AAE5F,MAAM,WAAW,cAAc;IAAG,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE;AAE7F,MAAM,WAAW,eAAe;IAAG,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CAAE;AAEjE,MAAM,WAAW,gCAAgC;IAAG,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AAEtI,MAAM,WAAW,qCAAqC;IAAG,cAAc,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE;AAEhI,MAAM,WAAW,sCAAsC;IAAG,SAAS,EAAE,UAAU,GAAG,uBAAuB,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,gCAAgC,CAAC;IAAC,OAAO,EAAE,gCAAgC,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE;AAEnQ,MAAM,WAAW,kCAAkC;IAAG,YAAY,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,qBAAqB,EAAE,MAAM,CAAA;CAAE;AAE9J,MAAM,WAAW,uBAAuB;IACtC,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,qBAAa,QAAS,SAAQ,KAAK;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM;IAAmB,QAAQ,CAAC,IAAI,EAAE,OAAO;gBAAvD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAW,IAAI,EAAE,OAAO;CAI7E;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;gBAEzC,OAAO,EAAE,uBAAuB;YAQ9B,OAAO;IAuBnB,qBAAqB;IACf,aAAa,CAAC,KAAK,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,WAAW,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAQ1K,uBAAuB;IACjB,aAAa,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAQnG,0BAA0B;IACpB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAQlF,uBAAuB;IACjB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAQpG,uBAAuB;IACjB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAQ/G,oBAAoB;IACd,YAAY,CAAC,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,UAAU,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAQ9N,uBAAuB;IACjB,aAAa,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAQnG,6CAA6C;IACvC,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC;IAQpI,yDAAyD;IACnD,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC;IAQzJ,iDAAiD;IAC3C,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAQrK,sCAAsC;IAChC,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAQxK,6CAA6C;IACvC,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAQxJ,kCAAkC;IAC5B,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAQ5J,0BAA0B;IACpB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAQlF,uBAAuB;IACjB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAQpG,uBAAuB;IACjB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAQ/G,kFAAkF;IAC5E,6BAA6B,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,kCAAkC,CAAC;IAQxJ,iEAAiE;IAC3D,4BAA4B,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,gCAAgC,CAAC;IAQvI,0FAA0F;IACpF,8BAA8B,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,qCAAqC,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,sCAAsC,CAAC;IAQ5L,4FAA4F;IACtF,8BAA8B,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,qCAAqC,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,sCAAsC,CAAC;IAQ5L,6CAA6C;IACvC,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC;IAQvI,uBAAuB;IACjB,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAQ3G,gBAAgB;IACV,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAQnH,mBAAmB;IACb,SAAS,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,KAAK,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAQnF,sBAAsB;IAChB,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,KAAK,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAQtE,mBAAmB;IACb,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAQhG,mBAAmB;IACb,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,KAAK,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;CAOlG"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env bun
2
+ export {};
3
+ //# sourceMappingURL=cloud-index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud-index.d.ts","sourceRoot":"","sources":["../../src/server/cloud-index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export declare function createCloudRequestHandler(): (req: Request) => Promise<Response>;
2
+ export declare function startCloudServer(port: number, hostname: string): void;
3
+ //# sourceMappingURL=cloud-serve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud-serve.d.ts","sourceRoot":"","sources":["../../src/server/cloud-serve.ts"],"names":[],"mappings":"AAkCA,wBAAgB,yBAAyB,IAAI,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CA2D/E;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAGrE"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Cloud (A1 pure-remote) service wiring for `contacts-serve`.
3
+ *
4
+ * This module powers the versioned `/v1` API and its API-key auth. Per Amendment
5
+ * A1 the serve process reads and writes the shared RDS Postgres DIRECTLY through
6
+ * the vendored @hasna/contracts storage kit — there is NO local sync/cache in
7
+ * the service. Everything is lazy: nothing touches Postgres or crypto until the
8
+ * first `/v1` / `/ready` request, so the local-first CLI/dashboard SQLite paths
9
+ * keep ZERO cloud dependencies.
10
+ */
11
+ import { ApiKeyStore, type ApiKeyVerifier } from "@hasna/contracts/auth";
12
+ import type { PoolQueryClient } from "../generated/storage-kit/query.js";
13
+ export declare const CONTACTS_APP_SLUG = "contacts";
14
+ /** Resolve the remote DATABASE_URL from the supported env vars (priority order). */
15
+ export declare function resolveCloudDatabaseUrl(env?: NodeJS.ProcessEnv): string | undefined;
16
+ /** Resolve the HMAC signing secret used to verify API keys. */
17
+ export declare function resolveSigningSecret(env?: NodeJS.ProcessEnv): string | undefined;
18
+ /** True when this process is configured to serve the cloud `/v1` API.
19
+ * Explicit remote mode remains cloud even when its DSN is missing so readiness
20
+ * fails closed instead of presenting the process as a healthy local server. */
21
+ export declare function isCloudModeEnabled(env?: NodeJS.ProcessEnv): boolean;
22
+ /** The vendored-kit Postgres pool client backing every `/v1` handler. */
23
+ export declare function getCloudClient(): PoolQueryClient;
24
+ export declare function getApiKeyStore(): ApiKeyStore;
25
+ /**
26
+ * The framework-agnostic API-key verifier for `/v1`. Tokens are stateless,
27
+ * HMAC-signed by the contracts issuer; revocation is checked against the RDS
28
+ * `api_keys` table. Fails closed when no signing secret is configured.
29
+ */
30
+ export declare function getCloudVerifier(): ApiKeyVerifier;
31
+ /**
32
+ * Ensure the remote schema exists: the relational contacts schema (translated
33
+ * for Postgres in PG_MIGRATIONS) plus the contracts api-keys table. Idempotent —
34
+ * every statement is CREATE ... IF NOT EXISTS / ADD COLUMN IF NOT EXISTS /
35
+ * ON CONFLICT DO NOTHING. NEVER drops or rewrites existing tables.
36
+ */
37
+ export declare function ensureCloudSchema(): Promise<void>;
38
+ /**
39
+ * Runtime schema check for the request path. The `contacts-serve` service runs
40
+ * as the LEAST-PRIVILEGE app role (DML only, no DDL) per the RDS isolation
41
+ * model; the one-shot migration task owns all schema DDL as the OWNER role.
42
+ * So here we attempt the ensure exactly ONCE and, if the app role lacks DDL
43
+ * privileges (the expected steady state), log a single line and proceed — the
44
+ * schema is already present, applied by the migration task. This NEVER throws,
45
+ * so a permission boundary can't take the API down. In local/dev where serve
46
+ * runs with a privileged role, this self-heals the schema on first request.
47
+ */
48
+ export declare function ensureCloudSchemaBestEffort(): Promise<void>;
49
+ /** Cheap readiness probe: round-trips a trivial query to RDS. */
50
+ export declare function pingCloud(): Promise<boolean>;
51
+ /** Test/shutdown helper. */
52
+ export declare function closeCloud(): Promise<void>;
53
+ //# sourceMappingURL=cloud.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../src/server/cloud.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAgB,WAAW,EAAE,KAAK,cAAc,EAAwB,MAAM,uBAAuB,CAAC;AAE7G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAIzE,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAE5C,oFAAoF;AACpF,wBAAgB,uBAAuB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,SAAS,CAOhG;AAED,+DAA+D;AAC/D,wBAAgB,oBAAoB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,SAAS,CAO7F;AAED;;+EAE+E;AAC/E,wBAAgB,kBAAkB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAGhF;AAQD,yEAAyE;AACzE,wBAAgB,cAAc,IAAI,eAAe,CA2BhD;AAYD,wBAAgB,cAAc,IAAI,WAAW,CAI5C;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,cAAc,CAejD;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAUvD;AAED;;;;;;;;;GASG;AACH,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC,CAYjE;AAED,iEAAiE;AACjE,wBAAsB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAGlD;AAED,4BAA4B;AAC5B,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAOhD"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env bun
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":""}