issue-sticker 0.10.0 → 0.12.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/CHANGELOG.md +60 -0
- package/dist/_commonjsHelpers-DWwsNxpa.js +8 -0
- package/dist/{externalUserPayload-DNGAp9bP.js → externalUserPayload-DWcXyz2U.js} +2538 -473
- package/dist/index-DA6SoSp7.js +3009 -0
- package/dist/issue-sticker-headless-react.js +3 -3
- package/dist/issue-sticker-headless.js +136 -74
- package/dist/issue-sticker-react.js +1489 -642
- package/dist/{three-_bdgDAmI.js → three-B228j4M6.js} +11 -11
- package/dist/{tooltip-UijEbdDX.js → tooltip-CT7e9xbU.js} +1 -1
- package/headless.d.ts +67 -0
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,66 @@
|
|
|
2
2
|
|
|
3
3
|
npm 패키지 `issue-sticker`의 변경 이력입니다. 설치·업그레이드에 영향을 주는 변경만 기록합니다.
|
|
4
4
|
|
|
5
|
+
## 0.12.0 - 2026-10-14
|
|
6
|
+
|
|
7
|
+
**백엔드 1.13.0 이상이 필요합니다.** 비동기 업로드(`video_status`·`resumableUrl`·`replay_status`·`replayMeta` 계약)와 `Retry-After` 헤더 노출을 사용합니다.
|
|
8
|
+
|
|
9
|
+
### 호환성이 깨지는 변경 (headless)
|
|
10
|
+
|
|
11
|
+
- `submitDraft()` 는 영상 업로드를 기다리지 않고 이슈 생성 직후 결과를 돌려줍니다. 영상 이슈의 `video` 는 `null`, `video_status` 는 `'uploading'` 입니다.
|
|
12
|
+
- 마이그레이션: `submitDraft()` 의 반환값에서 `video` 를 바로 읽던 코드는 `snapshot.issues` 에서 같은 이슈의 `video_status` 가 `'ready'` 가 된 뒤 `openIssue(issueId)` 로 이슈를 열어 `snapshot.activeIssue.video` 에서 읽어주세요. `refreshIssues()` 가 받는 스티커 목록에는 영상 URL 이 없습니다. `config.user` 가 없는 게스트는 이슈를 다시 조회할 수 없어 영상 URL 을 받을 수 없습니다. 업로드 실패 안내가 필요하면 `snapshot.videoUploads` 의 `status: 'failed'` 를 보고 `retryVideoUpload(issueId)` 를 호출합니다.
|
|
13
|
+
- `submitDraft()`·`createIssue()` 는 세션 리플레이·웹소켓 로그 업로드를 기다리지 않습니다. 리플레이가 있는 이슈의 `replay_status` 는 `'uploading'` 으로 시작해 업로드가 끝나면 `snapshot.issues` 에서 `'ready'` 로 바뀝니다. 진행은 `snapshot.attachmentUploads` 로 확인합니다.
|
|
14
|
+
- 마이그레이션: 이슈 생성 직후 리플레이를 조회하던 코드는 `replay_status` 가 `'ready'` 가 된 뒤 `openIssue(issueId)` 로 다시 조회해주세요. `'failed'` 이면 그 이슈에는 리플레이가 없습니다.
|
|
15
|
+
|
|
16
|
+
### 추가
|
|
17
|
+
|
|
18
|
+
- 공개 타입에 `HeadlessVideoUpload`·`HeadlessAttachmentUpload`, 스냅샷 필드 `videoUploads`·`attachmentUploads`, 이슈 필드 `video_status`·`replay_status`, 메서드 `retryVideoUpload(issueId)` 를 추가했습니다. `retryVideoUpload` 는 영상과 세션 리플레이·웹소켓 로그의 실패한 업로드를 함께 다시 올립니다.
|
|
19
|
+
|
|
20
|
+
### 개선
|
|
21
|
+
|
|
22
|
+
- 영상 이슈를 제출하면 영상 업로드를 기다리지 않고 바로 이슈가 생성되고 입력창이 닫힙니다. 영상은 이어서 업로드되며 툴바에서 진행률을 확인합니다. 업로드가 끝나면 이슈에 첨부됩니다.
|
|
23
|
+
- 세션 리플레이와 웹소켓 로그도 업로드를 기다리지 않고 이슈를 먼저 생성합니다. 업로드가 끝나면 이슈에 첨부됩니다.
|
|
24
|
+
- 업로드 중에 페이지를 닫거나 이동해도 24시간 안에 같은 사이트를 다시 열면 이어서 업로드합니다. 업로드할 데이터는 그동안 고객 사이트의 IndexedDB 에 보관합니다.
|
|
25
|
+
- 같은 사이트를 여러 탭으로 열어도 업로드는 한 탭에서만 진행됩니다. 그 탭을 닫으면 사이트를 다시 열었을 때 이어서 업로드합니다.
|
|
26
|
+
- 영상과 세션 리플레이가 함께 있는 이슈는 업로드 결과를 알림 하나로 보여줍니다. 세션 리플레이만 있는 이슈는 업로드에 실패했을 때만 알립니다.
|
|
27
|
+
- 오프라인일 때 실패한 업로드는 실패로 알리지 않고 연결이 돌아오면 이어서 업로드합니다. 같은 이슈의 업로드가 이후 끝나면 앞서 띄운 실패 알림을 닫습니다.
|
|
28
|
+
- 화면 녹화 비트레이트를 1.5Mbps 로 낮췄습니다. 2분 녹화가 약 23MB 입니다.
|
|
29
|
+
- 이슈 입력창이 열려 있으면 녹화 단축키가 동작하지 않습니다.
|
|
30
|
+
- SDK 가 미디어를 업로드하는 요청은 이슈의 네트워크 로그에 기록하지 않습니다.
|
|
31
|
+
- 요청 한도(429)에 걸리면 서버가 알려준 시간만큼 기다렸다가 한 번만 다시 조회합니다. 다시 보내도 결과가 같은 오류(400·403·404 등)는 재시도하지 않고, 서버 오류는 재시도 시점을 조금씩 달리해 요청이 한꺼번에 몰리지 않게 합니다.
|
|
32
|
+
- 위젯의 이슈 팝오버에서 요소 상세 스크린샷을 전체 화면 스크린샷보다 먼저 보여줍니다.
|
|
33
|
+
- 「미표시 스티커」를 「표시하지 못한 스티커」로 바꿨습니다. 위치를 찾지 못해 화면에 표시하지 못한 스티커라는 뜻을 분명히 했습니다.
|
|
34
|
+
- 등록된 고정 문구가 없어도 「고정 문구 선택」이 열리고, 어드민에서 등록하는 방법을 안내합니다.
|
|
35
|
+
- AI 작성 입력창 안내 문구에 기능 설명과 예시를 넣었습니다. 직접 작성 폼의 AI 작성 버튼 툴팁에도 같은 설명을 추가했습니다.
|
|
36
|
+
|
|
37
|
+
### 수정
|
|
38
|
+
|
|
39
|
+
- 이슈 생성 요청이 실패하면 자동으로 다시 보내지 않습니다. 응답만 늦게 도착했을 때 같은 이슈가 두 번 생성될 수 있던 문제를 막았습니다.
|
|
40
|
+
- 이슈와 함께 저장되는 요소 상세 스크린샷을 같은 순간의 화면에서 잘라냅니다. 투명한 링크가 덮인 카드, 가운데 정렬된 모달, 캐러셀, 어두운 배경 위의 글자가 빈 이미지나 어긋난 위치로 저장되던 문제를 고쳤습니다. 요소 상세 스크린샷에는 화면에 보이던 부분과 요소 둘레 8px 이 함께 들어가고, 화면 밖으로 나간 부분은 잘립니다.
|
|
41
|
+
- 이슈 생성 폼이 열려 있는 동안 위젯 툴바가 빈 칸으로 보이던 문제를 고쳤습니다. 이제 폼이 열려 있는 동안에는 툴바를 숨기고, 이슈를 생성하거나 취소하면 옮겨 둔 자리에 다시 표시합니다.
|
|
42
|
+
- 페이지의 팝업이나 드롭다운이 열린 상태에서 툴바의 「이슈 생성」 같은 위젯 버튼을 클릭하면 팝업이 닫히던 문제를 고쳤습니다.
|
|
43
|
+
- 이슈 상세 화면의 로그 패널 구분선을 드래그하다가 위젯 안에서 마우스를 놓아도 크기 조절이 끝나지 않던 문제를 고쳤습니다.
|
|
44
|
+
- 위젯에서 선택 목록이나 대화상자가 열려 있을 때 위젯 안 다른 곳이나 페이지를 클릭하면 닫힙니다.
|
|
45
|
+
- 페이지의 팝업이 열린 상태에서 위젯 입력창에 포커스가 잡히지 않던 문제를 고쳤습니다.
|
|
46
|
+
- 이슈 설명의 빈 파일 링크와 Notion 체크박스 표시를 고쳤습니다.
|
|
47
|
+
|
|
48
|
+
## 0.11.0 - 2026-10-02
|
|
49
|
+
|
|
50
|
+
### 추가
|
|
51
|
+
|
|
52
|
+
- 이슈를 생성할 때 클릭한 요소를 다시 찾기 위한 정보를 클릭 위치와 함께 저장합니다. 요소 종류와 역할, 접근성 이름, 화면에 보이는 텍스트(80자 이내), 테스트용 속성 등 일부 속성, 가까운 제목·목록 행·메뉴의 텍스트, 요소를 그린 UI 컴포넌트 이름입니다. 입력값과 비밀번호 입력란, 마스킹 표식이 붙은 영역의 텍스트는 저장하지 않습니다. **백엔드 1.12.0 이상에서 저장됩니다.**
|
|
53
|
+
- 공개 타입 `IssuePosition` 에 optional 필드 `locator`·`component` 를 추가했습니다. 기존 필드는 그대로입니다.
|
|
54
|
+
|
|
55
|
+
### 개선
|
|
56
|
+
|
|
57
|
+
- 배포로 사이트의 스타일 클래스 이름이 바뀌면 스티커가 대상 요소를 찾지 못하던 경우를 줄였습니다.
|
|
58
|
+
|
|
59
|
+
### 수정
|
|
60
|
+
|
|
61
|
+
- 팝오버나 드롭다운 메뉴 안의 요소를 클릭해 이슈를 생성하면 이슈 입력창이 열리는 순간 그 메뉴가 닫히던 문제를 수정했습니다. 이제 메뉴가 열린 상태로 이슈를 작성하고, 스크린샷에도 메뉴가 포함됩니다.
|
|
62
|
+
- 스티커를 캡처 대상 요소 기준으로 표시할 때, 메뉴 안 요소에 생성한 이슈가 메뉴를 다시 열어도 표시되지 않던 문제를 수정했습니다.
|
|
63
|
+
- 이슈 입력창에서 입력하거나 스크롤하거나 파일을 드래그할 때 고객 사이트가 그 동작에 반응하던 문제를 수정했습니다.
|
|
64
|
+
|
|
5
65
|
## 0.10.0 - 2026-09-29
|
|
6
66
|
|
|
7
67
|
### 추가
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
|
|
2
|
+
function getDefaultExportFromCjs(x) {
|
|
3
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
4
|
+
}
|
|
5
|
+
export {
|
|
6
|
+
commonjsGlobal as c,
|
|
7
|
+
getDefaultExportFromCjs as g
|
|
8
|
+
};
|