@graph8/sdk 0.245.0 → 0.260.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. package/README.md +19 -5
  2. package/dist/cli.js +216 -0
  3. package/dist/index.d.mts +283 -12
  4. package/dist/index.d.ts +283 -12
  5. package/dist/index.js +88 -2
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +88 -2
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/react.d.mts +274 -12
  10. package/dist/react.d.ts +274 -12
  11. package/dist/react.js +106 -10
  12. package/dist/react.js.map +1 -1
  13. package/dist/react.mjs +97 -11
  14. package/dist/react.mjs.map +1 -1
  15. package/dist/types/README.md +7 -0
  16. package/dist/types/agency.d.ts +20 -0
  17. package/dist/types/agentSetup.d.ts +57 -0
  18. package/dist/types/api.d.ts +127 -0
  19. package/dist/types/appClient.d.ts +99 -0
  20. package/dist/types/appPlatform.d.ts +269 -0
  21. package/dist/types/appTokens.d.ts +125 -0
  22. package/dist/types/apps.d.ts +130 -0
  23. package/dist/types/audiences.d.ts +88 -0
  24. package/dist/types/calendar.d.ts +55 -0
  25. package/dist/types/campaigns.d.ts +61 -0
  26. package/dist/types/chat.d.ts +35 -0
  27. package/dist/types/cli.d.ts +14 -0
  28. package/dist/types/companies.d.ts +123 -0
  29. package/dist/types/contacts.d.ts +200 -0
  30. package/dist/types/copilot.d.ts +31 -0
  31. package/dist/types/core.d.ts +1052 -0
  32. package/dist/types/deals.d.ts +215 -0
  33. package/dist/types/enrich.d.ts +51 -0
  34. package/dist/types/fields.d.ts +84 -0
  35. package/dist/types/forms.d.ts +16 -0
  36. package/dist/types/http.d.ts +141 -0
  37. package/dist/types/inbox.d.ts +123 -0
  38. package/dist/types/index.d.ts +63 -0
  39. package/dist/types/intent.d.ts +196 -0
  40. package/dist/types/lists.d.ts +44 -0
  41. package/dist/types/mailboxes.d.ts +240 -0
  42. package/dist/types/marketplace.d.ts +62 -0
  43. package/dist/types/meetings.d.ts +70 -0
  44. package/dist/types/newsletter.d.ts +212 -0
  45. package/dist/types/notes.d.ts +57 -0
  46. package/dist/types/objects.d.ts +281 -0
  47. package/dist/types/pipelines.d.ts +135 -0
  48. package/dist/types/quotes.d.ts +143 -0
  49. package/dist/types/react.d.ts +978 -0
  50. package/dist/types/search.d.ts +99 -0
  51. package/dist/types/sequences.d.ts +255 -0
  52. package/dist/types/signals.d.ts +28 -0
  53. package/dist/types/skills.d.ts +176 -0
  54. package/dist/types/snippet.d.ts +24 -0
  55. package/dist/types/studio.d.ts +161 -0
  56. package/dist/types/tasks.d.ts +101 -0
  57. package/dist/types/types.d.ts +45 -0
  58. package/dist/types/utils.d.ts +21 -0
  59. package/dist/types/version.d.ts +10 -0
  60. package/dist/types/visitors.d.ts +29 -0
  61. package/dist/types/voice.d.ts +304 -0
  62. package/dist/types/webhooks.d.ts +71 -0
  63. package/dist/types/workflows.d.ts +229 -0
  64. package/docs/agents.md +748 -0
  65. package/docs/api/README.md +165 -0
  66. package/docs/api/accounts.d.ts +396 -0
  67. package/docs/api/accounts.md +644 -0
  68. package/docs/api/adCampaigns.d.ts +707 -0
  69. package/docs/api/adCampaigns.md +1091 -0
  70. package/docs/api/adCreatives.d.ts +996 -0
  71. package/docs/api/adCreatives.md +1708 -0
  72. package/docs/api/agency.d.ts +556 -0
  73. package/docs/api/agency.md +845 -0
  74. package/docs/api/agent.d.ts +330 -0
  75. package/docs/api/agent.md +514 -0
  76. package/docs/api/agents.d.ts +1622 -0
  77. package/docs/api/agents.md +2860 -0
  78. package/docs/api/aiInbox.d.ts +1984 -0
  79. package/docs/api/aiInbox.md +3490 -0
  80. package/docs/api/analytics.d.ts +1273 -0
  81. package/docs/api/analytics.md +2095 -0
  82. package/docs/api/apiKeys.d.ts +252 -0
  83. package/docs/api/apiKeys.md +318 -0
  84. package/docs/api/appDeployments.d.ts +236 -0
  85. package/docs/api/appDeployments.md +471 -0
  86. package/docs/api/appDomains.d.ts +171 -0
  87. package/docs/api/appDomains.md +281 -0
  88. package/docs/api/appLogs.d.ts +120 -0
  89. package/docs/api/appLogs.md +159 -0
  90. package/docs/api/appObjects.d.ts +415 -0
  91. package/docs/api/appObjects.md +568 -0
  92. package/docs/api/appPages.d.ts +557 -0
  93. package/docs/api/appPages.md +796 -0
  94. package/docs/api/appPlatformTokens.d.ts +123 -0
  95. package/docs/api/appPlatformTokens.md +172 -0
  96. package/docs/api/appointments.d.ts +2361 -0
  97. package/docs/api/appointments.md +3917 -0
  98. package/docs/api/apps.d.ts +822 -0
  99. package/docs/api/apps.md +1342 -0
  100. package/docs/api/assertUpsert.d.ts +286 -0
  101. package/docs/api/assertUpsert.md +370 -0
  102. package/docs/api/audienceSyncs.d.ts +259 -0
  103. package/docs/api/audienceSyncs.md +395 -0
  104. package/docs/api/brandKit.d.ts +686 -0
  105. package/docs/api/brandKit.md +1133 -0
  106. package/docs/api/bugReports.d.ts +181 -0
  107. package/docs/api/bugReports.md +268 -0
  108. package/docs/api/by-path.md +3260 -0
  109. package/docs/api/calendarInvites.d.ts +117 -0
  110. package/docs/api/calendarInvites.md +148 -0
  111. package/docs/api/campaignWorkflows.d.ts +152 -0
  112. package/docs/api/campaignWorkflows.md +200 -0
  113. package/docs/api/campaigns.d.ts +721 -0
  114. package/docs/api/campaigns.md +1236 -0
  115. package/docs/api/channels.d.ts +171 -0
  116. package/docs/api/channels.md +235 -0
  117. package/docs/api/cliCampaigns.d.ts +205 -0
  118. package/docs/api/cliCampaigns.md +256 -0
  119. package/docs/api/cliPipelines.d.ts +324 -0
  120. package/docs/api/cliPipelines.md +562 -0
  121. package/docs/api/clickHouse.d.ts +115 -0
  122. package/docs/api/clickHouse.md +138 -0
  123. package/docs/api/companies.d.ts +1636 -0
  124. package/docs/api/companies.md +2211 -0
  125. package/docs/api/companyIntelligence.d.ts +299 -0
  126. package/docs/api/companyIntelligence.md +488 -0
  127. package/docs/api/contacts.d.ts +2173 -0
  128. package/docs/api/contacts.md +3143 -0
  129. package/docs/api/content.d.ts +968 -0
  130. package/docs/api/content.md +1667 -0
  131. package/docs/api/contentGridSkills.d.ts +177 -0
  132. package/docs/api/contentGridSkills.md +271 -0
  133. package/docs/api/copilot.d.ts +1017 -0
  134. package/docs/api/copilot.md +1765 -0
  135. package/docs/api/crmSyncs.d.ts +215 -0
  136. package/docs/api/crmSyncs.md +301 -0
  137. package/docs/api/customerSuccess.d.ts +491 -0
  138. package/docs/api/customerSuccess.md +776 -0
  139. package/docs/api/deals.d.ts +1696 -0
  140. package/docs/api/deals.md +2432 -0
  141. package/docs/api/deliverability.d.ts +418 -0
  142. package/docs/api/deliverability.md +677 -0
  143. package/docs/api/desk.d.ts +1765 -0
  144. package/docs/api/desk.md +3007 -0
  145. package/docs/api/dialer.d.ts +1185 -0
  146. package/docs/api/dialer.md +2166 -0
  147. package/docs/api/dialerAnalytics.d.ts +187 -0
  148. package/docs/api/dialerAnalytics.md +257 -0
  149. package/docs/api/documents.d.ts +895 -0
  150. package/docs/api/documents.md +1440 -0
  151. package/docs/api/duplicates.d.ts +195 -0
  152. package/docs/api/duplicates.md +315 -0
  153. package/docs/api/eSign.d.ts +38 -0
  154. package/docs/api/eSign.md +54 -0
  155. package/docs/api/eSignature.d.ts +242 -0
  156. package/docs/api/eSignature.md +341 -0
  157. package/docs/api/enrichment.d.ts +3207 -0
  158. package/docs/api/enrichment.md +5225 -0
  159. package/docs/api/events.d.ts +115 -0
  160. package/docs/api/events.md +105 -0
  161. package/docs/api/fields.d.ts +482 -0
  162. package/docs/api/fields.md +566 -0
  163. package/docs/api/forms.d.ts +1012 -0
  164. package/docs/api/forms.md +1542 -0
  165. package/docs/api/gtmCampaigns.d.ts +662 -0
  166. package/docs/api/gtmCampaigns.md +1044 -0
  167. package/docs/api/gtmContext.d.ts +1187 -0
  168. package/docs/api/gtmContext.md +2112 -0
  169. package/docs/api/gtmDeliverability.d.ts +60 -0
  170. package/docs/api/gtmDeliverability.md +63 -0
  171. package/docs/api/gtmKnowledgeBase.d.ts +76 -0
  172. package/docs/api/gtmKnowledgeBase.md +91 -0
  173. package/docs/api/gtmLaunchHelpers.d.ts +123 -0
  174. package/docs/api/gtmLaunchHelpers.md +148 -0
  175. package/docs/api/gtmLibrary.d.ts +448 -0
  176. package/docs/api/gtmLibrary.md +780 -0
  177. package/docs/api/health.d.ts +39 -0
  178. package/docs/api/health.md +58 -0
  179. package/docs/api/imageLibrary.d.ts +341 -0
  180. package/docs/api/imageLibrary.md +569 -0
  181. package/docs/api/imports.d.ts +157 -0
  182. package/docs/api/imports.md +174 -0
  183. package/docs/api/inbox.d.ts +709 -0
  184. package/docs/api/inbox.md +1067 -0
  185. package/docs/api/install.d.ts +213 -0
  186. package/docs/api/install.md +317 -0
  187. package/docs/api/installedApps.d.ts +131 -0
  188. package/docs/api/installedApps.md +241 -0
  189. package/docs/api/integrationStatus.d.ts +142 -0
  190. package/docs/api/integrationStatus.md +205 -0
  191. package/docs/api/integrations.d.ts +2327 -0
  192. package/docs/api/integrations.md +3791 -0
  193. package/docs/api/intent.d.ts +482 -0
  194. package/docs/api/intent.md +858 -0
  195. package/docs/api/knowledge.d.ts +501 -0
  196. package/docs/api/knowledge.md +843 -0
  197. package/docs/api/knowledgeBase.d.ts +84 -0
  198. package/docs/api/knowledgeBase.md +96 -0
  199. package/docs/api/landingPages.d.ts +1411 -0
  200. package/docs/api/landingPages.md +2488 -0
  201. package/docs/api/leads.d.ts +133 -0
  202. package/docs/api/leads.md +180 -0
  203. package/docs/api/library.d.ts +217 -0
  204. package/docs/api/library.md +338 -0
  205. package/docs/api/linkedIn.d.ts +227 -0
  206. package/docs/api/linkedIn.md +289 -0
  207. package/docs/api/linkedInOutreach.d.ts +727 -0
  208. package/docs/api/linkedInOutreach.md +990 -0
  209. package/docs/api/lists.d.ts +1106 -0
  210. package/docs/api/lists.md +1609 -0
  211. package/docs/api/logs.d.ts +71 -0
  212. package/docs/api/logs.md +70 -0
  213. package/docs/api/mailboxes.d.ts +1050 -0
  214. package/docs/api/mailboxes.md +1690 -0
  215. package/docs/api/marketingIntelligence.d.ts +256 -0
  216. package/docs/api/marketingIntelligence.md +454 -0
  217. package/docs/api/marketplace.d.ts +3173 -0
  218. package/docs/api/marketplace.md +5953 -0
  219. package/docs/api/mcp.d.ts +69 -0
  220. package/docs/api/mcp.md +69 -0
  221. package/docs/api/me.d.ts +54 -0
  222. package/docs/api/me.md +56 -0
  223. package/docs/api/meetings.d.ts +539 -0
  224. package/docs/api/meetings.md +747 -0
  225. package/docs/api/newsletter.d.ts +1613 -0
  226. package/docs/api/newsletter.md +2746 -0
  227. package/docs/api/notes.d.ts +517 -0
  228. package/docs/api/notes.md +888 -0
  229. package/docs/api/notifications.d.ts +94 -0
  230. package/docs/api/notifications.md +105 -0
  231. package/docs/api/objects.d.ts +621 -0
  232. package/docs/api/objects.md +1098 -0
  233. package/docs/api/openSearch.d.ts +234 -0
  234. package/docs/api/openSearch.md +297 -0
  235. package/docs/api/ops.d.ts +299 -0
  236. package/docs/api/ops.md +339 -0
  237. package/docs/api/orgGovernance.d.ts +393 -0
  238. package/docs/api/orgGovernance.md +623 -0
  239. package/docs/api/orgVideos.d.ts +184 -0
  240. package/docs/api/orgVideos.md +252 -0
  241. package/docs/api/organizationSettings.d.ts +626 -0
  242. package/docs/api/organizationSettings.md +911 -0
  243. package/docs/api/phoneNumbers.d.ts +484 -0
  244. package/docs/api/phoneNumbers.md +777 -0
  245. package/docs/api/profile.d.ts +329 -0
  246. package/docs/api/profile.md +540 -0
  247. package/docs/api/programmaticPages.d.ts +400 -0
  248. package/docs/api/programmaticPages.md +626 -0
  249. package/docs/api/providerDomains.d.ts +866 -0
  250. package/docs/api/providerDomains.md +1446 -0
  251. package/docs/api/providerUsage.d.ts +129 -0
  252. package/docs/api/providerUsage.md +186 -0
  253. package/docs/api/public.d.ts +69 -0
  254. package/docs/api/public.md +78 -0
  255. package/docs/api/publicCopilot.d.ts +67 -0
  256. package/docs/api/publicCopilot.md +80 -0
  257. package/docs/api/publicSignals.d.ts +66 -0
  258. package/docs/api/publicSignals.md +71 -0
  259. package/docs/api/publicVisitors.d.ts +97 -0
  260. package/docs/api/publicVisitors.md +118 -0
  261. package/docs/api/quotes.d.ts +1564 -0
  262. package/docs/api/quotes.md +2553 -0
  263. package/docs/api/radar.d.ts +808 -0
  264. package/docs/api/radar.md +1431 -0
  265. package/docs/api/radarReports.d.ts +208 -0
  266. package/docs/api/radarReports.md +306 -0
  267. package/docs/api/recordRoles.d.ts +143 -0
  268. package/docs/api/recordRoles.md +175 -0
  269. package/docs/api/repos.d.ts +146 -0
  270. package/docs/api/repos.md +211 -0
  271. package/docs/api/research.d.ts +295 -0
  272. package/docs/api/research.md +534 -0
  273. package/docs/api/revenue.d.ts +402 -0
  274. package/docs/api/revenue.md +608 -0
  275. package/docs/api/revenueAnalytics.d.ts +147 -0
  276. package/docs/api/revenueAnalytics.md +212 -0
  277. package/docs/api/revenueLifecycle.d.ts +207 -0
  278. package/docs/api/revenueLifecycle.md +274 -0
  279. package/docs/api/revenueRecords.d.ts +372 -0
  280. package/docs/api/revenueRecords.md +563 -0
  281. package/docs/api/roles.d.ts +431 -0
  282. package/docs/api/roles.md +812 -0
  283. package/docs/api/salesCoach.d.ts +877 -0
  284. package/docs/api/salesCoach.md +1540 -0
  285. package/docs/api/sandbox.d.ts +210 -0
  286. package/docs/api/sandbox.md +380 -0
  287. package/docs/api/scans.d.ts +104 -0
  288. package/docs/api/scans.md +136 -0
  289. package/docs/api/scheduleBuy.d.ts +293 -0
  290. package/docs/api/scheduleBuy.md +431 -0
  291. package/docs/api/scraping.d.ts +266 -0
  292. package/docs/api/scraping.md +383 -0
  293. package/docs/api/sdrAnalytics.d.ts +138 -0
  294. package/docs/api/sdrAnalytics.md +246 -0
  295. package/docs/api/search.d.ts +598 -0
  296. package/docs/api/search.md +866 -0
  297. package/docs/api/seo.d.ts +447 -0
  298. package/docs/api/seo.md +660 -0
  299. package/docs/api/sequenceLifecycle.d.ts +439 -0
  300. package/docs/api/sequenceLifecycle.md +513 -0
  301. package/docs/api/sequences.d.ts +1936 -0
  302. package/docs/api/sequences.md +3232 -0
  303. package/docs/api/settings.d.ts +448 -0
  304. package/docs/api/settings.md +731 -0
  305. package/docs/api/signals.d.ts +1441 -0
  306. package/docs/api/signals.md +2526 -0
  307. package/docs/api/signatures.d.ts +719 -0
  308. package/docs/api/signatures.md +1247 -0
  309. package/docs/api/skills.d.ts +230 -0
  310. package/docs/api/skills.md +466 -0
  311. package/docs/api/snippet.d.ts +85 -0
  312. package/docs/api/snippet.md +106 -0
  313. package/docs/api/socialPublishing.d.ts +824 -0
  314. package/docs/api/socialPublishing.md +1245 -0
  315. package/docs/api/studioDocuments.d.ts +244 -0
  316. package/docs/api/studioDocuments.md +348 -0
  317. package/docs/api/support.d.ts +90 -0
  318. package/docs/api/support.md +76 -0
  319. package/docs/api/suppressions.d.ts +241 -0
  320. package/docs/api/suppressions.md +343 -0
  321. package/docs/api/surveys.d.ts +847 -0
  322. package/docs/api/surveys.md +1223 -0
  323. package/docs/api/tasks.d.ts +813 -0
  324. package/docs/api/tasks.md +1344 -0
  325. package/docs/api/teamMembers.d.ts +668 -0
  326. package/docs/api/teamMembers.md +1040 -0
  327. package/docs/api/teams.d.ts +784 -0
  328. package/docs/api/teams.md +1395 -0
  329. package/docs/api/usage.d.ts +277 -0
  330. package/docs/api/usage.md +389 -0
  331. package/docs/api/visitors.d.ts +690 -0
  332. package/docs/api/visitors.md +1075 -0
  333. package/docs/api/voice.d.ts +4661 -0
  334. package/docs/api/voice.md +7905 -0
  335. package/docs/api/webAnalytics.d.ts +964 -0
  336. package/docs/api/webAnalytics.md +1452 -0
  337. package/docs/api/webChat.d.ts +1704 -0
  338. package/docs/api/webChat.md +2048 -0
  339. package/docs/api/webhooks.d.ts +251 -0
  340. package/docs/api/webhooks.md +386 -0
  341. package/docs/api/websiteEditor.d.ts +324 -0
  342. package/docs/api/websiteEditor.md +517 -0
  343. package/docs/api/work.d.ts +2298 -0
  344. package/docs/api/work.md +3096 -0
  345. package/docs/api/workbench.d.ts +2962 -0
  346. package/docs/api/workbench.md +4884 -0
  347. package/docs/api/workflows.d.ts +1218 -0
  348. package/docs/api/workflows.md +2302 -0
  349. package/docs/sdk-clients.md +4339 -0
  350. package/package.json +10 -3
package/dist/react.js CHANGED
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  "use client";
3
+ var __create = Object.create;
3
4
  var __defProp = Object.defineProperty;
4
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
6
8
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
9
  var __export = (target, all) => {
8
10
  for (var name in all)
@@ -16,6 +18,14 @@ var __copyProps = (to, from, except, desc) => {
16
18
  }
17
19
  return to;
18
20
  };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
19
29
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
30
 
21
31
  // src/react.tsx
@@ -25,6 +35,7 @@ __export(react_exports, {
25
35
  useG8: () => useG8
26
36
  });
27
37
  module.exports = __toCommonJS(react_exports);
38
+ var React = __toESM(require("react"));
28
39
  var import_react = require("react");
29
40
 
30
41
  // src/core.ts
@@ -459,6 +470,7 @@ var BILLABLE_ROUTES = {
459
470
  "/enrichment/lists/{list_id}/pipelines/{pipeline_id}/runs",
460
471
  "/enrichment/lookup/company",
461
472
  "/enrichment/lookup/person",
473
+ "/enrichment/person",
462
474
  "/enrichment/record-sync/{entity_type}/run",
463
475
  "/enrichment/verify-email",
464
476
  "/enrichment/waterfall/configs",
@@ -967,6 +979,10 @@ var EXTERNAL_ROUTES = {
967
979
  ]
968
980
  };
969
981
 
982
+ // src/version.ts
983
+ var SDK_VERSION = "0.260.0";
984
+ var SDK_CLIENT_ID = `js-sdk/${SDK_VERSION}`;
985
+
970
986
  // src/http.ts
971
987
  var G8Error = class _G8Error extends Error {
972
988
  constructor(args) {
@@ -1149,6 +1165,7 @@ async function request(baseUrl, path, apiKey, opts = {}) {
1149
1165
  const finalHeaders = {
1150
1166
  "Content-Type": "application/json",
1151
1167
  Authorization: `Bearer ${apiKey}`,
1168
+ ...clientIdentityHeaders(headers),
1152
1169
  ...headers
1153
1170
  };
1154
1171
  warnIfTargetOrgIgnored(apiKey, headers);
@@ -1194,6 +1211,23 @@ async function request(baseUrl, path, apiKey, opts = {}) {
1194
1211
  throw await toG8Error(resp, billable ? statusRetryable : isRetryableStatus(resp.status));
1195
1212
  }
1196
1213
  }
1214
+ function isServerRuntime() {
1215
+ const g = globalThis;
1216
+ if (typeof g.window !== "undefined") return false;
1217
+ return typeof g.process?.versions?.node === "string";
1218
+ }
1219
+ function runtimeUserAgent() {
1220
+ const g = globalThis;
1221
+ const node = typeof g.process?.version === "string" ? ` node/${g.process.version.replace(/^v/, "")}` : "";
1222
+ return `graph8-sdk-js/${SDK_VERSION}${node}`;
1223
+ }
1224
+ function clientIdentityHeaders(callerHeaders = {}) {
1225
+ const taken = new Set(Object.keys(callerHeaders).map((h) => h.toLowerCase()));
1226
+ const out = {};
1227
+ if (!taken.has("x-g8-client")) out["X-G8-Client"] = SDK_CLIENT_ID;
1228
+ if (!taken.has("user-agent") && isServerRuntime()) out["User-Agent"] = runtimeUserAgent();
1229
+ return out;
1230
+ }
1197
1231
  async function* paginate(fetchPage) {
1198
1232
  let cursor = void 0;
1199
1233
  for (; ; ) {
@@ -1803,8 +1837,21 @@ var createWebhooksClient = (_apiKey, apiUrl) => {
1803
1837
 
1804
1838
  // src/contacts.ts
1805
1839
  var DEFAULT_API12 = "https://be.graph8.com";
1840
+ var CONTACT_BULK_GET_MAX = 100;
1806
1841
  var createContactsClient = (apiKey, apiUrl) => {
1807
1842
  const baseUrl = apiUrl || DEFAULT_API12;
1843
+ async function getMany(contactIds, options = {}) {
1844
+ const ids = [...new Set(contactIds)];
1845
+ const out = [];
1846
+ for (let i = 0; i < ids.length; i += CONTACT_BULK_GET_MAX) {
1847
+ const resp = await request(baseUrl, "/api/v1/contacts/bulk-get", apiKey, {
1848
+ method: "POST",
1849
+ body: { contact_ids: ids.slice(i, i + CONTACT_BULK_GET_MAX), include_custom_fields: options.includeCustomFields ?? false }
1850
+ });
1851
+ out.push(...resp.data.items);
1852
+ }
1853
+ return out;
1854
+ }
1808
1855
  return {
1809
1856
  /** List contacts with optional filters. */
1810
1857
  async list(params = {}) {
@@ -1812,6 +1859,31 @@ var createContactsClient = (apiKey, apiUrl) => {
1812
1859
  query: params
1813
1860
  });
1814
1861
  },
1862
+ /**
1863
+ * Full records for many contacts (`POST /api/v1/contacts/bulk-get`), in input
1864
+ * order. Any number of ids: they are sent 100 per request, so 1,000 ids cost
1865
+ * 10 requests instead of 1,000 `get()` calls. Missing or out-of-scope ids come
1866
+ * back `found: false` rather than throwing. Duplicate ids are read once.
1867
+ */
1868
+ getMany: (contactIds, options = {}) => getMany(contactIds, options),
1869
+ /**
1870
+ * One page of `list()`, with every contact's FULL record (`created_at`,
1871
+ * `updated_at`, `full_name`, `personal_emails`, `company`, ...). `list()`
1872
+ * returns a leaner shape. Costs one `list()` request plus one `getMany()`
1873
+ * request per 100 contacts on the page. `missing` holds ids that were listed
1874
+ * but could not be read (for example deleted in between).
1875
+ */
1876
+ async listDetailed(params = {}, options = {}) {
1877
+ const page = await request(baseUrl, "/api/v1/contacts", apiKey, {
1878
+ query: params
1879
+ });
1880
+ const items = await getMany(page.data.map((c) => c.id), options);
1881
+ return {
1882
+ data: items.filter((it) => it.found && it.contact).map((it) => it.contact),
1883
+ total: page.total,
1884
+ missing: items.filter((it) => !it.found).map((it) => it.contact_id)
1885
+ };
1886
+ },
1815
1887
  /** Get a single contact by ID. */
1816
1888
  async get(contactId) {
1817
1889
  const resp = await request(baseUrl, `/api/v1/contacts/${contactId}`, apiKey);
@@ -1820,6 +1892,10 @@ var createContactsClient = (apiKey, apiUrl) => {
1820
1892
  /**
1821
1893
  * Create a new contact. Pass `idempotencyKey` to make a retry safe — the
1822
1894
  * same key returns the first result instead of creating a duplicate (A6).
1895
+ *
1896
+ * Create-only: if a contact with the same work_email / linkedin_url exists,
1897
+ * this throws a 409 `G8Error` whose `detail.hint` / `detail.upsert` name the
1898
+ * create-or-update route. When the contact may already exist, use `upsert()`.
1823
1899
  */
1824
1900
  async create(contact, idempotencyKey) {
1825
1901
  const resp = await request(baseUrl, "/api/v1/contacts", apiKey, {
@@ -1829,6 +1905,20 @@ var createContactsClient = (apiKey, apiUrl) => {
1829
1905
  });
1830
1906
  return resp.data ?? resp;
1831
1907
  },
1908
+ /**
1909
+ * Create or update a contact in one idempotent call (`PUT /contacts/assert`).
1910
+ * Matches by `work_email`, then `linkedin_url`. Prefer this over `create()`
1911
+ * when the contact may already exist: `create()` returns a 409 for a
1912
+ * duplicate, while `upsert()` updates it. Safe to retry. The server answers
1913
+ * 400 (a `G8Error`) when neither `work_email` nor `linkedin_url` is given.
1914
+ */
1915
+ async upsert(contact) {
1916
+ const resp = await request(baseUrl, "/api/v1/contacts/assert", apiKey, {
1917
+ method: "PUT",
1918
+ body: contact
1919
+ });
1920
+ return resp.data ?? resp;
1921
+ },
1832
1922
  /** Update a contact (partial). */
1833
1923
  async update(contactId, fields) {
1834
1924
  return request(baseUrl, `/api/v1/contacts/${contactId}`, apiKey, {
@@ -2142,6 +2232,7 @@ var API_OPERATIONS = {
2142
2232
  analyze_website_intelligence_analyze_post: ["POST", "/intelligence/analyze", "companyIntelligence", "analyzeWebsite", "billable", "knowledge:run"],
2143
2233
  annotate_my_invoice_marketplace_me_invoices__invoice_id__put: ["PUT", "/marketplace/me/invoices/{invoice_id}", "marketplace", "annotateMyInvoice", "billable", "marketplace:run"],
2144
2234
  answer_agent_discovery_agent_onboarding_discovery_answer_post: ["POST", "/agent/onboarding/discovery/answer", "agents", "answerAgentDiscovery", "write", "workflows:write"],
2235
+ api_health_health_get: ["GET", "/health", "health", "apiHealth", "read", null],
2145
2236
  app_token_jwks_app_platform__well_known_jwks_json_get: ["GET", "/app-platform/.well-known/jwks.json", "appPlatformTokens", "appTokenJwks", "read", null],
2146
2237
  append_copilot_memory_document_copilot_memory_documents_append_post: ["POST", "/copilot/memory/documents/append", "copilot", "appendCopilotMemoryDocument", "write", "knowledge:write"],
2147
2238
  apply_account_plan_desk_accounts__account_id__plan_apply_post: ["POST", "/desk/accounts/{account_id}/plan/apply", "desk", "applyAccountPlan", "write", "deals:write"],
@@ -2222,6 +2313,7 @@ var API_OPERATIONS = {
2222
2313
  backfill_content_pages_content_pages_backfill_post: ["POST", "/content/pages/backfill", "content", "backfillContentPages", "write", "campaigns:write"],
2223
2314
  backfill_grading_dialer_parallel_calls_grading_backfill_post: ["POST", "/dialer/parallel-calls/grading/backfill", "dialer", "backfillGrading", "billable", "voice:run"],
2224
2315
  backfill_library_case_studies_library_case_studies_backfill_post: ["POST", "/library/case-studies/backfill", "library", "backfillLibraryCaseStudies", "billable", "knowledge:run"],
2316
+ batch_contact_related_contacts_related_post: ["POST", "/contacts/related", "contacts", "batchContactRelated", "read", "contacts:read"],
2225
2317
  batch_create_crm_contacts_integrations_crm_connections__connection_id__batch_contacts_post: ["POST", "/integrations/crm/connections/{connection_id}/batch/contacts", "integrations", "batchCreateCrmContacts", "external", "integrations:run"],
2226
2318
  batch_email_agent_voice_email_agent_batch_post: ["POST", "/voice/email-agent/batch", "voice", "batchEmailAgent", "billable", "voice:run"],
2227
2319
  batch_quote_action_quotes_batch_post: ["POST", "/quotes/batch", "quotes", "batchQuoteAction", "external", "quotes:run"],
@@ -2242,6 +2334,7 @@ var API_OPERATIONS = {
2242
2334
  bulk_enrich_company_people_companies_enrich_people_bulk_post: ["POST", "/companies/enrich/people/bulk", "companies", "bulkEnrichCompanyPeople", "billable", "enrichment:run"],
2243
2335
  bulk_enrich_company_stakeholders_companies_enrich_stakeholders_bulk_post: ["POST", "/companies/enrich/stakeholders/bulk", "companies", "bulkEnrichCompanyStakeholders", "billable", "enrichment:run"],
2244
2336
  bulk_extract_workbench_columns_workbench_tables__table_id__columns_bulk_extract_post: ["POST", "/workbench/tables/{table_id}/columns/bulk-extract", "workbench", "bulkExtractWorkbenchColumns", "write", "lists:write"],
2337
+ bulk_get_contacts_contacts_bulk_get_post: ["POST", "/contacts/bulk-get", "contacts", "bulkGetContacts", "read", "contacts:read"],
2245
2338
  bulk_import_mailboxes_mailboxes_bulk_import_post: ["POST", "/mailboxes/bulk-import", "mailboxes", "bulkImportMailboxes", "write", "campaigns:write"],
2246
2339
  bulk_restart_executions_workflows_executions_bulk_restart_post: ["POST", "/workflows/executions/bulk-restart", "workflows", "bulkRestartExecutions", "external", "workflows:run"],
2247
2340
  bulk_update_contacts_contacts_bulk_update_post: ["POST", "/contacts/bulk-update", "contacts", "bulkUpdateContacts", "write", "contacts:write"],
@@ -4296,6 +4389,7 @@ var API_OPERATIONS = {
4296
4389
  load_copilot_intent_context_copilot_context_load_post: ["POST", "/copilot/context/load", "agents", "loadCopilotIntentContext", "write", "workflows:write"],
4297
4390
  lookup_company_enrichment_lookup_company_post: ["POST", "/enrichment/lookup/company", "enrichment", "lookupCompany", "billable", "enrichment:run"],
4298
4391
  lookup_crm_contacts_by_email_integrations_crm_connections__connection_id__batch_contacts_lookup_by_email_post: ["POST", "/integrations/crm/connections/{connection_id}/batch/contacts/lookup-by-email", "integrations", "lookupCrmContactsByEmail", "read", "integrations:read"],
4392
+ lookup_person_alias_enrichment_person_post: ["POST", "/enrichment/person", "enrichment", "lookupPersonAlias", "billable", "enrichment:run"],
4299
4393
  lookup_person_enrichment_lookup_person_post: ["POST", "/enrichment/lookup/person", "enrichment", "lookupPerson", "billable", "enrichment:run"],
4300
4394
  lookup_session_calls_dialer_parallel_calls_sessions__session_id__calls_post: ["POST", "/dialer/parallel-calls/sessions/{session_id}/calls", "voice", "lookupSessionCalls", "read", "voice:read"],
4301
4395
  manual_dial_dialer_parallel_calls_manual_dial_post: ["POST", "/dialer/parallel-calls/manual-dial", "dialer", "manualDial", "external", "voice:run"],
@@ -5141,6 +5235,7 @@ var API_OPERATIONS = {
5141
5235
  update_inbox_mailbox_settings_inbox_mailboxes__mailbox__settings_patch: ["PATCH", "/inbox/mailboxes/{mailbox}/settings", "aiInbox", "updateInboxMailboxSettings", "external", "inbox:run"],
5142
5236
  update_inbox_tag_inbox_tags__tag_id__put: ["PUT", "/inbox/tags/{tag_id}", "aiInbox", "updateInboxTag", "write", "inbox:write"],
5143
5237
  update_infrastructure_profile_org_infrastructure_put: ["PUT", "/org/infrastructure", "orgGovernance", "updateInfrastructureProfile", "write", "account:write"],
5238
+ update_ip_allowlist_api_keys__api_key_id__ip_allowlist_put: ["PUT", "/api-keys/{api_key_id}/ip-allowlist", "apiKeys", "updateIpAllowlist", "write", "account:write"],
5144
5239
  update_issue_newsletters__newsletter_id__issues__issue_id__put: ["PUT", "/newsletters/{newsletter_id}/issues/{issue_id}", "newsletter", "updateIssue", "external", "newsletter:run"],
5145
5240
  update_landing_page_html_landing_pages__landing_page_id__update_html_post: ["POST", "/landing-pages/{landing_page_id}/update-html", "landingPages", "updateLandingPageHtml", "write", "campaigns:write"],
5146
5241
  update_landing_page_landing_pages__landing_page_id__patch: ["PATCH", "/landing-pages/{landing_page_id}", "landingPages", "updateLandingPage", "write", "campaigns:write"],
@@ -7373,10 +7468,11 @@ var G8 = class {
7373
7468
  if (!this.config.apiKey) throw new Error(`g8.${module2} requires an API key. Use g8.init({ apiKey: '...' })`);
7374
7469
  }
7375
7470
  };
7376
- var g8 = new G8();
7471
+ var G8_SINGLETON = /* @__PURE__ */ Symbol.for("@graph8/sdk/singleton");
7472
+ var _global = globalThis;
7473
+ var g8 = _global[G8_SINGLETON] ?? (_global[G8_SINGLETON] = new G8());
7377
7474
 
7378
7475
  // src/react.tsx
7379
- var import_jsx_runtime = require("react/jsx-runtime");
7380
7476
  var G8Context = (0, import_react.createContext)(g8);
7381
7477
  var G8Provider = ({
7382
7478
  writeKey,
@@ -7384,12 +7480,10 @@ var G8Provider = ({
7384
7480
  config,
7385
7481
  children
7386
7482
  }) => {
7387
- (0, import_react.useEffect)(() => {
7388
- if (!g8.initialized) {
7389
- g8.init({ writeKey, host, ...config });
7390
- }
7391
- }, [writeKey, host, config]);
7392
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(G8Context.Provider, { value: g8, children });
7483
+ if (!g8.initialized) {
7484
+ g8.init({ writeKey, host, ...config });
7485
+ }
7486
+ return /* @__PURE__ */ React.createElement(G8Context.Provider, { value: g8 }, children);
7393
7487
  };
7394
7488
  var useG8 = () => {
7395
7489
  const client = (0, import_react.useContext)(G8Context);
@@ -7402,8 +7496,10 @@ var useG8 = () => {
7402
7496
  page: client.page.bind(client),
7403
7497
  /** Clear user identity */
7404
7498
  reset: client.reset.bind(client),
7405
- /** Progressive form helpers */
7406
- forms: client.forms,
7499
+ /** Progressive form helpers (read lazily, so useG8() never throws on its own) */
7500
+ get forms() {
7501
+ return client.forms;
7502
+ },
7407
7503
  /** Raw g8 client instance */
7408
7504
  g8: client
7409
7505
  };