@vibexnpm/talkx 8.1.0 → 8.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -809,13 +809,36 @@ export interface ScheduleCard {
809
809
  whenText?: string | null;
810
810
  /** 장소 스냅샷. 비어 있을 수 있다. */
811
811
  location?: string | null;
812
- /** 초대 대상 표시 이름. 비어 있어도 공개 범위는 방 전체다({@link ScheduleCard.visibilityNotice}). */
812
+ /**
813
+ * 개설자(요청한 사람) 표시 이름 — 제안 당시 서버가 요청자 계정으로 확인해 저장한 값.
814
+ *
815
+ * <p>🔴 <b>초대 명단({@link ScheduleCard.participantNames})에 들어 있지 않은 사람</b>이다 — 두 역할을 따로 그린다
816
+ * («개설: 이승주» / «초대: 김홍섭»). 옛 카드·서버가 확인하지 못한 경우엔 <b>키가 없다</b> — 그때는 개설자 줄을 생략하고,
817
+ * PM·카드를 보는 사람·승인 버튼을 누른 사람의 이름으로 대신 채우지 않는다.</p>
818
+ */
819
+ organizerName?: string | null;
820
+ /**
821
+ * 서비스 <b>초대 대상</b> 표시 이름 — 개설자는 없다. 현재 방에 없는 같은 회사 직원이 있을 수 있다.
822
+ * 외부 미팅 상대(계정 없음)는 여기가 아니라 제목·설명에 있다.
823
+ *
824
+ * <p>비어 있으면 «서비스 초대 없음 · 방 구성원 공개» 로 보인다 — 비어 있어도 공개 범위는 방 전체다
825
+ * ({@link ScheduleCard.visibilityNotice}).</p>
826
+ */
813
827
  participantNames?: string[] | null;
814
828
  /**
815
829
  * 🔴 공개 범위 고지 — <b>참가자 수와 관계없이 항상</b> 온다. 카드를 그린다면 반드시 표시한다.
816
830
  * 초대한 사람이 없어도 이 방 구성원 전원에게 보이는 일정이다.
817
831
  */
818
832
  visibilityNotice: string;
833
+ /**
834
+ * 승인 전 확인 안내 — 🔴 {@code kind === 'PROPOSED'} 일 때만 오고, 그때도 없을 수 있다.
835
+ *
836
+ * <p>개설자와 같은 이름의 다른 직원이 회사에 있어 서버가 요청자를 개설자로 처리한 제안이다
837
+ * («같은 이름의 다른 직원이 있습니다. 개설자 외 초대 명단을 확인해 주세요.»). <b>있으면 카드 안에 그대로 표시</b>한다 —
838
+ * 카드를 그리면 {@code content} 는 숨기므로 여기서 따로 그리지 않으면 보이지 않는다. 문구를 «그분은 초대되지 않았다» 로 바꾸지
839
+ * 않는다(승인 전 수정으로 이미 넣었을 수 있다). 결과 카드에는 오지 않는다.</p>
840
+ */
841
+ organizerNotice?: string | null;
819
842
  /**
820
843
  * 거절 사유 <b>코드</b> — 🔴 {@code kind === 'REJECTED'} 일 때만 오고, 그때도 없을 수 있다.
821
844
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibexnpm/talkx",
3
- "version": "8.1.0",
3
+ "version": "8.2.0",
4
4
  "type": "module",
5
5
  "description": "TalkFlow SDK - Chat & WebRTC unified client",
6
6
  "main": "dist/talkflow-sdk.umd.js",
@@ -45,7 +45,23 @@ function names(card: ScheduleCard): string {
45
45
  return (card.participantNames ?? []).join(', ') + (card.title ?? '') + (card.whenText ?? '') + (card.location ?? '');
46
46
  }
47
47
 
48
- // 6) 알 수 없는 kind 문자열도 받아들인다(구버전 호환).
48
+ // 6) 개설자는 선택 필드다 — 옛 카드엔 키가 없다. 있을 때만 초대 명단과 따로 그린다.
49
+ // 승인 대기 카드의 확인 안내(organizerNotice)도 선택 필드다 — 있으면 카드 안에 그대로 그린다.
50
+ function roles(card: ScheduleCard): string[] {
51
+ const lines: string[] = [];
52
+ if (card.organizerName) lines.push('개설: ' + card.organizerName);
53
+ const invitees = card.participantNames ?? [];
54
+ lines.push(invitees.length > 0 ? '초대: ' + invitees.join(', ') : '서비스 초대 없음 · 방 구성원 공개');
55
+ if (card.kind === 'PROPOSED' && card.organizerNotice) lines.push(card.organizerNotice);
56
+ return lines;
57
+ }
58
+ const legacy: ScheduleCard = { proposalId: 'p-0', kind: 'PROPOSED', visibilityNotice: '이 방 구성원에게 공개되는 일정입니다' };
59
+ const withOrganizer: ScheduleCard = {
60
+ ...legacy, organizerName: '이승주', participantNames: ['김홍섭'],
61
+ organizerNotice: '같은 이름의 다른 직원이 있습니다. 개설자 외 초대 명단을 확인해 주세요.',
62
+ };
63
+
64
+ // 7) 알 수 없는 kind 문자열도 받아들인다(구버전 호환).
49
65
  const future: ScheduleCard = { proposalId: 'p-1', kind: 'SOMETHING_NEW', visibilityNotice: '이 방 구성원에게 공개되는 일정입니다' };
50
66
 
51
- export { maybeCard, notice, headline, names, future };
67
+ export { maybeCard, notice, headline, names, roles, legacy, withOrganizer, future };
package/types/index.d.ts CHANGED
@@ -809,13 +809,36 @@ export interface ScheduleCard {
809
809
  whenText?: string | null;
810
810
  /** 장소 스냅샷. 비어 있을 수 있다. */
811
811
  location?: string | null;
812
- /** 초대 대상 표시 이름. 비어 있어도 공개 범위는 방 전체다({@link ScheduleCard.visibilityNotice}). */
812
+ /**
813
+ * 개설자(요청한 사람) 표시 이름 — 제안 당시 서버가 요청자 계정으로 확인해 저장한 값.
814
+ *
815
+ * <p>🔴 <b>초대 명단({@link ScheduleCard.participantNames})에 들어 있지 않은 사람</b>이다 — 두 역할을 따로 그린다
816
+ * («개설: 이승주» / «초대: 김홍섭»). 옛 카드·서버가 확인하지 못한 경우엔 <b>키가 없다</b> — 그때는 개설자 줄을 생략하고,
817
+ * PM·카드를 보는 사람·승인 버튼을 누른 사람의 이름으로 대신 채우지 않는다.</p>
818
+ */
819
+ organizerName?: string | null;
820
+ /**
821
+ * 서비스 <b>초대 대상</b> 표시 이름 — 개설자는 없다. 현재 방에 없는 같은 회사 직원이 있을 수 있다.
822
+ * 외부 미팅 상대(계정 없음)는 여기가 아니라 제목·설명에 있다.
823
+ *
824
+ * <p>비어 있으면 «서비스 초대 없음 · 방 구성원 공개» 로 보인다 — 비어 있어도 공개 범위는 방 전체다
825
+ * ({@link ScheduleCard.visibilityNotice}).</p>
826
+ */
813
827
  participantNames?: string[] | null;
814
828
  /**
815
829
  * 🔴 공개 범위 고지 — <b>참가자 수와 관계없이 항상</b> 온다. 카드를 그린다면 반드시 표시한다.
816
830
  * 초대한 사람이 없어도 이 방 구성원 전원에게 보이는 일정이다.
817
831
  */
818
832
  visibilityNotice: string;
833
+ /**
834
+ * 승인 전 확인 안내 — 🔴 {@code kind === 'PROPOSED'} 일 때만 오고, 그때도 없을 수 있다.
835
+ *
836
+ * <p>개설자와 같은 이름의 다른 직원이 회사에 있어 서버가 요청자를 개설자로 처리한 제안이다
837
+ * («같은 이름의 다른 직원이 있습니다. 개설자 외 초대 명단을 확인해 주세요.»). <b>있으면 카드 안에 그대로 표시</b>한다 —
838
+ * 카드를 그리면 {@code content} 는 숨기므로 여기서 따로 그리지 않으면 보이지 않는다. 문구를 «그분은 초대되지 않았다» 로 바꾸지
839
+ * 않는다(승인 전 수정으로 이미 넣었을 수 있다). 결과 카드에는 오지 않는다.</p>
840
+ */
841
+ organizerNotice?: string | null;
819
842
  /**
820
843
  * 거절 사유 <b>코드</b> — 🔴 {@code kind === 'REJECTED'} 일 때만 오고, 그때도 없을 수 있다.
821
844
  *