@kelpie/server 0.10.0 → 0.11.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 (439) hide show
  1. package/dist/app.d.ts.map +1 -1
  2. package/dist/app.js +2 -0
  3. package/dist/app.js.map +1 -1
  4. package/dist/lib/actor.d.ts +3 -1
  5. package/dist/lib/actor.d.ts.map +1 -1
  6. package/dist/lib/actor.js.map +1 -1
  7. package/dist/lib/apiKeyScopes.d.ts +8 -0
  8. package/dist/lib/apiKeyScopes.d.ts.map +1 -0
  9. package/dist/lib/apiKeyScopes.js +166 -0
  10. package/dist/lib/apiKeyScopes.js.map +1 -0
  11. package/dist/modules/activities/repository.d.ts +2 -0
  12. package/dist/modules/activities/repository.d.ts.map +1 -1
  13. package/dist/modules/activities/repository.js +9 -0
  14. package/dist/modules/activities/repository.js.map +1 -1
  15. package/dist/modules/agent-tasks/repository.d.ts +2 -0
  16. package/dist/modules/agent-tasks/repository.d.ts.map +1 -1
  17. package/dist/modules/agent-tasks/repository.js +9 -0
  18. package/dist/modules/agent-tasks/repository.js.map +1 -1
  19. package/dist/modules/api-keys/routes.d.ts.map +1 -1
  20. package/dist/modules/api-keys/routes.js +4 -1
  21. package/dist/modules/api-keys/routes.js.map +1 -1
  22. package/dist/modules/api-keys/schema.d.ts +43 -0
  23. package/dist/modules/api-keys/schema.d.ts.map +1 -1
  24. package/dist/modules/api-keys/schema.js +2 -0
  25. package/dist/modules/api-keys/schema.js.map +1 -1
  26. package/dist/modules/api-keys/scopeMiddleware.d.ts +8 -0
  27. package/dist/modules/api-keys/scopeMiddleware.d.ts.map +1 -0
  28. package/dist/modules/api-keys/scopeMiddleware.js +21 -0
  29. package/dist/modules/api-keys/scopeMiddleware.js.map +1 -0
  30. package/dist/modules/api-keys/service.d.ts +3 -1
  31. package/dist/modules/api-keys/service.d.ts.map +1 -1
  32. package/dist/modules/api-keys/service.js +26 -1
  33. package/dist/modules/api-keys/service.js.map +1 -1
  34. package/dist/modules/auth/credentials.d.ts.map +1 -1
  35. package/dist/modules/auth/credentials.js +2 -0
  36. package/dist/modules/auth/credentials.js.map +1 -1
  37. package/dist/modules/consent-purposes/index.d.ts +1 -1
  38. package/dist/modules/consent-purposes/index.js +1 -1
  39. package/dist/modules/consent-purposes/schema.d.ts +3 -3
  40. package/dist/modules/consent-purposes/schema.js +3 -3
  41. package/dist/modules/consent-purposes/service.d.ts +1 -1
  42. package/dist/modules/consent-purposes/service.d.ts.map +1 -1
  43. package/dist/modules/consent-purposes/service.js +7 -16
  44. package/dist/modules/consent-purposes/service.js.map +1 -1
  45. package/dist/modules/consent-purposes/starters.d.ts +1 -1
  46. package/dist/modules/consent-purposes/tools.js +1 -1
  47. package/dist/modules/consent-purposes/tools.js.map +1 -1
  48. package/dist/modules/conversions/clearPointers.d.ts +10 -0
  49. package/dist/modules/conversions/clearPointers.d.ts.map +1 -0
  50. package/dist/modules/conversions/clearPointers.js +40 -0
  51. package/dist/modules/conversions/clearPointers.js.map +1 -0
  52. package/dist/modules/conversions/factory.d.ts +5 -0
  53. package/dist/modules/conversions/factory.d.ts.map +1 -0
  54. package/dist/modules/conversions/factory.js +18 -0
  55. package/dist/modules/conversions/factory.js.map +1 -0
  56. package/dist/modules/conversions/fieldMap.d.ts +55 -0
  57. package/dist/modules/conversions/fieldMap.d.ts.map +1 -0
  58. package/dist/modules/conversions/fieldMap.js +398 -0
  59. package/dist/modules/conversions/fieldMap.js.map +1 -0
  60. package/dist/modules/conversions/index.d.ts +7 -0
  61. package/dist/modules/conversions/index.d.ts.map +1 -0
  62. package/dist/modules/conversions/index.js +6 -0
  63. package/dist/modules/conversions/index.js.map +1 -0
  64. package/dist/modules/conversions/mcp.d.ts +7 -0
  65. package/dist/modules/conversions/mcp.d.ts.map +1 -0
  66. package/dist/modules/conversions/mcp.js +47 -0
  67. package/dist/modules/conversions/mcp.js.map +1 -0
  68. package/dist/modules/conversions/repoint.d.ts +19 -0
  69. package/dist/modules/conversions/repoint.d.ts.map +1 -0
  70. package/dist/modules/conversions/repoint.js +51 -0
  71. package/dist/modules/conversions/repoint.js.map +1 -0
  72. package/dist/modules/conversions/routes.d.ts +26 -0
  73. package/dist/modules/conversions/routes.d.ts.map +1 -0
  74. package/dist/modules/conversions/routes.js +23 -0
  75. package/dist/modules/conversions/routes.js.map +1 -0
  76. package/dist/modules/conversions/service.d.ts +28 -0
  77. package/dist/modules/conversions/service.d.ts.map +1 -0
  78. package/dist/modules/conversions/service.js +170 -0
  79. package/dist/modules/conversions/service.js.map +1 -0
  80. package/dist/modules/conversions/wire.d.ts +4 -0
  81. package/dist/modules/conversions/wire.d.ts.map +1 -0
  82. package/dist/modules/conversions/wire.js +28 -0
  83. package/dist/modules/conversions/wire.js.map +1 -0
  84. package/dist/modules/deals/events.d.ts +9 -0
  85. package/dist/modules/deals/events.d.ts.map +1 -1
  86. package/dist/modules/deals/events.js +4 -0
  87. package/dist/modules/deals/events.js.map +1 -1
  88. package/dist/modules/deals/index.d.ts.map +1 -1
  89. package/dist/modules/deals/index.js +4 -2
  90. package/dist/modules/deals/index.js.map +1 -1
  91. package/dist/modules/deals/routes.d.ts +2 -0
  92. package/dist/modules/deals/routes.d.ts.map +1 -1
  93. package/dist/modules/deals/routes.js +8 -1
  94. package/dist/modules/deals/routes.js.map +1 -1
  95. package/dist/modules/deals/schema.d.ts +34 -0
  96. package/dist/modules/deals/schema.d.ts.map +1 -1
  97. package/dist/modules/deals/schema.js +7 -2
  98. package/dist/modules/deals/schema.js.map +1 -1
  99. package/dist/modules/deals/service.d.ts.map +1 -1
  100. package/dist/modules/deals/service.js +2 -0
  101. package/dist/modules/deals/service.js.map +1 -1
  102. package/dist/modules/deals/tools.d.ts +2 -1
  103. package/dist/modules/deals/tools.d.ts.map +1 -1
  104. package/dist/modules/deals/tools.js +3 -1
  105. package/dist/modules/deals/tools.js.map +1 -1
  106. package/dist/modules/decisions/repository.d.ts +2 -1
  107. package/dist/modules/decisions/repository.d.ts.map +1 -1
  108. package/dist/modules/decisions/repository.js +9 -1
  109. package/dist/modules/decisions/repository.js.map +1 -1
  110. package/dist/modules/enquiries/events.d.ts +6 -2
  111. package/dist/modules/enquiries/events.d.ts.map +1 -1
  112. package/dist/modules/enquiries/events.js +5 -1
  113. package/dist/modules/enquiries/events.js.map +1 -1
  114. package/dist/modules/enquiries/index.d.ts.map +1 -1
  115. package/dist/modules/enquiries/index.js +4 -2
  116. package/dist/modules/enquiries/index.js.map +1 -1
  117. package/dist/modules/enquiries/routes.d.ts +2 -0
  118. package/dist/modules/enquiries/routes.d.ts.map +1 -1
  119. package/dist/modules/enquiries/routes.js +9 -9
  120. package/dist/modules/enquiries/routes.js.map +1 -1
  121. package/dist/modules/enquiries/schema.d.ts +36 -1
  122. package/dist/modules/enquiries/schema.d.ts.map +1 -1
  123. package/dist/modules/enquiries/schema.js +9 -3
  124. package/dist/modules/enquiries/schema.js.map +1 -1
  125. package/dist/modules/enquiries/service.d.ts +0 -8
  126. package/dist/modules/enquiries/service.d.ts.map +1 -1
  127. package/dist/modules/enquiries/service.js +3 -95
  128. package/dist/modules/enquiries/service.js.map +1 -1
  129. package/dist/modules/enquiries/tools.d.ts +2 -1
  130. package/dist/modules/enquiries/tools.d.ts.map +1 -1
  131. package/dist/modules/enquiries/tools.js +4 -16
  132. package/dist/modules/enquiries/tools.js.map +1 -1
  133. package/dist/modules/forms/applyMappedFields.d.ts +20 -0
  134. package/dist/modules/forms/applyMappedFields.d.ts.map +1 -0
  135. package/dist/modules/forms/applyMappedFields.js +169 -0
  136. package/dist/modules/forms/applyMappedFields.js.map +1 -0
  137. package/dist/modules/forms/applySubmissionFields.d.ts +18 -0
  138. package/dist/modules/forms/applySubmissionFields.d.ts.map +1 -0
  139. package/dist/modules/forms/applySubmissionFields.js +230 -0
  140. package/dist/modules/forms/applySubmissionFields.js.map +1 -0
  141. package/dist/modules/forms/fields.d.ts +7 -2
  142. package/dist/modules/forms/fields.d.ts.map +1 -1
  143. package/dist/modules/forms/fields.js +17 -6
  144. package/dist/modules/forms/fields.js.map +1 -1
  145. package/dist/modules/forms/mapping.d.ts +8 -2
  146. package/dist/modules/forms/mapping.d.ts.map +1 -1
  147. package/dist/modules/forms/mapping.js +11 -0
  148. package/dist/modules/forms/mapping.js.map +1 -1
  149. package/dist/modules/forms/repository.d.ts +0 -5
  150. package/dist/modules/forms/repository.d.ts.map +1 -1
  151. package/dist/modules/forms/repository.js +0 -2
  152. package/dist/modules/forms/repository.js.map +1 -1
  153. package/dist/modules/forms/routes.d.ts +2 -30
  154. package/dist/modules/forms/routes.d.ts.map +1 -1
  155. package/dist/modules/forms/routes.js +2 -2
  156. package/dist/modules/forms/routes.js.map +1 -1
  157. package/dist/modules/forms/schema.d.ts.map +1 -1
  158. package/dist/modules/forms/schema.js +1 -2
  159. package/dist/modules/forms/schema.js.map +1 -1
  160. package/dist/modules/forms/service.d.ts.map +1 -1
  161. package/dist/modules/forms/service.js +18 -3
  162. package/dist/modules/forms/service.js.map +1 -1
  163. package/dist/modules/forms/starters.d.ts +31 -0
  164. package/dist/modules/forms/starters.d.ts.map +1 -0
  165. package/dist/modules/forms/starters.js +94 -0
  166. package/dist/modules/forms/starters.js.map +1 -0
  167. package/dist/modules/forms/submission.d.ts +1 -0
  168. package/dist/modules/forms/submission.d.ts.map +1 -1
  169. package/dist/modules/forms/submission.js +58 -37
  170. package/dist/modules/forms/submission.js.map +1 -1
  171. package/dist/modules/import-export/customFieldCsv.d.ts +9 -0
  172. package/dist/modules/import-export/customFieldCsv.d.ts.map +1 -0
  173. package/dist/modules/import-export/customFieldCsv.js +39 -0
  174. package/dist/modules/import-export/customFieldCsv.js.map +1 -0
  175. package/dist/modules/import-export/customFieldImport.d.ts +19 -0
  176. package/dist/modules/import-export/customFieldImport.d.ts.map +1 -0
  177. package/dist/modules/import-export/customFieldImport.js +76 -0
  178. package/dist/modules/import-export/customFieldImport.js.map +1 -0
  179. package/dist/modules/import-export/drafts.d.ts +57 -3
  180. package/dist/modules/import-export/drafts.d.ts.map +1 -1
  181. package/dist/modules/import-export/drafts.js +65 -3
  182. package/dist/modules/import-export/drafts.js.map +1 -1
  183. package/dist/modules/import-export/exportRows.d.ts +15 -13
  184. package/dist/modules/import-export/exportRows.d.ts.map +1 -1
  185. package/dist/modules/import-export/exportRows.js +99 -26
  186. package/dist/modules/import-export/exportRows.js.map +1 -1
  187. package/dist/modules/import-export/plan.d.ts +42 -11
  188. package/dist/modules/import-export/plan.d.ts.map +1 -1
  189. package/dist/modules/import-export/plan.js +198 -56
  190. package/dist/modules/import-export/plan.js.map +1 -1
  191. package/dist/modules/import-export/repository.d.ts +58 -2
  192. package/dist/modules/import-export/repository.d.ts.map +1 -1
  193. package/dist/modules/import-export/repository.js +201 -12
  194. package/dist/modules/import-export/repository.js.map +1 -1
  195. package/dist/modules/import-export/routes.d.ts.map +1 -1
  196. package/dist/modules/import-export/routes.js +5 -5
  197. package/dist/modules/import-export/routes.js.map +1 -1
  198. package/dist/modules/import-export/service.d.ts +8 -3
  199. package/dist/modules/import-export/service.d.ts.map +1 -1
  200. package/dist/modules/import-export/service.js +133 -40
  201. package/dist/modules/import-export/service.js.map +1 -1
  202. package/dist/modules/import-export/streams.d.ts +2 -2
  203. package/dist/modules/import-export/streams.d.ts.map +1 -1
  204. package/dist/modules/import-export/streams.js +50 -9
  205. package/dist/modules/import-export/streams.js.map +1 -1
  206. package/dist/modules/import-export/tools.d.ts.map +1 -1
  207. package/dist/modules/import-export/tools.js +13 -7
  208. package/dist/modules/import-export/tools.js.map +1 -1
  209. package/dist/modules/import-export/validation.d.ts +5 -1
  210. package/dist/modules/import-export/validation.d.ts.map +1 -1
  211. package/dist/modules/import-export/validation.js +89 -2
  212. package/dist/modules/import-export/validation.js.map +1 -1
  213. package/dist/modules/import-export/writes.d.ts +2 -1
  214. package/dist/modules/import-export/writes.d.ts.map +1 -1
  215. package/dist/modules/import-export/writes.js +358 -25
  216. package/dist/modules/import-export/writes.js.map +1 -1
  217. package/dist/modules/lists/repository.d.ts +0 -1
  218. package/dist/modules/lists/repository.d.ts.map +1 -1
  219. package/dist/modules/lists/repository.js +0 -1
  220. package/dist/modules/lists/repository.js.map +1 -1
  221. package/dist/modules/lists/routes.d.ts +0 -2
  222. package/dist/modules/lists/routes.d.ts.map +1 -1
  223. package/dist/modules/lists/routes.js +0 -8
  224. package/dist/modules/lists/routes.js.map +1 -1
  225. package/dist/modules/lists/schema.d.ts +0 -17
  226. package/dist/modules/lists/schema.d.ts.map +1 -1
  227. package/dist/modules/lists/schema.js +0 -10
  228. package/dist/modules/lists/schema.js.map +1 -1
  229. package/dist/modules/lists/service.d.ts +2 -14
  230. package/dist/modules/lists/service.d.ts.map +1 -1
  231. package/dist/modules/lists/service.js +7 -53
  232. package/dist/modules/lists/service.js.map +1 -1
  233. package/dist/modules/lists/starters.d.ts +12 -0
  234. package/dist/modules/lists/starters.d.ts.map +1 -0
  235. package/dist/modules/lists/starters.js +4 -0
  236. package/dist/modules/lists/starters.js.map +1 -0
  237. package/dist/modules/mcp/protocol.d.ts.map +1 -1
  238. package/dist/modules/mcp/protocol.js +13 -0
  239. package/dist/modules/mcp/protocol.js.map +1 -1
  240. package/dist/modules/notes/repository.d.ts +2 -0
  241. package/dist/modules/notes/repository.d.ts.map +1 -1
  242. package/dist/modules/notes/repository.js +9 -0
  243. package/dist/modules/notes/repository.js.map +1 -1
  244. package/dist/modules/opportunities/events.d.ts +9 -0
  245. package/dist/modules/opportunities/events.d.ts.map +1 -1
  246. package/dist/modules/opportunities/events.js +4 -0
  247. package/dist/modules/opportunities/events.js.map +1 -1
  248. package/dist/modules/opportunities/index.d.ts.map +1 -1
  249. package/dist/modules/opportunities/index.js +4 -2
  250. package/dist/modules/opportunities/index.js.map +1 -1
  251. package/dist/modules/opportunities/routes.d.ts +2 -0
  252. package/dist/modules/opportunities/routes.d.ts.map +1 -1
  253. package/dist/modules/opportunities/routes.js +8 -1
  254. package/dist/modules/opportunities/routes.js.map +1 -1
  255. package/dist/modules/opportunities/schema.d.ts +34 -0
  256. package/dist/modules/opportunities/schema.d.ts.map +1 -1
  257. package/dist/modules/opportunities/schema.js +7 -2
  258. package/dist/modules/opportunities/schema.js.map +1 -1
  259. package/dist/modules/opportunities/service.d.ts.map +1 -1
  260. package/dist/modules/opportunities/service.js +2 -0
  261. package/dist/modules/opportunities/service.js.map +1 -1
  262. package/dist/modules/opportunities/tools.d.ts +2 -1
  263. package/dist/modules/opportunities/tools.d.ts.map +1 -1
  264. package/dist/modules/opportunities/tools.js +3 -1
  265. package/dist/modules/opportunities/tools.js.map +1 -1
  266. package/dist/modules/partnerships/events.d.ts +9 -0
  267. package/dist/modules/partnerships/events.d.ts.map +1 -1
  268. package/dist/modules/partnerships/events.js +4 -0
  269. package/dist/modules/partnerships/events.js.map +1 -1
  270. package/dist/modules/partnerships/index.d.ts.map +1 -1
  271. package/dist/modules/partnerships/index.js +4 -2
  272. package/dist/modules/partnerships/index.js.map +1 -1
  273. package/dist/modules/partnerships/routes.d.ts +2 -0
  274. package/dist/modules/partnerships/routes.d.ts.map +1 -1
  275. package/dist/modules/partnerships/routes.js +8 -1
  276. package/dist/modules/partnerships/routes.js.map +1 -1
  277. package/dist/modules/partnerships/schema.d.ts +34 -0
  278. package/dist/modules/partnerships/schema.d.ts.map +1 -1
  279. package/dist/modules/partnerships/schema.js +7 -2
  280. package/dist/modules/partnerships/schema.js.map +1 -1
  281. package/dist/modules/partnerships/service.d.ts.map +1 -1
  282. package/dist/modules/partnerships/service.js +2 -0
  283. package/dist/modules/partnerships/service.js.map +1 -1
  284. package/dist/modules/partnerships/tools.d.ts +2 -1
  285. package/dist/modules/partnerships/tools.d.ts.map +1 -1
  286. package/dist/modules/partnerships/tools.js +3 -1
  287. package/dist/modules/partnerships/tools.js.map +1 -1
  288. package/dist/modules/people/personConsentWrites.d.ts +1 -1
  289. package/dist/modules/people/schema.js +1 -1
  290. package/dist/modules/people/schema.js.map +1 -1
  291. package/dist/modules/plans/repository.d.ts +2 -0
  292. package/dist/modules/plans/repository.d.ts.map +1 -1
  293. package/dist/modules/plans/repository.js +9 -0
  294. package/dist/modules/plans/repository.js.map +1 -1
  295. package/dist/modules/raises/events.d.ts +9 -0
  296. package/dist/modules/raises/events.d.ts.map +1 -1
  297. package/dist/modules/raises/events.js +4 -0
  298. package/dist/modules/raises/events.js.map +1 -1
  299. package/dist/modules/raises/index.d.ts.map +1 -1
  300. package/dist/modules/raises/index.js +4 -2
  301. package/dist/modules/raises/index.js.map +1 -1
  302. package/dist/modules/raises/routes.d.ts +2 -0
  303. package/dist/modules/raises/routes.d.ts.map +1 -1
  304. package/dist/modules/raises/routes.js +8 -1
  305. package/dist/modules/raises/routes.js.map +1 -1
  306. package/dist/modules/raises/schema.d.ts +34 -0
  307. package/dist/modules/raises/schema.d.ts.map +1 -1
  308. package/dist/modules/raises/schema.js +7 -2
  309. package/dist/modules/raises/schema.js.map +1 -1
  310. package/dist/modules/raises/service.d.ts.map +1 -1
  311. package/dist/modules/raises/service.js +2 -0
  312. package/dist/modules/raises/service.js.map +1 -1
  313. package/dist/modules/raises/tools.d.ts +2 -1
  314. package/dist/modules/raises/tools.d.ts.map +1 -1
  315. package/dist/modules/raises/tools.js +3 -1
  316. package/dist/modules/raises/tools.js.map +1 -1
  317. package/dist/modules/workspace/routes.d.ts +0 -2
  318. package/dist/modules/workspace/routes.d.ts.map +1 -1
  319. package/dist/modules/workspace/routes.js +0 -6
  320. package/dist/modules/workspace/routes.js.map +1 -1
  321. package/dist/modules/workspace/schema.d.ts +0 -34
  322. package/dist/modules/workspace/schema.d.ts.map +1 -1
  323. package/dist/modules/workspace/schema.js +0 -2
  324. package/dist/modules/workspace/schema.js.map +1 -1
  325. package/dist/modules/workspace/seedStarterForms.d.ts +17 -0
  326. package/dist/modules/workspace/seedStarterForms.d.ts.map +1 -0
  327. package/dist/modules/workspace/seedStarterForms.js +71 -0
  328. package/dist/modules/workspace/seedStarterForms.js.map +1 -0
  329. package/dist/modules/workspace/service.d.ts +0 -4
  330. package/dist/modules/workspace/service.d.ts.map +1 -1
  331. package/dist/modules/workspace/service.js +20 -10
  332. package/dist/modules/workspace/service.js.map +1 -1
  333. package/dist/modules/workspace/tools.js +1 -1
  334. package/dist/modules/workspace/tools.js.map +1 -1
  335. package/dist/testing/fixtures.d.ts.map +1 -1
  336. package/dist/testing/fixtures.js +1 -0
  337. package/dist/testing/fixtures.js.map +1 -1
  338. package/migrations/0037_drop_lists_consent_purpose_id.sql +2 -0
  339. package/migrations/0038_smart_white_queen.sql +2 -0
  340. package/migrations/0039_form_map_to_open.sql +1 -0
  341. package/migrations/0040_pipeline_converted_to.sql +20 -0
  342. package/migrations/0041_api_key_scopes.sql +1 -0
  343. package/migrations/0042_drop_workspace_identity.sql +2 -0
  344. package/migrations/meta/0038_snapshot.json +6554 -0
  345. package/migrations/meta/_journal.json +42 -0
  346. package/package.json +2 -2
  347. package/src/app.ts +3 -0
  348. package/src/lib/actor.ts +3 -1
  349. package/src/lib/apiKeyScopes.ts +213 -0
  350. package/src/modules/activities/repository.ts +24 -0
  351. package/src/modules/agent-tasks/repository.ts +24 -0
  352. package/src/modules/api-keys/routes.ts +5 -0
  353. package/src/modules/api-keys/schema.ts +2 -0
  354. package/src/modules/api-keys/scopeMiddleware.ts +30 -0
  355. package/src/modules/api-keys/service.ts +36 -2
  356. package/src/modules/auth/credentials.ts +4 -0
  357. package/src/modules/consent-purposes/index.ts +1 -1
  358. package/src/modules/consent-purposes/schema.ts +3 -3
  359. package/src/modules/consent-purposes/service.ts +7 -16
  360. package/src/modules/consent-purposes/starters.ts +1 -1
  361. package/src/modules/consent-purposes/tools.ts +1 -1
  362. package/src/modules/conversions/clearPointers.ts +81 -0
  363. package/src/modules/conversions/factory.ts +20 -0
  364. package/src/modules/conversions/fieldMap.ts +548 -0
  365. package/src/modules/conversions/index.ts +6 -0
  366. package/src/modules/conversions/mcp.ts +71 -0
  367. package/src/modules/conversions/repoint.ts +146 -0
  368. package/src/modules/conversions/routes.ts +68 -0
  369. package/src/modules/conversions/service.ts +310 -0
  370. package/src/modules/conversions/wire.ts +42 -0
  371. package/src/modules/deals/events.ts +9 -0
  372. package/src/modules/deals/index.ts +4 -2
  373. package/src/modules/deals/routes.ts +11 -1
  374. package/src/modules/deals/schema.ts +10 -2
  375. package/src/modules/deals/service.ts +3 -0
  376. package/src/modules/deals/tools.ts +9 -1
  377. package/src/modules/decisions/repository.ts +23 -1
  378. package/src/modules/enquiries/events.ts +8 -2
  379. package/src/modules/enquiries/index.ts +4 -2
  380. package/src/modules/enquiries/routes.ts +11 -13
  381. package/src/modules/enquiries/schema.ts +12 -3
  382. package/src/modules/enquiries/service.ts +3 -150
  383. package/src/modules/enquiries/tools.ts +9 -18
  384. package/src/modules/forms/applyMappedFields.ts +248 -0
  385. package/src/modules/forms/applySubmissionFields.ts +435 -0
  386. package/src/modules/forms/fields.ts +31 -7
  387. package/src/modules/forms/mapping.ts +20 -3
  388. package/src/modules/forms/repository.ts +0 -7
  389. package/src/modules/forms/routes.ts +1 -2
  390. package/src/modules/forms/schema.ts +0 -2
  391. package/src/modules/forms/service.ts +31 -4
  392. package/src/modules/forms/starters.ts +129 -0
  393. package/src/modules/forms/submission.ts +135 -69
  394. package/src/modules/import-export/customFieldCsv.ts +55 -0
  395. package/src/modules/import-export/customFieldImport.ts +111 -0
  396. package/src/modules/import-export/drafts.ts +151 -3
  397. package/src/modules/import-export/exportRows.ts +222 -68
  398. package/src/modules/import-export/plan.ts +321 -67
  399. package/src/modules/import-export/repository.ts +356 -14
  400. package/src/modules/import-export/routes.ts +8 -8
  401. package/src/modules/import-export/service.ts +208 -45
  402. package/src/modules/import-export/streams.ts +95 -13
  403. package/src/modules/import-export/tools.ts +14 -6
  404. package/src/modules/import-export/validation.ts +128 -0
  405. package/src/modules/import-export/writes.ts +559 -27
  406. package/src/modules/lists/repository.ts +0 -2
  407. package/src/modules/lists/routes.ts +0 -8
  408. package/src/modules/lists/schema.ts +0 -10
  409. package/src/modules/lists/service.ts +9 -107
  410. package/src/modules/lists/starters.ts +16 -0
  411. package/src/modules/mcp/protocol.ts +18 -0
  412. package/src/modules/notes/repository.ts +24 -0
  413. package/src/modules/opportunities/events.ts +9 -0
  414. package/src/modules/opportunities/index.ts +4 -2
  415. package/src/modules/opportunities/routes.ts +11 -1
  416. package/src/modules/opportunities/schema.ts +10 -2
  417. package/src/modules/opportunities/service.ts +3 -0
  418. package/src/modules/opportunities/tools.ts +9 -1
  419. package/src/modules/partnerships/events.ts +9 -0
  420. package/src/modules/partnerships/index.ts +4 -2
  421. package/src/modules/partnerships/routes.ts +11 -1
  422. package/src/modules/partnerships/schema.ts +10 -2
  423. package/src/modules/partnerships/service.ts +3 -0
  424. package/src/modules/partnerships/tools.ts +9 -1
  425. package/src/modules/people/personConsentWrites.ts +1 -1
  426. package/src/modules/people/schema.ts +1 -1
  427. package/src/modules/plans/repository.ts +24 -0
  428. package/src/modules/raises/events.ts +9 -0
  429. package/src/modules/raises/index.ts +4 -2
  430. package/src/modules/raises/routes.ts +11 -1
  431. package/src/modules/raises/schema.ts +10 -2
  432. package/src/modules/raises/service.ts +3 -0
  433. package/src/modules/raises/tools.ts +9 -1
  434. package/src/modules/workspace/routes.ts +0 -6
  435. package/src/modules/workspace/schema.ts +0 -2
  436. package/src/modules/workspace/seedStarterForms.ts +98 -0
  437. package/src/modules/workspace/service.ts +23 -15
  438. package/src/modules/workspace/tools.ts +1 -1
  439. package/src/testing/fixtures.ts +1 -0
@@ -2,6 +2,8 @@ import {
2
2
  ACCOUNT_TYPES,
3
3
  COMPANY_STAGES,
4
4
  CONSENT_STATUSES,
5
+ CUSTOM_FIELD_OBJECT_TYPES,
6
+ CUSTOM_FIELD_TYPES,
5
7
  ICP_FITS,
6
8
  INFLUENCE_LEVELS,
7
9
  PREFERRED_CHANNELS,
@@ -12,6 +14,8 @@ import {
12
14
  import type { ImportObject, MatchKeyOption } from '@kelpie/schemas'
13
15
 
14
16
  import { isoDateSchema } from '../../lib/dates.ts'
17
+ import type { CustomFieldDefinitionRecord } from '../custom-fields/repository.ts'
18
+ import { parseCustomFieldWireValue } from './customFieldImport.ts'
15
19
  import type { StoredRowError } from './schema.ts'
16
20
  import { moneyToCents } from './mapping.ts'
17
21
 
@@ -143,6 +147,10 @@ function checkDeal(errors: StoredRowError[], mapped: Readonly<Record<string, str
143
147
  errors.push({ field: 'value', message: `"${mapped.value ?? ''}" is not a number` })
144
148
  }
145
149
 
150
+ checkPipelineCommon(errors, mapped)
151
+ }
152
+
153
+ function checkPipelineCommon(errors: StoredRowError[], mapped: Readonly<Record<string, string>>): void {
146
154
  const close = (mapped.expected_close ?? '').trim()
147
155
 
148
156
  if (close.length > 0 && !isoDateSchema.safeParse(close).success) {
@@ -156,11 +164,112 @@ function checkDeal(errors: StoredRowError[], mapped: Readonly<Record<string, str
156
164
  }
157
165
  }
158
166
 
167
+ function checkOpportunity(errors: StoredRowError[], mapped: Readonly<Record<string, string>>): void {
168
+ checkPipelineCommon(errors, mapped)
169
+ }
170
+
171
+ function checkEnquiry(errors: StoredRowError[], mapped: Readonly<Record<string, string>>): void {
172
+ checkPipelineCommon(errors, mapped)
173
+ }
174
+
175
+ function checkPartnership(errors: StoredRowError[], mapped: Readonly<Record<string, string>>): void {
176
+ const touchpoint = (mapped.next_touchpoint ?? '').trim()
177
+
178
+ if (touchpoint.length > 0 && !isoDateSchema.safeParse(touchpoint).success) {
179
+ errors.push({
180
+ field: 'next_touchpoint',
181
+ message: `"${touchpoint}" is not a date. Use YYYY-MM-DD`,
182
+ })
183
+ }
184
+
185
+ checkPipelineCommon(errors, mapped)
186
+ }
187
+
188
+ function checkRaise(errors: StoredRowError[], mapped: Readonly<Record<string, string>>): void {
189
+ const checkSize = (mapped.check_size ?? '').trim()
190
+
191
+ if (checkSize.length > 0 && moneyToCents(mapped.check_size) === undefined) {
192
+ errors.push({ field: 'check_size', message: `"${checkSize}" is not a number` })
193
+ }
194
+
195
+ const currency = (mapped.currency ?? '').trim()
196
+
197
+ if (currency.length > 0 && !/^[A-Z]{3}$/u.test(currency)) {
198
+ errors.push({ field: 'currency', message: `"${currency}" is not a 3-letter currency code` })
199
+ }
200
+
201
+ checkPipelineCommon(errors, mapped)
202
+ }
203
+
204
+ function checkCustomFieldDefinition(
205
+ errors: StoredRowError[],
206
+ mapped: Readonly<Record<string, string>>,
207
+ ): void {
208
+ const objectType = (mapped.object_type ?? '').trim()
209
+
210
+ if (
211
+ objectType.length > 0 &&
212
+ !CUSTOM_FIELD_OBJECT_TYPES.includes(objectType as (typeof CUSTOM_FIELD_OBJECT_TYPES)[number])
213
+ ) {
214
+ errors.push({
215
+ field: 'object_type',
216
+ message: `Unknown object type "${objectType}". Use one of: ${CUSTOM_FIELD_OBJECT_TYPES.join(', ')}`,
217
+ })
218
+ }
219
+
220
+ const type = (mapped.type ?? '').trim()
221
+
222
+ if (type.length > 0 && !CUSTOM_FIELD_TYPES.includes(type as (typeof CUSTOM_FIELD_TYPES)[number])) {
223
+ errors.push({
224
+ field: 'type',
225
+ message: `Unknown type "${type}". Use one of: ${CUSTOM_FIELD_TYPES.join(', ')}`,
226
+ })
227
+ }
228
+
229
+ const sortOrder = (mapped.sort_order ?? '').trim()
230
+
231
+ if (sortOrder.length > 0 && !/^\d+$/u.test(sortOrder)) {
232
+ errors.push({ field: 'sort_order', message: `"${sortOrder}" is not a whole number` })
233
+ }
234
+ }
235
+
236
+ function checkCustomFieldCells(
237
+ errors: StoredRowError[],
238
+ mapped: Readonly<Record<string, string>>,
239
+ baseKeys: ReadonlySet<string>,
240
+ definitions: readonly CustomFieldDefinitionRecord[],
241
+ ): void {
242
+ const byKey = new Map(definitions.map((definition) => [definition.key, definition]))
243
+
244
+ for (const [key, value] of Object.entries(mapped)) {
245
+ if (baseKeys.has(key) || value.trim().length === 0) {
246
+ continue
247
+ }
248
+
249
+ const definition = byKey.get(key)
250
+
251
+ if (definition === undefined) {
252
+ errors.push({ field: key, message: `No custom field definition called "${key}"` })
253
+ continue
254
+ }
255
+
256
+ const parsed = parseCustomFieldWireValue(definition, value)
257
+
258
+ if (parsed === undefined) {
259
+ errors.push({ field: key, message: `"${value}" is not a valid value for ${definition.label}` })
260
+ }
261
+ }
262
+ }
263
+
159
264
  /** @returns Every shape problem with the row, or an empty array when it is usable. */
160
265
  export function validateRow(
161
266
  object: ImportObject,
162
267
  matchKey: MatchKeyOption,
163
268
  mapped: Readonly<Record<string, string>>,
269
+ options: {
270
+ readonly baseColumnKeys: ReadonlySet<string>
271
+ readonly customFieldDefinitions: readonly CustomFieldDefinitionRecord[]
272
+ } = { baseColumnKeys: new Set(), customFieldDefinitions: [] },
164
273
  ): readonly StoredRowError[] {
165
274
  const errors: StoredRowError[] = []
166
275
 
@@ -185,6 +294,25 @@ export function validateRow(
185
294
  case 'deals':
186
295
  checkDeal(errors, mapped)
187
296
  break
297
+ case 'opportunities':
298
+ checkOpportunity(errors, mapped)
299
+ break
300
+ case 'enquiries':
301
+ checkEnquiry(errors, mapped)
302
+ break
303
+ case 'partnerships':
304
+ checkPartnership(errors, mapped)
305
+ break
306
+ case 'raises':
307
+ checkRaise(errors, mapped)
308
+ break
309
+ case 'custom_fields':
310
+ checkCustomFieldDefinition(errors, mapped)
311
+ break
312
+ }
313
+
314
+ if (options.customFieldDefinitions.length > 0) {
315
+ checkCustomFieldCells(errors, mapped, options.baseColumnKeys, options.customFieldDefinitions)
188
316
  }
189
317
 
190
318
  return errors