@voyant-travel/relationships 0.119.4 → 0.120.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/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/route-runtime.d.ts +4 -0
- package/dist/route-runtime.d.ts.map +1 -1
- package/dist/route-runtime.js +1 -0
- package/dist/routes/accounts.d.ts +32 -0
- package/dist/routes/accounts.d.ts.map +1 -1
- package/dist/routes/accounts.js +65 -11
- package/dist/routes/activities.d.ts +12 -0
- package/dist/routes/activities.d.ts.map +1 -1
- package/dist/routes/custom-fields.d.ts +8 -12
- package/dist/routes/custom-fields.d.ts.map +1 -1
- package/dist/routes/index.d.ts +50 -12
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/schema-accounts.d.ts +38 -0
- package/dist/schema-accounts.d.ts.map +1 -1
- package/dist/schema-accounts.js +12 -0
- package/dist/schema-activities.d.ts +20 -233
- package/dist/schema-activities.d.ts.map +1 -1
- package/dist/schema-activities.js +3 -24
- package/dist/schema-relations.d.ts +0 -6
- package/dist/schema-relations.d.ts.map +1 -1
- package/dist/schema-relations.js +1 -10
- package/dist/service/accounts-merge.d.ts +2 -0
- package/dist/service/accounts-merge.d.ts.map +1 -1
- package/dist/service/accounts-merge.js +11 -12
- package/dist/service/accounts-organizations.d.ts +4 -0
- package/dist/service/accounts-organizations.d.ts.map +1 -1
- package/dist/service/accounts-people.d.ts +7 -2
- package/dist/service/accounts-people.d.ts.map +1 -1
- package/dist/service/accounts-people.js +23 -9
- package/dist/service/accounts-shared.d.ts +1 -0
- package/dist/service/accounts-shared.d.ts.map +1 -1
- package/dist/service/accounts-shared.js +1 -0
- package/dist/service/accounts.d.ts +12 -2
- package/dist/service/accounts.d.ts.map +1 -1
- package/dist/service/activities.d.ts +4 -0
- package/dist/service/activities.d.ts.map +1 -1
- package/dist/service/custom-fields-registry.d.ts +17 -0
- package/dist/service/custom-fields-registry.d.ts.map +1 -0
- package/dist/service/custom-fields-registry.js +44 -0
- package/dist/service/custom-fields-value-mapping.d.ts +35 -0
- package/dist/service/custom-fields-value-mapping.d.ts.map +1 -0
- package/dist/service/custom-fields-value-mapping.js +94 -0
- package/dist/service/custom-fields.d.ts +14 -34
- package/dist/service/custom-fields.d.ts.map +1 -1
- package/dist/service/custom-fields.js +148 -42
- package/dist/service/index.d.ts +31 -37
- package/dist/service/index.d.ts.map +1 -1
- package/package.json +8 -8
package/dist/index.d.ts
CHANGED
|
@@ -19,8 +19,9 @@ export declare const relationshipsHonoModule: HonoModule;
|
|
|
19
19
|
export type { CustomerSignalCreatedEvent, CustomerSignalCreatedIntake } from "./events.js";
|
|
20
20
|
export type { RelationshipsRouteRuntime, RelationshipsRouteRuntimeOptions, ResolveRelationshipsKmsProvider, } from "./route-runtime.js";
|
|
21
21
|
export { buildRelationshipsRouteRuntime, RELATIONSHIPS_ROUTE_RUNTIME_CONTAINER_KEY, } from "./route-runtime.js";
|
|
22
|
-
export type { Activity, ActivityLink, ActivityParticipant, CommunicationLogEntry, CustomerSignal, CustomFieldDefinition,
|
|
23
|
-
export { activities, activityLinks, activityParticipants, communicationLog, customerSignalKindEnum, customerSignalSourceEnum, customerSignalStatusEnum, customerSignals, customFieldDefinitions,
|
|
22
|
+
export type { Activity, ActivityLink, ActivityParticipant, CommunicationLogEntry, CustomerSignal, CustomFieldDefinition, NewActivity, NewActivityLink, NewActivityParticipant, NewCommunicationLogEntry, NewCustomerSignal, NewCustomFieldDefinition, NewOrganization, NewOrganizationNote, NewPerson, NewPersonDocument, NewPersonNote, NewPersonPaymentMethod, NewPersonRelationship, NewSegment, NewSegmentMember, Organization, OrganizationNote, Person, PersonDocument, PersonNote, PersonPaymentMethod, PersonRelationship, Segment, SegmentMember, } from "./schema.js";
|
|
23
|
+
export { activities, activityLinks, activityParticipants, communicationLog, customerSignalKindEnum, customerSignalSourceEnum, customerSignalStatusEnum, customerSignals, customFieldDefinitions, organizationNotes, organizations, people, personDirectoryView, personDocuments, personDocumentTypeEnum, personNotes, personPaymentMethods, personRelationshipKindEnum, personRelationships, segmentMembers, segments, } from "./schema.js";
|
|
24
|
+
export { loadCustomFieldDefinitions } from "./service/custom-fields-registry.js";
|
|
24
25
|
export type { CreateCustomerSignalInput, CustomerSignalListQuery, UpdateCustomerSignalInput, } from "./service/customer-signals.js";
|
|
25
26
|
export { customerSignalsService } from "./service/customer-signals.js";
|
|
26
27
|
export type { CreatePersonDocumentInput, PersonDocumentListQuery, PersonDocumentType, PersonTravelSnapshot, UpdatePersonDocumentInput, } from "./service/person-documents.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AACtF,OAAO,EAGL,KAAK,gCAAgC,EACtC,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAEzD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAE5D,eAAO,MAAM,cAAc,EAAE,kBAK5B,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,kBAKlC,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,MAOjC,CAAA;AAED,MAAM,WAAW,8BAA+B,SAAQ,gCAAgC;CAAG;AAE3F;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,GAAE,8BAAmC,GAC3C,UAAU,CAcZ;AAED,eAAO,MAAM,uBAAuB,EAAE,UAA4C,CAAA;AAElF,YAAY,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;AAC1F,YAAY,EACV,yBAAyB,EACzB,gCAAgC,EAChC,+BAA+B,GAChC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,8BAA8B,EAC9B,yCAAyC,GAC1C,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,EACd,qBAAqB,EACrB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -41,7 +41,8 @@ export function createRelationshipsHonoModule(options = {}) {
|
|
|
41
41
|
}
|
|
42
42
|
export const relationshipsHonoModule = createRelationshipsHonoModule();
|
|
43
43
|
export { buildRelationshipsRouteRuntime, RELATIONSHIPS_ROUTE_RUNTIME_CONTAINER_KEY, } from "./route-runtime.js";
|
|
44
|
-
export { activities, activityLinks, activityParticipants, communicationLog, customerSignalKindEnum, customerSignalSourceEnum, customerSignalStatusEnum, customerSignals, customFieldDefinitions,
|
|
44
|
+
export { activities, activityLinks, activityParticipants, communicationLog, customerSignalKindEnum, customerSignalSourceEnum, customerSignalStatusEnum, customerSignals, customFieldDefinitions, organizationNotes, organizations, people, personDirectoryView, personDocuments, personDocumentTypeEnum, personNotes, personPaymentMethods, personRelationshipKindEnum, personRelationships, segmentMembers, segments, } from "./schema.js";
|
|
45
|
+
export { loadCustomFieldDefinitions } from "./service/custom-fields-registry.js";
|
|
45
46
|
export { customerSignalsService } from "./service/customer-signals.js";
|
|
46
47
|
export { personDocumentNumberPlaintextSchema, personDocumentsService, personPiiBlobPlaintextSchema, } from "./service/person-documents.js";
|
|
47
48
|
export { personRelationshipsService } from "./service/person-relationships.js";
|
package/dist/route-runtime.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { CustomFieldRegistryResolver } from "@voyant-travel/core/custom-fields";
|
|
1
2
|
import { type KmsProvider } from "@voyant-travel/utils";
|
|
2
3
|
export declare const RELATIONSHIPS_ROUTE_RUNTIME_CONTAINER_KEY = "runtime.relationships.routes";
|
|
3
4
|
/**
|
|
@@ -13,9 +14,12 @@ export interface RelationshipsRouteRuntime {
|
|
|
13
14
|
* require KMS gracefully reject with a 503 in that case.
|
|
14
15
|
*/
|
|
15
16
|
getKmsProvider(): Promise<KmsProvider | null>;
|
|
17
|
+
/** Resolves the custom-field registry (code ∪ runtime DB) for a request. */
|
|
18
|
+
customFields?: CustomFieldRegistryResolver;
|
|
16
19
|
}
|
|
17
20
|
export interface RelationshipsRouteRuntimeOptions {
|
|
18
21
|
resolveKmsProvider?: ResolveRelationshipsKmsProvider;
|
|
22
|
+
customFields?: CustomFieldRegistryResolver;
|
|
19
23
|
}
|
|
20
24
|
export declare function buildRelationshipsRouteRuntime(bindings: Record<string, unknown>, options?: RelationshipsRouteRuntimeOptions): RelationshipsRouteRuntime;
|
|
21
25
|
//# sourceMappingURL=route-runtime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-runtime.d.ts","sourceRoot":"","sources":["../src/route-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAEjF,eAAO,MAAM,yCAAyC,iCAAiC,CAAA;AAEvF;;;;GAIG;AACH,MAAM,MAAM,+BAA+B,GAAG,CAC5C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,KACpC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;AAEvC,MAAM,WAAW,yBAAyB;IACxC;;;;OAIG;IACH,cAAc,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"route-runtime.d.ts","sourceRoot":"","sources":["../src/route-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAA;AACpF,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAEjF,eAAO,MAAM,yCAAyC,iCAAiC,CAAA;AAEvF;;;;GAIG;AACH,MAAM,MAAM,+BAA+B,GAAG,CAC5C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,KACpC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;AAEvC,MAAM,WAAW,yBAAyB;IACxC;;;;OAIG;IACH,cAAc,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IAC7C,4EAA4E;IAC5E,YAAY,CAAC,EAAE,2BAA2B,CAAA;CAC3C;AAED,MAAM,WAAW,gCAAgC;IAC/C,kBAAkB,CAAC,EAAE,+BAA+B,CAAA;IACpD,YAAY,CAAC,EAAE,2BAA2B,CAAA;CAC3C;AAmBD,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,OAAO,GAAE,gCAAqC,GAC7C,yBAAyB,CAgB3B"}
|
package/dist/route-runtime.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import type { ModuleContainer } from "@voyant-travel/core";
|
|
1
2
|
import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
|
|
2
3
|
type Env = {
|
|
3
4
|
Variables: {
|
|
4
5
|
db: PostgresJsDatabase;
|
|
5
6
|
userId?: string;
|
|
7
|
+
container?: ModuleContainer;
|
|
6
8
|
};
|
|
7
9
|
};
|
|
8
10
|
export declare const accountRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
@@ -26,6 +28,9 @@ export declare const accountRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
26
28
|
source: string | null;
|
|
27
29
|
sourceRef: string | null;
|
|
28
30
|
tags: string[];
|
|
31
|
+
customFields: {
|
|
32
|
+
[x: string]: import("hono/utils/types").JSONValue;
|
|
33
|
+
};
|
|
29
34
|
notes: string | null;
|
|
30
35
|
createdAt: string;
|
|
31
36
|
updatedAt: string;
|
|
@@ -63,6 +68,9 @@ export declare const accountRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
63
68
|
preferredLanguage: string | null;
|
|
64
69
|
paymentTerms: number | null;
|
|
65
70
|
sourceRef: string | null;
|
|
71
|
+
customFields: {
|
|
72
|
+
[x: string]: import("hono/utils/types").JSONValue;
|
|
73
|
+
};
|
|
66
74
|
archivedAt: string | null;
|
|
67
75
|
} | undefined;
|
|
68
76
|
};
|
|
@@ -106,6 +114,9 @@ export declare const accountRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
106
114
|
source: string | null;
|
|
107
115
|
sourceRef: string | null;
|
|
108
116
|
tags: string[];
|
|
117
|
+
customFields: {
|
|
118
|
+
[x: string]: import("hono/utils/types").JSONValue;
|
|
119
|
+
};
|
|
109
120
|
notes: string | null;
|
|
110
121
|
createdAt: string;
|
|
111
122
|
updatedAt: string;
|
|
@@ -152,6 +163,9 @@ export declare const accountRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
152
163
|
source: string | null;
|
|
153
164
|
sourceRef: string | null;
|
|
154
165
|
tags: string[];
|
|
166
|
+
customFields: {
|
|
167
|
+
[x: string]: import("hono/utils/types").JSONValue;
|
|
168
|
+
};
|
|
155
169
|
notes: string | null;
|
|
156
170
|
createdAt: string;
|
|
157
171
|
updatedAt: string;
|
|
@@ -198,6 +212,9 @@ export declare const accountRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
198
212
|
source: string | null;
|
|
199
213
|
sourceRef: string | null;
|
|
200
214
|
tags: string[];
|
|
215
|
+
customFields: {
|
|
216
|
+
[x: string]: import("hono/utils/types").JSONValue;
|
|
217
|
+
};
|
|
201
218
|
notes: string | null;
|
|
202
219
|
createdAt: string;
|
|
203
220
|
updatedAt: string;
|
|
@@ -500,6 +517,9 @@ export declare const accountRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
500
517
|
source: string | null;
|
|
501
518
|
sourceRef: string | null;
|
|
502
519
|
tags: string[];
|
|
520
|
+
customFields: {
|
|
521
|
+
[x: string]: import("hono/utils/types").JSONValue;
|
|
522
|
+
};
|
|
503
523
|
dateOfBirth: string | null;
|
|
504
524
|
notes: string | null;
|
|
505
525
|
accessibilityEncrypted: {
|
|
@@ -550,6 +570,9 @@ export declare const accountRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
550
570
|
source: string | null;
|
|
551
571
|
sourceRef: string | null;
|
|
552
572
|
tags: string[];
|
|
573
|
+
customFields: {
|
|
574
|
+
[x: string]: import("hono/utils/types").JSONValue;
|
|
575
|
+
};
|
|
553
576
|
dateOfBirth: string | null;
|
|
554
577
|
notes: string | null;
|
|
555
578
|
accessibilityEncrypted: {
|
|
@@ -612,6 +635,9 @@ export declare const accountRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
612
635
|
source: string | null;
|
|
613
636
|
sourceRef: string | null;
|
|
614
637
|
tags: string[];
|
|
638
|
+
customFields: {
|
|
639
|
+
[x: string]: import("hono/utils/types").JSONValue;
|
|
640
|
+
};
|
|
615
641
|
dateOfBirth: string | null;
|
|
616
642
|
notes: string | null;
|
|
617
643
|
accessibilityEncrypted: {
|
|
@@ -674,6 +700,9 @@ export declare const accountRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
674
700
|
source: string | null;
|
|
675
701
|
sourceRef: string | null;
|
|
676
702
|
tags: string[];
|
|
703
|
+
customFields: {
|
|
704
|
+
[x: string]: import("hono/utils/types").JSONValue;
|
|
705
|
+
};
|
|
677
706
|
dateOfBirth: string | null;
|
|
678
707
|
notes: string | null;
|
|
679
708
|
accessibilityEncrypted: {
|
|
@@ -736,6 +765,9 @@ export declare const accountRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
736
765
|
source: string | null;
|
|
737
766
|
sourceRef: string | null;
|
|
738
767
|
tags: string[];
|
|
768
|
+
customFields: {
|
|
769
|
+
[x: string]: import("hono/utils/types").JSONValue;
|
|
770
|
+
};
|
|
739
771
|
dateOfBirth: string | null;
|
|
740
772
|
notes: string | null;
|
|
741
773
|
accessibilityEncrypted: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/routes/accounts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/routes/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAmB1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AA8BjE,KAAK,GAAG,GAAG;IACT,SAAS,EAAE;QACT,EAAE,EAAE,kBAAkB,CAAA;QACtB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,SAAS,CAAC,EAAE,eAAe,CAAA;KAC5B,CAAA;CACF,CAAA;AAyED,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA4VtB,CAAA"}
|
package/dist/routes/accounts.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { customFieldsVisibleIn, validateCustomFields, } from "@voyant-travel/core/custom-fields";
|
|
2
|
+
import { idempotencyKey, parseJsonBody, parseQuery, RequestValidationError, requireUserId, } from "@voyant-travel/hono";
|
|
2
3
|
import { insertAddressSchema, insertContactPointSchema, updateAddressSchema, updateContactPointSchema, } from "@voyant-travel/identity/validation";
|
|
3
4
|
import { Hono } from "hono";
|
|
5
|
+
import { RELATIONSHIPS_ROUTE_RUNTIME_CONTAINER_KEY, } from "../route-runtime.js";
|
|
4
6
|
import { RelationshipsMergeError } from "../service/accounts-merge.js";
|
|
5
7
|
import { relationshipsService } from "../service/index.js";
|
|
6
8
|
import { communicationListQuerySchema, insertCommunicationLogSchema, insertOrganizationNoteSchema, insertOrganizationSchema, insertPersonNoteSchema, insertPersonPaymentMethodSchema, insertPersonSchema, insertSegmentSchema, mergeOrganizationSchema, mergePersonSchema, organizationListQuerySchema, personListQuerySchema, updateOrganizationNoteSchema, updateOrganizationSchema, updatePersonNoteSchema, updatePersonPaymentMethodSchema, updatePersonSchema, } from "../validation.js";
|
|
@@ -12,6 +14,50 @@ function mergeErrorResponse(c, error) {
|
|
|
12
14
|
}
|
|
13
15
|
throw error;
|
|
14
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Validate a person/organization write's `customFields` against the resolved
|
|
19
|
+
* custom-field registry (code ∪ runtime `custom_field_definitions`) and replace
|
|
20
|
+
* the payload with the cleaned value. No-op when the write carries none. Rejects
|
|
21
|
+
* (400) unknown keys / missing required / bad types, or any `customFields` when
|
|
22
|
+
* the deployment declares none. See the custom-fields unification ADR.
|
|
23
|
+
*/
|
|
24
|
+
async function validateRelationshipsCustomFields(c, entity, data, mode) {
|
|
25
|
+
const runtime = c.get("container")?.resolve(RELATIONSHIPS_ROUTE_RUNTIME_CONTAINER_KEY);
|
|
26
|
+
const resolveRegistry = runtime?.customFields;
|
|
27
|
+
if (data.customFields === undefined) {
|
|
28
|
+
// Partial update without custom fields, or no registry → no-op. A create with
|
|
29
|
+
// an absent envelope still validates `{}` so `required` fields are enforced.
|
|
30
|
+
if (mode === "update" || !resolveRegistry) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else if (!resolveRegistry) {
|
|
35
|
+
throw new RequestValidationError("Custom fields are not configured for this deployment", {
|
|
36
|
+
fields: { fieldErrors: { customFields: ["not configured"] }, formErrors: [] },
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
if (!resolveRegistry) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const result = validateCustomFields(await resolveRegistry(c.get("db")), entity, data.customFields ?? {});
|
|
43
|
+
if (!result.ok) {
|
|
44
|
+
throw new RequestValidationError(`Invalid ${entity} custom fields`, {
|
|
45
|
+
fields: {
|
|
46
|
+
fieldErrors: Object.fromEntries(result.errors.map((e) => [e.key, [e.message]])),
|
|
47
|
+
formErrors: [],
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
data.customFields = result.value;
|
|
52
|
+
}
|
|
53
|
+
/** Custom fields for `entity` visible in `channel` (export / invoice / search). */
|
|
54
|
+
async function resolveVisibleCustomFields(c, entity, channel) {
|
|
55
|
+
const runtime = c.get("container")?.resolve(RELATIONSHIPS_ROUTE_RUNTIME_CONTAINER_KEY);
|
|
56
|
+
const resolveRegistry = runtime?.customFields;
|
|
57
|
+
if (!resolveRegistry)
|
|
58
|
+
return [];
|
|
59
|
+
return customFieldsVisibleIn(await resolveRegistry(c.get("db")), entity, channel);
|
|
60
|
+
}
|
|
15
61
|
export const accountRoutes = new Hono()
|
|
16
62
|
// Organizations
|
|
17
63
|
.get("/organizations", async (c) => {
|
|
@@ -19,9 +65,9 @@ export const accountRoutes = new Hono()
|
|
|
19
65
|
return c.json(await relationshipsService.listOrganizations(c.get("db"), query));
|
|
20
66
|
})
|
|
21
67
|
.post("/organizations", idempotencyKey({ scope: "POST /v1/admin/relationships/organizations" }), async (c) => {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}, 201);
|
|
68
|
+
const data = await parseJsonBody(c, insertOrganizationSchema);
|
|
69
|
+
await validateRelationshipsCustomFields(c, organizationEntity, data, "create");
|
|
70
|
+
return c.json({ data: await relationshipsService.createOrganization(c.get("db"), data) }, 201);
|
|
25
71
|
})
|
|
26
72
|
.get("/organizations/:id", async (c) => {
|
|
27
73
|
const row = await relationshipsService.getOrganizationById(c.get("db"), c.req.param("id"));
|
|
@@ -30,7 +76,9 @@ export const accountRoutes = new Hono()
|
|
|
30
76
|
return c.json({ data: row });
|
|
31
77
|
})
|
|
32
78
|
.patch("/organizations/:id", async (c) => {
|
|
33
|
-
const
|
|
79
|
+
const data = await parseJsonBody(c, updateOrganizationSchema);
|
|
80
|
+
await validateRelationshipsCustomFields(c, organizationEntity, data, "update");
|
|
81
|
+
const row = await relationshipsService.updateOrganization(c.get("db"), c.req.param("id"), data);
|
|
34
82
|
if (!row)
|
|
35
83
|
return c.json({ error: "Organization not found" }, 404);
|
|
36
84
|
return c.json({ data: row });
|
|
@@ -99,12 +147,15 @@ export const accountRoutes = new Hono()
|
|
|
99
147
|
// People
|
|
100
148
|
.get("/people", async (c) => {
|
|
101
149
|
const query = parseQuery(c, personListQuerySchema);
|
|
102
|
-
|
|
150
|
+
const searchableFields = query.search
|
|
151
|
+
? await resolveVisibleCustomFields(c, personEntity, "search")
|
|
152
|
+
: [];
|
|
153
|
+
return c.json(await relationshipsService.listPeople(c.get("db"), query, searchableFields));
|
|
103
154
|
})
|
|
104
155
|
.post("/people", idempotencyKey({ scope: "POST /v1/admin/relationships/people" }), async (c) => {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
}, 201);
|
|
156
|
+
const data = await parseJsonBody(c, insertPersonSchema);
|
|
157
|
+
await validateRelationshipsCustomFields(c, personEntity, data, "create");
|
|
158
|
+
return c.json({ data: await relationshipsService.createPerson(c.get("db"), data) }, 201);
|
|
108
159
|
})
|
|
109
160
|
.get("/people/:id", async (c) => {
|
|
110
161
|
const row = await relationshipsService.getPersonById(c.get("db"), c.req.param("id"));
|
|
@@ -113,7 +164,9 @@ export const accountRoutes = new Hono()
|
|
|
113
164
|
return c.json({ data: row });
|
|
114
165
|
})
|
|
115
166
|
.patch("/people/:id", async (c) => {
|
|
116
|
-
const
|
|
167
|
+
const data = await parseJsonBody(c, updatePersonSchema);
|
|
168
|
+
await validateRelationshipsCustomFields(c, personEntity, data, "update");
|
|
169
|
+
const row = await relationshipsService.updatePerson(c.get("db"), c.req.param("id"), data);
|
|
117
170
|
if (!row)
|
|
118
171
|
return c.json({ error: "Person not found" }, 404);
|
|
119
172
|
return c.json({ data: row });
|
|
@@ -232,7 +285,8 @@ export const accountRoutes = new Hono()
|
|
|
232
285
|
})
|
|
233
286
|
// CSV export/import
|
|
234
287
|
.post("/people/export", async (c) => {
|
|
235
|
-
const
|
|
288
|
+
const visibleFields = await resolveVisibleCustomFields(c, personEntity, "export");
|
|
289
|
+
const csv = await relationshipsService.exportPeopleCsv(c.get("db"), visibleFields);
|
|
236
290
|
return new Response(csv, {
|
|
237
291
|
headers: {
|
|
238
292
|
"Content-Type": "text/csv",
|
|
@@ -20,6 +20,9 @@ export declare const activityRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
20
20
|
completedAt: string | null;
|
|
21
21
|
location: string | null;
|
|
22
22
|
description: string | null;
|
|
23
|
+
customFields: {
|
|
24
|
+
[x: string]: import("hono/utils/types").JSONValue;
|
|
25
|
+
};
|
|
23
26
|
createdAt: string;
|
|
24
27
|
updatedAt: string;
|
|
25
28
|
}[];
|
|
@@ -45,6 +48,9 @@ export declare const activityRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
45
48
|
updatedAt: string;
|
|
46
49
|
completedAt: string | null;
|
|
47
50
|
ownerId: string | null;
|
|
51
|
+
customFields: {
|
|
52
|
+
[x: string]: import("hono/utils/types").JSONValue;
|
|
53
|
+
};
|
|
48
54
|
subject: string;
|
|
49
55
|
dueAt: string | null;
|
|
50
56
|
location: string | null;
|
|
@@ -84,6 +90,9 @@ export declare const activityRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
84
90
|
completedAt: string | null;
|
|
85
91
|
location: string | null;
|
|
86
92
|
description: string | null;
|
|
93
|
+
customFields: {
|
|
94
|
+
[x: string]: import("hono/utils/types").JSONValue;
|
|
95
|
+
};
|
|
87
96
|
createdAt: string;
|
|
88
97
|
updatedAt: string;
|
|
89
98
|
};
|
|
@@ -122,6 +131,9 @@ export declare const activityRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
122
131
|
completedAt: string | null;
|
|
123
132
|
location: string | null;
|
|
124
133
|
description: string | null;
|
|
134
|
+
customFields: {
|
|
135
|
+
[x: string]: import("hono/utils/types").JSONValue;
|
|
136
|
+
};
|
|
125
137
|
createdAt: string;
|
|
126
138
|
updatedAt: string;
|
|
127
139
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activities.d.ts","sourceRoot":"","sources":["../../src/routes/activities.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAYjE,KAAK,GAAG,GAAG;IACT,SAAS,EAAE;QACT,EAAE,EAAE,kBAAkB,CAAA;QACtB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AAED,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"activities.d.ts","sourceRoot":"","sources":["../../src/routes/activities.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAYjE,KAAK,GAAG,GAAG;IACT,SAAS,EAAE;QACT,EAAE,EAAE,kBAAkB,CAAA;QACtB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCA8EvB,CAAA"}
|
|
@@ -15,7 +15,7 @@ export declare const customFieldRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
15
15
|
entityType: "organization" | "person" | "quote" | "activity";
|
|
16
16
|
key: string;
|
|
17
17
|
label: string;
|
|
18
|
-
fieldType: "boolean" | "json" | "date" | "text" | "enum" | "set" | "phone" | "varchar" | "double" | "
|
|
18
|
+
fieldType: "boolean" | "json" | "date" | "text" | "monetary" | "enum" | "set" | "phone" | "varchar" | "double" | "address";
|
|
19
19
|
isRequired: boolean;
|
|
20
20
|
isSearchable: boolean;
|
|
21
21
|
options: {
|
|
@@ -49,7 +49,7 @@ export declare const customFieldRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
49
49
|
updatedAt: string;
|
|
50
50
|
entityType: "organization" | "person" | "quote" | "activity";
|
|
51
51
|
label: string;
|
|
52
|
-
fieldType: "boolean" | "json" | "date" | "text" | "enum" | "set" | "phone" | "varchar" | "double" | "
|
|
52
|
+
fieldType: "boolean" | "json" | "date" | "text" | "monetary" | "enum" | "set" | "phone" | "varchar" | "double" | "address";
|
|
53
53
|
isRequired: boolean;
|
|
54
54
|
isSearchable: boolean;
|
|
55
55
|
} | undefined;
|
|
@@ -83,7 +83,7 @@ export declare const customFieldRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
83
83
|
entityType: "organization" | "person" | "quote" | "activity";
|
|
84
84
|
key: string;
|
|
85
85
|
label: string;
|
|
86
|
-
fieldType: "boolean" | "json" | "date" | "text" | "enum" | "set" | "phone" | "varchar" | "double" | "
|
|
86
|
+
fieldType: "boolean" | "json" | "date" | "text" | "monetary" | "enum" | "set" | "phone" | "varchar" | "double" | "address";
|
|
87
87
|
isRequired: boolean;
|
|
88
88
|
isSearchable: boolean;
|
|
89
89
|
options: {
|
|
@@ -123,7 +123,7 @@ export declare const customFieldRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
123
123
|
entityType: "organization" | "person" | "quote" | "activity";
|
|
124
124
|
key: string;
|
|
125
125
|
label: string;
|
|
126
|
-
fieldType: "boolean" | "json" | "date" | "text" | "enum" | "set" | "phone" | "varchar" | "double" | "
|
|
126
|
+
fieldType: "boolean" | "json" | "date" | "text" | "monetary" | "enum" | "set" | "phone" | "varchar" | "double" | "address";
|
|
127
127
|
isRequired: boolean;
|
|
128
128
|
isSearchable: boolean;
|
|
129
129
|
options: {
|
|
@@ -172,7 +172,7 @@ export declare const customFieldRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
172
172
|
data: {
|
|
173
173
|
id: string;
|
|
174
174
|
definitionId: string;
|
|
175
|
-
entityType:
|
|
175
|
+
entityType: string;
|
|
176
176
|
entityId: string;
|
|
177
177
|
textValue: string | null;
|
|
178
178
|
numberValue: number | null;
|
|
@@ -183,8 +183,6 @@ export declare const customFieldRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
183
183
|
jsonValue: string[] | {
|
|
184
184
|
[x: string]: import("hono/utils/types").JSONValue;
|
|
185
185
|
} | null;
|
|
186
|
-
createdAt: string;
|
|
187
|
-
updatedAt: string;
|
|
188
186
|
}[];
|
|
189
187
|
total: number;
|
|
190
188
|
limit: number;
|
|
@@ -205,11 +203,9 @@ export declare const customFieldRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
205
203
|
output: {
|
|
206
204
|
data: {
|
|
207
205
|
id: string;
|
|
208
|
-
createdAt: string;
|
|
209
|
-
updatedAt: string;
|
|
210
|
-
entityType: "organization" | "person" | "quote" | "activity";
|
|
211
|
-
entityId: string;
|
|
212
206
|
definitionId: string;
|
|
207
|
+
entityType: string;
|
|
208
|
+
entityId: string;
|
|
213
209
|
textValue: string | null;
|
|
214
210
|
numberValue: number | null;
|
|
215
211
|
dateValue: string | null;
|
|
@@ -219,7 +215,7 @@ export declare const customFieldRoutes: import("hono/hono-base").HonoBase<Env, {
|
|
|
219
215
|
jsonValue: string[] | {
|
|
220
216
|
[x: string]: import("hono/utils/types").JSONValue;
|
|
221
217
|
} | null;
|
|
222
|
-
}
|
|
218
|
+
};
|
|
223
219
|
};
|
|
224
220
|
outputFormat: "json";
|
|
225
221
|
status: 200;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-fields.d.ts","sourceRoot":"","sources":["../../src/routes/custom-fields.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAYjE,KAAK,GAAG,GAAG;IACT,SAAS,EAAE;QACT,EAAE,EAAE,kBAAkB,CAAA;QACtB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AAED,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"custom-fields.d.ts","sourceRoot":"","sources":["../../src/routes/custom-fields.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAYjE,KAAK,GAAG,GAAG;IACT,SAAS,EAAE;QACT,EAAE,EAAE,kBAAkB,CAAA;QACtB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCA6D1B,CAAA"}
|