oasis-chat 0.1.1 → 0.1.3

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.
@@ -13,27 +13,27 @@ const O = (r) => {
13
13
  } catch (t) {
14
14
  return console.error("Base64 디코딩 실패:", t), null;
15
15
  }
16
- }, X = "auth-storage";
16
+ }, d = "auth-storage";
17
17
  function h() {
18
18
  try {
19
- const r = localStorage.getItem(X);
19
+ const r = localStorage.getItem(d);
20
20
  return r ? JSON.parse(r) : null;
21
21
  } catch (r) {
22
- return console.error(`localStorage getItem error for ${X}:`, r), null;
22
+ return console.error(`localStorage getItem error for ${d}:`, r), null;
23
23
  }
24
24
  }
25
25
  function E(r) {
26
26
  try {
27
- localStorage.setItem(X, JSON.stringify(r));
27
+ localStorage.setItem(d, JSON.stringify(r));
28
28
  } catch (t) {
29
- console.error(`localStorage setItem error for ${X}:`, t);
29
+ console.error(`localStorage setItem error for ${d}:`, t);
30
30
  }
31
31
  }
32
32
  function V() {
33
33
  try {
34
- localStorage.removeItem(X);
34
+ localStorage.removeItem(d);
35
35
  } catch (r) {
36
- console.error(`localStorage removeItem error for ${X}:`, r);
36
+ console.error(`localStorage removeItem error for ${d}:`, r);
37
37
  }
38
38
  }
39
39
  function q(r) {
@@ -91,7 +91,7 @@ function Z(r = {}) {
91
91
  e && (e.isAuthenticated !== void 0 && (n.isAuthenticated = e.isAuthenticated), e.isTempPwLogin !== void 0 && (n.isTempPwLogin = e.isTempPwLogin), e.accountId !== void 0 && (n.accountId = e.accountId), e.currentWorkspace !== void 0 && (n.currentWorkspace = e.currentWorkspace), n.isHydrated = !0, u({ isHydrated: !0 }));
92
92
  }
93
93
  z();
94
- function j(e) {
94
+ function i(e) {
95
95
  t = e;
96
96
  }
97
97
  function H(e) {
@@ -196,7 +196,7 @@ function Z(r = {}) {
196
196
  if (f)
197
197
  c = await f.refresh();
198
198
  else if (t) {
199
- const v = await t.post("/api/auth/user/refresh");
199
+ const v = await t.post("/oasis/auth/user/refresh");
200
200
  c = ((e = v.data) == null ? void 0 : e.data) || v.data;
201
201
  }
202
202
  return c != null && c.exp ? (u({ exp: c.exp }), !0) : !1;
@@ -242,7 +242,7 @@ function Z(r = {}) {
242
242
  }
243
243
  return {
244
244
  getState: w,
245
- setHttpClient: j,
245
+ setHttpClient: i,
246
246
  setPortalClient: H,
247
247
  clearAuth: a
248
248
  };
@@ -253,13 +253,13 @@ const k = (r) => {
253
253
  const f = Math.floor(Date.now() / 1e3), n = t - f;
254
254
  return n <= 600 && n > 0;
255
255
  };
256
- function R(r, t = {}, f = 6e5) {
256
+ function C(r, t = {}, f = 6e5) {
257
257
  return Promise.race([
258
258
  fetch(r, t),
259
259
  new Promise((n, u) => setTimeout(() => u(new Error("Request timeout")), f))
260
260
  ]);
261
261
  }
262
- function C(r) {
262
+ function R(r) {
263
263
  let t = "", f = !1;
264
264
  async function n() {
265
265
  if (!f) {
@@ -285,8 +285,8 @@ function C(r) {
285
285
  await n();
286
286
  const c = t ? `${t}${a.startsWith("/") ? "" : "/"}${a}` : a.startsWith("/") ? a : `/${a}`, v = e.body instanceof FormData;
287
287
  if (!a.includes("/auth/user/refresh") && k(r)) {
288
- const { refreshToken: d } = r.getState();
289
- if (!await d()) {
288
+ const { refreshToken: X } = r.getState();
289
+ if (!await X()) {
290
290
  const { logout: s } = r.getState();
291
291
  throw s(), new Error("토큰 갱신 실패");
292
292
  }
@@ -297,9 +297,9 @@ function C(r) {
297
297
  ...e.headers || {}
298
298
  };
299
299
  P != null && P.workspaceId && (x["current-workspace-id"] = P.workspaceId.toString()), P != null && P.workspaceUuid && (x["current-workspace-uuid"] = P.workspaceUuid);
300
- const D = (e.method || "GET").toUpperCase(), W = D === "GET" || D === "POST" || D === "PUT" ? 6e5 : void 0;
300
+ const D = (e.method || "GET").toUpperCase(), G = D === "GET" || D === "POST" || D === "PUT" ? 6e5 : void 0;
301
301
  try {
302
- const s = await (W ? (o, i) => R(o, i, W) : fetch)(c, {
302
+ const s = await (G ? (o, j) => C(o, j, G) : fetch)(c, {
303
303
  ...e,
304
304
  method: D,
305
305
  headers: x,
@@ -309,22 +309,22 @@ function C(r) {
309
309
  });
310
310
  if (!s.ok) {
311
311
  if (e.errorHandle !== void 0 && e.errorHandle === !1) {
312
- const i = new Error(`HTTP error! status: ${s.status}`);
313
- throw i.response = {
312
+ const j = new Error(`HTTP error! status: ${s.status}`);
313
+ throw j.response = {
314
314
  status: s.status,
315
315
  data: await s.json().catch(() => null)
316
- }, i;
316
+ }, j;
317
317
  }
318
318
  if (s.status === 401 || s.status === 403) {
319
- const { logout: i } = r.getState();
320
- i();
319
+ const { logout: j } = r.getState();
320
+ j();
321
321
  }
322
322
  if (s.status === 400 || s.status === 402 || s.status === 412 || s.status === 500 || s.status === 503) {
323
- const i = new Error(`HTTP error! status: ${s.status}`);
324
- throw i.response = {
323
+ const j = new Error(`HTTP error! status: ${s.status}`);
324
+ throw j.response = {
325
325
  status: s.status,
326
326
  data: await s.json().catch(() => null)
327
- }, i;
327
+ }, j;
328
328
  }
329
329
  const o = new Error(`HTTP error! status: ${s.status}`);
330
330
  throw o.response = {
@@ -333,8 +333,8 @@ function C(r) {
333
333
  }, o;
334
334
  }
335
335
  return s;
336
- } catch (d) {
337
- throw (d.message === "Request timeout" || d.code === "ECONNABORTED") && e.withCredentials, d;
336
+ } catch (X) {
337
+ throw (X.message === "Request timeout" || X.code === "ECONNABORTED") && e.withCredentials, X;
338
338
  }
339
339
  }
340
340
  async function z(a, e = {}) {
@@ -348,7 +348,7 @@ function C(r) {
348
348
  headers: c.headers
349
349
  };
350
350
  }
351
- async function j(a, e, c = {}) {
351
+ async function i(a, e, c = {}) {
352
352
  const v = await u(a, {
353
353
  ...c,
354
354
  method: "POST",
@@ -391,7 +391,7 @@ function C(r) {
391
391
  }
392
392
  return {
393
393
  get: z,
394
- post: j,
394
+ post: i,
395
395
  put: H,
396
396
  delete: w,
397
397
  defaults: {
@@ -414,28 +414,28 @@ class J {
414
414
  * @returns {Promise<Object>} LoginResponseDto
415
415
  */
416
416
  async login(t) {
417
- return (await this.httpClient.post("/api/auth/user/login", t)).data.data;
417
+ return (await this.httpClient.post("/oasis/auth/user/login", t)).data.data;
418
418
  }
419
419
  /**
420
420
  * 내 정보 조회
421
421
  * @returns {Promise<Object>} MyResponseDto
422
422
  */
423
423
  async my() {
424
- return (await this.httpClient.get("/api/auth/user/info")).data.data;
424
+ return (await this.httpClient.get("/oasis/auth/user/info")).data.data;
425
425
  }
426
426
  /**
427
427
  * 로그아웃
428
428
  * @returns {Promise<void>}
429
429
  */
430
430
  async logout() {
431
- await this.httpClient.post("/api/auth/user/logout");
431
+ await this.httpClient.post("/oasis/auth/user/logout");
432
432
  }
433
433
  /**
434
434
  * 토큰 갱신
435
435
  * @returns {Promise<Object>} LoginResponseDto
436
436
  */
437
437
  async refresh() {
438
- return (await this.httpClient.post("/api/auth/user/refresh")).data.data;
438
+ return (await this.httpClient.post("/oasis/auth/user/refresh")).data.data;
439
439
  }
440
440
  /** Assistant */
441
441
  /**
@@ -443,7 +443,7 @@ class J {
443
443
  * @returns {Promise<Object>} AssistantUserResponseDto
444
444
  */
445
445
  async assistantUser() {
446
- return (await this.httpClient.get("/api/portal/assistant/user")).data.data;
446
+ return (await this.httpClient.get("/oasis/portal/assistant/user")).data.data;
447
447
  }
448
448
  /**
449
449
  * 특정 비서 상세 조회
@@ -451,7 +451,7 @@ class J {
451
451
  * @returns {Promise<Object>} AssistantInfoResponseDto
452
452
  */
453
453
  async assistantInfo(t) {
454
- return (await this.httpClient.get("/api/portal/assistant?uuid=" + t)).data.data;
454
+ return (await this.httpClient.get("/oasis/portal/assistant?uuid=" + t)).data.data;
455
455
  }
456
456
  /**
457
457
  * 채팅용 비서 정보 조회
@@ -459,7 +459,9 @@ class J {
459
459
  * @returns {Promise<Object>} AssistantChatInfoResponseDto
460
460
  */
461
461
  async assistantChatInfo(t) {
462
- return (await this.httpClient.get("/api/portal/assistant/" + t + "/chat-info")).data.data;
462
+ return (await this.httpClient.get(
463
+ "/oasis/portal/assistant/" + t + "/chat-info"
464
+ )).data.data;
463
465
  }
464
466
  /**
465
467
  * 비서 생성
@@ -467,7 +469,7 @@ class J {
467
469
  * @returns {Promise<Object>} AssistantInfoResponseDto
468
470
  */
469
471
  async createAssistant(t) {
470
- return (await this.httpClient.post("/api/portal/assistant", t)).data.data;
472
+ return (await this.httpClient.post("/oasis/portal/assistant", t)).data.data;
471
473
  }
472
474
  /**
473
475
  * 비서 수정
@@ -476,7 +478,7 @@ class J {
476
478
  * @returns {Promise<Object>} AssistantInfoResponseDto
477
479
  */
478
480
  async updateAssistant(t, f) {
479
- return (await this.httpClient.post("/api/portal/assistant/" + t, f)).data.data;
481
+ return (await this.httpClient.post("/oasis/portal/assistant/" + t, f)).data.data;
480
482
  }
481
483
  /**
482
484
  * 비서 삭제
@@ -484,7 +486,7 @@ class J {
484
486
  * @returns {Promise<boolean>}
485
487
  */
486
488
  async deleteAssistant(t) {
487
- return (await this.httpClient.delete("/api/portal/assistant/" + t)).data.data;
489
+ return (await this.httpClient.delete("/oasis/portal/assistant/" + t)).data.data;
488
490
  }
489
491
  /**
490
492
  * 비서 사용자 목록 조회
@@ -492,7 +494,7 @@ class J {
492
494
  * @returns {Promise<Object>} AssistantVisibilityResponseDto
493
495
  */
494
496
  async getAssistantVisibility(t) {
495
- return (await this.httpClient.get("/api/portal/assistant/" + t + "/users")).data.data;
497
+ return (await this.httpClient.get("/oasis/portal/assistant/" + t + "/users")).data.data;
496
498
  }
497
499
  /**
498
500
  * 비서 사용자 등록
@@ -502,7 +504,7 @@ class J {
502
504
  */
503
505
  async saveAssistantVisibility(t, f) {
504
506
  return (await this.httpClient.post(
505
- "/api/portal/assistant/" + t + "/users",
507
+ "/oasis/portal/assistant/" + t + "/users",
506
508
  f
507
509
  )).data.data;
508
510
  }
@@ -511,14 +513,14 @@ class J {
511
513
  * @returns {Promise<Array>} ModelInfoResponseDto[]
512
514
  */
513
515
  async modelInfos() {
514
- return (await this.httpClient.get("/api/portal/assistant/models")).data.data;
516
+ return (await this.httpClient.get("/oasis/portal/assistant/models")).data.data;
515
517
  }
516
518
  /**
517
519
  * 비서 mcp 서버 목록 조회
518
520
  * @returns {Promise<Array>} McpServerResponseDto[]
519
521
  */
520
522
  async mcpServers() {
521
- return (await this.httpClient.get("/api/portal/assistant/mcp-servers")).data.data;
523
+ return (await this.httpClient.get("/oasis/portal/assistant/mcp-servers")).data.data;
522
524
  }
523
525
  /**
524
526
  * 워크스페이스 내 사용자 실시간 검색
@@ -526,45 +528,16 @@ class J {
526
528
  * @returns {Promise<Array>} SearchUserResponseDto[]
527
529
  */
528
530
  async searchUsers(t) {
529
- return (await this.httpClient.get("/api/portal/user/search?keyword=" + t)).data.data;
531
+ return (await this.httpClient.get("/oasis/portal/user/search?keyword=" + t)).data.data;
530
532
  }
531
533
  }
532
534
  function I(r) {
533
535
  return new J(r);
534
536
  }
535
- const U = "https://oasis-dev.haiqv.ai";
536
- function K() {
537
- return `
538
- // Oasis Chat Service Worker - 프록시 처리
539
- const TARGET_API = '${U}';
540
-
541
- self.addEventListener('install', () => {
542
- self.skipWaiting();
543
- });
544
-
545
- self.addEventListener('activate', (event) => {
546
- event.waitUntil(self.clients.claim());
547
- });
548
-
549
- self.addEventListener('fetch', (event) => {
550
- const url = new URL(event.request.url);
551
-
552
- // /api 경로만 프록시 처리
553
- if (url.pathname.startsWith('/api')) {
554
- event.respondWith(
555
- fetch(\`\${TARGET_API}\${url.pathname}\${url.search}\`, {
556
- method: event.request.method,
557
- headers: event.request.headers,
558
- body: event.request.body,
559
- credentials: 'include',
560
- mode: 'cors',
561
- })
562
- );
563
- }
564
- });
565
- `;
537
+ function U(r) {
538
+ return "/sw.js";
566
539
  }
567
- async function Q(r, t = 5e3) {
540
+ async function K(r, t = 5e3) {
568
541
  return new Promise((f) => {
569
542
  const n = Date.now();
570
543
  if (r.active && r.active.state === "activated") {
@@ -582,70 +555,69 @@ async function Q(r, t = 5e3) {
582
555
  });
583
556
  });
584
557
  }
585
- async function S() {
558
+ async function Q(r) {
586
559
  if (!("serviceWorker" in navigator))
587
560
  return !1;
588
561
  try {
589
- let t = (await navigator.serviceWorker.getRegistrations()).find(
590
- (n) => n.scope === window.location.origin + "/"
562
+ const t = U(r);
563
+ let n = (await navigator.serviceWorker.getRegistrations()).find(
564
+ (z) => z.scope === window.location.origin + "/"
591
565
  );
592
- if (t)
566
+ if (n)
593
567
  console.log("Oasis Chat Service Worker가 이미 등록되어 있습니다.");
594
- else {
595
- const n = K(), u = new Blob([n], { type: "application/javascript" }), z = URL.createObjectURL(u);
568
+ else
596
569
  try {
597
- t = await navigator.serviceWorker.register(z, {
570
+ n = await navigator.serviceWorker.register(t, {
598
571
  scope: "/"
599
572
  }), console.log("Oasis Chat Service Worker가 등록되었습니다.");
600
- } finally {
601
- URL.revokeObjectURL(z);
573
+ } catch (z) {
574
+ return console.error("Service Worker 등록 실패:", z), console.warn(`Service Worker 파일을 다음 경로에서 찾을 수 없습니다: ${t}`), console.warn("Service Worker 파일이 프로젝트의 public 폴더나 루트에 있는지 확인해주세요."), !1;
602
575
  }
603
- }
604
- return await Q(t) ? (console.log("Oasis Chat Service Worker가 활성화되었습니다."), !0) : (console.warn("Oasis Chat Service Worker 활성화 시간 초과"), !1);
605
- } catch (r) {
606
- return console.error("Service Worker 등록 실패:", r), !1;
576
+ return await K(n) ? (console.log("Oasis Chat Service Worker가 활성화되었습니다."), !0) : (console.warn("Oasis Chat Service Worker 활성화 시간 초과"), !1);
577
+ } catch (t) {
578
+ return console.error("Service Worker 등록 실패:", t), !1;
607
579
  }
608
580
  }
609
- let G = !1, b = !1;
610
- async function _() {
611
- return G || (G = !0, b = await S()), b;
581
+ let l = !1, b = !1;
582
+ async function S() {
583
+ return l || (l = !0, b = await Q()), b;
612
584
  }
613
- let N = null, Y = null, l = null;
614
- function $() {
615
- return N || (N = Z(), Y = C(N), l = I(Y), N.setPortalClient(l)), {
585
+ let N = null, Y = null, W = null;
586
+ function _() {
587
+ return N || (N = Z(), Y = R(N), W = I(Y), N.setPortalClient(W)), {
616
588
  authStore: N,
617
589
  httpClient: Y,
618
- portalClient: l
590
+ portalClient: W
619
591
  };
620
592
  }
621
- async function ee(r, t, f) {
593
+ async function $(r, t, f) {
622
594
  try {
623
595
  const { authStore: n, portalClient: u } = f, z = await u.login({
624
596
  account_id: r,
625
597
  password: t
626
- }), { login: j, authMe: H } = n.getState();
627
- j(z);
598
+ }), { login: i, authMe: H } = n.getState();
599
+ i(z);
628
600
  const w = await u.my();
629
601
  return H(w), !0;
630
602
  } catch (n) {
631
603
  return console.error("로그인 실패:", n), !1;
632
604
  }
633
605
  }
634
- function te({ account_id: r, password: t, assistant_uuid: f } = {}) {
606
+ function ee({ account_id: r, password: t, assistant_uuid: f } = {}) {
635
607
  const n = document.createElement("button");
636
608
  n.type = "button", n.className = p("w-12 h-12", "rounded-full");
637
609
  const u = document.createElement("img");
638
610
  return u.src = g, u.alt = "Button", n.appendChild(u), n.addEventListener("click", (z) => {
639
611
  z.preventDefault(), f && alert(`비서 UUID: ${f}`);
640
612
  }), r && t && (async () => {
641
- if (n.disabled = !0, n.style.opacity = "0.5", n.style.cursor = "wait", !await _()) {
613
+ if (n.disabled = !0, n.style.opacity = "0.5", n.style.cursor = "wait", !await S()) {
642
614
  n.disabled = !0, n.style.opacity = "0.3", n.title = "Service Worker 활성화 실패", console.error("Service Worker 활성화 실패 - 라이브러리를 사용할 수 없습니다.");
643
615
  return;
644
616
  }
645
- const j = $();
646
- ee(r, t, j).then((H) => {
617
+ const i = _();
618
+ $(r, t, i).then((H) => {
647
619
  if (H) {
648
- const { authStore: w } = j, a = w.getState();
620
+ const { authStore: w } = i, a = w.getState();
649
621
  console.log("로그인 성공:", a.userName || a.accountId), n.disabled = !1, n.style.opacity = "", n.style.cursor = "";
650
622
  } else
651
623
  console.error("로그인 실패"), n.disabled = !0, n.style.opacity = "0.3", n.title = "로그인 실패";
@@ -654,7 +626,7 @@ function te({ account_id: r, password: t, assistant_uuid: f } = {}) {
654
626
  });
655
627
  })(), n;
656
628
  }
657
- const re = /* @__PURE__ */ M({
629
+ const ne = /* @__PURE__ */ M({
658
630
  __name: "OasisButton",
659
631
  props: {
660
632
  account_id: {},
@@ -666,7 +638,7 @@ const re = /* @__PURE__ */ M({
666
638
  function n() {
667
639
  if (!f.value) return;
668
640
  f.value.innerHTML = "";
669
- const u = te({
641
+ const u = ee({
670
642
  ...t
671
643
  });
672
644
  f.value.appendChild(u);
@@ -680,6 +652,6 @@ const re = /* @__PURE__ */ M({
680
652
  }
681
653
  });
682
654
  export {
683
- re as OasisButton
655
+ ne as OasisButton
684
656
  };
685
657
  //# sourceMappingURL=index.es.js.map