@kelpie/server 0.7.0 → 0.9.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 (679) hide show
  1. package/dist/lib/consumerEmailDomains.d.ts +2 -0
  2. package/dist/lib/consumerEmailDomains.d.ts.map +1 -0
  3. package/dist/lib/consumerEmailDomains.js +62 -0
  4. package/dist/lib/consumerEmailDomains.js.map +1 -0
  5. package/dist/lib/email.d.ts +7 -0
  6. package/dist/lib/email.d.ts.map +1 -1
  7. package/dist/lib/email.js.map +1 -1
  8. package/dist/lib/emailContent.d.ts +33 -0
  9. package/dist/lib/emailContent.d.ts.map +1 -0
  10. package/dist/lib/emailContent.js +54 -0
  11. package/dist/lib/emailContent.js.map +1 -0
  12. package/dist/lib/emailDomainAutoLink.d.ts +27 -0
  13. package/dist/lib/emailDomainAutoLink.d.ts.map +1 -0
  14. package/dist/lib/emailDomainAutoLink.js +119 -0
  15. package/dist/lib/emailDomainAutoLink.js.map +1 -0
  16. package/dist/lib/ids.d.ts +13 -0
  17. package/dist/lib/ids.d.ts.map +1 -1
  18. package/dist/lib/ids.js +13 -0
  19. package/dist/lib/ids.js.map +1 -1
  20. package/dist/modules/activities/repository.d.ts.map +1 -1
  21. package/dist/modules/activities/repository.js +19 -20
  22. package/dist/modules/activities/repository.js.map +1 -1
  23. package/dist/modules/activities/wording.d.ts +12 -0
  24. package/dist/modules/activities/wording.d.ts.map +1 -1
  25. package/dist/modules/activities/wording.js +16 -0
  26. package/dist/modules/activities/wording.js.map +1 -1
  27. package/dist/modules/agent-tasks/catalog.d.ts.map +1 -1
  28. package/dist/modules/agent-tasks/catalog.js +62 -0
  29. package/dist/modules/agent-tasks/catalog.js.map +1 -1
  30. package/dist/modules/agent-tasks/resolve.d.ts.map +1 -1
  31. package/dist/modules/agent-tasks/resolve.js +42 -9
  32. package/dist/modules/agent-tasks/resolve.js.map +1 -1
  33. package/dist/modules/agent-tasks/routes.d.ts +2 -0
  34. package/dist/modules/agent-tasks/routes.d.ts.map +1 -1
  35. package/dist/modules/attachedRecords.d.ts +6 -1
  36. package/dist/modules/attachedRecords.d.ts.map +1 -1
  37. package/dist/modules/attachedRecords.js +18 -2
  38. package/dist/modules/attachedRecords.js.map +1 -1
  39. package/dist/modules/auth/preferences.d.ts +11 -1
  40. package/dist/modules/auth/preferences.d.ts.map +1 -1
  41. package/dist/modules/auth/preferences.js +11 -0
  42. package/dist/modules/auth/preferences.js.map +1 -1
  43. package/dist/modules/auth/routes.d.ts.map +1 -1
  44. package/dist/modules/auth/routes.js +18 -0
  45. package/dist/modules/auth/routes.js.map +1 -1
  46. package/dist/modules/auth/schema.d.ts +20 -0
  47. package/dist/modules/auth/schema.d.ts.map +1 -1
  48. package/dist/modules/auth/schema.js +11 -1
  49. package/dist/modules/auth/schema.js.map +1 -1
  50. package/dist/modules/auth/service.d.ts.map +1 -1
  51. package/dist/modules/auth/service.js +27 -3
  52. package/dist/modules/auth/service.js.map +1 -1
  53. package/dist/modules/companies/index.d.ts.map +1 -1
  54. package/dist/modules/companies/index.js +3 -1
  55. package/dist/modules/companies/index.js.map +1 -1
  56. package/dist/modules/companies/repository.d.ts +2 -0
  57. package/dist/modules/companies/repository.d.ts.map +1 -1
  58. package/dist/modules/companies/repository.js +1 -0
  59. package/dist/modules/companies/repository.js.map +1 -1
  60. package/dist/modules/companies/routes.d.ts +16 -0
  61. package/dist/modules/companies/routes.d.ts.map +1 -1
  62. package/dist/modules/companies/routes.js +18 -0
  63. package/dist/modules/companies/routes.js.map +1 -1
  64. package/dist/modules/companies/schema.d.ts +37 -0
  65. package/dist/modules/companies/schema.d.ts.map +1 -1
  66. package/dist/modules/companies/schema.js +10 -1
  67. package/dist/modules/companies/schema.js.map +1 -1
  68. package/dist/modules/companies/service.d.ts +6 -0
  69. package/dist/modules/companies/service.d.ts.map +1 -1
  70. package/dist/modules/companies/service.js +45 -11
  71. package/dist/modules/companies/service.js.map +1 -1
  72. package/dist/modules/consent-purposes/capabilities.d.ts +7 -0
  73. package/dist/modules/consent-purposes/capabilities.d.ts.map +1 -0
  74. package/dist/modules/consent-purposes/capabilities.js +10 -0
  75. package/dist/modules/consent-purposes/capabilities.js.map +1 -0
  76. package/dist/modules/consent-purposes/events.d.ts +38 -0
  77. package/dist/modules/consent-purposes/events.d.ts.map +1 -0
  78. package/dist/modules/consent-purposes/events.js +17 -0
  79. package/dist/modules/consent-purposes/events.js.map +1 -0
  80. package/dist/modules/consent-purposes/index.d.ts +13 -0
  81. package/dist/modules/consent-purposes/index.d.ts.map +1 -0
  82. package/dist/modules/consent-purposes/index.js +41 -0
  83. package/dist/modules/consent-purposes/index.js.map +1 -0
  84. package/dist/modules/consent-purposes/repository.d.ts +21 -0
  85. package/dist/modules/consent-purposes/repository.d.ts.map +1 -0
  86. package/dist/modules/consent-purposes/repository.js +98 -0
  87. package/dist/modules/consent-purposes/repository.js.map +1 -0
  88. package/dist/modules/consent-purposes/routes.d.ts +39 -0
  89. package/dist/modules/consent-purposes/routes.d.ts.map +1 -0
  90. package/dist/modules/consent-purposes/routes.js +79 -0
  91. package/dist/modules/consent-purposes/routes.js.map +1 -0
  92. package/dist/modules/consent-purposes/schema.d.ts +175 -0
  93. package/dist/modules/consent-purposes/schema.d.ts.map +1 -0
  94. package/dist/modules/consent-purposes/schema.js +35 -0
  95. package/dist/modules/consent-purposes/schema.js.map +1 -0
  96. package/dist/modules/consent-purposes/service.d.ts +50 -0
  97. package/dist/modules/consent-purposes/service.d.ts.map +1 -0
  98. package/dist/modules/consent-purposes/service.js +263 -0
  99. package/dist/modules/consent-purposes/service.js.map +1 -0
  100. package/dist/modules/consent-purposes/starters.d.ts +17 -0
  101. package/dist/modules/consent-purposes/starters.d.ts.map +1 -0
  102. package/dist/modules/consent-purposes/starters.js +15 -0
  103. package/dist/modules/consent-purposes/starters.js.map +1 -0
  104. package/dist/modules/consent-purposes/tools.d.ts +4 -0
  105. package/dist/modules/consent-purposes/tools.d.ts.map +1 -0
  106. package/dist/modules/consent-purposes/tools.js +29 -0
  107. package/dist/modules/consent-purposes/tools.js.map +1 -0
  108. package/dist/modules/core.d.ts.map +1 -1
  109. package/dist/modules/core.js +21 -0
  110. package/dist/modules/core.js.map +1 -1
  111. package/dist/modules/custom-fields/capabilities.d.ts +12 -0
  112. package/dist/modules/custom-fields/capabilities.d.ts.map +1 -0
  113. package/dist/modules/custom-fields/capabilities.js +15 -0
  114. package/dist/modules/custom-fields/capabilities.js.map +1 -0
  115. package/dist/modules/custom-fields/events.d.ts +49 -0
  116. package/dist/modules/custom-fields/events.d.ts.map +1 -0
  117. package/dist/modules/custom-fields/events.js +25 -0
  118. package/dist/modules/custom-fields/events.js.map +1 -0
  119. package/dist/modules/custom-fields/index.d.ts +19 -0
  120. package/dist/modules/custom-fields/index.d.ts.map +1 -0
  121. package/dist/modules/custom-fields/index.js +46 -0
  122. package/dist/modules/custom-fields/index.js.map +1 -0
  123. package/dist/modules/custom-fields/repository.d.ts +37 -0
  124. package/dist/modules/custom-fields/repository.d.ts.map +1 -0
  125. package/dist/modules/custom-fields/repository.js +144 -0
  126. package/dist/modules/custom-fields/repository.js.map +1 -0
  127. package/dist/modules/custom-fields/routes.d.ts +44 -0
  128. package/dist/modules/custom-fields/routes.d.ts.map +1 -0
  129. package/dist/modules/custom-fields/routes.js +103 -0
  130. package/dist/modules/custom-fields/routes.js.map +1 -0
  131. package/dist/modules/custom-fields/schema.d.ts +215 -0
  132. package/dist/modules/custom-fields/schema.d.ts.map +1 -0
  133. package/dist/modules/custom-fields/schema.js +43 -0
  134. package/dist/modules/custom-fields/schema.js.map +1 -0
  135. package/dist/modules/custom-fields/service.d.ts +57 -0
  136. package/dist/modules/custom-fields/service.d.ts.map +1 -0
  137. package/dist/modules/custom-fields/service.js +273 -0
  138. package/dist/modules/custom-fields/service.js.map +1 -0
  139. package/dist/modules/custom-fields/tools.d.ts +4 -0
  140. package/dist/modules/custom-fields/tools.d.ts.map +1 -0
  141. package/dist/modules/custom-fields/tools.js +38 -0
  142. package/dist/modules/custom-fields/tools.js.map +1 -0
  143. package/dist/modules/custom-fields/values.d.ts +49 -0
  144. package/dist/modules/custom-fields/values.d.ts.map +1 -0
  145. package/dist/modules/custom-fields/values.js +249 -0
  146. package/dist/modules/custom-fields/values.js.map +1 -0
  147. package/dist/modules/custom-fields/wire.d.ts +12 -0
  148. package/dist/modules/custom-fields/wire.d.ts.map +1 -0
  149. package/dist/modules/custom-fields/wire.js +30 -0
  150. package/dist/modules/custom-fields/wire.js.map +1 -0
  151. package/dist/modules/dashboard/repository.d.ts.map +1 -1
  152. package/dist/modules/dashboard/repository.js +4 -3
  153. package/dist/modules/dashboard/repository.js.map +1 -1
  154. package/dist/modules/deals/index.d.ts +2 -1
  155. package/dist/modules/deals/index.d.ts.map +1 -1
  156. package/dist/modules/deals/index.js +5 -2
  157. package/dist/modules/deals/index.js.map +1 -1
  158. package/dist/modules/deals/repository.d.ts +0 -16
  159. package/dist/modules/deals/repository.d.ts.map +1 -1
  160. package/dist/modules/deals/repository.js +6 -76
  161. package/dist/modules/deals/repository.js.map +1 -1
  162. package/dist/modules/deals/routes.d.ts +14 -0
  163. package/dist/modules/deals/routes.d.ts.map +1 -1
  164. package/dist/modules/deals/routes.js +7 -0
  165. package/dist/modules/deals/routes.js.map +1 -1
  166. package/dist/modules/deals/schema.d.ts +20 -42
  167. package/dist/modules/deals/schema.d.ts.map +1 -1
  168. package/dist/modules/deals/schema.js +6 -11
  169. package/dist/modules/deals/schema.js.map +1 -1
  170. package/dist/modules/deals/service.d.ts +13 -2
  171. package/dist/modules/deals/service.d.ts.map +1 -1
  172. package/dist/modules/deals/service.js +43 -20
  173. package/dist/modules/deals/service.js.map +1 -1
  174. package/dist/modules/decisions/repository.d.ts.map +1 -1
  175. package/dist/modules/decisions/repository.js +2 -0
  176. package/dist/modules/decisions/repository.js.map +1 -1
  177. package/dist/modules/decisions/routes.d.ts +1 -0
  178. package/dist/modules/decisions/routes.d.ts.map +1 -1
  179. package/dist/modules/email-domain-linker/index.d.ts +12 -0
  180. package/dist/modules/email-domain-linker/index.d.ts.map +1 -0
  181. package/dist/modules/email-domain-linker/index.js +34 -0
  182. package/dist/modules/email-domain-linker/index.js.map +1 -0
  183. package/dist/modules/email-domain-linker/routes.d.ts +14 -0
  184. package/dist/modules/email-domain-linker/routes.d.ts.map +1 -0
  185. package/dist/modules/email-domain-linker/routes.js +15 -0
  186. package/dist/modules/email-domain-linker/routes.js.map +1 -0
  187. package/dist/modules/email-domain-linker/service.d.ts +37 -0
  188. package/dist/modules/email-domain-linker/service.d.ts.map +1 -0
  189. package/dist/modules/email-domain-linker/service.js +63 -0
  190. package/dist/modules/email-domain-linker/service.js.map +1 -0
  191. package/dist/modules/enquiries/events.d.ts +44 -0
  192. package/dist/modules/enquiries/events.d.ts.map +1 -0
  193. package/dist/modules/enquiries/events.js +19 -0
  194. package/dist/modules/enquiries/events.js.map +1 -0
  195. package/dist/modules/enquiries/index.d.ts +13 -0
  196. package/dist/modules/enquiries/index.d.ts.map +1 -0
  197. package/dist/modules/enquiries/index.js +44 -0
  198. package/dist/modules/enquiries/index.js.map +1 -0
  199. package/dist/modules/enquiries/repository.d.ts +30 -0
  200. package/dist/modules/enquiries/repository.d.ts.map +1 -0
  201. package/dist/modules/enquiries/repository.js +94 -0
  202. package/dist/modules/enquiries/repository.js.map +1 -0
  203. package/dist/modules/enquiries/routes.d.ts +52 -0
  204. package/dist/modules/enquiries/routes.d.ts.map +1 -0
  205. package/dist/modules/enquiries/routes.js +127 -0
  206. package/dist/modules/enquiries/routes.js.map +1 -0
  207. package/dist/modules/enquiries/schema.d.ts +290 -0
  208. package/dist/modules/enquiries/schema.d.ts.map +1 -0
  209. package/dist/modules/enquiries/schema.js +52 -0
  210. package/dist/modules/enquiries/schema.js.map +1 -0
  211. package/dist/modules/enquiries/service.d.ts +85 -0
  212. package/dist/modules/enquiries/service.d.ts.map +1 -0
  213. package/dist/modules/enquiries/service.js +370 -0
  214. package/dist/modules/enquiries/service.js.map +1 -0
  215. package/dist/modules/enquiries/tools.d.ts +4 -0
  216. package/dist/modules/enquiries/tools.d.ts.map +1 -0
  217. package/dist/modules/enquiries/tools.js +50 -0
  218. package/dist/modules/enquiries/tools.js.map +1 -0
  219. package/dist/modules/eventCatalogs.d.ts +4 -0
  220. package/dist/modules/eventCatalogs.d.ts.map +1 -1
  221. package/dist/modules/eventCatalogs.js +4 -0
  222. package/dist/modules/eventCatalogs.js.map +1 -1
  223. package/dist/modules/forms/embed.d.ts +20 -6
  224. package/dist/modules/forms/embed.d.ts.map +1 -1
  225. package/dist/modules/forms/embed.js +359 -43
  226. package/dist/modules/forms/embed.js.map +1 -1
  227. package/dist/modules/forms/events.d.ts +20 -7
  228. package/dist/modules/forms/events.d.ts.map +1 -1
  229. package/dist/modules/forms/events.js +20 -2
  230. package/dist/modules/forms/events.js.map +1 -1
  231. package/dist/modules/forms/fields.d.ts +14 -1
  232. package/dist/modules/forms/fields.d.ts.map +1 -1
  233. package/dist/modules/forms/fields.js +87 -3
  234. package/dist/modules/forms/fields.js.map +1 -1
  235. package/dist/modules/forms/index.d.ts.map +1 -1
  236. package/dist/modules/forms/index.js +12 -1
  237. package/dist/modules/forms/index.js.map +1 -1
  238. package/dist/modules/forms/mapping.d.ts +62 -5
  239. package/dist/modules/forms/mapping.d.ts.map +1 -1
  240. package/dist/modules/forms/mapping.js +139 -5
  241. package/dist/modules/forms/mapping.js.map +1 -1
  242. package/dist/modules/forms/publicRoutes.d.ts.map +1 -1
  243. package/dist/modules/forms/publicRoutes.js +29 -1
  244. package/dist/modules/forms/publicRoutes.js.map +1 -1
  245. package/dist/modules/forms/repository.d.ts +31 -0
  246. package/dist/modules/forms/repository.d.ts.map +1 -1
  247. package/dist/modules/forms/repository.js +90 -1
  248. package/dist/modules/forms/repository.js.map +1 -1
  249. package/dist/modules/forms/routes.d.ts +83 -1
  250. package/dist/modules/forms/routes.d.ts.map +1 -1
  251. package/dist/modules/forms/routes.js +185 -2
  252. package/dist/modules/forms/routes.js.map +1 -1
  253. package/dist/modules/forms/schema.d.ts +672 -1
  254. package/dist/modules/forms/schema.d.ts.map +1 -1
  255. package/dist/modules/forms/schema.js +146 -3
  256. package/dist/modules/forms/schema.js.map +1 -1
  257. package/dist/modules/forms/service.d.ts +54 -1
  258. package/dist/modules/forms/service.d.ts.map +1 -1
  259. package/dist/modules/forms/service.js +338 -28
  260. package/dist/modules/forms/service.js.map +1 -1
  261. package/dist/modules/forms/submission.d.ts +15 -0
  262. package/dist/modules/forms/submission.d.ts.map +1 -1
  263. package/dist/modules/forms/submission.js +418 -40
  264. package/dist/modules/forms/submission.js.map +1 -1
  265. package/dist/modules/import-export/drafts.d.ts +10 -0
  266. package/dist/modules/import-export/drafts.d.ts.map +1 -1
  267. package/dist/modules/import-export/drafts.js +16 -2
  268. package/dist/modules/import-export/drafts.js.map +1 -1
  269. package/dist/modules/import-export/exportRows.d.ts +7 -4
  270. package/dist/modules/import-export/exportRows.d.ts.map +1 -1
  271. package/dist/modules/import-export/exportRows.js +20 -5
  272. package/dist/modules/import-export/exportRows.js.map +1 -1
  273. package/dist/modules/import-export/plan.d.ts +12 -1
  274. package/dist/modules/import-export/plan.d.ts.map +1 -1
  275. package/dist/modules/import-export/plan.js +29 -2
  276. package/dist/modules/import-export/plan.js.map +1 -1
  277. package/dist/modules/import-export/presets.d.ts.map +1 -1
  278. package/dist/modules/import-export/presets.js +10 -0
  279. package/dist/modules/import-export/presets.js.map +1 -1
  280. package/dist/modules/import-export/repository.d.ts +11 -1
  281. package/dist/modules/import-export/repository.d.ts.map +1 -1
  282. package/dist/modules/import-export/repository.js +42 -9
  283. package/dist/modules/import-export/repository.js.map +1 -1
  284. package/dist/modules/import-export/routes.d.ts.map +1 -1
  285. package/dist/modules/import-export/routes.js +4 -0
  286. package/dist/modules/import-export/routes.js.map +1 -1
  287. package/dist/modules/import-export/schema.d.ts +17 -0
  288. package/dist/modules/import-export/schema.d.ts.map +1 -1
  289. package/dist/modules/import-export/schema.js +11 -0
  290. package/dist/modules/import-export/schema.js.map +1 -1
  291. package/dist/modules/import-export/service.d.ts +6 -0
  292. package/dist/modules/import-export/service.d.ts.map +1 -1
  293. package/dist/modules/import-export/service.js +14 -2
  294. package/dist/modules/import-export/service.js.map +1 -1
  295. package/dist/modules/import-export/streams.d.ts.map +1 -1
  296. package/dist/modules/import-export/streams.js +3 -3
  297. package/dist/modules/import-export/streams.js.map +1 -1
  298. package/dist/modules/import-export/tools.d.ts.map +1 -1
  299. package/dist/modules/import-export/tools.js +8 -0
  300. package/dist/modules/import-export/tools.js.map +1 -1
  301. package/dist/modules/import-export/validation.d.ts.map +1 -1
  302. package/dist/modules/import-export/validation.js +22 -1
  303. package/dist/modules/import-export/validation.js.map +1 -1
  304. package/dist/modules/import-export/writes.d.ts.map +1 -1
  305. package/dist/modules/import-export/writes.js +37 -4
  306. package/dist/modules/import-export/writes.js.map +1 -1
  307. package/dist/modules/lists/events.d.ts +42 -0
  308. package/dist/modules/lists/events.d.ts.map +1 -0
  309. package/dist/modules/lists/events.js +16 -0
  310. package/dist/modules/lists/events.js.map +1 -0
  311. package/dist/modules/lists/index.d.ts +10 -0
  312. package/dist/modules/lists/index.d.ts.map +1 -0
  313. package/dist/modules/lists/index.js +35 -0
  314. package/dist/modules/lists/index.js.map +1 -0
  315. package/dist/modules/lists/repository.d.ts +80 -0
  316. package/dist/modules/lists/repository.d.ts.map +1 -0
  317. package/dist/modules/lists/repository.js +178 -0
  318. package/dist/modules/lists/repository.js.map +1 -0
  319. package/dist/modules/lists/routes.d.ts +55 -0
  320. package/dist/modules/lists/routes.d.ts.map +1 -0
  321. package/dist/modules/lists/routes.js +168 -0
  322. package/dist/modules/lists/routes.js.map +1 -0
  323. package/dist/modules/lists/schema.d.ts +281 -0
  324. package/dist/modules/lists/schema.d.ts.map +1 -0
  325. package/dist/modules/lists/schema.js +83 -0
  326. package/dist/modules/lists/schema.js.map +1 -0
  327. package/dist/modules/lists/service.d.ts +82 -0
  328. package/dist/modules/lists/service.d.ts.map +1 -0
  329. package/dist/modules/lists/service.js +262 -0
  330. package/dist/modules/lists/service.js.map +1 -0
  331. package/dist/modules/lists/tools.d.ts +4 -0
  332. package/dist/modules/lists/tools.d.ts.map +1 -0
  333. package/dist/modules/lists/tools.js +86 -0
  334. package/dist/modules/lists/tools.js.map +1 -0
  335. package/dist/modules/mcp/index.d.ts.map +1 -1
  336. package/dist/modules/mcp/index.js +5 -0
  337. package/dist/modules/mcp/index.js.map +1 -1
  338. package/dist/modules/notes/routes.d.ts +1 -0
  339. package/dist/modules/notes/routes.d.ts.map +1 -1
  340. package/dist/modules/opportunities/index.d.ts.map +1 -1
  341. package/dist/modules/opportunities/index.js +3 -1
  342. package/dist/modules/opportunities/index.js.map +1 -1
  343. package/dist/modules/opportunities/repository.d.ts +2 -0
  344. package/dist/modules/opportunities/repository.d.ts.map +1 -1
  345. package/dist/modules/opportunities/repository.js +4 -0
  346. package/dist/modules/opportunities/repository.js.map +1 -1
  347. package/dist/modules/opportunities/routes.d.ts +16 -0
  348. package/dist/modules/opportunities/routes.d.ts.map +1 -1
  349. package/dist/modules/opportunities/routes.js +13 -0
  350. package/dist/modules/opportunities/routes.js.map +1 -1
  351. package/dist/modules/opportunities/schema.d.ts +20 -0
  352. package/dist/modules/opportunities/schema.d.ts.map +1 -1
  353. package/dist/modules/opportunities/schema.js +6 -1
  354. package/dist/modules/opportunities/schema.js.map +1 -1
  355. package/dist/modules/opportunities/service.d.ts +20 -3
  356. package/dist/modules/opportunities/service.d.ts.map +1 -1
  357. package/dist/modules/opportunities/service.js +99 -18
  358. package/dist/modules/opportunities/service.js.map +1 -1
  359. package/dist/modules/opportunities/tools.d.ts.map +1 -1
  360. package/dist/modules/opportunities/tools.js +2 -0
  361. package/dist/modules/opportunities/tools.js.map +1 -1
  362. package/dist/modules/partnerships/index.d.ts.map +1 -1
  363. package/dist/modules/partnerships/index.js +3 -1
  364. package/dist/modules/partnerships/index.js.map +1 -1
  365. package/dist/modules/partnerships/repository.d.ts +0 -17
  366. package/dist/modules/partnerships/repository.d.ts.map +1 -1
  367. package/dist/modules/partnerships/repository.js +6 -82
  368. package/dist/modules/partnerships/repository.js.map +1 -1
  369. package/dist/modules/partnerships/routes.d.ts +14 -0
  370. package/dist/modules/partnerships/routes.d.ts.map +1 -1
  371. package/dist/modules/partnerships/routes.js +7 -0
  372. package/dist/modules/partnerships/routes.js.map +1 -1
  373. package/dist/modules/partnerships/schema.d.ts +20 -41
  374. package/dist/modules/partnerships/schema.d.ts.map +1 -1
  375. package/dist/modules/partnerships/schema.js +6 -10
  376. package/dist/modules/partnerships/schema.js.map +1 -1
  377. package/dist/modules/partnerships/service.d.ts +11 -1
  378. package/dist/modules/partnerships/service.d.ts.map +1 -1
  379. package/dist/modules/partnerships/service.js +43 -20
  380. package/dist/modules/partnerships/service.js.map +1 -1
  381. package/dist/modules/people/consentHydration.d.ts +26 -0
  382. package/dist/modules/people/consentHydration.d.ts.map +1 -0
  383. package/dist/modules/people/consentHydration.js +100 -0
  384. package/dist/modules/people/consentHydration.js.map +1 -0
  385. package/dist/modules/people/index.d.ts.map +1 -1
  386. package/dist/modules/people/index.js +3 -1
  387. package/dist/modules/people/index.js.map +1 -1
  388. package/dist/modules/people/personConsentWrites.d.ts +40 -0
  389. package/dist/modules/people/personConsentWrites.d.ts.map +1 -0
  390. package/dist/modules/people/personConsentWrites.js +98 -0
  391. package/dist/modules/people/personConsentWrites.js.map +1 -0
  392. package/dist/modules/people/repository.d.ts +11 -0
  393. package/dist/modules/people/repository.d.ts.map +1 -1
  394. package/dist/modules/people/repository.js +21 -1
  395. package/dist/modules/people/repository.js.map +1 -1
  396. package/dist/modules/people/routes.d.ts +57 -4
  397. package/dist/modules/people/routes.d.ts.map +1 -1
  398. package/dist/modules/people/routes.js +104 -5
  399. package/dist/modules/people/routes.js.map +1 -1
  400. package/dist/modules/people/schema.d.ts +366 -1
  401. package/dist/modules/people/schema.d.ts.map +1 -1
  402. package/dist/modules/people/schema.js +92 -2
  403. package/dist/modules/people/schema.js.map +1 -1
  404. package/dist/modules/people/service.d.ts +30 -1
  405. package/dist/modules/people/service.d.ts.map +1 -1
  406. package/dist/modules/people/service.js +131 -36
  407. package/dist/modules/people/service.js.map +1 -1
  408. package/dist/modules/people/tools.d.ts.map +1 -1
  409. package/dist/modules/people/tools.js +4 -1
  410. package/dist/modules/people/tools.js.map +1 -1
  411. package/dist/modules/personLinks.d.ts +79 -0
  412. package/dist/modules/personLinks.d.ts.map +1 -0
  413. package/dist/modules/personLinks.js +155 -0
  414. package/dist/modules/personLinks.js.map +1 -0
  415. package/dist/modules/pipelines/routes.d.ts +1 -0
  416. package/dist/modules/pipelines/routes.d.ts.map +1 -1
  417. package/dist/modules/plans/routes.d.ts +1 -0
  418. package/dist/modules/plans/routes.d.ts.map +1 -1
  419. package/dist/modules/positions/routes.d.ts.map +1 -1
  420. package/dist/modules/positions/routes.js +4 -2
  421. package/dist/modules/positions/routes.js.map +1 -1
  422. package/dist/modules/raises/index.d.ts.map +1 -1
  423. package/dist/modules/raises/index.js +3 -1
  424. package/dist/modules/raises/index.js.map +1 -1
  425. package/dist/modules/raises/repository.d.ts +0 -17
  426. package/dist/modules/raises/repository.d.ts.map +1 -1
  427. package/dist/modules/raises/repository.js +6 -77
  428. package/dist/modules/raises/repository.js.map +1 -1
  429. package/dist/modules/raises/routes.d.ts +14 -0
  430. package/dist/modules/raises/routes.d.ts.map +1 -1
  431. package/dist/modules/raises/routes.js +7 -0
  432. package/dist/modules/raises/routes.js.map +1 -1
  433. package/dist/modules/raises/schema.d.ts +20 -41
  434. package/dist/modules/raises/schema.d.ts.map +1 -1
  435. package/dist/modules/raises/schema.js +6 -10
  436. package/dist/modules/raises/schema.js.map +1 -1
  437. package/dist/modules/raises/service.d.ts +11 -1
  438. package/dist/modules/raises/service.d.ts.map +1 -1
  439. package/dist/modules/raises/service.js +41 -18
  440. package/dist/modules/raises/service.js.map +1 -1
  441. package/dist/modules/recordTargets.d.ts.map +1 -1
  442. package/dist/modules/recordTargets.js +2 -0
  443. package/dist/modules/recordTargets.js.map +1 -1
  444. package/dist/modules/references.d.ts +10 -0
  445. package/dist/modules/references.d.ts.map +1 -1
  446. package/dist/modules/references.js +27 -4
  447. package/dist/modules/references.js.map +1 -1
  448. package/dist/modules/sample-data/fixture.d.ts +160 -0
  449. package/dist/modules/sample-data/fixture.d.ts.map +1 -0
  450. package/dist/modules/sample-data/fixture.js +501 -0
  451. package/dist/modules/sample-data/fixture.js.map +1 -0
  452. package/dist/modules/sample-data/index.d.ts +11 -0
  453. package/dist/modules/sample-data/index.d.ts.map +1 -0
  454. package/dist/modules/sample-data/index.js +44 -0
  455. package/dist/modules/sample-data/index.js.map +1 -0
  456. package/dist/modules/sample-data/routes.d.ts +15 -0
  457. package/dist/modules/sample-data/routes.d.ts.map +1 -0
  458. package/dist/modules/sample-data/routes.js +25 -0
  459. package/dist/modules/sample-data/routes.js.map +1 -0
  460. package/dist/modules/sample-data/service.d.ts +39 -0
  461. package/dist/modules/sample-data/service.d.ts.map +1 -0
  462. package/dist/modules/sample-data/service.js +481 -0
  463. package/dist/modules/sample-data/service.js.map +1 -0
  464. package/dist/modules/sample-data/tools.d.ts +4 -0
  465. package/dist/modules/sample-data/tools.d.ts.map +1 -0
  466. package/dist/modules/sample-data/tools.js +22 -0
  467. package/dist/modules/sample-data/tools.js.map +1 -0
  468. package/dist/modules/search/index.d.ts +1 -1
  469. package/dist/modules/search/index.d.ts.map +1 -1
  470. package/dist/modules/search/index.js +2 -1
  471. package/dist/modules/search/index.js.map +1 -1
  472. package/dist/modules/search/repository.d.ts +1 -0
  473. package/dist/modules/search/repository.d.ts.map +1 -1
  474. package/dist/modules/search/repository.js +23 -0
  475. package/dist/modules/search/repository.js.map +1 -1
  476. package/dist/modules/search/service.d.ts +3 -3
  477. package/dist/modules/search/service.d.ts.map +1 -1
  478. package/dist/modules/search/service.js +5 -4
  479. package/dist/modules/search/service.js.map +1 -1
  480. package/dist/modules/smtp-email/index.d.ts +1 -0
  481. package/dist/modules/smtp-email/index.d.ts.map +1 -1
  482. package/dist/modules/smtp-email/index.js +1 -0
  483. package/dist/modules/smtp-email/index.js.map +1 -1
  484. package/dist/modules/stagedRecords.d.ts +3 -3
  485. package/dist/modules/stagedRecords.d.ts.map +1 -1
  486. package/dist/modules/stagedRecords.js +9 -0
  487. package/dist/modules/stagedRecords.js.map +1 -1
  488. package/dist/modules/webhooks/payloads.d.ts.map +1 -1
  489. package/dist/modules/webhooks/payloads.js +15 -2
  490. package/dist/modules/webhooks/payloads.js.map +1 -1
  491. package/dist/modules/workspace/repository.d.ts +2 -0
  492. package/dist/modules/workspace/repository.d.ts.map +1 -1
  493. package/dist/modules/workspace/repository.js +7 -0
  494. package/dist/modules/workspace/repository.js.map +1 -1
  495. package/dist/modules/workspace/service.d.ts.map +1 -1
  496. package/dist/modules/workspace/service.js +20 -1
  497. package/dist/modules/workspace/service.js.map +1 -1
  498. package/dist/modules/workspace/starters.d.ts.map +1 -1
  499. package/dist/modules/workspace/starters.js +5 -0
  500. package/dist/modules/workspace/starters.js.map +1 -1
  501. package/dist/runtime/events.d.ts +1 -1
  502. package/dist/runtime/events.d.ts.map +1 -1
  503. package/dist/runtime/events.js +1 -0
  504. package/dist/runtime/events.js.map +1 -1
  505. package/dist/schema/index.d.ts +4 -0
  506. package/dist/schema/index.d.ts.map +1 -1
  507. package/dist/schema/index.js +4 -0
  508. package/dist/schema/index.js.map +1 -1
  509. package/dist/testing/database.d.ts +5 -1
  510. package/dist/testing/database.d.ts.map +1 -1
  511. package/dist/testing/database.js +81 -10
  512. package/dist/testing/database.js.map +1 -1
  513. package/migrations/0021_certain_maggott.sql +30 -0
  514. package/migrations/0022_stormy_manta.sql +1 -0
  515. package/migrations/0023_funny_maddog.sql +1 -0
  516. package/migrations/0024_third_king_cobra.sql +46 -0
  517. package/migrations/0025_worthless_chimera.sql +3 -0
  518. package/migrations/0026_late_aqueduct.sql +46 -0
  519. package/migrations/0027_brainy_silver_sable.sql +3 -0
  520. package/migrations/0028_freezing_scrambler.sql +19 -0
  521. package/migrations/0029_custom_fields.sql +26 -0
  522. package/migrations/0030_enquiries.sql +79 -0
  523. package/migrations/0031_consent.sql +45 -0
  524. package/migrations/0032_form_field_statement.sql +1 -0
  525. package/migrations/0033_form_field_consent_purpose_ids.sql +5 -0
  526. package/migrations/0034_drop_form_field_consent_purpose_id.sql +1 -0
  527. package/migrations/0035_form_field_consent_purpose_labels.sql +1 -0
  528. package/migrations/0036_form_field_notice_type.sql +2 -0
  529. package/migrations/meta/0021_snapshot.json +5389 -0
  530. package/migrations/meta/0022_snapshot.json +5396 -0
  531. package/migrations/meta/0023_snapshot.json +5403 -0
  532. package/migrations/meta/0024_snapshot.json +5516 -0
  533. package/migrations/meta/0025_snapshot.json +5336 -0
  534. package/migrations/meta/0026_snapshot.json +5710 -0
  535. package/migrations/meta/0027_snapshot.json +5716 -0
  536. package/migrations/meta/0028_snapshot.json +5740 -0
  537. package/migrations/meta/0029_snapshot.json +5935 -0
  538. package/migrations/meta/0030_snapshot.json +6245 -0
  539. package/migrations/meta/0031_snapshot.json +6572 -0
  540. package/migrations/meta/0032_snapshot.json +6578 -0
  541. package/migrations/meta/0033_snapshot.json +6572 -0
  542. package/migrations/meta/0034_snapshot.json +6566 -0
  543. package/migrations/meta/0035_snapshot.json +6573 -0
  544. package/migrations/meta/0036_snapshot.json +6573 -0
  545. package/migrations/meta/_journal.json +112 -0
  546. package/package.json +3 -2
  547. package/src/lib/consumerEmailDomains.ts +62 -0
  548. package/src/lib/email.ts +7 -0
  549. package/src/lib/emailContent.ts +91 -0
  550. package/src/lib/emailDomainAutoLink.ts +165 -0
  551. package/src/lib/ids.ts +13 -0
  552. package/src/modules/activities/repository.ts +22 -23
  553. package/src/modules/activities/wording.ts +18 -0
  554. package/src/modules/agent-tasks/catalog.ts +63 -0
  555. package/src/modules/agent-tasks/resolve.ts +64 -24
  556. package/src/modules/attachedRecords.ts +37 -3
  557. package/src/modules/auth/preferences.ts +13 -1
  558. package/src/modules/auth/routes.ts +22 -0
  559. package/src/modules/auth/schema.ts +12 -2
  560. package/src/modules/auth/service.ts +37 -3
  561. package/src/modules/companies/index.ts +3 -1
  562. package/src/modules/companies/repository.ts +3 -0
  563. package/src/modules/companies/routes.ts +20 -0
  564. package/src/modules/companies/schema.ts +11 -1
  565. package/src/modules/companies/service.ts +72 -12
  566. package/src/modules/consent-purposes/capabilities.ts +12 -0
  567. package/src/modules/consent-purposes/events.ts +38 -0
  568. package/src/modules/consent-purposes/index.ts +48 -0
  569. package/src/modules/consent-purposes/repository.ts +163 -0
  570. package/src/modules/consent-purposes/routes.ts +122 -0
  571. package/src/modules/consent-purposes/schema.ts +46 -0
  572. package/src/modules/consent-purposes/service.ts +423 -0
  573. package/src/modules/consent-purposes/starters.ts +32 -0
  574. package/src/modules/consent-purposes/tools.ts +44 -0
  575. package/src/modules/core.ts +21 -0
  576. package/src/modules/custom-fields/capabilities.ts +17 -0
  577. package/src/modules/custom-fields/events.ts +51 -0
  578. package/src/modules/custom-fields/index.ts +61 -0
  579. package/src/modules/custom-fields/repository.ts +225 -0
  580. package/src/modules/custom-fields/routes.ts +155 -0
  581. package/src/modules/custom-fields/schema.ts +61 -0
  582. package/src/modules/custom-fields/service.ts +439 -0
  583. package/src/modules/custom-fields/tools.ts +53 -0
  584. package/src/modules/custom-fields/values.ts +352 -0
  585. package/src/modules/custom-fields/wire.ts +32 -0
  586. package/src/modules/dashboard/repository.ts +4 -3
  587. package/src/modules/deals/index.ts +5 -2
  588. package/src/modules/deals/repository.ts +6 -106
  589. package/src/modules/deals/routes.ts +7 -0
  590. package/src/modules/deals/schema.ts +7 -15
  591. package/src/modules/deals/service.ts +92 -23
  592. package/src/modules/decisions/repository.ts +2 -0
  593. package/src/modules/email-domain-linker/index.ts +40 -0
  594. package/src/modules/email-domain-linker/routes.ts +40 -0
  595. package/src/modules/email-domain-linker/service.ts +122 -0
  596. package/src/modules/enquiries/events.ts +45 -0
  597. package/src/modules/enquiries/index.ts +50 -0
  598. package/src/modules/enquiries/repository.ts +164 -0
  599. package/src/modules/enquiries/routes.ts +172 -0
  600. package/src/modules/enquiries/schema.ts +59 -0
  601. package/src/modules/enquiries/service.ts +644 -0
  602. package/src/modules/enquiries/tools.ts +66 -0
  603. package/src/modules/eventCatalogs.ts +4 -0
  604. package/src/modules/forms/embed.ts +391 -44
  605. package/src/modules/forms/events.ts +30 -2
  606. package/src/modules/forms/fields.ts +102 -2
  607. package/src/modules/forms/index.ts +12 -1
  608. package/src/modules/forms/mapping.ts +183 -6
  609. package/src/modules/forms/publicRoutes.ts +43 -1
  610. package/src/modules/forms/repository.ts +162 -1
  611. package/src/modules/forms/routes.ts +212 -2
  612. package/src/modules/forms/schema.ts +166 -4
  613. package/src/modules/forms/service.ts +565 -41
  614. package/src/modules/forms/submission.ts +718 -44
  615. package/src/modules/import-export/drafts.ts +20 -1
  616. package/src/modules/import-export/exportRows.ts +21 -5
  617. package/src/modules/import-export/plan.ts +47 -2
  618. package/src/modules/import-export/presets.ts +10 -0
  619. package/src/modules/import-export/repository.ts +73 -8
  620. package/src/modules/import-export/routes.ts +4 -0
  621. package/src/modules/import-export/schema.ts +11 -0
  622. package/src/modules/import-export/service.ts +28 -2
  623. package/src/modules/import-export/streams.ts +3 -1
  624. package/src/modules/import-export/tools.ts +10 -0
  625. package/src/modules/import-export/validation.ts +28 -0
  626. package/src/modules/import-export/writes.ts +70 -5
  627. package/src/modules/lists/events.ts +41 -0
  628. package/src/modules/lists/index.ts +41 -0
  629. package/src/modules/lists/repository.ts +343 -0
  630. package/src/modules/lists/routes.ts +255 -0
  631. package/src/modules/lists/schema.ts +95 -0
  632. package/src/modules/lists/service.ts +505 -0
  633. package/src/modules/lists/tools.ts +128 -0
  634. package/src/modules/mcp/index.ts +5 -0
  635. package/src/modules/opportunities/index.ts +3 -1
  636. package/src/modules/opportunities/repository.ts +11 -0
  637. package/src/modules/opportunities/routes.ts +13 -0
  638. package/src/modules/opportunities/schema.ts +7 -1
  639. package/src/modules/opportunities/service.ts +188 -22
  640. package/src/modules/opportunities/tools.ts +2 -0
  641. package/src/modules/partnerships/index.ts +3 -1
  642. package/src/modules/partnerships/repository.ts +6 -117
  643. package/src/modules/partnerships/routes.ts +7 -0
  644. package/src/modules/partnerships/schema.ts +7 -14
  645. package/src/modules/partnerships/service.ts +93 -22
  646. package/src/modules/people/consentHydration.ts +167 -0
  647. package/src/modules/people/index.ts +3 -1
  648. package/src/modules/people/personConsentWrites.ts +177 -0
  649. package/src/modules/people/repository.ts +31 -0
  650. package/src/modules/people/routes.ts +127 -18
  651. package/src/modules/people/schema.ts +109 -3
  652. package/src/modules/people/service.ts +205 -39
  653. package/src/modules/people/tools.ts +5 -1
  654. package/src/modules/personLinks.ts +278 -0
  655. package/src/modules/positions/routes.ts +4 -2
  656. package/src/modules/raises/index.ts +3 -1
  657. package/src/modules/raises/repository.ts +6 -107
  658. package/src/modules/raises/routes.ts +7 -0
  659. package/src/modules/raises/schema.ts +7 -14
  660. package/src/modules/raises/service.ts +91 -20
  661. package/src/modules/recordTargets.ts +2 -0
  662. package/src/modules/references.ts +43 -4
  663. package/src/modules/sample-data/fixture.ts +690 -0
  664. package/src/modules/sample-data/index.ts +51 -0
  665. package/src/modules/sample-data/routes.ts +50 -0
  666. package/src/modules/sample-data/service.ts +679 -0
  667. package/src/modules/sample-data/tools.ts +32 -0
  668. package/src/modules/search/index.ts +2 -1
  669. package/src/modules/search/repository.ts +33 -1
  670. package/src/modules/search/service.ts +7 -5
  671. package/src/modules/smtp-email/index.ts +8 -1
  672. package/src/modules/stagedRecords.ts +18 -3
  673. package/src/modules/webhooks/payloads.ts +20 -2
  674. package/src/modules/workspace/repository.ts +12 -0
  675. package/src/modules/workspace/service.ts +27 -1
  676. package/src/modules/workspace/starters.ts +5 -0
  677. package/src/runtime/events.ts +1 -0
  678. package/src/schema/index.ts +4 -0
  679. package/src/testing/database.ts +97 -11
@@ -0,0 +1,690 @@
1
+ import type { AccountType, CompanyStage, IcpFit, SizeBand } from '@kelpie/schemas'
2
+ import type { CandidateStatus, InterviewStage, RoleStatus } from '@kelpie/schemas'
3
+ import type { Influence, PreferredChannel, Relationship } from '@kelpie/schemas'
4
+ import type { PipelineKind, PlanItemStatus, RecordTargetType } from '@kelpie/schemas'
5
+
6
+ /**
7
+ * The sample workspace, as a self-contained fixture.
8
+ *
9
+ * Cross-record links use string keys (`companyKey`, `personKey`, `dealKey`),
10
+ * not ids. The installer resolves them into real ids at insert time. This is
11
+ * data, not migrations: a workspace owner may delete or edit any row later.
12
+ *
13
+ * Kept small on purpose. A reader should be able to see the whole company in one
14
+ * scroll, and a workspace clearing it out should not be a chore.
15
+ */
16
+
17
+ export interface FixtureCompany {
18
+ readonly key: string
19
+ readonly name: string
20
+ readonly domain: string | null
21
+ readonly industry: string | null
22
+ readonly description: string
23
+ readonly stage: CompanyStage
24
+ readonly sizeBand: SizeBand
25
+ readonly hq: string | null
26
+ readonly website: string | null
27
+ readonly accountType: AccountType
28
+ readonly icpFit: IcpFit
29
+ readonly techStack: readonly string[]
30
+ readonly summary: string
31
+ readonly tags: readonly string[]
32
+ }
33
+
34
+ export interface FixturePerson {
35
+ readonly key: string
36
+ readonly name: string
37
+ /**
38
+ * Filled for every sample person so the sample workspace shows the parts
39
+ * carrying real values rather than a column of dashes. `salutation` and
40
+ * `suffix` are left out: neither is on anybody here, and inventing one for the
41
+ * sake of the demo would put a title on a person who does not use it.
42
+ */
43
+ readonly firstName: string
44
+ readonly lastName: string
45
+ readonly email: string | null
46
+ readonly location: string | null
47
+ readonly preferredChannel: PreferredChannel
48
+ readonly influence: Influence
49
+ readonly relationship: Relationship
50
+ readonly summary: string
51
+ readonly tags: readonly string[]
52
+ }
53
+
54
+ export interface FixturePosition {
55
+ readonly personKey: string
56
+ readonly companyKey: string
57
+ readonly title: string
58
+ }
59
+
60
+ export interface FixtureDeal {
61
+ readonly key: string
62
+ readonly name: string
63
+ readonly companyKey: string
64
+ readonly stageSlug: string
65
+ readonly valueCents: number | null
66
+ readonly currency: string | null
67
+ readonly expectedClose: string | null
68
+ readonly whyWin: string
69
+ readonly risks: string
70
+ readonly summary: string
71
+ readonly tags: readonly string[]
72
+ readonly peopleKeys: readonly string[]
73
+ }
74
+
75
+ export interface FixturePlanItem {
76
+ readonly targetType: PipelineKind
77
+ readonly targetDealKey: string
78
+ readonly date: string
79
+ readonly title: string
80
+ readonly status: PlanItemStatus
81
+ }
82
+
83
+ export interface FixtureNote {
84
+ readonly targetType: RecordTargetType
85
+ readonly targetKey: string
86
+ readonly body: string
87
+ readonly pinned: boolean
88
+ }
89
+
90
+ export interface FixtureOpportunity {
91
+ readonly key: string
92
+ readonly name: string
93
+ readonly kind: string
94
+ readonly stageSlug: string
95
+ /** Nullable: a grant or speaking slot need not belong to a company on file. */
96
+ readonly companyKey: string | null
97
+ readonly expectedClose: string | null
98
+ readonly summary: string
99
+ readonly tags: readonly string[]
100
+ }
101
+
102
+ export interface FixtureEnquiry {
103
+ readonly key: string
104
+ readonly name: string
105
+ /** Free text ("Website", "Email", "Referral"). Empty means unclassified. */
106
+ readonly source: string
107
+ readonly stageSlug: string
108
+ /** Nullable: an enquiry may arrive before a company is on file. */
109
+ readonly companyKey: string | null
110
+ readonly summary: string
111
+ readonly tags: readonly string[]
112
+ readonly peopleKeys: readonly string[]
113
+ }
114
+
115
+ export interface FixtureRaise {
116
+ readonly key: string
117
+ readonly name: string
118
+ readonly companyKey: string
119
+ readonly stageSlug: string
120
+ readonly checkSizeCents: number | null
121
+ readonly currency: string | null
122
+ readonly thesisFit: string
123
+ readonly expectedClose: string | null
124
+ readonly summary: string
125
+ readonly tags: readonly string[]
126
+ readonly peopleKeys: readonly string[]
127
+ }
128
+
129
+ export interface FixturePartnership {
130
+ readonly key: string
131
+ readonly name: string
132
+ readonly companyKey: string
133
+ readonly stageSlug: string
134
+ readonly kind: string
135
+ readonly nextTouchpoint: string | null
136
+ readonly goals: string
137
+ readonly successLooksLike: string
138
+ readonly summary: string
139
+ readonly tags: readonly string[]
140
+ readonly peopleKeys: readonly string[]
141
+ }
142
+
143
+ export interface FixtureRole {
144
+ readonly key: string
145
+ readonly title: string
146
+ readonly status: RoleStatus
147
+ }
148
+
149
+ export interface FixtureCandidate {
150
+ readonly key: string
151
+ readonly personKey: string
152
+ readonly roleKey: string
153
+ readonly status: CandidateStatus
154
+ /** Only set when `status` is `in_process`. Other statuses clear it. */
155
+ readonly interviewStage: InterviewStage | null
156
+ readonly referrerPersonKey: string | null
157
+ }
158
+
159
+ export interface Fixture {
160
+ readonly companies: readonly FixtureCompany[]
161
+ readonly people: readonly FixturePerson[]
162
+ readonly positions: readonly FixturePosition[]
163
+ readonly deals: readonly FixtureDeal[]
164
+ readonly plans: readonly FixturePlanItem[]
165
+ readonly notes: readonly FixtureNote[]
166
+ readonly opportunities: readonly FixtureOpportunity[]
167
+ readonly raises: readonly FixtureRaise[]
168
+ readonly partnerships: readonly FixturePartnership[]
169
+ readonly enquiries: readonly FixtureEnquiry[]
170
+ readonly roles: readonly FixtureRole[]
171
+ readonly candidates: readonly FixtureCandidate[]
172
+ }
173
+
174
+ export const SAMPLE_DATA_FIXTURE: Fixture = {
175
+ companies: [
176
+ {
177
+ key: 'northwind',
178
+ name: 'Northwind Traders',
179
+ domain: 'northwind.dev',
180
+ industry: 'Logistics software',
181
+ description: 'Freight forwarding platform for mid-market importers.',
182
+ stage: 'growth',
183
+ sizeBand: '51-200',
184
+ hq: 'Melbourne, AU',
185
+ website: 'https://northwind.dev',
186
+ accountType: 'customer',
187
+ icpFit: 'high',
188
+ techStack: ['Postgres', 'Node', 'React'],
189
+ summary: 'Active customer. Two seats, expanding to five in Q3.',
190
+ tags: ['customer', 'expansion'],
191
+ },
192
+ {
193
+ key: 'globex',
194
+ name: 'Globex Corporation',
195
+ domain: 'globex.example',
196
+ industry: 'Manufacturing',
197
+ description: 'Industrial IoT platform for factory operators.',
198
+ stage: 'enterprise',
199
+ sizeBand: '201+',
200
+ hq: 'Sydney, AU',
201
+ website: 'https://globex.example',
202
+ accountType: 'prospect',
203
+ icpFit: 'medium',
204
+ techStack: ['Java', 'Kafka'],
205
+ summary: 'Qualifying. Legal review is the current gate.',
206
+ tags: ['enterprise'],
207
+ },
208
+ {
209
+ key: 'initech',
210
+ name: 'Initech',
211
+ domain: 'initech.example',
212
+ industry: 'Financial services',
213
+ description: 'Accounts payable automation for SMBs.',
214
+ stage: 'startup',
215
+ sizeBand: '11-50',
216
+ hq: 'Brisbane, AU',
217
+ website: 'https://initech.example',
218
+ accountType: 'prospect',
219
+ icpFit: 'high',
220
+ techStack: ['Python', 'Postgres'],
221
+ summary: 'Inbound from the demo form last week.',
222
+ tags: ['inbound'],
223
+ },
224
+ {
225
+ key: 'hooli',
226
+ name: 'Hooli',
227
+ domain: 'hooli.example',
228
+ industry: 'Consumer platform',
229
+ description: 'Search and discovery for local services.',
230
+ stage: 'growth',
231
+ sizeBand: '51-200',
232
+ hq: 'Perth, AU',
233
+ website: 'https://hooli.example',
234
+ accountType: 'partner',
235
+ icpFit: 'medium',
236
+ techStack: ['Go', 'gRPC'],
237
+ summary: 'Referral partner. Sends two or three inbound leads a month.',
238
+ tags: ['partner'],
239
+ },
240
+ {
241
+ key: 'stark',
242
+ name: 'Stark Industries',
243
+ domain: 'stark.example',
244
+ industry: 'Aerospace',
245
+ description: 'Contract manufacturing for defence primes.',
246
+ stage: 'enterprise',
247
+ sizeBand: '201+',
248
+ hq: 'Adelaide, AU',
249
+ website: 'https://stark.example',
250
+ accountType: 'prospect',
251
+ icpFit: 'low',
252
+ techStack: [],
253
+ summary: 'Not a fit today. Keep warm for a future compliance module.',
254
+ tags: ['not-a-fit'],
255
+ },
256
+ {
257
+ key: 'sequoia',
258
+ name: 'Southern Cross Ventures',
259
+ domain: 'southerncross.example',
260
+ industry: 'Venture capital',
261
+ description: 'Seed-stage investor, one to five million cheque size.',
262
+ stage: 'other',
263
+ sizeBand: '11-50',
264
+ hq: 'Sydney, AU',
265
+ website: 'https://southerncross.example',
266
+ accountType: 'investor',
267
+ icpFit: 'unknown',
268
+ techStack: [],
269
+ summary: 'Warm intro from a portfolio founder in June.',
270
+ tags: ['investor'],
271
+ },
272
+ {
273
+ key: 'sandbox',
274
+ name: 'Sandbox Accelerator',
275
+ domain: 'sandbox.example',
276
+ industry: 'Startup accelerator',
277
+ description: 'Twelve week program with a demo day and alumni network.',
278
+ stage: 'other',
279
+ sizeBand: '11-50',
280
+ hq: 'Melbourne, AU',
281
+ website: 'https://sandbox.example',
282
+ accountType: 'partner',
283
+ icpFit: 'unknown',
284
+ techStack: [],
285
+ summary: 'Alumni of the 2024 cohort. Runs regular founder events.',
286
+ tags: ['accelerator'],
287
+ },
288
+ ],
289
+
290
+ people: [
291
+ {
292
+ key: 'ada',
293
+ name: 'Ada Lovelace',
294
+ firstName: 'Ada',
295
+ lastName: 'Lovelace',
296
+ email: 'ada@northwind.dev',
297
+ location: 'Melbourne, AU',
298
+ preferredChannel: 'email',
299
+ influence: 'champion',
300
+ relationship: 'strong',
301
+ summary: 'Executive sponsor at Northwind. Signs off on renewals.',
302
+ tags: ['champion'],
303
+ },
304
+ {
305
+ key: 'grace',
306
+ name: 'Grace Hopper',
307
+ firstName: 'Grace',
308
+ lastName: 'Hopper',
309
+ email: 'grace@northwind.dev',
310
+ location: 'Melbourne, AU',
311
+ preferredChannel: 'email',
312
+ influence: 'influencer',
313
+ relationship: 'warm',
314
+ summary: 'Operations lead at Northwind. Day-to-day contact.',
315
+ tags: [],
316
+ },
317
+ {
318
+ key: 'tom',
319
+ name: 'Tom Anderson',
320
+ firstName: 'Tom',
321
+ lastName: 'Anderson',
322
+ email: 'tom@globex.example',
323
+ location: 'Sydney, AU',
324
+ preferredChannel: 'call',
325
+ influence: 'decision_maker',
326
+ relationship: 'warm',
327
+ summary: 'Head of engineering at Globex. Decision maker on the qualifying deal.',
328
+ tags: ['decision-maker'],
329
+ },
330
+ {
331
+ key: 'peter',
332
+ name: 'Peter Gibbons',
333
+ firstName: 'Peter',
334
+ lastName: 'Gibbons',
335
+ email: 'peter@initech.example',
336
+ location: 'Brisbane, AU',
337
+ preferredChannel: 'email',
338
+ influence: 'influencer',
339
+ relationship: 'warm',
340
+ summary: 'Product manager at Initech. Filled in the demo form.',
341
+ tags: ['inbound'],
342
+ },
343
+ {
344
+ key: 'gavin',
345
+ name: 'Gavin Belson',
346
+ firstName: 'Gavin',
347
+ lastName: 'Belson',
348
+ email: 'gavin@hooli.example',
349
+ location: 'Perth, AU',
350
+ preferredChannel: 'linkedin',
351
+ influence: 'decision_maker',
352
+ relationship: 'warm',
353
+ summary: 'Partnerships lead at Hooli. Introduced Initech last month.',
354
+ tags: ['partner'],
355
+ },
356
+ {
357
+ key: 'roelof',
358
+ name: 'Roelof Nkosi',
359
+ firstName: 'Roelof',
360
+ lastName: 'Nkosi',
361
+ email: 'roelof@southerncross.example',
362
+ location: 'Sydney, AU',
363
+ preferredChannel: 'email',
364
+ influence: 'decision_maker',
365
+ relationship: 'warm',
366
+ summary: 'Partner at Southern Cross. Leading the diligence on our seed round.',
367
+ tags: ['investor'],
368
+ },
369
+ {
370
+ key: 'mei',
371
+ name: 'Mei Zhang',
372
+ firstName: 'Mei',
373
+ lastName: 'Zhang',
374
+ email: 'mei@sandbox.example',
375
+ location: 'Melbourne, AU',
376
+ preferredChannel: 'email',
377
+ influence: 'influencer',
378
+ relationship: 'warm',
379
+ summary: 'Program director at Sandbox. Runs the alumni network.',
380
+ tags: ['partner'],
381
+ },
382
+ {
383
+ key: 'charlotte',
384
+ name: 'Charlotte Rivera',
385
+ firstName: 'Charlotte',
386
+ lastName: 'Rivera',
387
+ email: 'charlotte@example.com',
388
+ location: 'Melbourne, AU',
389
+ preferredChannel: 'email',
390
+ influence: 'end_user',
391
+ relationship: 'warm',
392
+ summary: 'Backend engineer applying for the senior role. Strong TypeScript background.',
393
+ tags: ['candidate'],
394
+ },
395
+ {
396
+ key: 'omar',
397
+ name: 'Omar Haddad',
398
+ firstName: 'Omar',
399
+ lastName: 'Haddad',
400
+ email: 'omar@example.com',
401
+ location: 'Sydney, AU',
402
+ preferredChannel: 'email',
403
+ influence: 'end_user',
404
+ relationship: 'cold',
405
+ summary: 'Product designer, sourced through the Sandbox alumni list.',
406
+ tags: ['candidate'],
407
+ },
408
+ ],
409
+
410
+ positions: [
411
+ { personKey: 'ada', companyKey: 'northwind', title: 'CEO' },
412
+ { personKey: 'grace', companyKey: 'northwind', title: 'Head of Operations' },
413
+ { personKey: 'tom', companyKey: 'globex', title: 'VP Engineering' },
414
+ { personKey: 'peter', companyKey: 'initech', title: 'Product Manager' },
415
+ { personKey: 'gavin', companyKey: 'hooli', title: 'Head of Partnerships' },
416
+ { personKey: 'roelof', companyKey: 'sequoia', title: 'Partner' },
417
+ { personKey: 'mei', companyKey: 'sandbox', title: 'Program Director' },
418
+ ],
419
+
420
+ deals: [
421
+ {
422
+ key: 'northwind-expansion',
423
+ name: 'Northwind — seat expansion',
424
+ companyKey: 'northwind',
425
+ stageSlug: 'proposal',
426
+ valueCents: 4_800_000,
427
+ currency: 'AUD',
428
+ expectedClose: nextQuarterEnd(),
429
+ whyWin: 'Active customer, executive sponsor, adding three teams.',
430
+ risks: 'Procurement wants a two-year commit at the current per-seat rate.',
431
+ summary: 'Expansion from two to five seats.',
432
+ tags: ['expansion'],
433
+ peopleKeys: ['ada', 'grace'],
434
+ },
435
+ {
436
+ key: 'globex-new',
437
+ name: 'Globex — new logo',
438
+ companyKey: 'globex',
439
+ stageSlug: 'qualifying',
440
+ valueCents: 12_000_000,
441
+ currency: 'AUD',
442
+ expectedClose: nextQuarterEnd(),
443
+ whyWin: 'Replaces a bespoke tool their engineering team already resents.',
444
+ risks: 'Legal redlines around data residency.',
445
+ summary: 'Qualifying. Legal is the gate.',
446
+ tags: ['enterprise'],
447
+ peopleKeys: ['tom'],
448
+ },
449
+ {
450
+ key: 'initech-new',
451
+ name: 'Initech — pilot',
452
+ companyKey: 'initech',
453
+ stageSlug: 'qualifying',
454
+ valueCents: 1_800_000,
455
+ currency: 'AUD',
456
+ expectedClose: null,
457
+ whyWin: 'Inbound. Product manager already sold internally.',
458
+ risks: 'Small team. Budget is not confirmed.',
459
+ summary: 'Inbound from the demo form.',
460
+ tags: ['inbound'],
461
+ peopleKeys: ['peter'],
462
+ },
463
+ ],
464
+
465
+ plans: [
466
+ {
467
+ targetType: 'deal',
468
+ targetDealKey: 'northwind-expansion',
469
+ date: aWeekOut(),
470
+ title: 'Send revised order form',
471
+ status: 'todo',
472
+ },
473
+ {
474
+ targetType: 'deal',
475
+ targetDealKey: 'globex-new',
476
+ date: aWeekOut(),
477
+ title: 'Reply to legal on data residency',
478
+ status: 'todo',
479
+ },
480
+ {
481
+ targetType: 'deal',
482
+ targetDealKey: 'initech-new',
483
+ date: threeDaysOut(),
484
+ title: 'Book a 30-minute discovery call',
485
+ status: 'todo',
486
+ },
487
+ ],
488
+
489
+ notes: [
490
+ {
491
+ targetType: 'company',
492
+ targetKey: 'northwind',
493
+ body: 'Renewal cycle in October. Ada asked for a joint success plan.',
494
+ pinned: true,
495
+ },
496
+ {
497
+ targetType: 'deal',
498
+ targetKey: 'globex-new',
499
+ body: 'Tom prefers a call. Book Wednesday afternoons.',
500
+ pinned: false,
501
+ },
502
+ {
503
+ targetType: 'person',
504
+ targetKey: 'peter',
505
+ body: 'Attended the June webinar. Watched the follow-up demo twice.',
506
+ pinned: false,
507
+ },
508
+ {
509
+ targetType: 'raise',
510
+ targetKey: 'southern-cross-seed',
511
+ body: 'Roelof asked for the updated deck and the last two months of MRR.',
512
+ pinned: true,
513
+ },
514
+ {
515
+ targetType: 'partnership',
516
+ targetKey: 'sandbox-alumni',
517
+ body: 'Mei can slot us into the next alumni dinner in September.',
518
+ pinned: false,
519
+ },
520
+ {
521
+ targetType: 'candidate',
522
+ targetKey: 'charlotte-senior-engineer',
523
+ body: 'Screen call went well. Move to interview loop next week.',
524
+ pinned: false,
525
+ },
526
+ ],
527
+
528
+ opportunities: [
529
+ {
530
+ key: 'yc-w27',
531
+ name: 'Y Combinator W27 application',
532
+ kind: 'Accelerator',
533
+ stageSlug: 'applied',
534
+ companyKey: null,
535
+ expectedClose: nextQuarterEnd(),
536
+ summary: 'Applied October last cycle. Interview invitations go out in six weeks.',
537
+ tags: ['accelerator'],
538
+ },
539
+ {
540
+ key: 'sandbox-cohort',
541
+ name: 'Sandbox Autumn Cohort',
542
+ kind: 'Accelerator',
543
+ stageSlug: 'identified',
544
+ companyKey: 'sandbox',
545
+ expectedClose: null,
546
+ summary: 'Program starts in March. Mei suggested we apply this round.',
547
+ tags: ['accelerator'],
548
+ },
549
+ {
550
+ key: 'innovation-grant',
551
+ name: 'Innovation Australia grant',
552
+ kind: 'Grant',
553
+ stageSlug: 'identified',
554
+ companyKey: null,
555
+ expectedClose: nextQuarterEnd(),
556
+ summary: 'Non-dilutive. Up to $500k. Application window opens next month.',
557
+ tags: ['grant'],
558
+ },
559
+ ],
560
+
561
+ raises: [
562
+ {
563
+ key: 'southern-cross-seed',
564
+ name: 'Southern Cross — Seed',
565
+ companyKey: 'sequoia',
566
+ stageSlug: 'diligence',
567
+ checkSizeCents: 200_000_000,
568
+ currency: 'AUD',
569
+ thesisFit: 'Focus on developer tools and vertical SaaS. Strong fit for Kelpie.',
570
+ expectedClose: nextQuarterEnd(),
571
+ summary: 'Diligence in progress. Reference calls scheduled next week.',
572
+ tags: ['seed'],
573
+ peopleKeys: ['roelof'],
574
+ },
575
+ ],
576
+
577
+ partnerships: [
578
+ {
579
+ key: 'hooli-referral',
580
+ name: 'Hooli — referral partner',
581
+ companyKey: 'hooli',
582
+ stageSlug: 'active',
583
+ kind: 'Referral',
584
+ nextTouchpoint: aWeekOut(),
585
+ goals: 'Two to three inbound leads per month.',
586
+ successLooksLike: 'Steady referrals plus one joint case study by end of quarter.',
587
+ summary: 'Active. Gavin is the day-to-day contact.',
588
+ tags: ['referral'],
589
+ peopleKeys: ['gavin'],
590
+ },
591
+ {
592
+ key: 'sandbox-alumni',
593
+ name: 'Sandbox — alumni network',
594
+ companyKey: 'sandbox',
595
+ stageSlug: 'exploring',
596
+ kind: 'Community',
597
+ nextTouchpoint: aWeekOut(),
598
+ goals: 'Access alumni events and demo day slots.',
599
+ successLooksLike: 'One demo day slot per year plus warm intros into portfolio.',
600
+ summary: 'Exploring. Mei can slot us into the next alumni dinner.',
601
+ tags: ['community'],
602
+ peopleKeys: ['mei'],
603
+ },
604
+ ],
605
+
606
+ enquiries: [
607
+ {
608
+ key: 'website-demo-request',
609
+ name: 'Demo request from northwind.dev',
610
+ source: 'Website',
611
+ stageSlug: 'in_progress',
612
+ companyKey: 'northwind',
613
+ summary: 'Team of six looking to trial the pipeline module this quarter.',
614
+ tags: ['inbound'],
615
+ peopleKeys: ['ada'],
616
+ },
617
+ {
618
+ key: 'referral-globex',
619
+ name: 'Introduction from a mutual contact',
620
+ source: 'Referral',
621
+ stageSlug: 'new',
622
+ companyKey: 'globex',
623
+ summary: 'Warm intro from a former colleague. Wants a 20-minute walkthrough.',
624
+ tags: ['inbound', 'referral'],
625
+ peopleKeys: [],
626
+ },
627
+ ],
628
+
629
+ roles: [
630
+ { key: 'senior-engineer', title: 'Senior Software Engineer', status: 'open' },
631
+ { key: 'product-designer', title: 'Product Designer', status: 'open' },
632
+ ],
633
+
634
+ candidates: [
635
+ {
636
+ key: 'charlotte-senior-engineer',
637
+ personKey: 'charlotte',
638
+ roleKey: 'senior-engineer',
639
+ status: 'in_process',
640
+ interviewStage: 'screen',
641
+ referrerPersonKey: null,
642
+ },
643
+ {
644
+ key: 'omar-product-designer',
645
+ personKey: 'omar',
646
+ roleKey: 'product-designer',
647
+ status: 'in_process',
648
+ interviewStage: 'sourced',
649
+ referrerPersonKey: 'mei',
650
+ },
651
+ {
652
+ key: 'peter-senior-engineer',
653
+ personKey: 'peter',
654
+ roleKey: 'senior-engineer',
655
+ status: 'nurture',
656
+ interviewStage: null,
657
+ referrerPersonKey: null,
658
+ },
659
+ ],
660
+ }
661
+
662
+ /**
663
+ * The last day of the current calendar quarter, as `YYYY-MM-DD`.
664
+ *
665
+ * A fixture that hardcoded a date would age. This keeps the deal in a
666
+ * plausible future window without asking the caller to keep it fresh.
667
+ */
668
+ function nextQuarterEnd(): string {
669
+ const now = new Date()
670
+ const quarter = Math.floor(now.getUTCMonth() / 3)
671
+ const lastMonth = quarter * 3 + 2
672
+ const year = now.getUTCFullYear()
673
+ const end = new Date(Date.UTC(year, lastMonth + 1, 0))
674
+
675
+ return end.toISOString().slice(0, 10)
676
+ }
677
+
678
+ function aWeekOut(): string {
679
+ const now = new Date()
680
+ now.setUTCDate(now.getUTCDate() + 7)
681
+
682
+ return now.toISOString().slice(0, 10)
683
+ }
684
+
685
+ function threeDaysOut(): string {
686
+ const now = new Date()
687
+ now.setUTCDate(now.getUTCDate() + 3)
688
+
689
+ return now.toISOString().slice(0, 10)
690
+ }