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