@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.
Files changed (46) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +44 -1
  3. package/dist/contracts.d.ts +5 -2
  4. package/dist/contracts.d.ts.map +1 -1
  5. package/dist/cross-sections.d.ts +41 -0
  6. package/dist/cross-sections.d.ts.map +1 -0
  7. package/dist/cross-sections.js +192 -0
  8. package/dist/cross-sections.js.map +1 -0
  9. package/dist/generator-package/constants.d.ts +1 -1
  10. package/dist/generator-package/constants.js +1 -1
  11. package/dist/generator-package/schemas/definition.schema.d.ts +17 -0
  12. package/dist/generator-package/schemas/definition.schema.d.ts.map +1 -1
  13. package/dist/generator-package/schemas/manifest.schema.d.ts +17 -0
  14. package/dist/generator-package/schemas/manifest.schema.d.ts.map +1 -1
  15. package/dist/generator-package/schemas/parameter.schema.d.ts +38 -0
  16. package/dist/generator-package/schemas/parameter.schema.d.ts.map +1 -1
  17. package/dist/generator-package/schemas/parameter.schema.js +11 -0
  18. package/dist/generator-package/schemas/parameter.schema.js.map +1 -1
  19. package/dist/generator-package/schemas/preset.schema.d.ts.map +1 -1
  20. package/dist/generator-package/schemas/preset.schema.js +2 -0
  21. package/dist/generator-package/schemas/preset.schema.js.map +1 -1
  22. package/dist/generator-package/validate-definition.d.ts.map +1 -1
  23. package/dist/generator-package/validate-definition.js +18 -9
  24. package/dist/generator-package/validate-definition.js.map +1 -1
  25. package/dist/generator-package/validate-manifest.d.ts.map +1 -1
  26. package/dist/generator-package/validate-manifest.js +5 -0
  27. package/dist/generator-package/validate-manifest.js.map +1 -1
  28. package/dist/index.d.ts +3 -1
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +1 -0
  31. package/dist/index.js.map +1 -1
  32. package/dist/parameter-contracts.d.ts +10 -1
  33. package/dist/parameter-contracts.d.ts.map +1 -1
  34. package/dist/parameters/issues.d.ts.map +1 -1
  35. package/dist/parameters/issues.js +11 -4
  36. package/dist/parameters/issues.js.map +1 -1
  37. package/dist/parameters/recovery.d.ts.map +1 -1
  38. package/dist/parameters/recovery.js +6 -1
  39. package/dist/parameters/recovery.js.map +1 -1
  40. package/dist/parameters/strict.d.ts.map +1 -1
  41. package/dist/parameters/strict.js +4 -0
  42. package/dist/parameters/strict.js.map +1 -1
  43. package/dist/parameters/values.d.ts.map +1 -1
  44. package/dist/parameters/values.js +4 -0
  45. package/dist/parameters/values.js.map +1 -1
  46. 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
@@ -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";
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"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"}
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.0";
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.0";
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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
+ {"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":"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"}
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":"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"}
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;AA8B3E,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,eAAO,MAAM,qBAAqB,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAK3D,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