@hatiolab/figure-model 0.1.20 → 0.1.22
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/dist/blueprint-shape.d.ts.map +1 -1
- package/dist/blueprint-shape.js +4 -0
- package/dist/blueprint-shape.js.map +1 -1
- package/dist/blueprint.d.ts +7 -0
- package/dist/blueprint.d.ts.map +1 -1
- package/dist/blueprint.js +11 -40
- package/dist/blueprint.js.map +1 -1
- package/dist/grouping.d.ts +18 -0
- package/dist/grouping.d.ts.map +1 -1
- package/dist/grouping.js +14 -0
- package/dist/grouping.js.map +1 -1
- package/dist/origin.d.ts +29 -0
- package/dist/origin.d.ts.map +1 -0
- package/dist/origin.js +39 -0
- package/dist/origin.js.map +1 -0
- package/dist/sizing.d.ts.map +1 -1
- package/dist/sizing.js +4 -2
- package/dist/sizing.js.map +1 -1
- package/dist/types.d.ts +136 -43
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +88 -16
- package/dist/types.js.map +1 -1
- package/dist/validate.d.ts +0 -6
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +85 -11
- package/dist/validate.js.map +1 -1
- package/dist/visual-evidence.d.ts +1 -1
- package/dist/visual-evidence.d.ts.map +1 -1
- package/dist/visual-evidence.js +3 -1
- package/dist/visual-evidence.js.map +1 -1
- package/docs/format.md +142 -23
- package/docs/validation.md +72 -15
- package/package.json +2 -2
package/dist/types.d.ts
CHANGED
|
@@ -23,6 +23,38 @@ export type MaterialSlot = (typeof MATERIAL_SLOTS)[number];
|
|
|
23
23
|
/** 재질 프리셋. `threed/material-3d.ts:9` 의 preset 과 같은 집합. */
|
|
24
24
|
export declare const MATERIAL_PRESETS: readonly ["default", "metal", "glass", "plastic", "wood", "ceramic", "rubber"];
|
|
25
25
|
export type MaterialPreset = (typeof MATERIAL_PRESETS)[number];
|
|
26
|
+
/**
|
|
27
|
+
* 저작이 고를 수 있는 능력 — **씬이 실제로 조립할 수 있는 것만 있다.**
|
|
28
|
+
*
|
|
29
|
+
* `MATERIAL_PRESETS` 와 같은 갈래다. 형식이 목록을 선언하고 씬이 그것을 소비한다.
|
|
30
|
+
*
|
|
31
|
+
* ## 왜 목록이 형식에 있나
|
|
32
|
+
*
|
|
33
|
+
* 한동안 things-scene 에만 있었다. 그래서 `validate` 가 이름을 못 봤고, AI 가 낸
|
|
34
|
+
* `capabilities: ['hoist']` 가 **검증을 지나고 발행을 지나** 렌더링에서 죽었다. 게이트는
|
|
35
|
+
* 사실이 사는 곳에 있어야 한다 — 형식이 무엇이 성립하는 도형인지 판정하는 자리이므로
|
|
36
|
+
* 여기다(ADR-0051 ④).
|
|
37
|
+
*
|
|
38
|
+
* `PlacementSurface`·`CarrierLine` 같은 이름은 씬에 metadata 는 있어도 mixin factory 가
|
|
39
|
+
* 없다. 구현이 있어야 성립하는 계약이라, 이름만 적어 지게 하면 「선언은 있는데 동작이
|
|
40
|
+
* 없는」 것이 된다. **여기 있는 넷은 씬에 조립할 것이 있다.**
|
|
41
|
+
*
|
|
42
|
+
* ## 사다리
|
|
43
|
+
*
|
|
44
|
+
* Capacity 자리를 갖는다
|
|
45
|
+
* Holdable 담긴 것을 함께 들고 그린다
|
|
46
|
+
* Transferable 자리를 잡아 두고 넘겨받는다 — `Capacity` 가 있어야 자리를 찾는다
|
|
47
|
+
* FlowNode 흐름의 마디다. 위의 셋을 스스로 포함한다
|
|
48
|
+
*/
|
|
49
|
+
export declare const FIGURE_CAPABILITIES: readonly ["Capacity", "Holdable", "Transferable", "FlowNode"];
|
|
50
|
+
export type FigureCapability = (typeof FIGURE_CAPABILITIES)[number];
|
|
51
|
+
/**
|
|
52
|
+
* 혼자 설 수 없는 능력 — 이름 → 그 중 **하나라도** 함께 있어야 하는 것들.
|
|
53
|
+
*
|
|
54
|
+
* `Transferable` 은 자리를 찾는 일을 `Capacity` 에게 맡긴다. 혼자 적으면 씬이 조립할 때
|
|
55
|
+
* 던지는데, 그때는 이미 발행된 뒤다. 모르는 이름과 같은 갈래라 같은 자리에서 본다.
|
|
56
|
+
*/
|
|
57
|
+
export declare const CAPABILITY_NEEDS: Readonly<Record<string, readonly FigureCapability[]>>;
|
|
26
58
|
/**
|
|
27
59
|
* 크기 반응 규칙 — 인스턴스 크기가 바뀔 때 부품이 어떻게 변하는가.
|
|
28
60
|
*
|
|
@@ -147,19 +179,6 @@ export type ChannelPath = (typeof CHANNEL_PATHS)[number];
|
|
|
147
179
|
/** 키프레임 사이를 어떻게 잇나. glTF 의 `CUBICSPLINE` 은 없다 — 접선을 손으로 적을 형식이 아니다. */
|
|
148
180
|
export declare const INTERPOLATIONS: readonly ["linear", "step"];
|
|
149
181
|
export type Interpolation = (typeof INTERPOLATIONS)[number];
|
|
150
|
-
/**
|
|
151
|
-
* **옛 자리다. 저작하지 않는다.**
|
|
152
|
-
*
|
|
153
|
-
* `drive: 'hold'` 가 「값이 자세를 만든다」를 말하던 칸이었다. 그 판단은 맞았는데 자리가
|
|
154
|
-
* 틀려서, 애니메이션 안에 숨은 채로 아무도 못 찾았다. 지금은 `FigureParameter` 가 제 칸으로
|
|
155
|
-
* 있고 `animations` 에는 시각이 흐르는 것만 남는다 — 그러니 여기서 말할 것이 없다
|
|
156
|
-
* (ADR-0051, `operato-twin/design/04-decisions.md`).
|
|
157
|
-
*
|
|
158
|
-
* 이름이 남아 있는 것은 **이미 저장된 것을 옮기기 위해서**다. `compile()` 이 옛 원본의
|
|
159
|
-
* `drive: 'hold'` 를 읽어 `parameters` 로 옮긴다. 옮기는 쪽이 사라지면 이 이름도 사라진다.
|
|
160
|
-
*/
|
|
161
|
-
export declare const CLIP_DRIVES: readonly ["loop", "hold"];
|
|
162
|
-
export type ClipDrive = (typeof CLIP_DRIVES)[number];
|
|
163
182
|
export declare const AXES: readonly ["x", "y", "z"];
|
|
164
183
|
export type Axis = (typeof AXES)[number];
|
|
165
184
|
/** 텍스트를 언제 보이나. 표현 수단(sprite·overlay)은 런타임이 고른다. */
|
|
@@ -201,8 +220,12 @@ export interface Point2 {
|
|
|
201
220
|
* ## 자리는 부품의 중심이다
|
|
202
221
|
*
|
|
203
222
|
* 여느 모델러와 같이 **원점은 부품의 중심**이고 `position` 은 그 원점의 자리다.
|
|
204
|
-
*
|
|
205
|
-
*
|
|
223
|
+
*
|
|
224
|
+
* The frame it is measured in has its origin at the bottom centre of the `base` box: `x` and `z` from
|
|
225
|
+
* the box centre, `y` up from the bottom face (source edition 2, ADR-0065). A part standing on the
|
|
226
|
+
* floor of the box has `position.y` equal to half its height, and changing `base.y` leaves every part's
|
|
227
|
+
* numbers where they were. Edition 1 measured `y` from the box centre as well; the compiled blueprint
|
|
228
|
+
* still does, and `origin.ts` is the one place a source is turned into that frame.
|
|
206
229
|
*
|
|
207
230
|
* 전에는 최소 모서리를 자리로 뒀다. 격자 스냅 때문이라고 적혀 있었는데, 모델러들은
|
|
208
231
|
* 모두 원점을 격자에 붙이고 크기는 따로 스냅한다. 우리만 다르게 둘 이유가 없다.
|
|
@@ -411,9 +434,9 @@ export interface AnimationClip {
|
|
|
411
434
|
*
|
|
412
435
|
* ## 두 층으로 되어 있다 — 아래는 표준, 위는 우리 것
|
|
413
436
|
*
|
|
414
|
-
* `clip`
|
|
415
|
-
*
|
|
416
|
-
*
|
|
437
|
+
* `clip` has the shape of a glTF animation: channels, keys and TRS paths. The one difference is that
|
|
438
|
+
* a key's `at` is a position on the 0..1 value span rather than a time, and the two convert without
|
|
439
|
+
* loss. See `ParameterClip`.
|
|
417
440
|
*
|
|
418
441
|
* 그 위에 얹는 `range` 가 우리 것이다 — 「이 곡선은 재생되는 것이 아니라 값이 몬다」와
|
|
419
442
|
* 「그 값은 mm 로 몇부터 몇까지다」. glTF 에 그것을 적을 자리가 없으므로, 못 받는 쪽은
|
|
@@ -426,15 +449,21 @@ export interface AnimationClip {
|
|
|
426
449
|
* 맵한다. 「길이값을 변수로 노출한다」는 그 API 에서 성립하고, 형식의 곡선은 표준 모양으로
|
|
427
450
|
* 남는다.
|
|
428
451
|
*
|
|
429
|
-
* ##
|
|
452
|
+
* ## The transition time is `clip.duration`
|
|
430
453
|
*
|
|
431
|
-
* `clip`
|
|
432
|
-
*
|
|
433
|
-
*
|
|
454
|
+
* `clip.duration` is the number of seconds a full move from 0 to 1 takes. When the value changes from
|
|
455
|
+
* v₁ to v₂ the pose moves in a straight line over `|v₂ − v₁| × duration`, which is the machine's
|
|
456
|
+
* speed. How fast a hoist lowers is a fact about the figure; when one installation differs, the
|
|
457
|
+
* instance overrides it.
|
|
434
458
|
*
|
|
435
459
|
* **ease 는 없다.** 기계는 연출하지 않는다.
|
|
436
460
|
*
|
|
437
|
-
*
|
|
461
|
+
* With no `duration`, or `0`, the move is instant: a new value goes straight to its pose.
|
|
462
|
+
*
|
|
463
|
+
* For a while the last key's time served as both the end of the value span and the transition time.
|
|
464
|
+
* A figure could then not declare several poses together with an instant move, since instant meant
|
|
465
|
+
* every key at 0, and legacy keys that happened to sit at 0 and 1 turned into a one-second move
|
|
466
|
+
* nobody chose. That is why the two facts have separate fields.
|
|
438
467
|
*/
|
|
439
468
|
export interface FigureParameter {
|
|
440
469
|
/** **저장되는 식별자다.** 인스턴스가 이 이름으로 값을 준다. */
|
|
@@ -465,10 +494,24 @@ export interface ParameterRange {
|
|
|
465
494
|
* 이름은 파라미터가 갖는다. 클립에 또 두면 둘이 갈릴 수 있고, 갈리면 인스턴스가 어느 이름으로
|
|
466
495
|
* 값을 주는지 알 수 없다.
|
|
467
496
|
*
|
|
468
|
-
*
|
|
469
|
-
*
|
|
497
|
+
* A key's `at` is a position on the value span, from `0` to `1`: `0` is the pose at `range.min` and
|
|
498
|
+
* `1` the pose at `range.max`. Keys need not cover the whole span; before the first key and after the
|
|
499
|
+
* last one the pose holds at the end key, the same clamping glTF applies outside a clip.
|
|
500
|
+
*
|
|
501
|
+
* Time lives in `duration`. Keys sit on the value axis and `duration` on the time axis, so the two
|
|
502
|
+
* cannot disagree.
|
|
503
|
+
*
|
|
504
|
+
* ## Converting to and from glTF loses nothing
|
|
505
|
+
*
|
|
506
|
+
* - Export: glTF key time = `at × (duration || 1)`. The curve goes out unchanged and its length is the
|
|
507
|
+
* transition time.
|
|
508
|
+
* - Import: divide every key time by the latest one to get `at`, and keep that latest time as `duration`.
|
|
509
|
+
*
|
|
510
|
+
* So `at` not being seconds does not break compatibility; the seconds are gathered into `duration`.
|
|
470
511
|
*/
|
|
471
512
|
export interface ParameterClip {
|
|
513
|
+
/** Seconds for a full move from 0 to 1. Missing or `0` means instant. */
|
|
514
|
+
duration?: number;
|
|
472
515
|
channels: AnimationChannel[];
|
|
473
516
|
}
|
|
474
517
|
/** 텍스트 표현 자리. 무엇을·언제만 정하고 수단은 런타임이 고른다. */
|
|
@@ -619,15 +662,22 @@ export interface PartCapability {
|
|
|
619
662
|
*/
|
|
620
663
|
direction?: Vec3;
|
|
621
664
|
}
|
|
622
|
-
/**
|
|
623
|
-
|
|
665
|
+
/**
|
|
666
|
+
* The source edition this format reads.
|
|
667
|
+
*
|
|
668
|
+
* - 1: `position.y` measured from the centre of the base box. Sources saved before the `version`
|
|
669
|
+
* field existed are edition 1 as well.
|
|
670
|
+
* - 2: `position.y` measured from the bottom face of the base box (ADR-0065).
|
|
671
|
+
*
|
|
672
|
+
* Only edition 2 is read. Older sources are refused with `source-version-unsupported` rather than
|
|
673
|
+
* read by the old rule, so a value never lives in two shapes at once.
|
|
674
|
+
*/
|
|
675
|
+
export declare const FIGURE_SOURCE_VERSION = 2;
|
|
624
676
|
/** 저작 결과. 편집 가능한 원본 데이터. */
|
|
625
677
|
export interface FigureSource {
|
|
626
678
|
/**
|
|
627
|
-
*
|
|
628
|
-
*
|
|
629
|
-
* 원본 데이터(JSON)의 스키마 버전을 명시한다.
|
|
630
|
-
* 형식이 변경될 때 마이그레이션 및 하위 호환 판정의 기준이 된다.
|
|
679
|
+
* Source edition. Must be `FIGURE_SOURCE_VERSION`; a missing value is refused, because every
|
|
680
|
+
* source saved without one was written in edition 1 coordinates.
|
|
631
681
|
*/
|
|
632
682
|
version?: number;
|
|
633
683
|
/** 컴포넌트 타입 이름. **저장되는 식별자다.** */
|
|
@@ -675,16 +725,18 @@ export interface FigureSource {
|
|
|
675
725
|
* 그 답은 저작의 결과이므로 정본이 지고 다녀야 한다. 그리는 쪽이 타입 이름으로 짐작하면
|
|
676
726
|
* 이름 규칙에 능력이 숨는다.
|
|
677
727
|
*
|
|
678
|
-
* ##
|
|
728
|
+
* ## 이름의 정본도 여기다 — 한동안 아니었다
|
|
679
729
|
*
|
|
680
|
-
*
|
|
681
|
-
*
|
|
682
|
-
*
|
|
683
|
-
*
|
|
730
|
+
* 「목록은 씬의 것이고 여기서는 문자열만 진다」였다. 의존 방향 때문이었는데, 그 대가가
|
|
731
|
+
* **게이트가 사실이 사는 곳에 없는 것**이었다. AI 가 낸 `capabilities: ['hoist']` 가
|
|
732
|
+
* 검증을 지나고 **발행까지 지난 뒤** 렌더링에서 죽었다 — 저작자는 자산을 내보내고 나서야
|
|
733
|
+
* 그것이 안 선다는 것을 알았다. `base` 상자 때와 같은 구멍이다(ADR-0044 · ADR-0051 ④).
|
|
684
734
|
*
|
|
685
|
-
*
|
|
735
|
+
* 그래서 목록은 `FIGURE_CAPABILITIES` 로 여기 서고, 씬은 **그것을 소비해** mixin 을
|
|
736
|
+
* 붙인다. 계약이 두 벌이 되지 않게 씬 쪽에 양방향 시험이 있다 — 선언된 능력마다 mixin 이
|
|
737
|
+
* 있고, mixin 마다 선언이 있다.
|
|
686
738
|
*/
|
|
687
|
-
capabilities?: readonly
|
|
739
|
+
capabilities?: readonly FigureCapability[];
|
|
688
740
|
}
|
|
689
741
|
/** 청사진 스키마 버전. 형식이 바뀌면 올린다. */
|
|
690
742
|
export declare const BLUEPRINT_VERSION = 1;
|
|
@@ -698,7 +750,23 @@ export declare const BLUEPRINT_VERSION = 1;
|
|
|
698
750
|
* 이름을 따로 두는 뜻이 있다. 닻을 `BlueprintMember` 로 억지로 맞추려면 없는 `geometryKey` 와
|
|
699
751
|
* `triangles` 를 지어내야 하고, 그 순간 그리는 목록에 섞여 들어갈 길이 생긴다.
|
|
700
752
|
*/
|
|
701
|
-
|
|
753
|
+
declare const CENTRED: unique symbol;
|
|
754
|
+
/**
|
|
755
|
+
* Marks a value whose positions are measured from the centre of the base box.
|
|
756
|
+
*
|
|
757
|
+
* A source measures y from the box bottom (edition 2); the blueprint, sizing, the release gate and the
|
|
758
|
+
* policy checks read box-centred positions. The brand exists only in the type system. Values get it in
|
|
759
|
+
* `origin.ts`, so a caller that hands a source part straight to a centred-only function fails to compile
|
|
760
|
+
* instead of reading every y half a box too high (ADR-0065).
|
|
761
|
+
*/
|
|
762
|
+
export type Centred<T> = T & {
|
|
763
|
+
readonly [CENTRED]: true;
|
|
764
|
+
};
|
|
765
|
+
/** A source whose parts have been moved into box-centred coordinates by `centredSource`. */
|
|
766
|
+
export type CentredSource = Centred<Omit<FigureSource, 'parts'> & {
|
|
767
|
+
parts: Centred<FigurePart>[];
|
|
768
|
+
}>;
|
|
769
|
+
interface SizingSubjectShape {
|
|
702
770
|
name: string;
|
|
703
771
|
transform: PartTransform;
|
|
704
772
|
sizing: SizingRule;
|
|
@@ -709,6 +777,8 @@ export interface SizingSubject {
|
|
|
709
777
|
primitive?: PrimitiveKind;
|
|
710
778
|
keepRound?: boolean;
|
|
711
779
|
}
|
|
780
|
+
/** What the sizing rules read: a part in box-centred coordinates. */
|
|
781
|
+
export type SizingSubject = Centred<SizingSubjectShape>;
|
|
712
782
|
export interface BlueprintMember extends SizingSubject {
|
|
713
783
|
name: string;
|
|
714
784
|
primitive: PrimitiveKind;
|
|
@@ -787,13 +857,13 @@ export interface Violation {
|
|
|
787
857
|
* 처리를 정해야 하는데, 코드가 늘어난 것이 알려지지 않으면 그 대응이 빠진다. 뜻은
|
|
788
858
|
* `docs/validation.md` 에 있고, 문서와 이 목록이 어긋나면 테스트가 실패한다.
|
|
789
859
|
*/
|
|
790
|
-
export declare const ERROR_CODES: readonly ["not-object", "not-finite", "not-positive", "out-of-range", "not-integer", "not-boolean", "not-allowed", "missing-type", "missing-base", "missing-parts", "bad-style-kit", "missing-name", "duplicate-name", "missing-transform", "missing-position", "missing-size", "too-few-segments", "missing-shape-path", "bad-shape-point", "hollow-too-thick", "hollow-not-convex", "bad-aspect-axis", "missing-material", "material-unresolvable", "missing-repeat", "missing-channels", "unknown-channel-target", "too-few-keys", "keys-out-of-order", "missing-surface-ref", "missing-label-name", "missing-label-source", "bad-capability", "duplicate-capability", "bad-part-capability", "missing-range", "bad-range"];
|
|
860
|
+
export declare const ERROR_CODES: readonly ["not-object", "not-finite", "not-positive", "out-of-range", "not-integer", "not-boolean", "not-allowed", "missing-type", "source-version-unsupported", "missing-base", "missing-parts", "bad-style-kit", "missing-name", "duplicate-name", "missing-transform", "missing-position", "missing-size", "too-few-segments", "missing-shape-path", "bad-shape-point", "hollow-too-thick", "hollow-not-convex", "bad-aspect-axis", "missing-material", "material-unresolvable", "missing-repeat", "missing-channels", "unknown-channel-target", "too-few-keys", "keys-out-of-order", "missing-surface-ref", "missing-label-name", "missing-label-source", "bad-capability", "duplicate-capability", "bad-part-capability", "missing-range", "bad-range"];
|
|
791
861
|
export type ErrorCode = (typeof ERROR_CODES)[number];
|
|
792
862
|
/**
|
|
793
863
|
* 위반 코드 전부. 위반은 컴파일을 막지 않는다 — 저작 화면이 알려 주는 데 쓴다.
|
|
794
864
|
* 뜻과 한도는 `docs/validation.md` 에 있다.
|
|
795
865
|
*/
|
|
796
|
-
export declare const VIOLATION_CODES: readonly ["segments-off-preset", "segments-ignored", "repeat-ignored", "keep-round-ignored", "hollow-ignored", "pivot-ignored", "detail-level-missing", "too-many-parts", "too-many-animated-parts", "too-many-material-groups", "too-many-transparent", "too-many-surface-textures", "capacity-with-repeat", "too-many-always-labels", "part-outside-base", "parts-off-placement-face"];
|
|
866
|
+
export declare const VIOLATION_CODES: readonly ["segments-off-preset", "segments-ignored", "repeat-ignored", "keep-round-ignored", "hollow-ignored", "pivot-ignored", "detail-level-missing", "too-many-parts", "too-many-animated-parts", "too-many-material-groups", "too-many-transparent", "too-many-surface-textures", "capacity-with-repeat", "too-many-always-labels", "part-outside-base", "parts-off-placement-face", "type-not-identifier", "type-is-placeholder"];
|
|
797
867
|
export type ViolationCode = (typeof VIOLATION_CODES)[number];
|
|
798
868
|
/**
|
|
799
869
|
* 발행을 막는 위반 — ADR-0044 결정 ② (`operato-twin/design/04-decisions.md`).
|
|
@@ -806,8 +876,32 @@ export type ViolationCode = (typeof VIOLATION_CODES)[number];
|
|
|
806
876
|
* 화면이 「이건 고쳐야 나간다」를 뜻으로 보여 줄 때. 서버가 제 목록을 들면 화면은 그것을
|
|
807
877
|
* 알 길이 없어 전부 같은 「알림」으로 그리고, 저작자는 발행이 막힌 것을 **눌러 보고 나서야**
|
|
808
878
|
* 안다. 코드를 소유한 자리가 등급도 소유한다.
|
|
879
|
+
*
|
|
880
|
+
* The two type-name codes belong here for the same reason: a drawing records the type, so a released
|
|
881
|
+
* name is a promise to consumers.
|
|
809
882
|
*/
|
|
810
883
|
export declare const RELEASE_BLOCKING_VIOLATIONS: readonly ViolationCode[];
|
|
884
|
+
/**
|
|
885
|
+
* The shape of a `type`: `SCREAMING_SNAKE_CASE` starting with a capital, 3 to 32 characters.
|
|
886
|
+
*
|
|
887
|
+
* Capitals are the figure namespace. Built-in scene components use lower-case kebab names, so a figure
|
|
888
|
+
* that follows this shape cannot share a name with one.
|
|
889
|
+
*/
|
|
890
|
+
export declare const TYPE_PATTERN: RegExp;
|
|
891
|
+
export declare const TYPE_LENGTH: {
|
|
892
|
+
readonly min: 3;
|
|
893
|
+
readonly max: 32;
|
|
894
|
+
};
|
|
895
|
+
/**
|
|
896
|
+
* The temporary type a figure carries before anyone names it. The format owns it so that the code
|
|
897
|
+
* making it and the code recognising it follow one rule: the authoring screen makes it, the release
|
|
898
|
+
* gate and the AI tools recognise it.
|
|
899
|
+
*
|
|
900
|
+
* It passes the identifier pattern (`FIGURE_MTU10FWR`), so the shape check alone would not catch it.
|
|
901
|
+
*/
|
|
902
|
+
export declare function placeholderType(now?: number): string;
|
|
903
|
+
/** Whether a type is the temporary name given before anyone names the figure. */
|
|
904
|
+
export declare function isPlaceholderType(type: string): boolean;
|
|
811
905
|
/** 이 위반이 발행을 막나. */
|
|
812
906
|
export declare function blocksRelease(code: string): boolean;
|
|
813
907
|
/** 형식·정합성 오류. 이것이 있으면 컴파일할 수 없다. */
|
|
@@ -859,8 +953,6 @@ export interface FigureBlueprint {
|
|
|
859
953
|
animations: BlueprintClip[];
|
|
860
954
|
/**
|
|
861
955
|
* 값이 모는 자세. 인스턴스가 이름으로 값을 준다.
|
|
862
|
-
*
|
|
863
|
-
* 옛 원본의 `drive: 'hold'` clip 도 여기로 온다 — `compile()` 이 옮긴다.
|
|
864
956
|
*/
|
|
865
957
|
parameters: BlueprintParameter[];
|
|
866
958
|
labels: BlueprintLabel[];
|
|
@@ -954,4 +1046,5 @@ export declare const LIMITS: {
|
|
|
954
1046
|
* 화면이 표현하지 못한다. 삼각형만 192 에서 256 으로 는다.
|
|
955
1047
|
*/
|
|
956
1048
|
export declare const SEGMENT_PRESETS: readonly number[];
|
|
1049
|
+
export {};
|
|
957
1050
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAqBA,8CAA8C;AAC9C,eAAO,MAAM,eAAe,oEAAqE,CAAA;AACjG,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AAE5D,+BAA+B;AAC/B,eAAO,MAAM,kBAAkB,EAAE,SAAS,aAAa,EAAwB,CAAA;AAE/E,oCAAoC;AACpC,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAA2C,CAAA;AAE/F,kCAAkC;AAClC,eAAO,MAAM,oBAAoB,EAAE,SAAS,aAAa,EAA2B,CAAA;AAEpF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,aAAa,EAA2B,CAAA;AAEjF;;;GAGG;AACH,eAAO,MAAM,cAAc,0BAA2B,CAAA;AACtD,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAE1D,0DAA0D;AAC1D,eAAO,MAAM,gBAAgB,gFAAiF,CAAA;AAC9G,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE9D;;;;;;;GAOG;AACH,oDAAoD;AACpD,eAAO,MAAM,cAAc,EAAG,OAAgB,CAAA;AAE9C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,MAAM,CAAA;AAE/B,eAAO,MAAM,YAAY,kDAAmD,CAAA;AAC5E,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAEtD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,yCAA0C,CAAA;AACxE,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,eAAO,MAAM,YAAY,wFAoBf,CAAA;AACV,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAEtD;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU;IACzB,CAAC,CAAC,EAAE,UAAU,CAAA;IACd,CAAC,CAAC,EAAE,UAAU,CAAA;IACd,CAAC,CAAC,EAAE,UAAU,CAAA;CACf;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,aAAa,0BAA2B,CAAA;AACrD,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;AAExD,mBAAmB;AACnB,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAyB,CAAA;AAE5E;;;;GAIG;AACH,eAAO,MAAM,aAAa,+CAAgD,CAAA;AAC1E,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;AAExD,uEAAuE;AACvE,eAAO,MAAM,cAAc,6BAA8B,CAAA;AACzD,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAE3D
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -40,6 +40,39 @@ export const CURVED_PRIMITIVES = ['cylinder', 'sphere'];
|
|
|
40
40
|
export const MATERIAL_SLOTS = ['cap', 'side'];
|
|
41
41
|
/** 재질 프리셋. `threed/material-3d.ts:9` 의 preset 과 같은 집합. */
|
|
42
42
|
export const MATERIAL_PRESETS = ['default', 'metal', 'glass', 'plastic', 'wood', 'ceramic', 'rubber'];
|
|
43
|
+
/**
|
|
44
|
+
* 저작이 고를 수 있는 능력 — **씬이 실제로 조립할 수 있는 것만 있다.**
|
|
45
|
+
*
|
|
46
|
+
* `MATERIAL_PRESETS` 와 같은 갈래다. 형식이 목록을 선언하고 씬이 그것을 소비한다.
|
|
47
|
+
*
|
|
48
|
+
* ## 왜 목록이 형식에 있나
|
|
49
|
+
*
|
|
50
|
+
* 한동안 things-scene 에만 있었다. 그래서 `validate` 가 이름을 못 봤고, AI 가 낸
|
|
51
|
+
* `capabilities: ['hoist']` 가 **검증을 지나고 발행을 지나** 렌더링에서 죽었다. 게이트는
|
|
52
|
+
* 사실이 사는 곳에 있어야 한다 — 형식이 무엇이 성립하는 도형인지 판정하는 자리이므로
|
|
53
|
+
* 여기다(ADR-0051 ④).
|
|
54
|
+
*
|
|
55
|
+
* `PlacementSurface`·`CarrierLine` 같은 이름은 씬에 metadata 는 있어도 mixin factory 가
|
|
56
|
+
* 없다. 구현이 있어야 성립하는 계약이라, 이름만 적어 지게 하면 「선언은 있는데 동작이
|
|
57
|
+
* 없는」 것이 된다. **여기 있는 넷은 씬에 조립할 것이 있다.**
|
|
58
|
+
*
|
|
59
|
+
* ## 사다리
|
|
60
|
+
*
|
|
61
|
+
* Capacity 자리를 갖는다
|
|
62
|
+
* Holdable 담긴 것을 함께 들고 그린다
|
|
63
|
+
* Transferable 자리를 잡아 두고 넘겨받는다 — `Capacity` 가 있어야 자리를 찾는다
|
|
64
|
+
* FlowNode 흐름의 마디다. 위의 셋을 스스로 포함한다
|
|
65
|
+
*/
|
|
66
|
+
export const FIGURE_CAPABILITIES = ['Capacity', 'Holdable', 'Transferable', 'FlowNode'];
|
|
67
|
+
/**
|
|
68
|
+
* 혼자 설 수 없는 능력 — 이름 → 그 중 **하나라도** 함께 있어야 하는 것들.
|
|
69
|
+
*
|
|
70
|
+
* `Transferable` 은 자리를 찾는 일을 `Capacity` 에게 맡긴다. 혼자 적으면 씬이 조립할 때
|
|
71
|
+
* 던지는데, 그때는 이미 발행된 뒤다. 모르는 이름과 같은 갈래라 같은 자리에서 본다.
|
|
72
|
+
*/
|
|
73
|
+
export const CAPABILITY_NEEDS = Object.freeze({
|
|
74
|
+
Transferable: ['Capacity', 'FlowNode']
|
|
75
|
+
});
|
|
43
76
|
/**
|
|
44
77
|
* 크기 반응 규칙 — 인스턴스 크기가 바뀔 때 부품이 어떻게 변하는가.
|
|
45
78
|
*
|
|
@@ -164,18 +197,6 @@ export const PART_LIMIT = { S: 3, M: 8, L: 20 };
|
|
|
164
197
|
export const CHANNEL_PATHS = ['translation', 'rotation', 'scale'];
|
|
165
198
|
/** 키프레임 사이를 어떻게 잇나. glTF 의 `CUBICSPLINE` 은 없다 — 접선을 손으로 적을 형식이 아니다. */
|
|
166
199
|
export const INTERPOLATIONS = ['linear', 'step'];
|
|
167
|
-
/**
|
|
168
|
-
* **옛 자리다. 저작하지 않는다.**
|
|
169
|
-
*
|
|
170
|
-
* `drive: 'hold'` 가 「값이 자세를 만든다」를 말하던 칸이었다. 그 판단은 맞았는데 자리가
|
|
171
|
-
* 틀려서, 애니메이션 안에 숨은 채로 아무도 못 찾았다. 지금은 `FigureParameter` 가 제 칸으로
|
|
172
|
-
* 있고 `animations` 에는 시각이 흐르는 것만 남는다 — 그러니 여기서 말할 것이 없다
|
|
173
|
-
* (ADR-0051, `operato-twin/design/04-decisions.md`).
|
|
174
|
-
*
|
|
175
|
-
* 이름이 남아 있는 것은 **이미 저장된 것을 옮기기 위해서**다. `compile()` 이 옛 원본의
|
|
176
|
-
* `drive: 'hold'` 를 읽어 `parameters` 로 옮긴다. 옮기는 쪽이 사라지면 이 이름도 사라진다.
|
|
177
|
-
*/
|
|
178
|
-
export const CLIP_DRIVES = ['loop', 'hold'];
|
|
179
200
|
export const AXES = ['x', 'y', 'z'];
|
|
180
201
|
/** 텍스트를 언제 보이나. 표현 수단(sprite·overlay)은 런타임이 고른다. */
|
|
181
202
|
export const LABEL_WHENS = ['always', 'zoomed', 'selected', 'abnormal'];
|
|
@@ -200,8 +221,17 @@ export const SURFACE_KINDS = ['gradient', 'pattern'];
|
|
|
200
221
|
* port-out 흐름이 나가는 문 (`FlowNode.outboundPorts`)
|
|
201
222
|
*/
|
|
202
223
|
export const PART_ROLES = ['slot', 'port-in', 'port-out'];
|
|
203
|
-
/**
|
|
204
|
-
|
|
224
|
+
/**
|
|
225
|
+
* The source edition this format reads.
|
|
226
|
+
*
|
|
227
|
+
* - 1: `position.y` measured from the centre of the base box. Sources saved before the `version`
|
|
228
|
+
* field existed are edition 1 as well.
|
|
229
|
+
* - 2: `position.y` measured from the bottom face of the base box (ADR-0065).
|
|
230
|
+
*
|
|
231
|
+
* Only edition 2 is read. Older sources are refused with `source-version-unsupported` rather than
|
|
232
|
+
* read by the old rule, so a value never lives in two shapes at once.
|
|
233
|
+
*/
|
|
234
|
+
export const FIGURE_SOURCE_VERSION = 2;
|
|
205
235
|
// ─── 청사진 ────────────────────────────────────────────────────────────────
|
|
206
236
|
/** 청사진 스키마 버전. 형식이 바뀌면 올린다. */
|
|
207
237
|
export const BLUEPRINT_VERSION = 1;
|
|
@@ -225,6 +255,8 @@ export const ERROR_CODES = [
|
|
|
225
255
|
'not-allowed',
|
|
226
256
|
// 원본의 필수 항목
|
|
227
257
|
'missing-type',
|
|
258
|
+
/* The source was written in an edition this format no longer reads. See FIGURE_SOURCE_VERSION. */
|
|
259
|
+
'source-version-unsupported',
|
|
228
260
|
'missing-base',
|
|
229
261
|
'missing-parts',
|
|
230
262
|
'bad-style-kit',
|
|
@@ -307,7 +339,16 @@ export const VIOLATION_CODES = [
|
|
|
307
339
|
것은 부품을 제자리로 옮기는 것인데.
|
|
308
340
|
*/
|
|
309
341
|
'part-outside-base',
|
|
310
|
-
'parts-off-placement-face'
|
|
342
|
+
'parts-off-placement-face',
|
|
343
|
+
/*
|
|
344
|
+
Type names. `type` is the stored identifier a drawing writes as `{ type, left, top, width, height }`,
|
|
345
|
+
so once released it cannot change. The rules hold back a release and leave draft saves alone:
|
|
346
|
+
trying something out before naming it is fine. These are two separate defects. One is a name of
|
|
347
|
+
the wrong shape; the other has the right shape but was never named by a person (chief architect
|
|
348
|
+
ruling, 2026-09-17).
|
|
349
|
+
*/
|
|
350
|
+
'type-not-identifier',
|
|
351
|
+
'type-is-placeholder'
|
|
311
352
|
];
|
|
312
353
|
/**
|
|
313
354
|
* 발행을 막는 위반 — ADR-0044 결정 ② (`operato-twin/design/04-decisions.md`).
|
|
@@ -320,8 +361,39 @@ export const VIOLATION_CODES = [
|
|
|
320
361
|
* 화면이 「이건 고쳐야 나간다」를 뜻으로 보여 줄 때. 서버가 제 목록을 들면 화면은 그것을
|
|
321
362
|
* 알 길이 없어 전부 같은 「알림」으로 그리고, 저작자는 발행이 막힌 것을 **눌러 보고 나서야**
|
|
322
363
|
* 안다. 코드를 소유한 자리가 등급도 소유한다.
|
|
364
|
+
*
|
|
365
|
+
* The two type-name codes belong here for the same reason: a drawing records the type, so a released
|
|
366
|
+
* name is a promise to consumers.
|
|
367
|
+
*/
|
|
368
|
+
export const RELEASE_BLOCKING_VIOLATIONS = [
|
|
369
|
+
'part-outside-base',
|
|
370
|
+
'parts-off-placement-face',
|
|
371
|
+
'type-not-identifier',
|
|
372
|
+
'type-is-placeholder'
|
|
373
|
+
];
|
|
374
|
+
/**
|
|
375
|
+
* The shape of a `type`: `SCREAMING_SNAKE_CASE` starting with a capital, 3 to 32 characters.
|
|
376
|
+
*
|
|
377
|
+
* Capitals are the figure namespace. Built-in scene components use lower-case kebab names, so a figure
|
|
378
|
+
* that follows this shape cannot share a name with one.
|
|
379
|
+
*/
|
|
380
|
+
export const TYPE_PATTERN = /^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$/;
|
|
381
|
+
export const TYPE_LENGTH = { min: 3, max: 32 };
|
|
382
|
+
/**
|
|
383
|
+
* The temporary type a figure carries before anyone names it. The format owns it so that the code
|
|
384
|
+
* making it and the code recognising it follow one rule: the authoring screen makes it, the release
|
|
385
|
+
* gate and the AI tools recognise it.
|
|
386
|
+
*
|
|
387
|
+
* It passes the identifier pattern (`FIGURE_MTU10FWR`), so the shape check alone would not catch it.
|
|
323
388
|
*/
|
|
324
|
-
export
|
|
389
|
+
export function placeholderType(now = Date.now()) {
|
|
390
|
+
return `FIGURE_${now.toString(36).toUpperCase()}`;
|
|
391
|
+
}
|
|
392
|
+
const PLACEHOLDER_TYPE = /^FIGURE_[0-9A-Z]{8}$/;
|
|
393
|
+
/** Whether a type is the temporary name given before anyone names the figure. */
|
|
394
|
+
export function isPlaceholderType(type) {
|
|
395
|
+
return PLACEHOLDER_TYPE.test(type);
|
|
396
|
+
}
|
|
325
397
|
/** 이 위반이 발행을 막나. */
|
|
326
398
|
export function blocksRelease(code) {
|
|
327
399
|
return RELEASE_BLOCKING_VIOLATIONS.includes(code);
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,8CAA8C;AAC9C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAU,CAAA;AAGjG,+BAA+B;AAC/B,MAAM,CAAC,MAAM,kBAAkB,GAA6B,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;AAE/E,oCAAoC;AACpC,MAAM,CAAC,MAAM,eAAe,GAA6B,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;AAE/F,kCAAkC;AAClC,MAAM,CAAC,MAAM,oBAAoB,GAA6B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;AAEpF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA6B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;AAEjF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,CAAU,CAAA;AAGtD,0DAA0D;AAC1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAA;AAG9G;;;;;;;GAOG;AACH,oDAAoD;AACpD,MAAM,CAAC,MAAM,cAAc,GAAG,OAAgB,CAAA;AAE9C;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAA;AAE/B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAA;AAG5E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAA;AAGxE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,OAAO;IACP,KAAK;IACL,QAAQ;IACR,KAAK;IACL,MAAM;IACN;;;;;;;;;;MAUE;IACF,UAAU;IACV,UAAU;IACV,UAAU;CACF,CAAA;AAkBV;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAA;AAGrD,mBAAmB;AACnB,MAAM,CAAC,MAAM,UAAU,GAAgC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAA;AAE5E;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAU,CAAA;AAG1E,uEAAuE;AACvE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAU,CAAA;AAGzD
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/validate.d.ts
CHANGED
|
@@ -3,11 +3,5 @@ export interface ValidateResult {
|
|
|
3
3
|
errors: FigureError[];
|
|
4
4
|
violations: Violation[];
|
|
5
5
|
}
|
|
6
|
-
/**
|
|
7
|
-
* 원본 데이터를 검증한다.
|
|
8
|
-
*
|
|
9
|
-
* 바깥에서 온 데이터(DB · API · 파일)를 받으므로 `unknown` 을 받는다.
|
|
10
|
-
* `errors` 가 비어 있으면 `source` 는 `FigureSource` 로 다룰 수 있다.
|
|
11
|
-
*/
|
|
12
6
|
export declare function validate(source: unknown): ValidateResult;
|
|
13
7
|
//# sourceMappingURL=validate.d.ts.map
|
package/dist/validate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAqBA,OAAO,
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAqBA,OAAO,EAyBL,KAAK,WAAW,EAIhB,KAAK,SAAS,EAMf,MAAM,YAAY,CAAA;AASnB,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,UAAU,EAAE,SAAS,EAAE,CAAA;CACxB;AAy5BD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,cAAc,CAgFxD"}
|