@kelpie/schemas 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/company.d.ts +8 -0
  2. package/dist/company.d.ts.map +1 -1
  3. package/dist/company.js +4 -0
  4. package/dist/company.js.map +1 -1
  5. package/dist/consentPurpose.d.ts +49 -0
  6. package/dist/consentPurpose.d.ts.map +1 -0
  7. package/dist/consentPurpose.js +40 -0
  8. package/dist/consentPurpose.js.map +1 -0
  9. package/dist/customField.d.ts +99 -0
  10. package/dist/customField.d.ts.map +1 -0
  11. package/dist/customField.js +133 -0
  12. package/dist/customField.js.map +1 -0
  13. package/dist/deal.d.ts +8 -0
  14. package/dist/deal.d.ts.map +1 -1
  15. package/dist/deal.js +4 -0
  16. package/dist/deal.js.map +1 -1
  17. package/dist/enquiry.d.ts +43 -0
  18. package/dist/enquiry.d.ts.map +1 -0
  19. package/dist/enquiry.js +47 -0
  20. package/dist/enquiry.js.map +1 -0
  21. package/dist/form.d.ts +117 -2
  22. package/dist/form.d.ts.map +1 -1
  23. package/dist/form.js +102 -1
  24. package/dist/form.js.map +1 -1
  25. package/dist/formSubmission.d.ts +29 -0
  26. package/dist/formSubmission.d.ts.map +1 -1
  27. package/dist/formSubmission.js +34 -0
  28. package/dist/formSubmission.js.map +1 -1
  29. package/dist/importExport.d.ts +28 -4
  30. package/dist/importExport.d.ts.map +1 -1
  31. package/dist/importExport.js +24 -1
  32. package/dist/importExport.js.map +1 -1
  33. package/dist/index.d.ts +15 -5
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +7 -2
  36. package/dist/index.js.map +1 -1
  37. package/dist/list.d.ts +10 -0
  38. package/dist/list.d.ts.map +1 -1
  39. package/dist/list.js +6 -0
  40. package/dist/list.js.map +1 -1
  41. package/dist/names.d.ts +43 -0
  42. package/dist/names.d.ts.map +1 -0
  43. package/dist/names.js +35 -0
  44. package/dist/names.js.map +1 -0
  45. package/dist/opportunity.d.ts +10 -0
  46. package/dist/opportunity.d.ts.map +1 -1
  47. package/dist/opportunity.js +7 -0
  48. package/dist/opportunity.js.map +1 -1
  49. package/dist/partnership.d.ts +8 -0
  50. package/dist/partnership.d.ts.map +1 -1
  51. package/dist/partnership.js +4 -0
  52. package/dist/partnership.js.map +1 -1
  53. package/dist/person.d.ts +42 -1
  54. package/dist/person.d.ts.map +1 -1
  55. package/dist/person.js +23 -0
  56. package/dist/person.js.map +1 -1
  57. package/dist/personConsent.d.ts +31 -0
  58. package/dist/personConsent.d.ts.map +1 -0
  59. package/dist/personConsent.js +27 -0
  60. package/dist/personConsent.js.map +1 -0
  61. package/dist/raise.d.ts +8 -0
  62. package/dist/raise.d.ts.map +1 -1
  63. package/dist/raise.js +4 -0
  64. package/dist/raise.js.map +1 -1
  65. package/dist/sampleData.d.ts +1 -0
  66. package/dist/sampleData.d.ts.map +1 -1
  67. package/dist/sampleData.js +2 -0
  68. package/dist/sampleData.js.map +1 -1
  69. package/dist/values.d.ts +86 -8
  70. package/dist/values.d.ts.map +1 -1
  71. package/dist/values.js +140 -3
  72. package/dist/values.js.map +1 -1
  73. package/package.json +1 -1
  74. package/src/company.ts +13 -0
  75. package/src/consentPurpose.ts +95 -0
  76. package/src/customField.ts +211 -0
  77. package/src/deal.ts +13 -0
  78. package/src/enquiry.ts +94 -0
  79. package/src/form.ts +230 -2
  80. package/src/formSubmission.ts +63 -0
  81. package/src/importExport.ts +44 -5
  82. package/src/index.ts +70 -2
  83. package/src/list.ts +16 -0
  84. package/src/names.ts +49 -0
  85. package/src/opportunity.ts +18 -0
  86. package/src/partnership.ts +13 -0
  87. package/src/person.ts +69 -1
  88. package/src/personConsent.ts +60 -0
  89. package/src/raise.ts +13 -0
  90. package/src/sampleData.ts +3 -0
  91. package/src/values.ts +169 -3
package/dist/form.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import type { FormFieldMapTarget, FormFieldType, FormOptionValueType, FormStatus } from './values.ts';
2
+ import type { FormFieldMapTarget, FormFieldType, FormOptionValueType, FormStatus, PipelineKind } from './values.ts';
3
3
  import type { RecordTimestamps } from './wire.ts';
4
4
  /**
5
5
  * Wire and write shapes for `/v1/forms`, the embeddable inbound capture from
@@ -29,12 +29,44 @@ export interface FormField {
29
29
  /** Empty for every type but `select`. */
30
30
  readonly options: readonly FormFieldOption[];
31
31
  readonly placeholder: string | null;
32
+ /**
33
+ * The intro sentence for a `consent` field — sits above the list of purpose
34
+ * checkboxes. `label` is the field heading; `statement` is what the visitor
35
+ * reads before ticking. Null for every other type.
36
+ */
37
+ readonly statement: string | null;
38
+ /**
39
+ * Workspace consent purposes this `consent` field offers, in display order.
40
+ * Non-empty when `type === 'consent'`; empty otherwise. Each ticked box
41
+ * grants the purpose it belongs to; an unticked one is absence.
42
+ */
43
+ readonly consentPurposeIds: readonly string[];
44
+ /**
45
+ * Per-purpose override for the checkbox text, keyed by purpose id. Absent
46
+ * keys fall back to the workspace purpose's own label. Only the wording
47
+ * changes — the checkbox stays bound to its purpose.
48
+ */
49
+ readonly consentPurposeLabels: Readonly<Record<string, string>>;
32
50
  /** Position in the form, contiguous from 0. The server renumbers on every write. */
33
51
  readonly sortOrder: number;
34
52
  }
53
+ /**
54
+ * One pre-existing pipeline record every submitter is linked into through
55
+ * `person_links`. `target_type` is fixed at form-write time; the row itself
56
+ * lives in `form_attach_targets` on the server.
57
+ */
58
+ export interface FormAttachTarget {
59
+ readonly targetType: PipelineKind;
60
+ readonly targetId: string;
61
+ }
35
62
  export interface Form extends RecordTimestamps {
36
63
  readonly id: string;
37
64
  readonly name: string;
65
+ /**
66
+ * Heading on the hosted/embed page. Defaults to `name` when the form is
67
+ * created; edit it from Settings without renaming the form in the CRM.
68
+ */
69
+ readonly title: string;
38
70
  readonly description: string | null;
39
71
  readonly status: FormStatus;
40
72
  readonly fields: readonly FormField[];
@@ -44,6 +76,39 @@ export interface Form extends RecordTimestamps {
44
76
  readonly dealStageId: string | null;
45
77
  /** Expands `{{company.name}}` and `{{person.name}}`. Null when `createDeal` is off. */
46
78
  readonly dealNameTemplate: string | null;
79
+ readonly createOpportunity: boolean;
80
+ /** Required when `createOpportunity` is on: opportunities carry a `kind`. */
81
+ readonly opportunityKind: string | null;
82
+ readonly opportunityStageId: string | null;
83
+ readonly opportunityNameTemplate: string | null;
84
+ /** Null falls back to the workspace default member at submit time. */
85
+ readonly opportunityOwnerId: string | null;
86
+ readonly createPartnership: boolean;
87
+ /** Required when `createPartnership` is on. */
88
+ readonly partnershipKind: string | null;
89
+ readonly partnershipStageId: string | null;
90
+ readonly partnershipNameTemplate: string | null;
91
+ /** Null falls back to the workspace default member at submit time. */
92
+ readonly partnershipOwnerId: string | null;
93
+ readonly createEnquiry: boolean;
94
+ /**
95
+ * Free-text label for the enquiry's `source` column. Optional: an unset value
96
+ * stores an empty string. Enquiry needs no `kind` because it has no `kind`
97
+ * column — a form's source is the source.
98
+ */
99
+ readonly enquirySource: string | null;
100
+ readonly enquiryStageId: string | null;
101
+ readonly enquiryNameTemplate: string | null;
102
+ /** Null falls back to the workspace default member at submit time. */
103
+ readonly enquiryOwnerId: string | null;
104
+ /** Tags to merge (union) into the resolved Person's `tags` on every submit. */
105
+ readonly personTags: readonly string[];
106
+ /** Tags to merge (union) into the resolved Company's `tags`; skipped when no company resolved. */
107
+ readonly companyTags: readonly string[];
108
+ /** Lists (person or company) every matching record is added to on submit. */
109
+ readonly listIds: readonly string[];
110
+ /** Pre-existing pipeline records the submitter is linked to via `person_links`. */
111
+ readonly attachTargets: readonly FormAttachTarget[];
47
112
  /**
48
113
  * The handle the public submit and embed endpoints resolve a workspace from.
49
114
  * Globally unique, and the only credential those endpoints take.
@@ -70,9 +135,17 @@ export interface FormFieldInput {
70
135
  readonly mapTo: FormFieldMapTarget;
71
136
  readonly options?: readonly FormFieldOptionInput[];
72
137
  readonly placeholder?: string | null;
138
+ /** The intro sentence above the list of consent checkboxes. */
139
+ readonly statement?: string | null;
140
+ /** Non-empty for `consent` fields; each id becomes a checkbox in display order. */
141
+ readonly consentPurposeIds?: readonly string[];
142
+ /** Per-purpose override for the checkbox text. Falls back to the workspace label. */
143
+ readonly consentPurposeLabels?: Readonly<Record<string, string>>;
73
144
  }
74
145
  export interface CreateFormInput {
75
146
  readonly name: string;
147
+ /** Defaults to `name` when omitted. */
148
+ readonly title?: string;
76
149
  readonly description?: string | null;
77
150
  readonly status?: FormStatus;
78
151
  readonly fields: readonly FormFieldInput[];
@@ -80,10 +153,33 @@ export interface CreateFormInput {
80
153
  readonly createDeal?: boolean;
81
154
  readonly dealStageId?: string | null;
82
155
  readonly dealNameTemplate?: string | null;
156
+ readonly createOpportunity?: boolean;
157
+ readonly opportunityKind?: string | null;
158
+ readonly opportunityStageId?: string | null;
159
+ readonly opportunityNameTemplate?: string | null;
160
+ readonly opportunityOwnerId?: string | null;
161
+ readonly createPartnership?: boolean;
162
+ readonly partnershipKind?: string | null;
163
+ readonly partnershipStageId?: string | null;
164
+ readonly partnershipNameTemplate?: string | null;
165
+ readonly partnershipOwnerId?: string | null;
166
+ readonly createEnquiry?: boolean;
167
+ readonly enquirySource?: string | null;
168
+ readonly enquiryStageId?: string | null;
169
+ readonly enquiryNameTemplate?: string | null;
170
+ readonly enquiryOwnerId?: string | null;
171
+ readonly personTags?: readonly string[];
172
+ readonly companyTags?: readonly string[];
173
+ readonly listIds?: readonly string[];
174
+ readonly attachTargets?: readonly FormAttachTarget[];
83
175
  }
84
- /** `fields` is absent or the whole list; there is no per-field patch. */
176
+ /**
177
+ * `fields`, `list_ids`, and `attach_targets` are each absent or the whole list;
178
+ * there is no per-entry patch.
179
+ */
85
180
  export interface FormInput {
86
181
  readonly name?: string;
182
+ readonly title?: string;
87
183
  readonly description?: string | null;
88
184
  readonly status?: FormStatus;
89
185
  readonly fields?: readonly FormFieldInput[];
@@ -91,6 +187,25 @@ export interface FormInput {
91
187
  readonly createDeal?: boolean;
92
188
  readonly dealStageId?: string | null;
93
189
  readonly dealNameTemplate?: string | null;
190
+ readonly createOpportunity?: boolean;
191
+ readonly opportunityKind?: string | null;
192
+ readonly opportunityStageId?: string | null;
193
+ readonly opportunityNameTemplate?: string | null;
194
+ readonly opportunityOwnerId?: string | null;
195
+ readonly createPartnership?: boolean;
196
+ readonly partnershipKind?: string | null;
197
+ readonly partnershipStageId?: string | null;
198
+ readonly partnershipNameTemplate?: string | null;
199
+ readonly partnershipOwnerId?: string | null;
200
+ readonly createEnquiry?: boolean;
201
+ readonly enquirySource?: string | null;
202
+ readonly enquiryStageId?: string | null;
203
+ readonly enquiryNameTemplate?: string | null;
204
+ readonly enquiryOwnerId?: string | null;
205
+ readonly personTags?: readonly string[];
206
+ readonly companyTags?: readonly string[];
207
+ readonly listIds?: readonly string[];
208
+ readonly attachTargets?: readonly FormAttachTarget[];
94
209
  }
95
210
  export declare function createFormBody(input: CreateFormInput): Record<string, unknown>;
96
211
  export declare function formBody(input: FormInput): Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../src/form.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../src/form.ts"],"names":[],"mappings":"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"}
package/dist/form.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { FORM_FIELD_MAP_TARGETS, FORM_FIELD_TYPES, FORM_OPTION_VALUE_TYPES, FORM_STATUSES, } from './values.js';
2
+ import { FORM_FIELD_MAP_TARGETS, FORM_FIELD_TYPES, FORM_OPTION_VALUE_TYPES, FORM_STATUSES, PIPELINE_KINDS, } from './values.js';
3
3
  import { definedFields, idSchema, recordTimestamps } from './wire.js';
4
4
  const formFieldOptionSchema = z
5
5
  .object({
@@ -21,6 +21,9 @@ const formFieldSchema = z
21
21
  map_to: z.enum(FORM_FIELD_MAP_TARGETS),
22
22
  options: z.array(formFieldOptionSchema),
23
23
  placeholder: z.string().nullable(),
24
+ statement: z.string().nullable(),
25
+ consent_purpose_ids: z.array(idSchema),
26
+ consent_purpose_labels: z.record(z.string(), z.string()),
24
27
  sort_order: z.number().int(),
25
28
  })
26
29
  .transform((wire) => ({
@@ -31,12 +34,25 @@ const formFieldSchema = z
31
34
  mapTo: wire.map_to,
32
35
  options: wire.options,
33
36
  placeholder: wire.placeholder,
37
+ statement: wire.statement,
38
+ consentPurposeIds: wire.consent_purpose_ids,
39
+ consentPurposeLabels: wire.consent_purpose_labels,
34
40
  sortOrder: wire.sort_order,
35
41
  }));
42
+ const attachTargetSchema = z
43
+ .object({
44
+ target_type: z.enum(PIPELINE_KINDS),
45
+ target_id: idSchema,
46
+ })
47
+ .transform((wire) => ({
48
+ targetType: wire.target_type,
49
+ targetId: wire.target_id,
50
+ }));
36
51
  export const formSchema = z
37
52
  .object({
38
53
  id: idSchema,
39
54
  name: z.string(),
55
+ title: z.string(),
40
56
  description: z.string().nullable(),
41
57
  status: z.enum(FORM_STATUSES),
42
58
  fields: z.array(formFieldSchema),
@@ -44,12 +60,32 @@ export const formSchema = z
44
60
  create_deal: z.boolean(),
45
61
  deal_stage_id: idSchema.nullable(),
46
62
  deal_name_template: z.string().nullable(),
63
+ create_opportunity: z.boolean(),
64
+ opportunity_kind: z.string().nullable(),
65
+ opportunity_stage_id: idSchema.nullable(),
66
+ opportunity_name_template: z.string().nullable(),
67
+ opportunity_owner_id: idSchema.nullable(),
68
+ create_partnership: z.boolean(),
69
+ partnership_kind: z.string().nullable(),
70
+ partnership_stage_id: idSchema.nullable(),
71
+ partnership_name_template: z.string().nullable(),
72
+ partnership_owner_id: idSchema.nullable(),
73
+ create_enquiry: z.boolean(),
74
+ enquiry_source: z.string().nullable(),
75
+ enquiry_stage_id: idSchema.nullable(),
76
+ enquiry_name_template: z.string().nullable(),
77
+ enquiry_owner_id: idSchema.nullable(),
78
+ person_tags: z.array(z.string()),
79
+ company_tags: z.array(z.string()),
80
+ list_ids: z.array(idSchema),
81
+ attach_targets: z.array(attachTargetSchema),
47
82
  public_key: z.string(),
48
83
  ...recordTimestamps,
49
84
  })
50
85
  .transform((wire) => ({
51
86
  id: wire.id,
52
87
  name: wire.name,
88
+ title: wire.title,
53
89
  description: wire.description,
54
90
  status: wire.status,
55
91
  fields: wire.fields,
@@ -57,6 +93,25 @@ export const formSchema = z
57
93
  createDeal: wire.create_deal,
58
94
  dealStageId: wire.deal_stage_id,
59
95
  dealNameTemplate: wire.deal_name_template,
96
+ createOpportunity: wire.create_opportunity,
97
+ opportunityKind: wire.opportunity_kind,
98
+ opportunityStageId: wire.opportunity_stage_id,
99
+ opportunityNameTemplate: wire.opportunity_name_template,
100
+ opportunityOwnerId: wire.opportunity_owner_id,
101
+ createPartnership: wire.create_partnership,
102
+ partnershipKind: wire.partnership_kind,
103
+ partnershipStageId: wire.partnership_stage_id,
104
+ partnershipNameTemplate: wire.partnership_name_template,
105
+ partnershipOwnerId: wire.partnership_owner_id,
106
+ createEnquiry: wire.create_enquiry,
107
+ enquirySource: wire.enquiry_source,
108
+ enquiryStageId: wire.enquiry_stage_id,
109
+ enquiryNameTemplate: wire.enquiry_name_template,
110
+ enquiryOwnerId: wire.enquiry_owner_id,
111
+ personTags: wire.person_tags,
112
+ companyTags: wire.company_tags,
113
+ listIds: wire.list_ids,
114
+ attachTargets: wire.attach_targets,
60
115
  publicKey: wire.public_key,
61
116
  createdAt: wire.created_at,
62
117
  updatedAt: wire.updated_at,
@@ -69,11 +124,18 @@ function fieldBody(field) {
69
124
  map_to: field.mapTo,
70
125
  options: field.options?.map((option) => definedFields({ key: option.key, value: option.value, value_type: option.valueType })),
71
126
  placeholder: field.placeholder,
127
+ statement: field.statement,
128
+ consent_purpose_ids: field.consentPurposeIds,
129
+ consent_purpose_labels: field.consentPurposeLabels,
72
130
  });
73
131
  }
132
+ function attachTargetBody(target) {
133
+ return { target_type: target.targetType, target_id: target.targetId };
134
+ }
74
135
  export function createFormBody(input) {
75
136
  return definedFields({
76
137
  name: input.name,
138
+ title: input.title,
77
139
  description: input.description,
78
140
  status: input.status,
79
141
  fields: input.fields.map(fieldBody),
@@ -81,11 +143,31 @@ export function createFormBody(input) {
81
143
  create_deal: input.createDeal,
82
144
  deal_stage_id: input.dealStageId,
83
145
  deal_name_template: input.dealNameTemplate,
146
+ create_opportunity: input.createOpportunity,
147
+ opportunity_kind: input.opportunityKind,
148
+ opportunity_stage_id: input.opportunityStageId,
149
+ opportunity_name_template: input.opportunityNameTemplate,
150
+ opportunity_owner_id: input.opportunityOwnerId,
151
+ create_partnership: input.createPartnership,
152
+ partnership_kind: input.partnershipKind,
153
+ partnership_stage_id: input.partnershipStageId,
154
+ partnership_name_template: input.partnershipNameTemplate,
155
+ partnership_owner_id: input.partnershipOwnerId,
156
+ create_enquiry: input.createEnquiry,
157
+ enquiry_source: input.enquirySource,
158
+ enquiry_stage_id: input.enquiryStageId,
159
+ enquiry_name_template: input.enquiryNameTemplate,
160
+ enquiry_owner_id: input.enquiryOwnerId,
161
+ person_tags: input.personTags,
162
+ company_tags: input.companyTags,
163
+ list_ids: input.listIds,
164
+ attach_targets: input.attachTargets?.map(attachTargetBody),
84
165
  });
85
166
  }
86
167
  export function formBody(input) {
87
168
  return definedFields({
88
169
  name: input.name,
170
+ title: input.title,
89
171
  description: input.description,
90
172
  status: input.status,
91
173
  fields: input.fields?.map(fieldBody),
@@ -93,6 +175,25 @@ export function formBody(input) {
93
175
  create_deal: input.createDeal,
94
176
  deal_stage_id: input.dealStageId,
95
177
  deal_name_template: input.dealNameTemplate,
178
+ create_opportunity: input.createOpportunity,
179
+ opportunity_kind: input.opportunityKind,
180
+ opportunity_stage_id: input.opportunityStageId,
181
+ opportunity_name_template: input.opportunityNameTemplate,
182
+ opportunity_owner_id: input.opportunityOwnerId,
183
+ create_partnership: input.createPartnership,
184
+ partnership_kind: input.partnershipKind,
185
+ partnership_stage_id: input.partnershipStageId,
186
+ partnership_name_template: input.partnershipNameTemplate,
187
+ partnership_owner_id: input.partnershipOwnerId,
188
+ create_enquiry: input.createEnquiry,
189
+ enquiry_source: input.enquirySource,
190
+ enquiry_stage_id: input.enquiryStageId,
191
+ enquiry_name_template: input.enquiryNameTemplate,
192
+ enquiry_owner_id: input.enquiryOwnerId,
193
+ person_tags: input.personTags,
194
+ company_tags: input.companyTags,
195
+ list_ids: input.listIds,
196
+ attach_targets: input.attachTargets?.map(attachTargetBody),
96
197
  });
97
198
  }
98
199
  //# sourceMappingURL=form.js.map
package/dist/form.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"form.js","sourceRoot":"","sources":["../src/form.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,uBAAuB,EACvB,aAAa,GACd,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAwDrE,MAAM,qBAAqB,GAAG,CAAC;KAC5B,MAAM,CAAC;IACN,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC;CAC5C,CAAC;KACD,SAAS,CACR,CAAC,IAAI,EAAmB,EAAE,CAAC,CAAC;IAC1B,GAAG,EAAE,IAAI,CAAC,GAAG;IACb,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,SAAS,EAAE,IAAI,CAAC,UAAU;CAC3B,CAAC,CACH,CAAA;AAEH,MAAM,eAAe,GAAG,CAAC;KACtB,MAAM,CAAC;IACN,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;IAC9B,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC;IACvC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;CAC7B,CAAC;KACD,SAAS,CACR,CAAC,IAAI,EAAa,EAAE,CAAC,CAAC;IACpB,EAAE,EAAE,IAAI,CAAC,EAAE;IACX,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;IACvB,KAAK,EAAE,IAAI,CAAC,MAAM;IAClB,OAAO,EAAE,IAAI,CAAC,OAAO;IACrB,WAAW,EAAE,IAAI,CAAC,WAAW;IAC7B,SAAS,EAAE,IAAI,CAAC,UAAU;CAC3B,CAAC,CACH,CAAA;AAEH,MAAM,CAAC,MAAM,UAAU,GAA6B,CAAC;KAClD,MAAM,CAAC;IACN,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;IAC7B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IAChC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC7B,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;IACxB,aAAa,EAAE,QAAQ,CAAC,QAAQ,EAAE;IAClC,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,GAAG,gBAAgB;CACpB,CAAC;KACD,SAAS,CACR,CAAC,IAAI,EAAQ,EAAE,CAAC,CAAC;IACf,EAAE,EAAE,IAAI,CAAC,EAAE;IACX,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,WAAW,EAAE,IAAI,CAAC,WAAW;IAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;IACnB,MAAM,EAAE,IAAI,CAAC,MAAM;IACnB,eAAe,EAAE,IAAI,CAAC,iBAAiB;IACvC,UAAU,EAAE,IAAI,CAAC,WAAW;IAC5B,WAAW,EAAE,IAAI,CAAC,aAAa;IAC/B,gBAAgB,EAAE,IAAI,CAAC,kBAAkB;IACzC,SAAS,EAAE,IAAI,CAAC,UAAU;IAC1B,SAAS,EAAE,IAAI,CAAC,UAAU;IAC1B,SAAS,EAAE,IAAI,CAAC,UAAU;CAC3B,CAAC,CACH,CAAA;AA+CH,SAAS,SAAS,CAAC,KAAqB;IACtC,OAAO,aAAa,CAAC;QACnB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,MAAM,EAAE,KAAK,CAAC,KAAK;QACnB,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACrC,aAAa,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CACtF;QACD,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAsB;IACnD,OAAO,aAAa,CAAC;QACnB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;QACnC,iBAAiB,EAAE,KAAK,CAAC,eAAe;QACxC,WAAW,EAAE,KAAK,CAAC,UAAU;QAC7B,aAAa,EAAE,KAAK,CAAC,WAAW;QAChC,kBAAkB,EAAE,KAAK,CAAC,gBAAgB;KAC3C,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAgB;IACvC,OAAO,aAAa,CAAC;QACnB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC;QACpC,iBAAiB,EAAE,KAAK,CAAC,eAAe;QACxC,WAAW,EAAE,KAAK,CAAC,UAAU;QAC7B,aAAa,EAAE,KAAK,CAAC,WAAW;QAChC,kBAAkB,EAAE,KAAK,CAAC,gBAAgB;KAC3C,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"form.js","sourceRoot":"","sources":["../src/form.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,12 @@
1
1
  import { z } from 'zod';
2
+ import type { FormActionStatus } from './values.ts';
3
+ /**
4
+ * The record types a submission can name through its FK columns. Used by
5
+ * `GET /v1/form-submissions?target_type=…` so the query, the server, and the
6
+ * UI hook agree on the seven values.
7
+ */
8
+ export declare const FORM_SUBMISSION_LINK_TARGETS: readonly ['person', 'company', 'position', 'deal', 'opportunity', 'partnership', 'enquiry'];
9
+ export type FormSubmissionLinkTarget = (typeof FORM_SUBMISSION_LINK_TARGETS)[number];
2
10
  /**
3
11
  * Wire shape for `/v1/forms/:id/submissions`, and for what the public submit
4
12
  * endpoint answers with.
@@ -7,6 +15,18 @@ import { z } from 'zod';
7
15
  * no create body here (the public endpoint takes an answer map, not a
8
16
  * submission) and no update at all.
9
17
  */
18
+ /**
19
+ * One post-submit action's outcome. The submission's `actionLog` carries these
20
+ * in the order the runner attempted them, so a reader can see what ran, what
21
+ * was skipped, and what rolled back.
22
+ */
23
+ export interface FormSubmissionActionEntry {
24
+ /** A machine name for the action ('create_deal', 'tag_person', 'add_list'…). */
25
+ readonly action: string;
26
+ readonly status: FormActionStatus;
27
+ /** Human-readable message. Never a stack trace; safe for the Submissions UI. */
28
+ readonly detail: string;
29
+ }
10
30
  export interface FormSubmission {
11
31
  readonly id: string;
12
32
  readonly formId: string;
@@ -22,6 +42,15 @@ export interface FormSubmission {
22
42
  readonly companyId: string | null;
23
43
  readonly positionId: string | null;
24
44
  readonly dealId: string | null;
45
+ readonly opportunityId: string | null;
46
+ readonly partnershipId: string | null;
47
+ readonly enquiryId: string | null;
48
+ /**
49
+ * Per-action outcome from the post-submit runner, in the order attempted.
50
+ * Only actions the form was configured to run appear; a form with no
51
+ * post-actions has an empty log.
52
+ */
53
+ readonly actionLog: readonly FormSubmissionActionEntry[];
25
54
  readonly createdAt: Date;
26
55
  }
27
56
  export declare const formSubmissionSchema: z.ZodType<FormSubmission, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"formSubmission.d.ts","sourceRoot":"","sources":["../src/formSubmission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB;;;;;;;GAOG;AAEH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAA;IAC1B,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAClD;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;CACzB;AAED,eAAO,MAAM,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAwBjE,CAAA;AAEH;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAA;IAC1B,8FAA8F;IAC9F,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CACjC;AAED,eAAO,MAAM,sBAAsB,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAcrE,CAAA"}
1
+ {"version":3,"file":"formSubmission.d.ts","sourceRoot":"","sources":["../src/formSubmission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAGnD;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,YACvC,QAAQ,EACR,SAAS,EACT,UAAU,EACV,MAAM,EACN,aAAa,EACb,aAAa,EACb,SAAS,CACD,CAAA;AAEV,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAA;AAEpF;;;;;;;GAOG;AAEH;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,gFAAgF;IAChF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAA;IACjC,gFAAgF;IAChF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAA;IAC1B,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAClD;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,yBAAyB,EAAE,CAAA;IACxD,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;CACzB;AAgBD,eAAO,MAAM,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAgCjE,CAAA;AAEH;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAA;IAC1B,8FAA8F;IAC9F,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CACjC;AAED,eAAO,MAAM,sBAAsB,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAcrE,CAAA"}
@@ -1,5 +1,31 @@
1
1
  import { z } from 'zod';
2
+ import { FORM_ACTION_STATUSES } from './values.js';
2
3
  import { idSchema, timestampSchema } from './wire.js';
4
+ /**
5
+ * The record types a submission can name through its FK columns. Used by
6
+ * `GET /v1/form-submissions?target_type=…` so the query, the server, and the
7
+ * UI hook agree on the seven values.
8
+ */
9
+ export const FORM_SUBMISSION_LINK_TARGETS = [
10
+ 'person',
11
+ 'company',
12
+ 'position',
13
+ 'deal',
14
+ 'opportunity',
15
+ 'partnership',
16
+ 'enquiry',
17
+ ];
18
+ const actionEntrySchema = z
19
+ .object({
20
+ action: z.string(),
21
+ status: z.enum(FORM_ACTION_STATUSES),
22
+ detail: z.string(),
23
+ })
24
+ .transform((wire) => ({
25
+ action: wire.action,
26
+ status: wire.status,
27
+ detail: wire.detail,
28
+ }));
3
29
  export const formSubmissionSchema = z
4
30
  .object({
5
31
  id: idSchema,
@@ -10,6 +36,10 @@ export const formSubmissionSchema = z
10
36
  company_id: idSchema.nullable(),
11
37
  position_id: idSchema.nullable(),
12
38
  deal_id: idSchema.nullable(),
39
+ opportunity_id: idSchema.nullable(),
40
+ partnership_id: idSchema.nullable(),
41
+ enquiry_id: idSchema.nullable(),
42
+ action_log: z.array(actionEntrySchema),
13
43
  created_at: timestampSchema,
14
44
  })
15
45
  .transform((wire) => ({
@@ -21,6 +51,10 @@ export const formSubmissionSchema = z
21
51
  companyId: wire.company_id,
22
52
  positionId: wire.position_id,
23
53
  dealId: wire.deal_id,
54
+ opportunityId: wire.opportunity_id,
55
+ partnershipId: wire.partnership_id,
56
+ enquiryId: wire.enquiry_id,
57
+ actionLog: wire.action_log,
24
58
  createdAt: wire.created_at,
25
59
  }));
26
60
  export const formSubmitResultSchema = z
@@ -1 +1 @@
1
- {"version":3,"file":"formSubmission.js","sourceRoot":"","sources":["../src/formSubmission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AA6BrD,MAAM,CAAC,MAAM,oBAAoB,GAAuC,CAAC;KACtE,MAAM,CAAC;IACN,EAAE,EAAE,QAAQ;IACZ,OAAO,EAAE,QAAQ;IACjB,YAAY,EAAE,eAAe;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IACzC,SAAS,EAAE,QAAQ,CAAC,QAAQ,EAAE;IAC9B,UAAU,EAAE,QAAQ,CAAC,QAAQ,EAAE;IAC/B,WAAW,EAAE,QAAQ,CAAC,QAAQ,EAAE;IAChC,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE;IAC5B,UAAU,EAAE,eAAe;CAC5B,CAAC;KACD,SAAS,CACR,CAAC,IAAI,EAAkB,EAAE,CAAC,CAAC;IACzB,EAAE,EAAE,IAAI,CAAC,EAAE;IACX,MAAM,EAAE,IAAI,CAAC,OAAO;IACpB,WAAW,EAAE,IAAI,CAAC,YAAY;IAC9B,OAAO,EAAE,IAAI,CAAC,OAAO;IACrB,QAAQ,EAAE,IAAI,CAAC,SAAS;IACxB,SAAS,EAAE,IAAI,CAAC,UAAU;IAC1B,UAAU,EAAE,IAAI,CAAC,WAAW;IAC5B,MAAM,EAAE,IAAI,CAAC,OAAO;IACpB,SAAS,EAAE,IAAI,CAAC,UAAU;CAC3B,CAAC,CACH,CAAA;AAkBH,MAAM,CAAC,MAAM,sBAAsB,GAAyC,CAAC;KAC1E,MAAM,CAAC;IACN,EAAE,EAAE,QAAQ;IACZ,OAAO,EAAE,QAAQ;IACjB,YAAY,EAAE,eAAe;IAC7B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;CAC9B,CAAC;KACD,SAAS,CACR,CAAC,IAAI,EAAoB,EAAE,CAAC,CAAC;IAC3B,EAAE,EAAE,IAAI,CAAC,EAAE;IACX,MAAM,EAAE,IAAI,CAAC,OAAO;IACpB,WAAW,EAAE,IAAI,CAAC,YAAY;IAC9B,eAAe,EAAE,IAAI,CAAC,iBAAiB;CACxC,CAAC,CACH,CAAA"}
1
+ {"version":3,"file":"formSubmission.js","sourceRoot":"","sources":["../src/formSubmission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAElD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAErD;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,QAAQ;IACR,SAAS;IACT,UAAU;IACV,MAAM;IACN,aAAa;IACb,aAAa;IACb,SAAS;CACD,CAAA;AAqDV,MAAM,iBAAiB,GAAG,CAAC;KACxB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC;IACpC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC;KACD,SAAS,CACR,CAAC,IAAI,EAA6B,EAAE,CAAC,CAAC;IACpC,MAAM,EAAE,IAAI,CAAC,MAAM;IACnB,MAAM,EAAE,IAAI,CAAC,MAAM;IACnB,MAAM,EAAE,IAAI,CAAC,MAAM;CACpB,CAAC,CACH,CAAA;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAuC,CAAC;KACtE,MAAM,CAAC;IACN,EAAE,EAAE,QAAQ;IACZ,OAAO,EAAE,QAAQ;IACjB,YAAY,EAAE,eAAe;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IACzC,SAAS,EAAE,QAAQ,CAAC,QAAQ,EAAE;IAC9B,UAAU,EAAE,QAAQ,CAAC,QAAQ,EAAE;IAC/B,WAAW,EAAE,QAAQ,CAAC,QAAQ,EAAE;IAChC,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE;IAC5B,cAAc,EAAE,QAAQ,CAAC,QAAQ,EAAE;IACnC,cAAc,EAAE,QAAQ,CAAC,QAAQ,EAAE;IACnC,UAAU,EAAE,QAAQ,CAAC,QAAQ,EAAE;IAC/B,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;IACtC,UAAU,EAAE,eAAe;CAC5B,CAAC;KACD,SAAS,CACR,CAAC,IAAI,EAAkB,EAAE,CAAC,CAAC;IACzB,EAAE,EAAE,IAAI,CAAC,EAAE;IACX,MAAM,EAAE,IAAI,CAAC,OAAO;IACpB,WAAW,EAAE,IAAI,CAAC,YAAY;IAC9B,OAAO,EAAE,IAAI,CAAC,OAAO;IACrB,QAAQ,EAAE,IAAI,CAAC,SAAS;IACxB,SAAS,EAAE,IAAI,CAAC,UAAU;IAC1B,UAAU,EAAE,IAAI,CAAC,WAAW;IAC5B,MAAM,EAAE,IAAI,CAAC,OAAO;IACpB,aAAa,EAAE,IAAI,CAAC,cAAc;IAClC,aAAa,EAAE,IAAI,CAAC,cAAc;IAClC,SAAS,EAAE,IAAI,CAAC,UAAU;IAC1B,SAAS,EAAE,IAAI,CAAC,UAAU;IAC1B,SAAS,EAAE,IAAI,CAAC,UAAU;CAC3B,CAAC,CACH,CAAA;AAkBH,MAAM,CAAC,MAAM,sBAAsB,GAAyC,CAAC;KAC1E,MAAM,CAAC;IACN,EAAE,EAAE,QAAQ;IACZ,OAAO,EAAE,QAAQ;IACjB,YAAY,EAAE,eAAe;IAC7B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;CAC9B,CAAC;KACD,SAAS,CACR,CAAC,IAAI,EAAoB,EAAE,CAAC,CAAC;IAC3B,EAAE,EAAE,IAAI,CAAC,EAAE;IACX,MAAM,EAAE,IAAI,CAAC,OAAO;IACpB,WAAW,EAAE,IAAI,CAAC,YAAY;IAC9B,eAAe,EAAE,IAAI,CAAC,iBAAiB;CACxC,CAAC,CACH,CAAA"}
@@ -74,12 +74,22 @@ export interface CsvColumn {
74
74
  /**
75
75
  * A column an import may map but an export never writes.
76
76
  *
77
- * The People affiliation columns are the only ones: a person can hold many
78
- * positions, so a single company and title on the person row would be lossy on
79
- * the way out. They map on the way in to drive a Position, and the export and
80
- * template leave them out. See `headersFor`.
77
+ * The People affiliation columns are the original example: a person can hold
78
+ * many positions, so a single company and title on the person row would be
79
+ * lossy on the way out. They map on the way in to drive a Position, and the
80
+ * export and template leave them out. The consent grant columns follow the
81
+ * same rule — a person's consent state is exported serialised in `consents`,
82
+ * not row-by-row per purpose. See `headersFor`.
81
83
  */
82
84
  readonly importOnly?: boolean;
85
+ /**
86
+ * A column an export writes but an import never maps. `do_not_contact` and
87
+ * the serialised `consents` list are exported for readability; consent
88
+ * round-trips through `consent_status` / `consent_at` plus the job's
89
+ * `consent_purpose_id`, and `do_not_contact` is a Person patch, not part of
90
+ * an import job.
91
+ */
92
+ readonly exportOnly?: boolean;
83
93
  }
84
94
  /**
85
95
  * The canonical Kelpie CSV columns per object (`import-export.md`).
@@ -91,6 +101,14 @@ export interface CsvColumn {
91
101
  * still carry `company_domain`, `company_name` and `title`, which drive a
92
102
  * Position for the person rather than a field on them. Those three are
93
103
  * `importOnly`, so an export and a template leave them out.
104
+ *
105
+ * A People row still has to name its person, but `name` is not marked `required`
106
+ * here: the row satisfies it with `name`, or with `first_name` / `last_name` for
107
+ * the name to be composed from. `required` is a per-column flag and that is a
108
+ * statement about a pair of them, so the rule lives in the People row check
109
+ * instead. Every CRM worth migrating from exports first and last name in their
110
+ * own columns and most export no full name at all, which is the case this
111
+ * exists for.
94
112
  */
95
113
  export declare const OBJECT_COLUMNS: Readonly<Record<ImportObject, readonly CsvColumn[]>>;
96
114
  /** Columns whose value is a pipe-separated list (`a|b|c`), per `import-export.md`. */
@@ -149,6 +167,12 @@ export interface ImportJob extends RecordTimestamps {
149
167
  readonly onMissingCompany: OnMissingCompany;
150
168
  readonly matchKey: string;
151
169
  readonly columnMap: ImportColumnMap;
170
+ /**
171
+ * The consent purpose a People import grants (or withdraws) for each row
172
+ * that carries a `consent_status`. Required whenever the map names
173
+ * `consent_status` or `consent_at`. Null for every other object.
174
+ */
175
+ readonly consentPurposeId: string | null;
152
176
  /** The headers as they appeared in the uploaded file, in file order. */
153
177
  readonly sourceHeaders: readonly string[];
154
178
  readonly fileName: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"importExport.d.ts","sourceRoot":"","sources":["../src/importExport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"importExport.d.ts","sourceRoot":"","sources":["../src/importExport.ts"],"names":[],"mappings":"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"}
@@ -91,6 +91,14 @@ export const ON_MISSING_COMPANY_LABELS = {
91
91
  * still carry `company_domain`, `company_name` and `title`, which drive a
92
92
  * Position for the person rather than a field on them. Those three are
93
93
  * `importOnly`, so an export and a template leave them out.
94
+ *
95
+ * A People row still has to name its person, but `name` is not marked `required`
96
+ * here: the row satisfies it with `name`, or with `first_name` / `last_name` for
97
+ * the name to be composed from. `required` is a per-column flag and that is a
98
+ * statement about a pair of them, so the rule lives in the People row check
99
+ * instead. Every CRM worth migrating from exports first and last name in their
100
+ * own columns and most export no full name at all, which is the case this
101
+ * exists for.
94
102
  */
95
103
  export const OBJECT_COLUMNS = {
96
104
  companies: [
@@ -108,7 +116,11 @@ export const OBJECT_COLUMNS = {
108
116
  { key: 'hq', label: 'HQ', required: false },
109
117
  ],
110
118
  people: [
111
- { key: 'name', label: 'Name', required: true },
119
+ { key: 'name', label: 'Name', required: false },
120
+ { key: 'salutation', label: 'Salutation', required: false },
121
+ { key: 'first_name', label: 'First name', required: false },
122
+ { key: 'last_name', label: 'Last name', required: false },
123
+ { key: 'suffix', label: 'Suffix', required: false },
112
124
  { key: 'email', label: 'Email', required: true },
113
125
  { key: 'timezone', label: 'Timezone', required: false },
114
126
  { key: 'location', label: 'Location', required: false },
@@ -118,9 +130,18 @@ export const OBJECT_COLUMNS = {
118
130
  { key: 'summary', label: 'Summary', required: false },
119
131
  { key: 'tags', label: 'Tags', required: false },
120
132
  { key: 'phones', label: 'Phones', required: false },
133
+ { key: 'do_not_contact', label: 'Do not contact', required: false, exportOnly: true },
134
+ { key: 'consents', label: 'Consents', required: false, exportOnly: true },
121
135
  { key: 'company_domain', label: 'Company domain', required: false, importOnly: true },
122
136
  { key: 'company_name', label: 'Company name', required: false, importOnly: true },
123
137
  { key: 'title', label: 'Title', required: false, importOnly: true },
138
+ /**
139
+ * Consent grant to write for the job's purpose. `granted` or `withdrawn`.
140
+ * Mapping either column with no `consent_purpose_id` set on the job is a
141
+ * `422` — the writer would not know which purpose the row is for.
142
+ */
143
+ { key: 'consent_status', label: 'Consent status', required: false, importOnly: true },
144
+ { key: 'consent_at', label: 'Consent at', required: false, importOnly: true },
124
145
  ],
125
146
  positions: [
126
147
  { key: 'person_email', label: 'Person email', required: true },
@@ -230,6 +251,7 @@ export const importJobSchema = z
230
251
  on_missing_company: z.enum(ON_MISSING_COMPANY),
231
252
  match_key: z.string(),
232
253
  column_map: z.record(z.string(), z.string().nullable()),
254
+ consent_purpose_id: idSchema.nullable(),
233
255
  source_headers: z.array(z.string()),
234
256
  file_name: z.string().nullable(),
235
257
  counts: countsSchema,
@@ -247,6 +269,7 @@ export const importJobSchema = z
247
269
  onMissingCompany: wire.on_missing_company,
248
270
  matchKey: wire.match_key,
249
271
  columnMap: wire.column_map,
272
+ consentPurposeId: wire.consent_purpose_id,
250
273
  sourceHeaders: wire.source_headers,
251
274
  fileName: wire.file_name,
252
275
  counts: wire.counts,