@kelpie/server 0.8.0 → 0.10.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 (594) hide show
  1. package/dist/index.d.ts +2 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/ids.d.ts +11 -0
  6. package/dist/lib/ids.d.ts.map +1 -1
  7. package/dist/lib/ids.js +11 -0
  8. package/dist/lib/ids.js.map +1 -1
  9. package/dist/modules/activities/repository.d.ts.map +1 -1
  10. package/dist/modules/activities/repository.js +19 -20
  11. package/dist/modules/activities/repository.js.map +1 -1
  12. package/dist/modules/activities/wording.d.ts +12 -0
  13. package/dist/modules/activities/wording.d.ts.map +1 -1
  14. package/dist/modules/activities/wording.js +16 -0
  15. package/dist/modules/activities/wording.js.map +1 -1
  16. package/dist/modules/agent-tasks/catalog.d.ts.map +1 -1
  17. package/dist/modules/agent-tasks/catalog.js +62 -0
  18. package/dist/modules/agent-tasks/catalog.js.map +1 -1
  19. package/dist/modules/agent-tasks/resolve.d.ts.map +1 -1
  20. package/dist/modules/agent-tasks/resolve.js +42 -9
  21. package/dist/modules/agent-tasks/resolve.js.map +1 -1
  22. package/dist/modules/agent-tasks/routes.d.ts +2 -0
  23. package/dist/modules/agent-tasks/routes.d.ts.map +1 -1
  24. package/dist/modules/attachedRecords.d.ts +6 -1
  25. package/dist/modules/attachedRecords.d.ts.map +1 -1
  26. package/dist/modules/attachedRecords.js +15 -1
  27. package/dist/modules/attachedRecords.js.map +1 -1
  28. package/dist/modules/companies/index.d.ts.map +1 -1
  29. package/dist/modules/companies/index.js +3 -1
  30. package/dist/modules/companies/index.js.map +1 -1
  31. package/dist/modules/companies/routes.d.ts +14 -0
  32. package/dist/modules/companies/routes.d.ts.map +1 -1
  33. package/dist/modules/companies/routes.js +7 -0
  34. package/dist/modules/companies/routes.js.map +1 -1
  35. package/dist/modules/companies/schema.d.ts +20 -0
  36. package/dist/modules/companies/schema.d.ts.map +1 -1
  37. package/dist/modules/companies/schema.js +6 -1
  38. package/dist/modules/companies/schema.js.map +1 -1
  39. package/dist/modules/companies/service.d.ts +5 -0
  40. package/dist/modules/companies/service.d.ts.map +1 -1
  41. package/dist/modules/companies/service.js +24 -12
  42. package/dist/modules/companies/service.js.map +1 -1
  43. package/dist/modules/consent-purposes/capabilities.d.ts +7 -0
  44. package/dist/modules/consent-purposes/capabilities.d.ts.map +1 -0
  45. package/dist/modules/consent-purposes/capabilities.js +10 -0
  46. package/dist/modules/consent-purposes/capabilities.js.map +1 -0
  47. package/dist/modules/consent-purposes/events.d.ts +38 -0
  48. package/dist/modules/consent-purposes/events.d.ts.map +1 -0
  49. package/dist/modules/consent-purposes/events.js +17 -0
  50. package/dist/modules/consent-purposes/events.js.map +1 -0
  51. package/dist/modules/consent-purposes/index.d.ts +13 -0
  52. package/dist/modules/consent-purposes/index.d.ts.map +1 -0
  53. package/dist/modules/consent-purposes/index.js +41 -0
  54. package/dist/modules/consent-purposes/index.js.map +1 -0
  55. package/dist/modules/consent-purposes/repository.d.ts +21 -0
  56. package/dist/modules/consent-purposes/repository.d.ts.map +1 -0
  57. package/dist/modules/consent-purposes/repository.js +98 -0
  58. package/dist/modules/consent-purposes/repository.js.map +1 -0
  59. package/dist/modules/consent-purposes/routes.d.ts +39 -0
  60. package/dist/modules/consent-purposes/routes.d.ts.map +1 -0
  61. package/dist/modules/consent-purposes/routes.js +79 -0
  62. package/dist/modules/consent-purposes/routes.js.map +1 -0
  63. package/dist/modules/consent-purposes/schema.d.ts +175 -0
  64. package/dist/modules/consent-purposes/schema.d.ts.map +1 -0
  65. package/dist/modules/consent-purposes/schema.js +35 -0
  66. package/dist/modules/consent-purposes/schema.js.map +1 -0
  67. package/dist/modules/consent-purposes/service.d.ts +50 -0
  68. package/dist/modules/consent-purposes/service.d.ts.map +1 -0
  69. package/dist/modules/consent-purposes/service.js +263 -0
  70. package/dist/modules/consent-purposes/service.js.map +1 -0
  71. package/dist/modules/consent-purposes/starters.d.ts +17 -0
  72. package/dist/modules/consent-purposes/starters.d.ts.map +1 -0
  73. package/dist/modules/consent-purposes/starters.js +15 -0
  74. package/dist/modules/consent-purposes/starters.js.map +1 -0
  75. package/dist/modules/consent-purposes/tools.d.ts +4 -0
  76. package/dist/modules/consent-purposes/tools.d.ts.map +1 -0
  77. package/dist/modules/consent-purposes/tools.js +29 -0
  78. package/dist/modules/consent-purposes/tools.js.map +1 -0
  79. package/dist/modules/core.d.ts.map +1 -1
  80. package/dist/modules/core.js +10 -0
  81. package/dist/modules/core.js.map +1 -1
  82. package/dist/modules/custom-fields/capabilities.d.ts +12 -0
  83. package/dist/modules/custom-fields/capabilities.d.ts.map +1 -0
  84. package/dist/modules/custom-fields/capabilities.js +15 -0
  85. package/dist/modules/custom-fields/capabilities.js.map +1 -0
  86. package/dist/modules/custom-fields/events.d.ts +49 -0
  87. package/dist/modules/custom-fields/events.d.ts.map +1 -0
  88. package/dist/modules/custom-fields/events.js +25 -0
  89. package/dist/modules/custom-fields/events.js.map +1 -0
  90. package/dist/modules/custom-fields/index.d.ts +19 -0
  91. package/dist/modules/custom-fields/index.d.ts.map +1 -0
  92. package/dist/modules/custom-fields/index.js +46 -0
  93. package/dist/modules/custom-fields/index.js.map +1 -0
  94. package/dist/modules/custom-fields/repository.d.ts +37 -0
  95. package/dist/modules/custom-fields/repository.d.ts.map +1 -0
  96. package/dist/modules/custom-fields/repository.js +144 -0
  97. package/dist/modules/custom-fields/repository.js.map +1 -0
  98. package/dist/modules/custom-fields/routes.d.ts +44 -0
  99. package/dist/modules/custom-fields/routes.d.ts.map +1 -0
  100. package/dist/modules/custom-fields/routes.js +103 -0
  101. package/dist/modules/custom-fields/routes.js.map +1 -0
  102. package/dist/modules/custom-fields/schema.d.ts +215 -0
  103. package/dist/modules/custom-fields/schema.d.ts.map +1 -0
  104. package/dist/modules/custom-fields/schema.js +43 -0
  105. package/dist/modules/custom-fields/schema.js.map +1 -0
  106. package/dist/modules/custom-fields/service.d.ts +57 -0
  107. package/dist/modules/custom-fields/service.d.ts.map +1 -0
  108. package/dist/modules/custom-fields/service.js +273 -0
  109. package/dist/modules/custom-fields/service.js.map +1 -0
  110. package/dist/modules/custom-fields/tools.d.ts +4 -0
  111. package/dist/modules/custom-fields/tools.d.ts.map +1 -0
  112. package/dist/modules/custom-fields/tools.js +38 -0
  113. package/dist/modules/custom-fields/tools.js.map +1 -0
  114. package/dist/modules/custom-fields/values.d.ts +49 -0
  115. package/dist/modules/custom-fields/values.d.ts.map +1 -0
  116. package/dist/modules/custom-fields/values.js +249 -0
  117. package/dist/modules/custom-fields/values.js.map +1 -0
  118. package/dist/modules/custom-fields/wire.d.ts +12 -0
  119. package/dist/modules/custom-fields/wire.d.ts.map +1 -0
  120. package/dist/modules/custom-fields/wire.js +30 -0
  121. package/dist/modules/custom-fields/wire.js.map +1 -0
  122. package/dist/modules/dashboard/repository.d.ts.map +1 -1
  123. package/dist/modules/dashboard/repository.js +4 -3
  124. package/dist/modules/dashboard/repository.js.map +1 -1
  125. package/dist/modules/deals/index.d.ts +2 -1
  126. package/dist/modules/deals/index.d.ts.map +1 -1
  127. package/dist/modules/deals/index.js +5 -2
  128. package/dist/modules/deals/index.js.map +1 -1
  129. package/dist/modules/deals/repository.d.ts +0 -16
  130. package/dist/modules/deals/repository.d.ts.map +1 -1
  131. package/dist/modules/deals/repository.js +6 -76
  132. package/dist/modules/deals/repository.js.map +1 -1
  133. package/dist/modules/deals/routes.d.ts +14 -0
  134. package/dist/modules/deals/routes.d.ts.map +1 -1
  135. package/dist/modules/deals/routes.js +7 -0
  136. package/dist/modules/deals/routes.js.map +1 -1
  137. package/dist/modules/deals/schema.d.ts +20 -42
  138. package/dist/modules/deals/schema.d.ts.map +1 -1
  139. package/dist/modules/deals/schema.js +6 -11
  140. package/dist/modules/deals/schema.js.map +1 -1
  141. package/dist/modules/deals/service.d.ts +13 -2
  142. package/dist/modules/deals/service.d.ts.map +1 -1
  143. package/dist/modules/deals/service.js +43 -20
  144. package/dist/modules/deals/service.js.map +1 -1
  145. package/dist/modules/decisions/repository.d.ts.map +1 -1
  146. package/dist/modules/decisions/repository.js +2 -0
  147. package/dist/modules/decisions/repository.js.map +1 -1
  148. package/dist/modules/decisions/routes.d.ts +1 -0
  149. package/dist/modules/decisions/routes.d.ts.map +1 -1
  150. package/dist/modules/enquiries/events.d.ts +44 -0
  151. package/dist/modules/enquiries/events.d.ts.map +1 -0
  152. package/dist/modules/enquiries/events.js +19 -0
  153. package/dist/modules/enquiries/events.js.map +1 -0
  154. package/dist/modules/enquiries/index.d.ts +13 -0
  155. package/dist/modules/enquiries/index.d.ts.map +1 -0
  156. package/dist/modules/enquiries/index.js +44 -0
  157. package/dist/modules/enquiries/index.js.map +1 -0
  158. package/dist/modules/enquiries/repository.d.ts +30 -0
  159. package/dist/modules/enquiries/repository.d.ts.map +1 -0
  160. package/dist/modules/enquiries/repository.js +94 -0
  161. package/dist/modules/enquiries/repository.js.map +1 -0
  162. package/dist/modules/enquiries/routes.d.ts +52 -0
  163. package/dist/modules/enquiries/routes.d.ts.map +1 -0
  164. package/dist/modules/enquiries/routes.js +127 -0
  165. package/dist/modules/enquiries/routes.js.map +1 -0
  166. package/dist/modules/enquiries/schema.d.ts +290 -0
  167. package/dist/modules/enquiries/schema.d.ts.map +1 -0
  168. package/dist/modules/enquiries/schema.js +52 -0
  169. package/dist/modules/enquiries/schema.js.map +1 -0
  170. package/dist/modules/enquiries/service.d.ts +85 -0
  171. package/dist/modules/enquiries/service.d.ts.map +1 -0
  172. package/dist/modules/enquiries/service.js +370 -0
  173. package/dist/modules/enquiries/service.js.map +1 -0
  174. package/dist/modules/enquiries/tools.d.ts +4 -0
  175. package/dist/modules/enquiries/tools.d.ts.map +1 -0
  176. package/dist/modules/enquiries/tools.js +50 -0
  177. package/dist/modules/enquiries/tools.js.map +1 -0
  178. package/dist/modules/eventCatalogs.d.ts +3 -0
  179. package/dist/modules/eventCatalogs.d.ts.map +1 -1
  180. package/dist/modules/eventCatalogs.js +3 -0
  181. package/dist/modules/eventCatalogs.js.map +1 -1
  182. package/dist/modules/forms/embed.d.ts +20 -6
  183. package/dist/modules/forms/embed.d.ts.map +1 -1
  184. package/dist/modules/forms/embed.js +359 -43
  185. package/dist/modules/forms/embed.js.map +1 -1
  186. package/dist/modules/forms/events.d.ts +20 -7
  187. package/dist/modules/forms/events.d.ts.map +1 -1
  188. package/dist/modules/forms/events.js +20 -2
  189. package/dist/modules/forms/events.js.map +1 -1
  190. package/dist/modules/forms/fields.d.ts +14 -1
  191. package/dist/modules/forms/fields.d.ts.map +1 -1
  192. package/dist/modules/forms/fields.js +87 -3
  193. package/dist/modules/forms/fields.js.map +1 -1
  194. package/dist/modules/forms/index.d.ts.map +1 -1
  195. package/dist/modules/forms/index.js +12 -1
  196. package/dist/modules/forms/index.js.map +1 -1
  197. package/dist/modules/forms/mapping.d.ts +62 -5
  198. package/dist/modules/forms/mapping.d.ts.map +1 -1
  199. package/dist/modules/forms/mapping.js +139 -5
  200. package/dist/modules/forms/mapping.js.map +1 -1
  201. package/dist/modules/forms/publicRoutes.d.ts.map +1 -1
  202. package/dist/modules/forms/publicRoutes.js +29 -1
  203. package/dist/modules/forms/publicRoutes.js.map +1 -1
  204. package/dist/modules/forms/repository.d.ts +31 -0
  205. package/dist/modules/forms/repository.d.ts.map +1 -1
  206. package/dist/modules/forms/repository.js +90 -1
  207. package/dist/modules/forms/repository.js.map +1 -1
  208. package/dist/modules/forms/routes.d.ts +83 -1
  209. package/dist/modules/forms/routes.d.ts.map +1 -1
  210. package/dist/modules/forms/routes.js +185 -2
  211. package/dist/modules/forms/routes.js.map +1 -1
  212. package/dist/modules/forms/schema.d.ts +672 -1
  213. package/dist/modules/forms/schema.d.ts.map +1 -1
  214. package/dist/modules/forms/schema.js +146 -3
  215. package/dist/modules/forms/schema.js.map +1 -1
  216. package/dist/modules/forms/service.d.ts +54 -1
  217. package/dist/modules/forms/service.d.ts.map +1 -1
  218. package/dist/modules/forms/service.js +338 -28
  219. package/dist/modules/forms/service.js.map +1 -1
  220. package/dist/modules/forms/submission.d.ts +15 -0
  221. package/dist/modules/forms/submission.d.ts.map +1 -1
  222. package/dist/modules/forms/submission.js +418 -40
  223. package/dist/modules/forms/submission.js.map +1 -1
  224. package/dist/modules/import-export/drafts.d.ts +10 -0
  225. package/dist/modules/import-export/drafts.d.ts.map +1 -1
  226. package/dist/modules/import-export/drafts.js +16 -2
  227. package/dist/modules/import-export/drafts.js.map +1 -1
  228. package/dist/modules/import-export/exportRows.d.ts +7 -4
  229. package/dist/modules/import-export/exportRows.d.ts.map +1 -1
  230. package/dist/modules/import-export/exportRows.js +20 -5
  231. package/dist/modules/import-export/exportRows.js.map +1 -1
  232. package/dist/modules/import-export/plan.d.ts +12 -1
  233. package/dist/modules/import-export/plan.d.ts.map +1 -1
  234. package/dist/modules/import-export/plan.js +29 -2
  235. package/dist/modules/import-export/plan.js.map +1 -1
  236. package/dist/modules/import-export/presets.d.ts.map +1 -1
  237. package/dist/modules/import-export/presets.js +10 -0
  238. package/dist/modules/import-export/presets.js.map +1 -1
  239. package/dist/modules/import-export/repository.d.ts +11 -1
  240. package/dist/modules/import-export/repository.d.ts.map +1 -1
  241. package/dist/modules/import-export/repository.js +42 -9
  242. package/dist/modules/import-export/repository.js.map +1 -1
  243. package/dist/modules/import-export/routes.d.ts.map +1 -1
  244. package/dist/modules/import-export/routes.js +4 -0
  245. package/dist/modules/import-export/routes.js.map +1 -1
  246. package/dist/modules/import-export/schema.d.ts +17 -0
  247. package/dist/modules/import-export/schema.d.ts.map +1 -1
  248. package/dist/modules/import-export/schema.js +11 -0
  249. package/dist/modules/import-export/schema.js.map +1 -1
  250. package/dist/modules/import-export/service.d.ts +6 -0
  251. package/dist/modules/import-export/service.d.ts.map +1 -1
  252. package/dist/modules/import-export/service.js +14 -2
  253. package/dist/modules/import-export/service.js.map +1 -1
  254. package/dist/modules/import-export/streams.d.ts.map +1 -1
  255. package/dist/modules/import-export/streams.js +3 -3
  256. package/dist/modules/import-export/streams.js.map +1 -1
  257. package/dist/modules/import-export/tools.d.ts.map +1 -1
  258. package/dist/modules/import-export/tools.js +8 -0
  259. package/dist/modules/import-export/tools.js.map +1 -1
  260. package/dist/modules/import-export/validation.d.ts.map +1 -1
  261. package/dist/modules/import-export/validation.js +22 -1
  262. package/dist/modules/import-export/validation.js.map +1 -1
  263. package/dist/modules/import-export/writes.d.ts.map +1 -1
  264. package/dist/modules/import-export/writes.js +37 -4
  265. package/dist/modules/import-export/writes.js.map +1 -1
  266. package/dist/modules/lists/index.d.ts +38 -0
  267. package/dist/modules/lists/index.d.ts.map +1 -1
  268. package/dist/modules/lists/index.js +27 -0
  269. package/dist/modules/lists/index.js.map +1 -1
  270. package/dist/modules/lists/repository.d.ts +26 -0
  271. package/dist/modules/lists/repository.d.ts.map +1 -1
  272. package/dist/modules/lists/repository.js +32 -0
  273. package/dist/modules/lists/repository.js.map +1 -1
  274. package/dist/modules/lists/routes.d.ts +4 -0
  275. package/dist/modules/lists/routes.d.ts.map +1 -1
  276. package/dist/modules/lists/routes.js +8 -0
  277. package/dist/modules/lists/routes.js.map +1 -1
  278. package/dist/modules/lists/schema.d.ts +17 -0
  279. package/dist/modules/lists/schema.d.ts.map +1 -1
  280. package/dist/modules/lists/schema.js +10 -0
  281. package/dist/modules/lists/schema.js.map +1 -1
  282. package/dist/modules/lists/service.d.ts +14 -2
  283. package/dist/modules/lists/service.d.ts.map +1 -1
  284. package/dist/modules/lists/service.js +55 -7
  285. package/dist/modules/lists/service.js.map +1 -1
  286. package/dist/modules/mcp/index.d.ts.map +1 -1
  287. package/dist/modules/mcp/index.js +5 -0
  288. package/dist/modules/mcp/index.js.map +1 -1
  289. package/dist/modules/notes/routes.d.ts +1 -0
  290. package/dist/modules/notes/routes.d.ts.map +1 -1
  291. package/dist/modules/opportunities/index.d.ts.map +1 -1
  292. package/dist/modules/opportunities/index.js +3 -1
  293. package/dist/modules/opportunities/index.js.map +1 -1
  294. package/dist/modules/opportunities/repository.d.ts +2 -0
  295. package/dist/modules/opportunities/repository.d.ts.map +1 -1
  296. package/dist/modules/opportunities/repository.js +4 -0
  297. package/dist/modules/opportunities/repository.js.map +1 -1
  298. package/dist/modules/opportunities/routes.d.ts +16 -0
  299. package/dist/modules/opportunities/routes.d.ts.map +1 -1
  300. package/dist/modules/opportunities/routes.js +13 -0
  301. package/dist/modules/opportunities/routes.js.map +1 -1
  302. package/dist/modules/opportunities/schema.d.ts +20 -0
  303. package/dist/modules/opportunities/schema.d.ts.map +1 -1
  304. package/dist/modules/opportunities/schema.js +6 -1
  305. package/dist/modules/opportunities/schema.js.map +1 -1
  306. package/dist/modules/opportunities/service.d.ts +20 -3
  307. package/dist/modules/opportunities/service.d.ts.map +1 -1
  308. package/dist/modules/opportunities/service.js +99 -18
  309. package/dist/modules/opportunities/service.js.map +1 -1
  310. package/dist/modules/opportunities/tools.d.ts.map +1 -1
  311. package/dist/modules/opportunities/tools.js +2 -0
  312. package/dist/modules/opportunities/tools.js.map +1 -1
  313. package/dist/modules/partnerships/index.d.ts.map +1 -1
  314. package/dist/modules/partnerships/index.js +3 -1
  315. package/dist/modules/partnerships/index.js.map +1 -1
  316. package/dist/modules/partnerships/repository.d.ts +0 -17
  317. package/dist/modules/partnerships/repository.d.ts.map +1 -1
  318. package/dist/modules/partnerships/repository.js +6 -82
  319. package/dist/modules/partnerships/repository.js.map +1 -1
  320. package/dist/modules/partnerships/routes.d.ts +14 -0
  321. package/dist/modules/partnerships/routes.d.ts.map +1 -1
  322. package/dist/modules/partnerships/routes.js +7 -0
  323. package/dist/modules/partnerships/routes.js.map +1 -1
  324. package/dist/modules/partnerships/schema.d.ts +20 -41
  325. package/dist/modules/partnerships/schema.d.ts.map +1 -1
  326. package/dist/modules/partnerships/schema.js +6 -10
  327. package/dist/modules/partnerships/schema.js.map +1 -1
  328. package/dist/modules/partnerships/service.d.ts +11 -1
  329. package/dist/modules/partnerships/service.d.ts.map +1 -1
  330. package/dist/modules/partnerships/service.js +43 -20
  331. package/dist/modules/partnerships/service.js.map +1 -1
  332. package/dist/modules/people/consentHydration.d.ts +26 -0
  333. package/dist/modules/people/consentHydration.d.ts.map +1 -0
  334. package/dist/modules/people/consentHydration.js +100 -0
  335. package/dist/modules/people/consentHydration.js.map +1 -0
  336. package/dist/modules/people/index.d.ts.map +1 -1
  337. package/dist/modules/people/index.js +3 -1
  338. package/dist/modules/people/index.js.map +1 -1
  339. package/dist/modules/people/personConsentWrites.d.ts +40 -0
  340. package/dist/modules/people/personConsentWrites.d.ts.map +1 -0
  341. package/dist/modules/people/personConsentWrites.js +98 -0
  342. package/dist/modules/people/personConsentWrites.js.map +1 -0
  343. package/dist/modules/people/repository.d.ts.map +1 -1
  344. package/dist/modules/people/repository.js +5 -1
  345. package/dist/modules/people/repository.js.map +1 -1
  346. package/dist/modules/people/routes.d.ts +57 -4
  347. package/dist/modules/people/routes.d.ts.map +1 -1
  348. package/dist/modules/people/routes.js +104 -5
  349. package/dist/modules/people/routes.js.map +1 -1
  350. package/dist/modules/people/schema.d.ts +366 -1
  351. package/dist/modules/people/schema.d.ts.map +1 -1
  352. package/dist/modules/people/schema.js +92 -2
  353. package/dist/modules/people/schema.js.map +1 -1
  354. package/dist/modules/people/service.d.ts +30 -1
  355. package/dist/modules/people/service.d.ts.map +1 -1
  356. package/dist/modules/people/service.js +115 -38
  357. package/dist/modules/people/service.js.map +1 -1
  358. package/dist/modules/people/tools.d.ts.map +1 -1
  359. package/dist/modules/people/tools.js +4 -1
  360. package/dist/modules/people/tools.js.map +1 -1
  361. package/dist/modules/personLinks.d.ts +79 -0
  362. package/dist/modules/personLinks.d.ts.map +1 -0
  363. package/dist/modules/personLinks.js +155 -0
  364. package/dist/modules/personLinks.js.map +1 -0
  365. package/dist/modules/pipelines/routes.d.ts +1 -0
  366. package/dist/modules/pipelines/routes.d.ts.map +1 -1
  367. package/dist/modules/plans/routes.d.ts +1 -0
  368. package/dist/modules/plans/routes.d.ts.map +1 -1
  369. package/dist/modules/raises/index.d.ts.map +1 -1
  370. package/dist/modules/raises/index.js +3 -1
  371. package/dist/modules/raises/index.js.map +1 -1
  372. package/dist/modules/raises/repository.d.ts +0 -17
  373. package/dist/modules/raises/repository.d.ts.map +1 -1
  374. package/dist/modules/raises/repository.js +6 -77
  375. package/dist/modules/raises/repository.js.map +1 -1
  376. package/dist/modules/raises/routes.d.ts +14 -0
  377. package/dist/modules/raises/routes.d.ts.map +1 -1
  378. package/dist/modules/raises/routes.js +7 -0
  379. package/dist/modules/raises/routes.js.map +1 -1
  380. package/dist/modules/raises/schema.d.ts +20 -41
  381. package/dist/modules/raises/schema.d.ts.map +1 -1
  382. package/dist/modules/raises/schema.js +6 -10
  383. package/dist/modules/raises/schema.js.map +1 -1
  384. package/dist/modules/raises/service.d.ts +11 -1
  385. package/dist/modules/raises/service.d.ts.map +1 -1
  386. package/dist/modules/raises/service.js +41 -18
  387. package/dist/modules/raises/service.js.map +1 -1
  388. package/dist/modules/recordTargets.d.ts.map +1 -1
  389. package/dist/modules/recordTargets.js +2 -0
  390. package/dist/modules/recordTargets.js.map +1 -1
  391. package/dist/modules/references.d.ts +10 -0
  392. package/dist/modules/references.d.ts.map +1 -1
  393. package/dist/modules/references.js +27 -4
  394. package/dist/modules/references.js.map +1 -1
  395. package/dist/modules/sample-data/fixture.d.ts +21 -0
  396. package/dist/modules/sample-data/fixture.d.ts.map +1 -1
  397. package/dist/modules/sample-data/fixture.js +40 -0
  398. package/dist/modules/sample-data/fixture.js.map +1 -1
  399. package/dist/modules/sample-data/index.d.ts.map +1 -1
  400. package/dist/modules/sample-data/index.js +1 -0
  401. package/dist/modules/sample-data/index.js.map +1 -1
  402. package/dist/modules/sample-data/routes.d.ts.map +1 -1
  403. package/dist/modules/sample-data/routes.js +1 -0
  404. package/dist/modules/sample-data/routes.js.map +1 -1
  405. package/dist/modules/sample-data/service.d.ts +1 -0
  406. package/dist/modules/sample-data/service.d.ts.map +1 -1
  407. package/dist/modules/sample-data/service.js +77 -8
  408. package/dist/modules/sample-data/service.js.map +1 -1
  409. package/dist/modules/search/index.d.ts +1 -1
  410. package/dist/modules/search/index.d.ts.map +1 -1
  411. package/dist/modules/search/index.js +2 -1
  412. package/dist/modules/search/index.js.map +1 -1
  413. package/dist/modules/search/repository.d.ts +1 -0
  414. package/dist/modules/search/repository.d.ts.map +1 -1
  415. package/dist/modules/search/repository.js +23 -0
  416. package/dist/modules/search/repository.js.map +1 -1
  417. package/dist/modules/search/service.d.ts +3 -3
  418. package/dist/modules/search/service.d.ts.map +1 -1
  419. package/dist/modules/search/service.js +5 -4
  420. package/dist/modules/search/service.js.map +1 -1
  421. package/dist/modules/stagedRecords.d.ts +3 -3
  422. package/dist/modules/stagedRecords.d.ts.map +1 -1
  423. package/dist/modules/stagedRecords.js +9 -0
  424. package/dist/modules/stagedRecords.js.map +1 -1
  425. package/dist/modules/webhooks/payloads.d.ts.map +1 -1
  426. package/dist/modules/webhooks/payloads.js +15 -2
  427. package/dist/modules/webhooks/payloads.js.map +1 -1
  428. package/dist/modules/workspace/repository.d.ts +2 -0
  429. package/dist/modules/workspace/repository.d.ts.map +1 -1
  430. package/dist/modules/workspace/repository.js +7 -0
  431. package/dist/modules/workspace/repository.js.map +1 -1
  432. package/dist/modules/workspace/service.d.ts.map +1 -1
  433. package/dist/modules/workspace/service.js +10 -0
  434. package/dist/modules/workspace/service.js.map +1 -1
  435. package/dist/modules/workspace/starters.d.ts.map +1 -1
  436. package/dist/modules/workspace/starters.js +5 -0
  437. package/dist/modules/workspace/starters.js.map +1 -1
  438. package/dist/runtime/events.d.ts +1 -1
  439. package/dist/runtime/events.d.ts.map +1 -1
  440. package/dist/runtime/events.js +1 -0
  441. package/dist/runtime/events.js.map +1 -1
  442. package/dist/schema/index.d.ts +3 -0
  443. package/dist/schema/index.d.ts.map +1 -1
  444. package/dist/schema/index.js +3 -0
  445. package/dist/schema/index.js.map +1 -1
  446. package/dist/testing/database.d.ts +5 -1
  447. package/dist/testing/database.d.ts.map +1 -1
  448. package/dist/testing/database.js +81 -10
  449. package/dist/testing/database.js.map +1 -1
  450. package/migrations/0024_third_king_cobra.sql +46 -0
  451. package/migrations/0025_worthless_chimera.sql +3 -0
  452. package/migrations/0026_late_aqueduct.sql +46 -0
  453. package/migrations/0027_brainy_silver_sable.sql +3 -0
  454. package/migrations/0028_freezing_scrambler.sql +19 -0
  455. package/migrations/0029_custom_fields.sql +26 -0
  456. package/migrations/0030_enquiries.sql +79 -0
  457. package/migrations/0031_consent.sql +45 -0
  458. package/migrations/0032_form_field_statement.sql +1 -0
  459. package/migrations/0033_form_field_consent_purpose_ids.sql +5 -0
  460. package/migrations/0034_drop_form_field_consent_purpose_id.sql +1 -0
  461. package/migrations/0035_form_field_consent_purpose_labels.sql +1 -0
  462. package/migrations/0036_form_field_notice_type.sql +2 -0
  463. package/migrations/meta/0024_snapshot.json +5516 -0
  464. package/migrations/meta/0025_snapshot.json +5336 -0
  465. package/migrations/meta/0026_snapshot.json +5710 -0
  466. package/migrations/meta/0027_snapshot.json +5716 -0
  467. package/migrations/meta/0028_snapshot.json +5740 -0
  468. package/migrations/meta/0029_snapshot.json +5935 -0
  469. package/migrations/meta/0030_snapshot.json +6245 -0
  470. package/migrations/meta/0031_snapshot.json +6572 -0
  471. package/migrations/meta/0032_snapshot.json +6578 -0
  472. package/migrations/meta/0033_snapshot.json +6572 -0
  473. package/migrations/meta/0034_snapshot.json +6566 -0
  474. package/migrations/meta/0035_snapshot.json +6573 -0
  475. package/migrations/meta/0036_snapshot.json +6573 -0
  476. package/migrations/meta/_journal.json +91 -0
  477. package/package.json +2 -2
  478. package/src/index.ts +6 -0
  479. package/src/lib/ids.ts +11 -0
  480. package/src/modules/activities/repository.ts +22 -23
  481. package/src/modules/activities/wording.ts +18 -0
  482. package/src/modules/agent-tasks/catalog.ts +63 -0
  483. package/src/modules/agent-tasks/resolve.ts +64 -24
  484. package/src/modules/attachedRecords.ts +29 -2
  485. package/src/modules/companies/index.ts +3 -1
  486. package/src/modules/companies/routes.ts +7 -0
  487. package/src/modules/companies/schema.ts +7 -1
  488. package/src/modules/companies/service.ts +48 -13
  489. package/src/modules/consent-purposes/capabilities.ts +12 -0
  490. package/src/modules/consent-purposes/events.ts +38 -0
  491. package/src/modules/consent-purposes/index.ts +48 -0
  492. package/src/modules/consent-purposes/repository.ts +163 -0
  493. package/src/modules/consent-purposes/routes.ts +122 -0
  494. package/src/modules/consent-purposes/schema.ts +46 -0
  495. package/src/modules/consent-purposes/service.ts +423 -0
  496. package/src/modules/consent-purposes/starters.ts +32 -0
  497. package/src/modules/consent-purposes/tools.ts +44 -0
  498. package/src/modules/core.ts +10 -0
  499. package/src/modules/custom-fields/capabilities.ts +17 -0
  500. package/src/modules/custom-fields/events.ts +51 -0
  501. package/src/modules/custom-fields/index.ts +61 -0
  502. package/src/modules/custom-fields/repository.ts +225 -0
  503. package/src/modules/custom-fields/routes.ts +155 -0
  504. package/src/modules/custom-fields/schema.ts +61 -0
  505. package/src/modules/custom-fields/service.ts +439 -0
  506. package/src/modules/custom-fields/tools.ts +53 -0
  507. package/src/modules/custom-fields/values.ts +352 -0
  508. package/src/modules/custom-fields/wire.ts +32 -0
  509. package/src/modules/dashboard/repository.ts +4 -3
  510. package/src/modules/deals/index.ts +5 -2
  511. package/src/modules/deals/repository.ts +6 -106
  512. package/src/modules/deals/routes.ts +7 -0
  513. package/src/modules/deals/schema.ts +7 -15
  514. package/src/modules/deals/service.ts +92 -23
  515. package/src/modules/decisions/repository.ts +2 -0
  516. package/src/modules/enquiries/events.ts +45 -0
  517. package/src/modules/enquiries/index.ts +50 -0
  518. package/src/modules/enquiries/repository.ts +164 -0
  519. package/src/modules/enquiries/routes.ts +172 -0
  520. package/src/modules/enquiries/schema.ts +59 -0
  521. package/src/modules/enquiries/service.ts +644 -0
  522. package/src/modules/enquiries/tools.ts +66 -0
  523. package/src/modules/eventCatalogs.ts +3 -0
  524. package/src/modules/forms/embed.ts +391 -44
  525. package/src/modules/forms/events.ts +30 -2
  526. package/src/modules/forms/fields.ts +102 -2
  527. package/src/modules/forms/index.ts +12 -1
  528. package/src/modules/forms/mapping.ts +183 -6
  529. package/src/modules/forms/publicRoutes.ts +43 -1
  530. package/src/modules/forms/repository.ts +162 -1
  531. package/src/modules/forms/routes.ts +212 -2
  532. package/src/modules/forms/schema.ts +166 -4
  533. package/src/modules/forms/service.ts +565 -41
  534. package/src/modules/forms/submission.ts +718 -44
  535. package/src/modules/import-export/drafts.ts +20 -1
  536. package/src/modules/import-export/exportRows.ts +21 -5
  537. package/src/modules/import-export/plan.ts +47 -2
  538. package/src/modules/import-export/presets.ts +10 -0
  539. package/src/modules/import-export/repository.ts +73 -8
  540. package/src/modules/import-export/routes.ts +4 -0
  541. package/src/modules/import-export/schema.ts +11 -0
  542. package/src/modules/import-export/service.ts +28 -2
  543. package/src/modules/import-export/streams.ts +3 -1
  544. package/src/modules/import-export/tools.ts +10 -0
  545. package/src/modules/import-export/validation.ts +28 -0
  546. package/src/modules/import-export/writes.ts +70 -5
  547. package/src/modules/lists/index.ts +71 -0
  548. package/src/modules/lists/repository.ts +64 -0
  549. package/src/modules/lists/routes.ts +8 -0
  550. package/src/modules/lists/schema.ts +10 -0
  551. package/src/modules/lists/service.ts +110 -9
  552. package/src/modules/mcp/index.ts +5 -0
  553. package/src/modules/opportunities/index.ts +3 -1
  554. package/src/modules/opportunities/repository.ts +11 -0
  555. package/src/modules/opportunities/routes.ts +13 -0
  556. package/src/modules/opportunities/schema.ts +7 -1
  557. package/src/modules/opportunities/service.ts +188 -22
  558. package/src/modules/opportunities/tools.ts +2 -0
  559. package/src/modules/partnerships/index.ts +3 -1
  560. package/src/modules/partnerships/repository.ts +6 -117
  561. package/src/modules/partnerships/routes.ts +7 -0
  562. package/src/modules/partnerships/schema.ts +7 -14
  563. package/src/modules/partnerships/service.ts +93 -22
  564. package/src/modules/people/consentHydration.ts +167 -0
  565. package/src/modules/people/index.ts +3 -1
  566. package/src/modules/people/personConsentWrites.ts +177 -0
  567. package/src/modules/people/repository.ts +5 -0
  568. package/src/modules/people/routes.ts +127 -18
  569. package/src/modules/people/schema.ts +109 -3
  570. package/src/modules/people/service.ts +186 -40
  571. package/src/modules/people/tools.ts +5 -1
  572. package/src/modules/personLinks.ts +278 -0
  573. package/src/modules/raises/index.ts +3 -1
  574. package/src/modules/raises/repository.ts +6 -107
  575. package/src/modules/raises/routes.ts +7 -0
  576. package/src/modules/raises/schema.ts +7 -14
  577. package/src/modules/raises/service.ts +91 -20
  578. package/src/modules/recordTargets.ts +2 -0
  579. package/src/modules/references.ts +43 -4
  580. package/src/modules/sample-data/fixture.ts +63 -0
  581. package/src/modules/sample-data/index.ts +1 -0
  582. package/src/modules/sample-data/routes.ts +1 -0
  583. package/src/modules/sample-data/service.ts +97 -8
  584. package/src/modules/search/index.ts +2 -1
  585. package/src/modules/search/repository.ts +33 -1
  586. package/src/modules/search/service.ts +7 -5
  587. package/src/modules/stagedRecords.ts +18 -3
  588. package/src/modules/webhooks/payloads.ts +20 -2
  589. package/src/modules/workspace/repository.ts +12 -0
  590. package/src/modules/workspace/service.ts +14 -0
  591. package/src/modules/workspace/starters.ts +5 -0
  592. package/src/runtime/events.ts +1 -0
  593. package/src/schema/index.ts +3 -0
  594. package/src/testing/database.ts +97 -11
@@ -5,6 +5,11 @@
5
5
  * frames a page from the Kelpie origin, and that page must not drag the CRM's
6
6
  * React bundle into somebody else's marketing site to draw five inputs.
7
7
  *
8
+ * The hosted layout carries Kelpie's look. The iframe layout is intentionally
9
+ * unbranded (system font, Field colours) so it does not paint Kelpie onto the
10
+ * host site — an iframe cannot inherit the host's CSS, so staying neutral is
11
+ * the alternative.
12
+ *
8
13
  * Everything here is pure: a form, its fields, and a URL in; a string out. That
9
14
  * is what makes the escaping testable, which for a page built by string
10
15
  * concatenation is the part worth testing.
@@ -62,8 +67,50 @@ function renderControl(field) {
62
67
  // round trip. The server validates the address regardless.
63
68
  return `<input ${shared} type="${field.type === 'email' ? 'email' : 'text'}">`;
64
69
  }
65
- function renderField(field) {
70
+ function renderField(field, consentPurposeLabels) {
66
71
  const required = field.required ? '<span class="req" aria-hidden="true">*</span>' : '';
72
+ if (field.type === 'notice') {
73
+ // Text-only: prose the visitor reads before submitting. Submission is the
74
+ // consent (see readConsentGrants), so no input is rendered. `label` is
75
+ // the heading; `statement` is the prose.
76
+ const statement = field.statement ?? '';
77
+ return [
78
+ '<div class="field notice">',
79
+ `<div class="field-label">${escapeHtml(field.label)}</div>`,
80
+ `<p class="notice-body">${escapeHtml(statement)}</p>`,
81
+ '</div>',
82
+ ].join('');
83
+ }
84
+ if (field.type === 'consent') {
85
+ // Layout: the field label above (heading, e.g. "Consent"), the intro
86
+ // statement, then one checkbox per configured purpose. The submit reads
87
+ // the ticked checkboxes' values (purpose ids) from EMBED_SCRIPT and
88
+ // sends them as a comma-separated string under the field id.
89
+ const statement = field.statement ?? field.label;
90
+ const rows = field.consentPurposeIds
91
+ .map((purposeId, index) => {
92
+ const boxId = `${field.id}__${String(index)}`;
93
+ // Field-level override wins over the workspace's default label. Falls
94
+ // back to the workspace label, then the raw id — the id only shows up
95
+ // when a purpose has been deleted and its label was never overridden.
96
+ const override = field.consentPurposeLabels[purposeId];
97
+ const label = override ?? consentPurposeLabels.get(purposeId) ?? purposeId;
98
+ return [
99
+ '<div class="consent-row">',
100
+ `<input type="checkbox" id="${escapeHtml(boxId)}" data-consent-field="${escapeHtml(field.id)}" value="${escapeHtml(purposeId)}">`,
101
+ `<label for="${escapeHtml(boxId)}">${escapeHtml(label)}</label>`,
102
+ '</div>',
103
+ ].join('');
104
+ })
105
+ .join('');
106
+ return [
107
+ '<div class="field consent">',
108
+ `<div class="field-label">${escapeHtml(field.label)}${required}</div>`,
109
+ `<p class="consent-statement">${escapeHtml(statement)}</p>`,
110
+ rows,
111
+ '</div>',
112
+ ].join('');
113
+ }
67
114
  return [
68
115
  '<div class="field">',
69
116
  `<label for="${escapeHtml(field.id)}">${escapeHtml(field.label)}${required}</label>`,
@@ -72,26 +119,246 @@ function renderField(field) {
72
119
  ].join('');
73
120
  }
74
121
  /**
75
- * Styles for the page. Deliberately plain and system-font: this renders inside
76
- * somebody else's design, and a form that tries to bring its own brand fights
77
- * the site it was embedded in.
122
+ * Styles for the standalone hosted page Kelpie tokens, brand chrome, card.
123
+ */
124
+ const HOSTED_STYLES = `
125
+ :root {
126
+ color-scheme: light;
127
+ --surface: #fafafa;
128
+ --surface-raised: #ffffff;
129
+ --ink: #18181b;
130
+ --ink-muted: #52525b;
131
+ --ink-faint: #71717a;
132
+ --border: #e4e4e7;
133
+ --accent: #0f766e;
134
+ --accent-hover: #0d9488;
135
+ --accent-soft: #f0fdfa;
136
+ --accent-fg: #ffffff;
137
+ --danger: #dc2626;
138
+ --font: "IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
139
+ }
140
+ @media (prefers-color-scheme: dark) {
141
+ :root {
142
+ color-scheme: dark;
143
+ --surface: #0c0c0d;
144
+ --surface-raised: #141416;
145
+ --ink: #fafafa;
146
+ --ink-muted: #a1a1aa;
147
+ --ink-faint: #71717a;
148
+ --border: #27272a;
149
+ --accent: #2dd4bf;
150
+ --accent-hover: #5eead4;
151
+ --accent-soft: #134e4a;
152
+ --accent-fg: #042f2e;
153
+ --danger: #f87171;
154
+ }
155
+ }
156
+ * { box-sizing: border-box; }
157
+ html { background: var(--surface); }
158
+ body {
159
+ margin: 0;
160
+ min-height: 100vh;
161
+ font: 14px/1.5 var(--font);
162
+ color: var(--ink);
163
+ -webkit-font-smoothing: antialiased;
164
+ background:
165
+ radial-gradient(ellipse at top, color-mix(in srgb, var(--accent-soft) 85%, transparent), transparent 55%),
166
+ var(--surface);
167
+ }
168
+ .shell {
169
+ width: 100%;
170
+ max-width: 28rem;
171
+ margin: 0 auto;
172
+ padding: 2.5rem 1rem 3rem;
173
+ }
174
+ .brand { text-align: center; margin-bottom: 1.5rem; }
175
+ .eyebrow {
176
+ font-size: 11px;
177
+ font-weight: 600;
178
+ letter-spacing: 0.06em;
179
+ text-transform: uppercase;
180
+ color: var(--accent);
181
+ }
182
+ .brand h1 {
183
+ margin: 0.25rem 0 0;
184
+ font-size: 1.375rem;
185
+ font-weight: 600;
186
+ letter-spacing: -0.02em;
187
+ line-height: 1.25;
188
+ color: var(--ink);
189
+ }
190
+ .lead {
191
+ margin: 0.35rem 0 0;
192
+ font-size: 13px;
193
+ color: var(--ink-muted);
194
+ }
195
+ .card {
196
+ border: 1px solid var(--border);
197
+ border-radius: 8px;
198
+ background: var(--surface-raised);
199
+ padding: 1.5rem;
200
+ }
201
+ form { display: grid; gap: 1rem; margin: 0; }
202
+ .field { display: grid; gap: 0.35rem; }
203
+ label { font-weight: 500; font-size: 12px; color: var(--ink); }
204
+ .req { color: var(--danger); margin-left: 2px; }
205
+ input, textarea, select {
206
+ width: 100%;
207
+ padding: 0.5rem 0.75rem;
208
+ border: 1px solid var(--border);
209
+ border-radius: 6px;
210
+ font: inherit;
211
+ font-size: 14px;
212
+ color: var(--ink);
213
+ background: var(--surface);
214
+ outline: none;
215
+ transition: border-color 120ms ease, box-shadow 120ms ease;
216
+ }
217
+ input::placeholder, textarea::placeholder { color: var(--ink-faint); }
218
+ input:focus-visible, textarea:focus-visible, select:focus-visible {
219
+ border-color: var(--accent);
220
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 20%, transparent);
221
+ }
222
+ textarea { resize: vertical; min-height: 6.5rem; }
223
+ /* Consent field: label above (heading), a statement, then a checkbox per purpose. */
224
+ .field.consent { gap: 0.35rem; }
225
+ .field.consent .field-label {
226
+ font-weight: 500;
227
+ font-size: 12px;
228
+ color: var(--ink);
229
+ }
230
+ .field.consent .consent-statement {
231
+ margin: 0 0 0.35rem;
232
+ font-size: 12px;
233
+ color: var(--ink-muted);
234
+ }
235
+ .field.consent .consent-row {
236
+ display: grid;
237
+ grid-template-columns: auto 1fr;
238
+ align-items: start;
239
+ gap: 0.5rem;
240
+ padding: 0.15rem 0;
241
+ }
242
+ .field.consent input[type="checkbox"] {
243
+ width: 1rem;
244
+ height: 1rem;
245
+ margin-top: 0.2rem;
246
+ padding: 0;
247
+ background: var(--surface);
248
+ }
249
+ .field.consent .consent-row label {
250
+ font-weight: 400;
251
+ color: var(--ink);
252
+ }
253
+ .field.notice { gap: 0.35rem; }
254
+ .field.notice .field-label {
255
+ font-weight: 500;
256
+ font-size: 12px;
257
+ color: var(--ink);
258
+ }
259
+ .field.notice .notice-body {
260
+ margin: 0;
261
+ padding: 0.5rem 0.75rem;
262
+ font-size: 12px;
263
+ color: var(--ink-muted);
264
+ background: var(--surface);
265
+ border: 1px solid var(--border);
266
+ border-radius: 6px;
267
+ white-space: pre-line;
268
+ }
269
+ button[type="submit"] {
270
+ width: 100%;
271
+ padding: 0.625rem 0.875rem;
272
+ border: 0;
273
+ border-radius: 6px;
274
+ background: var(--accent);
275
+ color: var(--accent-fg);
276
+ font: inherit;
277
+ font-size: 13px;
278
+ font-weight: 600;
279
+ cursor: pointer;
280
+ transition: background 120ms ease;
281
+ }
282
+ button[type="submit"]:hover:not([disabled]) { background: var(--accent-hover); }
283
+ button[type="submit"][disabled] { opacity: 0.55; cursor: progress; }
284
+ .note { margin: 0; font-size: 12px; color: var(--ink-muted); }
285
+ .error { color: var(--danger); font-weight: 500; }
286
+ .done {
287
+ margin: 0;
288
+ text-align: center;
289
+ font-size: 15px;
290
+ font-weight: 500;
291
+ line-height: 1.45;
292
+ color: var(--ink);
293
+ }
294
+ .paused {
295
+ margin: 0;
296
+ font-size: 13px;
297
+ color: var(--ink-muted);
298
+ text-align: center;
299
+ }
300
+ `;
301
+ /**
302
+ * Styles for the iframe document.
303
+ *
304
+ * Deliberately not Kelpie: system font, browser field colours, a plain button.
305
+ * An iframe cannot pick up the host page's CSS, so the only way not to fight
306
+ * the host is to stay neutral and leave the background transparent.
78
307
  */
79
- const EMBED_STYLES = `
80
- :root { color-scheme: light dark; }
308
+ const IFRAME_STYLES = `
81
309
  * { box-sizing: border-box; }
82
- body { margin: 0; padding: 16px; font: 15px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
83
- form { display: grid; gap: 14px; max-width: 32rem; margin: 0 auto; }
310
+ html, body { background: transparent; }
311
+ body {
312
+ margin: 0;
313
+ padding: 12px;
314
+ font: 15px/1.5 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
315
+ color: CanvasText;
316
+ -webkit-font-smoothing: antialiased;
317
+ }
318
+ .shell { margin: 0; padding: 0; }
319
+ form { display: grid; gap: 14px; margin: 0; }
84
320
  .field { display: grid; gap: 5px; }
85
321
  label { font-weight: 600; font-size: 0.875rem; }
86
322
  .req { color: #b4232c; margin-left: 2px; }
87
- input, textarea, select { width: 100%; padding: 9px 10px; border: 1px solid #b9bfc9; border-radius: 6px; font: inherit; background: Field; color: FieldText; }
88
- input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 2px solid #2f6feb; outline-offset: 1px; }
89
- textarea { resize: vertical; }
90
- button { padding: 10px 16px; border: 0; border-radius: 6px; background: #2f6feb; color: #fff; font: inherit; font-weight: 600; cursor: pointer; }
91
- button[disabled] { opacity: 0.6; cursor: progress; }
92
- .note { margin: 0; font-size: 0.875rem; }
93
- .error { color: #b4232c; }
94
- .done { max-width: 32rem; margin: 0 auto; }
323
+ input, textarea, select {
324
+ width: 100%;
325
+ padding: 9px 10px;
326
+ border: 1px solid #b9bfc9;
327
+ border-radius: 6px;
328
+ font: inherit;
329
+ background: Field;
330
+ color: FieldText;
331
+ }
332
+ input:focus-visible, textarea:focus-visible, select:focus-visible {
333
+ outline: 2px solid #2f6feb;
334
+ outline-offset: 1px;
335
+ }
336
+ textarea { resize: vertical; min-height: 6rem; }
337
+ .field.consent { gap: 5px; }
338
+ .field.consent .field-label { font-weight: 600; font-size: 0.875rem; color: CanvasText; }
339
+ .field.consent .consent-statement { margin: 0 0 5px; font-size: 0.8125rem; color: #5c6570; }
340
+ .field.consent .consent-row { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: 8px; padding: 2px 0; }
341
+ .field.consent input[type="checkbox"] { width: 1rem; height: 1rem; margin-top: 3px; padding: 0; background: Field; }
342
+ .field.consent .consent-row label { font-weight: 400; }
343
+ .field.notice { gap: 5px; }
344
+ .field.notice .field-label { font-weight: 600; font-size: 0.875rem; color: CanvasText; }
345
+ .field.notice .notice-body { margin: 0; padding: 9px 10px; font-size: 0.8125rem; color: CanvasText; background: Field; border: 1px solid #b9bfc9; border-radius: 6px; white-space: pre-line; }
346
+ button[type="submit"] {
347
+ width: 100%;
348
+ padding: 10px 16px;
349
+ border: 0;
350
+ border-radius: 6px;
351
+ background: #2f6feb;
352
+ color: #fff;
353
+ font: inherit;
354
+ font-weight: 600;
355
+ cursor: pointer;
356
+ }
357
+ button[type="submit"][disabled] { opacity: 0.6; cursor: progress; }
358
+ .note { margin: 0; font-size: 0.875rem; color: #5c6570; }
359
+ .error { color: #b4232c; font-weight: 500; }
360
+ .done { margin: 0; font-size: 15px; font-weight: 500; line-height: 1.45; }
361
+ .paused { margin: 0; font-size: 13px; color: #5c6570; }
95
362
  `;
96
363
  /**
97
364
  * The browser half of the page.
@@ -121,8 +388,28 @@ const EMBED_SCRIPT = `
121
388
  button.disabled = true;
122
389
 
123
390
  var answers = {};
391
+ // Consent fields render a checkbox per purpose, each tagged with
392
+ // data-consent-field=<field_id> and value=<purpose_id>. Collect the
393
+ // ticked ones into a comma-separated list under the field id — the
394
+ // server parses that back into a set of ticked purpose ids.
395
+ var consentBoxes = form.querySelectorAll('input[type="checkbox"][data-consent-field]');
396
+ var consentByField = {};
397
+ for (var i = 0; i < consentBoxes.length; i += 1) {
398
+ var box = consentBoxes[i];
399
+ var fieldId = box.getAttribute('data-consent-field');
400
+ if (!consentByField[fieldId]) { consentByField[fieldId] = []; }
401
+ if (box.checked) { consentByField[fieldId].push(box.value); }
402
+ }
403
+ for (var fieldId in consentByField) {
404
+ if (consentByField[fieldId].length > 0) {
405
+ answers[fieldId] = consentByField[fieldId].join(',');
406
+ }
407
+ }
124
408
  config.fieldIds.forEach(function (id) {
125
- var value = form.elements[id].value.trim();
409
+ if (consentByField[id] !== undefined) { return; }
410
+ var element = form.elements[id];
411
+ if (!element) { return; }
412
+ var value = element.value.trim();
126
413
  if (value) { answers[id] = value; }
127
414
  });
128
415
 
@@ -150,6 +437,28 @@ const EMBED_SCRIPT = `
150
437
  });
151
438
  })();
152
439
  `;
440
+ /**
441
+ * Public heading for the hosted page: the form's `title`, falling back to
442
+ * `name` if somehow blank (legacy rows, a cleared field).
443
+ */
444
+ function displayTitle(form) {
445
+ const title = form.title.trim();
446
+ return title.length > 0 ? title : form.name;
447
+ }
448
+ function renderFormBody(form, fields, consentPurposeLabels, config, nonce) {
449
+ if (form.status === 'paused') {
450
+ return `<p class="paused">This form is not accepting submissions right now.</p>`;
451
+ }
452
+ return [
453
+ '<form id="kelpie-form" novalidate>',
454
+ fields.map((field) => renderField(field, consentPurposeLabels)).join(''),
455
+ '<div><button id="kelpie-submit" type="submit">Submit</button></div>',
456
+ '<p id="kelpie-status" class="note" role="status" aria-live="polite"></p>',
457
+ '</form>',
458
+ `<script type="application/json" id="kelpie-config">${config}</script>`,
459
+ `<script nonce="${escapeHtml(nonce)}">${EMBED_SCRIPT}</script>`,
460
+ ].join('');
461
+ }
153
462
  /**
154
463
  * The whole page, as one document.
155
464
  *
@@ -158,37 +467,43 @@ const EMBED_SCRIPT = `
158
467
  * form whose submit answers 409.
159
468
  */
160
469
  export function renderEmbedPage(options) {
161
- const { form, fields, submitUrl, nonce } = options;
470
+ const { form, fields, consentPurposeLabels, submitUrl, nonce, workspaceName, layout } = options;
471
+ const heading = displayTitle(form);
162
472
  const config = escapeScriptJson({
163
473
  formId: form.id,
164
474
  submitUrl,
165
475
  thankYou: form.thankYouMessage,
166
476
  fieldIds: fields.map((field) => field.id),
167
477
  });
168
- const body = form.status === 'paused'
169
- ? `<div class="done"><p class="note">This form is not accepting submissions right now.</p></div>`
170
- : [
171
- '<form id="kelpie-form" novalidate>',
172
- fields.map(renderField).join(''),
173
- '<div><button id="kelpie-submit" type="submit">Submit</button></div>',
174
- '<p id="kelpie-status" class="note" role="status" aria-live="polite"></p>',
175
- '</form>',
176
- `<script type="application/json" id="kelpie-config">${config}</script>`,
177
- `<script nonce="${escapeHtml(nonce)}">${EMBED_SCRIPT}</script>`,
178
- ].join('');
478
+ const formBody = renderFormBody(form, fields, consentPurposeLabels, config, nonce);
479
+ const styles = layout === 'page' ? HOSTED_STYLES : IFRAME_STYLES;
480
+ const shell = layout === 'page'
481
+ ? [
482
+ '<div class="shell">',
483
+ '<header class="brand">',
484
+ `<div class="eyebrow">${escapeHtml(workspaceName)}</div>`,
485
+ `<h1>${escapeHtml(heading)}</h1>`,
486
+ form.description === null || form.description.trim().length === 0
487
+ ? ''
488
+ : `<p class="lead">${escapeHtml(form.description)}</p>`,
489
+ '</header>',
490
+ `<div class="card">${formBody}</div>`,
491
+ '</div>',
492
+ ].join('')
493
+ : `<div class="shell">${formBody}</div>`;
179
494
  return [
180
495
  '<!doctype html>',
181
- '<html lang="en">',
496
+ `<html lang="en" class="layout-${layout}">`,
182
497
  '<head>',
183
498
  '<meta charset="utf-8">',
184
499
  '<meta name="viewport" content="width=device-width, initial-scale=1">',
185
500
  // Not indexed: the canonical page for this form is the customer's own, and
186
501
  // a bare embed ranking above it would be a worse result for a reader.
187
502
  '<meta name="robots" content="noindex">',
188
- `<title>${escapeHtml(form.name)}</title>`,
189
- `<style nonce="${escapeHtml(nonce)}">${EMBED_STYLES}</style>`,
503
+ `<title>${escapeHtml(heading)}</title>`,
504
+ `<style nonce="${escapeHtml(nonce)}">${styles}</style>`,
190
505
  '</head>',
191
- `<body>${body}</body>`,
506
+ `<body class="layout-${layout}">${shell}</body>`,
192
507
  '</html>',
193
508
  ].join('');
194
509
  }
@@ -211,18 +526,19 @@ export function embedContentSecurityPolicy(nonce) {
211
526
  ].join('; ');
212
527
  }
213
528
  /**
214
- * The two ways to embed.
529
+ * The two ways to embed, plus the hosted page URL.
215
530
  *
216
- * The iframe is the honest minimum: one tag, no JavaScript, fixed height. The
217
- * script adds the listener that resizes it as fields appear and as the thank-you
218
- * replaces the form, which is the only thing an iframe cannot do for itself.
531
+ * Hosted `url` is the full page. The iframe snippets point at `embedUrl`, which
532
+ * is the same form without page chrome what belongs inside somebody else's
533
+ * site. The plain iframe is fixed height; the script listens for height
534
+ * messages as fields appear and as the thank-you replaces the form.
219
535
  */
220
- export function embedSnippets(url, formId) {
221
- const iframe = `<iframe src="${escapeHtml(url)}" title="Contact form" ` +
222
- `style="width:100%;border:0;height:520px" loading="lazy"></iframe>`;
536
+ export function embedSnippets(hostedUrl, embedUrl, formId) {
537
+ const iframe = `<iframe src="${escapeHtml(embedUrl)}" title="Contact form" ` +
538
+ `style="width:100%;border:0;height:720px" loading="lazy"></iframe>`;
223
539
  const script = [
224
- `<iframe id="kelpie-${formId}" src="${escapeHtml(url)}" title="Contact form"`,
225
- ` style="width:100%;border:0;height:520px" loading="lazy"></iframe>`,
540
+ `<iframe id="kelpie-${formId}" src="${escapeHtml(embedUrl)}" title="Contact form"`,
541
+ ` style="width:100%;border:0;height:720px" loading="lazy"></iframe>`,
226
542
  `<script>`,
227
543
  ` window.addEventListener('message', function (event) {`,
228
544
  ` if (event.data && event.data.kelpie === 'height' && event.data.formId === '${formId}') {`,
@@ -231,6 +547,6 @@ export function embedSnippets(url, formId) {
231
547
  ` });`,
232
548
  `</script>`,
233
549
  ].join('\n');
234
- return { url, iframe, script };
550
+ return { url: hostedUrl, embedUrl, iframe, script };
235
551
  }
236
552
  //# sourceMappingURL=embed.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"embed.js","sourceRoot":"","sources":["../../../src/modules/forms/embed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"embed.js","sourceRoot":"","sources":["../../../src/modules/forms/embed.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,5 @@
1
+ import type { FormActionStatus } from '@kelpie/schemas';
1
2
  import { z } from 'zod';
2
- /**
3
- * Domain events published by the forms module.
4
- *
5
- * `forms.form.*` cover the form definition CRUD. `forms.submission.submitted`
6
- * fires once per submission; the webhooks bridge translates it to the wire
7
- * `form.submitted` event (the ids live in `data`).
8
- */
9
3
  export declare const formsEvents: {
10
4
  'forms.form.created': z.ZodObject<{}, z.core.$strict>;
11
5
  'forms.form.updated': z.ZodObject<{
@@ -15,6 +9,17 @@ export declare const formsEvents: {
15
9
  'forms.submission.submitted': z.ZodObject<{
16
10
  formId: z.ZodString;
17
11
  submissionId: z.ZodString;
12
+ opportunityId: z.ZodNullable<z.ZodString>;
13
+ partnershipId: z.ZodNullable<z.ZodString>;
14
+ enquiryId: z.ZodNullable<z.ZodString>;
15
+ actions: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
16
+ action: z.ZodString;
17
+ status: z.ZodEnum<{
18
+ error: "error";
19
+ ok: "ok";
20
+ skipped: "skipped";
21
+ }>;
22
+ }, z.core.$strip>>>>;
18
23
  }, z.core.$strip>;
19
24
  };
20
25
  export type FormCreatedData = Record<string, never>;
@@ -22,9 +27,17 @@ export interface FormUpdatedData {
22
27
  readonly changed: readonly string[];
23
28
  }
24
29
  export type FormDeletedData = Record<string, never>;
30
+ export interface FormSubmissionActionSummary {
31
+ readonly action: string;
32
+ readonly status: FormActionStatus;
33
+ }
25
34
  export interface FormSubmissionData {
26
35
  readonly formId: string;
27
36
  readonly submissionId: string;
37
+ readonly opportunityId: string | null;
38
+ readonly partnershipId: string | null;
39
+ readonly enquiryId: string | null;
40
+ readonly actions: readonly FormSubmissionActionSummary[];
28
41
  }
29
42
  declare module '../../runtime/events.ts' {
30
43
  interface KelpieEventMap {
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/modules/forms/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB;;;;;;GAMG;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;CAKM,CAAA;AAE9B,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AACnD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AACD,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AACnD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAC9B;AAED,OAAO,QAAQ,yBAAyB,CAAC;IACvC,UAAU,cAAc;QACtB,oBAAoB,EAAE,eAAe,CAAA;QACrC,oBAAoB,EAAE,eAAe,CAAA;QACrC,oBAAoB,EAAE,eAAe,CAAA;QACrC,4BAA4B,EAAE,kBAAkB,CAAA;KACjD;CACF"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/modules/forms/events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAuBvB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;CAYM,CAAA;AAE9B,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AACnD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AACD,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AACnD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAA;CAClC;AACD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,2BAA2B,EAAE,CAAA;CACzD;AAED,OAAO,QAAQ,yBAAyB,CAAC;IACvC,UAAU,cAAc;QACtB,oBAAoB,EAAE,eAAe,CAAA;QACrC,oBAAoB,EAAE,eAAe,CAAA;QACrC,oBAAoB,EAAE,eAAe,CAAA;QACrC,4BAA4B,EAAE,kBAAkB,CAAA;KACjD;CACF"}
@@ -1,15 +1,33 @@
1
+ import { FORM_ACTION_STATUSES } from '@kelpie/schemas';
1
2
  import { z } from 'zod';
2
3
  /**
3
4
  * Domain events published by the forms module.
4
5
  *
5
6
  * `forms.form.*` cover the form definition CRUD. `forms.submission.submitted`
6
7
  * fires once per submission; the webhooks bridge translates it to the wire
7
- * `form.submitted` event (the ids live in `data`).
8
+ * `form.submitted` event (the ids and per-action statuses live in `data`).
9
+ *
10
+ * The action summary carries statuses only, no detail strings: the webhook
11
+ * receiver learns whether each action ran; the authenticated Submissions
12
+ * reader gets the full detail from `action_log` on the row.
8
13
  */
14
+ const actionSummarySchema = z
15
+ .object({
16
+ action: z.string(),
17
+ status: z.enum(FORM_ACTION_STATUSES),
18
+ })
19
+ .readonly();
9
20
  export const formsEvents = {
10
21
  'forms.form.created': z.object({}).strict(),
11
22
  'forms.form.updated': z.object({ changed: z.array(z.string()).readonly() }),
12
23
  'forms.form.deleted': z.object({}).strict(),
13
- 'forms.submission.submitted': z.object({ formId: z.string(), submissionId: z.string() }),
24
+ 'forms.submission.submitted': z.object({
25
+ formId: z.string(),
26
+ submissionId: z.string(),
27
+ opportunityId: z.string().nullable(),
28
+ partnershipId: z.string().nullable(),
29
+ enquiryId: z.string().nullable(),
30
+ actions: z.array(actionSummarySchema).readonly(),
31
+ }),
14
32
  };
15
33
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/modules/forms/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3C,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;IAC3E,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3C,4BAA4B,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;CAC5D,CAAA"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/modules/forms/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAEtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB;;;;;;;;;;GAUG;AAEH,MAAM,mBAAmB,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC;CACrC,CAAC;KACD,QAAQ,EAAE,CAAA;AAEb,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3C,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;IAC3E,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3C,4BAA4B,EAAE,CAAC,CAAC,MAAM,CAAC;QACrC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;QACxB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACpC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACpC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE;KACjD,CAAC;CAC0B,CAAA"}
@@ -17,6 +17,12 @@ export interface FieldDraft {
17
17
  readonly mapTo: FormFieldMapTarget;
18
18
  readonly options: readonly OptionDraft[];
19
19
  readonly placeholder: string | null;
20
+ /** The intro sentence for a `consent` field. Ignored for every other type. */
21
+ readonly statement: string | null;
22
+ /** Non-empty for `consent` fields; one checkbox per id in display order. */
23
+ readonly consentPurposeIds: readonly string[];
24
+ /** Per-purpose override for the checkbox text. Falls back to the workspace label. */
25
+ readonly consentPurposeLabels: Readonly<Record<string, string>>;
20
26
  }
21
27
  export interface OptionDraft {
22
28
  readonly key: string;
@@ -35,8 +41,12 @@ export interface OptionDraft {
35
41
  * or `company.domain` answer, so a deal-creating form without either would
36
42
  * quietly never create a deal. Refused here rather than discovered later by
37
43
  * somebody wondering where their inbound pipeline went.
44
+ * @param createsPartnership Same rule for partnerships: a Partnership belongs
45
+ * to a Company. Opportunities are exempt because `opportunities.company_id`
46
+ * is nullable — a form that creates an opportunity without resolving a
47
+ * company creates an opportunity without one, which is a valid state.
38
48
  */
39
- export declare function findFieldProblems(fields: readonly FieldShape[], createsDeal: boolean): readonly ErrorDetail[];
49
+ export declare function findFieldProblems(fields: readonly FieldShape[], createsDeal: boolean, createsPartnership?: boolean): readonly ErrorDetail[];
40
50
  /** A field's options as they are stored. Structurally the drafts, narrowed to the stored type. */
41
51
  export declare function storedOptions(options: readonly OptionDraft[]): readonly StoredFormFieldOption[];
42
52
  /**
@@ -56,6 +66,9 @@ export interface FieldShape {
56
66
  readonly mapTo: string;
57
67
  readonly options: readonly StoredFormFieldOption[];
58
68
  readonly placeholder: string | null;
69
+ readonly statement: string | null;
70
+ readonly consentPurposeIds: readonly string[];
71
+ readonly consentPurposeLabels: Readonly<Record<string, string>>;
59
72
  }
60
73
  /**
61
74
  * Whether a submitted field list differs from the stored one.
@@ -1 +1 @@
1
- {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../src/modules/forms/fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAExD,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEzF;;;;;;;GAOG;AAEH,+EAA+E;AAC/E,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAA;IAClC,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAA;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAA;CACxC;AAcD;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,WAAW,EAAE,OAAO,GACnB,SAAS,WAAW,EAAE,CAiCxB;AAiCD,kGAAkG;AAClG,wBAAgB,aAAa,CAC3B,OAAO,EAAE,SAAS,WAAW,EAAE,GAC9B,SAAS,qBAAqB,EAAE,CAMlC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,qBAAqB,EAAE,CAAA;IAClD,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,MAAM,EAAE,SAAS,UAAU,EAAE,GAC5B,OAAO,CAkBT"}
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../src/modules/forms/fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAExD,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAKzF;;;;;;;GAOG;AAEH,+EAA+E;AAC/E,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAA;IAClC,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAA;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,4EAA4E;IAC5E,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAA;IAC7C,qFAAqF;IACrF,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAChE;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAA;CACxC;AAcD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,WAAW,EAAE,OAAO,EACpB,kBAAkB,UAAQ,GACzB,SAAS,WAAW,EAAE,CA+FxB;AAiCD,kGAAkG;AAClG,wBAAgB,aAAa,CAC3B,OAAO,EAAE,SAAS,WAAW,EAAE,GAC9B,SAAS,qBAAqB,EAAE,CAMlC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,qBAAqB,EAAE,CAAA;IAClD,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAA;IAC7C,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAChE;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,MAAM,EAAE,SAAS,UAAU,EAAE,GAC5B,OAAO,CAqBT"}