@hatiolab/figure-model 0.3.4 → 0.4.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 +7 -0
- package/README.md +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/kernel-version.d.ts +1 -1
- package/dist/kernel-version.js +1 -1
- package/dist/names.d.ts +19 -0
- package/dist/names.d.ts.map +1 -0
- package/dist/names.js +47 -0
- package/dist/names.js.map +1 -0
- package/dist/package.d.ts +86 -0
- package/dist/package.d.ts.map +1 -0
- package/dist/package.js +202 -0
- package/dist/package.js.map +1 -0
- package/dist/render-lod.d.ts +12 -0
- package/dist/render-lod.d.ts.map +1 -0
- package/dist/render-lod.js +32 -0
- package/dist/render-lod.js.map +1 -0
- package/dist/shape-ops.d.ts +1 -1
- package/dist/shape-ops.d.ts.map +1 -1
- package/dist/shape-ops.js.map +1 -1
- package/dist/words.d.ts +6 -6
- package/dist/words.js +8 -8
- package/dist/words.js.map +1 -1
- package/docs/evaluation-performance-summary-2026-10-05.md +18 -0
- package/docs/performance-followup-2026-10-05.md +314 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,13 @@
|
|
|
6
6
|
|
|
7
7
|
## 아직 버전을 붙이지 않음
|
|
8
8
|
|
|
9
|
+
### 선택적 런타임 LOD (2026-10-05, ADR-0116, 미발행)
|
|
10
|
+
|
|
11
|
+
`figureRenderViewOf`·`figureRenderSegmentsOf`·`FigureRenderLevel`과 분할 기본값/정책 버전을 내보낸다.
|
|
12
|
+
곡면의 effective segments만 낮추고 원래 shape·pose·ID·binding·검사·점수는 유지한다.
|
|
13
|
+
카메라 선택과 GPU 자원은 things-scene이 담당한다. `figureShapeBoundsOf`는 계산에 필요한
|
|
14
|
+
extrusion/loft/revolution만 요구하도록 입력 타입을 넓혔다. 자산 포맷과 S/M/L/XL은 그대로다.
|
|
15
|
+
|
|
9
16
|
### 매핑 거절에 면의 방향 (2026-10-02, 0.2.12)
|
|
10
17
|
|
|
11
18
|
`FigureFaceMappingNeed`의 `lost`와 `remain`이 면마다 부품 기준의 `axis`와 `normal`을 싣는다. 화면은 이것을 보고 같은 쪽을 보는 남는 면만 고를 수 있게 한다. `FigureFaceMappingNeed`, `FigureFaceReference`, `FigureFaceRemap` 타입을 내보낸다.
|
package/README.md
CHANGED
|
@@ -8,6 +8,8 @@ grammar. No runtime dependencies.
|
|
|
8
8
|
The package contains no renderer. The modeller authors with it, the server judges and stores with it, and the scene
|
|
9
9
|
draws from what it compiles.
|
|
10
10
|
|
|
11
|
+
Runtime LOD: [ADR-0116](../operato-application/adr/ADR-0116.md). Render-only view helpers are implemented; camera selection and GPU resources belong to things-scene.
|
|
12
|
+
|
|
11
13
|
## What it solves
|
|
12
14
|
|
|
13
15
|
It moves adding a component **from development to authoring**. A new kind of equipment should be a data document,
|
|
@@ -46,6 +48,7 @@ import { parseFigureAsset, compileFigureAsset, inspectFigureAsset, figureScoreOf
|
|
|
46
48
|
| Authoring session | `createFigureAuthoringSession`, `createFigureEditorWorkspace` |
|
|
47
49
|
| Release gate | `inspectFigureAsset`, `FIGURE_INSPECT_LIMITS`, `figureWorldBoxesOf`, `figureOccupiedBoxesOf`, `figureWritersOf`, `figurePartsExtentOf`, `figureContractChanges` |
|
|
48
50
|
| Score and cost | `figureScoreOf`, `figureGradeOf`, `figurePartCountOf`, `figurePartBudgetOf`, `figureCostOf`, `figureTrianglesOf` |
|
|
51
|
+
| Runtime tessellation | `figureRenderViewOf`, `figureRenderSegmentsOf`, `FigureRenderLevel`; source evaluation, inspection and score remain full |
|
|
49
52
|
| AI proposal grammar | `applyFigureProposal`, `FIGURE_PROPOSAL_GRAMMAR`, `FIGURE_PROPOSAL_KINDS` |
|
|
50
53
|
| Capabilities and documents | `compileFigureCapabilities`, `compileFigureDocument`, `parseFigureDocument`, `serializeFigureDocument` |
|
|
51
54
|
| JSON input boundary | `parseFigureJson`, `assertFigureJson`, `FIGURE_JSON_MAX_BYTES`, `FIGURE_JSON_MAX_DEPTH`, `FigureContractError` |
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export * from './words.ts';
|
|
2
|
+
export * from './names.ts';
|
|
3
|
+
export * from './package.ts';
|
|
4
|
+
export { figureRenderViewOf, figureRenderSegmentsOf, FIGURE_RENDER_POLICY_VERSION, FIGURE_DEFAULT_SEGMENTS, type FigureRenderLevel } from './render-lod.ts';
|
|
2
5
|
export { FigureContractError } from './contract.ts';
|
|
3
6
|
export { compileFigureGraph } from './graph.ts';
|
|
4
7
|
export { editFigurePart, removePart, type FigurePartEdit } from './part-edit.ts';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -7,6 +7,9 @@
|
|
|
7
7
|
* the server judges with it, the modeller authors with it, the scene draws from it. Design: docs/design.md.
|
|
8
8
|
*/
|
|
9
9
|
export * from "./words.js";
|
|
10
|
+
export * from "./names.js";
|
|
11
|
+
export * from "./package.js";
|
|
12
|
+
export { figureRenderViewOf, figureRenderSegmentsOf, FIGURE_RENDER_POLICY_VERSION, FIGURE_DEFAULT_SEGMENTS } from "./render-lod.js";
|
|
10
13
|
export { FigureContractError } from "./contract.js";
|
|
11
14
|
export { compileFigureGraph } from "./graph.js";
|
|
12
15
|
export { editFigurePart, removePart } from "./part-edit.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/kernel-version.d.ts
CHANGED
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
* different result. Kept equal to package.json's version by `npm version` (the `version` script rewrites this file)
|
|
5
5
|
* and by `kernel-version.test.ts`.
|
|
6
6
|
*/
|
|
7
|
-
export declare const FIGURE_KERNEL_VERSION = "0.
|
|
7
|
+
export declare const FIGURE_KERNEL_VERSION = "0.4.0";
|
|
8
8
|
//# sourceMappingURL=kernel-version.d.ts.map
|
package/dist/kernel-version.js
CHANGED
|
@@ -7,5 +7,5 @@
|
|
|
7
7
|
* different result. Kept equal to package.json's version by `npm version` (the `version` script rewrites this file)
|
|
8
8
|
* and by `kernel-version.test.ts`.
|
|
9
9
|
*/
|
|
10
|
-
export const FIGURE_KERNEL_VERSION = '0.
|
|
10
|
+
export const FIGURE_KERNEL_VERSION = '0.4.0';
|
|
11
11
|
//# sourceMappingURL=kernel-version.js.map
|
package/dist/names.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** A namespace: dot-separated lower-case labels, 63 characters at most (`hatiolab.com`, `system`). */
|
|
2
|
+
export declare const NAMESPACE_PATTERN: RegExp;
|
|
3
|
+
export declare const NAMESPACE_MAX_LENGTH = 63;
|
|
4
|
+
export interface FigureName {
|
|
5
|
+
readonly namespace: string;
|
|
6
|
+
readonly type: string;
|
|
7
|
+
}
|
|
8
|
+
export interface FigureRef extends FigureName {
|
|
9
|
+
readonly version: number;
|
|
10
|
+
}
|
|
11
|
+
export declare function isFigureNamespace(text: string): boolean;
|
|
12
|
+
export declare function isFigureType(text: string): boolean;
|
|
13
|
+
/** `{namespace}/{type}`, or null when the text is not a full figure name. */
|
|
14
|
+
export declare function parseFigureName(text: string): FigureName | null;
|
|
15
|
+
/** `{namespace}/{type}@{version}`, or null when the text is not a release reference. */
|
|
16
|
+
export declare function parseFigureRef(text: string): FigureRef | null;
|
|
17
|
+
export declare function formatFigureName(name: FigureName): string;
|
|
18
|
+
export declare function formatFigureRef(ref: FigureRef): string;
|
|
19
|
+
//# sourceMappingURL=names.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"names.d.ts","sourceRoot":"","sources":["../src/names.ts"],"names":[],"mappings":"AAaA,sGAAsG;AACtG,eAAO,MAAM,iBAAiB,QAAyC,CAAA;AACvE,eAAO,MAAM,oBAAoB,KAAK,CAAA;AAEtC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,SAAU,SAAQ,UAAU;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAM/D;AAED,wFAAwF;AACxF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAO7D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEzD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAEtD"}
|
package/dist/names.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* A figure's full name and a release reference (ADR-0114).
|
|
3
|
+
*
|
|
4
|
+
* full name {namespace}/{type} hatiolab.com/trailer-22
|
|
5
|
+
* reference {namespace}/{type}@{version} hatiolab.com/trailer-22@3
|
|
6
|
+
*
|
|
7
|
+
* The namespace is a lower-case domain-name form owned by one tenant, so names from different servers never collide.
|
|
8
|
+
* Boards store the full name as a node's `type`; the version is chosen by the board server's type map, not the board.
|
|
9
|
+
*/
|
|
10
|
+
import { TYPE_LENGTH, TYPE_PATTERN } from "./words.js";
|
|
11
|
+
const LABEL = '[a-z0-9]([a-z0-9-]*[a-z0-9])?';
|
|
12
|
+
/** A namespace: dot-separated lower-case labels, 63 characters at most (`hatiolab.com`, `system`). */
|
|
13
|
+
export const NAMESPACE_PATTERN = new RegExp(`^${LABEL}(\\.${LABEL})*$`);
|
|
14
|
+
export const NAMESPACE_MAX_LENGTH = 63;
|
|
15
|
+
export function isFigureNamespace(text) {
|
|
16
|
+
return text.length <= NAMESPACE_MAX_LENGTH && NAMESPACE_PATTERN.test(text);
|
|
17
|
+
}
|
|
18
|
+
export function isFigureType(text) {
|
|
19
|
+
return text.length >= TYPE_LENGTH.min && text.length <= TYPE_LENGTH.max && TYPE_PATTERN.test(text);
|
|
20
|
+
}
|
|
21
|
+
/** `{namespace}/{type}`, or null when the text is not a full figure name. */
|
|
22
|
+
export function parseFigureName(text) {
|
|
23
|
+
const slash = text.indexOf('/');
|
|
24
|
+
if (slash < 0 || text.indexOf('/', slash + 1) >= 0)
|
|
25
|
+
return null;
|
|
26
|
+
const namespace = text.slice(0, slash);
|
|
27
|
+
const type = text.slice(slash + 1);
|
|
28
|
+
return isFigureNamespace(namespace) && isFigureType(type) ? { namespace, type } : null;
|
|
29
|
+
}
|
|
30
|
+
/** `{namespace}/{type}@{version}`, or null when the text is not a release reference. */
|
|
31
|
+
export function parseFigureRef(text) {
|
|
32
|
+
const at = text.lastIndexOf('@');
|
|
33
|
+
if (at < 0)
|
|
34
|
+
return null;
|
|
35
|
+
const digits = text.slice(at + 1);
|
|
36
|
+
if (!/^[1-9][0-9]*$/.test(digits))
|
|
37
|
+
return null;
|
|
38
|
+
const name = parseFigureName(text.slice(0, at));
|
|
39
|
+
return name ? { ...name, version: Number(digits) } : null;
|
|
40
|
+
}
|
|
41
|
+
export function formatFigureName(name) {
|
|
42
|
+
return `${name.namespace}/${name.type}`;
|
|
43
|
+
}
|
|
44
|
+
export function formatFigureRef(ref) {
|
|
45
|
+
return `${formatFigureName(ref)}@${ref.version}`;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=names.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"names.js","sourceRoot":"","sources":["../src/names.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEtD,MAAM,KAAK,GAAG,+BAA+B,CAAA;AAE7C,sGAAsG;AACtG,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,KAAK,KAAK,CAAC,CAAA;AACvE,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAA;AAWtC,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,IAAI,CAAC,MAAM,IAAI,oBAAoB,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC5E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACpG,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC/B,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;IAClC,OAAO,iBAAiB,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACxF,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IAChC,IAAI,EAAE,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IACvB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IACjC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAA;IAC9C,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IAC/C,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AAC3D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAgB;IAC/C,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,CAAA;AACzC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAc;IAC5C,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAA;AAClD,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
export declare const FIGURE_PACKAGE_FORMAT = 1;
|
|
2
|
+
export declare const FIGURE_PACKAGE_MANIFEST = "manifest.json";
|
|
3
|
+
export declare const FIGURE_PACKAGE_CHECKSUM = "checksum.sha256";
|
|
4
|
+
/** Lower-case hex SHA-256 of the bytes. */
|
|
5
|
+
export type Sha256 = (bytes: Uint8Array) => string;
|
|
6
|
+
/** Where the package came from: the figure server that can give these releases again. */
|
|
7
|
+
export interface FigurePackageSource {
|
|
8
|
+
readonly url: string;
|
|
9
|
+
readonly domain: string;
|
|
10
|
+
}
|
|
11
|
+
/** What a file a release depends on is for. A figure is drawn from its source alone; the thumbnail is the only file. */
|
|
12
|
+
export type FigurePackageBlobRole = 'thumbnail';
|
|
13
|
+
/** A file a release depends on, as the manifest lists it. */
|
|
14
|
+
export interface FigurePackageBlob {
|
|
15
|
+
readonly hash: string;
|
|
16
|
+
readonly role: FigurePackageBlobRole;
|
|
17
|
+
readonly size: number;
|
|
18
|
+
readonly contentType: string;
|
|
19
|
+
}
|
|
20
|
+
export interface FigurePackageEntry {
|
|
21
|
+
readonly ref: string;
|
|
22
|
+
readonly assetFormat: string;
|
|
23
|
+
readonly kernelVersion: string | null;
|
|
24
|
+
readonly contentHash: string;
|
|
25
|
+
readonly blobs: readonly FigurePackageBlob[];
|
|
26
|
+
}
|
|
27
|
+
export interface FigurePackageManifest {
|
|
28
|
+
readonly packageFormat: number;
|
|
29
|
+
readonly exportedAt: string;
|
|
30
|
+
readonly exportedBy: string | null;
|
|
31
|
+
readonly source: FigurePackageSource;
|
|
32
|
+
readonly releases: readonly FigurePackageEntry[];
|
|
33
|
+
}
|
|
34
|
+
/** One release as the package carries it. `source` is the figure's source text; `thumbnail` is a blob hash. */
|
|
35
|
+
export interface FigurePackageRelease {
|
|
36
|
+
readonly ref: string;
|
|
37
|
+
readonly name: string;
|
|
38
|
+
readonly names: Readonly<Record<string, string>> | null;
|
|
39
|
+
readonly description: string | null;
|
|
40
|
+
readonly category: string | null;
|
|
41
|
+
readonly source: string;
|
|
42
|
+
readonly assetFormat: string;
|
|
43
|
+
readonly kernelVersion: string | null;
|
|
44
|
+
readonly metrics: unknown;
|
|
45
|
+
readonly topView: unknown;
|
|
46
|
+
readonly changes: unknown;
|
|
47
|
+
readonly thumbnail: string | null;
|
|
48
|
+
readonly deprecated: boolean;
|
|
49
|
+
readonly supersededBy: string | null;
|
|
50
|
+
readonly releasedAt: string;
|
|
51
|
+
}
|
|
52
|
+
export interface FigurePackageInput {
|
|
53
|
+
readonly source: FigurePackageSource;
|
|
54
|
+
readonly exportedAt: string;
|
|
55
|
+
readonly exportedBy: string | null;
|
|
56
|
+
readonly releases: readonly FigurePackageRelease[];
|
|
57
|
+
readonly blobs: ReadonlyMap<string, FigurePackageBlobFile>;
|
|
58
|
+
}
|
|
59
|
+
/** A dependency file's bytes and its media type. */
|
|
60
|
+
export interface FigurePackageBlobFile {
|
|
61
|
+
readonly bytes: Uint8Array;
|
|
62
|
+
readonly contentType: string;
|
|
63
|
+
}
|
|
64
|
+
export type FigurePackageProblemCode = 'manifest-missing' | 'manifest-unreadable' | 'package-format-unsupported' | 'checksum-missing' | 'checksum-mismatch' | 'file-missing' | 'file-unlisted' | 'ref-malformed' | 'ref-duplicate' | 'release-missing' | 'release-unreadable' | 'release-ref-mismatch' | 'content-hash-mismatch' | 'asset-format-mismatch' | 'blob-missing' | 'blob-hash-mismatch' | 'blob-size-mismatch' | 'blob-unreadable' | 'thumbnail-unlisted';
|
|
65
|
+
export interface FigurePackageProblem {
|
|
66
|
+
readonly code: FigurePackageProblemCode;
|
|
67
|
+
readonly path?: string;
|
|
68
|
+
readonly ref?: string;
|
|
69
|
+
}
|
|
70
|
+
/** What a package holds. Package problems refuse it whole; a refused release refuses only that release. */
|
|
71
|
+
export interface FigurePackageContents {
|
|
72
|
+
readonly manifest: FigurePackageManifest | null;
|
|
73
|
+
readonly releases: readonly FigurePackageRelease[];
|
|
74
|
+
readonly blobs: ReadonlyMap<string, FigurePackageBlobFile>;
|
|
75
|
+
readonly problems: readonly FigurePackageProblem[];
|
|
76
|
+
readonly refused: readonly FigurePackageProblem[];
|
|
77
|
+
}
|
|
78
|
+
export declare function figureReleasePath(ref: string): string;
|
|
79
|
+
export declare function figureBlobPath(hash: string): string;
|
|
80
|
+
/** The hash a release is known by: SHA-256 of its source text. */
|
|
81
|
+
export declare function figureContentHash(source: string, sha256: Sha256): string;
|
|
82
|
+
/** The package as files, ready to zip. */
|
|
83
|
+
export declare function writeFigurePackage(input: FigurePackageInput, sha256: Sha256): Map<string, Uint8Array>;
|
|
84
|
+
/** Reads and checks a package's files. Nothing outside the files is consulted. */
|
|
85
|
+
export declare function readFigurePackage(files: ReadonlyMap<string, Uint8Array>, sha256: Sha256): FigurePackageContents;
|
|
86
|
+
//# sourceMappingURL=package.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../src/package.ts"],"names":[],"mappings":"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"}
|
package/dist/package.js
ADDED
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* The figure package: released figures carried as files from the server that authored them to a board server that
|
|
3
|
+
* imports them (ADR-0114). One rule for both ends -- figure-service writes it, figure-library reads it.
|
|
4
|
+
*
|
|
5
|
+
* manifest.json
|
|
6
|
+
* releases/{namespace}/{type}@{version}.json
|
|
7
|
+
* blobs/{sha256}
|
|
8
|
+
* checksum.sha256 "{sha256} {path}" per file, sorted by path, itself excluded
|
|
9
|
+
*
|
|
10
|
+
* The caller zips and unzips the files and supplies sha256; this module has no dependencies.
|
|
11
|
+
*/
|
|
12
|
+
import { formatFigureRef, parseFigureRef } from "./names.js";
|
|
13
|
+
export const FIGURE_PACKAGE_FORMAT = 1;
|
|
14
|
+
export const FIGURE_PACKAGE_MANIFEST = 'manifest.json';
|
|
15
|
+
export const FIGURE_PACKAGE_CHECKSUM = 'checksum.sha256';
|
|
16
|
+
const encoder = new TextEncoder();
|
|
17
|
+
const decoder = new TextDecoder();
|
|
18
|
+
export function figureReleasePath(ref) {
|
|
19
|
+
return `releases/${ref}.json`;
|
|
20
|
+
}
|
|
21
|
+
export function figureBlobPath(hash) {
|
|
22
|
+
return `blobs/${hash}`;
|
|
23
|
+
}
|
|
24
|
+
/** The hash a release is known by: SHA-256 of its source text. */
|
|
25
|
+
export function figureContentHash(source, sha256) {
|
|
26
|
+
return sha256(encoder.encode(source));
|
|
27
|
+
}
|
|
28
|
+
/** The format a source declares (`version` at its top), or null when the source is not a JSON object. */
|
|
29
|
+
function assetFormatOf(source) {
|
|
30
|
+
try {
|
|
31
|
+
const parsed = JSON.parse(source);
|
|
32
|
+
return parsed && typeof parsed === 'object' && typeof parsed.version === 'string' ? parsed.version : null;
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/** The package as files, ready to zip. */
|
|
39
|
+
export function writeFigurePackage(input, sha256) {
|
|
40
|
+
const files = new Map();
|
|
41
|
+
const entries = [];
|
|
42
|
+
const used = new Set();
|
|
43
|
+
for (const release of input.releases) {
|
|
44
|
+
const blobs = [];
|
|
45
|
+
if (release.thumbnail) {
|
|
46
|
+
const file = input.blobs.get(release.thumbnail);
|
|
47
|
+
if (!file)
|
|
48
|
+
throw new Error(`blob ${release.thumbnail} of ${release.ref} was not given`);
|
|
49
|
+
blobs.push({ hash: release.thumbnail, role: 'thumbnail', size: file.bytes.length, contentType: file.contentType });
|
|
50
|
+
used.add(release.thumbnail);
|
|
51
|
+
}
|
|
52
|
+
entries.push({
|
|
53
|
+
ref: release.ref,
|
|
54
|
+
assetFormat: release.assetFormat,
|
|
55
|
+
kernelVersion: release.kernelVersion,
|
|
56
|
+
contentHash: figureContentHash(release.source, sha256),
|
|
57
|
+
blobs
|
|
58
|
+
});
|
|
59
|
+
files.set(figureReleasePath(release.ref), encoder.encode(JSON.stringify(release)));
|
|
60
|
+
}
|
|
61
|
+
for (const hash of used)
|
|
62
|
+
files.set(figureBlobPath(hash), input.blobs.get(hash).bytes);
|
|
63
|
+
const manifest = {
|
|
64
|
+
packageFormat: FIGURE_PACKAGE_FORMAT,
|
|
65
|
+
exportedAt: input.exportedAt,
|
|
66
|
+
exportedBy: input.exportedBy,
|
|
67
|
+
source: input.source,
|
|
68
|
+
releases: entries
|
|
69
|
+
};
|
|
70
|
+
files.set(FIGURE_PACKAGE_MANIFEST, encoder.encode(JSON.stringify(manifest, null, 2)));
|
|
71
|
+
const lines = [...files.keys()].sort().map(path => `${sha256(files.get(path))} ${path}`);
|
|
72
|
+
files.set(FIGURE_PACKAGE_CHECKSUM, encoder.encode(lines.join('\n') + '\n'));
|
|
73
|
+
return files;
|
|
74
|
+
}
|
|
75
|
+
/** Reads and checks a package's files. Nothing outside the files is consulted. */
|
|
76
|
+
export function readFigurePackage(files, sha256) {
|
|
77
|
+
const problems = [];
|
|
78
|
+
const refused = [];
|
|
79
|
+
const none = () => ({ manifest: null, releases: [], blobs: new Map(), problems, refused });
|
|
80
|
+
const checksum = files.get(FIGURE_PACKAGE_CHECKSUM);
|
|
81
|
+
if (!checksum)
|
|
82
|
+
problems.push({ code: 'checksum-missing', path: FIGURE_PACKAGE_CHECKSUM });
|
|
83
|
+
else {
|
|
84
|
+
const listed = new Set();
|
|
85
|
+
for (const line of decoder.decode(checksum).split('\n')) {
|
|
86
|
+
if (!line.trim())
|
|
87
|
+
continue;
|
|
88
|
+
const match = /^([0-9a-f]{64}) {2}(.+)$/.exec(line);
|
|
89
|
+
if (!match) {
|
|
90
|
+
problems.push({ code: 'checksum-mismatch', path: FIGURE_PACKAGE_CHECKSUM });
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
const [, hash, path] = match;
|
|
94
|
+
listed.add(path);
|
|
95
|
+
const bytes = files.get(path);
|
|
96
|
+
if (!bytes)
|
|
97
|
+
problems.push({ code: 'file-missing', path });
|
|
98
|
+
else if (sha256(bytes) !== hash)
|
|
99
|
+
problems.push({ code: 'checksum-mismatch', path });
|
|
100
|
+
}
|
|
101
|
+
for (const path of files.keys()) {
|
|
102
|
+
if (path !== FIGURE_PACKAGE_CHECKSUM && !listed.has(path))
|
|
103
|
+
problems.push({ code: 'file-unlisted', path });
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
const manifestBytes = files.get(FIGURE_PACKAGE_MANIFEST);
|
|
107
|
+
if (!manifestBytes) {
|
|
108
|
+
problems.push({ code: 'manifest-missing', path: FIGURE_PACKAGE_MANIFEST });
|
|
109
|
+
return none();
|
|
110
|
+
}
|
|
111
|
+
let manifest;
|
|
112
|
+
try {
|
|
113
|
+
manifest = JSON.parse(decoder.decode(manifestBytes));
|
|
114
|
+
if (!manifest || !Array.isArray(manifest.releases) || !manifest.source)
|
|
115
|
+
throw new Error('shape');
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
problems.push({ code: 'manifest-unreadable', path: FIGURE_PACKAGE_MANIFEST });
|
|
119
|
+
return none();
|
|
120
|
+
}
|
|
121
|
+
if (manifest.packageFormat !== FIGURE_PACKAGE_FORMAT) {
|
|
122
|
+
problems.push({ code: 'package-format-unsupported', path: FIGURE_PACKAGE_MANIFEST });
|
|
123
|
+
}
|
|
124
|
+
if (problems.length)
|
|
125
|
+
return { ...none(), manifest };
|
|
126
|
+
const releases = [];
|
|
127
|
+
const blobs = new Map();
|
|
128
|
+
const seen = new Set();
|
|
129
|
+
for (const entry of manifest.releases) {
|
|
130
|
+
const parsed = typeof entry?.ref === 'string' ? parseFigureRef(entry.ref) : null;
|
|
131
|
+
if (!parsed) {
|
|
132
|
+
refused.push({ code: 'ref-malformed', ref: String(entry?.ref) });
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
const ref = formatFigureRef(parsed);
|
|
136
|
+
if (seen.has(ref)) {
|
|
137
|
+
refused.push({ code: 'ref-duplicate', ref });
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
seen.add(ref);
|
|
141
|
+
const path = figureReleasePath(ref);
|
|
142
|
+
const bytes = files.get(path);
|
|
143
|
+
if (!bytes) {
|
|
144
|
+
refused.push({ code: 'release-missing', ref, path });
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
let release;
|
|
148
|
+
try {
|
|
149
|
+
release = JSON.parse(decoder.decode(bytes));
|
|
150
|
+
if (!release || typeof release.source !== 'string')
|
|
151
|
+
throw new Error('shape');
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
refused.push({ code: 'release-unreadable', ref, path });
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
if (release.ref !== ref) {
|
|
158
|
+
refused.push({ code: 'release-ref-mismatch', ref, path });
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
const contentHash = figureContentHash(release.source, sha256);
|
|
162
|
+
if (contentHash !== entry.contentHash) {
|
|
163
|
+
refused.push({ code: 'content-hash-mismatch', ref, path });
|
|
164
|
+
continue;
|
|
165
|
+
}
|
|
166
|
+
if (assetFormatOf(release.source) !== release.assetFormat || entry.assetFormat !== release.assetFormat) {
|
|
167
|
+
refused.push({ code: 'asset-format-mismatch', ref, path });
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
170
|
+
const listed = Array.isArray(entry.blobs) ? entry.blobs : [];
|
|
171
|
+
if (listed.some(blob => !blob || typeof blob.hash !== 'string' || typeof blob.size !== 'number')) {
|
|
172
|
+
refused.push({ code: 'blob-unreadable', ref });
|
|
173
|
+
continue;
|
|
174
|
+
}
|
|
175
|
+
if (release.thumbnail && !listed.some(blob => blob.hash === release.thumbnail && blob.role === 'thumbnail')) {
|
|
176
|
+
refused.push({ code: 'thumbnail-unlisted', ref });
|
|
177
|
+
continue;
|
|
178
|
+
}
|
|
179
|
+
const blobProblem = listed
|
|
180
|
+
.map((blob) => {
|
|
181
|
+
const path = figureBlobPath(blob.hash);
|
|
182
|
+
const bytes = files.get(path);
|
|
183
|
+
if (!bytes)
|
|
184
|
+
return { code: 'blob-missing', ref, path };
|
|
185
|
+
if (sha256(bytes) !== blob.hash)
|
|
186
|
+
return { code: 'blob-hash-mismatch', ref, path };
|
|
187
|
+
if (bytes.length !== blob.size)
|
|
188
|
+
return { code: 'blob-size-mismatch', ref, path };
|
|
189
|
+
return null;
|
|
190
|
+
})
|
|
191
|
+
.find(problem => problem);
|
|
192
|
+
if (blobProblem) {
|
|
193
|
+
refused.push(blobProblem);
|
|
194
|
+
continue;
|
|
195
|
+
}
|
|
196
|
+
for (const blob of listed)
|
|
197
|
+
blobs.set(blob.hash, { bytes: files.get(figureBlobPath(blob.hash)), contentType: blob.contentType });
|
|
198
|
+
releases.push(release);
|
|
199
|
+
}
|
|
200
|
+
return { manifest, releases, blobs, problems, refused };
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.js","sourceRoot":"","sources":["../src/package.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { FigureAssetGeometry } from './asset-types.ts';
|
|
2
|
+
/** Runtime tessellation; unrelated to the asset's S/M/L/XL authoring budget. */
|
|
3
|
+
export type FigureRenderLevel = 'full' | 'medium' | 'coarse';
|
|
4
|
+
export declare const FIGURE_RENDER_POLICY_VERSION = 1;
|
|
5
|
+
export declare const FIGURE_DEFAULT_SEGMENTS = 12;
|
|
6
|
+
/** Only curved providers vary. Polygon topology, cavities and semantic poses remain unchanged. */
|
|
7
|
+
export declare function figureRenderSegmentsOf(body: FigureAssetGeometry, level: FigureRenderLevel): number | undefined;
|
|
8
|
+
/** A render-only view. Never pass this approximation to inspection, score or simulation. */
|
|
9
|
+
export declare function figureRenderViewOf<T extends {
|
|
10
|
+
geometry: readonly FigureAssetGeometry[];
|
|
11
|
+
}>(evaluation: T, level: FigureRenderLevel): T;
|
|
12
|
+
//# sourceMappingURL=render-lod.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-lod.d.ts","sourceRoot":"","sources":["../src/render-lod.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAG3D,gFAAgF;AAChF,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAC5D,eAAO,MAAM,4BAA4B,IAAI,CAAA;AAC7C,eAAO,MAAM,uBAAuB,KAAK,CAAA;AAEzC,kGAAkG;AAClG,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAY9G;AAED,4FAA4F;AAC5F,wBAAgB,kBAAkB,CAAC,CAAC,SAAS;IAAE,QAAQ,EAAE,SAAS,mBAAmB,EAAE,CAAA;CAAE,EACvF,UAAU,EAAE,CAAC,EACb,KAAK,EAAE,iBAAiB,GACvB,CAAC,CAUH"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { SEGMENT_PRESETS } from "./words.js";
|
|
2
|
+
export const FIGURE_RENDER_POLICY_VERSION = 1;
|
|
3
|
+
export const FIGURE_DEFAULT_SEGMENTS = 12;
|
|
4
|
+
/** Only curved providers vary. Polygon topology, cavities and semantic poses remain unchanged. */
|
|
5
|
+
export function figureRenderSegmentsOf(body, level) {
|
|
6
|
+
const shape = 'shape' in body ? body.shape : undefined;
|
|
7
|
+
const section = shape?.extrusion?.section;
|
|
8
|
+
const curved = (shape?.provider === 'revolve' && !!shape.revolution) ||
|
|
9
|
+
(shape?.provider === 'extrude' &&
|
|
10
|
+
(section?.kind === 'ellipse' ||
|
|
11
|
+
(section?.kind === 'rectangle' && Object.values(section.corner ?? {}).some(n => n > 0))));
|
|
12
|
+
if (!curved || level === 'full')
|
|
13
|
+
return body.segments;
|
|
14
|
+
const n = body.segments ?? FIGURE_DEFAULT_SEGMENTS;
|
|
15
|
+
const target = Math.ceil(n / (level === 'medium' ? 2 : 4));
|
|
16
|
+
return Math.min(n, SEGMENT_PRESETS.find(p => p >= target) ?? n);
|
|
17
|
+
}
|
|
18
|
+
/** A render-only view. Never pass this approximation to inspection, score or simulation. */
|
|
19
|
+
export function figureRenderViewOf(evaluation, level) {
|
|
20
|
+
if (level === 'full')
|
|
21
|
+
return evaluation;
|
|
22
|
+
let changed = false;
|
|
23
|
+
const geometry = evaluation.geometry.map(body => {
|
|
24
|
+
const segments = figureRenderSegmentsOf(body, level);
|
|
25
|
+
if (segments === body.segments)
|
|
26
|
+
return body;
|
|
27
|
+
changed = true;
|
|
28
|
+
return { ...body, segments };
|
|
29
|
+
});
|
|
30
|
+
return changed ? { ...evaluation, geometry } : evaluation;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=render-lod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-lod.js","sourceRoot":"","sources":["../src/render-lod.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAI5C,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAA;AAC7C,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAA;AAEzC,kGAAkG;AAClG,MAAM,UAAU,sBAAsB,CAAC,IAAyB,EAAE,KAAwB;IACxF,MAAM,KAAK,GAAG,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;IACtD,MAAM,OAAO,GAAG,KAAK,EAAE,SAAS,EAAE,OAAO,CAAA;IACzC,MAAM,MAAM,GACV,CAAC,KAAK,EAAE,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;QACrD,CAAC,KAAK,EAAE,QAAQ,KAAK,SAAS;YAC5B,CAAC,OAAO,EAAE,IAAI,KAAK,SAAS;gBAC1B,CAAC,OAAO,EAAE,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/F,IAAI,CAAC,MAAM,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC,QAAQ,CAAA;IACrD,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,uBAAuB,CAAA;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;AACjE,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,kBAAkB,CAChC,UAAa,EACb,KAAwB;IAExB,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,UAAU,CAAA;IACvC,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QAC9C,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACpD,IAAI,QAAQ,KAAK,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QAC3C,OAAO,GAAG,IAAI,CAAA;QACd,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAA;IAC9B,CAAC,CAAC,CAAA;IACF,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,UAAU,CAAA;AAC3D,CAAC"}
|
package/dist/shape-ops.d.ts
CHANGED
|
@@ -151,7 +151,7 @@ export interface FigureEvaluatedShape {
|
|
|
151
151
|
/** The two operators, in the graph's operator shape. */
|
|
152
152
|
export declare const FIGURE_SHAPE_OPERATORS: Record<string, Dynamic>;
|
|
153
153
|
/** How far an evaluated shape reaches along each of its own axes: least and most, in its own frame. */
|
|
154
|
-
export declare function figureShapeBoundsOf(shape: FigureEvaluatedShape): Record<Axis, {
|
|
154
|
+
export declare function figureShapeBoundsOf(shape: Pick<FigureEvaluatedShape, 'extrusion' | 'loft' | 'revolution'>): Record<Axis, {
|
|
155
155
|
min: number;
|
|
156
156
|
max: number;
|
|
157
157
|
}>;
|
package/dist/shape-ops.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shape-ops.d.ts","sourceRoot":"","sources":["../src/shape-ops.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"shape-ops.d.ts","sourceRoot":"","sources":["../src/shape-ops.ts"],"names":[],"mappings":"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"}
|