@metamesh/generator-sdk 0.8.0 → 0.9.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 +8 -0
- package/README.md +44 -1
- package/dist/contracts.d.ts +5 -2
- package/dist/contracts.d.ts.map +1 -1
- package/dist/cross-sections.d.ts +41 -0
- package/dist/cross-sections.d.ts.map +1 -0
- package/dist/cross-sections.js +192 -0
- package/dist/cross-sections.js.map +1 -0
- package/dist/generator-package/constants.d.ts +1 -1
- package/dist/generator-package/constants.js +1 -1
- package/dist/generator-package/schemas/definition.schema.d.ts +17 -0
- package/dist/generator-package/schemas/definition.schema.d.ts.map +1 -1
- package/dist/generator-package/schemas/manifest.schema.d.ts +17 -0
- package/dist/generator-package/schemas/manifest.schema.d.ts.map +1 -1
- package/dist/generator-package/schemas/parameter.schema.d.ts +38 -0
- package/dist/generator-package/schemas/parameter.schema.d.ts.map +1 -1
- package/dist/generator-package/schemas/parameter.schema.js +11 -0
- package/dist/generator-package/schemas/parameter.schema.js.map +1 -1
- package/dist/generator-package/schemas/preset.schema.d.ts.map +1 -1
- package/dist/generator-package/schemas/preset.schema.js +2 -0
- package/dist/generator-package/schemas/preset.schema.js.map +1 -1
- package/dist/generator-package/validate-definition.d.ts.map +1 -1
- package/dist/generator-package/validate-definition.js +18 -9
- package/dist/generator-package/validate-definition.js.map +1 -1
- package/dist/generator-package/validate-manifest.d.ts.map +1 -1
- package/dist/generator-package/validate-manifest.js +5 -0
- package/dist/generator-package/validate-manifest.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/parameter-contracts.d.ts +10 -1
- package/dist/parameter-contracts.d.ts.map +1 -1
- package/dist/parameters/issues.d.ts.map +1 -1
- package/dist/parameters/issues.js +11 -4
- package/dist/parameters/issues.js.map +1 -1
- package/dist/parameters/recovery.d.ts.map +1 -1
- package/dist/parameters/recovery.js +6 -1
- package/dist/parameters/recovery.js.map +1 -1
- package/dist/parameters/strict.d.ts.map +1 -1
- package/dist/parameters/strict.js +4 -0
- package/dist/parameters/strict.js.map +1 -1
- package/dist/parameters/values.d.ts.map +1 -1
- package/dist/parameters/values.js +4 -0
- package/dist/parameters/values.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @metamesh/generator-sdk
|
|
2
2
|
|
|
3
|
+
## 0.9.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- e405876: Add a bounded closed XY cross-section parameter with immutable values, strict validation,
|
|
8
|
+
normalization, presets, and runtime compatibility checks. Add `sampleCrossSection` for physical
|
|
9
|
+
curve sampling and validated closed-loop geometry. Existing side-profile values remain compatible.
|
|
10
|
+
|
|
3
11
|
## 0.8.0
|
|
4
12
|
|
|
5
13
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -29,7 +29,7 @@ Studio owns persistence and the Modeling engine owns modeling and manufacturing
|
|
|
29
29
|
## Parameter definitions
|
|
30
30
|
|
|
31
31
|
Parameters use a `type` discriminant: `number`, `slider`, `boolean`, `select`, `choice-set`, `color`,
|
|
32
|
-
`text`, `font`, `svg`, `profile`, or homogeneous `array`. Sliders require `min`, `max`, and `step`;
|
|
32
|
+
`text`, `font`, `svg`, `profile`, `cross-section`, or homogeneous `array`. Sliders require `min`, `max`, and `step`;
|
|
33
33
|
numbers may omit them. Visibility uses serializable `ConditionExpression` values with `all`, `any`,
|
|
34
34
|
`not`, equality/inequality, numeric comparisons, and choice-set membership (`contains`).
|
|
35
35
|
|
|
@@ -204,6 +204,49 @@ shape and editing intent. Normalization, strict codecs, defaults, and presets cl
|
|
|
204
204
|
profile object. Invalid saved profiles recover to the declared default; strict boundaries reject
|
|
205
205
|
them. Profiles cannot be condition operands. All executable packages use format `2` and runtime major `2`.
|
|
206
206
|
|
|
207
|
+
### Editable cross sections
|
|
208
|
+
|
|
209
|
+
A `cross-section` declares one closed planar contour as a versioned `CrossSectionValue`.
|
|
210
|
+
It uses normalized `x` and upward `y` coordinates in `[0, 1]`, with `corner` or `smooth` anchor
|
|
211
|
+
modes and explicit `line` or `cubic` segments. Cubic controls retain the authored geometry;
|
|
212
|
+
editing modes never change it during execution. The final segment's end repeats the start's
|
|
213
|
+
coordinates and mode so the seam is one editable point.
|
|
214
|
+
|
|
215
|
+
```ts
|
|
216
|
+
const crossSection = {
|
|
217
|
+
id: "crossSection",
|
|
218
|
+
label: "Cross section",
|
|
219
|
+
type: "cross-section",
|
|
220
|
+
widthScale: { parameterId: "width", factor: 1 },
|
|
221
|
+
heightScale: { parameterId: "height", factor: 1 },
|
|
222
|
+
default: {
|
|
223
|
+
version: 1,
|
|
224
|
+
start: { x: 0, y: 0, mode: "corner" },
|
|
225
|
+
segments: [
|
|
226
|
+
{ type: "line", end: { x: 1, y: 0, mode: "corner" } },
|
|
227
|
+
{ type: "line", end: { x: 1, y: 1, mode: "corner" } },
|
|
228
|
+
{ type: "line", end: { x: 0, y: 1, mode: "corner" } },
|
|
229
|
+
{ type: "line", end: { x: 0, y: 0, mode: "corner" } },
|
|
230
|
+
],
|
|
231
|
+
},
|
|
232
|
+
} as const;
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
Contours have 2–32 segments and can travel in any direction. They have no holes or multiple loops.
|
|
236
|
+
Structural validity establishes bounded serializable data and explicit closure; the Generator
|
|
237
|
+
owns physical scaling, nonzero area, intersections, winding, and operation-specific geometry checks.
|
|
238
|
+
Optional `widthScale` and `heightScale` use the same positive millimetre references as side profiles.
|
|
239
|
+
They describe the coordinate envelope and never transform saved values; omitting them leaves
|
|
240
|
+
normalized coordinates.
|
|
241
|
+
|
|
242
|
+
`isCrossSectionValue()`, `cloneCrossSectionValue()`, and `crossSectionValuesEqual()` apply the same
|
|
243
|
+
accessor-safe validation, deep cloning/freezing, and shape/editing equality guarantees as profiles.
|
|
244
|
+
Defaults, normalization, codecs, presets, and Worker parameter maps preserve those values.
|
|
245
|
+
Invalid saved data recovers to the declared default; strict boundaries reject it. Cross sections
|
|
246
|
+
cannot be condition operands. Packages declaring them require minimum runtime `2.2.0`; manifest
|
|
247
|
+
parsing rejects lower declared minima. Side profiles retain their existing representation and
|
|
248
|
+
compatibility.
|
|
249
|
+
|
|
207
250
|
### Curve resolution
|
|
208
251
|
|
|
209
252
|
A `number` or `slider` may declare `role: "curve-resolution"` to identify the model's maximum
|
package/dist/contracts.d.ts
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
|
+
import type { CrossSectionValue } from "./cross-sections.js";
|
|
1
2
|
import type { FontSelection } from "./fonts.js";
|
|
2
3
|
import type { GeneratorDefinition, ParameterDefinition } from "./parameter-contracts.js";
|
|
3
4
|
import type { ProfileValue } from "./profiles.js";
|
|
4
|
-
export type { ArrayParameterDefinition, BaseParameterDefinition, GeneratorDefinition, FontParameterDefinition, BooleanParameterDefinition, ChoiceSetParameterDefinition, ColorParameterDefinition, NumberArrayItemDefinition, NumberArrayParameterDefinition, NumberParameterDefinition, NumericParameterDefinition, ParameterDefinition, ParameterGroup, ProfileParameterDefinition, ProfileScaleReference, SelectOption, SelectParameterDefinition, StringArrayItemDefinition, StringArrayParameterDefinition, SvgParameterDefinition, SliderParameterDefinition, TextParameterDefinition, } from "./parameter-contracts.js";
|
|
5
|
+
export type { ArrayParameterDefinition, BaseParameterDefinition, GeneratorDefinition, FontParameterDefinition, BooleanParameterDefinition, ChoiceSetParameterDefinition, ColorParameterDefinition, CrossSectionParameterDefinition, CrossSectionScaleReference, NumberArrayItemDefinition, NumberArrayParameterDefinition, NumberParameterDefinition, NumericParameterDefinition, ParameterDefinition, ParameterGroup, ProfileParameterDefinition, ProfileScaleReference, SelectOption, SelectParameterDefinition, StringArrayItemDefinition, StringArrayParameterDefinition, SvgParameterDefinition, SliderParameterDefinition, TextParameterDefinition, } from "./parameter-contracts.js";
|
|
5
6
|
export type ScalarParameterValue = number | boolean | string;
|
|
6
|
-
export type ParameterValue = ScalarParameterValue | readonly number[] | readonly string[] | FontSelection | ProfileValue;
|
|
7
|
+
export type ParameterValue = ScalarParameterValue | readonly number[] | readonly string[] | FontSelection | ProfileValue | CrossSectionValue;
|
|
7
8
|
export type ParameterValues = Readonly<Record<string, ParameterValue>>;
|
|
8
9
|
type ParameterValueFor<Parameter extends ParameterDefinition> = Parameter extends {
|
|
9
10
|
readonly type: "font";
|
|
10
11
|
} ? FontSelection : Parameter extends {
|
|
11
12
|
readonly type: "profile";
|
|
12
13
|
} ? ProfileValue : Parameter extends {
|
|
14
|
+
readonly type: "cross-section";
|
|
15
|
+
} ? CrossSectionValue : Parameter extends {
|
|
13
16
|
readonly type: "number" | "slider";
|
|
14
17
|
} ? number : Parameter extends {
|
|
15
18
|
readonly type: "boolean";
|
package/dist/contracts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,EACzB,8BAA8B,EAC9B,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,cAAc,EACd,0BAA0B,EAC1B,qBAAqB,EACrB,YAAY,EACZ,yBAAyB,EACzB,yBAAyB,EACzB,8BAA8B,EAC9B,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAElC,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAE7D,MAAM,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { ParameterIssueCode } from "./contracts.js";
|
|
2
|
+
/** Maximum number of straight or cubic segments in an editable closed cross section. */
|
|
3
|
+
export declare const MAX_CROSS_SECTION_SEGMENTS = 32;
|
|
4
|
+
/** Normalized planar coordinates, with X rightward and Y upward, in the unit square. */
|
|
5
|
+
export interface CrossSectionPoint {
|
|
6
|
+
readonly x: number;
|
|
7
|
+
readonly y: number;
|
|
8
|
+
}
|
|
9
|
+
/** Editing intent accompanies the explicit curve controls; no tangent is inferred at runtime. */
|
|
10
|
+
export interface CrossSectionAnchor extends CrossSectionPoint {
|
|
11
|
+
readonly mode: "smooth" | "corner";
|
|
12
|
+
}
|
|
13
|
+
export type CrossSectionSegment = {
|
|
14
|
+
readonly type: "line";
|
|
15
|
+
readonly end: CrossSectionAnchor;
|
|
16
|
+
} | {
|
|
17
|
+
readonly type: "cubic";
|
|
18
|
+
readonly control1: CrossSectionPoint;
|
|
19
|
+
readonly control2: CrossSectionPoint;
|
|
20
|
+
readonly end: CrossSectionAnchor;
|
|
21
|
+
};
|
|
22
|
+
/** One explicitly closed planar contour. Generators own physical scaling and topology checks. */
|
|
23
|
+
export interface CrossSectionValue {
|
|
24
|
+
readonly version: 1;
|
|
25
|
+
readonly start: CrossSectionAnchor;
|
|
26
|
+
readonly segments: readonly CrossSectionSegment[];
|
|
27
|
+
}
|
|
28
|
+
interface CrossSectionValueProblem {
|
|
29
|
+
readonly code: ParameterIssueCode;
|
|
30
|
+
readonly path: readonly (number | string)[];
|
|
31
|
+
}
|
|
32
|
+
/** Internal diagnostics share the accessor-safe reader used by predicates and cloning. */
|
|
33
|
+
export declare function crossSectionValueProblem(value: unknown): CrossSectionValueProblem | undefined;
|
|
34
|
+
/** Checks portable data and explicit closure without evaluating getters or inspecting topology. */
|
|
35
|
+
export declare function isCrossSectionValue(value: unknown): value is CrossSectionValue;
|
|
36
|
+
/** Returns a fresh, deeply frozen closed contour, including its editing intent. */
|
|
37
|
+
export declare function cloneCrossSectionValue(value: CrossSectionValue): CrossSectionValue;
|
|
38
|
+
/** Compares the serialized shape and editing intent rather than object identity. */
|
|
39
|
+
export declare function crossSectionValuesEqual(previous: CrossSectionValue, next: CrossSectionValue): boolean;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=cross-sections.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cross-sections.d.ts","sourceRoot":"","sources":["../src/cross-sections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,wFAAwF;AACxF,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,wFAAwF;AACxF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iGAAiG;AACjG,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;CACpC;AAED,MAAM,MAAM,mBAAmB,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAA;CAAE,GAC3D;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;CAClC,CAAC;AAEN,iGAAiG;AACjG,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACnD;AAED,UAAU,wBAAwB;IAChC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;CAC7C;AAmKD,0FAA0F;AAC1F,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,wBAAwB,GAAG,SAAS,CAM7F;AAED,mGAAmG;AACnG,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAE9E;AAED,mFAAmF;AACnF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,iBAAiB,GAAG,iBAAiB,CA0BlF;AAED,oFAAoF;AACpF,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,iBAAiB,GACtB,OAAO,CA4BT"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/** Maximum number of straight or cubic segments in an editable closed cross section. */
|
|
2
|
+
export const MAX_CROSS_SECTION_SEGMENTS = 32;
|
|
3
|
+
function dataObject(value, expectedKeys, path, fail) {
|
|
4
|
+
if (typeof value !== "object" || value === null || Array.isArray(value))
|
|
5
|
+
return fail(path, "type");
|
|
6
|
+
const prototype = Object.getPrototypeOf(value);
|
|
7
|
+
if (prototype !== Object.prototype && prototype !== null)
|
|
8
|
+
return fail(path, "structure");
|
|
9
|
+
const unknown = Reflect.ownKeys(value).find((key) => typeof key !== "string" || !expectedKeys.includes(key));
|
|
10
|
+
if (unknown !== undefined) {
|
|
11
|
+
return fail(typeof unknown === "string" && unknown.length > 0 && unknown.length <= 120
|
|
12
|
+
? [...path, unknown]
|
|
13
|
+
: path, "unknown");
|
|
14
|
+
}
|
|
15
|
+
const entries = [];
|
|
16
|
+
for (const key of expectedKeys) {
|
|
17
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, key);
|
|
18
|
+
if (descriptor === undefined)
|
|
19
|
+
return fail([...path, key], "missing");
|
|
20
|
+
if (!("value" in descriptor) || !descriptor.enumerable)
|
|
21
|
+
return fail([...path, key], "structure");
|
|
22
|
+
entries.push([key, descriptor.value]);
|
|
23
|
+
}
|
|
24
|
+
return Object.fromEntries(entries);
|
|
25
|
+
}
|
|
26
|
+
function point(value, anchor, path, fail) {
|
|
27
|
+
const fields = dataObject(value, anchor ? ["x", "y", "mode"] : ["x", "y"], path, fail);
|
|
28
|
+
if (fields === undefined)
|
|
29
|
+
return undefined;
|
|
30
|
+
for (const coordinate of ["x", "y"]) {
|
|
31
|
+
const entry = fields[coordinate];
|
|
32
|
+
if (typeof entry !== "number" || !Number.isFinite(entry))
|
|
33
|
+
return fail([...path, coordinate], "type");
|
|
34
|
+
if (entry < 0)
|
|
35
|
+
return fail([...path, coordinate], "minimum");
|
|
36
|
+
if (entry > 1)
|
|
37
|
+
return fail([...path, coordinate], "maximum");
|
|
38
|
+
}
|
|
39
|
+
const coordinates = { x: fields.x, y: fields.y };
|
|
40
|
+
if (!anchor)
|
|
41
|
+
return coordinates;
|
|
42
|
+
if (fields.mode !== "smooth" && fields.mode !== "corner")
|
|
43
|
+
return fail([...path, "mode"], "choice");
|
|
44
|
+
return { ...coordinates, mode: fields.mode };
|
|
45
|
+
}
|
|
46
|
+
function readCrossSectionValue(value, report) {
|
|
47
|
+
const fail = (path, code) => {
|
|
48
|
+
report?.({ path, code });
|
|
49
|
+
return undefined;
|
|
50
|
+
};
|
|
51
|
+
try {
|
|
52
|
+
const fields = dataObject(value, ["version", "start", "segments"], [], fail);
|
|
53
|
+
if (fields === undefined)
|
|
54
|
+
return undefined;
|
|
55
|
+
if (fields.version !== 1)
|
|
56
|
+
return fail(["version"], "invalid");
|
|
57
|
+
const start = point(fields.start, true, ["start"], fail);
|
|
58
|
+
if (start === undefined)
|
|
59
|
+
return undefined;
|
|
60
|
+
if (!Array.isArray(fields.segments))
|
|
61
|
+
return fail(["segments"], "type");
|
|
62
|
+
const segments = fields.segments;
|
|
63
|
+
if (Object.getPrototypeOf(segments) !== Array.prototype)
|
|
64
|
+
return fail(["segments"], "structure");
|
|
65
|
+
const lengthDescriptor = Object.getOwnPropertyDescriptor(segments, "length");
|
|
66
|
+
if (lengthDescriptor === undefined || !("value" in lengthDescriptor))
|
|
67
|
+
return fail(["segments"], "structure");
|
|
68
|
+
const length = lengthDescriptor.value;
|
|
69
|
+
if (typeof length !== "number" ||
|
|
70
|
+
!Number.isInteger(length) ||
|
|
71
|
+
length < 2 ||
|
|
72
|
+
length > MAX_CROSS_SECTION_SEGMENTS)
|
|
73
|
+
return fail(["segments"], "length");
|
|
74
|
+
const keys = Reflect.ownKeys(segments);
|
|
75
|
+
if (keys.length !== length + 1 ||
|
|
76
|
+
!keys.every((key) => key === "length"
|
|
77
|
+
? true
|
|
78
|
+
: typeof key === "string" &&
|
|
79
|
+
Number.isSafeInteger(Number(key)) &&
|
|
80
|
+
Number(key) >= 0 &&
|
|
81
|
+
Number(key) < length &&
|
|
82
|
+
String(Number(key)) === key)) {
|
|
83
|
+
const missingIndex = Array.from({ length }, (_, index) => index).find((index) => !Object.hasOwn(segments, String(index)));
|
|
84
|
+
return fail(missingIndex === undefined ? ["segments"] : ["segments", missingIndex], missingIndex === undefined ? "structure" : "missing");
|
|
85
|
+
}
|
|
86
|
+
const parsedSegments = [];
|
|
87
|
+
for (let index = 0; index < length; index += 1) {
|
|
88
|
+
const segmentPath = ["segments", index];
|
|
89
|
+
const descriptor = Object.getOwnPropertyDescriptor(segments, String(index));
|
|
90
|
+
if (descriptor === undefined || !("value" in descriptor) || !descriptor.enumerable)
|
|
91
|
+
return fail(segmentPath, "structure");
|
|
92
|
+
const segment = descriptor.value;
|
|
93
|
+
if (typeof segment !== "object" || segment === null || Array.isArray(segment))
|
|
94
|
+
return fail(segmentPath, "type");
|
|
95
|
+
const typeDescriptor = Object.getOwnPropertyDescriptor(segment, "type");
|
|
96
|
+
if (typeDescriptor === undefined)
|
|
97
|
+
return fail([...segmentPath, "type"], "missing");
|
|
98
|
+
if (!("value" in typeDescriptor))
|
|
99
|
+
return fail([...segmentPath, "type"], "structure");
|
|
100
|
+
const type = typeDescriptor.value;
|
|
101
|
+
if (type !== "line" && type !== "cubic")
|
|
102
|
+
return fail([...segmentPath, "type"], "choice");
|
|
103
|
+
const segmentFields = dataObject(segment, type === "line" ? ["type", "end"] : ["type", "end", "control1", "control2"], segmentPath, fail);
|
|
104
|
+
if (segmentFields === undefined)
|
|
105
|
+
return undefined;
|
|
106
|
+
if (segmentFields.type !== type)
|
|
107
|
+
return fail([...segmentPath, "type"], "invalid");
|
|
108
|
+
const end = point(segmentFields.end, true, [...segmentPath, "end"], fail);
|
|
109
|
+
if (end === undefined)
|
|
110
|
+
return undefined;
|
|
111
|
+
if (index === length - 1) {
|
|
112
|
+
for (const key of ["x", "y", "mode"]) {
|
|
113
|
+
if (end[key] !== start[key])
|
|
114
|
+
return fail([...segmentPath, "end", key], "invalid");
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (type === "cubic") {
|
|
118
|
+
const control1 = point(segmentFields.control1, false, [...segmentPath, "control1"], fail);
|
|
119
|
+
if (control1 === undefined)
|
|
120
|
+
return undefined;
|
|
121
|
+
const control2 = point(segmentFields.control2, false, [...segmentPath, "control2"], fail);
|
|
122
|
+
if (control2 === undefined)
|
|
123
|
+
return undefined;
|
|
124
|
+
parsedSegments.push({ type, control1, control2, end });
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
parsedSegments.push({ type, end });
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return { version: 1, start, segments: parsedSegments };
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
return fail([], "structure");
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/** Internal diagnostics share the accessor-safe reader used by predicates and cloning. */
|
|
137
|
+
export function crossSectionValueProblem(value) {
|
|
138
|
+
let problem;
|
|
139
|
+
const parsed = readCrossSectionValue(value, (entry) => {
|
|
140
|
+
problem = entry;
|
|
141
|
+
});
|
|
142
|
+
return parsed === undefined ? (problem ?? { code: "structure", path: [] }) : undefined;
|
|
143
|
+
}
|
|
144
|
+
/** Checks portable data and explicit closure without evaluating getters or inspecting topology. */
|
|
145
|
+
export function isCrossSectionValue(value) {
|
|
146
|
+
return readCrossSectionValue(value) !== undefined;
|
|
147
|
+
}
|
|
148
|
+
/** Returns a fresh, deeply frozen closed contour, including its editing intent. */
|
|
149
|
+
export function cloneCrossSectionValue(value) {
|
|
150
|
+
const canonical = readCrossSectionValue(value);
|
|
151
|
+
if (canonical === undefined)
|
|
152
|
+
throw new TypeError("Cross section must be a bounded, normalized closed contour.");
|
|
153
|
+
const clonePoint = (entry) => Object.freeze({ x: entry.x, y: entry.y });
|
|
154
|
+
const cloneAnchor = (entry) => Object.freeze({ x: entry.x, y: entry.y, mode: entry.mode });
|
|
155
|
+
return Object.freeze({
|
|
156
|
+
version: 1,
|
|
157
|
+
start: cloneAnchor(canonical.start),
|
|
158
|
+
segments: Object.freeze(canonical.segments.map((segment) => Object.freeze(segment.type === "line"
|
|
159
|
+
? { type: "line", end: cloneAnchor(segment.end) }
|
|
160
|
+
: {
|
|
161
|
+
type: "cubic",
|
|
162
|
+
control1: clonePoint(segment.control1),
|
|
163
|
+
control2: clonePoint(segment.control2),
|
|
164
|
+
end: cloneAnchor(segment.end),
|
|
165
|
+
}))),
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
/** Compares the serialized shape and editing intent rather than object identity. */
|
|
169
|
+
export function crossSectionValuesEqual(previous, next) {
|
|
170
|
+
if (Object.is(previous, next))
|
|
171
|
+
return true;
|
|
172
|
+
const previousData = readCrossSectionValue(previous);
|
|
173
|
+
const nextData = readCrossSectionValue(next);
|
|
174
|
+
if (previousData === undefined || nextData === undefined)
|
|
175
|
+
return false;
|
|
176
|
+
const pointsEqual = (left, right) => Object.is(left.x, right.x) && Object.is(left.y, right.y);
|
|
177
|
+
const anchorsEqual = (left, right) => pointsEqual(left, right) && left.mode === right.mode;
|
|
178
|
+
return (anchorsEqual(previousData.start, nextData.start) &&
|
|
179
|
+
previousData.segments.length === nextData.segments.length &&
|
|
180
|
+
previousData.segments.every((segment, index) => {
|
|
181
|
+
const other = nextData.segments[index];
|
|
182
|
+
if (other === undefined ||
|
|
183
|
+
segment.type !== other.type ||
|
|
184
|
+
!anchorsEqual(segment.end, other.end))
|
|
185
|
+
return false;
|
|
186
|
+
return (segment.type === "line" ||
|
|
187
|
+
(other.type === "cubic" &&
|
|
188
|
+
pointsEqual(segment.control1, other.control1) &&
|
|
189
|
+
pointsEqual(segment.control2, other.control2)));
|
|
190
|
+
}));
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=cross-sections.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cross-sections.js","sourceRoot":"","sources":["../src/cross-sections.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const METAMESH_RUNTIME_VERSION = "2.
|
|
1
|
+
export declare const METAMESH_RUNTIME_VERSION = "2.2.0";
|
|
2
2
|
export declare const GENERATOR_PACKAGE_FORMAT_VERSION = 2;
|
|
3
3
|
export declare const MAX_GENERATOR_PACKAGE_BYTES: number;
|
|
4
4
|
/** Portable metadata limits enforced before package content reaches Studio. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const METAMESH_RUNTIME_VERSION = "2.
|
|
1
|
+
export const METAMESH_RUNTIME_VERSION = "2.2.0";
|
|
2
2
|
export const GENERATOR_PACKAGE_FORMAT_VERSION = 2;
|
|
3
3
|
export const MAX_GENERATOR_PACKAGE_BYTES = 5 * 1024 * 1024;
|
|
4
4
|
/** Portable metadata limits enforced before package content reaches Studio. */
|
|
@@ -136,6 +136,23 @@ export declare const generatorDefinitionSchema: z.ZodObject<{
|
|
|
136
136
|
group: z.ZodOptional<z.ZodString>;
|
|
137
137
|
unit: z.ZodOptional<z.ZodString>;
|
|
138
138
|
visibleWhen: z.ZodOptional<z.ZodType<import("../../conditions.js").ConditionExpression, unknown, z.core.$ZodTypeInternals<import("../../conditions.js").ConditionExpression, unknown>>>;
|
|
139
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
140
|
+
type: z.ZodLiteral<"cross-section">;
|
|
141
|
+
default: z.ZodPipe<z.ZodCustom<import("../../cross-sections.js").CrossSectionValue, import("../../cross-sections.js").CrossSectionValue>, z.ZodTransform<import("../../cross-sections.js").CrossSectionValue, import("../../cross-sections.js").CrossSectionValue>>;
|
|
142
|
+
widthScale: z.ZodOptional<z.ZodObject<{
|
|
143
|
+
parameterId: z.ZodString;
|
|
144
|
+
factor: z.ZodNumber;
|
|
145
|
+
}, z.core.$strict>>;
|
|
146
|
+
heightScale: z.ZodOptional<z.ZodObject<{
|
|
147
|
+
parameterId: z.ZodString;
|
|
148
|
+
factor: z.ZodNumber;
|
|
149
|
+
}, z.core.$strict>>;
|
|
150
|
+
id: z.ZodString;
|
|
151
|
+
label: z.ZodString;
|
|
152
|
+
description: z.ZodOptional<z.ZodString>;
|
|
153
|
+
group: z.ZodOptional<z.ZodString>;
|
|
154
|
+
unit: z.ZodOptional<z.ZodString>;
|
|
155
|
+
visibleWhen: z.ZodOptional<z.ZodType<import("../../conditions.js").ConditionExpression, unknown, z.core.$ZodTypeInternals<import("../../conditions.js").ConditionExpression, unknown>>>;
|
|
139
156
|
}, z.core.$strict>, z.ZodObject<{
|
|
140
157
|
type: z.ZodLiteral<"array">;
|
|
141
158
|
default: z.ZodUnion<readonly [z.ZodArray<z.ZodNumber>, z.ZodArray<z.ZodString>]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.schema.d.ts","sourceRoot":"","sources":["../../../src/generator-package/schemas/definition.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,eAAO,MAAM,oBAAoB;;;;;kBAK/B,CAAC;AAEH,eAAO,MAAM,yBAAyB
|
|
1
|
+
{"version":3,"file":"definition.schema.d.ts","sourceRoot":"","sources":["../../../src/generator-package/schemas/definition.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,eAAO,MAAM,oBAAoB;;;;;kBAK/B,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAOpC,CAAC;AAEH,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,GACpD,SAAS,YAAY,CAAC,IAAI,CAAC,EAAE,GAC7B,CAAC,SAAS,MAAM,GACd;IAAE,QAAQ,EAAE,GAAG,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CAAE,GACnD,CAAC,CAAC;AAER,MAAM,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC;AACjF,MAAM,MAAM,mBAAmB,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC"}
|
|
@@ -136,6 +136,23 @@ export declare const generatorPackageManifestSchema: z.ZodObject<{
|
|
|
136
136
|
group: z.ZodOptional<z.ZodString>;
|
|
137
137
|
unit: z.ZodOptional<z.ZodString>;
|
|
138
138
|
visibleWhen: z.ZodOptional<z.ZodType<import("../../conditions.js").ConditionExpression, unknown, z.core.$ZodTypeInternals<import("../../conditions.js").ConditionExpression, unknown>>>;
|
|
139
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
140
|
+
type: z.ZodLiteral<"cross-section">;
|
|
141
|
+
default: z.ZodPipe<z.ZodCustom<import("../../cross-sections.js").CrossSectionValue, import("../../cross-sections.js").CrossSectionValue>, z.ZodTransform<import("../../cross-sections.js").CrossSectionValue, import("../../cross-sections.js").CrossSectionValue>>;
|
|
142
|
+
widthScale: z.ZodOptional<z.ZodObject<{
|
|
143
|
+
parameterId: z.ZodString;
|
|
144
|
+
factor: z.ZodNumber;
|
|
145
|
+
}, z.core.$strict>>;
|
|
146
|
+
heightScale: z.ZodOptional<z.ZodObject<{
|
|
147
|
+
parameterId: z.ZodString;
|
|
148
|
+
factor: z.ZodNumber;
|
|
149
|
+
}, z.core.$strict>>;
|
|
150
|
+
id: z.ZodString;
|
|
151
|
+
label: z.ZodString;
|
|
152
|
+
description: z.ZodOptional<z.ZodString>;
|
|
153
|
+
group: z.ZodOptional<z.ZodString>;
|
|
154
|
+
unit: z.ZodOptional<z.ZodString>;
|
|
155
|
+
visibleWhen: z.ZodOptional<z.ZodType<import("../../conditions.js").ConditionExpression, unknown, z.core.$ZodTypeInternals<import("../../conditions.js").ConditionExpression, unknown>>>;
|
|
139
156
|
}, z.core.$strict>, z.ZodObject<{
|
|
140
157
|
type: z.ZodLiteral<"array">;
|
|
141
158
|
default: z.ZodUnion<readonly [z.ZodArray<z.ZodNumber>, z.ZodArray<z.ZodString>]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.schema.d.ts","sourceRoot":"","sources":["../../../src/generator-package/schemas/manifest.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqBxB,eAAO,MAAM,8BAA8B
|
|
1
|
+
{"version":3,"file":"manifest.schema.d.ts","sourceRoot":"","sources":["../../../src/generator-package/schemas/manifest.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqBxB,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAmBzC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACvF,MAAM,MAAM,sBAAsB,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;AACxE,MAAM,MAAM,eAAe,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { type CrossSectionValue } from "../../cross-sections.js";
|
|
2
3
|
import { type FontSelection } from "../../fonts.js";
|
|
3
4
|
import { type ProfileValue } from "../../profiles.js";
|
|
4
5
|
declare const numberParameterSchema: z.ZodObject<{
|
|
@@ -136,6 +137,24 @@ declare const profileParameterSchema: z.ZodObject<{
|
|
|
136
137
|
unit: z.ZodOptional<z.ZodString>;
|
|
137
138
|
visibleWhen: z.ZodOptional<z.ZodType<import("../../conditions.js").ConditionExpression, unknown, z.core.$ZodTypeInternals<import("../../conditions.js").ConditionExpression, unknown>>>;
|
|
138
139
|
}, z.core.$strict>;
|
|
140
|
+
declare const crossSectionParameterSchema: z.ZodObject<{
|
|
141
|
+
type: z.ZodLiteral<"cross-section">;
|
|
142
|
+
default: z.ZodPipe<z.ZodCustom<CrossSectionValue, CrossSectionValue>, z.ZodTransform<CrossSectionValue, CrossSectionValue>>;
|
|
143
|
+
widthScale: z.ZodOptional<z.ZodObject<{
|
|
144
|
+
parameterId: z.ZodString;
|
|
145
|
+
factor: z.ZodNumber;
|
|
146
|
+
}, z.core.$strict>>;
|
|
147
|
+
heightScale: z.ZodOptional<z.ZodObject<{
|
|
148
|
+
parameterId: z.ZodString;
|
|
149
|
+
factor: z.ZodNumber;
|
|
150
|
+
}, z.core.$strict>>;
|
|
151
|
+
id: z.ZodString;
|
|
152
|
+
label: z.ZodString;
|
|
153
|
+
description: z.ZodOptional<z.ZodString>;
|
|
154
|
+
group: z.ZodOptional<z.ZodString>;
|
|
155
|
+
unit: z.ZodOptional<z.ZodString>;
|
|
156
|
+
visibleWhen: z.ZodOptional<z.ZodType<import("../../conditions.js").ConditionExpression, unknown, z.core.$ZodTypeInternals<import("../../conditions.js").ConditionExpression, unknown>>>;
|
|
157
|
+
}, z.core.$strict>;
|
|
139
158
|
declare const numberArrayItemSchema: z.ZodObject<{
|
|
140
159
|
type: z.ZodLiteral<"number">;
|
|
141
160
|
integer: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -289,6 +308,23 @@ export declare const parameterDefinitionSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
289
308
|
group: z.ZodOptional<z.ZodString>;
|
|
290
309
|
unit: z.ZodOptional<z.ZodString>;
|
|
291
310
|
visibleWhen: z.ZodOptional<z.ZodType<import("../../conditions.js").ConditionExpression, unknown, z.core.$ZodTypeInternals<import("../../conditions.js").ConditionExpression, unknown>>>;
|
|
311
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
312
|
+
type: z.ZodLiteral<"cross-section">;
|
|
313
|
+
default: z.ZodPipe<z.ZodCustom<CrossSectionValue, CrossSectionValue>, z.ZodTransform<CrossSectionValue, CrossSectionValue>>;
|
|
314
|
+
widthScale: z.ZodOptional<z.ZodObject<{
|
|
315
|
+
parameterId: z.ZodString;
|
|
316
|
+
factor: z.ZodNumber;
|
|
317
|
+
}, z.core.$strict>>;
|
|
318
|
+
heightScale: z.ZodOptional<z.ZodObject<{
|
|
319
|
+
parameterId: z.ZodString;
|
|
320
|
+
factor: z.ZodNumber;
|
|
321
|
+
}, z.core.$strict>>;
|
|
322
|
+
id: z.ZodString;
|
|
323
|
+
label: z.ZodString;
|
|
324
|
+
description: z.ZodOptional<z.ZodString>;
|
|
325
|
+
group: z.ZodOptional<z.ZodString>;
|
|
326
|
+
unit: z.ZodOptional<z.ZodString>;
|
|
327
|
+
visibleWhen: z.ZodOptional<z.ZodType<import("../../conditions.js").ConditionExpression, unknown, z.core.$ZodTypeInternals<import("../../conditions.js").ConditionExpression, unknown>>>;
|
|
292
328
|
}, z.core.$strict>, z.ZodObject<{
|
|
293
329
|
type: z.ZodLiteral<"array">;
|
|
294
330
|
default: z.ZodUnion<readonly [z.ZodArray<z.ZodNumber>, z.ZodArray<z.ZodString>]>;
|
|
@@ -327,6 +363,8 @@ export type FontParameterDefinition = DeepReadonly<z.output<typeof fontParameter
|
|
|
327
363
|
export type SvgParameterDefinition = DeepReadonly<z.output<typeof svgParameterSchema>>;
|
|
328
364
|
export type ProfileParameterDefinition = DeepReadonly<z.output<typeof profileParameterSchema>>;
|
|
329
365
|
export type ProfileScaleReference = DeepReadonly<z.output<typeof profileScaleReferenceSchema>>;
|
|
366
|
+
export type CrossSectionParameterDefinition = DeepReadonly<z.output<typeof crossSectionParameterSchema>>;
|
|
367
|
+
export type CrossSectionScaleReference = ProfileScaleReference;
|
|
330
368
|
export type ArrayParameterDefinition = DeepReadonly<z.output<typeof arrayParameterSchema>>;
|
|
331
369
|
export type NumberArrayParameterDefinition = Omit<ArrayParameterDefinition, "default" | "items"> & {
|
|
332
370
|
readonly default: readonly number[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter.schema.d.ts","sourceRoot":"","sources":["../../../src/generator-package/schemas/parameter.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAqC,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AA+BzF,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;kBAMzB,CAAC;AAEH,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;kBAMzB,CAAC;AAEH,QAAA,MAAM,sBAAsB;;;;;;;;;kBAI1B,CAAC;AAQH,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;kBAKzB,CAAC;AAEH,QAAA,MAAM,wBAAwB;;;;;;;;;;;;;;;;kBAO5B,CAAC;AAEH,QAAA,MAAM,oBAAoB;;;;;;;;;kBAIxB,CAAC;AAEH,QAAA,MAAM,mBAAmB;;;;;;;;;kBAIvB,CAAC;AAEH,QAAA,MAAM,mBAAmB;;;;;;;;;kBAIvB,CAAC;AAEH,6FAA6F;AAC7F,QAAA,MAAM,kBAAkB;;;;;;;;;kBAStB,CAAC;AAEH,QAAA,MAAM,2BAA2B;;;kBAG/B,CAAC;AAEH,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;kBAQ1B,CAAC;AAEH,QAAA,MAAM,qBAAqB;;;;;;;kBAOzB,CAAC;AAEH,QAAA,MAAM,qBAAqB;;kBAAgD,CAAC;AAE5E,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;kBAUxB,CAAC;AAEH,eAAO,MAAM,yBAAyB
|
|
1
|
+
{"version":3,"file":"parameter.schema.d.ts","sourceRoot":"","sources":["../../../src/generator-package/schemas/parameter.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAqC,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AA+BzF,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;kBAMzB,CAAC;AAEH,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;kBAMzB,CAAC;AAEH,QAAA,MAAM,sBAAsB;;;;;;;;;kBAI1B,CAAC;AAQH,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;kBAKzB,CAAC;AAEH,QAAA,MAAM,wBAAwB;;;;;;;;;;;;;;;;kBAO5B,CAAC;AAEH,QAAA,MAAM,oBAAoB;;;;;;;;;kBAIxB,CAAC;AAEH,QAAA,MAAM,mBAAmB;;;;;;;;;kBAIvB,CAAC;AAEH,QAAA,MAAM,mBAAmB;;;;;;;;;kBAIvB,CAAC;AAEH,6FAA6F;AAC7F,QAAA,MAAM,kBAAkB;;;;;;;;;kBAStB,CAAC;AAEH,QAAA,MAAM,2BAA2B;;;kBAG/B,CAAC;AAEH,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;kBAQ1B,CAAC;AAEH,QAAA,MAAM,2BAA2B;;;;;;;;;;;;;;;;;kBAQ/B,CAAC;AAEH,QAAA,MAAM,qBAAqB;;;;;;;kBAOzB,CAAC;AAEH,QAAA,MAAM,qBAAqB;;kBAAgD,CAAC;AAE5E,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;kBAUxB,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAapC,CAAC;AAEH,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,GACpD,SAAS,YAAY,CAAC,IAAI,CAAC,EAAE,GAC7B,CAAC,SAAS,MAAM,GACd;IAAE,QAAQ,EAAE,GAAG,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CAAE,GACnD,CAAC,CAAC;AAER,MAAM,MAAM,mBAAmB,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC;AAC3F,MAAM,MAAM,yBAAyB,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC;AAC7F,MAAM,MAAM,yBAAyB,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC;AAC7F,MAAM,MAAM,0BAA0B,GAAG,yBAAyB,GAAG,yBAAyB,CAAC;AAC/F,MAAM,MAAM,0BAA0B,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC,CAAC;AAC/F,MAAM,MAAM,yBAAyB,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC;AAC7F,MAAM,MAAM,4BAA4B,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,wBAAwB,CAAC,CAAC,CAAC;AACnG,MAAM,MAAM,wBAAwB,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC;AAC3F,MAAM,MAAM,uBAAuB,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC;AACzF,MAAM,MAAM,uBAAuB,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC;AACzF,MAAM,MAAM,sBAAsB,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC;AACvF,MAAM,MAAM,0BAA0B,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC,CAAC;AAC/F,MAAM,MAAM,qBAAqB,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC,CAAC;AAC/F,MAAM,MAAM,+BAA+B,GAAG,YAAY,CACxD,CAAC,CAAC,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAC7C,CAAC;AACF,MAAM,MAAM,0BAA0B,GAAG,qBAAqB,CAAC;AAC/D,MAAM,MAAM,wBAAwB,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC;AAC3F,MAAM,MAAM,8BAA8B,GAAG,IAAI,CAAC,wBAAwB,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG;IACjG,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;CACxD,CAAC;AACF,MAAM,MAAM,8BAA8B,GAAG,IAAI,CAAC,wBAAwB,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG;IACjG,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;CACxD,CAAC;AACF,MAAM,MAAM,YAAY,GAAG,yBAAyB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AACxE,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAC/E,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { cloneCrossSectionValue, isCrossSectionValue, } from "../../cross-sections.js";
|
|
2
3
|
import { isFontSelection } from "../../fonts.js";
|
|
3
4
|
import { cloneProfileValue, isProfileValue } from "../../profiles.js";
|
|
4
5
|
import { MAX_ARRAY_ITEMS, MAX_METADATA_TEXT_LENGTH, MAX_PARAMETER_OPTIONS } from "../constants.js";
|
|
@@ -93,6 +94,15 @@ const profileParameterSchema = z.strictObject({
|
|
|
93
94
|
radiusScale: profileScaleReferenceSchema.optional(),
|
|
94
95
|
heightScale: profileScaleReferenceSchema.optional(),
|
|
95
96
|
});
|
|
97
|
+
const crossSectionParameterSchema = z.strictObject({
|
|
98
|
+
...baseParameterShape,
|
|
99
|
+
type: z.literal("cross-section"),
|
|
100
|
+
default: z
|
|
101
|
+
.custom(isCrossSectionValue, "must be a bounded, normalized closed contour")
|
|
102
|
+
.transform(cloneCrossSectionValue),
|
|
103
|
+
widthScale: profileScaleReferenceSchema.optional(),
|
|
104
|
+
heightScale: profileScaleReferenceSchema.optional(),
|
|
105
|
+
});
|
|
96
106
|
const numberArrayItemSchema = z.strictObject({
|
|
97
107
|
type: z.literal("number"),
|
|
98
108
|
integer: z.boolean().optional(),
|
|
@@ -124,6 +134,7 @@ export const parameterDefinitionSchema = z.discriminatedUnion("type", [
|
|
|
124
134
|
fontParameterSchema,
|
|
125
135
|
svgParameterSchema,
|
|
126
136
|
profileParameterSchema,
|
|
137
|
+
crossSectionParameterSchema,
|
|
127
138
|
arrayParameterSchema,
|
|
128
139
|
]);
|
|
129
140
|
//# sourceMappingURL=parameter.schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter.schema.js","sourceRoot":"","sources":["../../../src/generator-package/schemas/parameter.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAsB,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAqB,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACnG,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAElE,MAAM,kBAAkB,GAAG;IACzB,EAAE,EAAE,YAAY;IAChB,KAAK,EAAE,oBAAoB;IAC3B,WAAW,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IAC3C,KAAK,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACnC,WAAW,EAAE,yBAAyB,CAAC,QAAQ,EAAE;CAClD,CAAC;AAEF,MAAM,qBAAqB,GAAG;IAC5B,GAAG,kBAAkB;IACrB,OAAO,EAAE,kBAAkB;IAC3B,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,0EAA0E;IAC1E,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;CAC/C,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,CAAC,YAAY,CAAC;IAC3C,GAAG,qBAAqB;IACxB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACzB,GAAG,EAAE,kBAAkB,CAAC,QAAQ,EAAE;IAClC,GAAG,EAAE,kBAAkB,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,kBAAkB,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,CAAC,YAAY,CAAC;IAC3C,GAAG,qBAAqB;IACxB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACzB,GAAG,EAAE,kBAAkB;IACvB,GAAG,EAAE,kBAAkB;IACvB,IAAI,EAAE,kBAAkB;CACzB,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,CAAC,CAAC,YAAY,CAAC;IAC5C,GAAG,kBAAkB;IACrB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;CACrB,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,YAAY,CAAC;IACxC,KAAK,EAAE,oBAAoB;IAC3B,KAAK,EAAE,oBAAoB;IAC3B,WAAW,EAAE,mBAAmB,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,CAAC,YAAY,CAAC;IAC3C,GAAG,kBAAkB;IACrB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACzB,OAAO,EAAE,mBAAmB;IAC5B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC;CAChE,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,CAAC,CAAC,YAAY,CAAC;IAC9C,GAAG,kBAAkB;IACrB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;IAC7B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAChE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAC/D,aAAa,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IAC3C,aAAa,EAAE,iBAAiB,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAAC,CAAC,YAAY,CAAC;IAC1C,GAAG,kBAAkB;IACrB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACxB,OAAO,EAAE,cAAc;CACxB,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,CAAC,YAAY,CAAC;IACzC,GAAG,kBAAkB;IACrB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACvB,OAAO,EAAE,yBAAyB;CACnC,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,CAAC,YAAY,CAAC;IACzC,GAAG,kBAAkB;IACrB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAgB,eAAe,EAAE,qCAAqC,CAAC;CACzF,CAAC,CAAC;AAEH,6FAA6F;AAC7F,MAAM,kBAAkB,GAAG,CAAC,CAAC,YAAY,CAAC;IACxC,GAAG,kBAAkB;IACrB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACtB,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,IAAI,GAAG,GAAG,IAAI,EACnE,0CAA0C,CAC3C;CACJ,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,CAAC,CAAC,YAAY,CAAC;IACjD,WAAW,EAAE,YAAY;IACzB,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,CAAC,CAAC,YAAY,CAAC;IAC5C,GAAG,kBAAkB;IACrB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,CAAC;SACP,MAAM,CAAe,cAAc,EAAE,4CAA4C,CAAC;SAClF,SAAS,CAAC,iBAAiB,CAAC;IAC/B,WAAW,EAAE,2BAA2B,CAAC,QAAQ,EAAE;IACnD,WAAW,EAAE,2BAA2B,CAAC,QAAQ,EAAE;CACpD,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,CAAC,YAAY,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACzB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,GAAG,EAAE,kBAAkB,CAAC,QAAQ,EAAE;IAClC,GAAG,EAAE,kBAAkB,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,kBAAkB,CAAC,QAAQ,EAAE;IACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAE5E,MAAM,oBAAoB,GAAG,CAAC,CAAC,YAAY,CAAC;IAC1C,GAAG,kBAAkB;IACrB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACxB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC;QACf,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC;QAChD,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC;KACvE,CAAC;IACF,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAE;IACpC,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAE;IACpC,KAAK,EAAE,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,CAAC;CACpF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACpE,sBAAsB;IACtB,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;IACrB,wBAAwB;IACxB,oBAAoB;IACpB,mBAAmB;IACnB,mBAAmB;IACnB,kBAAkB;IAClB,sBAAsB;IACtB,oBAAoB;CACrB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"parameter.schema.js","sourceRoot":"","sources":["../../../src/generator-package/schemas/parameter.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preset.schema.d.ts","sourceRoot":"","sources":["../../../src/generator-package/schemas/preset.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"preset.schema.d.ts","sourceRoot":"","sources":["../../../src/generator-package/schemas/preset.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,oBAAoB,CAAC;AAoC3E,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,eAAO,MAAM,qBAAqB,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAK3D,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { cloneCrossSectionValue, isCrossSectionValue, } from "../../cross-sections.js";
|
|
2
3
|
import { isFontSelection } from "../../fonts.js";
|
|
3
4
|
import { MAX_SVG_PARAMETER_BYTES } from "../../parameters/values.js";
|
|
4
5
|
import { cloneProfileValue, isProfileValue } from "../../profiles.js";
|
|
@@ -7,6 +8,7 @@ import { boundedStringSchema, finiteNumberSchema, nonEmptyStringSchema, safeIdSc
|
|
|
7
8
|
const parameterValueSchema = z.union([
|
|
8
9
|
z.custom(isFontSelection),
|
|
9
10
|
z.custom(isProfileValue).transform(cloneProfileValue),
|
|
11
|
+
z.custom(isCrossSectionValue).transform(cloneCrossSectionValue),
|
|
10
12
|
finiteNumberSchema,
|
|
11
13
|
z.boolean(),
|
|
12
14
|
// The definition owns each string's type-specific limit. SVG values may be
|