@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 CHANGED
@@ -34,7 +34,7 @@ BluxClient.init({
34
34
  - `'error'`
35
35
  - `'fatal'`
36
36
 
37
- ### setUserId
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.setUserId("USER ID");
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, setUserId] = useState<string>(
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) => setUserId(e.target.value)}
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.setUserId(userId)}
102
+ onClick={() => BluxClient.signIn(userId)}
103
103
  disabled={!isInitialized}
104
104
  >
105
- setUserId
105
+ signIn
106
106
  </button>
107
107
  <button
108
108
  className="bg-blue-500 rounded-md p-4 disabled:bg-gray-300"
@@ -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
- setUserId(userId: string): Promise<void>;
32
+ signIn(userId: string): Promise<void>;
33
33
  signOut(): Promise<void>;
34
34
  setUserProperties(userProperties: {
35
35
  phone_number?: string;
@@ -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]="bba7ea92-5680-5921-8c87-e591259918e7")}catch(e){}}();
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
- _c.trys.push([0, 2, , 3]);
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 1:
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*/, 3];
176
- case 2:
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*/, 3];
180
- case 3: return [2 /*return*/];
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.setUserId = function (userId) {
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 setUserId.");
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: "setUserId" } });
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=bba7ea92-5680-5921-8c87-e591259918e7
334
+ //# debugId=a3d74585-c9aa-5c56-8a6b-1bf7035d4bc4
@@ -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"}
@@ -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
  };
@@ -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]="aa0ab5c9-0125-5caf-ad60-d94ff3e57c21")}catch(e){}}();
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=aa0ab5c9-0125-5caf-ad60-d94ff3e57c21
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":"aa0ab5c9-0125-5caf-ad60-d94ff3e57c21"}
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"}
@@ -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]="966dbf4c-6970-5594-bbc3-14e5326cefda")}catch(e){}}();
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=966dbf4c-6970-5594-bbc3-14e5326cefda
50
+ //# debugId=799f2a8f-465a-58f3-b22a-c0013c4972e0
@@ -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;AAiBjC,wBAAM;AAhBf,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;CAEF,CAAC,CAAC","debug_id":"966dbf4c-6970-5594-bbc3-14e5326cefda"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blux.ai/web-sdk",
3
- "version": "0.0.4-rc0",
3
+ "version": "0.0.5",
4
4
  "description": "The official Blux JavaScript browser client library",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",