@komo-tech/embed-core 0.1.0 → 0.1.1
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 +5 -4
- package/dist/FetchEmbedSessionClient.d.ts +3 -3
- package/dist/FetchEmbedSessionClient.d.ts.map +1 -1
- package/dist/FetchEmbedSessionClient.js +23 -5
- package/dist/KomoEmbedSessionManager.d.ts +2 -2
- package/dist/KomoEmbedSessionManager.d.ts.map +1 -1
- package/dist/KomoEmbedSessionManager.js +4 -4
- package/dist/identity.d.ts +3 -3
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +4 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/types.d.ts +3 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -13,14 +13,14 @@ import {
|
|
|
13
13
|
} from '@komo-tech/embed-core';
|
|
14
14
|
|
|
15
15
|
const session = new KomoEmbedSessionManager({
|
|
16
|
-
|
|
16
|
+
appId: 'app-id',
|
|
17
17
|
siteId: 'site-guid',
|
|
18
18
|
getIdentityToken: async () => ({
|
|
19
19
|
type: 'jwt',
|
|
20
20
|
token: await host.getJwt()
|
|
21
21
|
}),
|
|
22
22
|
client: new FetchEmbedSessionClient({
|
|
23
|
-
|
|
23
|
+
region: 'au1',
|
|
24
24
|
fetch: hostFetch
|
|
25
25
|
})
|
|
26
26
|
});
|
|
@@ -28,11 +28,13 @@ const session = new KomoEmbedSessionManager({
|
|
|
28
28
|
const bearer = await session.getBearerToken();
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
+
Use `region: 'au1'` or `region: 'us1'` for the public Komo API region.
|
|
32
|
+
|
|
31
33
|
Use email identity without `siteId`:
|
|
32
34
|
|
|
33
35
|
```ts
|
|
34
36
|
const session = new KomoEmbedSessionManager({
|
|
35
|
-
|
|
37
|
+
appId: 'app-id',
|
|
36
38
|
getIdentityToken: () => ({
|
|
37
39
|
type: 'email',
|
|
38
40
|
attributes: { email: 'person@example.com' }
|
|
@@ -51,4 +53,3 @@ const unsubscribe = session.onAuthenticated(({ contactId, trustLevel }) => {
|
|
|
51
53
|
unsubscribe();
|
|
52
54
|
session.dispose();
|
|
53
55
|
```
|
|
54
|
-
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { EmbedSessionClient, EmbedSessionExchangeRequest, EmbedSessionExchangeResponse, EmbedSessionRefreshRequest, EmbedSessionRefreshResponse, PortableAbortSignal } from './types.js';
|
|
1
|
+
import type { EmbedSessionClient, EmbedSessionExchangeRequest, EmbedSessionExchangeResponse, EmbedSessionRefreshRequest, EmbedSessionRefreshResponse, KomoRegion, PortableAbortSignal } from './types.js';
|
|
2
2
|
export type PortableHeadersInit = Record<string, string> | Array<[string, string]> | {
|
|
3
3
|
forEach(callback: (value: string, key: string) => void): void;
|
|
4
4
|
};
|
|
@@ -16,14 +16,14 @@ export interface PortableFetchResponse {
|
|
|
16
16
|
export type PortableFetch = (input: string, init?: PortableFetchRequestInit) => Promise<PortableFetchResponse>;
|
|
17
17
|
export type RuntimeFetch = (input: string) => Promise<PortableFetchResponse>;
|
|
18
18
|
export interface FetchEmbedSessionClientOptions {
|
|
19
|
-
|
|
19
|
+
region: KomoRegion;
|
|
20
20
|
fetch?: PortableFetch | RuntimeFetch;
|
|
21
21
|
maxRetries?: number;
|
|
22
22
|
retryBaseDelayMs?: number;
|
|
23
23
|
headers?: PortableHeadersInit | (() => PortableHeadersInit);
|
|
24
24
|
}
|
|
25
25
|
export declare class FetchEmbedSessionClient implements EmbedSessionClient {
|
|
26
|
-
private readonly
|
|
26
|
+
private readonly region;
|
|
27
27
|
private readonly fetchImpl;
|
|
28
28
|
private readonly maxRetries;
|
|
29
29
|
private readonly retryBaseDelayMs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FetchEmbedSessionClient.d.ts","sourceRoot":"","sources":["../src/FetchEmbedSessionClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,2BAA2B,EAC3B,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,EAG3B,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,mBAAmB,GAC3B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtB,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACvB;IACE,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;CAC/D,CAAC;AAEN,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACzB;AAED,MAAM,MAAM,aAAa,GAAG,CAC1B,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,wBAAwB,KAC5B,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAEpC,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAE7E,MAAM,WAAW,8BAA8B;IAC7C,
|
|
1
|
+
{"version":3,"file":"FetchEmbedSessionClient.d.ts","sourceRoot":"","sources":["../src/FetchEmbedSessionClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,2BAA2B,EAC3B,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,EAG3B,UAAU,EACV,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,mBAAmB,GAC3B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtB,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACvB;IACE,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;CAC/D,CAAC;AAEN,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACzB;AAED,MAAM,MAAM,aAAa,GAAG,CAC1B,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,wBAAwB,KAC5B,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAEpC,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAE7E,MAAM,WAAW,8BAA8B;IAC7C,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,mBAAmB,GAAG,CAAC,MAAM,mBAAmB,CAAC,CAAC;CAC7D;AA4KD,qBAAa,uBAAwB,YAAW,kBAAkB;IAChE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAoD;gBAEjE,OAAO,EAAE,8BAA8B;IAY7C,QAAQ,CACZ,OAAO,EAAE,2BAA2B,EACpC,MAAM,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,4BAA4B,CAAC;IA6BlC,OAAO,CACX,OAAO,EAAE,0BAA0B,EACnC,MAAM,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,2BAA2B,CAAC;YA6BzB,YAAY;YAYZ,WAAW;YAYX,kBAAkB;IA6DhC,OAAO,CAAC,cAAc;CAsBvB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EmbedSessionExchangeError } from './errors.js';
|
|
2
2
|
const exchangePath = '/api/v1/live/auth/sdk/session';
|
|
3
3
|
const refreshPath = '/api/v1/live/auth/sdk/session/refresh';
|
|
4
|
+
const regionPattern = /^(?:local|[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)$/;
|
|
4
5
|
const retryableStatus = (status) => status >= 500 && status <= 599;
|
|
5
6
|
const delay = (ms, signal) => new Promise((resolve, reject) => {
|
|
6
7
|
if (signal?.aborted) {
|
|
@@ -17,10 +18,27 @@ const delay = (ms, signal) => new Promise((resolve, reject) => {
|
|
|
17
18
|
};
|
|
18
19
|
signal?.addEventListener?.('abort', onAbort, { once: true });
|
|
19
20
|
});
|
|
20
|
-
const
|
|
21
|
+
const toBaseUrl = (region) => {
|
|
22
|
+
if (region === 'local') {
|
|
23
|
+
return 'http://localhost:5002';
|
|
24
|
+
}
|
|
25
|
+
return `https://api.${region}.komo.site`;
|
|
26
|
+
};
|
|
27
|
+
const toUrl = (region, path) => {
|
|
28
|
+
const baseUrl = toBaseUrl(region);
|
|
21
29
|
const normalizedBase = baseUrl.endsWith('/') ? baseUrl.slice(0, -1) : baseUrl;
|
|
22
30
|
return `${normalizedBase}${path}`;
|
|
23
31
|
};
|
|
32
|
+
const normalizeRegion = (region) => {
|
|
33
|
+
if (!region?.trim()) {
|
|
34
|
+
throw new Error('FetchEmbedSessionClient requires region');
|
|
35
|
+
}
|
|
36
|
+
const normalizedRegion = region.trim();
|
|
37
|
+
if (normalizedRegion !== region || !regionPattern.test(normalizedRegion)) {
|
|
38
|
+
throw new Error('FetchEmbedSessionClient region must lowercase letters, numbers, and hyphens only');
|
|
39
|
+
}
|
|
40
|
+
return normalizedRegion;
|
|
41
|
+
};
|
|
24
42
|
const toWireIdentity = (identity) => {
|
|
25
43
|
switch (identity.type) {
|
|
26
44
|
case 'jwt':
|
|
@@ -40,7 +58,7 @@ const toWireIdentity = (identity) => {
|
|
|
40
58
|
}
|
|
41
59
|
};
|
|
42
60
|
const toBody = (request) => ({
|
|
43
|
-
|
|
61
|
+
appId: request.appId,
|
|
44
62
|
...(request.siteId ? { siteId: request.siteId } : {}),
|
|
45
63
|
identity: toWireIdentity(request.identity)
|
|
46
64
|
});
|
|
@@ -90,7 +108,7 @@ const toExchangeError = (message, status, retryable, body) => {
|
|
|
90
108
|
});
|
|
91
109
|
};
|
|
92
110
|
export class FetchEmbedSessionClient {
|
|
93
|
-
|
|
111
|
+
region;
|
|
94
112
|
fetchImpl;
|
|
95
113
|
maxRetries;
|
|
96
114
|
retryBaseDelayMs;
|
|
@@ -99,7 +117,7 @@ export class FetchEmbedSessionClient {
|
|
|
99
117
|
if (!options.fetch) {
|
|
100
118
|
throw new Error('FetchEmbedSessionClient requires injected fetch');
|
|
101
119
|
}
|
|
102
|
-
this.
|
|
120
|
+
this.region = normalizeRegion(options.region);
|
|
103
121
|
this.fetchImpl = options.fetch;
|
|
104
122
|
this.maxRetries = options.maxRetries ?? 2;
|
|
105
123
|
this.retryBaseDelayMs = options.retryBaseDelayMs ?? 250;
|
|
@@ -158,7 +176,7 @@ export class FetchEmbedSessionClient {
|
|
|
158
176
|
return this.postSessionRequest(refreshPath, toRefreshBody(request), 'Refresh', signal);
|
|
159
177
|
}
|
|
160
178
|
async postSessionRequest(path, requestBody, operation, signal) {
|
|
161
|
-
const response = await this.fetchImpl(toUrl(this.
|
|
179
|
+
const response = await this.fetchImpl(toUrl(this.region, path), {
|
|
162
180
|
method: 'POST',
|
|
163
181
|
signal,
|
|
164
182
|
body: JSON.stringify(requestBody),
|
|
@@ -2,7 +2,7 @@ import { type EmbedCoreEvents } from './events.js';
|
|
|
2
2
|
import type { TimerScheduler } from './RefreshScheduler.js';
|
|
3
3
|
import type { EmbedCoreLogger, EmbedSessionClient, EmbedSessionState, EmbedTrustLevel, IdentityResult, PlatformLifecycle } from './types.js';
|
|
4
4
|
export interface KomoEmbedSessionManagerOptions {
|
|
5
|
-
|
|
5
|
+
appId?: string;
|
|
6
6
|
siteId?: string;
|
|
7
7
|
getIdentityToken?: () => Promise<IdentityResult | null> | IdentityResult | null;
|
|
8
8
|
client: EmbedSessionClient;
|
|
@@ -21,7 +21,7 @@ export interface CurrentSession {
|
|
|
21
21
|
trustLevel?: EmbedTrustLevel;
|
|
22
22
|
}
|
|
23
23
|
export declare class KomoEmbedSessionManager {
|
|
24
|
-
private readonly
|
|
24
|
+
private readonly appId?;
|
|
25
25
|
private readonly siteId?;
|
|
26
26
|
private readonly getIdentityToken?;
|
|
27
27
|
private readonly client;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KomoEmbedSessionManager.d.ts","sourceRoot":"","sources":["../src/KomoEmbedSessionManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAGtE,OAAO,KAAK,EAAe,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAGlB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,8BAA8B;IAC7C,
|
|
1
|
+
{"version":3,"file":"KomoEmbedSessionManager.d.ts","sourceRoot":"","sources":["../src/KomoEmbedSessionManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ const parseExpiresAt = (expiresAt) => {
|
|
|
17
17
|
return date;
|
|
18
18
|
};
|
|
19
19
|
export class KomoEmbedSessionManager {
|
|
20
|
-
|
|
20
|
+
appId;
|
|
21
21
|
siteId;
|
|
22
22
|
getIdentityToken;
|
|
23
23
|
client;
|
|
@@ -36,7 +36,7 @@ export class KomoEmbedSessionManager {
|
|
|
36
36
|
isDisposed = false;
|
|
37
37
|
exchangeVersion = 0;
|
|
38
38
|
constructor(options) {
|
|
39
|
-
this.
|
|
39
|
+
this.appId = options.appId;
|
|
40
40
|
this.siteId = options.siteId;
|
|
41
41
|
this.getIdentityToken = options.getIdentityToken;
|
|
42
42
|
this.client = options.client;
|
|
@@ -209,7 +209,7 @@ export class KomoEmbedSessionManager {
|
|
|
209
209
|
return this.getCurrentSession();
|
|
210
210
|
}
|
|
211
211
|
const validationErrors = validateIdentityResult({
|
|
212
|
-
|
|
212
|
+
appId: this.appId,
|
|
213
213
|
siteId: this.siteId,
|
|
214
214
|
identity
|
|
215
215
|
});
|
|
@@ -219,7 +219,7 @@ export class KomoEmbedSessionManager {
|
|
|
219
219
|
});
|
|
220
220
|
}
|
|
221
221
|
const response = await this.client.exchange({
|
|
222
|
-
|
|
222
|
+
appId: this.appId,
|
|
223
223
|
...(this.siteId ? { siteId: this.siteId } : {}),
|
|
224
224
|
identity
|
|
225
225
|
});
|
package/dist/identity.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { IdentityResult } from './types.js';
|
|
2
2
|
export interface IdentityValidationError {
|
|
3
|
-
code: '
|
|
3
|
+
code: 'missing_app_id' | 'missing_site_id' | 'missing_required_field';
|
|
4
4
|
message: string;
|
|
5
5
|
}
|
|
6
6
|
interface ValidateIdentityResultInput {
|
|
7
|
-
|
|
7
|
+
appId?: string;
|
|
8
8
|
siteId?: string;
|
|
9
9
|
identity: IdentityResult;
|
|
10
10
|
}
|
|
11
|
-
export declare const validateIdentityResult: ({
|
|
11
|
+
export declare const validateIdentityResult: ({ appId, siteId, identity }: ValidateIdentityResultInput) => IdentityValidationError[];
|
|
12
12
|
export {};
|
|
13
13
|
//# sourceMappingURL=identity.d.ts.map
|
package/dist/identity.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,wBAAwB,CAAC;IACtE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,2BAA2B;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAaD,eAAO,MAAM,sBAAsB,GAAI,6BAIpC,2BAA2B,KAAG,uBAAuB,EA0CvD,CAAC"}
|
package/dist/identity.js
CHANGED
|
@@ -4,12 +4,12 @@ const missingField = (field) => ({
|
|
|
4
4
|
code: 'missing_required_field',
|
|
5
5
|
message: `Missing required identity field: ${field}`
|
|
6
6
|
});
|
|
7
|
-
export const validateIdentityResult = ({
|
|
7
|
+
export const validateIdentityResult = ({ appId, siteId, identity }) => {
|
|
8
8
|
const errors = [];
|
|
9
|
-
if (!hasText(
|
|
9
|
+
if (!hasText(appId)) {
|
|
10
10
|
errors.push({
|
|
11
|
-
code: '
|
|
12
|
-
message: '
|
|
11
|
+
code: 'missing_app_id',
|
|
12
|
+
message: 'appId is required'
|
|
13
13
|
});
|
|
14
14
|
}
|
|
15
15
|
switch (identity.type) {
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { EmbedAuthType, EmbedCustomProvider, EmbedSessionClient, EmbedSessionExchangeRequest, EmbedSessionExchangeResponse, EmbedSessionRefreshRequest, EmbedSessionRefreshResponse, EmbedSessionState, EmbedTrustLevel, ExchangeFailureReason, EmbedCoreLogger, IdentityResult, PlatformLifecycle, PortableAbortSignal } from './types.js';
|
|
1
|
+
export type { EmbedAuthType, EmbedCustomProvider, EmbedSessionClient, EmbedSessionExchangeRequest, EmbedSessionExchangeResponse, EmbedSessionRefreshRequest, EmbedSessionRefreshResponse, EmbedSessionState, EmbedTrustLevel, ExchangeFailureReason, EmbedCoreLogger, IdentityResult, KomoRegion, PlatformLifecycle, PortableAbortSignal } from './types.js';
|
|
2
2
|
export type { IdentityValidationError } from './identity.js';
|
|
3
3
|
export { validateIdentityResult } from './identity.js';
|
|
4
4
|
export { EmbedSessionExchangeError } from './errors.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,YAAY,EACV,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,2BAA2B,EAC3B,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,EAC3B,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EACV,8BAA8B,EAC9B,aAAa,EACb,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACb,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,YAAY,EACV,cAAc,EACd,8BAA8B,EAC/B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,2BAA2B,EAC3B,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,EAC3B,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EACV,8BAA8B,EAC9B,aAAa,EACb,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACb,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,YAAY,EACV,cAAc,EACd,8BAA8B,EAC/B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export type EmbedAuthType = 'jwt' | 'email' | 'oauth2' | 'custom' | 'anonymous';
|
|
2
2
|
export type EmbedCustomProvider = string;
|
|
3
|
+
export type KomoRegion = 'au1' | 'us1' | (string & Record<never, never>);
|
|
3
4
|
export type EmbedTrustLevel = 'Anonymous' | 'Identified' | 'Verified';
|
|
4
5
|
export interface PortableAbortSignal {
|
|
5
6
|
readonly aborted: boolean;
|
|
@@ -31,7 +32,7 @@ export type IdentityResult = {
|
|
|
31
32
|
type: 'anonymous';
|
|
32
33
|
};
|
|
33
34
|
export interface EmbedSessionExchangeRequest {
|
|
34
|
-
|
|
35
|
+
appId: string;
|
|
35
36
|
siteId?: string;
|
|
36
37
|
identity: IdentityResult;
|
|
37
38
|
}
|
|
@@ -52,7 +53,7 @@ export interface EmbedSessionRefreshResponse {
|
|
|
52
53
|
trustLevel: EmbedTrustLevel;
|
|
53
54
|
mergedFromContactId?: string;
|
|
54
55
|
}
|
|
55
|
-
export type ExchangeFailureReason = '
|
|
56
|
+
export type ExchangeFailureReason = 'AppNotFound' | 'SiteNotFound' | 'TypeNotPermitted' | 'TokenInvalid' | 'AttendeeNotFound' | 'UpstreamUnavailable' | 'OAuth2NotSupported' | 'ContactResolutionFailed' | 'TokenExpired' | 'InternalError';
|
|
56
57
|
export interface EmbedSessionClient {
|
|
57
58
|
exchange(request: EmbedSessionExchangeRequest, signal?: PortableAbortSignal): Promise<EmbedSessionExchangeResponse>;
|
|
58
59
|
refresh(request: EmbedSessionRefreshRequest, signal?: PortableAbortSignal): Promise<EmbedSessionRefreshResponse>;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEhF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEzC,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,YAAY,GAAG,UAAU,CAAC;AAEtE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,CACf,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,IAAI,EACpB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAC3B,IAAI,CAAC;IACR,mBAAmB,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CACjE;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAClD;AAED,MAAM,MAAM,iBAAiB,GACzB,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,GACf,WAAW,GACX,QAAQ,GACR,YAAY,CAAC;AAEjB,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC,CAAC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,mBAAmB,CAAA;CAAE,GAAG,MAAM,CACzD,MAAM,EACN,OAAO,CACR,CAAC,GACF;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC;AAE1B,MAAM,WAAW,2BAA2B;IAC1C,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|