Skip to content

Labs and Extensions

유용태 edited this page Jun 18, 2026 · 2 revisions

Labs and Extensions

이 페이지는 json-document core 주변의 공식 extension package, lab app, lab extension 목록이다.

Core API는 @interactive-os/json-document가 제공하는 안정화된 document surface다. Extension package는 그 core 위에서 특정 제품 기능을 더 쉽게 만들기 위한 별도 package다. Lab은 아직 실험, 검증, 데모, product fit 확인을 위해 둔 공간이다.

상태 기준

상태 위치 의미
official packages/* core 위에 얹는 별도 package
lab app apps/*-lab 특정 extension이나 workflow를 확인하는 앱
lab labs/extensions/* 승격 전 실험 extension

labs는 core 1.x 하위 호환성 보장 범위에 포함되지 않는다. Lab에서 검증된 기능은 이후 공식 extension package나 core API로 승격될 수 있다.

빠른 찾기

찾는 기능 먼저 볼 범주
여러 값 수정, 검색/치환, 기본값 적용 편집과 변환
array item, outline, grouping, drag/drop 구조와 collection
schema 기반 form, field descriptor, draft Schema와 form
comment, proposed change, protected range Review와 collaboration
저장, dirty state, autosave, patch log Persistence와 history
clipboard, id resolver, pointer/reference Adapter와 infrastructure
실제 화면에서 workflow 확인 Lab apps

편집과 변환

값을 직접 바꾸거나, 여러 값을 한 번에 변환하거나, text/number field에 제품 command를 얹는 기능이다.

Status Package 위치 용도
official @interactive-os/json-document-bulk-edit packages/bulk-edit JSONPath 기반 일괄 편집
official @interactive-os/json-document-search-replace packages/search-replace text field search/replace
official @interactive-os/json-document-snippets packages/snippets reusable JSON payload insertion
lab @interactive-os/json-document-apply-defaults labs/extensions/apply-defaults object에 누락된 기본값 적용
lab @interactive-os/json-document-batch-update labs/extensions/batch-update 선택 item의 특정 field 일괄 변경
lab @interactive-os/json-document-calculated-fields labs/extensions/calculated-fields host-calculated field 동기화
lab @interactive-os/json-document-change-case labs/extensions/change-case 문자열 case/whitespace 변환
lab @interactive-os/json-document-clear-contents labs/extensions/clear-contents schema 기반 빈 값으로 field reset
lab @interactive-os/json-document-convert-type labs/extensions/convert-type string/number/boolean field type 변환
lab @interactive-os/json-document-fill-blanks labs/extensions/fill-blanks 비어 있는 slot만 채우기
lab @interactive-os/json-document-fill-down labs/extensions/fill-down 마지막 non-empty 값을 아래 빈 값으로 전파
lab @interactive-os/json-document-fill-series labs/extensions/fill-series series/fill propagation
lab @interactive-os/json-document-generate-slug labs/extensions/generate-slug 문자열에서 URL-safe slug 생성
lab @interactive-os/json-document-increment-number labs/extensions/increment-number numeric field 증가/감소
lab @interactive-os/json-document-join-text labs/extensions/join-text array를 문자열 field로 join
lab @interactive-os/json-document-pad-text labs/extensions/pad-text 문자열 minimum length padding
lab @interactive-os/json-document-round labs/extensions/round round/floor/ceil number transform
lab @interactive-os/json-document-split-text labs/extensions/split-text string을 array item으로 split
lab @interactive-os/json-document-toggle-option labs/extensions/toggle-option array set 안의 option toggle
lab @interactive-os/json-document-toggle-value labs/extensions/toggle-value field 값을 toggle 또는 advance
lab @interactive-os/json-document-trim-text labs/extensions/trim-text 문자열 max length trim

구조와 collection

Array item, outline node, grouped block, layer, sparse record처럼 JSON 구조 자체를 편집하는 기능이다.

Status Package 위치 용도
official @interactive-os/json-document-collection packages/collection ordered array item command
official @interactive-os/json-document-grouping packages/grouping 구조적 group/ungroup
official @interactive-os/json-document-outline packages/outline outline tree와 구조 편집
lab @interactive-os/json-document-convert-block-type labs/extensions/convert-block-type 블록 type 변환
lab @interactive-os/json-document-dedupe labs/extensions/dedupe array item 중복 제거
lab @interactive-os/json-document-drag-drop labs/extensions/drag-drop drag/drop command planning
lab @interactive-os/json-document-grid-range labs/extensions/grid-range sparse-record 기반 grid range 편집
lab @interactive-os/json-document-layer-order labs/extensions/layer-order layer ordering
lab @interactive-os/json-document-limit-items labs/extensions/limit-items array item 개수 제한
lab @interactive-os/json-document-move-selected labs/extensions/move-selected 연속 선택 item 이동
lab @interactive-os/json-document-paste-cells labs/extensions/paste-cells 2D matrix를 rectangular cells에 paste
lab @interactive-os/json-document-renumber-items labs/extensions/renumber-items array position을 order field에 동기화
lab @interactive-os/json-document-sort-items labs/extensions/sort-items array item sort/reverse
lab @interactive-os/json-document-sparse-record labs/extensions/sparse-record sparse record entry editing
lab @interactive-os/json-document-swap-items labs/extensions/swap-items array item 두 개 교환
lab @interactive-os/json-document-wrap-selection labs/extensions/wrap-selection 선택 item wrap/unwrap

Schema와 form

Schema를 UI affordance, form draft, field descriptor로 연결하는 기능이다.

Status Package 위치 용도
official @interactive-os/json-document-form-draft packages/form-draft commit 전 임시 invalid form input 관리
official @interactive-os/json-document-schema-form packages/schema-form schema 기반 field descriptor

Review와 collaboration

문서 위에 review, comment, proposed change, protected range, collaborator cursor를 얹는 기능이다.

Status Package 위치 용도
official @interactive-os/json-document-comments packages/comments document anchor 기반 review comment
official @interactive-os/json-document-proposed-changes packages/proposed-changes 제안 변경 review workflow
official @interactive-os/json-document-protected-ranges packages/protected-ranges 보호 범위 guard
lab @interactive-os/json-document-live-cursors labs/extensions/live-cursors remote collaborator cursor tracking

Persistence와 history

저장, dirty state, autosave, checkpoint, patch log처럼 document lifecycle을 다루는 기능이다.

Status Package 위치 용도
official @interactive-os/json-document-dirty-state packages/dirty-state 변경 여부 추적
official @interactive-os/json-document-patch-log packages/patch-log patch 기록과 replay
official @interactive-os/json-document-patch-preview packages/patch-preview patch dry-run과 preview
official @interactive-os/json-document-persist-web packages/persist-web browser storage persistence
lab @interactive-os/json-document-autosave labs/extensions/autosave autosave orchestration
lab @interactive-os/json-document-checkpoints labs/extensions/checkpoints checkpoint snapshot
lab @interactive-os/json-document-document-diff labs/extensions/document-diff document diff와 apply

Adapter와 infrastructure

Browser, external id, reference, clipboard, paste adapter처럼 제품 환경과 core 사이를 잇는 기능이다.

Status Package 위치 용도
official @interactive-os/json-document-clipboard-web packages/clipboard-web Web clipboard adapter
official @interactive-os/json-document-id-resolver packages/id-resolver scope와 id 기반 node 위치 확인
lab @interactive-os/json-document-bookmarks labs/extensions/bookmarks bookmark tracking
lab @interactive-os/json-document-paste-special labs/extensions/paste-special paste special workflow
lab @interactive-os/json-document-references labs/extensions/references stable reference와 backlink

Lab apps

Lab app은 특정 workflow나 extension 후보를 실제 화면에서 확인하기 위한 앱이다. Public API 기준 문서가 아니라 제품 검증 공간이다.

App 위치 확인 대상
@interactive-os/json-document-copy-review-lab apps/copy-review-lab copy/review workflow
@interactive-os/json-document-grouping-lab apps/grouping-lab grouping extension workflow
@interactive-os/json-document-proposed-changes-lab apps/proposed-changes-lab proposed changes workflow
@interactive-os/json-document-protected-ranges-lab apps/protected-ranges-lab protected ranges workflow
@interactive-os/json-document-review-comments-lab apps/review-comments-lab review comments workflow
@interactive-os/json-document-schema-form-lab apps/schema-form-lab schema form workflow
@interactive-os/json-document-snippet-composer-lab apps/snippet-composer-lab snippet composer workflow

읽는 기준

제품에서 바로 써야 하는 것은 먼저 같은 범주의 official package를 본다.

원하는 기능이 아직 lab에만 있다면 API 안정성을 전제로 두지 말고, 현재 실험 방향과 product fit을 확인하는 자료로 본다.

Core API 자체는 json-document Core API Reference를 기준으로 한다.

Clone this wiki locally