@roottale/cms-renderer-next 0.52.0 → 0.53.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 +36 -0
- package/README.md +23 -2
- package/dist/{chunk-U2IM6OCQ.js → chunk-HM5VP7SR.js} +1 -1
- package/dist/{chunk-U2IM6OCQ.js.map → chunk-HM5VP7SR.js.map} +1 -1
- package/dist/chunk-KSPPYX22.js +14 -0
- package/dist/chunk-KSPPYX22.js.map +1 -0
- package/dist/cms-public.css +38 -0
- package/dist/routes.d.ts +9 -0
- package/dist/routes.js +18 -5
- package/dist/routes.js.map +1 -1
- package/dist/section-runtime.d.ts +46 -0
- package/dist/section-runtime.js +9 -0
- package/dist/server.d.ts +5 -3
- package/dist/server.js +1679 -34
- package/dist/server.js.map +1 -1
- package/package.json +7 -23
- package/dist/before-after-client.d.ts +0 -15
- package/dist/before-after-client.js +0 -8
- package/dist/chunk-27RT6B3O.js +0 -93
- package/dist/chunk-27RT6B3O.js.map +0 -1
- package/dist/chunk-2QU4JU46.js +0 -3927
- package/dist/chunk-2QU4JU46.js.map +0 -1
- package/dist/chunk-4RQ3SEDL.js +0 -106
- package/dist/chunk-4RQ3SEDL.js.map +0 -1
- package/dist/chunk-6GQCFFHU.js +0 -540
- package/dist/chunk-6GQCFFHU.js.map +0 -1
- package/dist/chunk-H46JUIHZ.js +0 -79
- package/dist/chunk-H46JUIHZ.js.map +0 -1
- package/dist/chunk-K62RR4UQ.js +0 -53
- package/dist/chunk-K62RR4UQ.js.map +0 -1
- package/dist/chunk-LEHHSI6G.js +0 -64
- package/dist/chunk-LEHHSI6G.js.map +0 -1
- package/dist/chunk-QYNEOFL7.js +0 -418
- package/dist/chunk-QYNEOFL7.js.map +0 -1
- package/dist/chunk-U5AKACPN.js +0 -113
- package/dist/chunk-U5AKACPN.js.map +0 -1
- package/dist/chunk-UM37DOIK.js +0 -961
- package/dist/chunk-UM37DOIK.js.map +0 -1
- package/dist/chunk-YLSQAT6B.js +0 -59
- package/dist/chunk-YLSQAT6B.js.map +0 -1
- package/dist/chunk-ZL2NA3QT.js +0 -313
- package/dist/chunk-ZL2NA3QT.js.map +0 -1
- package/dist/concerns-client.d.ts +0 -12
- package/dist/concerns-client.js +0 -8
- package/dist/concerns-client.js.map +0 -1
- package/dist/contact-map-client.d.ts +0 -27
- package/dist/contact-map-client.js +0 -8
- package/dist/contact-map-client.js.map +0 -1
- package/dist/expertise-client.d.ts +0 -16
- package/dist/expertise-client.js +0 -9
- package/dist/expertise-client.js.map +0 -1
- package/dist/hero-carousel-client.d.ts +0 -52
- package/dist/hero-carousel-client.js +0 -9
- package/dist/hero-carousel-client.js.map +0 -1
- package/dist/seo-checks.d.ts +0 -87
- package/dist/seo-checks.js +0 -27
- package/dist/seo-checks.js.map +0 -1
- package/dist/site-config-DNpvlqA5.d.ts +0 -3961
- package/dist/spaces-client.d.ts +0 -10
- package/dist/spaces-client.js +0 -8
- package/dist/spaces-client.js.map +0 -1
- package/dist/team-expanding-stage-client.d.ts +0 -35
- package/dist/team-expanding-stage-client.js +0 -8
- package/dist/team-expanding-stage-client.js.map +0 -1
- package/dist/templates.css +0 -4145
- package/dist/templates.d.ts +0 -171
- package/dist/templates.js +0 -291
- package/dist/templates.js.map +0 -1
- package/dist/theme-css-vars-CD3jcEkp.d.ts +0 -7
- package/dist/ui-react-motion-client.d.ts +0 -76
- package/dist/ui-react-motion-client.js +0 -16
- package/dist/ui-react-motion-client.js.map +0 -1
- package/dist/validate.d.ts +0 -104
- package/dist/validate.js +0 -1204
- package/dist/validate.js.map +0 -1
- /package/dist/{before-after-client.js.map → section-runtime.js.map} +0 -0
package/dist/validate.d.ts
DELETED
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { Severity, MEDICAL_LINT_RULESET } from '@roottale/audit-medical';
|
|
2
|
-
import { TAX_LINT_RULESET } from '@roottale/audit-tax';
|
|
3
|
-
|
|
4
|
-
interface SectionLock {
|
|
5
|
-
move?: boolean;
|
|
6
|
-
remove?: boolean;
|
|
7
|
-
structure?: boolean;
|
|
8
|
-
}
|
|
9
|
-
type SectionLockViolationCode = "locked_section_inserted" | "locked_section_removed" | "locked_section_moved" | "locked_section_lock_changed" | "locked_section_structure_changed";
|
|
10
|
-
interface SectionLockViolation {
|
|
11
|
-
code: SectionLockViolationCode;
|
|
12
|
-
sectionId: string;
|
|
13
|
-
sectionType: string;
|
|
14
|
-
field: string;
|
|
15
|
-
}
|
|
16
|
-
declare function isSectionContentPropPath(sectionType: string, path: readonly (string | number)[]): boolean;
|
|
17
|
-
declare function findSectionLockViolations(beforeDoc: unknown, afterDoc: unknown): SectionLockViolation[];
|
|
18
|
-
declare function formatSectionLockViolations(violations: readonly SectionLockViolation[]): string;
|
|
19
|
-
|
|
20
|
-
declare const PUBLISH_GATE_RULESET = "publish-gate-2026-07-02";
|
|
21
|
-
type PublishGateError = {
|
|
22
|
-
readonly code: string;
|
|
23
|
-
readonly message: string;
|
|
24
|
-
readonly ruleId?: string;
|
|
25
|
-
readonly severity?: Severity;
|
|
26
|
-
readonly snippet?: string;
|
|
27
|
-
};
|
|
28
|
-
type PublishGateRuleset = {
|
|
29
|
-
readonly publish: typeof PUBLISH_GATE_RULESET;
|
|
30
|
-
readonly medical?: typeof MEDICAL_LINT_RULESET;
|
|
31
|
-
readonly tax?: typeof TAX_LINT_RULESET;
|
|
32
|
-
};
|
|
33
|
-
type PublishGateResult = {
|
|
34
|
-
readonly errors: readonly PublishGateError[];
|
|
35
|
-
/** 비차단 소견 (warning·info) — 발행은 통과, meta.compliance 에 기록 (2026-07-11) */
|
|
36
|
-
readonly warnings: readonly PublishGateError[];
|
|
37
|
-
readonly ruleset: PublishGateRuleset;
|
|
38
|
-
};
|
|
39
|
-
type PublishGateDoc = {
|
|
40
|
-
readonly title?: string | null;
|
|
41
|
-
readonly excerpt?: string | null;
|
|
42
|
-
readonly bodyJson: Record<string, unknown>;
|
|
43
|
-
readonly metaJson?: Record<string, unknown> | null;
|
|
44
|
-
/**
|
|
45
|
-
* seo-checks 의 slug-length 체크용(선택). 미전달 시 "" — 항상 good 판정이라
|
|
46
|
-
* 안전한 기본값(fail-open, 차단 아님).
|
|
47
|
-
*/
|
|
48
|
-
readonly slug?: string | null;
|
|
49
|
-
/**
|
|
50
|
-
* seo-checks 의 featured-image 체크용(선택). 미전달 시 false — 항상 warn
|
|
51
|
-
* 판정(경고일 뿐 warnings 도 아님, bad 만 승격되므로 무영향).
|
|
52
|
-
*/
|
|
53
|
-
readonly hasFeaturedImage?: boolean;
|
|
54
|
-
};
|
|
55
|
-
/**
|
|
56
|
-
* h1 모델 (W6-1) — 문서 타입별로 h1 소유자가 다르다:
|
|
57
|
-
* - `"page"`: 본문(hero 섹션 또는 heading level=1)이 유일 h1. 렌더러가 `doc.title`
|
|
58
|
-
* 을 h1 으로 그리지 않으므로 body h1Labels.length !== 1 → 차단.
|
|
59
|
-
* - `"post"`: 렌더러(`RootTaleBlogPost`)가 `post.title` 을 h1 으로 그린다 —
|
|
60
|
-
* 본문에 h1 이 있으면 실렌더 h1=2 가 되므로 body h1Labels.length !== 0 → 차단.
|
|
61
|
-
* `documentType` 은 fail-closed 로 필수(optional 금지) — 신규 호출부가 실수로
|
|
62
|
-
* type 분기를 빼먹으면 컴파일 에러가 나야 한다.
|
|
63
|
-
*/
|
|
64
|
-
type PublishGateOptions = {
|
|
65
|
-
readonly vertical: string | null | undefined;
|
|
66
|
-
readonly complianceFlags?: readonly string[];
|
|
67
|
-
readonly documentType: "page" | "post";
|
|
68
|
-
};
|
|
69
|
-
type PublishOverrideInput = {
|
|
70
|
-
readonly reason: string;
|
|
71
|
-
readonly userId: string;
|
|
72
|
-
readonly at: string;
|
|
73
|
-
};
|
|
74
|
-
declare function assertPublishable(doc: PublishGateDoc, options: PublishGateOptions): PublishGateResult;
|
|
75
|
-
declare function writePublishGateMeta(metaJson: Record<string, unknown> | null | undefined, result: PublishGateResult): Record<string, unknown>;
|
|
76
|
-
declare function writePublishOverrideMeta(metaJson: Record<string, unknown> | null | undefined, override: PublishOverrideInput): Record<string, unknown>;
|
|
77
|
-
declare function isComplianceBlocked(metaJson: Record<string, unknown> | null | undefined): boolean;
|
|
78
|
-
declare function hasPublishOverride(metaJson: Record<string, unknown> | null | undefined): boolean;
|
|
79
|
-
|
|
80
|
-
/** 검증 실패 1건. path = 문서 내 섹션 노드 위치(0-base), field = zod issue 경로. */
|
|
81
|
-
interface SectionValidationIssue {
|
|
82
|
-
/** 문서 최상위 content 배열에서 섹션 노드의 index. */
|
|
83
|
-
index: number;
|
|
84
|
-
sectionType: string;
|
|
85
|
-
/** zod issue 경로 (예: "props.title"). */
|
|
86
|
-
field: string;
|
|
87
|
-
message: string;
|
|
88
|
-
}
|
|
89
|
-
interface SectionValidationResult {
|
|
90
|
-
valid: boolean;
|
|
91
|
-
issues: SectionValidationIssue[];
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* 문서 내 모든 섹션 노드를 SectionSchema 로 검증. 섹션 노드가 없으면 valid=true
|
|
95
|
-
* (no-op). 하나라도 스키마 위반이면 valid=false + issue 목록.
|
|
96
|
-
*
|
|
97
|
-
* posts.ts(create/update) 가 이 결과를 보고 저장을 거부한다. rawHtml 생성 금지 —
|
|
98
|
-
* 실패는 저장 거부일 뿐 노드를 변형하지 않는다.
|
|
99
|
-
*/
|
|
100
|
-
declare function validateSectionNodes(doc: unknown): SectionValidationResult;
|
|
101
|
-
/** issue 목록을 사람이 읽는 한 줄 메시지로 (저장 거부 오류 문구용). */
|
|
102
|
-
declare function formatSectionIssues(issues: SectionValidationIssue[]): string;
|
|
103
|
-
|
|
104
|
-
export { PUBLISH_GATE_RULESET, type PublishGateDoc, type PublishGateError, type PublishGateOptions, type PublishGateResult, type PublishGateRuleset, type PublishOverrideInput, type SectionLock, type SectionLockViolation, type SectionLockViolationCode, type SectionValidationIssue, type SectionValidationResult, assertPublishable, findSectionLockViolations, formatSectionIssues, formatSectionLockViolations, hasPublishOverride, isComplianceBlocked, isSectionContentPropPath, validateSectionNodes, writePublishGateMeta, writePublishOverrideMeta };
|