@kelpie/server 0.7.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/consumerEmailDomains.d.ts +2 -0
- package/dist/lib/consumerEmailDomains.d.ts.map +1 -0
- package/dist/lib/consumerEmailDomains.js +62 -0
- package/dist/lib/consumerEmailDomains.js.map +1 -0
- package/dist/lib/email.d.ts +7 -0
- package/dist/lib/email.d.ts.map +1 -1
- package/dist/lib/email.js.map +1 -1
- package/dist/lib/emailContent.d.ts +33 -0
- package/dist/lib/emailContent.d.ts.map +1 -0
- package/dist/lib/emailContent.js +54 -0
- package/dist/lib/emailContent.js.map +1 -0
- package/dist/lib/emailDomainAutoLink.d.ts +27 -0
- package/dist/lib/emailDomainAutoLink.d.ts.map +1 -0
- package/dist/lib/emailDomainAutoLink.js +119 -0
- package/dist/lib/emailDomainAutoLink.js.map +1 -0
- package/dist/lib/ids.d.ts +13 -0
- package/dist/lib/ids.d.ts.map +1 -1
- package/dist/lib/ids.js +13 -0
- package/dist/lib/ids.js.map +1 -1
- package/dist/modules/activities/repository.d.ts.map +1 -1
- package/dist/modules/activities/repository.js +19 -20
- package/dist/modules/activities/repository.js.map +1 -1
- package/dist/modules/activities/wording.d.ts +12 -0
- package/dist/modules/activities/wording.d.ts.map +1 -1
- package/dist/modules/activities/wording.js +16 -0
- package/dist/modules/activities/wording.js.map +1 -1
- package/dist/modules/agent-tasks/catalog.d.ts.map +1 -1
- package/dist/modules/agent-tasks/catalog.js +62 -0
- package/dist/modules/agent-tasks/catalog.js.map +1 -1
- package/dist/modules/agent-tasks/resolve.d.ts.map +1 -1
- package/dist/modules/agent-tasks/resolve.js +42 -9
- package/dist/modules/agent-tasks/resolve.js.map +1 -1
- package/dist/modules/agent-tasks/routes.d.ts +2 -0
- package/dist/modules/agent-tasks/routes.d.ts.map +1 -1
- package/dist/modules/attachedRecords.d.ts +6 -1
- package/dist/modules/attachedRecords.d.ts.map +1 -1
- package/dist/modules/attachedRecords.js +18 -2
- package/dist/modules/attachedRecords.js.map +1 -1
- package/dist/modules/auth/preferences.d.ts +11 -1
- package/dist/modules/auth/preferences.d.ts.map +1 -1
- package/dist/modules/auth/preferences.js +11 -0
- package/dist/modules/auth/preferences.js.map +1 -1
- package/dist/modules/auth/routes.d.ts.map +1 -1
- package/dist/modules/auth/routes.js +18 -0
- package/dist/modules/auth/routes.js.map +1 -1
- package/dist/modules/auth/schema.d.ts +20 -0
- package/dist/modules/auth/schema.d.ts.map +1 -1
- package/dist/modules/auth/schema.js +11 -1
- package/dist/modules/auth/schema.js.map +1 -1
- package/dist/modules/auth/service.d.ts.map +1 -1
- package/dist/modules/auth/service.js +27 -3
- package/dist/modules/auth/service.js.map +1 -1
- package/dist/modules/companies/index.d.ts.map +1 -1
- package/dist/modules/companies/index.js +3 -1
- package/dist/modules/companies/index.js.map +1 -1
- package/dist/modules/companies/repository.d.ts +2 -0
- package/dist/modules/companies/repository.d.ts.map +1 -1
- package/dist/modules/companies/repository.js +1 -0
- package/dist/modules/companies/repository.js.map +1 -1
- package/dist/modules/companies/routes.d.ts +16 -0
- package/dist/modules/companies/routes.d.ts.map +1 -1
- package/dist/modules/companies/routes.js +18 -0
- package/dist/modules/companies/routes.js.map +1 -1
- package/dist/modules/companies/schema.d.ts +37 -0
- package/dist/modules/companies/schema.d.ts.map +1 -1
- package/dist/modules/companies/schema.js +10 -1
- package/dist/modules/companies/schema.js.map +1 -1
- package/dist/modules/companies/service.d.ts +6 -0
- package/dist/modules/companies/service.d.ts.map +1 -1
- package/dist/modules/companies/service.js +45 -11
- package/dist/modules/companies/service.js.map +1 -1
- package/dist/modules/consent-purposes/capabilities.d.ts +7 -0
- package/dist/modules/consent-purposes/capabilities.d.ts.map +1 -0
- package/dist/modules/consent-purposes/capabilities.js +10 -0
- package/dist/modules/consent-purposes/capabilities.js.map +1 -0
- package/dist/modules/consent-purposes/events.d.ts +38 -0
- package/dist/modules/consent-purposes/events.d.ts.map +1 -0
- package/dist/modules/consent-purposes/events.js +17 -0
- package/dist/modules/consent-purposes/events.js.map +1 -0
- package/dist/modules/consent-purposes/index.d.ts +13 -0
- package/dist/modules/consent-purposes/index.d.ts.map +1 -0
- package/dist/modules/consent-purposes/index.js +41 -0
- package/dist/modules/consent-purposes/index.js.map +1 -0
- package/dist/modules/consent-purposes/repository.d.ts +21 -0
- package/dist/modules/consent-purposes/repository.d.ts.map +1 -0
- package/dist/modules/consent-purposes/repository.js +98 -0
- package/dist/modules/consent-purposes/repository.js.map +1 -0
- package/dist/modules/consent-purposes/routes.d.ts +39 -0
- package/dist/modules/consent-purposes/routes.d.ts.map +1 -0
- package/dist/modules/consent-purposes/routes.js +79 -0
- package/dist/modules/consent-purposes/routes.js.map +1 -0
- package/dist/modules/consent-purposes/schema.d.ts +175 -0
- package/dist/modules/consent-purposes/schema.d.ts.map +1 -0
- package/dist/modules/consent-purposes/schema.js +35 -0
- package/dist/modules/consent-purposes/schema.js.map +1 -0
- package/dist/modules/consent-purposes/service.d.ts +50 -0
- package/dist/modules/consent-purposes/service.d.ts.map +1 -0
- package/dist/modules/consent-purposes/service.js +263 -0
- package/dist/modules/consent-purposes/service.js.map +1 -0
- package/dist/modules/consent-purposes/starters.d.ts +17 -0
- package/dist/modules/consent-purposes/starters.d.ts.map +1 -0
- package/dist/modules/consent-purposes/starters.js +15 -0
- package/dist/modules/consent-purposes/starters.js.map +1 -0
- package/dist/modules/consent-purposes/tools.d.ts +4 -0
- package/dist/modules/consent-purposes/tools.d.ts.map +1 -0
- package/dist/modules/consent-purposes/tools.js +29 -0
- package/dist/modules/consent-purposes/tools.js.map +1 -0
- package/dist/modules/core.d.ts.map +1 -1
- package/dist/modules/core.js +21 -0
- package/dist/modules/core.js.map +1 -1
- package/dist/modules/custom-fields/capabilities.d.ts +12 -0
- package/dist/modules/custom-fields/capabilities.d.ts.map +1 -0
- package/dist/modules/custom-fields/capabilities.js +15 -0
- package/dist/modules/custom-fields/capabilities.js.map +1 -0
- package/dist/modules/custom-fields/events.d.ts +49 -0
- package/dist/modules/custom-fields/events.d.ts.map +1 -0
- package/dist/modules/custom-fields/events.js +25 -0
- package/dist/modules/custom-fields/events.js.map +1 -0
- package/dist/modules/custom-fields/index.d.ts +19 -0
- package/dist/modules/custom-fields/index.d.ts.map +1 -0
- package/dist/modules/custom-fields/index.js +46 -0
- package/dist/modules/custom-fields/index.js.map +1 -0
- package/dist/modules/custom-fields/repository.d.ts +37 -0
- package/dist/modules/custom-fields/repository.d.ts.map +1 -0
- package/dist/modules/custom-fields/repository.js +144 -0
- package/dist/modules/custom-fields/repository.js.map +1 -0
- package/dist/modules/custom-fields/routes.d.ts +44 -0
- package/dist/modules/custom-fields/routes.d.ts.map +1 -0
- package/dist/modules/custom-fields/routes.js +103 -0
- package/dist/modules/custom-fields/routes.js.map +1 -0
- package/dist/modules/custom-fields/schema.d.ts +215 -0
- package/dist/modules/custom-fields/schema.d.ts.map +1 -0
- package/dist/modules/custom-fields/schema.js +43 -0
- package/dist/modules/custom-fields/schema.js.map +1 -0
- package/dist/modules/custom-fields/service.d.ts +57 -0
- package/dist/modules/custom-fields/service.d.ts.map +1 -0
- package/dist/modules/custom-fields/service.js +273 -0
- package/dist/modules/custom-fields/service.js.map +1 -0
- package/dist/modules/custom-fields/tools.d.ts +4 -0
- package/dist/modules/custom-fields/tools.d.ts.map +1 -0
- package/dist/modules/custom-fields/tools.js +38 -0
- package/dist/modules/custom-fields/tools.js.map +1 -0
- package/dist/modules/custom-fields/values.d.ts +49 -0
- package/dist/modules/custom-fields/values.d.ts.map +1 -0
- package/dist/modules/custom-fields/values.js +249 -0
- package/dist/modules/custom-fields/values.js.map +1 -0
- package/dist/modules/custom-fields/wire.d.ts +12 -0
- package/dist/modules/custom-fields/wire.d.ts.map +1 -0
- package/dist/modules/custom-fields/wire.js +30 -0
- package/dist/modules/custom-fields/wire.js.map +1 -0
- package/dist/modules/dashboard/repository.d.ts.map +1 -1
- package/dist/modules/dashboard/repository.js +4 -3
- package/dist/modules/dashboard/repository.js.map +1 -1
- package/dist/modules/deals/index.d.ts +2 -1
- package/dist/modules/deals/index.d.ts.map +1 -1
- package/dist/modules/deals/index.js +5 -2
- package/dist/modules/deals/index.js.map +1 -1
- package/dist/modules/deals/repository.d.ts +0 -16
- package/dist/modules/deals/repository.d.ts.map +1 -1
- package/dist/modules/deals/repository.js +6 -76
- package/dist/modules/deals/repository.js.map +1 -1
- package/dist/modules/deals/routes.d.ts +14 -0
- package/dist/modules/deals/routes.d.ts.map +1 -1
- package/dist/modules/deals/routes.js +7 -0
- package/dist/modules/deals/routes.js.map +1 -1
- package/dist/modules/deals/schema.d.ts +20 -42
- package/dist/modules/deals/schema.d.ts.map +1 -1
- package/dist/modules/deals/schema.js +6 -11
- package/dist/modules/deals/schema.js.map +1 -1
- package/dist/modules/deals/service.d.ts +13 -2
- package/dist/modules/deals/service.d.ts.map +1 -1
- package/dist/modules/deals/service.js +43 -20
- package/dist/modules/deals/service.js.map +1 -1
- package/dist/modules/decisions/repository.d.ts.map +1 -1
- package/dist/modules/decisions/repository.js +2 -0
- package/dist/modules/decisions/repository.js.map +1 -1
- package/dist/modules/decisions/routes.d.ts +1 -0
- package/dist/modules/decisions/routes.d.ts.map +1 -1
- package/dist/modules/email-domain-linker/index.d.ts +12 -0
- package/dist/modules/email-domain-linker/index.d.ts.map +1 -0
- package/dist/modules/email-domain-linker/index.js +34 -0
- package/dist/modules/email-domain-linker/index.js.map +1 -0
- package/dist/modules/email-domain-linker/routes.d.ts +14 -0
- package/dist/modules/email-domain-linker/routes.d.ts.map +1 -0
- package/dist/modules/email-domain-linker/routes.js +15 -0
- package/dist/modules/email-domain-linker/routes.js.map +1 -0
- package/dist/modules/email-domain-linker/service.d.ts +37 -0
- package/dist/modules/email-domain-linker/service.d.ts.map +1 -0
- package/dist/modules/email-domain-linker/service.js +63 -0
- package/dist/modules/email-domain-linker/service.js.map +1 -0
- package/dist/modules/enquiries/events.d.ts +44 -0
- package/dist/modules/enquiries/events.d.ts.map +1 -0
- package/dist/modules/enquiries/events.js +19 -0
- package/dist/modules/enquiries/events.js.map +1 -0
- package/dist/modules/enquiries/index.d.ts +13 -0
- package/dist/modules/enquiries/index.d.ts.map +1 -0
- package/dist/modules/enquiries/index.js +44 -0
- package/dist/modules/enquiries/index.js.map +1 -0
- package/dist/modules/enquiries/repository.d.ts +30 -0
- package/dist/modules/enquiries/repository.d.ts.map +1 -0
- package/dist/modules/enquiries/repository.js +94 -0
- package/dist/modules/enquiries/repository.js.map +1 -0
- package/dist/modules/enquiries/routes.d.ts +52 -0
- package/dist/modules/enquiries/routes.d.ts.map +1 -0
- package/dist/modules/enquiries/routes.js +127 -0
- package/dist/modules/enquiries/routes.js.map +1 -0
- package/dist/modules/enquiries/schema.d.ts +290 -0
- package/dist/modules/enquiries/schema.d.ts.map +1 -0
- package/dist/modules/enquiries/schema.js +52 -0
- package/dist/modules/enquiries/schema.js.map +1 -0
- package/dist/modules/enquiries/service.d.ts +85 -0
- package/dist/modules/enquiries/service.d.ts.map +1 -0
- package/dist/modules/enquiries/service.js +370 -0
- package/dist/modules/enquiries/service.js.map +1 -0
- package/dist/modules/enquiries/tools.d.ts +4 -0
- package/dist/modules/enquiries/tools.d.ts.map +1 -0
- package/dist/modules/enquiries/tools.js +50 -0
- package/dist/modules/enquiries/tools.js.map +1 -0
- package/dist/modules/eventCatalogs.d.ts +4 -0
- package/dist/modules/eventCatalogs.d.ts.map +1 -1
- package/dist/modules/eventCatalogs.js +4 -0
- package/dist/modules/eventCatalogs.js.map +1 -1
- package/dist/modules/forms/embed.d.ts +20 -6
- package/dist/modules/forms/embed.d.ts.map +1 -1
- package/dist/modules/forms/embed.js +359 -43
- package/dist/modules/forms/embed.js.map +1 -1
- package/dist/modules/forms/events.d.ts +20 -7
- package/dist/modules/forms/events.d.ts.map +1 -1
- package/dist/modules/forms/events.js +20 -2
- package/dist/modules/forms/events.js.map +1 -1
- package/dist/modules/forms/fields.d.ts +14 -1
- package/dist/modules/forms/fields.d.ts.map +1 -1
- package/dist/modules/forms/fields.js +87 -3
- package/dist/modules/forms/fields.js.map +1 -1
- package/dist/modules/forms/index.d.ts.map +1 -1
- package/dist/modules/forms/index.js +12 -1
- package/dist/modules/forms/index.js.map +1 -1
- package/dist/modules/forms/mapping.d.ts +62 -5
- package/dist/modules/forms/mapping.d.ts.map +1 -1
- package/dist/modules/forms/mapping.js +139 -5
- package/dist/modules/forms/mapping.js.map +1 -1
- package/dist/modules/forms/publicRoutes.d.ts.map +1 -1
- package/dist/modules/forms/publicRoutes.js +29 -1
- package/dist/modules/forms/publicRoutes.js.map +1 -1
- package/dist/modules/forms/repository.d.ts +31 -0
- package/dist/modules/forms/repository.d.ts.map +1 -1
- package/dist/modules/forms/repository.js +90 -1
- package/dist/modules/forms/repository.js.map +1 -1
- package/dist/modules/forms/routes.d.ts +83 -1
- package/dist/modules/forms/routes.d.ts.map +1 -1
- package/dist/modules/forms/routes.js +185 -2
- package/dist/modules/forms/routes.js.map +1 -1
- package/dist/modules/forms/schema.d.ts +672 -1
- package/dist/modules/forms/schema.d.ts.map +1 -1
- package/dist/modules/forms/schema.js +146 -3
- package/dist/modules/forms/schema.js.map +1 -1
- package/dist/modules/forms/service.d.ts +54 -1
- package/dist/modules/forms/service.d.ts.map +1 -1
- package/dist/modules/forms/service.js +338 -28
- package/dist/modules/forms/service.js.map +1 -1
- package/dist/modules/forms/submission.d.ts +15 -0
- package/dist/modules/forms/submission.d.ts.map +1 -1
- package/dist/modules/forms/submission.js +418 -40
- package/dist/modules/forms/submission.js.map +1 -1
- package/dist/modules/import-export/drafts.d.ts +10 -0
- package/dist/modules/import-export/drafts.d.ts.map +1 -1
- package/dist/modules/import-export/drafts.js +16 -2
- package/dist/modules/import-export/drafts.js.map +1 -1
- package/dist/modules/import-export/exportRows.d.ts +7 -4
- package/dist/modules/import-export/exportRows.d.ts.map +1 -1
- package/dist/modules/import-export/exportRows.js +20 -5
- package/dist/modules/import-export/exportRows.js.map +1 -1
- package/dist/modules/import-export/plan.d.ts +12 -1
- package/dist/modules/import-export/plan.d.ts.map +1 -1
- package/dist/modules/import-export/plan.js +29 -2
- package/dist/modules/import-export/plan.js.map +1 -1
- package/dist/modules/import-export/presets.d.ts.map +1 -1
- package/dist/modules/import-export/presets.js +10 -0
- package/dist/modules/import-export/presets.js.map +1 -1
- package/dist/modules/import-export/repository.d.ts +11 -1
- package/dist/modules/import-export/repository.d.ts.map +1 -1
- package/dist/modules/import-export/repository.js +42 -9
- package/dist/modules/import-export/repository.js.map +1 -1
- package/dist/modules/import-export/routes.d.ts.map +1 -1
- package/dist/modules/import-export/routes.js +4 -0
- package/dist/modules/import-export/routes.js.map +1 -1
- package/dist/modules/import-export/schema.d.ts +17 -0
- package/dist/modules/import-export/schema.d.ts.map +1 -1
- package/dist/modules/import-export/schema.js +11 -0
- package/dist/modules/import-export/schema.js.map +1 -1
- package/dist/modules/import-export/service.d.ts +6 -0
- package/dist/modules/import-export/service.d.ts.map +1 -1
- package/dist/modules/import-export/service.js +14 -2
- package/dist/modules/import-export/service.js.map +1 -1
- package/dist/modules/import-export/streams.d.ts.map +1 -1
- package/dist/modules/import-export/streams.js +3 -3
- package/dist/modules/import-export/streams.js.map +1 -1
- package/dist/modules/import-export/tools.d.ts.map +1 -1
- package/dist/modules/import-export/tools.js +8 -0
- package/dist/modules/import-export/tools.js.map +1 -1
- package/dist/modules/import-export/validation.d.ts.map +1 -1
- package/dist/modules/import-export/validation.js +22 -1
- package/dist/modules/import-export/validation.js.map +1 -1
- package/dist/modules/import-export/writes.d.ts.map +1 -1
- package/dist/modules/import-export/writes.js +37 -4
- package/dist/modules/import-export/writes.js.map +1 -1
- package/dist/modules/lists/events.d.ts +42 -0
- package/dist/modules/lists/events.d.ts.map +1 -0
- package/dist/modules/lists/events.js +16 -0
- package/dist/modules/lists/events.js.map +1 -0
- package/dist/modules/lists/index.d.ts +10 -0
- package/dist/modules/lists/index.d.ts.map +1 -0
- package/dist/modules/lists/index.js +35 -0
- package/dist/modules/lists/index.js.map +1 -0
- package/dist/modules/lists/repository.d.ts +80 -0
- package/dist/modules/lists/repository.d.ts.map +1 -0
- package/dist/modules/lists/repository.js +178 -0
- package/dist/modules/lists/repository.js.map +1 -0
- package/dist/modules/lists/routes.d.ts +55 -0
- package/dist/modules/lists/routes.d.ts.map +1 -0
- package/dist/modules/lists/routes.js +168 -0
- package/dist/modules/lists/routes.js.map +1 -0
- package/dist/modules/lists/schema.d.ts +281 -0
- package/dist/modules/lists/schema.d.ts.map +1 -0
- package/dist/modules/lists/schema.js +83 -0
- package/dist/modules/lists/schema.js.map +1 -0
- package/dist/modules/lists/service.d.ts +82 -0
- package/dist/modules/lists/service.d.ts.map +1 -0
- package/dist/modules/lists/service.js +262 -0
- package/dist/modules/lists/service.js.map +1 -0
- package/dist/modules/lists/tools.d.ts +4 -0
- package/dist/modules/lists/tools.d.ts.map +1 -0
- package/dist/modules/lists/tools.js +86 -0
- package/dist/modules/lists/tools.js.map +1 -0
- package/dist/modules/mcp/index.d.ts.map +1 -1
- package/dist/modules/mcp/index.js +5 -0
- package/dist/modules/mcp/index.js.map +1 -1
- package/dist/modules/notes/routes.d.ts +1 -0
- package/dist/modules/notes/routes.d.ts.map +1 -1
- package/dist/modules/opportunities/index.d.ts.map +1 -1
- package/dist/modules/opportunities/index.js +3 -1
- package/dist/modules/opportunities/index.js.map +1 -1
- package/dist/modules/opportunities/repository.d.ts +2 -0
- package/dist/modules/opportunities/repository.d.ts.map +1 -1
- package/dist/modules/opportunities/repository.js +4 -0
- package/dist/modules/opportunities/repository.js.map +1 -1
- package/dist/modules/opportunities/routes.d.ts +16 -0
- package/dist/modules/opportunities/routes.d.ts.map +1 -1
- package/dist/modules/opportunities/routes.js +13 -0
- package/dist/modules/opportunities/routes.js.map +1 -1
- package/dist/modules/opportunities/schema.d.ts +20 -0
- package/dist/modules/opportunities/schema.d.ts.map +1 -1
- package/dist/modules/opportunities/schema.js +6 -1
- package/dist/modules/opportunities/schema.js.map +1 -1
- package/dist/modules/opportunities/service.d.ts +20 -3
- package/dist/modules/opportunities/service.d.ts.map +1 -1
- package/dist/modules/opportunities/service.js +99 -18
- package/dist/modules/opportunities/service.js.map +1 -1
- package/dist/modules/opportunities/tools.d.ts.map +1 -1
- package/dist/modules/opportunities/tools.js +2 -0
- package/dist/modules/opportunities/tools.js.map +1 -1
- package/dist/modules/partnerships/index.d.ts.map +1 -1
- package/dist/modules/partnerships/index.js +3 -1
- package/dist/modules/partnerships/index.js.map +1 -1
- package/dist/modules/partnerships/repository.d.ts +0 -17
- package/dist/modules/partnerships/repository.d.ts.map +1 -1
- package/dist/modules/partnerships/repository.js +6 -82
- package/dist/modules/partnerships/repository.js.map +1 -1
- package/dist/modules/partnerships/routes.d.ts +14 -0
- package/dist/modules/partnerships/routes.d.ts.map +1 -1
- package/dist/modules/partnerships/routes.js +7 -0
- package/dist/modules/partnerships/routes.js.map +1 -1
- package/dist/modules/partnerships/schema.d.ts +20 -41
- package/dist/modules/partnerships/schema.d.ts.map +1 -1
- package/dist/modules/partnerships/schema.js +6 -10
- package/dist/modules/partnerships/schema.js.map +1 -1
- package/dist/modules/partnerships/service.d.ts +11 -1
- package/dist/modules/partnerships/service.d.ts.map +1 -1
- package/dist/modules/partnerships/service.js +43 -20
- package/dist/modules/partnerships/service.js.map +1 -1
- package/dist/modules/people/consentHydration.d.ts +26 -0
- package/dist/modules/people/consentHydration.d.ts.map +1 -0
- package/dist/modules/people/consentHydration.js +100 -0
- package/dist/modules/people/consentHydration.js.map +1 -0
- package/dist/modules/people/index.d.ts.map +1 -1
- package/dist/modules/people/index.js +3 -1
- package/dist/modules/people/index.js.map +1 -1
- package/dist/modules/people/personConsentWrites.d.ts +40 -0
- package/dist/modules/people/personConsentWrites.d.ts.map +1 -0
- package/dist/modules/people/personConsentWrites.js +98 -0
- package/dist/modules/people/personConsentWrites.js.map +1 -0
- package/dist/modules/people/repository.d.ts +11 -0
- package/dist/modules/people/repository.d.ts.map +1 -1
- package/dist/modules/people/repository.js +21 -1
- package/dist/modules/people/repository.js.map +1 -1
- package/dist/modules/people/routes.d.ts +57 -4
- package/dist/modules/people/routes.d.ts.map +1 -1
- package/dist/modules/people/routes.js +104 -5
- package/dist/modules/people/routes.js.map +1 -1
- package/dist/modules/people/schema.d.ts +366 -1
- package/dist/modules/people/schema.d.ts.map +1 -1
- package/dist/modules/people/schema.js +92 -2
- package/dist/modules/people/schema.js.map +1 -1
- package/dist/modules/people/service.d.ts +30 -1
- package/dist/modules/people/service.d.ts.map +1 -1
- package/dist/modules/people/service.js +131 -36
- package/dist/modules/people/service.js.map +1 -1
- package/dist/modules/people/tools.d.ts.map +1 -1
- package/dist/modules/people/tools.js +4 -1
- package/dist/modules/people/tools.js.map +1 -1
- package/dist/modules/personLinks.d.ts +79 -0
- package/dist/modules/personLinks.d.ts.map +1 -0
- package/dist/modules/personLinks.js +155 -0
- package/dist/modules/personLinks.js.map +1 -0
- package/dist/modules/pipelines/routes.d.ts +1 -0
- package/dist/modules/pipelines/routes.d.ts.map +1 -1
- package/dist/modules/plans/routes.d.ts +1 -0
- package/dist/modules/plans/routes.d.ts.map +1 -1
- package/dist/modules/positions/routes.d.ts.map +1 -1
- package/dist/modules/positions/routes.js +4 -2
- package/dist/modules/positions/routes.js.map +1 -1
- package/dist/modules/raises/index.d.ts.map +1 -1
- package/dist/modules/raises/index.js +3 -1
- package/dist/modules/raises/index.js.map +1 -1
- package/dist/modules/raises/repository.d.ts +0 -17
- package/dist/modules/raises/repository.d.ts.map +1 -1
- package/dist/modules/raises/repository.js +6 -77
- package/dist/modules/raises/repository.js.map +1 -1
- package/dist/modules/raises/routes.d.ts +14 -0
- package/dist/modules/raises/routes.d.ts.map +1 -1
- package/dist/modules/raises/routes.js +7 -0
- package/dist/modules/raises/routes.js.map +1 -1
- package/dist/modules/raises/schema.d.ts +20 -41
- package/dist/modules/raises/schema.d.ts.map +1 -1
- package/dist/modules/raises/schema.js +6 -10
- package/dist/modules/raises/schema.js.map +1 -1
- package/dist/modules/raises/service.d.ts +11 -1
- package/dist/modules/raises/service.d.ts.map +1 -1
- package/dist/modules/raises/service.js +41 -18
- package/dist/modules/raises/service.js.map +1 -1
- package/dist/modules/recordTargets.d.ts.map +1 -1
- package/dist/modules/recordTargets.js +2 -0
- package/dist/modules/recordTargets.js.map +1 -1
- package/dist/modules/references.d.ts +10 -0
- package/dist/modules/references.d.ts.map +1 -1
- package/dist/modules/references.js +27 -4
- package/dist/modules/references.js.map +1 -1
- package/dist/modules/sample-data/fixture.d.ts +160 -0
- package/dist/modules/sample-data/fixture.d.ts.map +1 -0
- package/dist/modules/sample-data/fixture.js +501 -0
- package/dist/modules/sample-data/fixture.js.map +1 -0
- package/dist/modules/sample-data/index.d.ts +11 -0
- package/dist/modules/sample-data/index.d.ts.map +1 -0
- package/dist/modules/sample-data/index.js +44 -0
- package/dist/modules/sample-data/index.js.map +1 -0
- package/dist/modules/sample-data/routes.d.ts +15 -0
- package/dist/modules/sample-data/routes.d.ts.map +1 -0
- package/dist/modules/sample-data/routes.js +25 -0
- package/dist/modules/sample-data/routes.js.map +1 -0
- package/dist/modules/sample-data/service.d.ts +39 -0
- package/dist/modules/sample-data/service.d.ts.map +1 -0
- package/dist/modules/sample-data/service.js +481 -0
- package/dist/modules/sample-data/service.js.map +1 -0
- package/dist/modules/sample-data/tools.d.ts +4 -0
- package/dist/modules/sample-data/tools.d.ts.map +1 -0
- package/dist/modules/sample-data/tools.js +22 -0
- package/dist/modules/sample-data/tools.js.map +1 -0
- package/dist/modules/search/index.d.ts +1 -1
- package/dist/modules/search/index.d.ts.map +1 -1
- package/dist/modules/search/index.js +2 -1
- package/dist/modules/search/index.js.map +1 -1
- package/dist/modules/search/repository.d.ts +1 -0
- package/dist/modules/search/repository.d.ts.map +1 -1
- package/dist/modules/search/repository.js +23 -0
- package/dist/modules/search/repository.js.map +1 -1
- package/dist/modules/search/service.d.ts +3 -3
- package/dist/modules/search/service.d.ts.map +1 -1
- package/dist/modules/search/service.js +5 -4
- package/dist/modules/search/service.js.map +1 -1
- package/dist/modules/smtp-email/index.d.ts +1 -0
- package/dist/modules/smtp-email/index.d.ts.map +1 -1
- package/dist/modules/smtp-email/index.js +1 -0
- package/dist/modules/smtp-email/index.js.map +1 -1
- package/dist/modules/stagedRecords.d.ts +3 -3
- package/dist/modules/stagedRecords.d.ts.map +1 -1
- package/dist/modules/stagedRecords.js +9 -0
- package/dist/modules/stagedRecords.js.map +1 -1
- package/dist/modules/webhooks/payloads.d.ts.map +1 -1
- package/dist/modules/webhooks/payloads.js +15 -2
- package/dist/modules/webhooks/payloads.js.map +1 -1
- package/dist/modules/workspace/repository.d.ts +2 -0
- package/dist/modules/workspace/repository.d.ts.map +1 -1
- package/dist/modules/workspace/repository.js +7 -0
- package/dist/modules/workspace/repository.js.map +1 -1
- package/dist/modules/workspace/service.d.ts.map +1 -1
- package/dist/modules/workspace/service.js +20 -1
- package/dist/modules/workspace/service.js.map +1 -1
- package/dist/modules/workspace/starters.d.ts.map +1 -1
- package/dist/modules/workspace/starters.js +5 -0
- package/dist/modules/workspace/starters.js.map +1 -1
- package/dist/runtime/events.d.ts +1 -1
- package/dist/runtime/events.d.ts.map +1 -1
- package/dist/runtime/events.js +1 -0
- package/dist/runtime/events.js.map +1 -1
- package/dist/schema/index.d.ts +4 -0
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +4 -0
- package/dist/schema/index.js.map +1 -1
- package/dist/testing/database.d.ts +5 -1
- package/dist/testing/database.d.ts.map +1 -1
- package/dist/testing/database.js +81 -10
- package/dist/testing/database.js.map +1 -1
- package/migrations/0021_certain_maggott.sql +30 -0
- package/migrations/0022_stormy_manta.sql +1 -0
- package/migrations/0023_funny_maddog.sql +1 -0
- package/migrations/0024_third_king_cobra.sql +46 -0
- package/migrations/0025_worthless_chimera.sql +3 -0
- package/migrations/0026_late_aqueduct.sql +46 -0
- package/migrations/0027_brainy_silver_sable.sql +3 -0
- package/migrations/0028_freezing_scrambler.sql +19 -0
- package/migrations/0029_custom_fields.sql +26 -0
- package/migrations/0030_enquiries.sql +79 -0
- package/migrations/0031_consent.sql +45 -0
- package/migrations/0032_form_field_statement.sql +1 -0
- package/migrations/0033_form_field_consent_purpose_ids.sql +5 -0
- package/migrations/0034_drop_form_field_consent_purpose_id.sql +1 -0
- package/migrations/0035_form_field_consent_purpose_labels.sql +1 -0
- package/migrations/0036_form_field_notice_type.sql +2 -0
- package/migrations/meta/0021_snapshot.json +5389 -0
- package/migrations/meta/0022_snapshot.json +5396 -0
- package/migrations/meta/0023_snapshot.json +5403 -0
- package/migrations/meta/0024_snapshot.json +5516 -0
- package/migrations/meta/0025_snapshot.json +5336 -0
- package/migrations/meta/0026_snapshot.json +5710 -0
- package/migrations/meta/0027_snapshot.json +5716 -0
- package/migrations/meta/0028_snapshot.json +5740 -0
- package/migrations/meta/0029_snapshot.json +5935 -0
- package/migrations/meta/0030_snapshot.json +6245 -0
- package/migrations/meta/0031_snapshot.json +6572 -0
- package/migrations/meta/0032_snapshot.json +6578 -0
- package/migrations/meta/0033_snapshot.json +6572 -0
- package/migrations/meta/0034_snapshot.json +6566 -0
- package/migrations/meta/0035_snapshot.json +6573 -0
- package/migrations/meta/0036_snapshot.json +6573 -0
- package/migrations/meta/_journal.json +112 -0
- package/package.json +3 -2
- package/src/lib/consumerEmailDomains.ts +62 -0
- package/src/lib/email.ts +7 -0
- package/src/lib/emailContent.ts +91 -0
- package/src/lib/emailDomainAutoLink.ts +165 -0
- package/src/lib/ids.ts +13 -0
- package/src/modules/activities/repository.ts +22 -23
- package/src/modules/activities/wording.ts +18 -0
- package/src/modules/agent-tasks/catalog.ts +63 -0
- package/src/modules/agent-tasks/resolve.ts +64 -24
- package/src/modules/attachedRecords.ts +37 -3
- package/src/modules/auth/preferences.ts +13 -1
- package/src/modules/auth/routes.ts +22 -0
- package/src/modules/auth/schema.ts +12 -2
- package/src/modules/auth/service.ts +37 -3
- package/src/modules/companies/index.ts +3 -1
- package/src/modules/companies/repository.ts +3 -0
- package/src/modules/companies/routes.ts +20 -0
- package/src/modules/companies/schema.ts +11 -1
- package/src/modules/companies/service.ts +72 -12
- package/src/modules/consent-purposes/capabilities.ts +12 -0
- package/src/modules/consent-purposes/events.ts +38 -0
- package/src/modules/consent-purposes/index.ts +48 -0
- package/src/modules/consent-purposes/repository.ts +163 -0
- package/src/modules/consent-purposes/routes.ts +122 -0
- package/src/modules/consent-purposes/schema.ts +46 -0
- package/src/modules/consent-purposes/service.ts +423 -0
- package/src/modules/consent-purposes/starters.ts +32 -0
- package/src/modules/consent-purposes/tools.ts +44 -0
- package/src/modules/core.ts +21 -0
- package/src/modules/custom-fields/capabilities.ts +17 -0
- package/src/modules/custom-fields/events.ts +51 -0
- package/src/modules/custom-fields/index.ts +61 -0
- package/src/modules/custom-fields/repository.ts +225 -0
- package/src/modules/custom-fields/routes.ts +155 -0
- package/src/modules/custom-fields/schema.ts +61 -0
- package/src/modules/custom-fields/service.ts +439 -0
- package/src/modules/custom-fields/tools.ts +53 -0
- package/src/modules/custom-fields/values.ts +352 -0
- package/src/modules/custom-fields/wire.ts +32 -0
- package/src/modules/dashboard/repository.ts +4 -3
- package/src/modules/deals/index.ts +5 -2
- package/src/modules/deals/repository.ts +6 -106
- package/src/modules/deals/routes.ts +7 -0
- package/src/modules/deals/schema.ts +7 -15
- package/src/modules/deals/service.ts +92 -23
- package/src/modules/decisions/repository.ts +2 -0
- package/src/modules/email-domain-linker/index.ts +40 -0
- package/src/modules/email-domain-linker/routes.ts +40 -0
- package/src/modules/email-domain-linker/service.ts +122 -0
- package/src/modules/enquiries/events.ts +45 -0
- package/src/modules/enquiries/index.ts +50 -0
- package/src/modules/enquiries/repository.ts +164 -0
- package/src/modules/enquiries/routes.ts +172 -0
- package/src/modules/enquiries/schema.ts +59 -0
- package/src/modules/enquiries/service.ts +644 -0
- package/src/modules/enquiries/tools.ts +66 -0
- package/src/modules/eventCatalogs.ts +4 -0
- package/src/modules/forms/embed.ts +391 -44
- package/src/modules/forms/events.ts +30 -2
- package/src/modules/forms/fields.ts +102 -2
- package/src/modules/forms/index.ts +12 -1
- package/src/modules/forms/mapping.ts +183 -6
- package/src/modules/forms/publicRoutes.ts +43 -1
- package/src/modules/forms/repository.ts +162 -1
- package/src/modules/forms/routes.ts +212 -2
- package/src/modules/forms/schema.ts +166 -4
- package/src/modules/forms/service.ts +565 -41
- package/src/modules/forms/submission.ts +718 -44
- package/src/modules/import-export/drafts.ts +20 -1
- package/src/modules/import-export/exportRows.ts +21 -5
- package/src/modules/import-export/plan.ts +47 -2
- package/src/modules/import-export/presets.ts +10 -0
- package/src/modules/import-export/repository.ts +73 -8
- package/src/modules/import-export/routes.ts +4 -0
- package/src/modules/import-export/schema.ts +11 -0
- package/src/modules/import-export/service.ts +28 -2
- package/src/modules/import-export/streams.ts +3 -1
- package/src/modules/import-export/tools.ts +10 -0
- package/src/modules/import-export/validation.ts +28 -0
- package/src/modules/import-export/writes.ts +70 -5
- package/src/modules/lists/events.ts +41 -0
- package/src/modules/lists/index.ts +41 -0
- package/src/modules/lists/repository.ts +343 -0
- package/src/modules/lists/routes.ts +255 -0
- package/src/modules/lists/schema.ts +95 -0
- package/src/modules/lists/service.ts +505 -0
- package/src/modules/lists/tools.ts +128 -0
- package/src/modules/mcp/index.ts +5 -0
- package/src/modules/opportunities/index.ts +3 -1
- package/src/modules/opportunities/repository.ts +11 -0
- package/src/modules/opportunities/routes.ts +13 -0
- package/src/modules/opportunities/schema.ts +7 -1
- package/src/modules/opportunities/service.ts +188 -22
- package/src/modules/opportunities/tools.ts +2 -0
- package/src/modules/partnerships/index.ts +3 -1
- package/src/modules/partnerships/repository.ts +6 -117
- package/src/modules/partnerships/routes.ts +7 -0
- package/src/modules/partnerships/schema.ts +7 -14
- package/src/modules/partnerships/service.ts +93 -22
- package/src/modules/people/consentHydration.ts +167 -0
- package/src/modules/people/index.ts +3 -1
- package/src/modules/people/personConsentWrites.ts +177 -0
- package/src/modules/people/repository.ts +31 -0
- package/src/modules/people/routes.ts +127 -18
- package/src/modules/people/schema.ts +109 -3
- package/src/modules/people/service.ts +205 -39
- package/src/modules/people/tools.ts +5 -1
- package/src/modules/personLinks.ts +278 -0
- package/src/modules/positions/routes.ts +4 -2
- package/src/modules/raises/index.ts +3 -1
- package/src/modules/raises/repository.ts +6 -107
- package/src/modules/raises/routes.ts +7 -0
- package/src/modules/raises/schema.ts +7 -14
- package/src/modules/raises/service.ts +91 -20
- package/src/modules/recordTargets.ts +2 -0
- package/src/modules/references.ts +43 -4
- package/src/modules/sample-data/fixture.ts +690 -0
- package/src/modules/sample-data/index.ts +51 -0
- package/src/modules/sample-data/routes.ts +50 -0
- package/src/modules/sample-data/service.ts +679 -0
- package/src/modules/sample-data/tools.ts +32 -0
- package/src/modules/search/index.ts +2 -1
- package/src/modules/search/repository.ts +33 -1
- package/src/modules/search/service.ts +7 -5
- package/src/modules/smtp-email/index.ts +8 -1
- package/src/modules/stagedRecords.ts +18 -3
- package/src/modules/webhooks/payloads.ts +20 -2
- package/src/modules/workspace/repository.ts +12 -0
- package/src/modules/workspace/service.ts +27 -1
- package/src/modules/workspace/starters.ts +5 -0
- package/src/runtime/events.ts +1 -0
- package/src/schema/index.ts +4 -0
- package/src/testing/database.ts +97 -11
package/dist/modules/core.js
CHANGED
|
@@ -4,13 +4,18 @@ import { createAgentTasksModule } from './agent-tasks/index.js';
|
|
|
4
4
|
import { createApiKeysModule } from './api-keys/index.js';
|
|
5
5
|
import { createAuthModule } from './auth/index.js';
|
|
6
6
|
import { createCompaniesModule } from './companies/index.js';
|
|
7
|
+
import { createConsentPurposesModule } from './consent-purposes/index.js';
|
|
8
|
+
import { createCustomFieldsModule } from './custom-fields/index.js';
|
|
7
9
|
import { createDashboardModule } from './dashboard/index.js';
|
|
8
10
|
import { createDealsModule } from './deals/index.js';
|
|
9
11
|
import { createDecisionsModule } from './decisions/index.js';
|
|
12
|
+
import { createEmailDomainLinkerModule } from './email-domain-linker/index.js';
|
|
13
|
+
import { createEnquiriesModule } from './enquiries/index.js';
|
|
10
14
|
import { createFormsModule } from './forms/index.js';
|
|
11
15
|
import { createHandbookModule } from './handbook/index.js';
|
|
12
16
|
import { createHiringModule } from './hiring/index.js';
|
|
13
17
|
import { createImportExportModule } from './import-export/index.js';
|
|
18
|
+
import { createListsModule } from './lists/index.js';
|
|
14
19
|
import { createNotesModule } from './notes/index.js';
|
|
15
20
|
import { createOpportunitiesModule } from './opportunities/index.js';
|
|
16
21
|
import { createPartnershipsModule } from './partnerships/index.js';
|
|
@@ -19,6 +24,7 @@ import { createPipelinesModule } from './pipelines/index.js';
|
|
|
19
24
|
import { createPlansModule } from './plans/index.js';
|
|
20
25
|
import { createPositionsModule } from './positions/index.js';
|
|
21
26
|
import { createRaisesModule } from './raises/index.js';
|
|
27
|
+
import { createSampleDataModule } from './sample-data/index.js';
|
|
22
28
|
import { createSearchModule } from './search/index.js';
|
|
23
29
|
import { createSmtpEmailModule } from './smtp-email/index.js';
|
|
24
30
|
import { createWebhooksModule } from './webhooks/index.js';
|
|
@@ -40,6 +46,12 @@ export const coreModules = [
|
|
|
40
46
|
createAuthModule(coreMigrationsDirectory),
|
|
41
47
|
createWorkspaceModule(coreMigrationsDirectory),
|
|
42
48
|
createApiKeysModule(coreMigrationsDirectory),
|
|
49
|
+
// Structural. Registers before People, Forms, Lists, and Import-Export so
|
|
50
|
+
// its table is defined when their fks and per-person consent join reach it.
|
|
51
|
+
createConsentPurposesModule(coreMigrationsDirectory),
|
|
52
|
+
// Structural. Registers before the six object modules so the validator
|
|
53
|
+
// factory it exports is present when they inject it into their services.
|
|
54
|
+
createCustomFieldsModule(coreMigrationsDirectory),
|
|
43
55
|
createPeopleModule(coreMigrationsDirectory),
|
|
44
56
|
createCompaniesModule(coreMigrationsDirectory),
|
|
45
57
|
createPositionsModule(coreMigrationsDirectory),
|
|
@@ -47,12 +59,14 @@ export const coreModules = [
|
|
|
47
59
|
createNotesModule(coreMigrationsDirectory),
|
|
48
60
|
createPipelinesModule(coreMigrationsDirectory),
|
|
49
61
|
createDealsModule(coreMigrationsDirectory),
|
|
62
|
+
createEnquiriesModule(coreMigrationsDirectory),
|
|
50
63
|
createOpportunitiesModule(coreMigrationsDirectory),
|
|
51
64
|
createPartnershipsModule(coreMigrationsDirectory),
|
|
52
65
|
createRaisesModule(coreMigrationsDirectory),
|
|
53
66
|
createHiringModule(coreMigrationsDirectory),
|
|
54
67
|
createPlansModule(coreMigrationsDirectory),
|
|
55
68
|
createDecisionsModule(coreMigrationsDirectory),
|
|
69
|
+
createListsModule(coreMigrationsDirectory),
|
|
56
70
|
createHandbookModule(coreMigrationsDirectory),
|
|
57
71
|
// Neither of these takes a migrations directory: they own no tables and read
|
|
58
72
|
// other modules'.
|
|
@@ -62,6 +76,13 @@ export const coreModules = [
|
|
|
62
76
|
createImportExportModule(coreMigrationsDirectory),
|
|
63
77
|
createAgentTasksModule(coreMigrationsDirectory),
|
|
64
78
|
createWebhooksModule(coreMigrationsDirectory),
|
|
79
|
+
// Owns no tables. One-shot fixture install for a new workspace, called from
|
|
80
|
+
// the setup wizard's checkbox and the admin data page.
|
|
81
|
+
createSampleDataModule(),
|
|
82
|
+
// Owns no tables. Admin action that reruns the email-domain sweep across
|
|
83
|
+
// every workspace Company — backfills links for data that predates the
|
|
84
|
+
// auto-linker, or after a bulk import.
|
|
85
|
+
createEmailDomainLinkerModule(),
|
|
65
86
|
// Owns no tables. Registers a `'smtp'` provider with core's email runtime;
|
|
66
87
|
// the factory only runs if the assembly's `email.provider` picks it.
|
|
67
88
|
createSmtpEmailModule(),
|
package/dist/modules/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/modules/core.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/modules/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAGxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAA;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAA;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAE5D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,kBAAkB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAElG,MAAM,CAAC,MAAM,WAAW,GAA4B;IAClD,gBAAgB,CAAC,uBAAuB,CAAC;IACzC,qBAAqB,CAAC,uBAAuB,CAAC;IAC9C,mBAAmB,CAAC,uBAAuB,CAAC;IAC5C,0EAA0E;IAC1E,4EAA4E;IAC5E,2BAA2B,CAAC,uBAAuB,CAAC;IACpD,uEAAuE;IACvE,yEAAyE;IACzE,wBAAwB,CAAC,uBAAuB,CAAC;IACjD,kBAAkB,CAAC,uBAAuB,CAAC;IAC3C,qBAAqB,CAAC,uBAAuB,CAAC;IAC9C,qBAAqB,CAAC,uBAAuB,CAAC;IAC9C,sBAAsB,CAAC,uBAAuB,CAAC;IAC/C,iBAAiB,CAAC,uBAAuB,CAAC;IAC1C,qBAAqB,CAAC,uBAAuB,CAAC;IAC9C,iBAAiB,CAAC,uBAAuB,CAAC;IAC1C,qBAAqB,CAAC,uBAAuB,CAAC;IAC9C,yBAAyB,CAAC,uBAAuB,CAAC;IAClD,wBAAwB,CAAC,uBAAuB,CAAC;IACjD,kBAAkB,CAAC,uBAAuB,CAAC;IAC3C,kBAAkB,CAAC,uBAAuB,CAAC;IAC3C,iBAAiB,CAAC,uBAAuB,CAAC;IAC1C,qBAAqB,CAAC,uBAAuB,CAAC;IAC9C,iBAAiB,CAAC,uBAAuB,CAAC;IAC1C,oBAAoB,CAAC,uBAAuB,CAAC;IAC7C,6EAA6E;IAC7E,kBAAkB;IAClB,kBAAkB,EAAE;IACpB,qBAAqB,EAAE;IACvB,iBAAiB,CAAC,uBAAuB,CAAC;IAC1C,wBAAwB,CAAC,uBAAuB,CAAC;IACjD,sBAAsB,CAAC,uBAAuB,CAAC;IAC/C,oBAAoB,CAAC,uBAAuB,CAAC;IAC7C,4EAA4E;IAC5E,uDAAuD;IACvD,sBAAsB,EAAE;IACxB,yEAAyE;IACzE,uEAAuE;IACvE,uCAAuC;IACvC,6BAA6B,EAAE;IAC/B,2EAA2E;IAC3E,qEAAqE;IACrE,qBAAqB,EAAE;CACxB,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { LimitCapability } from '../../runtime/entitlements.ts';
|
|
2
|
+
/**
|
|
3
|
+
* How many custom-field definitions one workspace may have across every object
|
|
4
|
+
* type. Open source answers unlimited; the cloud can gate it later without a
|
|
5
|
+
* core change.
|
|
6
|
+
*
|
|
7
|
+
* The workspace-wide count is what an entitlement caps. A per-(workspace,
|
|
8
|
+
* object_type) ceiling is enforced separately in the service as a hard cap that
|
|
9
|
+
* protects the database from a runaway create loop.
|
|
10
|
+
*/
|
|
11
|
+
export declare const CUSTOM_FIELDS_LIMIT: LimitCapability;
|
|
12
|
+
//# sourceMappingURL=capabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../src/modules/custom-fields/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAEpE;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,EAAE,eAKjC,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How many custom-field definitions one workspace may have across every object
|
|
3
|
+
* type. Open source answers unlimited; the cloud can gate it later without a
|
|
4
|
+
* core change.
|
|
5
|
+
*
|
|
6
|
+
* The workspace-wide count is what an entitlement caps. A per-(workspace,
|
|
7
|
+
* object_type) ceiling is enforced separately in the service as a hard cap that
|
|
8
|
+
* protects the database from a runaway create loop.
|
|
9
|
+
*/
|
|
10
|
+
export const CUSTOM_FIELDS_LIMIT = {
|
|
11
|
+
name: 'custom_fields.limit',
|
|
12
|
+
kind: 'limit',
|
|
13
|
+
description: 'How many custom-field definitions one workspace may have across every object type. Unlimited in open source.',
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/modules/custom-fields/capabilities.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAoB;IAClD,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,OAAO;IACb,WAAW,EACT,8GAA8G;CACjH,CAAA"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Domain events published by the custom-fields module.
|
|
4
|
+
*
|
|
5
|
+
* `target` is the definition. The value-side changes ride each object module's
|
|
6
|
+
* own `.updated` event, with per-key entries in `changed` shaped as
|
|
7
|
+
* `customFields.<key>`. The webhooks bridge does not translate any of these —
|
|
8
|
+
* `custom_fields.field` is not in `RECORD_OBJECT_TYPES`, and there is no
|
|
9
|
+
* `record.*` wire event for a definition CRUD, so the four-event wire catalog
|
|
10
|
+
* stays unchanged.
|
|
11
|
+
*/
|
|
12
|
+
export declare const customFieldsEvents: {
|
|
13
|
+
'custom_fields.field.created': z.ZodObject<{
|
|
14
|
+
objectType: z.ZodString;
|
|
15
|
+
key: z.ZodString;
|
|
16
|
+
}, z.core.$strip>;
|
|
17
|
+
'custom_fields.field.updated': z.ZodObject<{
|
|
18
|
+
objectType: z.ZodString;
|
|
19
|
+
key: z.ZodString;
|
|
20
|
+
changed: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
21
|
+
}, z.core.$strip>;
|
|
22
|
+
'custom_fields.field.deleted': z.ZodObject<{
|
|
23
|
+
objectType: z.ZodString;
|
|
24
|
+
key: z.ZodString;
|
|
25
|
+
strippedRecordCount: z.ZodNumber;
|
|
26
|
+
}, z.core.$strip>;
|
|
27
|
+
};
|
|
28
|
+
export interface CustomFieldCreatedData {
|
|
29
|
+
readonly objectType: string;
|
|
30
|
+
readonly key: string;
|
|
31
|
+
}
|
|
32
|
+
export interface CustomFieldUpdatedData {
|
|
33
|
+
readonly objectType: string;
|
|
34
|
+
readonly key: string;
|
|
35
|
+
readonly changed: readonly string[];
|
|
36
|
+
}
|
|
37
|
+
export interface CustomFieldDeletedData {
|
|
38
|
+
readonly objectType: string;
|
|
39
|
+
readonly key: string;
|
|
40
|
+
readonly strippedRecordCount: number;
|
|
41
|
+
}
|
|
42
|
+
declare module '../../runtime/events.ts' {
|
|
43
|
+
interface KelpieEventMap {
|
|
44
|
+
'custom_fields.field.created': CustomFieldCreatedData;
|
|
45
|
+
'custom_fields.field.updated': CustomFieldUpdatedData;
|
|
46
|
+
'custom_fields.field.deleted': CustomFieldDeletedData;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/modules/custom-fields/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB;;;;;;;;;GASG;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;CAYD,CAAA;AAE9B,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB;AACD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AACD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;CACrC;AAED,OAAO,QAAQ,yBAAyB,CAAC;IACvC,UAAU,cAAc;QACtB,6BAA6B,EAAE,sBAAsB,CAAA;QACrD,6BAA6B,EAAE,sBAAsB,CAAA;QACrD,6BAA6B,EAAE,sBAAsB,CAAA;KACtD;CACF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Domain events published by the custom-fields module.
|
|
4
|
+
*
|
|
5
|
+
* `target` is the definition. The value-side changes ride each object module's
|
|
6
|
+
* own `.updated` event, with per-key entries in `changed` shaped as
|
|
7
|
+
* `customFields.<key>`. The webhooks bridge does not translate any of these —
|
|
8
|
+
* `custom_fields.field` is not in `RECORD_OBJECT_TYPES`, and there is no
|
|
9
|
+
* `record.*` wire event for a definition CRUD, so the four-event wire catalog
|
|
10
|
+
* stays unchanged.
|
|
11
|
+
*/
|
|
12
|
+
export const customFieldsEvents = {
|
|
13
|
+
'custom_fields.field.created': z.object({ objectType: z.string(), key: z.string() }),
|
|
14
|
+
'custom_fields.field.updated': z.object({
|
|
15
|
+
objectType: z.string(),
|
|
16
|
+
key: z.string(),
|
|
17
|
+
changed: z.array(z.string()).readonly(),
|
|
18
|
+
}),
|
|
19
|
+
'custom_fields.field.deleted': z.object({
|
|
20
|
+
objectType: z.string(),
|
|
21
|
+
key: z.string(),
|
|
22
|
+
strippedRecordCount: z.number().int(),
|
|
23
|
+
}),
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/modules/custom-fields/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB;;;;;;;;;GASG;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,6BAA6B,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IACpF,6BAA6B,EAAE,CAAC,CAAC,MAAM,CAAC;QACtC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;QACtB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;QACf,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KACxC,CAAC;IACF,6BAA6B,EAAE,CAAC,CAAC,MAAM,CAAC;QACtC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;QACtB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;QACf,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;KACtC,CAAC;CAC0B,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { KelpieModule } from '../../runtime/module.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Custom fields: workspace-defined attributes for the six taggable record
|
|
4
|
+
* types. Structural because records carry values keyed by definition key, so a
|
|
5
|
+
* disabled module would leave the values on records with no way to read them.
|
|
6
|
+
*
|
|
7
|
+
* Requires the six object modules only for schema visibility: the strip-on-
|
|
8
|
+
* delete pass reads their tables through `stripKeyFromRecords`, and drizzle-kit
|
|
9
|
+
* needs the barrel to see them registered before this module's schema loads.
|
|
10
|
+
* Runtime dependency runs the other way — the six modules `requires` this one
|
|
11
|
+
* so the validator is present when they register.
|
|
12
|
+
*
|
|
13
|
+
* Exports the values factory so the six object modules can inject it into
|
|
14
|
+
* their services (`createCustomFieldValues` is the cross-module seam here).
|
|
15
|
+
*/
|
|
16
|
+
export { createCustomFieldValues, } from './values.ts';
|
|
17
|
+
export type { CustomFieldValuesValidator, CustomFieldsMerge, StoredCustomFieldValue, } from './values.ts';
|
|
18
|
+
export declare function createCustomFieldsModule(migrationsDirectory: string): KelpieModule;
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/custom-fields/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAQ3D;;;;;;;;;;;;;GAaG;AACH,OAAO,EACL,uBAAuB,GACxB,MAAM,aAAa,CAAA;AACpB,YAAY,EACV,0BAA0B,EAC1B,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,aAAa,CAAA;AAEpB,wBAAgB,wBAAwB,CAAC,mBAAmB,EAAE,MAAM,GAAG,YAAY,CA6BlF"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { CUSTOM_FIELDS_LIMIT } from './capabilities.js';
|
|
2
|
+
import { customFieldsEvents } from './events.js';
|
|
3
|
+
import { mountCustomFieldsRoutes } from './routes.js';
|
|
4
|
+
import * as schema from './schema.js';
|
|
5
|
+
import { createCustomFieldDefinitionsService } from './service.js';
|
|
6
|
+
import { registerCustomFieldsTools } from './tools.js';
|
|
7
|
+
/**
|
|
8
|
+
* Custom fields: workspace-defined attributes for the six taggable record
|
|
9
|
+
* types. Structural because records carry values keyed by definition key, so a
|
|
10
|
+
* disabled module would leave the values on records with no way to read them.
|
|
11
|
+
*
|
|
12
|
+
* Requires the six object modules only for schema visibility: the strip-on-
|
|
13
|
+
* delete pass reads their tables through `stripKeyFromRecords`, and drizzle-kit
|
|
14
|
+
* needs the barrel to see them registered before this module's schema loads.
|
|
15
|
+
* Runtime dependency runs the other way — the six modules `requires` this one
|
|
16
|
+
* so the validator is present when they register.
|
|
17
|
+
*
|
|
18
|
+
* Exports the values factory so the six object modules can inject it into
|
|
19
|
+
* their services (`createCustomFieldValues` is the cross-module seam here).
|
|
20
|
+
*/
|
|
21
|
+
export { createCustomFieldValues, } from './values.js';
|
|
22
|
+
export function createCustomFieldsModule(migrationsDirectory) {
|
|
23
|
+
return {
|
|
24
|
+
id: 'custom-fields',
|
|
25
|
+
requires: ['workspace'],
|
|
26
|
+
structural: true,
|
|
27
|
+
events: customFieldsEvents,
|
|
28
|
+
register(context) {
|
|
29
|
+
context.entitlements.declare(CUSTOM_FIELDS_LIMIT);
|
|
30
|
+
const service = createCustomFieldDefinitionsService({
|
|
31
|
+
db: context.db,
|
|
32
|
+
transaction: context.transaction,
|
|
33
|
+
createId: context.createId,
|
|
34
|
+
now: context.now,
|
|
35
|
+
entitlements: context.entitlements,
|
|
36
|
+
});
|
|
37
|
+
context.schema(schema, migrationsDirectory);
|
|
38
|
+
context.routes((router) => {
|
|
39
|
+
mountCustomFieldsRoutes(router, { db: context.db, now: context.now, service });
|
|
40
|
+
});
|
|
41
|
+
registerCustomFieldsTools(context.mcp, service);
|
|
42
|
+
return Promise.resolve();
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/custom-fields/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,mCAAmC,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAEtD;;;;;;;;;;;;;GAaG;AACH,OAAO,EACL,uBAAuB,GACxB,MAAM,aAAa,CAAA;AAOpB,MAAM,UAAU,wBAAwB,CAAC,mBAA2B;IAClE,OAAO;QACL,EAAE,EAAE,eAAe;QACnB,QAAQ,EAAE,CAAC,WAAW,CAAC;QACvB,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,kBAAkB;QAE1B,QAAQ,CAAC,OAAO;YACd,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;YAEjD,MAAM,OAAO,GAAG,mCAAmC,CAAC;gBAClD,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,YAAY,EAAE,OAAO,CAAC,YAAY;aACnC,CAAC,CAAA;YAEF,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;YAE3C,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;gBACxB,uBAAuB,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;YAChF,CAAC,CAAC,CAAA;YAEF,yBAAyB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;YAE/C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QAC1B,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { ListWindow, SortableFields } from '../../lib/pagination.ts';
|
|
2
|
+
import type { Queryable } from '../../runtime/transaction.ts';
|
|
3
|
+
import type { CustomFieldObjectType } from './schema.ts';
|
|
4
|
+
import { customFieldDefinitions } from './schema.ts';
|
|
5
|
+
export type CustomFieldDefinitionRecord = typeof customFieldDefinitions.$inferSelect;
|
|
6
|
+
export type CustomFieldDefinitionColumns = typeof customFieldDefinitions.$inferInsert;
|
|
7
|
+
export declare const CUSTOM_FIELD_DEFINITION_SORTS: SortableFields<CustomFieldDefinitionRecord>;
|
|
8
|
+
export declare const DEFAULT_CUSTOM_FIELD_DEFINITION_SORT = "sort_order";
|
|
9
|
+
export interface CustomFieldDefinitionFilters {
|
|
10
|
+
readonly term?: string | undefined;
|
|
11
|
+
readonly objectType?: CustomFieldObjectType | undefined;
|
|
12
|
+
}
|
|
13
|
+
export declare function listDefinitions(db: Queryable, workspaceId: string, filters: CustomFieldDefinitionFilters, window: ListWindow<CustomFieldDefinitionRecord>): Promise<CustomFieldDefinitionRecord[]>;
|
|
14
|
+
export declare function findDefinition(db: Queryable, workspaceId: string, id: string): Promise<CustomFieldDefinitionRecord | undefined>;
|
|
15
|
+
/**
|
|
16
|
+
* Every definition for one workspace, ordered as the editor renders them.
|
|
17
|
+
*
|
|
18
|
+
* Not paged: a workspace's whole set is small (hard cap 100 per object type),
|
|
19
|
+
* and every write path — validation, delete-strip — needs the definitions for
|
|
20
|
+
* one object type at once.
|
|
21
|
+
*/
|
|
22
|
+
export declare function definitionsForObject(db: Queryable, workspaceId: string, objectType: CustomFieldObjectType): Promise<CustomFieldDefinitionRecord[]>;
|
|
23
|
+
export declare function countDefinitions(db: Queryable, workspaceId: string): Promise<number>;
|
|
24
|
+
export declare function insertDefinition(db: Queryable, values: CustomFieldDefinitionColumns): Promise<CustomFieldDefinitionRecord>;
|
|
25
|
+
export declare function updateDefinition(db: Queryable, workspaceId: string, id: string, changes: Partial<CustomFieldDefinitionColumns>): Promise<CustomFieldDefinitionRecord | undefined>;
|
|
26
|
+
export declare function deleteDefinition(db: Queryable, workspaceId: string, id: string): Promise<number>;
|
|
27
|
+
/**
|
|
28
|
+
* Removes one key from every record of one object type in one workspace.
|
|
29
|
+
*
|
|
30
|
+
* Uses `?` to skip rows that never carried the key, so the write set is only
|
|
31
|
+
* the rows that actually held a value. The `-` operator on jsonb returns the
|
|
32
|
+
* object without that key; a key that was not present is a no-op.
|
|
33
|
+
*/
|
|
34
|
+
export declare function stripKeyFromRecords(db: Queryable, workspaceId: string, objectType: CustomFieldObjectType, key: string): Promise<number>;
|
|
35
|
+
/** Bulk row read for a caller that already has a set of ids to update. */
|
|
36
|
+
export declare function readCustomFieldsById(db: Queryable, workspaceId: string, objectType: CustomFieldObjectType, ids: readonly string[]): Promise<Map<string, Readonly<Record<string, unknown>>>>;
|
|
37
|
+
//# sourceMappingURL=repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/modules/custom-fields/repository.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAEzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAQ7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAEpD,MAAM,MAAM,2BAA2B,GAAG,OAAO,sBAAsB,CAAC,YAAY,CAAA;AACpF,MAAM,MAAM,4BAA4B,GAAG,OAAO,sBAAsB,CAAC,YAAY,CAAA;AAErF,eAAO,MAAM,6BAA6B,EAAE,cAAc,CAAC,2BAA2B,CAgBrF,CAAA;AAED,eAAO,MAAM,oCAAoC,eAAe,CAAA;AAEhE,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAA;CACxD;AAiBD,wBAAgB,eAAe,CAC7B,EAAE,EAAE,SAAS,EACb,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,4BAA4B,EACrC,MAAM,EAAE,UAAU,CAAC,2BAA2B,CAAC,GAC9C,OAAO,CAAC,2BAA2B,EAAE,CAAC,CASxC;AAED,wBAAsB,cAAc,CAClC,EAAE,EAAE,SAAS,EACb,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC,CAQlD;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,SAAS,EACb,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,2BAA2B,EAAE,CAAC,CAWxC;AAED,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,SAAS,EACb,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,4BAA4B,GACnC,OAAO,CAAC,2BAA2B,CAAC,CAQtC;AAED,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,SAAS,EACb,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,4BAA4B,CAAC,GAC7C,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC,CAQlD;AAED,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,SAAS,EACb,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,MAAM,CAAC,CAOjB;AAiBD;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,SAAS,EACb,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,qBAAqB,EACjC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,CAAC,CAWjB;AAED,0EAA0E;AAC1E,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,SAAS,EACb,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,qBAAqB,EACjC,GAAG,EAAE,SAAS,MAAM,EAAE,GACrB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAWzD"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { and, asc, eq, ilike, inArray, sql } from 'drizzle-orm';
|
|
2
|
+
import { keysetCondition, orderByWindow, textSort, timestampSort } from '../../lib/pagination.js';
|
|
3
|
+
import { containsPattern } from '../../lib/search.js';
|
|
4
|
+
import { companies } from '../companies/schema.js';
|
|
5
|
+
import { deals } from '../deals/schema.js';
|
|
6
|
+
import { enquiries } from '../enquiries/schema.js';
|
|
7
|
+
import { opportunities } from '../opportunities/schema.js';
|
|
8
|
+
import { partnerships } from '../partnerships/schema.js';
|
|
9
|
+
import { people } from '../people/schema.js';
|
|
10
|
+
import { raises } from '../raises/schema.js';
|
|
11
|
+
import { customFieldDefinitions } from './schema.js';
|
|
12
|
+
export const CUSTOM_FIELD_DEFINITION_SORTS = {
|
|
13
|
+
sort_order: {
|
|
14
|
+
column: customFieldDefinitions.sortOrder,
|
|
15
|
+
valueOf: (row) => String(row.sortOrder),
|
|
16
|
+
parse: (value) => {
|
|
17
|
+
const parsed = Number(value);
|
|
18
|
+
if (!Number.isInteger(parsed)) {
|
|
19
|
+
throw new Error('sort_order cursor is not a whole number');
|
|
20
|
+
}
|
|
21
|
+
return parsed;
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
label: textSort(customFieldDefinitions.label, (row) => row.label),
|
|
25
|
+
key: textSort(customFieldDefinitions.key, (row) => row.key),
|
|
26
|
+
created_at: timestampSort(customFieldDefinitions.createdAt, (row) => row.createdAt),
|
|
27
|
+
updated_at: timestampSort(customFieldDefinitions.updatedAt, (row) => row.updatedAt),
|
|
28
|
+
};
|
|
29
|
+
export const DEFAULT_CUSTOM_FIELD_DEFINITION_SORT = 'sort_order';
|
|
30
|
+
function conditionsFor(workspaceId, filters) {
|
|
31
|
+
return [
|
|
32
|
+
eq(customFieldDefinitions.workspaceId, workspaceId),
|
|
33
|
+
filters.term === undefined
|
|
34
|
+
? undefined
|
|
35
|
+
: ilike(customFieldDefinitions.label, containsPattern(filters.term)),
|
|
36
|
+
filters.objectType === undefined
|
|
37
|
+
? undefined
|
|
38
|
+
: eq(customFieldDefinitions.objectType, filters.objectType),
|
|
39
|
+
];
|
|
40
|
+
}
|
|
41
|
+
export function listDefinitions(db, workspaceId, filters, window) {
|
|
42
|
+
return db
|
|
43
|
+
.select()
|
|
44
|
+
.from(customFieldDefinitions)
|
|
45
|
+
.where(and(...conditionsFor(workspaceId, filters), keysetCondition(window, customFieldDefinitions.id)))
|
|
46
|
+
.orderBy(...orderByWindow(window, customFieldDefinitions.id))
|
|
47
|
+
.limit(window.fetchLimit);
|
|
48
|
+
}
|
|
49
|
+
export async function findDefinition(db, workspaceId, id) {
|
|
50
|
+
const [found] = await db
|
|
51
|
+
.select()
|
|
52
|
+
.from(customFieldDefinitions)
|
|
53
|
+
.where(and(eq(customFieldDefinitions.workspaceId, workspaceId), eq(customFieldDefinitions.id, id)))
|
|
54
|
+
.limit(1);
|
|
55
|
+
return found;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Every definition for one workspace, ordered as the editor renders them.
|
|
59
|
+
*
|
|
60
|
+
* Not paged: a workspace's whole set is small (hard cap 100 per object type),
|
|
61
|
+
* and every write path — validation, delete-strip — needs the definitions for
|
|
62
|
+
* one object type at once.
|
|
63
|
+
*/
|
|
64
|
+
export function definitionsForObject(db, workspaceId, objectType) {
|
|
65
|
+
return db
|
|
66
|
+
.select()
|
|
67
|
+
.from(customFieldDefinitions)
|
|
68
|
+
.where(and(eq(customFieldDefinitions.workspaceId, workspaceId), eq(customFieldDefinitions.objectType, objectType)))
|
|
69
|
+
.orderBy(asc(customFieldDefinitions.sortOrder), asc(customFieldDefinitions.id));
|
|
70
|
+
}
|
|
71
|
+
export async function countDefinitions(db, workspaceId) {
|
|
72
|
+
const [row] = await db
|
|
73
|
+
.select({ count: sql `count(*)::int` })
|
|
74
|
+
.from(customFieldDefinitions)
|
|
75
|
+
.where(eq(customFieldDefinitions.workspaceId, workspaceId));
|
|
76
|
+
return Number(row?.count ?? 0);
|
|
77
|
+
}
|
|
78
|
+
export async function insertDefinition(db, values) {
|
|
79
|
+
const [created] = await db.insert(customFieldDefinitions).values(values).returning();
|
|
80
|
+
if (created === undefined) {
|
|
81
|
+
throw new Error(`Inserting custom_field_definition ${values.id} returned no row`);
|
|
82
|
+
}
|
|
83
|
+
return created;
|
|
84
|
+
}
|
|
85
|
+
export async function updateDefinition(db, workspaceId, id, changes) {
|
|
86
|
+
const [updated] = await db
|
|
87
|
+
.update(customFieldDefinitions)
|
|
88
|
+
.set(changes)
|
|
89
|
+
.where(and(eq(customFieldDefinitions.workspaceId, workspaceId), eq(customFieldDefinitions.id, id)))
|
|
90
|
+
.returning();
|
|
91
|
+
return updated;
|
|
92
|
+
}
|
|
93
|
+
export async function deleteDefinition(db, workspaceId, id) {
|
|
94
|
+
const deleted = await db
|
|
95
|
+
.delete(customFieldDefinitions)
|
|
96
|
+
.where(and(eq(customFieldDefinitions.workspaceId, workspaceId), eq(customFieldDefinitions.id, id)))
|
|
97
|
+
.returning({ id: customFieldDefinitions.id });
|
|
98
|
+
return deleted.length;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* The tables `custom_fields` lives on, keyed by object type. A one-directional
|
|
102
|
+
* import: this module knows every carrier so that a definition delete can strip
|
|
103
|
+
* its key from the right table without every object module having to opt in.
|
|
104
|
+
*/
|
|
105
|
+
const TABLES = {
|
|
106
|
+
person: people,
|
|
107
|
+
company: companies,
|
|
108
|
+
deal: deals,
|
|
109
|
+
opportunity: opportunities,
|
|
110
|
+
partnership: partnerships,
|
|
111
|
+
raise: raises,
|
|
112
|
+
enquiry: enquiries,
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* Removes one key from every record of one object type in one workspace.
|
|
116
|
+
*
|
|
117
|
+
* Uses `?` to skip rows that never carried the key, so the write set is only
|
|
118
|
+
* the rows that actually held a value. The `-` operator on jsonb returns the
|
|
119
|
+
* object without that key; a key that was not present is a no-op.
|
|
120
|
+
*/
|
|
121
|
+
export async function stripKeyFromRecords(db, workspaceId, objectType, key) {
|
|
122
|
+
const table = TABLES[objectType];
|
|
123
|
+
const stripped = await db
|
|
124
|
+
.update(table)
|
|
125
|
+
.set({
|
|
126
|
+
customFields: sql `${table.customFields} - ${key}`,
|
|
127
|
+
})
|
|
128
|
+
.where(and(eq(table.workspaceId, workspaceId), sql `${table.customFields} ? ${key}`))
|
|
129
|
+
.returning({ id: table.id });
|
|
130
|
+
return stripped.length;
|
|
131
|
+
}
|
|
132
|
+
/** Bulk row read for a caller that already has a set of ids to update. */
|
|
133
|
+
export async function readCustomFieldsById(db, workspaceId, objectType, ids) {
|
|
134
|
+
if (ids.length === 0) {
|
|
135
|
+
return new Map();
|
|
136
|
+
}
|
|
137
|
+
const table = TABLES[objectType];
|
|
138
|
+
const rows = await db
|
|
139
|
+
.select({ id: table.id, customFields: table.customFields })
|
|
140
|
+
.from(table)
|
|
141
|
+
.where(and(eq(table.workspaceId, workspaceId), inArray(table.id, [...ids])));
|
|
142
|
+
return new Map(rows.map((row) => [row.id, row.customFields]));
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../src/modules/custom-fields/repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Hono } from 'hono';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import type { CredentialDependencies } from '../auth/credentials.ts';
|
|
4
|
+
import type { CreateCustomFieldDefinitionInput, CustomFieldDefinitionView, CustomFieldDefinitionsService, UpdateCustomFieldDefinitionInput } from './service.ts';
|
|
5
|
+
export declare const createBody: z.ZodObject<{
|
|
6
|
+
object_type: z.ZodEnum<{
|
|
7
|
+
company: "company";
|
|
8
|
+
deal: "deal";
|
|
9
|
+
enquiry: "enquiry";
|
|
10
|
+
opportunity: "opportunity";
|
|
11
|
+
partnership: "partnership";
|
|
12
|
+
person: "person";
|
|
13
|
+
raise: "raise";
|
|
14
|
+
}>;
|
|
15
|
+
key: z.ZodString;
|
|
16
|
+
label: z.ZodString;
|
|
17
|
+
type: z.ZodEnum<{
|
|
18
|
+
checkbox: "checkbox";
|
|
19
|
+
currency: "currency";
|
|
20
|
+
date: "date";
|
|
21
|
+
long_text: "long_text";
|
|
22
|
+
multi_select: "multi_select";
|
|
23
|
+
number: "number";
|
|
24
|
+
select: "select";
|
|
25
|
+
text: "text";
|
|
26
|
+
url: "url";
|
|
27
|
+
}>;
|
|
28
|
+
options: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
29
|
+
description: z.ZodDefault<z.ZodString>;
|
|
30
|
+
}, z.core.$strict>;
|
|
31
|
+
export declare const updateBody: z.ZodObject<{
|
|
32
|
+
label: z.ZodOptional<z.ZodString>;
|
|
33
|
+
description: z.ZodOptional<z.ZodString>;
|
|
34
|
+
options: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
35
|
+
sort_order: z.ZodOptional<z.ZodNumber>;
|
|
36
|
+
}, z.core.$strict>;
|
|
37
|
+
export interface CustomFieldsRoutesDependencies extends CredentialDependencies {
|
|
38
|
+
readonly service: CustomFieldDefinitionsService;
|
|
39
|
+
}
|
|
40
|
+
export declare function toCreateInput(body: z.infer<typeof createBody>): CreateCustomFieldDefinitionInput;
|
|
41
|
+
export declare function toUpdateInput(body: z.infer<typeof updateBody>): UpdateCustomFieldDefinitionInput;
|
|
42
|
+
export declare function customFieldDefinitionResponse(definition: CustomFieldDefinitionView): Record<string, unknown>;
|
|
43
|
+
export declare function mountCustomFieldsRoutes(router: Hono, dependencies: CustomFieldsRoutesDependencies): void;
|
|
44
|
+
//# sourceMappingURL=routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/modules/custom-fields/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,MAAM,CAAA;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAGpE,OAAO,KAAK,EACV,gCAAgC,EAChC,yBAAyB,EACzB,6BAA6B,EAC7B,gCAAgC,EACjC,MAAM,cAAc,CAAA;AAarB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;kBAOrB,CAAA;AAEF,eAAO,MAAM,UAAU;;;;;kBAOX,CAAA;AAEZ,MAAM,WAAW,8BAA+B,SAAQ,sBAAsB;IAC5E,QAAQ,CAAC,OAAO,EAAE,6BAA6B,CAAA;CAChD;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,GAC/B,gCAAgC,CASlC;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,GAC/B,gCAAgC,CAOlC;AAED,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,yBAAyB,GACpC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAazB;AAeD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,IAAI,EACZ,YAAY,EAAE,8BAA8B,GAC3C,IAAI,CA+CN"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { AppError } from '../../lib/errors.js';
|
|
3
|
+
import { pageBody, readJsonBody, readListParameters } from '../../lib/http.js';
|
|
4
|
+
import { resolveActorFrom } from '../auth/credentials.js';
|
|
5
|
+
import { CUSTOM_FIELD_OBJECT_TYPES, CUSTOM_FIELD_TYPES } from './schema.js';
|
|
6
|
+
/**
|
|
7
|
+
* Wire shapes for `/v1/custom_fields`.
|
|
8
|
+
*
|
|
9
|
+
* `key`, `type`, and `object_type` are only on the create body: the update
|
|
10
|
+
* body omits them, and a strict PATCH answers `422` for any of the three.
|
|
11
|
+
* `options` accepts any string list here; per-type membership (and the
|
|
12
|
+
* "options only on select-like types" rule) live in the service.
|
|
13
|
+
*/
|
|
14
|
+
const optionsSchema = z.array(z.string().min(1).max(120)).max(100);
|
|
15
|
+
export const createBody = z.strictObject({
|
|
16
|
+
object_type: z.enum(CUSTOM_FIELD_OBJECT_TYPES),
|
|
17
|
+
key: z.string().min(1).max(64),
|
|
18
|
+
label: z.string().min(1).max(120),
|
|
19
|
+
type: z.enum(CUSTOM_FIELD_TYPES),
|
|
20
|
+
options: optionsSchema.default([]),
|
|
21
|
+
description: z.string().max(2000).default(''),
|
|
22
|
+
});
|
|
23
|
+
export const updateBody = z
|
|
24
|
+
.strictObject({
|
|
25
|
+
label: z.string().min(1).max(120),
|
|
26
|
+
description: z.string().max(2000),
|
|
27
|
+
options: optionsSchema,
|
|
28
|
+
sort_order: z.number().int().min(0),
|
|
29
|
+
})
|
|
30
|
+
.partial();
|
|
31
|
+
export function toCreateInput(body) {
|
|
32
|
+
return {
|
|
33
|
+
objectType: body.object_type,
|
|
34
|
+
key: body.key,
|
|
35
|
+
label: body.label,
|
|
36
|
+
type: body.type,
|
|
37
|
+
options: body.options,
|
|
38
|
+
description: body.description,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export function toUpdateInput(body) {
|
|
42
|
+
return {
|
|
43
|
+
...(body.label === undefined ? {} : { label: body.label }),
|
|
44
|
+
...(body.description === undefined ? {} : { description: body.description }),
|
|
45
|
+
...(body.options === undefined ? {} : { options: body.options }),
|
|
46
|
+
...(body.sort_order === undefined ? {} : { sortOrder: body.sort_order }),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export function customFieldDefinitionResponse(definition) {
|
|
50
|
+
return {
|
|
51
|
+
id: definition.id,
|
|
52
|
+
object_type: definition.objectType,
|
|
53
|
+
key: definition.key,
|
|
54
|
+
label: definition.label,
|
|
55
|
+
type: definition.type,
|
|
56
|
+
options: definition.options,
|
|
57
|
+
description: definition.description,
|
|
58
|
+
sort_order: definition.sortOrder,
|
|
59
|
+
created_at: definition.createdAt.toISOString(),
|
|
60
|
+
updated_at: definition.updatedAt.toISOString(),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
function readObjectTypeFilter(context) {
|
|
64
|
+
const raw = context.req.query('object_type');
|
|
65
|
+
if (raw === undefined) {
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
if (!CUSTOM_FIELD_OBJECT_TYPES.includes(raw)) {
|
|
69
|
+
throw AppError.validationFailed('That is not a record type custom fields attach to', [
|
|
70
|
+
{ field: 'object_type', message: `Unknown object type "${raw}"` },
|
|
71
|
+
]);
|
|
72
|
+
}
|
|
73
|
+
return raw;
|
|
74
|
+
}
|
|
75
|
+
export function mountCustomFieldsRoutes(router, dependencies) {
|
|
76
|
+
const requireActor = (context) => resolveActorFrom(dependencies, context);
|
|
77
|
+
router.get('/custom_fields', async (context) => {
|
|
78
|
+
const page = await dependencies.service.list(await requireActor(context), {
|
|
79
|
+
term: context.req.query('q'),
|
|
80
|
+
objectType: readObjectTypeFilter(context),
|
|
81
|
+
}, readListParameters(context));
|
|
82
|
+
return context.json(pageBody(page, customFieldDefinitionResponse));
|
|
83
|
+
});
|
|
84
|
+
router.post('/custom_fields', async (context) => {
|
|
85
|
+
const body = await readJsonBody(context, createBody);
|
|
86
|
+
const definition = await dependencies.service.create(await requireActor(context), toCreateInput(body));
|
|
87
|
+
return context.json(customFieldDefinitionResponse(definition), 201);
|
|
88
|
+
});
|
|
89
|
+
router.get('/custom_fields/:id', async (context) => {
|
|
90
|
+
const definition = await dependencies.service.get(await requireActor(context), context.req.param('id'));
|
|
91
|
+
return context.json(customFieldDefinitionResponse(definition));
|
|
92
|
+
});
|
|
93
|
+
router.patch('/custom_fields/:id', async (context) => {
|
|
94
|
+
const body = await readJsonBody(context, updateBody);
|
|
95
|
+
const definition = await dependencies.service.update(await requireActor(context), context.req.param('id'), toUpdateInput(body));
|
|
96
|
+
return context.json(customFieldDefinitionResponse(definition));
|
|
97
|
+
});
|
|
98
|
+
router.delete('/custom_fields/:id', async (context) => {
|
|
99
|
+
await dependencies.service.remove(await requireActor(context), context.req.param('id'));
|
|
100
|
+
return context.body(null, 204);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=routes.js.map
|