@aeriz/wysiwyg 1.0.1 → 1.0.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.
- package/README.md +610 -96
- package/angular/README.md +112 -0
- package/angular/aeriz-editor.directive.ts +243 -0
- package/angular/aeriz-wysiwyg.module.ts +14 -0
- package/angular/index.ts +5 -0
- package/dist/adapters/jquery.cjs +1 -0
- package/dist/adapters/jquery.js +91 -0
- package/dist/adapters/react.cjs +1 -0
- package/dist/adapters/react.js +66 -0
- package/dist/adapters/shared.cjs +1 -0
- package/dist/adapters/shared.js +87 -0
- package/dist/adapters/svelte.cjs +1 -0
- package/dist/adapters/svelte.js +29 -0
- package/dist/adapters/vue.cjs +1 -0
- package/dist/adapters/vue.js +110 -0
- package/dist/adapters/vue2.cjs +1 -0
- package/dist/adapters/vue2.js +117 -0
- package/dist/adapters/wc.cjs +1 -0
- package/dist/adapters/wc.js +207 -0
- package/dist/aeriz-wysiwyg-adapter.js +169 -0
- package/dist/aeriz-wysiwyg-adapter.min.js +1 -0
- package/dist/aeriz-wysiwyg-jquery.js +275 -0
- package/dist/aeriz-wysiwyg-jquery.min.js +1 -0
- package/dist/aeriz-wysiwyg-wc.js +401 -0
- package/dist/aeriz-wysiwyg-wc.min.js +1 -0
- package/dist/aeriz-wysiwyg.cjs +6912 -0
- package/dist/aeriz-wysiwyg.css +37 -129
- package/dist/aeriz-wysiwyg.esm.js +1194 -153
- package/dist/aeriz-wysiwyg.esm.min.js +2067 -1204
- package/dist/aeriz-wysiwyg.js +1193 -152
- package/dist/aeriz-wysiwyg.min.cjs +54 -0
- package/dist/aeriz-wysiwyg.min.css +1 -1
- package/dist/aeriz-wysiwyg.min.js +44 -13
- package/dist/server.cjs +32 -0
- package/dist/server.js +666 -0
- package/dist-types/adapters/jquery.d.ts +34 -0
- package/dist-types/adapters/jquery.d.ts.map +1 -0
- package/dist-types/adapters/react.d.ts +28 -0
- package/dist-types/adapters/react.d.ts.map +1 -0
- package/dist-types/adapters/shared.d.ts +83 -0
- package/dist-types/adapters/shared.d.ts.map +1 -0
- package/dist-types/adapters/svelte.d.ts +38 -0
- package/dist-types/adapters/svelte.d.ts.map +1 -0
- package/dist-types/adapters/vue.d.ts +189 -0
- package/dist-types/adapters/vue.d.ts.map +1 -0
- package/dist-types/adapters/vue2.d.ts +175 -0
- package/dist-types/adapters/vue2.d.ts.map +1 -0
- package/dist-types/adapters/wc.d.ts +96 -0
- package/dist-types/adapters/wc.d.ts.map +1 -0
- package/dist-types/cjs/adapters/jquery.d.cts +34 -0
- package/dist-types/cjs/adapters/react.d.cts +28 -0
- package/dist-types/cjs/adapters/shared.d.cts +83 -0
- package/dist-types/cjs/adapters/svelte.d.cts +38 -0
- package/dist-types/cjs/adapters/vue.d.cts +189 -0
- package/dist-types/cjs/adapters/vue2.d.cts +175 -0
- package/dist-types/cjs/adapters/wc.d.cts +96 -0
- package/dist-types/cjs/core/AerizEditor.d.cts +357 -0
- package/dist-types/cjs/core/AerizViewer.d.cts +61 -0
- package/dist-types/cjs/core/block-meta.d.cts +32 -0
- package/dist-types/cjs/core/blocks.d.cts +368 -0
- package/dist-types/cjs/core/fonts.d.cts +60 -0
- package/dist-types/cjs/core/highlight.d.cts +44 -0
- package/dist-types/cjs/core/html-mini.d.cts +65 -0
- package/dist-types/cjs/core/i18n.d.cts +209 -0
- package/dist-types/cjs/core/import-html.d.cts +39 -0
- package/dist-types/cjs/core/import-markdown.d.cts +37 -0
- package/dist-types/cjs/core/markdown-export.d.cts +30 -0
- package/dist-types/cjs/core/plain-text.d.cts +17 -0
- package/dist-types/cjs/core/render-string.d.cts +68 -0
- package/dist-types/cjs/core/snapshot.d.cts +51 -0
- package/dist-types/cjs/index.d.cts +20 -0
- package/dist-types/cjs/server/index.d.cts +37 -0
- package/dist-types/cjs/types/index.d.cts +61 -0
- package/dist-types/cjs/ui/Toolbar.d.cts +21 -0
- package/dist-types/cjs/ui/dialogs.d.cts +74 -0
- package/dist-types/cjs/ui/icons.d.cts +2 -0
- package/dist-types/cjs/ui/popovers.d.cts +70 -0
- package/dist-types/core/AerizEditor.d.ts +30 -10
- package/dist-types/core/AerizEditor.d.ts.map +1 -1
- package/dist-types/core/AerizViewer.d.ts +16 -4
- package/dist-types/core/AerizViewer.d.ts.map +1 -1
- package/dist-types/core/block-meta.d.ts +32 -0
- package/dist-types/core/block-meta.d.ts.map +1 -0
- package/dist-types/core/blocks.d.ts +62 -7
- package/dist-types/core/blocks.d.ts.map +1 -1
- package/dist-types/core/fonts.d.ts +11 -0
- package/dist-types/core/fonts.d.ts.map +1 -1
- package/dist-types/core/html-mini.d.ts +65 -0
- package/dist-types/core/html-mini.d.ts.map +1 -0
- package/dist-types/core/import-html.d.ts.map +1 -1
- package/dist-types/core/markdown-export.d.ts +30 -0
- package/dist-types/core/markdown-export.d.ts.map +1 -0
- package/dist-types/core/plain-text.d.ts +17 -0
- package/dist-types/core/plain-text.d.ts.map +1 -0
- package/dist-types/core/render-string.d.ts +68 -0
- package/dist-types/core/render-string.d.ts.map +1 -0
- package/dist-types/core/snapshot.d.ts +51 -0
- package/dist-types/core/snapshot.d.ts.map +1 -0
- package/dist-types/index.d.ts +19 -10
- package/dist-types/index.d.ts.map +1 -1
- package/dist-types/server/index.d.ts +37 -0
- package/dist-types/server/index.d.ts.map +1 -0
- package/dist-types/types/index.d.ts +21 -0
- package/dist-types/types/index.d.ts.map +1 -1
- package/dist-types/ui/Toolbar.d.ts +1 -1
- package/dist-types/ui/popovers.d.ts +1 -1
- package/dist-types/ui/popovers.d.ts.map +1 -1
- package/package.json +213 -58
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOM 없이 `BlockSnapshot[]` → HTML 문자열.
|
|
3
|
+
*
|
|
4
|
+
* `document` / `window` 를 **모듈 최상위에서도, 함수 안에서도** 참조하지 않는다.
|
|
5
|
+
* Cloudflare Workers(workerd) · Node · Deno · Bun 어디서든 그대로 동작한다.
|
|
6
|
+
*
|
|
7
|
+
* ## 보장
|
|
8
|
+
*
|
|
9
|
+
* - **결정적** — 같은 입력이면 항상 같은 문자열. 난수 · 현재 시각 · 순회 순서에
|
|
10
|
+
* 의존하는 값을 쓰지 않는다. 따라서 재렌더 결과의 diff 가 의미를 갖는다.
|
|
11
|
+
* - **멱등** — 같은 스냅샷을 몇 번 렌더해도 결과가 누적되거나 변하지 않는다.
|
|
12
|
+
* - **에디터 전용 마크업 없음** — 리사이즈 핸들 · 정렬 컨트롤 · `contenteditable`
|
|
13
|
+
* 같은 편집 보조 마크업은 출력에 포함되지 않는다.
|
|
14
|
+
*
|
|
15
|
+
* ## 브라우저 렌더 경로와의 관계
|
|
16
|
+
*
|
|
17
|
+
* DOM 경로(`renderBlock`) 와 **같은 결과**를 내는 것이 목표다. 모든 블록은
|
|
18
|
+
* `snapshot.html` 을 그대로 싣고, `html` 이 비어 있을 때만 `attrs` 로 골격을
|
|
19
|
+
* 조립한다 (`AerizViewer` 도 같은 규칙).
|
|
20
|
+
*
|
|
21
|
+
* 원자 블록(이미지 · 유튜브 · 링크 카드 · 파일) 도 예외가 아니다. 예전에는
|
|
22
|
+
* `attrs` 로만 다시 조립했는데, 그러면 `<figcaption>` 처럼 `attrs` 에 없는
|
|
23
|
+
* 사용자 컨텐츠가 **서버 렌더에서만** 사라져 같은 스냅샷이 브라우저와 서버에서
|
|
24
|
+
* 다르게 보였다.
|
|
25
|
+
*
|
|
26
|
+
* 편집 보조 마크업(정렬 컨트롤 · 리사이즈 핸들) 은 1.0.3 부터 `serialize()` 가
|
|
27
|
+
* 애초에 싣지 않지만, 그 이전 데이터를 위해 읽는 쪽에서도 걷어낸다.
|
|
28
|
+
*/
|
|
29
|
+
import type { BlockSnapshot } from './blocks.js';
|
|
30
|
+
export interface RenderHtmlOptions {
|
|
31
|
+
/**
|
|
32
|
+
* 각 블록에 `data-block-id` 를 남길지. 기본 `true`.
|
|
33
|
+
*
|
|
34
|
+
* 저장된 스냅샷과 렌더된 HTML 을 대조해야 하는 경우(앵커 링크, 코멘트 위치
|
|
35
|
+
* 고정 등) 켜 두고, 순수 발행용 HTML 이면 끈다.
|
|
36
|
+
*/
|
|
37
|
+
blockIds?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* 감싸는 컨테이너.
|
|
40
|
+
* - `'none'` (기본) — 블록들만 이어붙인 조각
|
|
41
|
+
* - `'content'` — `<div class="aeriz-wysiwyg"><div class="aw-content">…`
|
|
42
|
+
* 로 감싼다. 배포된 `aeriz-wysiwyg.min.css` 를 함께 로드하면 에디터와 같은
|
|
43
|
+
* 시각으로 렌더된다 (클래스 기반 스타일링 경로).
|
|
44
|
+
*/
|
|
45
|
+
wrapper?: 'none' | 'content';
|
|
46
|
+
/** `wrapper: 'content'` 일 때 컨테이너에 부여할 테마. */
|
|
47
|
+
theme?: 'light' | 'dark';
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* 스냅샷 배열을 HTML 문자열로 렌더한다.
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* // Cloudflare Worker
|
|
54
|
+
* import { renderBlocksToHTML } from '@aeriz/wysiwyg/server';
|
|
55
|
+
*
|
|
56
|
+
* const html = renderBlocksToHTML(post.blocks, { wrapper: 'content' });
|
|
57
|
+
*/
|
|
58
|
+
export declare function renderBlocksToHTML(snapshots: readonly BlockSnapshot[], options?: RenderHtmlOptions): string;
|
|
59
|
+
/**
|
|
60
|
+
* 단일 스냅샷을 HTML 문자열로 렌더한다.
|
|
61
|
+
*
|
|
62
|
+
* 스트리밍 · 블록 단위 캐시처럼 블록을 하나씩 렌더하는 호출자를 위해 공개돼
|
|
63
|
+
* 있다. `renderBlocksToHTML` 과 **같은 정규화**를 거쳐야 하므로 여기서도
|
|
64
|
+
* `upgradeSnapshot` 을 적용한다 — 빠뜨리면 모르는 kind 가 exhaustive 분기로
|
|
65
|
+
* 떨어져 빈 문자열이 되고, 블록이 조용히 사라진다.
|
|
66
|
+
*/
|
|
67
|
+
export declare function renderBlockToHTML(snapshot: BlockSnapshot, options?: Pick<RenderHtmlOptions, 'blockIds'>): string;
|
|
68
|
+
//# sourceMappingURL=render-string.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-string.d.ts","sourceRoot":"","sources":["../../src/core/render-string.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,UAAU,CAAC;AAqB5D,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,6CAA6C;IAC7C,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,aAAa,EAAE,EACnC,OAAO,GAAE,iBAAsB,GAC9B,MAAM,CAQR;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,aAAa,EACvB,OAAO,GAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAM,GAChD,MAAM,CAER"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BlockSnapshot 스키마 버전과 마이그레이션 진입점.
|
|
3
|
+
*
|
|
4
|
+
* 이 모듈은 **DOM 을 전혀 참조하지 않는다**. `document` / `window` 가 없는
|
|
5
|
+
* 런타임(Cloudflare workerd, Node, Deno) 에서 그대로 import 할 수 있어야 하므로
|
|
6
|
+
* blocks.ts 로부터는 타입만 가져온다.
|
|
7
|
+
*/
|
|
8
|
+
import type { BlockSnapshot } from './blocks.js';
|
|
9
|
+
/**
|
|
10
|
+
* 현재 직렬화 스키마 버전.
|
|
11
|
+
*
|
|
12
|
+
* `serializeBlock()` 은 항상 이 값을 `snapshot.version` 에 기록한다.
|
|
13
|
+
*
|
|
14
|
+
* ## 버전 변경 정책
|
|
15
|
+
*
|
|
16
|
+
* 버전을 올리는 경우 — 저장된 데이터를 그대로 읽으면 **의미가 달라지는** 변경:
|
|
17
|
+
* - `kind` 의 삭제 또는 의미 변경
|
|
18
|
+
* - 기존 `attrs` 필드의 삭제 · 이름 변경 · 타입 변경 · 단위 변경
|
|
19
|
+
* - `html` 필드가 담는 내용의 범위 변경 (예: 인라인 컨텐츠 → 전체 outerHTML)
|
|
20
|
+
*
|
|
21
|
+
* 버전을 올리지 않는 경우 — 구버전 데이터를 그대로 읽어도 안전한 변경:
|
|
22
|
+
* - 새로운 `kind` 추가 (구버전 데이터에는 등장하지 않음)
|
|
23
|
+
* - 새로운 optional `attrs` 필드 추가
|
|
24
|
+
* - 렌더 결과의 시각적 변경 (CSS · 마크업 세부)
|
|
25
|
+
*
|
|
26
|
+
* 버전이 올라가면 {@link upgradeSnapshots} 에 해당 단계의 변환을 추가하고,
|
|
27
|
+
* 이 상수를 올린다. 읽기 경로(`AerizViewer.setBlocks` /
|
|
28
|
+
* `renderBlocksToHTML`) 는 모두 upgrade 를 거치도록 유지한다.
|
|
29
|
+
*/
|
|
30
|
+
export declare const SNAPSHOT_VERSION = 1;
|
|
31
|
+
/**
|
|
32
|
+
* 스냅샷의 스키마 버전. `version` 이 없으면 버전 필드 도입 이전 데이터이므로
|
|
33
|
+
* 1 로 간주한다 (1.0.x 까지의 출력이 여기 해당한다).
|
|
34
|
+
*/
|
|
35
|
+
export declare function snapshotVersionOf(snapshot: BlockSnapshot): number;
|
|
36
|
+
/**
|
|
37
|
+
* 저장된 스냅샷을 현재 스키마로 정규화한다.
|
|
38
|
+
*
|
|
39
|
+
* 읽기 경로의 단일 관문이다. 지금(v1) 은 실질 변환이 없고 다음만 보정한다.
|
|
40
|
+
* - `version` 누락 → 1 로 채움
|
|
41
|
+
* - 모르는 `kind` → `'unknown'` 으로 강등 (미래 버전으로 저장된 글을 구버전
|
|
42
|
+
* 클라이언트가 열었을 때 렌더가 통째로 깨지는 대신 해당 블록만 원문 유지)
|
|
43
|
+
* - `html` 누락 → 빈 문자열
|
|
44
|
+
*
|
|
45
|
+
* 버전이 올라가면 여기에 단계별 변환(1→2, 2→3 …) 을 순차 적용하는 형태로
|
|
46
|
+
* 확장한다.
|
|
47
|
+
*/
|
|
48
|
+
export declare function upgradeSnapshots(input: readonly BlockSnapshot[]): BlockSnapshot[];
|
|
49
|
+
/** 단일 스냅샷 정규화. {@link upgradeSnapshots} 의 단위 연산. */
|
|
50
|
+
export declare function upgradeSnapshot(snapshot: BlockSnapshot): BlockSnapshot;
|
|
51
|
+
//# sourceMappingURL=snapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/core/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAa,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAGjE;AAoBD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,aAAa,EAAE,GAC9B,aAAa,EAAE,CAEjB;AAED,oDAAoD;AACpD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa,CAatE"}
|
package/dist-types/index.d.ts
CHANGED
|
@@ -1,11 +1,20 @@
|
|
|
1
|
-
import
|
|
2
|
-
export { AerizEditor } from './core/AerizEditor';
|
|
3
|
-
export type { EditorState, EditorStateListener, InlineState, } from './core/AerizEditor';
|
|
4
|
-
export { AerizViewer } from './core/AerizViewer';
|
|
5
|
-
export type { ViewerOptions } from './core/AerizViewer';
|
|
6
|
-
export { ALL_INLINE_MARKS, BLOCK_ID_ATTR, BLOCK_TYPES, BLOCK_TYPE_BY_KIND, BlockIdRegistry, applyBlockInlineStyles, assignMissingIds, classifyBlockElement, extractInlineContent, fillInlineContent, findBlockFrom, getBlockLabel, isElementBlank, listBlocks, normalizeContent, placeCaretAtStart, readBlockStyleTheme, renderBlock, renderBlocks, serializeBlock, serializeBlocks, stripEditorOnlyAttrs, } from './core/blocks';
|
|
7
|
-
export type { BlockStyleTheme } from './core/blocks';
|
|
8
|
-
export type { Block, BlockAttrs, BlockAttrsByKind, BlockIdResolver, BlockKind, BlockMatch, BlockSnapshot, BlockType, BlockquoteAttrs, BulletListAttrs, ClassifyResult, CodeBlockAttrs, FileAttrs, HeadingAttrs, HeadingLevel, HrAttrs, ImageAttrs, ImportedHtmlAttrs, InlineMarkName, LinkCardAttrs, OrderedListAttrs, ParagraphAttrs, Snapshot, TableAttrs, UnknownAttrs, YoutubeAttrs, } from './core/blocks';
|
|
9
|
-
export type { EditorOptions, ToolbarConfig, ToolbarItem, ToolbarItemName, } from './types';
|
|
10
|
-
export { DEFAULT_TOOLBAR } from './types';
|
|
1
|
+
// (CSS 부수 효과 import 는 타입 선언에서 제거됨 — scripts/strip-css-imports.mjs)
|
|
2
|
+
export { AerizEditor } from './core/AerizEditor.js';
|
|
3
|
+
export type { EditorState, EditorStateListener, InlineState, } from './core/AerizEditor.js';
|
|
4
|
+
export { AerizViewer } from './core/AerizViewer.js';
|
|
5
|
+
export type { ViewerOptions } from './core/AerizViewer.js';
|
|
6
|
+
export { ALIGN_CLASS_BY_VALUE, ALL_INLINE_MARKS, BLOCK_ID_ATTR, BLOCK_TYPES, BLOCK_TYPE_BY_KIND, BlockIdRegistry, applyBlockClassNames, applyBlockInlineStyles, assignMissingIds, classifyBlockElement, extractInlineContent, fillInlineContent, findBlockFrom, getBlockLabel, isElementBlank, listBlocks, normalizeContent, placeCaretAtStart, readBlockStyleTheme, renderBlock, renderBlocks, serializeBlock, serializeBlocks, restoreAlignFromClasses, stripEditorOnlyAttrs, stripEditorOnlyNodes, } from './core/blocks.js';
|
|
7
|
+
export type { BlockStyleTheme } from './core/blocks.js';
|
|
8
|
+
export type { Block, BlockAttrs, BlockAttrsByKind, BlockIdResolver, BlockKind, BlockMatch, BlockSnapshot, BlockType, BlockquoteAttrs, BulletListAttrs, ClassifyResult, CodeBlockAttrs, FileAttrs, HeadingAttrs, HeadingLevel, HrAttrs, ImageAttrs, ImportedHtmlAttrs, InlineMarkName, LinkCardAttrs, OrderedListAttrs, ParagraphAttrs, Snapshot, TableAttrs, UnknownAttrs, YoutubeAttrs, } from './core/blocks.js';
|
|
9
|
+
export type { EditorOptions, HtmlStyleMode, SerializeHtmlOptions, ToolbarConfig, ToolbarItem, ToolbarItemName, } from './types/index.js';
|
|
10
|
+
export { DEFAULT_TOOLBAR } from './types/index.js';
|
|
11
|
+
export { SNAPSHOT_VERSION, snapshotVersionOf, upgradeSnapshot, upgradeSnapshots, } from './core/snapshot.js';
|
|
12
|
+
export { renderBlockToHTML, renderBlocksToHTML } from './core/render-string.js';
|
|
13
|
+
export type { RenderHtmlOptions } from './core/render-string.js';
|
|
14
|
+
export { blocksToMarkdown } from './core/markdown-export.js';
|
|
15
|
+
export type { MarkdownOptions } from './core/markdown-export.js';
|
|
16
|
+
export { blocksToPlainText } from './core/plain-text.js';
|
|
17
|
+
export type { PlainTextOptions } from './core/plain-text.js';
|
|
18
|
+
export { decodeEntities, escapeAttr, escapeHtml, parseHtmlFragment, serializeNodes, textOf, textWithBlockBreaks, } from './core/html-mini.js';
|
|
19
|
+
export type { HtmlElementNode, HtmlNode, HtmlText } from './core/html-mini.js';
|
|
11
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,cAAc,EACd,eAAe,EACf,oBAAoB,GACrB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,YAAY,EACV,KAAK,EACL,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,UAAU,EACV,aAAa,EACb,SAAS,EACT,eAAe,EACf,eAAe,EACf,cAAc,EACd,cAAc,EACd,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,YAAY,GACb,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,eAAe,GAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,cAAc,EACd,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,YAAY,EACV,KAAK,EACL,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,UAAU,EACV,aAAa,EACb,SAAS,EACT,eAAe,EACf,eAAe,EACf,cAAc,EACd,cAAc,EACd,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,YAAY,GACb,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,eAAe,GAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAQ1C,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EACL,cAAc,EACd,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,MAAM,EACN,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@aeriz/wysiwyg/server` — DOM 없는 런타임용 진입점.
|
|
3
|
+
*
|
|
4
|
+
* 이 모듈은 **CSS 를 import 하지 않으며**, import 그래프 전체가
|
|
5
|
+
* `document` / `window` 를 참조하지 않는다. Cloudflare Workers(workerd) ·
|
|
6
|
+
* Node · Deno · Bun 에서 그대로 쓸 수 있다.
|
|
7
|
+
*
|
|
8
|
+
* 브라우저용 기본 진입점(`@aeriz/wysiwyg`) 은 스타일시트를 부수 효과로
|
|
9
|
+
* 불러오고 에디터/뷰어가 DOM 을 직접 만들기 때문에 서버에서 쓸 수 없다.
|
|
10
|
+
* 저장된 스냅샷을 HTML · 마크다운 · 평문으로 바꾸는 일만 필요하면 여기서
|
|
11
|
+
* 가져오면 된다.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* // Cloudflare Worker — 저장된 글을 HTML 로 재렌더
|
|
15
|
+
* import { renderBlocksToHTML, blocksToPlainText } from '@aeriz/wysiwyg/server';
|
|
16
|
+
*
|
|
17
|
+
* export default {
|
|
18
|
+
* async fetch(req, env) {
|
|
19
|
+
* const post = await env.DB.get('post:1', 'json');
|
|
20
|
+
* return new Response(
|
|
21
|
+
* renderBlocksToHTML(post.blocks, { wrapper: 'content' }),
|
|
22
|
+
* { headers: { 'content-type': 'text/html; charset=utf-8' } },
|
|
23
|
+
* );
|
|
24
|
+
* },
|
|
25
|
+
* };
|
|
26
|
+
*/
|
|
27
|
+
export { renderBlockToHTML, renderBlocksToHTML, } from '../core/render-string.js';
|
|
28
|
+
export type { RenderHtmlOptions } from '../core/render-string.js';
|
|
29
|
+
export { blocksToMarkdown } from '../core/markdown-export.js';
|
|
30
|
+
export type { MarkdownOptions } from '../core/markdown-export.js';
|
|
31
|
+
export { blocksToPlainText } from '../core/plain-text.js';
|
|
32
|
+
export type { PlainTextOptions } from '../core/plain-text.js';
|
|
33
|
+
export { SNAPSHOT_VERSION, snapshotVersionOf, upgradeSnapshot, upgradeSnapshots, } from '../core/snapshot.js';
|
|
34
|
+
export type { Block, BlockAttrs, BlockAttrsByKind, BlockKind, BlockSnapshot, BlockquoteAttrs, BulletListAttrs, CodeBlockAttrs, FileAttrs, HeadingAttrs, HeadingLevel, HrAttrs, ImageAttrs, ImportedHtmlAttrs, InlineMarkName, LinkCardAttrs, OrderedListAttrs, ParagraphAttrs, Snapshot, TableAttrs, UnknownAttrs, YoutubeAttrs, } from '../core/blocks.js';
|
|
35
|
+
export { decodeEntities, escapeAttr, escapeHtml, parseHtmlFragment, serializeNodes, textOf, textWithBlockBreaks, } from '../core/html-mini.js';
|
|
36
|
+
export type { HtmlElementNode, HtmlNode, HtmlText } from '../core/html-mini.js';
|
|
37
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EACL,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAI1B,YAAY,EACV,KAAK,EACL,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,EACd,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,YAAY,GACb,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EACL,cAAc,EACd,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,MAAM,EACN,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -4,6 +4,22 @@ export interface ToolbarConfig {
|
|
|
4
4
|
items: ToolbarItem[];
|
|
5
5
|
sticky?: boolean;
|
|
6
6
|
}
|
|
7
|
+
/**
|
|
8
|
+
* HTML 출력의 스타일 전략.
|
|
9
|
+
*
|
|
10
|
+
* - `'inline'` — 테마 색을 블록 인라인 style 에 베이크. 스타일시트 없이도
|
|
11
|
+
* 에디터와 같은 시각으로 렌더된다 (기본값).
|
|
12
|
+
* - `'class'` — 테마 스타일을 베이크하지 않고 `aw-block-*` / `aw-align-*`
|
|
13
|
+
* 클래스만 남긴다. `style` 속성을 제거하는 서버 sanitizer 를 통과해야 할 때
|
|
14
|
+
* 쓴다. 출력은 `aeriz-wysiwyg.min.css` 가 로드된 페이지의
|
|
15
|
+
* `.aeriz-wysiwyg > .aw-content` 안에 넣는 것을 전제로 한다.
|
|
16
|
+
*/
|
|
17
|
+
export type HtmlStyleMode = 'inline' | 'class';
|
|
18
|
+
/** `getHTML()` 호출 단위 옵션. */
|
|
19
|
+
export interface SerializeHtmlOptions {
|
|
20
|
+
/** 스타일 전략. 미지정 시 인스턴스 기본값을 따른다. */
|
|
21
|
+
styles?: HtmlStyleMode;
|
|
22
|
+
}
|
|
7
23
|
export interface EditorOptions {
|
|
8
24
|
element: HTMLElement;
|
|
9
25
|
initialHTML?: string;
|
|
@@ -12,6 +28,11 @@ export interface EditorOptions {
|
|
|
12
28
|
theme?: 'light' | 'dark';
|
|
13
29
|
/** UI 언어. 'en' / 'ko' / 'ja' / 'zh'. 기본 'ko'. */
|
|
14
30
|
locale?: 'en' | 'ko' | 'ja' | 'zh';
|
|
31
|
+
/**
|
|
32
|
+
* `getHTML()` 과 `onChange` 가 내보내는 HTML 의 스타일 전략. 기본 `'inline'`.
|
|
33
|
+
* `getHTML({ styles })` 로 호출 단위 재정의 가능.
|
|
34
|
+
*/
|
|
35
|
+
htmlStyles?: HtmlStyleMode;
|
|
15
36
|
onChange?: (html: string) => void;
|
|
16
37
|
/**
|
|
17
38
|
* 직접 업로드 핸들러. 우선 적용된다. 미설정 + `imageUploadUrl` 만 있을 때는
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,GAAG,CAAC;AAEhD,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,MAAM,GACN,WAAW,GACX,YAAY,GACZ,UAAU,GACV,MAAM,GACN,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,OAAO,GACP,iBAAiB,GACjB,OAAO,GACP,QAAQ,GACR,WAAW,GACX,UAAU,GACV,YAAY,GACZ,aAAa,GACb,YAAY,GACZ,WAAW,GACX,MAAM,GACN,OAAO,GACP,OAAO,GACP,IAAI,GACJ,aAAa,CAAC;AAElB,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,aAAa,GAAG,KAAK,CAAC;IAChC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,iDAAiD;IACjD,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,eAAe,EAAE,aAiC7B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,GAAG,CAAC;AAEhD,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,MAAM,GACN,WAAW,GACX,YAAY,GACZ,UAAU,GACV,MAAM,GACN,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,OAAO,GACP,iBAAiB,GACjB,OAAO,GACP,QAAQ,GACR,WAAW,GACX,UAAU,GACV,YAAY,GACZ,aAAa,GACb,YAAY,GACZ,WAAW,GACX,MAAM,GACN,OAAO,GACP,OAAO,GACP,IAAI,GACJ,aAAa,CAAC;AAElB,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE/C,4BAA4B;AAC5B,MAAM,WAAW,oBAAoB;IACnC,mCAAmC;IACnC,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,aAAa,GAAG,KAAK,CAAC;IAChC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,iDAAiD;IACjD,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACnC;;;OAGG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,eAAe,EAAE,aAiC7B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BlockAttrs, BlockKind } from '../core/blocks';
|
|
1
|
+
import type { BlockAttrs, BlockKind } from '../core/blocks.js';
|
|
2
2
|
export declare const COLOR_PALETTE: string[];
|
|
3
3
|
export declare function openColorPicker(anchor: HTMLElement, onPick: (color: string | null) => void, recents?: ReadonlyArray<string>): void;
|
|
4
4
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popovers.d.ts","sourceRoot":"","sources":["../../src/ui/popovers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"popovers.d.ts","sourceRoot":"","sources":["../../src/ui/popovers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAmB5D,eAAO,MAAM,aAAa,UAKzB,CAAC;AAEF,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,EACtC,OAAO,GAAE,aAAa,CAAC,MAAM,CAAM,GAClC,IAAI,CA6FN;AAID;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,GAAG,YAAY,GAAG,gBAAgB,CAAC;IAClD,KAAK,EAAE,UAAU,CAAC;CACnB;AAiHD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,GACxC,IAAI,CA4CN;AAID,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,KAAK,IAAI,GAC/D,IAAI,CA+BN;AAID,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,EAC1C,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CAsDN;AAID,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,EAC5C,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CA+BN;AAID,MAAM,MAAM,eAAe,GACvB,UAAU,GACV,UAAU,GACV,SAAS,GACT,UAAU,GACV,WAAW,GACX,WAAW,CAAC;AAiBhB;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,GACxC,IAAI,CA2BN;AAID,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,EACxC,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CA+BN;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAiB/E;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,GACxC,IAAI,CAoGN"}
|
package/package.json
CHANGED
|
@@ -1,58 +1,213 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@aeriz/wysiwyg",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "WYSIWYG rich text editor",
|
|
5
|
-
"author": "code-repositories",
|
|
6
|
-
"homepage": "https://aeriz.dev",
|
|
7
|
-
"license": "Apache-2.0",
|
|
8
|
-
"type": "module",
|
|
9
|
-
"main": "./dist/aeriz-wysiwyg.
|
|
10
|
-
"module": "./dist/aeriz-wysiwyg.esm.js",
|
|
11
|
-
"browser": "./dist/aeriz-wysiwyg.min.js",
|
|
12
|
-
"types": "./dist-types/index.d.ts",
|
|
13
|
-
"unpkg": "./dist/aeriz-wysiwyg.min.js",
|
|
14
|
-
"jsdelivr": "./dist/aeriz-wysiwyg.min.js",
|
|
15
|
-
"exports": {
|
|
16
|
-
".": {
|
|
17
|
-
"
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
"
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
"
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@aeriz/wysiwyg",
|
|
3
|
+
"version": "1.0.3",
|
|
4
|
+
"description": "WYSIWYG rich text editor",
|
|
5
|
+
"author": "code-repositories",
|
|
6
|
+
"homepage": "https://aeriz.dev",
|
|
7
|
+
"license": "Apache-2.0",
|
|
8
|
+
"type": "module",
|
|
9
|
+
"main": "./dist/aeriz-wysiwyg.min.cjs",
|
|
10
|
+
"module": "./dist/aeriz-wysiwyg.esm.js",
|
|
11
|
+
"browser": "./dist/aeriz-wysiwyg.min.js",
|
|
12
|
+
"types": "./dist-types/index.d.ts",
|
|
13
|
+
"unpkg": "./dist/aeriz-wysiwyg.min.js",
|
|
14
|
+
"jsdelivr": "./dist/aeriz-wysiwyg.min.js",
|
|
15
|
+
"exports": {
|
|
16
|
+
".": {
|
|
17
|
+
"import": {
|
|
18
|
+
"types": "./dist-types/index.d.ts",
|
|
19
|
+
"default": "./dist/aeriz-wysiwyg.esm.js"
|
|
20
|
+
},
|
|
21
|
+
"require": {
|
|
22
|
+
"types": "./dist-types/cjs/index.d.cts",
|
|
23
|
+
"default": "./dist/aeriz-wysiwyg.min.cjs"
|
|
24
|
+
},
|
|
25
|
+
"default": "./dist/aeriz-wysiwyg.min.js"
|
|
26
|
+
},
|
|
27
|
+
"./server": {
|
|
28
|
+
"import": {
|
|
29
|
+
"types": "./dist-types/server/index.d.ts",
|
|
30
|
+
"default": "./dist/server.js"
|
|
31
|
+
},
|
|
32
|
+
"require": {
|
|
33
|
+
"types": "./dist-types/cjs/server/index.d.cts",
|
|
34
|
+
"default": "./dist/server.cjs"
|
|
35
|
+
},
|
|
36
|
+
"default": "./dist/server.js"
|
|
37
|
+
},
|
|
38
|
+
"./adapter": {
|
|
39
|
+
"import": {
|
|
40
|
+
"types": "./dist-types/adapters/shared.d.ts",
|
|
41
|
+
"default": "./dist/adapters/shared.js"
|
|
42
|
+
},
|
|
43
|
+
"require": {
|
|
44
|
+
"types": "./dist-types/cjs/adapters/shared.d.cts",
|
|
45
|
+
"default": "./dist/adapters/shared.cjs"
|
|
46
|
+
},
|
|
47
|
+
"default": "./dist/adapters/shared.js"
|
|
48
|
+
},
|
|
49
|
+
"./react": {
|
|
50
|
+
"import": {
|
|
51
|
+
"types": "./dist-types/adapters/react.d.ts",
|
|
52
|
+
"default": "./dist/adapters/react.js"
|
|
53
|
+
},
|
|
54
|
+
"require": {
|
|
55
|
+
"types": "./dist-types/cjs/adapters/react.d.cts",
|
|
56
|
+
"default": "./dist/adapters/react.cjs"
|
|
57
|
+
},
|
|
58
|
+
"default": "./dist/adapters/react.js"
|
|
59
|
+
},
|
|
60
|
+
"./vue": {
|
|
61
|
+
"import": {
|
|
62
|
+
"types": "./dist-types/adapters/vue.d.ts",
|
|
63
|
+
"default": "./dist/adapters/vue.js"
|
|
64
|
+
},
|
|
65
|
+
"require": {
|
|
66
|
+
"types": "./dist-types/cjs/adapters/vue.d.cts",
|
|
67
|
+
"default": "./dist/adapters/vue.cjs"
|
|
68
|
+
},
|
|
69
|
+
"default": "./dist/adapters/vue.js"
|
|
70
|
+
},
|
|
71
|
+
"./vue2": {
|
|
72
|
+
"import": {
|
|
73
|
+
"types": "./dist-types/adapters/vue2.d.ts",
|
|
74
|
+
"default": "./dist/adapters/vue2.js"
|
|
75
|
+
},
|
|
76
|
+
"require": {
|
|
77
|
+
"types": "./dist-types/cjs/adapters/vue2.d.cts",
|
|
78
|
+
"default": "./dist/adapters/vue2.cjs"
|
|
79
|
+
},
|
|
80
|
+
"default": "./dist/adapters/vue2.js"
|
|
81
|
+
},
|
|
82
|
+
"./svelte": {
|
|
83
|
+
"import": {
|
|
84
|
+
"types": "./dist-types/adapters/svelte.d.ts",
|
|
85
|
+
"default": "./dist/adapters/svelte.js"
|
|
86
|
+
},
|
|
87
|
+
"require": {
|
|
88
|
+
"types": "./dist-types/cjs/adapters/svelte.d.cts",
|
|
89
|
+
"default": "./dist/adapters/svelte.cjs"
|
|
90
|
+
},
|
|
91
|
+
"default": "./dist/adapters/svelte.js"
|
|
92
|
+
},
|
|
93
|
+
"./jquery": {
|
|
94
|
+
"import": {
|
|
95
|
+
"types": "./dist-types/adapters/jquery.d.ts",
|
|
96
|
+
"default": "./dist/adapters/jquery.js"
|
|
97
|
+
},
|
|
98
|
+
"require": {
|
|
99
|
+
"types": "./dist-types/cjs/adapters/jquery.d.cts",
|
|
100
|
+
"default": "./dist/adapters/jquery.cjs"
|
|
101
|
+
},
|
|
102
|
+
"default": "./dist/adapters/jquery.js"
|
|
103
|
+
},
|
|
104
|
+
"./wc": {
|
|
105
|
+
"import": {
|
|
106
|
+
"types": "./dist-types/adapters/wc.d.ts",
|
|
107
|
+
"default": "./dist/adapters/wc.js"
|
|
108
|
+
},
|
|
109
|
+
"require": {
|
|
110
|
+
"types": "./dist-types/cjs/adapters/wc.d.cts",
|
|
111
|
+
"default": "./dist/adapters/wc.cjs"
|
|
112
|
+
},
|
|
113
|
+
"default": "./dist/adapters/wc.js"
|
|
114
|
+
},
|
|
115
|
+
"./cdn/wc": "./dist/aeriz-wysiwyg-wc.min.js",
|
|
116
|
+
"./cdn/jquery": "./dist/aeriz-wysiwyg-jquery.min.js",
|
|
117
|
+
"./cdn/adapter": "./dist/aeriz-wysiwyg-adapter.min.js",
|
|
118
|
+
"./angular": {
|
|
119
|
+
"types": "./angular/index.ts",
|
|
120
|
+
"default": "./angular/index.ts"
|
|
121
|
+
},
|
|
122
|
+
"./angular/*": "./angular/*",
|
|
123
|
+
"./dist/aeriz-wysiwyg.min.js": "./dist/aeriz-wysiwyg.min.js",
|
|
124
|
+
"./dist/aeriz-wysiwyg.min.css": "./dist/aeriz-wysiwyg.min.css",
|
|
125
|
+
"./style.css": "./dist/aeriz-wysiwyg.min.css"
|
|
126
|
+
},
|
|
127
|
+
"typesVersions": {
|
|
128
|
+
"*": {
|
|
129
|
+
"server": [
|
|
130
|
+
"./dist-types/server/index.d.ts"
|
|
131
|
+
],
|
|
132
|
+
"adapter": [
|
|
133
|
+
"./dist-types/adapters/shared.d.ts"
|
|
134
|
+
],
|
|
135
|
+
"react": [
|
|
136
|
+
"./dist-types/adapters/react.d.ts"
|
|
137
|
+
],
|
|
138
|
+
"vue": [
|
|
139
|
+
"./dist-types/adapters/vue.d.ts"
|
|
140
|
+
],
|
|
141
|
+
"vue2": [
|
|
142
|
+
"./dist-types/adapters/vue2.d.ts"
|
|
143
|
+
],
|
|
144
|
+
"svelte": [
|
|
145
|
+
"./dist-types/adapters/svelte.d.ts"
|
|
146
|
+
],
|
|
147
|
+
"jquery": [
|
|
148
|
+
"./dist-types/adapters/jquery.d.ts"
|
|
149
|
+
],
|
|
150
|
+
"wc": [
|
|
151
|
+
"./dist-types/adapters/wc.d.ts"
|
|
152
|
+
]
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
"files": [
|
|
156
|
+
"dist",
|
|
157
|
+
"dist-types",
|
|
158
|
+
"angular",
|
|
159
|
+
"README.md",
|
|
160
|
+
"LICENSE"
|
|
161
|
+
],
|
|
162
|
+
"sideEffects": [
|
|
163
|
+
"**/*.css",
|
|
164
|
+
"./dist/adapters/wc.js",
|
|
165
|
+
"./dist/adapters/wc.cjs",
|
|
166
|
+
"./dist/adapters/jquery.js",
|
|
167
|
+
"./dist/adapters/jquery.cjs"
|
|
168
|
+
],
|
|
169
|
+
"publishConfig": {
|
|
170
|
+
"access": "public"
|
|
171
|
+
},
|
|
172
|
+
"keywords": [
|
|
173
|
+
"wysiwyg",
|
|
174
|
+
"editor",
|
|
175
|
+
"rich-text",
|
|
176
|
+
"korean",
|
|
177
|
+
"contenteditable",
|
|
178
|
+
"react",
|
|
179
|
+
"vue",
|
|
180
|
+
"svelte",
|
|
181
|
+
"angular",
|
|
182
|
+
"jquery",
|
|
183
|
+
"web-component"
|
|
184
|
+
],
|
|
185
|
+
"peerDependencies": {
|
|
186
|
+
"@angular/core": ">=14",
|
|
187
|
+
"@angular/forms": ">=14",
|
|
188
|
+
"jquery": ">=3",
|
|
189
|
+
"react": ">=16.8",
|
|
190
|
+
"svelte": ">=3",
|
|
191
|
+
"vue": "^2.6.0 || >=3.0.0"
|
|
192
|
+
},
|
|
193
|
+
"peerDependenciesMeta": {
|
|
194
|
+
"@angular/core": {
|
|
195
|
+
"optional": true
|
|
196
|
+
},
|
|
197
|
+
"@angular/forms": {
|
|
198
|
+
"optional": true
|
|
199
|
+
},
|
|
200
|
+
"jquery": {
|
|
201
|
+
"optional": true
|
|
202
|
+
},
|
|
203
|
+
"react": {
|
|
204
|
+
"optional": true
|
|
205
|
+
},
|
|
206
|
+
"svelte": {
|
|
207
|
+
"optional": true
|
|
208
|
+
},
|
|
209
|
+
"vue": {
|
|
210
|
+
"optional": true
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|