@inkbox/sdk 0.7.2 → 0.7.4
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/README.md +218 -0
- package/dist/_http.d.ts +8 -1
- package/dist/_http.d.ts.map +1 -1
- package/dist/_http.js +15 -1
- package/dist/_http.js.map +1 -1
- package/dist/a2a/client.d.ts +3 -0
- package/dist/a2a/client.d.ts.map +1 -1
- package/dist/a2a/client.js +5 -0
- package/dist/a2a/client.js.map +1 -1
- package/dist/agent_identity.d.ts +4 -0
- package/dist/agent_identity.d.ts.map +1 -1
- package/dist/agent_identity.js +5 -1
- package/dist/agent_identity.js.map +1 -1
- package/dist/companion.d.ts +122 -0
- package/dist/companion.d.ts.map +1 -0
- package/dist/companion.js +170 -0
- package/dist/companion.js.map +1 -0
- package/dist/contact_rules.d.ts +9 -0
- package/dist/contact_rules.d.ts.map +1 -0
- package/dist/contact_rules.js +18 -0
- package/dist/contact_rules.js.map +1 -0
- package/dist/contacts/index.d.ts +1 -1
- package/dist/contacts/index.d.ts.map +1 -1
- package/dist/contacts/resources/communicationPolicy.d.ts +18 -2
- package/dist/contacts/resources/communicationPolicy.d.ts.map +1 -1
- package/dist/contacts/resources/communicationPolicy.js +21 -4
- package/dist/contacts/resources/communicationPolicy.js.map +1 -1
- package/dist/contacts/resources/contactAccess.d.ts +18 -0
- package/dist/contacts/resources/contactAccess.d.ts.map +1 -1
- package/dist/contacts/resources/contactAccess.js +44 -5
- package/dist/contacts/resources/contactAccess.js.map +1 -1
- package/dist/contacts/resources/contacts.d.ts +26 -10
- package/dist/contacts/resources/contacts.d.ts.map +1 -1
- package/dist/contacts/resources/contacts.js +18 -9
- package/dist/contacts/resources/contacts.js.map +1 -1
- package/dist/contacts/resources/permissions.d.ts +6 -0
- package/dist/contacts/resources/permissions.d.ts.map +1 -1
- package/dist/contacts/resources/permissions.js +51 -6
- package/dist/contacts/resources/permissions.js.map +1 -1
- package/dist/identities/resources/identities.d.ts.map +1 -1
- package/dist/identities/resources/identities.js +15 -0
- package/dist/identities/resources/identities.js.map +1 -1
- package/dist/identities/types.d.ts +20 -0
- package/dist/identities/types.d.ts.map +1 -1
- package/dist/identities/types.js +8 -0
- package/dist/identities/types.js.map +1 -1
- package/dist/imessage/resources/contactRules.d.ts +10 -4
- package/dist/imessage/resources/contactRules.d.ts.map +1 -1
- package/dist/imessage/resources/contactRules.js +11 -4
- package/dist/imessage/resources/contactRules.js.map +1 -1
- package/dist/imessage/types.d.ts +2 -0
- package/dist/imessage/types.d.ts.map +1 -1
- package/dist/imessage/types.js +1 -0
- package/dist/imessage/types.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/inkbox.d.ts +8 -0
- package/dist/inkbox.d.ts.map +1 -1
- package/dist/inkbox.js +47 -9
- package/dist/inkbox.js.map +1 -1
- package/dist/mail/resources/contactRules.d.ts +7 -1
- package/dist/mail/resources/contactRules.d.ts.map +1 -1
- package/dist/mail/resources/contactRules.js +8 -1
- package/dist/mail/resources/contactRules.js.map +1 -1
- package/dist/mail/resources/identityContactRules.d.ts +10 -4
- package/dist/mail/resources/identityContactRules.d.ts.map +1 -1
- package/dist/mail/resources/identityContactRules.js +11 -4
- package/dist/mail/resources/identityContactRules.js.map +1 -1
- package/dist/mail/resources/imports.d.ts.map +1 -1
- package/dist/mail/resources/imports.js +2 -0
- package/dist/mail/resources/imports.js.map +1 -1
- package/dist/mail/types.d.ts +9 -0
- package/dist/mail/types.d.ts.map +1 -1
- package/dist/mail/types.js +4 -0
- package/dist/mail/types.js.map +1 -1
- package/dist/phone/resources/contactRules.d.ts +7 -1
- package/dist/phone/resources/contactRules.d.ts.map +1 -1
- package/dist/phone/resources/contactRules.js +8 -1
- package/dist/phone/resources/contactRules.js.map +1 -1
- package/dist/phone/resources/identityContactRules.d.ts +10 -4
- package/dist/phone/resources/identityContactRules.d.ts.map +1 -1
- package/dist/phone/resources/identityContactRules.js +11 -4
- package/dist/phone/resources/identityContactRules.js.map +1 -1
- package/dist/phone/types.d.ts +8 -0
- package/dist/phone/types.d.ts.map +1 -1
- package/dist/phone/types.js +4 -0
- package/dist/phone/types.js.map +1 -1
- package/dist/response_metadata.d.ts +22 -0
- package/dist/response_metadata.d.ts.map +1 -0
- package/dist/response_metadata.js +63 -0
- package/dist/response_metadata.js.map +1 -0
- package/dist/vault/resources/vault.d.ts +11 -2
- package/dist/vault/resources/vault.d.ts.map +1 -1
- package/dist/vault/resources/vault.js +34 -7
- package/dist/vault/resources/vault.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/webhooks/types.d.ts +4 -0
- package/dist/webhooks/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import { HttpTransport } from "../../_http.js";
|
|
2
|
-
import type
|
|
2
|
+
import { type ContactAccessSettings } from "./contactAccess.js";
|
|
3
|
+
import type { RuleDirection } from "../../contact_rules.js";
|
|
3
4
|
import { type Contact, type ContactReviewStatus } from "../types.js";
|
|
4
5
|
/** An explicit exact-address choice overrides the agent's channel mode. */
|
|
5
6
|
export type ContactDecision = "inherit" | "allow" | "block";
|
|
6
7
|
export interface ContactAddressPermission {
|
|
8
|
+
inboundAction?: ContactDecision;
|
|
9
|
+
outboundAction?: ContactDecision;
|
|
10
|
+
allowedInbound?: boolean;
|
|
11
|
+
allowedOutbound?: boolean;
|
|
7
12
|
kind: "email" | "phone";
|
|
8
13
|
value: string;
|
|
9
14
|
label: string | null;
|
|
@@ -11,10 +16,13 @@ export interface ContactAddressPermission {
|
|
|
11
16
|
allowed: boolean;
|
|
12
17
|
}
|
|
13
18
|
export interface ContactAddressUpdate {
|
|
19
|
+
direction?: RuleDirection;
|
|
20
|
+
expectedInboundAction?: ContactDecision;
|
|
21
|
+
expectedOutboundAction?: ContactDecision;
|
|
14
22
|
kind: "email" | "phone";
|
|
15
23
|
value: string;
|
|
16
24
|
action: ContactDecision;
|
|
17
|
-
expectedAction
|
|
25
|
+
expectedAction?: ContactDecision;
|
|
18
26
|
}
|
|
19
27
|
/** Profile and dependent memory visibility decisions. */
|
|
20
28
|
export interface ContactVisibilityDecisions {
|
|
@@ -50,6 +58,10 @@ export interface ReplaceContactCommunicationPolicy {
|
|
|
50
58
|
visibility?: ContactVisibilityPolicy;
|
|
51
59
|
}
|
|
52
60
|
export interface ContactCommunicationPreview {
|
|
61
|
+
inboundEmail?: boolean;
|
|
62
|
+
outboundEmail?: boolean;
|
|
63
|
+
inboundPhone?: boolean;
|
|
64
|
+
outboundPhone?: boolean;
|
|
53
65
|
identityId: string;
|
|
54
66
|
contact: Contact | null;
|
|
55
67
|
email: boolean;
|
|
@@ -70,6 +82,10 @@ export interface ContactPermissionVisibility {
|
|
|
70
82
|
identityOverride: ContactVisibilityDecisions;
|
|
71
83
|
}
|
|
72
84
|
export interface ContactPermissionEffective extends ContactVisibilityResult {
|
|
85
|
+
inboundEmail?: IdentifierPermission;
|
|
86
|
+
outboundEmail?: IdentifierPermission;
|
|
87
|
+
inboundPhone?: IdentifierPermission;
|
|
88
|
+
outboundPhone?: IdentifierPermission;
|
|
73
89
|
email: IdentifierPermission;
|
|
74
90
|
phone: IdentifierPermission;
|
|
75
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"communicationPolicy.d.ts","sourceRoot":"","sources":["../../../src/contacts/resources/communicationPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"communicationPolicy.d.ts","sourceRoot":"","sources":["../../../src/contacts/resources/communicationPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,KAAK,qBAAqB,EAA6D,MAAM,oBAAoB,CAAC;AAC3H,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,KAAK,OAAO,EAAmB,KAAK,mBAAmB,EAAsD,MAAM,aAAa,CAAC;AAE1I,2EAA2E;AAC3E,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAC5D,MAAM,WAAW,wBAAwB;IACvC,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;CAClB;AACD,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,qBAAqB,CAAC,EAAE,eAAe,CAAC;IACxC,sBAAsB,CAAC,EAAE,eAAe,CAAC;IACzC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,eAAe,CAAC;IACxB,cAAc,CAAC,EAAE,eAAe,CAAC;CAClC;AACD,yDAAyD;AACzD,MAAM,WAAW,0BAA0B;IAAG,OAAO,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,eAAe,CAAA;CAAE;AACnG,2CAA2C;AAC3C,MAAM,WAAW,kCAAmC,SAAQ,0BAA0B;IAAG,UAAU,EAAE,MAAM,CAAA;CAAE;AAC7G,sFAAsF;AACtF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,0BAA0B,CAAC;IACrC,UAAU,EAAE,kCAAkC,EAAE,CAAC;CAClD;AACD,8DAA8D;AAC9D,MAAM,WAAW,uBAAuB;IAAG,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE;AAChF,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,wBAAwB,EAAE,CAAC;IACtC,mBAAmB,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACpD,UAAU,EAAE,uBAAuB,CAAC;CACrC;AACD,MAAM,WAAW,iCAAiC;IAChD,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,uBAAuB,CAAC;CACtC;AACD,MAAM,WAAW,2BAA2B;IAC1C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,uBAAuB,CAAC;CACrC;AACD,MAAM,WAAW,8BAA8B;IAC7C,KAAK,EAAE,2BAA2B,EAAE,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AACD,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAC;AAC9E,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,eAAe,GAAG,WAAW,GAAG,YAAY,GAAG,aAAa,GAAG,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC;AACjK,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,0BAA0B,CAAC;IACrC,gBAAgB,EAAE,0BAA0B,CAAC;CAC9C;AACD,MAAM,WAAW,0BAA2B,SAAQ,uBAAuB;IACzE,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,KAAK,EAAE,oBAAoB,CAAC;CAC7B;AACD,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,wBAAwB,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,2BAA2B,CAAC;IACxC,SAAS,EAAE,0BAA0B,CAAC;IACtC,MAAM,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;CACvC;AACD,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AACD,MAAM,WAAW,6BAA6B;IAC5C,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACtC;AAwDD,+EAA+E;AAC/E,qBAAa,kCAAkC;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAEhD,oEAAoE;IAC9D,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAItF,wFAAwF;IAClF,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,iCAAiC,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAkCjH,0EAA0E;IACpE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAI1F,qEAAqE;IAC/D,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,8BAA8B,CAAC;IAOjI,sFAAsF;IAChF,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,6BAAkC,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAuB7H"}
|
|
@@ -1,14 +1,20 @@
|
|
|
1
|
+
import { parseContactAccessSettings } from "./contactAccess.js";
|
|
1
2
|
import { parseContact, parseContactEmail, parseContactPhone } from "../types.js";
|
|
2
3
|
/** Parse both required policy portions. */
|
|
3
4
|
function parsePolicy(raw) {
|
|
4
5
|
return { contactId: raw.contact_id, revision: raw.revision, identityId: raw.identity_id,
|
|
5
|
-
addresses: raw.addresses,
|
|
6
|
+
addresses: raw.addresses.map(({ inbound_action, outbound_action, allowed_inbound, allowed_outbound, ...row }) => ({
|
|
7
|
+
...row, inboundAction: inbound_action ?? row.action, outboundAction: outbound_action ?? row.action,
|
|
8
|
+
allowedInbound: allowed_inbound ?? row.allowed, allowedOutbound: allowed_outbound ?? row.allowed,
|
|
9
|
+
})), effectiveVisibility: raw.effective_visibility,
|
|
6
10
|
visibility: { defaults: raw.visibility.defaults,
|
|
7
11
|
identities: raw.visibility.identities.map((row) => ({ identityId: row.identity_id, profile: row.profile, memories: row.memories })) } };
|
|
8
12
|
}
|
|
9
13
|
/** Parse a filtered contact and independently reported visibility. */
|
|
10
14
|
function parsePreview(raw) {
|
|
11
15
|
return { identityId: raw.identity_id, contact: raw.contact ? parseContact(raw.contact) : null,
|
|
16
|
+
inboundEmail: raw.inbound_email, outboundEmail: raw.outbound_email,
|
|
17
|
+
inboundPhone: raw.inbound_phone, outboundPhone: raw.outbound_phone,
|
|
12
18
|
email: raw.email, phone: raw.phone, fullProfile: raw.full_profile,
|
|
13
19
|
visibility: raw.visibility };
|
|
14
20
|
}
|
|
@@ -47,7 +53,11 @@ export class ContactCommunicationPolicyResource {
|
|
|
47
53
|
}
|
|
48
54
|
return parsePolicy(await this.http.put(`/contacts/${encodeURIComponent(contactId)}/communication-policy`, {
|
|
49
55
|
expected_revision: options.expectedRevision, identity_id: options.identityId,
|
|
50
|
-
addresses: options.addresses.map((row) => ({ kind: row.kind, value: row.value, action: row.action, expected_action: row.expectedAction
|
|
56
|
+
addresses: options.addresses.map((row) => ({ kind: row.kind, value: row.value, action: row.action, expected_action: row.expectedAction,
|
|
57
|
+
...(row.direction !== undefined ? { direction: row.direction } : {}),
|
|
58
|
+
...(row.expectedInboundAction !== undefined ? { expected_inbound_action: row.expectedInboundAction } : {}),
|
|
59
|
+
...(row.expectedOutboundAction !== undefined ? { expected_outbound_action: row.expectedOutboundAction } : {}),
|
|
60
|
+
})),
|
|
51
61
|
...(options.visibility !== undefined ? { visibility: {
|
|
52
62
|
defaults: options.visibility.defaults,
|
|
53
63
|
identities: options.visibility.identities.map((row) => ({ identity_id: row.identityId, profile: row.profile, memories: row.memories })),
|
|
@@ -74,8 +84,15 @@ export class ContactCommunicationPolicyResource {
|
|
|
74
84
|
reviewStatus: row.contact.review_status, emails: (row.contact.emails ?? []).map(parseContactEmail), phones: (row.contact.phones ?? []).map(parseContactPhone) },
|
|
75
85
|
revision: row.revision,
|
|
76
86
|
visibility: { defaults: row.visibility.defaults, identityOverride: row.visibility.identity_override },
|
|
77
|
-
effective:
|
|
78
|
-
|
|
87
|
+
effective: {
|
|
88
|
+
profile: row.effective.profile, memories: row.effective.memories,
|
|
89
|
+
email: row.effective.email, phone: row.effective.phone,
|
|
90
|
+
inboundEmail: row.effective.inbound_email ?? row.effective.email,
|
|
91
|
+
outboundEmail: row.effective.outbound_email ?? row.effective.email,
|
|
92
|
+
inboundPhone: row.effective.inbound_phone ?? row.effective.phone,
|
|
93
|
+
outboundPhone: row.effective.outbound_phone ?? row.effective.phone,
|
|
94
|
+
},
|
|
95
|
+
...(row.access !== undefined ? { access: row.access === null ? null : parseContactAccessSettings(row.access) } : {}),
|
|
79
96
|
})) };
|
|
80
97
|
}
|
|
81
98
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"communicationPolicy.js","sourceRoot":"","sources":["../../../src/contacts/resources/communicationPolicy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"communicationPolicy.js","sourceRoot":"","sources":["../../../src/contacts/resources/communicationPolicy.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,10 @@ import { HttpTransport } from "../../_http.js";
|
|
|
7
7
|
import { ContactAccess } from "../types.js";
|
|
8
8
|
export interface ContactChannelAccess {
|
|
9
9
|
visible: boolean;
|
|
10
|
+
/** Legacy read projection: addresses the agent may send to. */
|
|
10
11
|
contactable: string[];
|
|
12
|
+
inboundContactable?: string[];
|
|
13
|
+
outboundContactable?: string[];
|
|
11
14
|
}
|
|
12
15
|
export interface ContactAccessSettings {
|
|
13
16
|
email: ContactChannelAccess;
|
|
@@ -23,6 +26,21 @@ export interface UpdateContactAccess {
|
|
|
23
26
|
profile?: boolean;
|
|
24
27
|
memories?: boolean;
|
|
25
28
|
}
|
|
29
|
+
/** @internal */
|
|
30
|
+
export interface RawContactAccessSettings extends Omit<ContactAccessSettings, "email" | "phone"> {
|
|
31
|
+
email: ContactChannelAccess & {
|
|
32
|
+
inbound_contactable?: string[];
|
|
33
|
+
outbound_contactable?: string[];
|
|
34
|
+
};
|
|
35
|
+
phone: ContactChannelAccess & {
|
|
36
|
+
inbound_contactable?: string[];
|
|
37
|
+
outbound_contactable?: string[];
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/** @internal */
|
|
41
|
+
export declare function parseContactAccessSettings(raw: RawContactAccessSettings): ContactAccessSettings;
|
|
42
|
+
/** @internal */
|
|
43
|
+
export declare function contactAccessToWire(options: UpdateContactAccess): Record<string, unknown>;
|
|
26
44
|
export declare class ContactAccessResource {
|
|
27
45
|
private readonly http;
|
|
28
46
|
constructor(http: HttpTransport);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contactAccess.d.ts","sourceRoot":"","sources":["../../../src/contacts/resources/contactAccess.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,aAAa,EAGd,MAAM,aAAa,CAAC;AAIrB,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"contactAccess.d.ts","sourceRoot":"","sources":["../../../src/contacts/resources/contactAccess.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,aAAa,EAGd,MAAM,aAAa,CAAC;AAIrB,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,+DAA+D;IAC/D,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,KAAK,EAAE,oBAAoB,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,qFAAqF;AACrF,MAAM,MAAM,0BAA0B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEvE,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,0BAA0B,CAAC;IACnC,KAAK,CAAC,EAAE,0BAA0B,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,gBAAgB;AAChB,MAAM,WAAW,wBAAyB,SAAQ,IAAI,CAAC,qBAAqB,EAAE,OAAO,GAAG,OAAO,CAAC;IAC9F,KAAK,EAAE,oBAAoB,GAAG;QAAE,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAClG,KAAK,EAAE,oBAAoB,GAAG;QAAE,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACnG;AAED,gBAAgB;AAChB,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,wBAAwB,GAAG,qBAAqB,CAQ/F;AAED,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAyBzF;AAED,qBAAa,qBAAqB;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAEhD,+EAA+E;IACzE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAI5E,6EAA6E;IACvE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAK7G;;;OAGG;IACG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;CAOxD"}
|
|
@@ -5,6 +5,47 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { parseContactAccess, } from "../types.js";
|
|
7
7
|
const BASE = "/contacts";
|
|
8
|
+
/** @internal */
|
|
9
|
+
export function parseContactAccessSettings(raw) {
|
|
10
|
+
const group = (value) => ({
|
|
11
|
+
visible: value.visible,
|
|
12
|
+
contactable: value.contactable,
|
|
13
|
+
inboundContactable: value.inbound_contactable ?? value.contactable,
|
|
14
|
+
outboundContactable: value.outbound_contactable ?? value.contactable,
|
|
15
|
+
});
|
|
16
|
+
return { profile: raw.profile, memories: raw.memories, email: group(raw.email), phone: group(raw.phone) };
|
|
17
|
+
}
|
|
18
|
+
/** @internal */
|
|
19
|
+
export function contactAccessToWire(options) {
|
|
20
|
+
const result = { ...options };
|
|
21
|
+
let enabled = options.memories === true;
|
|
22
|
+
for (const channel of ["email", "phone"]) {
|
|
23
|
+
const group = options[channel];
|
|
24
|
+
if (group === undefined)
|
|
25
|
+
continue;
|
|
26
|
+
if (group === null || Object.values(group).some((value) => value === null)) {
|
|
27
|
+
throw new TypeError("Contact access settings cannot be null");
|
|
28
|
+
}
|
|
29
|
+
if (group.contactable !== undefined && (group.inboundContactable !== undefined || group.outboundContactable !== undefined)) {
|
|
30
|
+
throw new TypeError("contactable cannot be combined with directional contactable lists");
|
|
31
|
+
}
|
|
32
|
+
const contactable = [group.contactable, group.inboundContactable, group.outboundContactable].some((values) => Boolean(values?.length));
|
|
33
|
+
if (group.visible === false && contactable)
|
|
34
|
+
throw new TypeError("Hidden addresses cannot be contactable");
|
|
35
|
+
enabled ||= group.visible === true || contactable;
|
|
36
|
+
const { inboundContactable, outboundContactable, ...shared } = group;
|
|
37
|
+
result[channel] = {
|
|
38
|
+
...shared,
|
|
39
|
+
...(inboundContactable !== undefined ? { inbound_contactable: inboundContactable } : {}),
|
|
40
|
+
...(outboundContactable !== undefined ? { outbound_contactable: outboundContactable } : {}),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
if (options.profile === null || options.memories === null)
|
|
44
|
+
throw new TypeError("Contact access settings cannot be null");
|
|
45
|
+
if (options.profile === false && enabled)
|
|
46
|
+
throw new Error("Profile cannot be disabled while email, phone, or memories is enabled");
|
|
47
|
+
return result;
|
|
48
|
+
}
|
|
8
49
|
export class ContactAccessResource {
|
|
9
50
|
http;
|
|
10
51
|
constructor(http) {
|
|
@@ -12,14 +53,12 @@ export class ContactAccessResource {
|
|
|
12
53
|
}
|
|
13
54
|
/** Read group visibility and contactable addresses using admin credentials. */
|
|
14
55
|
async get(handle, contactId) {
|
|
15
|
-
return this.http.get(`/identities/${encodeURIComponent(handle)}/contacts/${encodeURIComponent(contactId)}/access`);
|
|
56
|
+
return parseContactAccessSettings(await this.http.get(`/identities/${encodeURIComponent(handle)}/contacts/${encodeURIComponent(contactId)}/access`));
|
|
16
57
|
}
|
|
17
58
|
/** Save partial access choices; hiding Profile also hides omitted groups. */
|
|
18
59
|
async update(handle, contactId, options) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
throw new Error("Profile cannot be disabled while email, phone, or memories is enabled");
|
|
22
|
-
return this.http.patch(`/identities/${encodeURIComponent(handle)}/contacts/${encodeURIComponent(contactId)}/access`, options);
|
|
60
|
+
const body = contactAccessToWire(options);
|
|
61
|
+
return parseContactAccessSettings(await this.http.patch(`/identities/${encodeURIComponent(handle)}/contacts/${encodeURIComponent(contactId)}/access`, body));
|
|
23
62
|
}
|
|
24
63
|
/**
|
|
25
64
|
* List deprecated read-only compatibility metadata for a contact.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contactAccess.js","sourceRoot":"","sources":["../../../src/contacts/resources/contactAccess.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAGL,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,MAAM,IAAI,GAAG,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"contactAccess.js","sourceRoot":"","sources":["../../../src/contacts/resources/contactAccess.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAGL,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,MAAM,IAAI,GAAG,WAAW,CAAC;AAiCzB,gBAAgB;AAChB,MAAM,UAAU,0BAA0B,CAAC,GAA6B;IACtE,MAAM,KAAK,GAAG,CAAC,KAAwC,EAAwB,EAAE,CAAC,CAAC;QACjF,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,kBAAkB,EAAE,KAAK,CAAC,mBAAmB,IAAI,KAAK,CAAC,WAAW;QAClE,mBAAmB,EAAE,KAAK,CAAC,oBAAoB,IAAI,KAAK,CAAC,WAAW;KACrE,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;AAC5G,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,mBAAmB,CAAC,OAA4B;IAC9D,MAAM,MAAM,GAA4B,EAAE,GAAG,OAAO,EAAE,CAAC;IACvD,IAAI,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC;IACxC,KAAK,MAAM,OAAO,IAAI,CAAC,OAAO,EAAE,OAAO,CAAU,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC;YAC3E,MAAM,IAAI,SAAS,CAAC,wCAAwC,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,kBAAkB,KAAK,SAAS,IAAI,KAAK,CAAC,mBAAmB,KAAK,SAAS,CAAC,EAAE,CAAC;YAC3H,MAAM,IAAI,SAAS,CAAC,mEAAmE,CAAC,CAAC;QAC3F,CAAC;QACD,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACvI,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,IAAI,WAAW;YAAE,MAAM,IAAI,SAAS,CAAC,wCAAwC,CAAC,CAAC;QAC1G,OAAO,KAAK,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,WAAW,CAAC;QAClD,MAAM,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC;QACrE,MAAM,CAAC,OAAO,CAAC,GAAG;YAChB,GAAG,MAAM;YACT,GAAG,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxF,GAAG,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5F,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI;QAAE,MAAM,IAAI,SAAS,CAAC,wCAAwC,CAAC,CAAC;IACzH,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,IAAI,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IACnI,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,OAAO,qBAAqB;IACH;IAA7B,YAA6B,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAEpD,+EAA+E;IAC/E,KAAK,CAAC,GAAG,CAAC,MAAc,EAAE,SAAiB;QACzC,OAAO,0BAA0B,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,kBAAkB,CAAC,MAAM,CAAC,aAAa,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IACvJ,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,SAAiB,EAAE,OAA4B;QAC1E,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,0BAA0B,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,kBAAkB,CAAC,MAAM,CAAC,aAAa,kBAAkB,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;IAC/J,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,SAAiB;QAC1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAE9B,GAAG,IAAI,IAAI,SAAS,SAAS,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACtD,OAAO,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACvC,CAAC;CACF"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { HttpTransport } from "../../_http.js";
|
|
7
7
|
import { ContactAccessResource, type ContactChannelAccessUpdate } from "./contactAccess.js";
|
|
8
|
-
import { ContactCommunicationPolicyResource } from "./communicationPolicy.js";
|
|
8
|
+
import { ContactCommunicationPolicyResource, type ContactAddressUpdate, type ContactDecision } from "./communicationPolicy.js";
|
|
9
9
|
import { ContactPermissionsResource, type UpdateContactPermissions } from "./permissions.js";
|
|
10
10
|
import { ContactCorrespondenceResource } from "./correspondence.js";
|
|
11
11
|
import { ContactFactsResource } from "./contactFacts.js";
|
|
@@ -26,21 +26,33 @@ export interface LookupContactsOptions {
|
|
|
26
26
|
phone?: string;
|
|
27
27
|
phoneContains?: string;
|
|
28
28
|
}
|
|
29
|
-
|
|
29
|
+
type ContactPermissionMaps = Omit<UpdateContactPermissions, "profile" | "memories">;
|
|
30
|
+
interface ContactCreatePermissionsBase extends Pick<UpdateContactPermissions, "profile" | "memories"> {
|
|
30
31
|
identityId: string;
|
|
31
32
|
}
|
|
32
|
-
/** Use group access
|
|
33
|
-
export type ContactCreatePermissions = ContactCreatePermissionsBase & ({
|
|
34
|
-
emails?: Record<string, boolean>;
|
|
35
|
-
phones?: Record<string, boolean>;
|
|
33
|
+
/** Use group access or boolean address maps without mixing shapes. */
|
|
34
|
+
export type ContactCreatePermissions = ContactCreatePermissionsBase & ((ContactPermissionMaps & {
|
|
36
35
|
email?: never;
|
|
37
36
|
phone?: never;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
addresses?: never;
|
|
38
|
+
}) | ({
|
|
39
|
+
[Key in keyof ContactPermissionMaps]?: never;
|
|
40
|
+
} & {
|
|
41
41
|
email?: ContactChannelAccessUpdate;
|
|
42
42
|
phone?: ContactChannelAccessUpdate;
|
|
43
|
-
|
|
43
|
+
addresses?: never;
|
|
44
|
+
}));
|
|
45
|
+
/** Initial explicit address decisions, including independent choices for each direction. */
|
|
46
|
+
export type ContactCreateAddressPermissions = {
|
|
47
|
+
[Key in keyof ContactPermissionMaps]?: never;
|
|
48
|
+
} & {
|
|
49
|
+
identityId: string;
|
|
50
|
+
email?: never;
|
|
51
|
+
phone?: never;
|
|
52
|
+
addresses: Pick<ContactAddressUpdate, "kind" | "value" | "action" | "direction">[];
|
|
53
|
+
profile?: ContactDecision;
|
|
54
|
+
memories?: ContactDecision;
|
|
55
|
+
};
|
|
44
56
|
export interface CreateContactOptions {
|
|
45
57
|
preferredName?: string;
|
|
46
58
|
namePrefix?: string;
|
|
@@ -62,6 +74,9 @@ export interface CreateContactOptions {
|
|
|
62
74
|
/** Initial selected-agent access saved atomically; requires an admin API key. */
|
|
63
75
|
permissions?: ContactCreatePermissions;
|
|
64
76
|
}
|
|
77
|
+
export type CreateContactWithAddressPermissionsOptions = Omit<CreateContactOptions, "permissions"> & {
|
|
78
|
+
permissions: ContactCreateAddressPermissions;
|
|
79
|
+
};
|
|
65
80
|
export interface UpdateContactOptions {
|
|
66
81
|
preferredName?: string | null;
|
|
67
82
|
namePrefix?: string | null;
|
|
@@ -99,6 +114,7 @@ export declare class ContactsResource {
|
|
|
99
114
|
list(options?: ListContactsOptions): Promise<Contact[]>;
|
|
100
115
|
lookup(options: LookupContactsOptions): Promise<Contact[]>;
|
|
101
116
|
get(contactId: string): Promise<Contact>;
|
|
117
|
+
create(options: CreateContactWithAddressPermissionsOptions): Promise<Contact>;
|
|
102
118
|
create(options?: CreateContactOptions): Promise<Contact>;
|
|
103
119
|
update(contactId: string, options: UpdateContactOptions): Promise<Contact>;
|
|
104
120
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../../../src/contacts/resources/contacts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../../../src/contacts/resources/contacts.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Contacts CRUD + search + lookup.
|
|
5
5
|
*/
|
|
6
|
-
import { ContactAccessResource } from "./contactAccess.js";
|
|
6
|
+
import { ContactAccessResource, contactAccessToWire } from "./contactAccess.js";
|
|
7
7
|
import { ContactCommunicationPolicyResource } from "./communicationPolicy.js";
|
|
8
|
-
import { ContactPermissionsResource } from "./permissions.js";
|
|
8
|
+
import { ContactPermissionsResource, contactPermissionsToWire } from "./permissions.js";
|
|
9
9
|
import { ContactCorrespondenceResource } from "./correspondence.js";
|
|
10
10
|
import { ContactFactsResource } from "./contactFacts.js";
|
|
11
11
|
import { VCardsResource } from "./vcards.js";
|
|
@@ -101,16 +101,25 @@ export class ContactsResource {
|
|
|
101
101
|
body.custom_fields = options.customFields.map(contactCustomFieldToWire);
|
|
102
102
|
if (options.permissions !== undefined) {
|
|
103
103
|
const { identityId, ...permissions } = options.permissions;
|
|
104
|
-
const usesMaps = permissions.emails
|
|
104
|
+
const usesMaps = [permissions.emails, permissions.phones, permissions.inboundEmails,
|
|
105
|
+
permissions.outboundEmails, permissions.inboundPhones, permissions.outboundPhones].some((value) => value !== undefined);
|
|
105
106
|
const usesGroups = permissions.email !== undefined || permissions.phone !== undefined;
|
|
106
107
|
if (usesMaps && usesGroups)
|
|
107
108
|
throw new Error("Use boolean address maps or group access objects, not both");
|
|
108
|
-
if (permissions.
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
109
|
+
if (permissions.addresses !== undefined) {
|
|
110
|
+
if (usesMaps || usesGroups)
|
|
111
|
+
throw new Error("Address decisions cannot be combined with permission maps or groups");
|
|
112
|
+
if (!Array.isArray(permissions.addresses) || permissions.addresses.length > 200) {
|
|
113
|
+
throw new TypeError("Initial address decisions must be an array of at most 200 entries");
|
|
114
|
+
}
|
|
115
|
+
if (permissions.profile === "block" && (permissions.memories === "allow" || permissions.addresses.some((row) => row.action === "allow"))) {
|
|
116
|
+
throw new Error("Profile cannot be blocked while email, phone, or memories is allowed");
|
|
117
|
+
}
|
|
118
|
+
body.permissions = { ...permissions, identity_id: identityId };
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
body.permissions = { ...(usesGroups ? contactAccessToWire(permissions) : contactPermissionsToWire(permissions)), identity_id: identityId };
|
|
122
|
+
}
|
|
114
123
|
}
|
|
115
124
|
const data = await this.http.post(options.permissions !== undefined ? `${BASE}/with-permissions` : BASE, body);
|
|
116
125
|
return parseContact(data);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../../src/contacts/resources/contacts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,qBAAqB,EAAmC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../../src/contacts/resources/contacts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAmC,MAAM,oBAAoB,CAAC;AACjH,OAAO,EAAE,kCAAkC,EAAmD,MAAM,0BAA0B,CAAC;AAC/H,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAAiC,MAAM,kBAAkB,CAAC;AACvH,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAYL,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AAErB,MAAM,IAAI,GAAG,WAAW,CAAC;AAyGzB,MAAM,OAAO,gBAAgB;IAQE;IAPpB,MAAM,CAAwB;IAC9B,cAAc,CAAgC;IAC9C,KAAK,CAAuB;IAC5B,MAAM,CAAiB;IACvB,mBAAmB,CAAqC;IACxD,WAAW,CAA6B;IAEjD,YAA6B,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;QAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,mBAAmB,GAAG,IAAI,kCAAkC,CAAC,IAAI,CAAC,CAAC;QACxE,IAAI,CAAC,WAAW,GAAG,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,cAAc,GAAG,IAAI,6BAA6B,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,CAAC,KAAK,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,UAA+B,EAAE;QAC1C,MAAM,MAAM,GAAoE,EAAE,CAAC;QACnF,IAAI,OAAO,CAAC,CAAC,KAAK,SAAS;YAAE,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;QAClD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC9D,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC9D,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QACjE,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS;YAAE,MAAM,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;QACpF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAC9B,IAAI,EACJ,MAAM,CACP,CAAC;QACF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACtD,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAA8B;QACzC,MAAM,QAAQ,GAAuC;YACnD,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,cAAc,EAAE,OAAO,CAAC,aAAa;YACrC,YAAY,EAAE,OAAO,CAAC,WAAW;YACjC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,cAAc,EAAE,OAAO,CAAC,aAAa;SACtC,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;QAC3E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,4FAA4F,CAC7F,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAC9B,GAAG,IAAI,SAAS,EAChB,MAAM,CACP,CAAC;QACF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACtD,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,SAAiB;QACzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAa,GAAG,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;QACrE,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAID,KAAK,CAAC,MAAM,CAAC,UAA6E,EAAE;QAC1F,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS;YAAE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;QACrF,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;QAC5E,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;QACzE,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;QAC5E,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;QAC5E,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;QAC5E,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;QAC/E,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;QACtE,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACrE,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5D,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACvF,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACvF,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAC/F,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACnF,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClG,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS;YAAE,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QAChH,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;YAC3D,MAAM,QAAQ,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa;gBACjF,WAAW,CAAC,cAAc,EAAE,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;YAC1H,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,KAAK,SAAS,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS,CAAC;YACtF,IAAI,QAAQ,IAAI,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;YAC1G,IAAI,WAAW,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACxC,IAAI,QAAQ,IAAI,UAAU;oBAAE,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;gBACnH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;oBAChF,MAAM,IAAI,SAAS,CAAC,mEAAmE,CAAC,CAAC;gBAC3F,CAAC;gBACD,IAAI,WAAW,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,KAAK,OAAO,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC;oBACzI,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;gBAC1F,CAAC;gBACD,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;YAC7I,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAa,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,mBAAmB,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3H,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,SAAiB,EAAE,OAA6B;QAC3D,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI;YACxB,CAAC,eAAe,EAAE,gBAAgB,CAAC;YACnC,CAAC,YAAY,EAAE,aAAa,CAAC;YAC7B,CAAC,WAAW,EAAE,YAAY,CAAC;YAC3B,CAAC,YAAY,EAAE,aAAa,CAAC;YAC7B,CAAC,YAAY,EAAE,aAAa,CAAC;YAC7B,CAAC,YAAY,EAAE,aAAa,CAAC;YAC7B,CAAC,aAAa,EAAE,cAAc,CAAC;YAC/B,CAAC,UAAU,EAAE,WAAW,CAAC;YACzB,CAAC,UAAU,EAAE,UAAU,CAAC;YACxB,CAAC,OAAO,EAAE,OAAO,CAAC;YAClB,CAAC,cAAc,EAAE,eAAe,CAAC;SACzB,EAAE,CAAC;YACX,IAAI,GAAG,IAAI,OAAO;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAI,OAAmC,CAAC,GAAG,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACzF,CAAC;QACD,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACzF,CAAC;QACD,IAAI,UAAU,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QACjG,CAAC;QACD,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,WAAW,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAU,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QACpG,CAAC;QACD,IAAI,cAAc,IAAI,OAAO,EAAE,CAAC;YAC9B,IAAI,CAAC,aAAa;gBAChB,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,YAAa,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QAC/F,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAa,GAAG,IAAI,IAAI,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7E,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,CAAC,SAAiB,EAAE,OAA6B;QAC1D,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CACrC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YAC/D;gBACE,aAAa,EAAE,gBAAgB;gBAC/B,UAAU,EAAE,aAAa;gBACzB,SAAS,EAAE,YAAY;gBACvB,UAAU,EAAE,aAAa;gBACzB,UAAU,EAAE,aAAa;gBACzB,UAAU,EAAE,aAAa;gBACzB,WAAW,EAAE,cAAc;gBAC3B,QAAQ,EAAE,WAAW;gBACrB,QAAQ,EAAE,UAAU;gBACpB,KAAK,EAAE,OAAO;aACf,CAAC,GAAwB,CAAC;YAC3B,KAAK;SACN,CAAC,CACH,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAa,GAAG,IAAI,IAAI,SAAS,QAAQ,EAAE;YAC1E,kBAAkB,EAAE,OAAO,CAAC,gBAAgB;YAC5C,aAAa,EAAE,YAAY;SAC5B,CAAC,CAAC;QACH,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,SAAiB;QAC5B,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAoB;QACnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAA6B,GAAG,IAAI,cAAc,EAAE;YACnF,WAAW,EAAE,UAAU;SACxB,CAAC,CAAC;QACH,OAAO,4BAA4B,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;CACF"}
|
|
@@ -3,11 +3,17 @@ import { HttpTransport } from "../../_http.js";
|
|
|
3
3
|
export interface ContactPermissions {
|
|
4
4
|
emails: Record<string, boolean>;
|
|
5
5
|
phones: Record<string, boolean>;
|
|
6
|
+
inboundEmails?: Record<string, boolean>;
|
|
7
|
+
outboundEmails?: Record<string, boolean>;
|
|
8
|
+
inboundPhones?: Record<string, boolean>;
|
|
9
|
+
outboundPhones?: Record<string, boolean>;
|
|
6
10
|
profile: boolean;
|
|
7
11
|
memories: boolean;
|
|
8
12
|
}
|
|
9
13
|
/** Omitted fields and addresses keep their existing settings. */
|
|
10
14
|
export type UpdateContactPermissions = Partial<ContactPermissions>;
|
|
15
|
+
/** @internal Used for updates and atomic initial permissions. */
|
|
16
|
+
export declare function contactPermissionsToWire(options: UpdateContactPermissions): Record<string, unknown>;
|
|
11
17
|
export declare class ContactPermissionsResource {
|
|
12
18
|
private readonly http;
|
|
13
19
|
constructor(http: HttpTransport);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../src/contacts/resources/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,gGAAgG;AAChG,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,iEAAiE;AACjE,MAAM,MAAM,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../src/contacts/resources/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,gGAAgG;AAChG,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,iEAAiE;AACjE,MAAM,MAAM,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;AA0BnE,iEAAiE;AACjE,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA6BnG;AAED,qBAAa,0BAA0B;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAEhD,qDAAqD;IAC/C,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIzE,4DAA4D;IACtD,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAIhH"}
|
|
@@ -1,3 +1,51 @@
|
|
|
1
|
+
function parseContactPermissions(raw) {
|
|
2
|
+
return {
|
|
3
|
+
emails: { ...(raw.outbound_emails ?? raw.emails) },
|
|
4
|
+
phones: { ...(raw.outbound_phones ?? raw.phones) },
|
|
5
|
+
inboundEmails: { ...(raw.inbound_emails ?? raw.emails) },
|
|
6
|
+
outboundEmails: { ...(raw.outbound_emails ?? raw.emails) },
|
|
7
|
+
inboundPhones: { ...(raw.inbound_phones ?? raw.phones) },
|
|
8
|
+
outboundPhones: { ...(raw.outbound_phones ?? raw.phones) },
|
|
9
|
+
profile: raw.profile,
|
|
10
|
+
memories: raw.memories,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
/** @internal Used for updates and atomic initial permissions. */
|
|
14
|
+
export function contactPermissionsToWire(options) {
|
|
15
|
+
const body = {};
|
|
16
|
+
let enabled = options.memories === true;
|
|
17
|
+
for (const [shared, inbound, outbound] of [
|
|
18
|
+
["emails", "inboundEmails", "outboundEmails"],
|
|
19
|
+
["phones", "inboundPhones", "outboundPhones"],
|
|
20
|
+
]) {
|
|
21
|
+
if (options[shared] !== undefined && (options[inbound] !== undefined || options[outbound] !== undefined)) {
|
|
22
|
+
throw new TypeError(`Cannot combine shared and directional ${shared}`);
|
|
23
|
+
}
|
|
24
|
+
for (const [key, wire] of [[shared, shared], [inbound, `inbound_${shared}`], [outbound, `outbound_${shared}`]]) {
|
|
25
|
+
const values = options[key];
|
|
26
|
+
if (values === undefined)
|
|
27
|
+
continue;
|
|
28
|
+
if (values === null || typeof values !== "object" || Array.isArray(values)
|
|
29
|
+
|| Object.values(values).some((value) => typeof value !== "boolean")) {
|
|
30
|
+
throw new TypeError(`${key} must be an address-to-boolean object`);
|
|
31
|
+
}
|
|
32
|
+
if (Object.keys(values).length > 50)
|
|
33
|
+
throw new RangeError(`${key} cannot exceed 50 entries`);
|
|
34
|
+
enabled ||= Object.values(values).some(Boolean);
|
|
35
|
+
body[wire] = values;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
for (const key of ["profile", "memories"]) {
|
|
39
|
+
if (options[key] === undefined)
|
|
40
|
+
continue;
|
|
41
|
+
if (typeof options[key] !== "boolean")
|
|
42
|
+
throw new TypeError(`${key} must be true or false`);
|
|
43
|
+
body[key] = options[key];
|
|
44
|
+
}
|
|
45
|
+
if (options.profile === false && enabled)
|
|
46
|
+
throw new Error("Profile cannot be disabled while email, phone, or memories is enabled");
|
|
47
|
+
return body;
|
|
48
|
+
}
|
|
1
49
|
export class ContactPermissionsResource {
|
|
2
50
|
http;
|
|
3
51
|
constructor(http) {
|
|
@@ -5,15 +53,12 @@ export class ContactPermissionsResource {
|
|
|
5
53
|
}
|
|
6
54
|
/** Read effective access using admin credentials. */
|
|
7
55
|
async get(handle, contactId) {
|
|
8
|
-
return this.http.get(`/identities/${encodeURIComponent(handle)}/contacts/${encodeURIComponent(contactId)}/permissions`);
|
|
56
|
+
return parseContactPermissions(await this.http.get(`/identities/${encodeURIComponent(handle)}/contacts/${encodeURIComponent(contactId)}/permissions`));
|
|
9
57
|
}
|
|
10
58
|
/** Save explicit yes/no choices using admin credentials. */
|
|
11
59
|
async update(handle, contactId, options) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|| Object.values(options.phones ?? {}).some(Boolean)))
|
|
15
|
-
throw new Error("Profile cannot be disabled while email, phone, or memories is enabled");
|
|
16
|
-
return this.http.patch(`/identities/${encodeURIComponent(handle)}/contacts/${encodeURIComponent(contactId)}/permissions`, options);
|
|
60
|
+
const body = contactPermissionsToWire(options);
|
|
61
|
+
return parseContactPermissions(await this.http.patch(`/identities/${encodeURIComponent(handle)}/contacts/${encodeURIComponent(contactId)}/permissions`, body));
|
|
17
62
|
}
|
|
18
63
|
}
|
|
19
64
|
//# sourceMappingURL=permissions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/contacts/resources/permissions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/contacts/resources/permissions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identities.d.ts","sourceRoot":"","sources":["../../../src/identities/resources/identities.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAA0C,MAAM,gBAAgB,CAAC;AAEvF,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,gCAAgC,EAChC,2BAA2B,EAC3B,qBAAqB,EACrB,kBAAkB,EASnB,MAAM,aAAa,CAAC;AAErB,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAEhD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,MAAM,CAAC,OAAO,EAAE;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC,mBAAmB,CAAC,EAAE,IAAI,CAAC;QAC3B,OAAO,CAAC,EAAE,4BAA4B,CAAC;QACvC,MAAM,CAAC,EAAE,2BAA2B,CAAC;QACrC,WAAW,CAAC,EAAE,gCAAgC,CAAC;QAC/C,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,GAAG,GAAG,KAAK,CAAC;KAClD,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA4B/B,iEAAiE;IAC3D,IAAI,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAK7C;;;;OAIG;IACG,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAK3D;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,MAAM,CACV,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"identities.d.ts","sourceRoot":"","sources":["../../../src/identities/resources/identities.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAA0C,MAAM,gBAAgB,CAAC;AAEvF,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,gCAAgC,EAChC,2BAA2B,EAC3B,qBAAqB,EACrB,kBAAkB,EASnB,MAAM,aAAa,CAAC;AAErB,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAEhD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,MAAM,CAAC,OAAO,EAAE;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC,mBAAmB,CAAC,EAAE,IAAI,CAAC;QAC3B,OAAO,CAAC,EAAE,4BAA4B,CAAC;QACvC,MAAM,CAAC,EAAE,2BAA2B,CAAC;QACrC,WAAW,CAAC,EAAE,gCAAgC,CAAC;QAC/C,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,GAAG,GAAG,KAAK,CAAC;KAClD,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA4B/B,iEAAiE;IAC3D,IAAI,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAK7C;;;;OAIG;IACG,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAK3D;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,MAAM,CACV,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,kBAAkB,CAAC;IA+D9B;;;;;;;;OAQG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD;;;;;;;OAOG;IACG,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAI7D"}
|
|
@@ -161,6 +161,21 @@ export class IdentitiesResource {
|
|
|
161
161
|
body["mail_filter_mode"] = options.mailFilterMode;
|
|
162
162
|
if (options.phoneFilterMode !== undefined)
|
|
163
163
|
body["phone_filter_mode"] = options.phoneFilterMode;
|
|
164
|
+
for (const channel of ["mail", "phone"]) {
|
|
165
|
+
const inbound = options[`${channel}InboundFilterMode`];
|
|
166
|
+
const outbound = options[`${channel}OutboundFilterMode`];
|
|
167
|
+
const shared = options[`${channel}FilterMode`] !== undefined
|
|
168
|
+
|| (channel === "phone" && options.imessageFilterMode !== undefined);
|
|
169
|
+
if (shared && (inbound !== undefined || outbound !== undefined)) {
|
|
170
|
+
throw new TypeError(`Shared and directional ${channel} filter modes cannot be combined`);
|
|
171
|
+
}
|
|
172
|
+
if (inbound === null || outbound === null)
|
|
173
|
+
throw new TypeError("Filter modes cannot be null");
|
|
174
|
+
if (inbound !== undefined)
|
|
175
|
+
body[`${channel}_inbound_filter_mode`] = inbound;
|
|
176
|
+
if (outbound !== undefined)
|
|
177
|
+
body[`${channel}_outbound_filter_mode`] = outbound;
|
|
178
|
+
}
|
|
164
179
|
try {
|
|
165
180
|
const data = options.idempotencyKey === undefined
|
|
166
181
|
? await this.http.patch(`/${agentHandle}`, body)
|