@01.works/visual-review 0.9.6 → 0.11.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/README.md CHANGED
@@ -118,6 +118,15 @@ const review = installVisualReview();
118
118
  // 필요한 경우 await review.refresh();
119
119
  ```
120
120
 
121
+ 기본 page identity는 개인정보 노출을 줄이기 위해 `pathname`만 사용합니다. Query나
122
+ hash가 실제로 서로 다른 화면을 나타내는 SPA는 명시적으로 URL identity를 켭니다.
123
+ 이 모드는 Convex runtime에서만 지원되며 rollback Instant runtime에서는 조용히 섞지
124
+ 않고 오류로 닫힙니다.
125
+
126
+ ```ts
127
+ installVisualReview({ pageIdentity: 'url' });
128
+ ```
129
+
121
130
  다른 페이지의 피드백을 여는 동작은 `/next` entry가 App Router의 `push`로 처리하고,
122
131
  일반 정적/멀티페이지 사이트에서는 실제 페이지 이동을 사용합니다. React Router처럼
123
132
  별도 router API가 필요한 호스트는 `navigateToFeedback: (url) => router.navigate(url)`을
@@ -216,12 +225,15 @@ bootstrap을 시작하지 않습니다. development build의 1회 console 안내
216
225
  `enabled={false}`는 긴급 kill switch이며 진단도 실행하지 않습니다.
217
226
 
218
227
  검증 성공 뒤 activation의 범위는 runtime의 실제 인증 재개 범위를 따릅니다. 현재 hosted
219
- Convex runtime은 reviewer bearer와 marker를 모두 탭의 `sessionStorage`에 두므로 같은 탭의
220
- 새로고침·복원만 재개합니다. Browser-persistent auth를 제공하는 runtime만 만료 시각이
221
- versioned `localStorage` marker를 사용합니다. 만료되거나 인증과 어긋난 legacy marker는
222
- DOM·runtime import·network 전에 제거됩니다. 위젯의 **피드백 목록 리뷰 종료**는 현재
223
- 브라우저의 현재 site에서 local session activation을 정리하며, 모든 기기의 접근
224
- 철회는 owner의 invitation revoke가 담당합니다.
228
+ Convex runtime은 브라우저에서 non-extractable P-256 device key를 만들고 IndexedDB의
229
+ 구조화 복제로 저장합니다. 같은 브라우저의 새로고침·탭 복원·재접속은 이어지지만 장기
230
+ bearer 원문은 browser storage나 server 어디에도 존재하지 않습니다. JWT 갱신은 server가
231
+ 발급한 1회성 challenge/counter를 device key로 서명해야 하며 replay는 Convex mutation에서
232
+ 원자적으로 차단됩니다. Device session invitation access expiry 이내, 최대 30일입니다.
233
+ 이전 버전의 `localStorage`/`sessionStorage` bearer는 읽거나 승격하지 않고 즉시 삭제합니다.
234
+ 만료되거나 인증과 어긋난 marker는 제거됩니다. 위젯의 **피드백 목록 → 리뷰 종료**는 현재
235
+ 브라우저의 현재 site에서 signed server device session revoke를 시도한 뒤 local key와
236
+ activation을 정리합니다. 모든 기기의 접근 철회는 owner의 invitation revoke가 담당합니다.
225
237
 
226
238
  처음에는 이메일의
227
239
  `#visual-review=<invitation-id>&visual-review-token=<one-time-token>` 링크로 접근합니다. hosted service가
@@ -230,7 +242,8 @@ project에 연결된 exact Origin 목록과 현재 pathname을 읽기 전용 act
230
242
  reviewer session이나 이메일을 포함하지 않습니다. Fragment는 주소창에서 즉시 제거되고,
231
243
  reviewer가 **리뷰 시작**을 누를 때 server가 token을 지정된 origin/path에서 교환해
232
244
  provider session과 invitation claim을 함께 만듭니다. token은 15분 retry grace 뒤
233
- 소진되며 탭이나 기기에서는 같은 링크가 이메일 복구 코드 flow를 시작합니다.
245
+ 소진되며 browser session이 끝났거나 다른 브라우저·기기에서는 같은 링크가 이메일 복구
246
+ 코드 flow를 시작합니다.
234
247
  인증된 `/v1/pages/resolve`가 아직 등록되지 않은
235
248
  pathname을 자동 등록합니다. Server는
236
249
  provider의 user-scoped mutation으로 claim을 실행하며 완료된 뒤에만 client가
@@ -114,6 +114,15 @@ integrated at version `1.0.52`.
114
114
  - License: Apache License 2.0
115
115
  - License text: `LICENSES/Apache-2.0.txt`
116
116
 
117
+ ## Convex JavaScript SDK
118
+
119
+ The browser runtime bundles the Convex JavaScript SDK browser client, version
120
+ `1.45.0`.
121
+
122
+ - Repository: https://github.com/get-convex/convex-backend
123
+ - License: Apache License 2.0
124
+ - License text: `LICENSES/Apache-2.0.txt`
125
+
117
126
  ## Mutative
118
127
 
119
128
  - Repository: https://github.com/unadlib/mutative