@teriusu/rich-editor 0.11.4 → 0.11.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.
@@ -15,8 +15,23 @@
15
15
  */
16
16
  export declare function canEmbedCrossOrigin(): boolean;
17
17
  /**
18
- * 격리된 문서에서 COEP 없는 영상을 싣는 유일한 통로. 크로미움이 아니면 이 속성 자체가
19
- * 무시되므로 조건 없이 붙여도 해가 없다.
18
+ * 제3자 임베드 iframe 이 **실제로 로드되게** 하는 속성 묶음. 둘은 막는 층이 다르므로
19
+ * 항상 같이 붙인다.
20
+ *
21
+ * 1. `credentialless` — 격리된 문서(COEP `require-corp`)에서 COEP 없는 남의 iframe 을
22
+ * 싣는 유일한 통로. 크로미움이 아니면 무시되므로 조건 없이 붙여도 해가 없다.
23
+ *
24
+ * 2. `referrerpolicy` — ⚠️ **호스트가 Referer 를 끄고 있을 수 있다.** 정올은
25
+ * `app.html` 에 `<meta name="referrer" content="same-origin">` 을 두어 교차 출처로는
26
+ * Referer 를 **아예 안 보낸다.** 그런데 mbus 채널 중에는 Referer 로 출처를 거르는
27
+ * 것이 있어서, 그런 영상은 CDN 청크가 403 으로 막히고 플레이어가
28
+ * `인코딩에 실패했거나 접근 제한되어 재생할 수 없습니다` 를 띄운다 — 영상 자체는
29
+ * 멀쩡한데(최상위 playlist 는 200) 안 나오는, 설명이 안 되는 실패로 보인다.
30
+ * 실측(`ch_17827535`): Referer 없음 → 403 · `https://jungol.co.kr/` → 200 ·
31
+ * 엉뚱한 출처 → 403. 요소에 건 정책이 문서 메타를 이기므로 여기서 되돌린다.
32
+ * ⚠️ 전체 URL 이 아니라 **출처만** 보낸다(`strict-origin-…`) — 어느 글에서 봤는지까지
33
+ * 남의 서버에 알릴 이유는 없다. 앱의 다른 mbus 자리(`MidibusInner`·`legacy-iframe`)가
34
+ * 쓰는 값과 같다.
20
35
  */
21
36
  export declare function applyCrossOriginEmbedAttrs(iframe: HTMLIFrameElement): void;
22
37
  //# sourceMappingURL=embed.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/utils/embed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAI7C;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAE1E"}
1
+ {"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/utils/embed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAI7C;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAG1E"}
@@ -21,9 +21,25 @@ export function canEmbedCrossOrigin() {
21
21
  return "credentialless" in HTMLIFrameElement.prototype;
22
22
  }
23
23
  /**
24
- * 격리된 문서에서 COEP 없는 영상을 싣는 유일한 통로. 크로미움이 아니면 이 속성 자체가
25
- * 무시되므로 조건 없이 붙여도 해가 없다.
24
+ * 제3자 임베드 iframe 이 **실제로 로드되게** 하는 속성 묶음. 둘은 막는 층이 다르므로
25
+ * 항상 같이 붙인다.
26
+ *
27
+ * 1. `credentialless` — 격리된 문서(COEP `require-corp`)에서 COEP 없는 남의 iframe 을
28
+ * 싣는 유일한 통로. 크로미움이 아니면 무시되므로 조건 없이 붙여도 해가 없다.
29
+ *
30
+ * 2. `referrerpolicy` — ⚠️ **호스트가 Referer 를 끄고 있을 수 있다.** 정올은
31
+ * `app.html` 에 `<meta name="referrer" content="same-origin">` 을 두어 교차 출처로는
32
+ * Referer 를 **아예 안 보낸다.** 그런데 mbus 채널 중에는 Referer 로 출처를 거르는
33
+ * 것이 있어서, 그런 영상은 CDN 청크가 403 으로 막히고 플레이어가
34
+ * `인코딩에 실패했거나 접근 제한되어 재생할 수 없습니다` 를 띄운다 — 영상 자체는
35
+ * 멀쩡한데(최상위 playlist 는 200) 안 나오는, 설명이 안 되는 실패로 보인다.
36
+ * 실측(`ch_17827535`): Referer 없음 → 403 · `https://jungol.co.kr/` → 200 ·
37
+ * 엉뚱한 출처 → 403. 요소에 건 정책이 문서 메타를 이기므로 여기서 되돌린다.
38
+ * ⚠️ 전체 URL 이 아니라 **출처만** 보낸다(`strict-origin-…`) — 어느 글에서 봤는지까지
39
+ * 남의 서버에 알릴 이유는 없다. 앱의 다른 mbus 자리(`MidibusInner`·`legacy-iframe`)가
40
+ * 쓰는 값과 같다.
26
41
  */
27
42
  export function applyCrossOriginEmbedAttrs(iframe) {
28
43
  iframe.setAttribute("credentialless", "");
44
+ iframe.setAttribute("referrerpolicy", "strict-origin-when-cross-origin");
29
45
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teriusu/rich-editor",
3
- "version": "0.11.4",
3
+ "version": "0.11.5",
4
4
  "description": "TipTap 기반 Notion-style 리치 텍스트 에디터 (Svelte)",
5
5
  "type": "module",
6
6
  "svelte": "./dist/index.js",