@chatarmin/os 1.13.0 → 1.15.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/billing/read-types.d.ts +2 -0
- package/dist/billing/read-types.d.ts.map +1 -1
- package/dist/companies/client.d.ts.map +1 -1
- package/dist/companies/client.js +1 -0
- package/dist/companies/index.d.ts +1 -1
- package/dist/companies/index.d.ts.map +1 -1
- package/dist/companies/types.d.ts +56 -0
- package/dist/companies/types.d.ts.map +1 -1
- package/dist/deals/client.d.ts +8 -0
- package/dist/deals/client.d.ts.map +1 -0
- package/dist/deals/client.js +6 -0
- package/dist/deals/index.d.ts +3 -0
- package/dist/deals/index.d.ts.map +1 -0
- package/dist/deals/index.js +1 -0
- package/dist/deals/types.d.ts +56 -0
- package/dist/deals/types.d.ts.map +1 -0
- package/dist/deals/types.js +1 -0
- package/dist/index.d.ts +8 -90
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -66
- package/dist/links/client.d.ts +115 -0
- package/dist/links/client.d.ts.map +1 -0
- package/dist/links/client.js +84 -0
- package/package.json +1 -1
|
@@ -45,6 +45,8 @@ export interface BillingSubscriptionSummary {
|
|
|
45
45
|
currentPeriodEnd: Date | null;
|
|
46
46
|
trialEnd: Date | null;
|
|
47
47
|
cancelAtPeriodEnd: boolean;
|
|
48
|
+
/** Scheduled end (Stripe `cancel_at`), e.g. set when a deal is churned. */
|
|
49
|
+
cancelAt?: Date | null;
|
|
48
50
|
billingProfileId?: string;
|
|
49
51
|
tier: {
|
|
50
52
|
code: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-types.d.ts","sourceRoot":"","sources":["../../src/billing/read-types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"read-types.d.ts","sourceRoot":"","sources":["../../src/billing/read-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/companies/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EACV,eAAe,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/companies/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EACV,eAAe,EAgBhB,MAAM,YAAY,CAAA;AAEnB,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAA;AAC/D,KAAK,OAAO,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;AAE7E,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,OAAO,GACZ,eAAe,CA2CjB"}
|
package/dist/companies/client.js
CHANGED
|
@@ -6,6 +6,7 @@ export function createCompaniesClient(client, call) {
|
|
|
6
6
|
create: (input) => call('companies.create', () => client.companies.createWithLink.mutate(input)),
|
|
7
7
|
update: (input) => call('companies.update', () => client.companies.updateCompany.mutate(input)),
|
|
8
8
|
listLinks: (input) => call('companies.listLinks', () => client.companies.listProductLinks.query(input ?? {})),
|
|
9
|
+
listLinkMetadataFields: (input) => call('companies.listLinkMetadataFields', () => client.companies.listProductLinkMetadataFields.query(input ?? {})),
|
|
9
10
|
applyFreeOnboardTier: (input) => call('companies.applyFreeOnboardTier', () => client.companies.applyFreeOnboardTier.mutate(input)),
|
|
10
11
|
setupOnboardBilling: (input) => call('companies.setupOnboardBilling', () => client.companies.setupOnboardBilling.mutate(input)),
|
|
11
12
|
};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { createCompaniesClient } from './client.js';
|
|
2
|
-
export type { CompaniesClient, CompanyAssignee, CompanyAssignees, CreateCompanyInput, CreateCompanyResult, GetCompanyInput, LinkedCompany, ListCompaniesInput, ListCompaniesResult, ListLinkedCompaniesInput, ListLinkedCompaniesResult, ProductCompany, ApplyFreeOnboardTierInput, ApplyFreeOnboardTierResult, SetupOnboardBillingInput, SetupOnboardBillingResult, UpdateCompanyResult, } from './types.js';
|
|
2
|
+
export type { CompaniesClient, CompanyAssignee, CompanyAssignees, CreateCompanyInput, CreateCompanyResult, GetCompanyInput, LinkedCompany, ListCompaniesInput, ListCompaniesResult, ListLinkedCompaniesInput, ListLinkedCompaniesResult, ProductCompany, ApplyFreeOnboardTierInput, ApplyFreeOnboardTierResult, SetupOnboardBillingInput, SetupOnboardBillingResult, UpdateCompanyResult, ListProductLinksInput, ListProductLinksResult, ProductLinkSummary, ProductLinkMetadataFilter, ProductLinkMetadataField, ListProductLinkMetadataFieldsInput, ListProductLinkMetadataFieldsResult, UpdateProductLinkInput, UpdateProductLinkResult, } from './types.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/companies/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACnD,YAAY,EACV,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,cAAc,EACd,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/companies/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACnD,YAAY,EACV,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,cAAc,EACd,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,yBAAyB,EACzB,wBAAwB,EACxB,kCAAkC,EAClC,mCAAmC,EACnC,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,YAAY,CAAA"}
|
|
@@ -59,13 +59,67 @@ export interface ProductLinkSummary {
|
|
|
59
59
|
externalUserId: string | null;
|
|
60
60
|
label: string | null;
|
|
61
61
|
status: string;
|
|
62
|
+
/** Product that owns the link, e.g. `chatarmin` or `cx`. */
|
|
63
|
+
productCode: string;
|
|
64
|
+
productName: string;
|
|
65
|
+
/** Metadata the owning product wrote with `links.update`; `{}` when none. */
|
|
66
|
+
metadata: Record<string, unknown>;
|
|
67
|
+
updatedAt: Date;
|
|
62
68
|
}
|
|
63
69
|
export interface ListProductLinksInput {
|
|
64
70
|
companyId?: string;
|
|
65
71
|
externalOrgId?: string;
|
|
72
|
+
/** Matches company name, domain, or external org id. */
|
|
73
|
+
query?: string;
|
|
74
|
+
/** List links of every product in your organization, not only your own. */
|
|
75
|
+
includeAllProducts?: boolean;
|
|
76
|
+
/** Only links of this product, e.g. `chatarmin`. */
|
|
77
|
+
productCode?: string;
|
|
78
|
+
/**
|
|
79
|
+
* Up to 5 exact matches on link metadata, all of which must match. `path` is a dotted key
|
|
80
|
+
* (letters, digits, `_`, max 4 levels) as listed by `companies.listLinkMetadataFields`.
|
|
81
|
+
*/
|
|
82
|
+
metadataFilters?: ProductLinkMetadataFilter[];
|
|
66
83
|
limit?: number;
|
|
67
84
|
cursor?: string;
|
|
68
85
|
}
|
|
86
|
+
export interface ProductLinkMetadataFilter {
|
|
87
|
+
path: string;
|
|
88
|
+
equals: string | number | boolean | null;
|
|
89
|
+
}
|
|
90
|
+
export interface ListProductLinkMetadataFieldsInput {
|
|
91
|
+
includeAllProducts?: boolean;
|
|
92
|
+
productCode?: string;
|
|
93
|
+
}
|
|
94
|
+
export interface ProductLinkMetadataField {
|
|
95
|
+
productCode: string;
|
|
96
|
+
/** Dotted path inside the link metadata, e.g. `whatsapp.coexistence`. */
|
|
97
|
+
path: string;
|
|
98
|
+
/** JSON types seen at this path: string, number, boolean, null, object, array. */
|
|
99
|
+
types: string[];
|
|
100
|
+
/** Links that carry this path. */
|
|
101
|
+
links: number;
|
|
102
|
+
}
|
|
103
|
+
export interface ListProductLinkMetadataFieldsResult {
|
|
104
|
+
fields: ProductLinkMetadataField[];
|
|
105
|
+
/** False when more than 500 paths exist and the list was cut. */
|
|
106
|
+
complete: boolean;
|
|
107
|
+
}
|
|
108
|
+
export interface UpdateProductLinkInput {
|
|
109
|
+
externalOrgId: string;
|
|
110
|
+
/**
|
|
111
|
+
* Shallow-merged into the link's product metadata (top-level keys replace, a key set to
|
|
112
|
+
* `null` stays `null`). Must be JSON, at most 32 KB, and never contain credentials: keys like
|
|
113
|
+
* `token`, `secret`, `password`, `pin` or `apiKey` are rejected.
|
|
114
|
+
*/
|
|
115
|
+
metadata: Record<string, unknown>;
|
|
116
|
+
/** Replace the link's product metadata with `metadata` instead of merging. */
|
|
117
|
+
resetMetadata?: boolean;
|
|
118
|
+
}
|
|
119
|
+
export interface UpdateProductLinkResult {
|
|
120
|
+
/** False when the stored metadata already matched. */
|
|
121
|
+
updated: boolean;
|
|
122
|
+
}
|
|
69
123
|
export interface ListProductLinksResult {
|
|
70
124
|
links: ProductLinkSummary[];
|
|
71
125
|
nextCursor?: string;
|
|
@@ -126,6 +180,8 @@ export interface CompaniesClient {
|
|
|
126
180
|
create: (input: CreateCompanyInput) => Promise<CreateCompanyResult>;
|
|
127
181
|
update: (input: UpdateCompanyInput) => Promise<UpdateCompanyResult>;
|
|
128
182
|
listLinks: (input?: ListProductLinksInput) => Promise<ListProductLinksResult>;
|
|
183
|
+
/** Metadata paths products wrote on links, with types and counts (never values). */
|
|
184
|
+
listLinkMetadataFields: (input?: ListProductLinkMetadataFieldsInput) => Promise<ListProductLinkMetadataFieldsResult>;
|
|
129
185
|
applyFreeOnboardTier: (input: ApplyFreeOnboardTierInput) => Promise<ApplyFreeOnboardTierResult>;
|
|
130
186
|
setupOnboardBilling: (input: SetupOnboardBillingInput) => Promise<SetupOnboardBillingResult>;
|
|
131
187
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/companies/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,eAAe,GAAG,IAAI,CAAA;IAC3B,KAAK,EAAE,eAAe,GAAG,IAAI,CAAA;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,gBAAgB,CAAA;CAC5B;AAED,qCAAqC;AACrC,MAAM,MAAM,aAAa,GAAG,cAAc,CAAA;AAE1C,MAAM,WAAW,eAAe;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+EAA+E;IAC/E,IAAI,CAAC,EAAE,IAAI,GAAG,WAAW,CAAA;IACzB,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/companies/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AppRouter } from '@chatarmin/api/trpc-types';
|
|
2
|
+
import type { createTRPCClient } from '@trpc/client';
|
|
3
|
+
import type { DealsClient } from './types.js';
|
|
4
|
+
type SdkClient = ReturnType<typeof createTRPCClient<AppRouter>>;
|
|
5
|
+
type SdkCall = <T>(operation: string, action: () => Promise<T>) => Promise<T>;
|
|
6
|
+
export declare function createDealsClient(client: SdkClient, call: SdkCall): DealsClient;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/deals/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EACV,WAAW,EAKZ,MAAM,YAAY,CAAA;AAEnB,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAA;AAC/D,KAAK,OAAO,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;AAE7E,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,GAAG,WAAW,CAa/E"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export function createDealsClient(client, call) {
|
|
2
|
+
return {
|
|
3
|
+
list: (input) => call('deals.list', () => client.companies.listDealsForProduct.query(input)),
|
|
4
|
+
markChurned: (input) => call('deals.markChurned', () => client.companies.markDealChurnedForProduct.mutate(input)),
|
|
5
|
+
};
|
|
6
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/deals/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,GACZ,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { createDealsClient } from './client.js';
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/** Identify the company by OS id or by your product's external org id. */
|
|
2
|
+
export type DealCompanyScope = {
|
|
3
|
+
companyId: string;
|
|
4
|
+
externalOrgId?: string;
|
|
5
|
+
} | {
|
|
6
|
+
companyId?: string;
|
|
7
|
+
externalOrgId: string;
|
|
8
|
+
};
|
|
9
|
+
export type ListDealsInput = DealCompanyScope;
|
|
10
|
+
export interface ProductDeal {
|
|
11
|
+
id: string;
|
|
12
|
+
title: string;
|
|
13
|
+
/** CRM deal status, e.g. `won`, `lost`, `open`. */
|
|
14
|
+
status: string;
|
|
15
|
+
wonAt: Date | null;
|
|
16
|
+
lostAt: Date | null;
|
|
17
|
+
/** Set once the deal is marked commercially churned (immediately or on a future date). */
|
|
18
|
+
commercialChurnedAt: Date | null;
|
|
19
|
+
commercialChurnNote: string | null;
|
|
20
|
+
}
|
|
21
|
+
export interface ListDealsResult {
|
|
22
|
+
companyId: string;
|
|
23
|
+
/** Company commercial status, e.g. `active` or `churned`. */
|
|
24
|
+
commercialStatus: string | null;
|
|
25
|
+
/** Company health, e.g. `healthy`, `at_risk`, `billing_mismatch`. */
|
|
26
|
+
healthStatus: string | null;
|
|
27
|
+
subscriptionStatus: string | null;
|
|
28
|
+
deals: ProductDeal[];
|
|
29
|
+
}
|
|
30
|
+
export type MarkDealChurnedInput = DealCompanyScope & {
|
|
31
|
+
/** Defaults to the company's latest won deal. */
|
|
32
|
+
dealId?: string;
|
|
33
|
+
/** Defaults to `immediately`. */
|
|
34
|
+
timing?: 'immediately' | 'specific_date';
|
|
35
|
+
/** Local org day `YYYY-MM-DD`; required with `timing: 'specific_date'`. Not in the past. */
|
|
36
|
+
churnAtLocalDate?: string;
|
|
37
|
+
/** Why the customer churned (1–500 chars). */
|
|
38
|
+
note: string;
|
|
39
|
+
/** Login email of the OS member the churn is recorded for; must be a member of the company's org. */
|
|
40
|
+
actorEmail: string;
|
|
41
|
+
};
|
|
42
|
+
export interface MarkDealChurnedResult {
|
|
43
|
+
companyId: string;
|
|
44
|
+
dealId: string;
|
|
45
|
+
churnAt: Date;
|
|
46
|
+
}
|
|
47
|
+
export interface DealsClient {
|
|
48
|
+
/** Deals of a linked company plus its commercial and health status. */
|
|
49
|
+
list(input: ListDealsInput): Promise<ListDealsResult>;
|
|
50
|
+
/**
|
|
51
|
+
* Churn a won deal (the OS churn SOP). OS ends the subscriptions that deal covers on the churn
|
|
52
|
+
* day; do not end subscriptions directly. Re-read `billing.getOverview` (`cancelAt`) to confirm.
|
|
53
|
+
*/
|
|
54
|
+
markChurned(input: MarkDealChurnedInput): Promise<MarkDealChurnedResult>;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/deals/types.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,MAAM,gBAAgB,GACxB;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAA;AAEjD,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAA;AAE7C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,IAAI,GAAG,IAAI,CAAA;IAClB,MAAM,EAAE,IAAI,GAAG,IAAI,CAAA;IACnB,0FAA0F;IAC1F,mBAAmB,EAAE,IAAI,GAAG,IAAI,CAAA;IAChC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,6DAA6D;IAC7D,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,qEAAqE;IACrE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,KAAK,EAAE,WAAW,EAAE,CAAA;CACrB;AAED,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG;IACpD,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iCAAiC;IACjC,MAAM,CAAC,EAAE,aAAa,GAAG,eAAe,CAAA;IACxC,4FAA4F;IAC5F,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAA;IACZ,qGAAqG;IACrG,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,IAAI,CAAA;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,uEAAuE;IACvE,IAAI,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IACrD;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAA;CACzE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import type { AppRouter } from "@chatarmin/api/trpc-types";
|
|
2
2
|
import { type CompaniesClient } from "./companies/index.js";
|
|
3
|
+
import { type LinksClient } from "./links/client.js";
|
|
4
|
+
export type { LinksClient } from "./links/client.js";
|
|
3
5
|
import { type ChannelsClient } from "./channels/index.js";
|
|
4
6
|
import { type BillingClient } from "./billing/index.js";
|
|
7
|
+
import { type DealsClient } from "./deals/index.js";
|
|
5
8
|
import { type FeaturesClient } from "./features/index.js";
|
|
6
9
|
import type { OnboardInput, OnboardResult } from "./onboard-types.js";
|
|
7
10
|
export { webhooks, constructProductWebhookEvent, generateTestWebhookHeaders, OsWebhookSignatureVerificationError, WEBHOOK_ID_HEADER, WEBHOOK_SIGNATURE_HEADER, WEBHOOK_TIMESTAMP_HEADER, } from "./webhooks/index.js";
|
|
8
11
|
export type { ConstructProductWebhookEventOptions, ProductWebhookEventPayload, ProductWebhookHeaders, VerifiedProductWebhookEvent, } from "./webhooks/index.js";
|
|
9
|
-
export type { CompaniesClient, CompanyAssignee, CompanyAssignees, CreateCompanyInput, CreateCompanyResult, GetCompanyInput, LinkedCompany, ListCompaniesInput, ListCompaniesResult, ListLinkedCompaniesInput, ListLinkedCompaniesResult, ProductCompany, ApplyFreeOnboardTierInput, ApplyFreeOnboardTierResult, SetupOnboardBillingInput, SetupOnboardBillingResult, UpdateCompanyResult, } from "./companies/index.js";
|
|
12
|
+
export type { CompaniesClient, CompanyAssignee, CompanyAssignees, CreateCompanyInput, CreateCompanyResult, GetCompanyInput, LinkedCompany, ListCompaniesInput, ListCompaniesResult, ListLinkedCompaniesInput, ListLinkedCompaniesResult, ProductCompany, ApplyFreeOnboardTierInput, ApplyFreeOnboardTierResult, SetupOnboardBillingInput, SetupOnboardBillingResult, UpdateCompanyResult, ListProductLinksInput, ListProductLinksResult, ProductLinkSummary, ProductLinkMetadataFilter, ProductLinkMetadataField, ListProductLinkMetadataFieldsInput, ListProductLinkMetadataFieldsResult, UpdateProductLinkInput, UpdateProductLinkResult, } from "./companies/index.js";
|
|
10
13
|
export type { ChannelLinkType, ChannelsClient, LinkChannelInput, LinkChannelResult, LinkThreadInput, LinkThreadResult, UpdateChannelLinkInput, UpdateChannelLinkResult, } from "./channels/index.js";
|
|
14
|
+
export type * from "./deals/index.js";
|
|
11
15
|
export type { BillingClient, BillingInvoiceSummary, BillingOverview, BillingProfileSummary, BillingSubscriptionSummary, ClaimCheckoutInput, ClaimCheckoutResult, CreateBillingPortalSessionInput, EnsureFeatureSubscriptionInput, EnsureFeatureSubscriptionResult, GetBillingOverviewInput, GetUsageInput, LinkSubscriptionInput, LinkSubscriptionResult, ListBillingInvoicesOptions, PeriodOffsetRange, RelinkBillingProfileInput, ResolveInvoicePaymentUrlInput, SetUsageInput, SyncCompanyFromStripeInput, SyncCompanyFromStripeResult, UsageAggregate, UsageCycleBucket, UsageCycleSummary, UsagePoint, UsageQueryResult, UsageRecord, UsageSubscriptionItem, UsageResult, } from "./billing/index.js";
|
|
12
16
|
export type { ExternalOrgFeatureAccessItem, FeatureAccessByExternalOrgIdResult, FeatureAccessItem, FeatureAccessMode, FeatureBillingDetails, FeatureCheckByExternalOrgIdResult, FeatureCheckInput, FeatureCheckResult, FeatureResolvedAccess, FeatureResolvedAccessSource, FeatureSetAccessInput, FeatureSetAccessResult, FeaturesClient, ListFeatureAccessInput, } from "./features/index.js";
|
|
13
17
|
/**
|
|
@@ -382,6 +386,8 @@ export declare class ChatarminOS {
|
|
|
382
386
|
get features(): FeaturesClient;
|
|
383
387
|
/** Billing, usage tracking, subscriptions, and customer billing surfaces. */
|
|
384
388
|
get billing(): BillingClient;
|
|
389
|
+
/** Deals and commercial churn (`deals.markChurned` is the OS churn SOP). */
|
|
390
|
+
get deals(): DealsClient;
|
|
385
391
|
/**
|
|
386
392
|
* Manual link operations for associating external IDs with companies.
|
|
387
393
|
*
|
|
@@ -398,95 +404,7 @@ export declare class ChatarminOS {
|
|
|
398
404
|
* })
|
|
399
405
|
* ```
|
|
400
406
|
*/
|
|
401
|
-
get links():
|
|
402
|
-
/**
|
|
403
|
-
* Create a manual link between your external org ID and an existing company.
|
|
404
|
-
*
|
|
405
|
-
* Use this when you know the exact company ID and want to create
|
|
406
|
-
* a direct link without smart matching.
|
|
407
|
-
*
|
|
408
|
-
* @param input - Link parameters
|
|
409
|
-
* @param input.companyId - Company UUID or short_id (e.g., "acme-corp")
|
|
410
|
-
* @returns The created link record
|
|
411
|
-
*
|
|
412
|
-
* @example Using UUID
|
|
413
|
-
* ```typescript
|
|
414
|
-
* const link = await os.links.create({
|
|
415
|
-
* companyId: 'a1b2c3d4-e5f6-...',
|
|
416
|
-
* externalOrgId: 'org_abc123',
|
|
417
|
-
* label: 'Store Vienna'
|
|
418
|
-
* })
|
|
419
|
-
* ```
|
|
420
|
-
*
|
|
421
|
-
* @example Using short_id
|
|
422
|
-
* ```typescript
|
|
423
|
-
* const link = await os.links.create({
|
|
424
|
-
* companyId: 'acme-corp', // short_id works too!
|
|
425
|
-
* externalOrgId: 'org_abc123',
|
|
426
|
-
* label: 'Store Vienna'
|
|
427
|
-
* })
|
|
428
|
-
* ```
|
|
429
|
-
*/
|
|
430
|
-
create: (input: {
|
|
431
|
-
/** Company UUID or short_id */
|
|
432
|
-
companyId: string;
|
|
433
|
-
externalOrgId: string;
|
|
434
|
-
label?: string;
|
|
435
|
-
externalUserId?: string;
|
|
436
|
-
}) => Promise<{
|
|
437
|
-
id: string;
|
|
438
|
-
company_id: string | null;
|
|
439
|
-
status: string;
|
|
440
|
-
metadata: unknown;
|
|
441
|
-
created_at: Date;
|
|
442
|
-
updated_at: Date;
|
|
443
|
-
sync_status: string;
|
|
444
|
-
custom_fields: unknown;
|
|
445
|
-
label: string | null;
|
|
446
|
-
product_id: string;
|
|
447
|
-
external_org_id: string;
|
|
448
|
-
external_user_id: string | null;
|
|
449
|
-
confidence: number | null;
|
|
450
|
-
link_type: string;
|
|
451
|
-
external_display_name: string | null;
|
|
452
|
-
billing_profile_id: string | null;
|
|
453
|
-
}>;
|
|
454
|
-
/**
|
|
455
|
-
* Delete all product links for this product.
|
|
456
|
-
*
|
|
457
|
-
* Use this before re-importing to clean up old links.
|
|
458
|
-
* This only affects links for YOUR product (identified by API key).
|
|
459
|
-
*
|
|
460
|
-
* **Options:**
|
|
461
|
-
* - `deleteContacts`: Also delete contacts from linked companies
|
|
462
|
-
* - `resetMrr`: Also reset MRR to 0 for linked companies
|
|
463
|
-
*
|
|
464
|
-
* @returns Counts of deleted/reset items
|
|
465
|
-
*
|
|
466
|
-
* @example Basic reset (links only)
|
|
467
|
-
* ```typescript
|
|
468
|
-
* const result = await os.links.reset()
|
|
469
|
-
* console.log(`Deleted ${result.linksDeleted} links`)
|
|
470
|
-
* ```
|
|
471
|
-
*
|
|
472
|
-
* @example Full reset (links + contacts + MRR)
|
|
473
|
-
* ```typescript
|
|
474
|
-
* const result = await os.links.reset({
|
|
475
|
-
* deleteContacts: true,
|
|
476
|
-
* resetMrr: true
|
|
477
|
-
* })
|
|
478
|
-
* console.log(`Deleted ${result.linksDeleted} links, ${result.contactsDeleted} contacts`)
|
|
479
|
-
* ```
|
|
480
|
-
*/
|
|
481
|
-
reset: (options?: {
|
|
482
|
-
deleteContacts?: boolean;
|
|
483
|
-
resetMrr?: boolean;
|
|
484
|
-
}) => Promise<{
|
|
485
|
-
linksDeleted: number;
|
|
486
|
-
contactsDeleted: number;
|
|
487
|
-
companiesMrrReset: number;
|
|
488
|
-
}>;
|
|
489
|
-
};
|
|
407
|
+
get links(): LinksClient;
|
|
490
408
|
/**
|
|
491
409
|
* Subscription and tier management.
|
|
492
410
|
*
|
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,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAG1D,OAAO,EAEL,KAAK,eAAe,EAErB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC5E,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAG/E,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAErE,OAAO,EACL,QAAQ,EACR,4BAA4B,EAC5B,0BAA0B,EAC1B,mCAAmC,EACnC,iBAAiB,EACjB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EACV,mCAAmC,EACnC,0BAA0B,EAC1B,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,qBAAqB,CAAA;AAE5B,YAAY,EACV,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,cAAc,EACd,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { TRPCClientError, createTRPCClient, httpBatchLink } from "@trpc/client";
|
|
2
2
|
import superjson from "superjson";
|
|
3
3
|
import { createCompaniesClient, } from "./companies/index.js";
|
|
4
|
+
import { createLinksClient } from "./links/client.js";
|
|
4
5
|
import { createChannelsClient, } from "./channels/index.js";
|
|
5
6
|
import { createBillingClient } from "./billing/index.js";
|
|
7
|
+
import { createDealsClient } from "./deals/index.js";
|
|
6
8
|
import { createFeaturesClient } from "./features/index.js";
|
|
7
9
|
import { webhooks } from "./webhooks/index.js";
|
|
8
10
|
import { runOnboardFlow } from "./onboard-flow.js";
|
|
@@ -349,6 +351,10 @@ export class ChatarminOS {
|
|
|
349
351
|
get billing() {
|
|
350
352
|
return createBillingClient(this.client, this.call.bind(this));
|
|
351
353
|
}
|
|
354
|
+
/** Deals and commercial churn (`deals.markChurned` is the OS churn SOP). */
|
|
355
|
+
get deals() {
|
|
356
|
+
return createDealsClient(this.client, this.call.bind(this));
|
|
357
|
+
}
|
|
352
358
|
// ==========================================================================
|
|
353
359
|
// Links
|
|
354
360
|
// ==========================================================================
|
|
@@ -369,72 +375,7 @@ export class ChatarminOS {
|
|
|
369
375
|
* ```
|
|
370
376
|
*/
|
|
371
377
|
get links() {
|
|
372
|
-
|
|
373
|
-
const call = this.call.bind(this);
|
|
374
|
-
return {
|
|
375
|
-
/**
|
|
376
|
-
* Create a manual link between your external org ID and an existing company.
|
|
377
|
-
*
|
|
378
|
-
* Use this when you know the exact company ID and want to create
|
|
379
|
-
* a direct link without smart matching.
|
|
380
|
-
*
|
|
381
|
-
* @param input - Link parameters
|
|
382
|
-
* @param input.companyId - Company UUID or short_id (e.g., "acme-corp")
|
|
383
|
-
* @returns The created link record
|
|
384
|
-
*
|
|
385
|
-
* @example Using UUID
|
|
386
|
-
* ```typescript
|
|
387
|
-
* const link = await os.links.create({
|
|
388
|
-
* companyId: 'a1b2c3d4-e5f6-...',
|
|
389
|
-
* externalOrgId: 'org_abc123',
|
|
390
|
-
* label: 'Store Vienna'
|
|
391
|
-
* })
|
|
392
|
-
* ```
|
|
393
|
-
*
|
|
394
|
-
* @example Using short_id
|
|
395
|
-
* ```typescript
|
|
396
|
-
* const link = await os.links.create({
|
|
397
|
-
* companyId: 'acme-corp', // short_id works too!
|
|
398
|
-
* externalOrgId: 'org_abc123',
|
|
399
|
-
* label: 'Store Vienna'
|
|
400
|
-
* })
|
|
401
|
-
* ```
|
|
402
|
-
*/
|
|
403
|
-
create: (input) => call("links.create", () => client.companies.upsertProductLink.mutate({
|
|
404
|
-
companyId: input.companyId,
|
|
405
|
-
externalOrgId: input.externalOrgId,
|
|
406
|
-
externalUserId: input.externalUserId,
|
|
407
|
-
label: input.label,
|
|
408
|
-
})),
|
|
409
|
-
/**
|
|
410
|
-
* Delete all product links for this product.
|
|
411
|
-
*
|
|
412
|
-
* Use this before re-importing to clean up old links.
|
|
413
|
-
* This only affects links for YOUR product (identified by API key).
|
|
414
|
-
*
|
|
415
|
-
* **Options:**
|
|
416
|
-
* - `deleteContacts`: Also delete contacts from linked companies
|
|
417
|
-
* - `resetMrr`: Also reset MRR to 0 for linked companies
|
|
418
|
-
*
|
|
419
|
-
* @returns Counts of deleted/reset items
|
|
420
|
-
*
|
|
421
|
-
* @example Basic reset (links only)
|
|
422
|
-
* ```typescript
|
|
423
|
-
* const result = await os.links.reset()
|
|
424
|
-
* console.log(`Deleted ${result.linksDeleted} links`)
|
|
425
|
-
* ```
|
|
426
|
-
*
|
|
427
|
-
* @example Full reset (links + contacts + MRR)
|
|
428
|
-
* ```typescript
|
|
429
|
-
* const result = await os.links.reset({
|
|
430
|
-
* deleteContacts: true,
|
|
431
|
-
* resetMrr: true
|
|
432
|
-
* })
|
|
433
|
-
* console.log(`Deleted ${result.linksDeleted} links, ${result.contactsDeleted} contacts`)
|
|
434
|
-
* ```
|
|
435
|
-
*/
|
|
436
|
-
reset: (options) => call("links.reset", () => client.companies.resetProductLinks.mutate(options)),
|
|
437
|
-
};
|
|
378
|
+
return createLinksClient(this.client, this.call.bind(this));
|
|
438
379
|
}
|
|
439
380
|
// ==========================================================================
|
|
440
381
|
// Subscriptions
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import type { AppRouter } from "@chatarmin/api/trpc-types";
|
|
2
|
+
import type { createTRPCClient } from "@trpc/client";
|
|
3
|
+
import type { UpdateProductLinkInput, UpdateProductLinkResult } from "../companies/types.js";
|
|
4
|
+
type SdkClient = ReturnType<typeof createTRPCClient<AppRouter>>;
|
|
5
|
+
type SdkCall = <T>(operation: string, action: () => Promise<T>) => Promise<T>;
|
|
6
|
+
/** Manual link operations; see `ChatarminOS.links`. */
|
|
7
|
+
export declare function createLinksClient(client: SdkClient, call: SdkCall): {
|
|
8
|
+
/**
|
|
9
|
+
* Create a manual link between your external org ID and an existing company.
|
|
10
|
+
*
|
|
11
|
+
* Use this when you know the exact company ID and want to create
|
|
12
|
+
* a direct link without smart matching.
|
|
13
|
+
*
|
|
14
|
+
* @param input - Link parameters
|
|
15
|
+
* @param input.companyId - Company UUID or short_id (e.g., "acme-corp")
|
|
16
|
+
* @returns The created link record
|
|
17
|
+
*
|
|
18
|
+
* @example Using UUID
|
|
19
|
+
* ```typescript
|
|
20
|
+
* const link = await os.links.create({
|
|
21
|
+
* companyId: 'a1b2c3d4-e5f6-...',
|
|
22
|
+
* externalOrgId: 'org_abc123',
|
|
23
|
+
* label: 'Store Vienna'
|
|
24
|
+
* })
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @example Using short_id
|
|
28
|
+
* ```typescript
|
|
29
|
+
* const link = await os.links.create({
|
|
30
|
+
* companyId: 'acme-corp', // short_id works too!
|
|
31
|
+
* externalOrgId: 'org_abc123',
|
|
32
|
+
* label: 'Store Vienna'
|
|
33
|
+
* })
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
create: (input: {
|
|
37
|
+
/** Company UUID or short_id */
|
|
38
|
+
companyId: string;
|
|
39
|
+
externalOrgId: string;
|
|
40
|
+
label?: string;
|
|
41
|
+
externalUserId?: string;
|
|
42
|
+
}) => Promise<{
|
|
43
|
+
id: string;
|
|
44
|
+
company_id: string | null;
|
|
45
|
+
status: string;
|
|
46
|
+
metadata: unknown;
|
|
47
|
+
created_at: Date;
|
|
48
|
+
updated_at: Date;
|
|
49
|
+
sync_status: string;
|
|
50
|
+
custom_fields: unknown;
|
|
51
|
+
label: string | null;
|
|
52
|
+
product_id: string;
|
|
53
|
+
external_org_id: string;
|
|
54
|
+
external_user_id: string | null;
|
|
55
|
+
confidence: number | null;
|
|
56
|
+
link_type: string;
|
|
57
|
+
external_display_name: string | null;
|
|
58
|
+
billing_profile_id: string | null;
|
|
59
|
+
}>;
|
|
60
|
+
/**
|
|
61
|
+
* Write your product's metadata on one of your links, e.g. channel ids other OS readers
|
|
62
|
+
* (staff tools, agents) should see next to the company.
|
|
63
|
+
*
|
|
64
|
+
* Merges top-level keys into the metadata you wrote before; pass `resetMetadata: true` to
|
|
65
|
+
* replace it. OS-owned link state is never touched. Credentials are rejected: never send
|
|
66
|
+
* tokens, secrets, passwords or PINs. Throws NOT_FOUND when the link does not exist.
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* await os.links.update({
|
|
71
|
+
* externalOrgId: 'org_abc123',
|
|
72
|
+
* metadata: { whatsapp: { provider: 'meta', wabaId: '1029…', phoneNumberId: '3301…' } },
|
|
73
|
+
* })
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
update: (input: UpdateProductLinkInput) => Promise<UpdateProductLinkResult>;
|
|
77
|
+
/**
|
|
78
|
+
* Delete all product links for this product.
|
|
79
|
+
*
|
|
80
|
+
* Use this before re-importing to clean up old links.
|
|
81
|
+
* This only affects links for YOUR product (identified by API key).
|
|
82
|
+
*
|
|
83
|
+
* **Options:**
|
|
84
|
+
* - `deleteContacts`: Also delete contacts from linked companies
|
|
85
|
+
* - `resetMrr`: Also reset MRR to 0 for linked companies
|
|
86
|
+
*
|
|
87
|
+
* @returns Counts of deleted/reset items
|
|
88
|
+
*
|
|
89
|
+
* @example Basic reset (links only)
|
|
90
|
+
* ```typescript
|
|
91
|
+
* const result = await os.links.reset()
|
|
92
|
+
* console.log(`Deleted ${result.linksDeleted} links`)
|
|
93
|
+
* ```
|
|
94
|
+
*
|
|
95
|
+
* @example Full reset (links + contacts + MRR)
|
|
96
|
+
* ```typescript
|
|
97
|
+
* const result = await os.links.reset({
|
|
98
|
+
* deleteContacts: true,
|
|
99
|
+
* resetMrr: true
|
|
100
|
+
* })
|
|
101
|
+
* console.log(`Deleted ${result.linksDeleted} links, ${result.contactsDeleted} contacts`)
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
104
|
+
reset: (options?: {
|
|
105
|
+
deleteContacts?: boolean;
|
|
106
|
+
resetMrr?: boolean;
|
|
107
|
+
}) => Promise<{
|
|
108
|
+
linksDeleted: number;
|
|
109
|
+
contactsDeleted: number;
|
|
110
|
+
companiesMrrReset: number;
|
|
111
|
+
}>;
|
|
112
|
+
};
|
|
113
|
+
export type LinksClient = ReturnType<typeof createLinksClient>;
|
|
114
|
+
export {};
|
|
115
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/links/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAE5F,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAA;AAC/D,KAAK,OAAO,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;AAE7E,uDAAuD;AACvD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO;IAE9D;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;oBACa;QACd,+BAA+B;QAC/B,SAAS,EAAE,MAAM,CAAA;QACjB,aAAa,EAAE,MAAM,CAAA;QACrB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,cAAc,CAAC,EAAE,MAAM,CAAA;KACxB;;;;;;;;;;;;;;;;;;IAUD;;;;;;;;;;;;;;;OAeG;oBACa,sBAAsB,KAAG,OAAO,CAAC,uBAAuB,CAAC;IAKzE;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;sBACe;QAAE,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE;;;;;EAKrE;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAA"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/** Manual link operations; see `ChatarminOS.links`. */
|
|
2
|
+
export function createLinksClient(client, call) {
|
|
3
|
+
return {
|
|
4
|
+
/**
|
|
5
|
+
* Create a manual link between your external org ID and an existing company.
|
|
6
|
+
*
|
|
7
|
+
* Use this when you know the exact company ID and want to create
|
|
8
|
+
* a direct link without smart matching.
|
|
9
|
+
*
|
|
10
|
+
* @param input - Link parameters
|
|
11
|
+
* @param input.companyId - Company UUID or short_id (e.g., "acme-corp")
|
|
12
|
+
* @returns The created link record
|
|
13
|
+
*
|
|
14
|
+
* @example Using UUID
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const link = await os.links.create({
|
|
17
|
+
* companyId: 'a1b2c3d4-e5f6-...',
|
|
18
|
+
* externalOrgId: 'org_abc123',
|
|
19
|
+
* label: 'Store Vienna'
|
|
20
|
+
* })
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @example Using short_id
|
|
24
|
+
* ```typescript
|
|
25
|
+
* const link = await os.links.create({
|
|
26
|
+
* companyId: 'acme-corp', // short_id works too!
|
|
27
|
+
* externalOrgId: 'org_abc123',
|
|
28
|
+
* label: 'Store Vienna'
|
|
29
|
+
* })
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
create: (input) => call("links.create", () => client.companies.upsertProductLink.mutate({
|
|
33
|
+
companyId: input.companyId,
|
|
34
|
+
externalOrgId: input.externalOrgId,
|
|
35
|
+
externalUserId: input.externalUserId,
|
|
36
|
+
label: input.label,
|
|
37
|
+
})),
|
|
38
|
+
/**
|
|
39
|
+
* Write your product's metadata on one of your links, e.g. channel ids other OS readers
|
|
40
|
+
* (staff tools, agents) should see next to the company.
|
|
41
|
+
*
|
|
42
|
+
* Merges top-level keys into the metadata you wrote before; pass `resetMetadata: true` to
|
|
43
|
+
* replace it. OS-owned link state is never touched. Credentials are rejected: never send
|
|
44
|
+
* tokens, secrets, passwords or PINs. Throws NOT_FOUND when the link does not exist.
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* await os.links.update({
|
|
49
|
+
* externalOrgId: 'org_abc123',
|
|
50
|
+
* metadata: { whatsapp: { provider: 'meta', wabaId: '1029…', phoneNumberId: '3301…' } },
|
|
51
|
+
* })
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
update: (input) => call("links.update", () => client.companies.updateProductLinkMetadata.mutate(input)),
|
|
55
|
+
/**
|
|
56
|
+
* Delete all product links for this product.
|
|
57
|
+
*
|
|
58
|
+
* Use this before re-importing to clean up old links.
|
|
59
|
+
* This only affects links for YOUR product (identified by API key).
|
|
60
|
+
*
|
|
61
|
+
* **Options:**
|
|
62
|
+
* - `deleteContacts`: Also delete contacts from linked companies
|
|
63
|
+
* - `resetMrr`: Also reset MRR to 0 for linked companies
|
|
64
|
+
*
|
|
65
|
+
* @returns Counts of deleted/reset items
|
|
66
|
+
*
|
|
67
|
+
* @example Basic reset (links only)
|
|
68
|
+
* ```typescript
|
|
69
|
+
* const result = await os.links.reset()
|
|
70
|
+
* console.log(`Deleted ${result.linksDeleted} links`)
|
|
71
|
+
* ```
|
|
72
|
+
*
|
|
73
|
+
* @example Full reset (links + contacts + MRR)
|
|
74
|
+
* ```typescript
|
|
75
|
+
* const result = await os.links.reset({
|
|
76
|
+
* deleteContacts: true,
|
|
77
|
+
* resetMrr: true
|
|
78
|
+
* })
|
|
79
|
+
* console.log(`Deleted ${result.linksDeleted} links, ${result.contactsDeleted} contacts`)
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
reset: (options) => call("links.reset", () => client.companies.resetProductLinks.mutate(options)),
|
|
83
|
+
};
|
|
84
|
+
}
|