@blux.ai/web-sdk 0.0.4-rc0 → 0.0.5
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 +2 -2
- package/demo/src/App.tsx +4 -4
- package/dist/BluxClient.d.ts +2 -2
- package/dist/BluxClient.js +15 -11
- package/dist/BluxClient.js.map +1 -1
- package/dist/constants/URLS.d.ts +2 -0
- package/dist/constants/URLS.js +4 -2
- package/dist/constants/URLS.js.map +1 -1
- package/dist/utils/sentry.js +4 -3
- package/dist/utils/sentry.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -34,7 +34,7 @@ BluxClient.init({
|
|
|
34
34
|
- `'error'`
|
|
35
35
|
- `'fatal'`
|
|
36
36
|
|
|
37
|
-
###
|
|
37
|
+
### signIn
|
|
38
38
|
|
|
39
39
|
- 회원 유저에 대해서 부여하고 계시는 유저 ID를 넘겨주시면 됩니다.
|
|
40
40
|
- Blux 서비스에서 같은 `UserId`를 가지는 유저는 같은 유저로 식별됩니다.
|
|
@@ -42,7 +42,7 @@ BluxClient.init({
|
|
|
42
42
|
- 회원 유저가 앱을 실행하는 시점에도 `initialize` 메소드 호출 이후에 실행되어야 합니다.
|
|
43
43
|
|
|
44
44
|
```typescript
|
|
45
|
-
BluxClient.
|
|
45
|
+
BluxClient.signIn("USER ID");
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
### setUserProperties
|
package/demo/src/App.tsx
CHANGED
|
@@ -8,7 +8,7 @@ function App() {
|
|
|
8
8
|
"yvU_CEMtZxqWXKFpkv2FsN2ICoKb6G8BrmiD5urZzYg"
|
|
9
9
|
);
|
|
10
10
|
|
|
11
|
-
const [userId,
|
|
11
|
+
const [userId, signIn] = useState<string>(
|
|
12
12
|
`test_user_id_${Math.floor(Math.random() * 100)}`
|
|
13
13
|
);
|
|
14
14
|
|
|
@@ -50,7 +50,7 @@ function App() {
|
|
|
50
50
|
type="text"
|
|
51
51
|
placeholder="Enter User Id"
|
|
52
52
|
value={userId}
|
|
53
|
-
onChange={(e) =>
|
|
53
|
+
onChange={(e) => signIn(e.target.value)}
|
|
54
54
|
/>
|
|
55
55
|
<div className="mt-3">Phone Number</div>
|
|
56
56
|
<input
|
|
@@ -99,10 +99,10 @@ function App() {
|
|
|
99
99
|
</button>
|
|
100
100
|
<button
|
|
101
101
|
className="bg-blue-500 rounded-md p-4 disabled:bg-gray-300"
|
|
102
|
-
onClick={() => BluxClient.
|
|
102
|
+
onClick={() => BluxClient.signIn(userId)}
|
|
103
103
|
disabled={!isInitialized}
|
|
104
104
|
>
|
|
105
|
-
|
|
105
|
+
signIn
|
|
106
106
|
</button>
|
|
107
107
|
<button
|
|
108
108
|
className="bg-blue-500 rounded-md p-4 disabled:bg-gray-300"
|
package/dist/BluxClient.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ declare class BluxClient {
|
|
|
21
21
|
private readonly sdkInfo;
|
|
22
22
|
readonly bluxUser$: BehaviorSubject<BluxUser | undefined>;
|
|
23
23
|
readonly requestQueue$: BehaviorSubject<EventRequest[]>;
|
|
24
|
-
constructor(STAGE?: "local" | "dev" | "prod");
|
|
24
|
+
constructor(STAGE?: "local" | "dev" | "stg" | "prod");
|
|
25
25
|
private generateIdentifierHeader;
|
|
26
26
|
init({ bluxClientId: organizationId, bluxApiKey, }: {
|
|
27
27
|
bluxClientId: string;
|
|
@@ -29,7 +29,7 @@ declare class BluxClient {
|
|
|
29
29
|
}): Promise<void>;
|
|
30
30
|
setLogLevel(logLevel: LogLevel): void;
|
|
31
31
|
private getBluxUserWithTimeout;
|
|
32
|
-
|
|
32
|
+
signIn(userId: string): Promise<void>;
|
|
33
33
|
signOut(): Promise<void>;
|
|
34
34
|
setUserProperties(userProperties: {
|
|
35
35
|
phone_number?: string;
|
package/dist/BluxClient.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="a3d74585-c9aa-5c56-8a6b-1bf7035d4bc4")}catch(e){}}();
|
|
3
3
|
|
|
4
4
|
var __assign = (this && this.__assign) || function () {
|
|
5
5
|
__assign = Object.assign || function(t) {
|
|
@@ -69,6 +69,7 @@ var Logger_1 = require("./core/Logger");
|
|
|
69
69
|
var axios_1 = __importDefault(require("axios"));
|
|
70
70
|
var operators_1 = require("./utils/operators");
|
|
71
71
|
var URLS_1 = require("./constants/URLS");
|
|
72
|
+
var sentry_1 = require("./utils/sentry");
|
|
72
73
|
var BluxClient = /** @class */ (function () {
|
|
73
74
|
function BluxClient(STAGE) {
|
|
74
75
|
if (STAGE === void 0) { STAGE = "prod"; }
|
|
@@ -141,7 +142,10 @@ var BluxClient = /** @class */ (function () {
|
|
|
141
142
|
return __generator(this, function (_c) {
|
|
142
143
|
switch (_c.label) {
|
|
143
144
|
case 0:
|
|
144
|
-
|
|
145
|
+
sentry_1.Sentry.setTag("bluxClientId", organizationId);
|
|
146
|
+
_c.label = 1;
|
|
147
|
+
case 1:
|
|
148
|
+
_c.trys.push([1, 3, , 4]);
|
|
145
149
|
Logger_1.Logger.debug("Init with client id: " + organizationId);
|
|
146
150
|
deviceId = LocalStorage_1.LocalStorage.getDeviceId();
|
|
147
151
|
if (!deviceId) {
|
|
@@ -162,7 +166,7 @@ var BluxClient = /** @class */ (function () {
|
|
|
162
166
|
bluxApiKey: bluxApiKey
|
|
163
167
|
})
|
|
164
168
|
})];
|
|
165
|
-
case
|
|
169
|
+
case 2:
|
|
166
170
|
_b = (_c.sent()).data, blux_user_id = _b.blux_user_id, device_id = _b.device_id;
|
|
167
171
|
console.log({ device_id: device_id });
|
|
168
172
|
LocalStorage_1.LocalStorage.setDeviceId(device_id);
|
|
@@ -172,12 +176,12 @@ var BluxClient = /** @class */ (function () {
|
|
|
172
176
|
organizationId: organizationId,
|
|
173
177
|
deviceId: device_id
|
|
174
178
|
});
|
|
175
|
-
return [3 /*break*/,
|
|
176
|
-
case
|
|
179
|
+
return [3 /*break*/, 4];
|
|
180
|
+
case 3:
|
|
177
181
|
error_2 = _c.sent();
|
|
178
182
|
Logger_1.Logger.error(error_2, { tags: { from: "init" } });
|
|
179
|
-
return [3 /*break*/,
|
|
180
|
-
case
|
|
183
|
+
return [3 /*break*/, 4];
|
|
184
|
+
case 4: return [2 /*return*/];
|
|
181
185
|
}
|
|
182
186
|
});
|
|
183
187
|
});
|
|
@@ -204,7 +208,7 @@ var BluxClient = /** @class */ (function () {
|
|
|
204
208
|
});
|
|
205
209
|
});
|
|
206
210
|
};
|
|
207
|
-
BluxClient.prototype.
|
|
211
|
+
BluxClient.prototype.signIn = function (userId) {
|
|
208
212
|
return __awaiter(this, void 0, void 0, function () {
|
|
209
213
|
var bluxUser, bluxIdInResponse, error_3;
|
|
210
214
|
return __generator(this, function (_a) {
|
|
@@ -220,13 +224,13 @@ var BluxClient = /** @class */ (function () {
|
|
|
220
224
|
case 2:
|
|
221
225
|
bluxIdInResponse = (_a.sent()).data.blux_user_id;
|
|
222
226
|
if (bluxIdInResponse !== bluxUser.id) {
|
|
223
|
-
Logger_1.Logger.debug("Blux id is changed in
|
|
227
|
+
Logger_1.Logger.debug("Blux id is changed in signIn.");
|
|
224
228
|
this.bluxUser$.next(__assign(__assign({}, bluxUser), { id: bluxIdInResponse }));
|
|
225
229
|
}
|
|
226
230
|
return [3 /*break*/, 4];
|
|
227
231
|
case 3:
|
|
228
232
|
error_3 = _a.sent();
|
|
229
|
-
Logger_1.Logger.error(error_3, { tags: { from: "
|
|
233
|
+
Logger_1.Logger.error(error_3, { tags: { from: "signIn" } });
|
|
230
234
|
return [3 /*break*/, 4];
|
|
231
235
|
case 4: return [2 /*return*/];
|
|
232
236
|
}
|
|
@@ -327,4 +331,4 @@ var BluxClient = /** @class */ (function () {
|
|
|
327
331
|
}());
|
|
328
332
|
exports.bluxClient = new BluxClient("prod");
|
|
329
333
|
//# sourceMappingURL=BluxClient.js.map
|
|
330
|
-
//# debugId=
|
|
334
|
+
//# debugId=a3d74585-c9aa-5c56-8a6b-1bf7035d4bc4
|
package/dist/BluxClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BluxClient.js","sources":["BluxClient.ts"],"sourceRoot":"/","sourcesContent":["import \"./utils/sentry\";\nimport {\n BehaviorSubject,\n catchError,\n concatMap,\n filter,\n firstValueFrom,\n from,\n map,\n throwError,\n timeout,\n withLatestFrom,\n} from \"rxjs\";\nimport { LocalStorage } from \"./core/LocalStorage\";\nimport { Logger, LogLevel } from \"./core/Logger\";\nimport axios from \"axios\";\nimport { filterNullable } from \"./utils/operators\";\nimport { EventRequest } from \"./events/types\";\nimport {\n COLLECTOR_API_URL_BY_STAGE,\n IDENTIFIER_API_URL_BY_STAGE,\n} from \"./constants/URLS\";\nimport { Event } from \"./events/Event\";\n\nexport type SdkInfo = {\n type: string;\n version: string;\n};\n\ntype BluxUser = {\n id: string;\n bluxApiKey: string;\n organizationId: string;\n deviceId: string;\n userId?: string;\n};\n\nclass BluxClient {\n private readonly identifierApi = axios.create({\n baseURL: IDENTIFIER_API_URL_BY_STAGE[this.STAGE],\n });\n private readonly collectorApi = axios.create({\n baseURL: COLLECTOR_API_URL_BY_STAGE[this.STAGE],\n headers: {\n \"Content-Type\": \"application/json;charset=UTF-8\",\n Accept: \"application/json\",\n },\n });\n\n private readonly sdkInfo: SdkInfo = {\n type: \"browser\",\n version: \"0.0.3\",\n };\n\n public readonly bluxUser$ = new BehaviorSubject<BluxUser | undefined>(\n undefined\n );\n\n public readonly requestQueue$ = new BehaviorSubject<EventRequest[]>([]);\n\n constructor(private readonly STAGE: \"local\" | \"dev\" | \"prod\" = \"prod\") {\n this.requestQueue$\n .pipe(\n filter((queue) => queue.length > 0),\n concatMap((requests) => {\n return from(requests.map((request, idx) => ({ request, idx }))).pipe(\n withLatestFrom(this.bluxUser$.pipe(filterNullable())),\n concatMap(async ([{ request, idx }, bluxUser]) => {\n const body = JSON.stringify({\n ...request,\n user_id: bluxUser.userId,\n blux_id: bluxUser.id,\n device_id: bluxUser.deviceId,\n timetsamp: request.timestamp + 1e-6 * idx,\n });\n try {\n await this.collectorApi.post(\"/events\", body, {\n headers: {\n \"X-BLUX-SDK-INFO\": `${this.sdkInfo.type}-${this.sdkInfo.version}`,\n \"X-BLUX-CLIENT-ID\": bluxUser.organizationId,\n \"X-BLUX-API-KEY\": bluxUser.bluxApiKey,\n \"X-BLUX-TIMESTAMP\": Math.floor(\n Date.now() / 1000\n ).toString(),\n },\n }); // todo : retry & send with batch\n } catch (error) {\n Logger.error(error, { tags: { from: \"request-events-api\" } });\n }\n\n return requests.map((r) => r.id); // todo: return successed requests only\n })\n );\n }),\n map((requestIdsSucceeded) =>\n this.requestQueue$.value.filter(\n (request) => !requestIdsSucceeded.includes(request.id)\n )\n )\n )\n .subscribe(this.requestQueue$);\n }\n\n private generateIdentifierHeader({ bluxApiKey }: { bluxApiKey: string }) {\n return {\n Authorization: bluxApiKey,\n };\n }\n\n public async init({\n bluxClientId: organizationId,\n bluxApiKey,\n }: {\n bluxClientId: string;\n bluxApiKey: string;\n }) {\n try {\n Logger.debug(\"Init with client id: \" + organizationId);\n\n const deviceId = LocalStorage.getDeviceId();\n\n if (!deviceId) {\n Logger.debug(\"Saved Device ID is not exists, newly registered.\");\n }\n\n const {\n data: { blux_user_id, device_id },\n } = await this.identifierApi.post<{\n blux_user_id: string;\n device_id: string;\n }>(\n `/organizations/${organizationId}/blux-users/initialize`,\n {\n device_id: deviceId ?? undefined,\n country_code: navigator.language.split(\"-\")[1],\n device_model: navigator.userAgent,\n language_code: navigator.language.split(\"-\")[0],\n platform: \"browser\",\n os_version: navigator.userAgent,\n sdk_version: this.sdkInfo.version,\n sdk_type: this.sdkInfo.type,\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n },\n {\n headers: this.generateIdentifierHeader({\n bluxApiKey,\n }),\n }\n );\n\n console.log({ device_id });\n\n LocalStorage.setDeviceId(device_id);\n\n this.bluxUser$.next({\n id: blux_user_id,\n bluxApiKey,\n organizationId,\n deviceId: device_id,\n });\n } catch (error) {\n Logger.error(error, { tags: { from: \"init\" } });\n }\n }\n\n public setLogLevel(logLevel: LogLevel) {\n Logger.setLevel(logLevel);\n }\n\n private async getBluxUserWithTimeout() {\n const bluxUser = await firstValueFrom(\n this.bluxUser$.pipe(\n filterNullable(),\n timeout(5000),\n catchError((error) => {\n return throwError(() =>\n error.name === \"TimeoutError\"\n ? new Error(\n \"Client ID is not intialized. Please initialize BluxClient.\"\n )\n : error\n );\n })\n )\n );\n\n return bluxUser;\n }\n\n public async setUserId(userId: string) {\n try {\n const bluxUser = await this.getBluxUserWithTimeout();\n\n const {\n data: { blux_user_id: bluxIdInResponse },\n } = await this.identifierApi.put<{ blux_user_id: string }>(\n `/organizations/${bluxUser.organizationId}/blux-users/${bluxUser.id}/sign-in`,\n { user_id: userId },\n {\n headers: this.generateIdentifierHeader(bluxUser),\n }\n );\n\n if (bluxIdInResponse !== bluxUser.id) {\n Logger.debug(\"Blux id is changed in setUserId.\");\n this.bluxUser$.next({\n ...bluxUser,\n id: bluxIdInResponse,\n });\n }\n } catch (error) {\n Logger.error(error, { tags: { from: \"setUserId\" } });\n }\n }\n\n public async signOut() {\n try {\n const bluxUser = await this.getBluxUserWithTimeout();\n\n const {\n data: { blux_user_id: bluxIdInResponse },\n } = await this.identifierApi.put<{ blux_user_id: string }>(\n `/organizations/${bluxUser.organizationId}/blux-users/${bluxUser.id}/sign-out`,\n { device_id: bluxUser.deviceId },\n {\n headers: this.generateIdentifierHeader(bluxUser),\n }\n );\n\n Logger.debug(\"Blux id is changed in signOut.\");\n this.bluxUser$.next({\n ...bluxUser,\n id: bluxIdInResponse,\n });\n } catch (error) {\n Logger.error(error, { tags: { from: \"signOut\" } });\n }\n }\n\n public async setUserProperties(userProperties: {\n phone_number?: string;\n email_address?: string;\n }) {\n try {\n const bluxUser = await this.getBluxUserWithTimeout();\n\n await this.identifierApi.put<{ blux_user_id: string }>(\n `/organizations/${bluxUser.organizationId}/blux-users/${bluxUser.id}/update-user-properties`,\n { properties: userProperties },\n {\n headers: this.generateIdentifierHeader(bluxUser),\n }\n );\n } catch (error) {\n Logger.error(error, { tags: { from: \"setUserProperties\" } });\n }\n }\n\n public async setCustomUserProperties(\n customUserProperties: Record<string, string | boolean | number | null>\n ) {\n try {\n const bluxUser = await this.getBluxUserWithTimeout();\n\n await this.identifierApi.put<{ blux_user_id: string }>(\n `/organizations/${bluxUser.organizationId}/blux-users/${bluxUser.id}/update-custom-user-properties`,\n { properties: customUserProperties },\n {\n headers: this.generateIdentifierHeader(bluxUser),\n }\n );\n } catch (error) {\n Logger.error(error, { tags: { from: \"setCustomUserProperties\" } });\n }\n }\n\n public async sendEvent(event: Event | Event[]) {\n const requests = (Array.isArray(event) ? event : [event]).map(\n (event) => event.request\n );\n\n this.requestQueue$.next([\n ...this.requestQueue$.value,\n ...requests.filter(\n (request) =>\n !this.requestQueue$.value.map((r) => r.id).includes(request.id)\n ),\n ]);\n }\n}\n\nexport const bluxClient = new BluxClient(\"prod\");\n"],"names":[],"mappings":"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","debug_id":"bba7ea92-5680-5921-8c87-e591259918e7"}
|
|
1
|
+
{"version":3,"file":"BluxClient.js","sources":["BluxClient.ts"],"sourceRoot":"/","sourcesContent":["import \"./utils/sentry\";\nimport {\n BehaviorSubject,\n catchError,\n concatMap,\n filter,\n firstValueFrom,\n from,\n map,\n throwError,\n timeout,\n withLatestFrom,\n} from \"rxjs\";\nimport { LocalStorage } from \"./core/LocalStorage\";\nimport { Logger, LogLevel } from \"./core/Logger\";\nimport axios from \"axios\";\nimport { filterNullable } from \"./utils/operators\";\nimport { EventRequest } from \"./events/types\";\nimport {\n COLLECTOR_API_URL_BY_STAGE,\n IDENTIFIER_API_URL_BY_STAGE,\n} from \"./constants/URLS\";\nimport { Event } from \"./events/Event\";\nimport { Sentry } from \"./utils/sentry\";\n\nexport type SdkInfo = {\n type: string;\n version: string;\n};\n\ntype BluxUser = {\n id: string;\n bluxApiKey: string;\n organizationId: string;\n deviceId: string;\n userId?: string;\n};\n\nclass BluxClient {\n private readonly identifierApi = axios.create({\n baseURL: IDENTIFIER_API_URL_BY_STAGE[this.STAGE],\n });\n private readonly collectorApi = axios.create({\n baseURL: COLLECTOR_API_URL_BY_STAGE[this.STAGE],\n headers: {\n \"Content-Type\": \"application/json;charset=UTF-8\",\n Accept: \"application/json\",\n },\n });\n\n private readonly sdkInfo: SdkInfo = {\n type: \"browser\",\n version: \"0.0.3\",\n };\n\n public readonly bluxUser$ = new BehaviorSubject<BluxUser | undefined>(\n undefined\n );\n\n public readonly requestQueue$ = new BehaviorSubject<EventRequest[]>([]);\n\n constructor(\n private readonly STAGE: \"local\" | \"dev\" | \"stg\" | \"prod\" = \"prod\"\n ) {\n this.requestQueue$\n .pipe(\n filter((queue) => queue.length > 0),\n concatMap((requests) => {\n return from(requests.map((request, idx) => ({ request, idx }))).pipe(\n withLatestFrom(this.bluxUser$.pipe(filterNullable())),\n concatMap(async ([{ request, idx }, bluxUser]) => {\n const body = JSON.stringify({\n ...request,\n user_id: bluxUser.userId,\n blux_id: bluxUser.id,\n device_id: bluxUser.deviceId,\n timetsamp: request.timestamp + 1e-6 * idx,\n });\n try {\n await this.collectorApi.post(\"/events\", body, {\n headers: {\n \"X-BLUX-SDK-INFO\": `${this.sdkInfo.type}-${this.sdkInfo.version}`,\n \"X-BLUX-CLIENT-ID\": bluxUser.organizationId,\n \"X-BLUX-API-KEY\": bluxUser.bluxApiKey,\n \"X-BLUX-TIMESTAMP\": Math.floor(\n Date.now() / 1000\n ).toString(),\n },\n }); // todo : retry & send with batch\n } catch (error) {\n Logger.error(error, { tags: { from: \"request-events-api\" } });\n }\n\n return requests.map((r) => r.id); // todo: return successed requests only\n })\n );\n }),\n map((requestIdsSucceeded) =>\n this.requestQueue$.value.filter(\n (request) => !requestIdsSucceeded.includes(request.id)\n )\n )\n )\n .subscribe(this.requestQueue$);\n }\n\n private generateIdentifierHeader({ bluxApiKey }: { bluxApiKey: string }) {\n return {\n Authorization: bluxApiKey,\n };\n }\n\n public async init({\n bluxClientId: organizationId,\n bluxApiKey,\n }: {\n bluxClientId: string;\n bluxApiKey: string;\n }) {\n Sentry.setTag(\"bluxClientId\", organizationId);\n try {\n Logger.debug(\"Init with client id: \" + organizationId);\n\n const deviceId = LocalStorage.getDeviceId();\n\n if (!deviceId) {\n Logger.debug(\"Saved Device ID is not exists, newly registered.\");\n }\n\n const {\n data: { blux_user_id, device_id },\n } = await this.identifierApi.post<{\n blux_user_id: string;\n device_id: string;\n }>(\n `/organizations/${organizationId}/blux-users/initialize`,\n {\n device_id: deviceId ?? undefined,\n country_code: navigator.language.split(\"-\")[1],\n device_model: navigator.userAgent,\n language_code: navigator.language.split(\"-\")[0],\n platform: \"browser\",\n os_version: navigator.userAgent,\n sdk_version: this.sdkInfo.version,\n sdk_type: this.sdkInfo.type,\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n },\n {\n headers: this.generateIdentifierHeader({\n bluxApiKey,\n }),\n }\n );\n\n console.log({ device_id });\n\n LocalStorage.setDeviceId(device_id);\n\n this.bluxUser$.next({\n id: blux_user_id,\n bluxApiKey,\n organizationId,\n deviceId: device_id,\n });\n } catch (error) {\n Logger.error(error, { tags: { from: \"init\" } });\n }\n }\n\n public setLogLevel(logLevel: LogLevel) {\n Logger.setLevel(logLevel);\n }\n\n private async getBluxUserWithTimeout() {\n const bluxUser = await firstValueFrom(\n this.bluxUser$.pipe(\n filterNullable(),\n timeout(5000),\n catchError((error) => {\n return throwError(() =>\n error.name === \"TimeoutError\"\n ? new Error(\n \"Client ID is not intialized. Please initialize BluxClient.\"\n )\n : error\n );\n })\n )\n );\n\n return bluxUser;\n }\n\n public async signIn(userId: string) {\n try {\n const bluxUser = await this.getBluxUserWithTimeout();\n\n const {\n data: { blux_user_id: bluxIdInResponse },\n } = await this.identifierApi.put<{ blux_user_id: string }>(\n `/organizations/${bluxUser.organizationId}/blux-users/${bluxUser.id}/sign-in`,\n { user_id: userId },\n {\n headers: this.generateIdentifierHeader(bluxUser),\n }\n );\n\n if (bluxIdInResponse !== bluxUser.id) {\n Logger.debug(\"Blux id is changed in signIn.\");\n this.bluxUser$.next({\n ...bluxUser,\n id: bluxIdInResponse,\n });\n }\n } catch (error) {\n Logger.error(error, { tags: { from: \"signIn\" } });\n }\n }\n\n public async signOut() {\n try {\n const bluxUser = await this.getBluxUserWithTimeout();\n\n const {\n data: { blux_user_id: bluxIdInResponse },\n } = await this.identifierApi.put<{ blux_user_id: string }>(\n `/organizations/${bluxUser.organizationId}/blux-users/${bluxUser.id}/sign-out`,\n { device_id: bluxUser.deviceId },\n {\n headers: this.generateIdentifierHeader(bluxUser),\n }\n );\n\n Logger.debug(\"Blux id is changed in signOut.\");\n this.bluxUser$.next({\n ...bluxUser,\n id: bluxIdInResponse,\n });\n } catch (error) {\n Logger.error(error, { tags: { from: \"signOut\" } });\n }\n }\n\n public async setUserProperties(userProperties: {\n phone_number?: string;\n email_address?: string;\n }) {\n try {\n const bluxUser = await this.getBluxUserWithTimeout();\n\n await this.identifierApi.put<{ blux_user_id: string }>(\n `/organizations/${bluxUser.organizationId}/blux-users/${bluxUser.id}/update-user-properties`,\n { properties: userProperties },\n {\n headers: this.generateIdentifierHeader(bluxUser),\n }\n );\n } catch (error) {\n Logger.error(error, { tags: { from: \"setUserProperties\" } });\n }\n }\n\n public async setCustomUserProperties(\n customUserProperties: Record<string, string | boolean | number | null>\n ) {\n try {\n const bluxUser = await this.getBluxUserWithTimeout();\n\n await this.identifierApi.put<{ blux_user_id: string }>(\n `/organizations/${bluxUser.organizationId}/blux-users/${bluxUser.id}/update-custom-user-properties`,\n { properties: customUserProperties },\n {\n headers: this.generateIdentifierHeader(bluxUser),\n }\n );\n } catch (error) {\n Logger.error(error, { tags: { from: \"setCustomUserProperties\" } });\n }\n }\n\n public async sendEvent(event: Event | Event[]) {\n const requests = (Array.isArray(event) ? event : [event]).map(\n (event) => event.request\n );\n\n this.requestQueue$.next([\n ...this.requestQueue$.value,\n ...requests.filter(\n (request) =>\n !this.requestQueue$.value.map((r) => r.id).includes(request.id)\n ),\n ]);\n }\n}\n\nexport const bluxClient = new BluxClient(\"prod\");\n"],"names":[],"mappings":"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","debug_id":"a3d74585-c9aa-5c56-8a6b-1bf7035d4bc4"}
|
package/dist/constants/URLS.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
export declare const IDENTIFIER_API_URL_BY_STAGE: {
|
|
2
2
|
readonly local: "http://localhost:9000/local";
|
|
3
3
|
readonly dev: "https://api.blux.ai/dev";
|
|
4
|
+
readonly stg: "https://api.blux.ai/stg";
|
|
4
5
|
readonly prod: "https://api.blux.ai/prod";
|
|
5
6
|
};
|
|
6
7
|
export declare const COLLECTOR_API_URL_BY_STAGE: {
|
|
7
8
|
readonly local: "https://collector-api-web.blux.ai";
|
|
8
9
|
readonly dev: "https://collector-api-web.blux.ai";
|
|
10
|
+
readonly stg: "https://collector-api-web.blux.ai";
|
|
9
11
|
readonly prod: "https://collector-api-web.blux.ai";
|
|
10
12
|
};
|
package/dist/constants/URLS.js
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="1c75b390-3f74-5ded-a474-48fab05f8d88")}catch(e){}}();
|
|
3
3
|
|
|
4
4
|
exports.__esModule = true;
|
|
5
5
|
exports.COLLECTOR_API_URL_BY_STAGE = exports.IDENTIFIER_API_URL_BY_STAGE = void 0;
|
|
6
6
|
exports.IDENTIFIER_API_URL_BY_STAGE = {
|
|
7
7
|
local: "http://localhost:9000/local",
|
|
8
8
|
dev: "https://api.blux.ai/dev",
|
|
9
|
+
stg: "https://api.blux.ai/stg",
|
|
9
10
|
prod: "https://api.blux.ai/prod"
|
|
10
11
|
};
|
|
11
12
|
exports.COLLECTOR_API_URL_BY_STAGE = {
|
|
12
13
|
local: "https://collector-api-web.blux.ai",
|
|
13
14
|
dev: "https://collector-api-web.blux.ai",
|
|
15
|
+
stg: "https://collector-api-web.blux.ai",
|
|
14
16
|
prod: "https://collector-api-web.blux.ai"
|
|
15
17
|
};
|
|
16
18
|
//# sourceMappingURL=URLS.js.map
|
|
17
|
-
//# debugId=
|
|
19
|
+
//# debugId=1c75b390-3f74-5ded-a474-48fab05f8d88
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"URLS.js","sources":["constants/URLS.ts"],"sourceRoot":"/","sourcesContent":["export const IDENTIFIER_API_URL_BY_STAGE = {\n local: \"http://localhost:9000/local\",\n dev: \"https://api.blux.ai/dev\",\n prod: \"https://api.blux.ai/prod\",\n} as const;\n\nexport const COLLECTOR_API_URL_BY_STAGE = {\n local: \"https://collector-api-web.blux.ai\", // todo\n dev: \"https://collector-api-web.blux.ai\", // todo\n prod: \"https://collector-api-web.blux.ai\", // todo\n} as const;\n"],"names":[],"mappings":";;;;;AAAa,QAAA,2BAA2B,GAAG;IACzC,KAAK,EAAE,6BAA6B;IACpC,GAAG,EAAE,yBAAyB;IAC9B,IAAI,EAAE,0BAA0B;CACxB,CAAC;AAEE,QAAA,0BAA0B,GAAG;IACxC,KAAK,EAAE,mCAAmC;IAC1C,GAAG,EAAE,mCAAmC;IACxC,IAAI,EAAE,mCAAmC;CACjC,CAAC","debug_id":"
|
|
1
|
+
{"version":3,"file":"URLS.js","sources":["constants/URLS.ts"],"sourceRoot":"/","sourcesContent":["export const IDENTIFIER_API_URL_BY_STAGE = {\n local: \"http://localhost:9000/local\",\n dev: \"https://api.blux.ai/dev\",\n stg: \"https://api.blux.ai/stg\",\n prod: \"https://api.blux.ai/prod\",\n} as const;\n\nexport const COLLECTOR_API_URL_BY_STAGE = {\n local: \"https://collector-api-web.blux.ai\", // todo\n dev: \"https://collector-api-web.blux.ai\", // todo\n stg: \"https://collector-api-web.blux.ai\", // todo\n prod: \"https://collector-api-web.blux.ai\", // todo\n} as const;\n"],"names":[],"mappings":";;;;;AAAa,QAAA,2BAA2B,GAAG;IACzC,KAAK,EAAE,6BAA6B;IACpC,GAAG,EAAE,yBAAyB;IAC9B,GAAG,EAAE,yBAAyB;IAC9B,IAAI,EAAE,0BAA0B;CACxB,CAAC;AAEE,QAAA,0BAA0B,GAAG;IACxC,KAAK,EAAE,mCAAmC;IAC1C,GAAG,EAAE,mCAAmC;IACxC,GAAG,EAAE,mCAAmC;IACxC,IAAI,EAAE,mCAAmC;CACjC,CAAC","debug_id":"1c75b390-3f74-5ded-a474-48fab05f8d88"}
|
package/dist/utils/sentry.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="799f2a8f-465a-58f3-b22a-c0013c4972e0")}catch(e){}}();
|
|
3
3
|
|
|
4
4
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
5
5
|
if (k2 === undefined) k2 = k;
|
|
@@ -43,7 +43,8 @@ Sentry.init({
|
|
|
43
43
|
// Set 'tracePropagationTargets' to control for which URLs distributed tracing should be enabled
|
|
44
44
|
tracePropagationTargets: __spreadArray(__spreadArray([
|
|
45
45
|
"localhost"
|
|
46
|
-
], Object.values(URLS_1.IDENTIFIER_API_URL_BY_STAGE), true), Object.values(URLS_1.COLLECTOR_API_URL_BY_STAGE), true)
|
|
46
|
+
], Object.values(URLS_1.IDENTIFIER_API_URL_BY_STAGE), true), Object.values(URLS_1.COLLECTOR_API_URL_BY_STAGE), true),
|
|
47
|
+
autoSessionTracking: false
|
|
47
48
|
});
|
|
48
49
|
//# sourceMappingURL=sentry.js.map
|
|
49
|
-
//# debugId=
|
|
50
|
+
//# debugId=799f2a8f-465a-58f3-b22a-c0013c4972e0
|
package/dist/utils/sentry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sentry.js","sources":["utils/sentry.ts"],"sourceRoot":"/","sourcesContent":["import * as Sentry from \"@sentry/browser\";\nimport {\n COLLECTOR_API_URL_BY_STAGE,\n IDENTIFIER_API_URL_BY_STAGE,\n} from \"../constants/URLS\";\n\nSentry.init({\n dsn: \"https://0dc14410c660573f842686340cd7d712@o4506467425648640.ingest.us.sentry.io/4507571328253952\",\n // Set 'tracePropagationTargets' to control for which URLs distributed tracing should be enabled\n tracePropagationTargets: [\n \"localhost\",\n ...Object.values(IDENTIFIER_API_URL_BY_STAGE),\n ...Object.values(COLLECTOR_API_URL_BY_STAGE),\n ],\n // Session Replay\n});\n\nexport { Sentry };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA0C;
|
|
1
|
+
{"version":3,"file":"sentry.js","sources":["utils/sentry.ts"],"sourceRoot":"/","sourcesContent":["import * as Sentry from \"@sentry/browser\";\nimport {\n COLLECTOR_API_URL_BY_STAGE,\n IDENTIFIER_API_URL_BY_STAGE,\n} from \"../constants/URLS\";\n\nSentry.init({\n dsn: \"https://0dc14410c660573f842686340cd7d712@o4506467425648640.ingest.us.sentry.io/4507571328253952\",\n // Set 'tracePropagationTargets' to control for which URLs distributed tracing should be enabled\n tracePropagationTargets: [\n \"localhost\",\n ...Object.values(IDENTIFIER_API_URL_BY_STAGE),\n ...Object.values(COLLECTOR_API_URL_BY_STAGE),\n ],\n autoSessionTracking: false,\n // Session Replay\n});\n\nexport { Sentry };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA0C;AAkBjC,wBAAM;AAjBf,0CAG2B;AAE3B,MAAM,CAAC,IAAI,CAAC;IACV,GAAG,EAAE,iGAAiG;IACtG,gGAAgG;IAChG,uBAAuB;QACrB,WAAW;OACR,MAAM,CAAC,MAAM,CAAC,kCAA2B,CAAC,SAC1C,MAAM,CAAC,MAAM,CAAC,iCAA0B,CAAC,OAC7C;IACD,mBAAmB,EAAE,KAAK;CAE3B,CAAC,CAAC","debug_id":"799f2a8f-465a-58f3-b22a-c0013c4972e0"}
|