@metamesh/generator-sdk 0.10.0 → 0.12.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 +26 -0
- package/README.md +34 -25
- package/dist/authoring.d.ts +1 -52
- package/dist/authoring.d.ts.map +1 -1
- package/dist/authoring.js +0 -24
- package/dist/authoring.js.map +1 -1
- package/dist/contracts.d.ts +15 -0
- package/dist/contracts.d.ts.map +1 -1
- package/dist/execute-generator.d.ts +14 -23
- package/dist/execute-generator.d.ts.map +1 -1
- package/dist/execute-generator.js +33 -32
- package/dist/execute-generator.js.map +1 -1
- package/dist/generated-parts.d.ts +16 -0
- package/dist/generated-parts.d.ts.map +1 -1
- package/dist/generated-parts.js +155 -67
- package/dist/generated-parts.js.map +1 -1
- package/dist/generator-module.d.ts +20 -17
- package/dist/generator-module.d.ts.map +1 -1
- package/dist/generator-module.js +3 -4
- package/dist/generator-module.js.map +1 -1
- package/dist/generator-package/constants.d.ts +2 -2
- package/dist/generator-package/constants.js +2 -2
- package/dist/generator-package/schemas/manifest.schema.d.ts +1 -1
- package/dist/generator-package/validate-manifest.js +2 -2
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/parameters/preparation.d.ts +8 -6
- package/dist/parameters/preparation.d.ts.map +1 -1
- package/dist/parameters/preparation.js +21 -10
- package/dist/parameters/preparation.js.map +1 -1
- package/dist/parameters.d.ts +1 -1
- package/dist/parameters.d.ts.map +1 -1
- package/dist/parameters.js +1 -1
- package/dist/parameters.js.map +1 -1
- package/dist/parse-generator-module.d.ts +5 -27
- package/dist/parse-generator-module.d.ts.map +1 -1
- package/dist/parse-generator-module.js +29 -96
- package/dist/parse-generator-module.js.map +1 -1
- package/dist/runtime.d.ts +6 -6
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +3 -3
- package/dist/runtime.js.map +1 -1
- package/dist/worker-contracts.d.ts +2 -2
- package/dist/worker-contracts.d.ts.map +1 -1
- package/dist/worker-contracts.js.map +1 -1
- package/package.json +4 -5
package/dist/generated-parts.js
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
const GENERATED_PART_FIELDS = new Set([
|
|
1
|
+
const GENERATED_PART_FIELDS = new Set([
|
|
2
|
+
"id",
|
|
3
|
+
"positions",
|
|
4
|
+
"indices",
|
|
5
|
+
"color",
|
|
6
|
+
"geometryId",
|
|
7
|
+
"geometryRevision",
|
|
8
|
+
"position",
|
|
9
|
+
"rotation",
|
|
10
|
+
]);
|
|
2
11
|
const GENERATED_PART_ID_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
3
12
|
const GENERATED_PART_COLOR_PATTERN = /^#[\da-f]{6}$/i;
|
|
4
13
|
const MAX_GENERATED_PART_ID_LENGTH = 64;
|
|
@@ -29,8 +38,7 @@ function resolveLimits(overrides) {
|
|
|
29
38
|
maxBytes: positiveInteger(overrides.maxBytes, "limits.maxBytes"),
|
|
30
39
|
};
|
|
31
40
|
}
|
|
32
|
-
function
|
|
33
|
-
const path = `Generated part ${index + 1}`;
|
|
41
|
+
function parseMetadata(value, path) {
|
|
34
42
|
if (!isRecord(value)) {
|
|
35
43
|
throw new TypeError(`${path} must be an object.`);
|
|
36
44
|
}
|
|
@@ -44,6 +52,61 @@ function parsePart(value, index, limits, totals) {
|
|
|
44
52
|
!GENERATED_PART_ID_PATTERN.test(id)) {
|
|
45
53
|
throw new TypeError(`${path}.id must be a lowercase kebab-case identifier of at most ${MAX_GENERATED_PART_ID_LENGTH} characters.`);
|
|
46
54
|
}
|
|
55
|
+
const geometryId = ownDataValue(value, "geometryId", path);
|
|
56
|
+
if (typeof geometryId !== "string" || geometryId.length === 0 || geometryId.length > 256) {
|
|
57
|
+
throw new TypeError(`${path}.geometryId must be a nonempty resource identity of at most 256 characters.`);
|
|
58
|
+
}
|
|
59
|
+
const geometryRevision = ownDataValue(value, "geometryRevision", path);
|
|
60
|
+
if (typeof geometryRevision !== "number" ||
|
|
61
|
+
!Number.isSafeInteger(geometryRevision) ||
|
|
62
|
+
geometryRevision < 0) {
|
|
63
|
+
throw new TypeError(`${path}.geometryRevision must be a nonnegative safe integer.`);
|
|
64
|
+
}
|
|
65
|
+
const pose = (key) => {
|
|
66
|
+
const candidate = ownDataValue(value, key, path);
|
|
67
|
+
if (!Array.isArray(candidate) ||
|
|
68
|
+
candidate.length !== 3 ||
|
|
69
|
+
Reflect.ownKeys(candidate).length !== 4) {
|
|
70
|
+
throw new TypeError(`${path}.${key} must contain exactly three finite numbers.`);
|
|
71
|
+
}
|
|
72
|
+
const values = [0, 1, 2].map((index) => {
|
|
73
|
+
const descriptor = Object.getOwnPropertyDescriptor(candidate, String(index));
|
|
74
|
+
if (descriptor === undefined ||
|
|
75
|
+
!("value" in descriptor) ||
|
|
76
|
+
typeof descriptor.value !== "number" ||
|
|
77
|
+
!Number.isFinite(descriptor.value)) {
|
|
78
|
+
throw new TypeError(`${path}.${key} must contain exactly three finite numbers.`);
|
|
79
|
+
}
|
|
80
|
+
return descriptor.value;
|
|
81
|
+
});
|
|
82
|
+
return Object.freeze(values);
|
|
83
|
+
};
|
|
84
|
+
const position = pose("position");
|
|
85
|
+
const rotation = pose("rotation");
|
|
86
|
+
const colorValue = Object.hasOwn(value, "color") ? ownDataValue(value, "color", path) : undefined;
|
|
87
|
+
let color;
|
|
88
|
+
if (colorValue === undefined) {
|
|
89
|
+
color = undefined;
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
if (typeof colorValue !== "string" || !GENERATED_PART_COLOR_PATTERN.test(colorValue)) {
|
|
93
|
+
throw new TypeError(`${path}.color must be a six-digit hex color.`);
|
|
94
|
+
}
|
|
95
|
+
color = colorValue.toLowerCase();
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
source: value,
|
|
99
|
+
metadata: {
|
|
100
|
+
id,
|
|
101
|
+
geometryId,
|
|
102
|
+
geometryRevision,
|
|
103
|
+
position,
|
|
104
|
+
rotation,
|
|
105
|
+
...(color === undefined ? {} : { color }),
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
function readResource(value, path) {
|
|
47
110
|
const positions = ownDataValue(value, "positions", path);
|
|
48
111
|
if (!(positions instanceof Float32Array)) {
|
|
49
112
|
throw new TypeError(`${path}.positions must be a Float32Array.`);
|
|
@@ -58,70 +121,34 @@ function parsePart(value, index, limits, totals) {
|
|
|
58
121
|
if (indices.length === 0 || indices.length % 3 !== 0) {
|
|
59
122
|
throw new TypeError(`${path}.indices must contain at least one complete triangle.`);
|
|
60
123
|
}
|
|
61
|
-
const colorValue = Object.hasOwn(value, "color") ? ownDataValue(value, "color", path) : undefined;
|
|
62
|
-
let color;
|
|
63
|
-
if (colorValue === undefined) {
|
|
64
|
-
color = undefined;
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
if (typeof colorValue !== "string" || !GENERATED_PART_COLOR_PATTERN.test(colorValue)) {
|
|
68
|
-
throw new TypeError(`${path}.color must be a six-digit hex color.`);
|
|
69
|
-
}
|
|
70
|
-
color = colorValue.toLowerCase();
|
|
71
|
-
}
|
|
72
|
-
const vertexCount = positions.length / 3;
|
|
73
|
-
const triangleCount = indices.length / 3;
|
|
74
|
-
const views = [positions, indices];
|
|
75
124
|
const buffers = new Set();
|
|
76
|
-
for (const view of
|
|
125
|
+
for (const view of [positions, indices]) {
|
|
77
126
|
if (!(view.buffer instanceof ArrayBuffer)) {
|
|
78
127
|
throw new TypeError(`${path} mesh data must use transferable ArrayBuffer storage.`);
|
|
79
128
|
}
|
|
80
|
-
|
|
81
|
-
buffers.add(view.buffer);
|
|
82
|
-
}
|
|
83
|
-
const byteCount = [...buffers].reduce((total, buffer) => total + buffer.byteLength, 0);
|
|
84
|
-
if (totals.vertices + vertexCount > limits.maxVertices) {
|
|
85
|
-
throw new TypeError(limitMessage(limits.maxVertices, "vertex", "vertices"));
|
|
86
|
-
}
|
|
87
|
-
if (totals.triangles + triangleCount > limits.maxTriangles) {
|
|
88
|
-
throw new TypeError(limitMessage(limits.maxTriangles, "triangle"));
|
|
89
|
-
}
|
|
90
|
-
if (totals.bytes + byteCount > limits.maxBytes) {
|
|
91
|
-
throw new TypeError(limitMessage(limits.maxBytes, "mesh byte"));
|
|
129
|
+
buffers.add(view.buffer);
|
|
92
130
|
}
|
|
131
|
+
return {
|
|
132
|
+
positions,
|
|
133
|
+
indices,
|
|
134
|
+
vertices: positions.length / 3,
|
|
135
|
+
triangles: indices.length / 3,
|
|
136
|
+
buffers: [...buffers],
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
function validateResource({ positions, indices, vertices }, path) {
|
|
93
140
|
for (let coordinate = 0; coordinate < positions.length; coordinate += 1) {
|
|
94
141
|
if (!Number.isFinite(positions[coordinate])) {
|
|
95
142
|
throw new TypeError(`${path}.positions[${coordinate}] must be finite.`);
|
|
96
143
|
}
|
|
97
144
|
}
|
|
98
145
|
for (let offset = 0; offset < indices.length; offset += 1) {
|
|
99
|
-
if (indices[offset] >=
|
|
146
|
+
if (indices[offset] >= vertices) {
|
|
100
147
|
throw new TypeError(`${path}.indices[${offset}] must reference an existing vertex.`);
|
|
101
148
|
}
|
|
102
149
|
}
|
|
103
|
-
const part = Object.freeze({
|
|
104
|
-
id,
|
|
105
|
-
positions,
|
|
106
|
-
indices,
|
|
107
|
-
...(color === undefined ? {} : { color }),
|
|
108
|
-
});
|
|
109
|
-
return {
|
|
110
|
-
part,
|
|
111
|
-
vertices: vertexCount,
|
|
112
|
-
triangles: triangleCount,
|
|
113
|
-
bytes: byteCount,
|
|
114
|
-
buffers: [...buffers],
|
|
115
|
-
};
|
|
116
150
|
}
|
|
117
|
-
|
|
118
|
-
* Strictly parses generated runtime output without copying transferable mesh buffers.
|
|
119
|
-
*
|
|
120
|
-
* This checks the renderer-neutral structure and aggregate resource limits. Geometric
|
|
121
|
-
* validity, such as non-degenerate or closed topology, remains a Geometry concern.
|
|
122
|
-
*/
|
|
123
|
-
export function parseGeneratedParts(value, limitOverrides) {
|
|
124
|
-
const limits = resolveLimits(limitOverrides);
|
|
151
|
+
function parseParts(value, limits, previous) {
|
|
125
152
|
if (!Array.isArray(value)) {
|
|
126
153
|
throw new TypeError("Generated output must be an array of parts.");
|
|
127
154
|
}
|
|
@@ -133,6 +160,7 @@ export function parseGeneratedParts(value, limitOverrides) {
|
|
|
133
160
|
}
|
|
134
161
|
const ids = new Set();
|
|
135
162
|
const parts = [];
|
|
163
|
+
const resources = new Map();
|
|
136
164
|
let vertices = 0;
|
|
137
165
|
let triangles = 0;
|
|
138
166
|
let bytes = 0;
|
|
@@ -142,23 +170,83 @@ export function parseGeneratedParts(value, limitOverrides) {
|
|
|
142
170
|
if (descriptor === undefined || !("value" in descriptor)) {
|
|
143
171
|
throw new TypeError(`Generated part ${index + 1} must be an own array data value.`);
|
|
144
172
|
}
|
|
145
|
-
const
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
173
|
+
const path = `Generated part ${index + 1}`;
|
|
174
|
+
const { metadata, source } = parseMetadata(descriptor.value, path);
|
|
175
|
+
if (ids.has(metadata.id)) {
|
|
176
|
+
throw new TypeError(`${path}.id duplicates "${metadata.id}".`);
|
|
177
|
+
}
|
|
178
|
+
ids.add(metadata.id);
|
|
179
|
+
const key = JSON.stringify([metadata.geometryId, metadata.geometryRevision]);
|
|
180
|
+
const reference = previous !== undefined &&
|
|
181
|
+
!Object.hasOwn(source, "positions") &&
|
|
182
|
+
!Object.hasOwn(source, "indices");
|
|
183
|
+
let resource;
|
|
184
|
+
if (reference) {
|
|
185
|
+
const known = resources.get(key) ?? previous.get(key);
|
|
186
|
+
if (known === undefined)
|
|
187
|
+
throw new TypeError("The worker referenced an unknown geometry resource.");
|
|
188
|
+
resource = known;
|
|
153
189
|
}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
190
|
+
else {
|
|
191
|
+
if (previous !== undefined && (previous.has(key) || resources.has(key))) {
|
|
192
|
+
throw new TypeError("A delivered geometry identity cannot replace its immutable buffers.");
|
|
193
|
+
}
|
|
194
|
+
resource = readResource(source, path);
|
|
195
|
+
}
|
|
196
|
+
vertices += resource.vertices;
|
|
197
|
+
triangles += resource.triangles;
|
|
198
|
+
for (const buffer of resource.buffers) {
|
|
199
|
+
if (buffers.has(buffer))
|
|
200
|
+
continue;
|
|
159
201
|
buffers.add(buffer);
|
|
160
|
-
|
|
202
|
+
bytes += buffer.byteLength;
|
|
203
|
+
}
|
|
204
|
+
if (vertices > limits.maxVertices)
|
|
205
|
+
throw new TypeError(limitMessage(limits.maxVertices, "vertex", "vertices"));
|
|
206
|
+
if (triangles > limits.maxTriangles)
|
|
207
|
+
throw new TypeError(limitMessage(limits.maxTriangles, "triangle"));
|
|
208
|
+
if (bytes > limits.maxBytes)
|
|
209
|
+
throw new TypeError(limitMessage(limits.maxBytes, "mesh byte"));
|
|
210
|
+
if (!reference)
|
|
211
|
+
validateResource(resource, path);
|
|
212
|
+
if (previous !== undefined)
|
|
213
|
+
resources.set(key, resource);
|
|
214
|
+
parts.push(Object.freeze({ ...metadata, positions: resource.positions, indices: resource.indices }));
|
|
215
|
+
}
|
|
216
|
+
return { parts: Object.freeze(parts), resources };
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Strictly parses generated runtime output without copying transferable mesh buffers.
|
|
220
|
+
*
|
|
221
|
+
* This checks the renderer-neutral structure and aggregate resource limits. Geometric
|
|
222
|
+
* validity, such as non-degenerate or closed topology, remains a Geometry concern.
|
|
223
|
+
*/
|
|
224
|
+
export function parseGeneratedParts(value, limitOverrides) {
|
|
225
|
+
return parseParts(value, resolveLimits(limitOverrides)).parts;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Admits each delivered geometry resource once and hydrates later references without rescanning it.
|
|
229
|
+
*
|
|
230
|
+
* The receiving host owns admitted buffers and must keep them immutable and attached. Every
|
|
231
|
+
* delivery still validates part metadata and aggregate limits. Only a successful delivery replaces
|
|
232
|
+
* the bounded resource map; captured parts retain their own buffers after clear or later deliveries.
|
|
233
|
+
*/
|
|
234
|
+
export class GeneratedPartsDecoder {
|
|
235
|
+
#limits;
|
|
236
|
+
#resources = new Map();
|
|
237
|
+
/** Fixes the receiving host's aggregate resource limits for this decoder's lifetime. */
|
|
238
|
+
constructor(limits) {
|
|
239
|
+
this.#limits = resolveLimits(limits);
|
|
240
|
+
}
|
|
241
|
+
/** Validates a complete delivery and commits resource ownership only after every part succeeds. */
|
|
242
|
+
decode(value) {
|
|
243
|
+
const result = parseParts(value, this.#limits, this.#resources);
|
|
244
|
+
this.#resources = result.resources;
|
|
245
|
+
return result.parts;
|
|
246
|
+
}
|
|
247
|
+
/** Forgets admitted resources; previously returned parts remain valid and retain their buffers. */
|
|
248
|
+
clear() {
|
|
249
|
+
this.#resources.clear();
|
|
161
250
|
}
|
|
162
|
-
return Object.freeze(parts);
|
|
163
251
|
}
|
|
164
252
|
//# sourceMappingURL=generated-parts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generated-parts.js","sourceRoot":"","sources":["../src/generated-parts.ts"],"names":[],"mappings":"AAEA,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"generated-parts.js","sourceRoot":"","sources":["../src/generated-parts.ts"],"names":[],"mappings":"AAEA,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACpC,IAAI;IACJ,WAAW;IACX,SAAS;IACT,OAAO;IACP,YAAY;IACZ,kBAAkB;IAClB,UAAU;IACV,UAAU;CACX,CAAC,CAAC;AACH,MAAM,yBAAyB,GAAG,4BAA4B,CAAC;AAC/D,MAAM,4BAA4B,GAAG,gBAAgB,CAAC;AACtD,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAUxC,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,YAAY,CACnB,KAAwC,EACxC,GAAW,EACX,IAAY;IAEZ,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/D,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,GAAG,6BAA6B,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,UAAU,CAAC,KAAK,CAAC;AAC1B,CAAC;AAED,SAAS,eAAe,CAAC,KAAa,EAAE,IAAY;IAClD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,mCAAmC,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,QAAgB,EAAE,MAAM,GAAG,GAAG,QAAQ,GAAG;IAC5E,OAAO,wCAAwC,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;AAC7F,CAAC;AAED,SAAS,aAAa,CAAC,SAA+B;IACpD,OAAO;QACL,QAAQ,EAAE,eAAe,CAAC,SAAS,CAAC,QAAQ,EAAE,iBAAiB,CAAC;QAChE,WAAW,EAAE,eAAe,CAAC,SAAS,CAAC,WAAW,EAAE,oBAAoB,CAAC;QACzE,YAAY,EAAE,eAAe,CAAC,SAAS,CAAC,YAAY,EAAE,qBAAqB,CAAC;QAC5E,QAAQ,EAAE,eAAe,CAAC,SAAS,CAAC,QAAQ,EAAE,iBAAiB,CAAC;KACjE,CAAC;AACJ,CAAC;AAYD,SAAS,aAAa,CACpB,KAAc,EACd,IAAY;IAKZ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,qBAAqB,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAC5C,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,CACpE,CAAC;IACF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,4BAA4B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3C,IACE,OAAO,EAAE,KAAK,QAAQ;QACtB,EAAE,CAAC,MAAM,GAAG,4BAA4B;QACxC,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC,EACnC,CAAC;QACD,MAAM,IAAI,SAAS,CACjB,GAAG,IAAI,4DAA4D,4BAA4B,cAAc,CAC9G,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IAC3D,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACzF,MAAM,IAAI,SAAS,CACjB,GAAG,IAAI,6EAA6E,CACrF,CAAC;IACJ,CAAC;IACD,MAAM,gBAAgB,GAAG,YAAY,CAAC,KAAK,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;IACvE,IACE,OAAO,gBAAgB,KAAK,QAAQ;QACpC,CAAC,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC;QACvC,gBAAgB,GAAG,CAAC,EACpB,CAAC;QACD,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,uDAAuD,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,GAA4B,EAAqC,EAAE;QAC/E,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACjD,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;YACzB,SAAS,CAAC,MAAM,KAAK,CAAC;YACtB,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,EACvC,CAAC;YACD,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,GAAG,6CAA6C,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACrC,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7E,IACE,UAAU,KAAK,SAAS;gBACxB,CAAC,CAAC,OAAO,IAAI,UAAU,CAAC;gBACxB,OAAO,UAAU,CAAC,KAAK,KAAK,QAAQ;gBACpC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAClC,CAAC;gBACD,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,GAAG,6CAA6C,CAAC,CAAC;YACnF,CAAC;YACD,OAAO,UAAU,CAAC,KAAK,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAiD,CAAC;IAC/E,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAElC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClG,IAAI,KAAyB,CAAC;IAC9B,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,KAAK,GAAG,SAAS,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACrF,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,uCAAuC,CAAC,CAAC;QACtE,CAAC;QACD,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IACnC,CAAC;IAED,OAAO;QACL,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE;YACR,EAAE;YACF,UAAU;YACV,gBAAgB;YAChB,QAAQ;YACR,QAAQ;YACR,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;SAC1C;KACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAwC,EAAE,IAAY;IAC1E,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IACzD,IAAI,CAAC,CAAC,SAAS,YAAY,YAAY,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,oCAAoC,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,2DAA2D,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACrD,IAAI,CAAC,CAAC,OAAO,YAAY,WAAW,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,iCAAiC,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,uDAAuD,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAAe,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,YAAY,WAAW,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,uDAAuD,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO;QACL,SAAS;QACT,OAAO;QACP,QAAQ,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC;QAC9B,SAAS,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC;QAC7B,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC;KACtB,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAoB,EAAE,IAAY;IACxF,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,EAAE,CAAC;QACxE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,cAAc,UAAU,mBAAmB,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IACD,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC;QAC1D,IAAI,OAAO,CAAC,MAAM,CAAE,IAAI,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,YAAY,MAAM,sCAAsC,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CACjB,KAAc,EACd,MAA4B,EAC5B,QAAgD;IAEhD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,SAAS,CAAC,kDAAkD,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACnC,MAAM,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,MAAM,SAAS,GAAG,IAAI,GAAG,EAA4B,CAAC;IACtD,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,OAAO,GAAG,IAAI,GAAG,EAAe,CAAC;IACvC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,SAAS,CAAC,kBAAkB,KAAK,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACtF,CAAC;QACD,MAAM,IAAI,GAAG,kBAAkB,KAAK,GAAG,CAAC,EAAE,CAAC;QAC3C,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACnE,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,mBAAmB,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;QACjE,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAErB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC7E,MAAM,SAAS,GACb,QAAQ,KAAK,SAAS;YACtB,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC;YACnC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACpC,IAAI,QAA0B,CAAC;QAC/B,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACtD,IAAI,KAAK,KAAK,SAAS;gBACrB,MAAM,IAAI,SAAS,CAAC,qDAAqD,CAAC,CAAC;YAC7E,QAAQ,GAAG,KAAK,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACxE,MAAM,IAAI,SAAS,CAAC,qEAAqE,CAAC,CAAC;YAC7F,CAAC;YACD,QAAQ,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACxC,CAAC;QAED,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC;QAC9B,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC;QAChC,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,SAAS;YAClC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,KAAK,IAAI,MAAM,CAAC,UAAU,CAAC;QAC7B,CAAC;QACD,IAAI,QAAQ,GAAG,MAAM,CAAC,WAAW;YAC/B,MAAM,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;QAC9E,IAAI,SAAS,GAAG,MAAM,CAAC,YAAY;YACjC,MAAM,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;QACrE,IAAI,KAAK,GAAG,MAAM,CAAC,QAAQ;YAAE,MAAM,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;QAC7F,IAAI,CAAC,SAAS;YAAE,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,QAAQ,KAAK,SAAS;YAAE,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACzD,KAAK,CAAC,IAAI,CACR,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CACzF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;AACpD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAc,EACd,cAAoC;IAEpC,OAAO,UAAU,CAAC,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC;AAChE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,qBAAqB;IACvB,OAAO,CAAuB;IACvC,UAAU,GAAG,IAAI,GAAG,EAA4B,CAAC;IAEjD,wFAAwF;IACxF,YAAY,MAA4B;QACtC,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,mGAAmG;IACnG,MAAM,CAAC,KAAc;QACnB,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC;QACnC,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,mGAAmG;IACnG,KAAK;QACH,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;CACF"}
|
|
@@ -1,27 +1,30 @@
|
|
|
1
|
-
import type { GeneratorDefinition,
|
|
1
|
+
import type { GeneratorDefinition, GeneratorParams } from "./contracts.js";
|
|
2
2
|
import { GENERATOR_PACKAGE_FORMAT_VERSION } from "./generator-package/constants.js";
|
|
3
3
|
import type { GeneratorServices } from "./generator-services.js";
|
|
4
|
-
/**
|
|
5
|
-
export
|
|
6
|
-
readonly
|
|
7
|
-
readonly
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
readonly
|
|
4
|
+
/** Structural program boundary; the SDK never imports a Modeling runtime or kernel. */
|
|
5
|
+
export interface GeneratorProgram {
|
|
6
|
+
readonly kind: "metamesh-model";
|
|
7
|
+
readonly generate: (context: never) => unknown;
|
|
8
|
+
}
|
|
9
|
+
/** Checks only portable host inputs; Modeling owns the rest of its authoring context. */
|
|
10
|
+
type DefinitionBoundProgram<D extends GeneratorDefinition, Program extends GeneratorProgram> = Program & {
|
|
11
|
+
readonly generate: (context: Omit<Parameters<Program["generate"]>[0], "params" | "services"> & {
|
|
12
|
+
readonly params: Readonly<GeneratorParams<D>>;
|
|
13
|
+
readonly services: GeneratorServices;
|
|
14
|
+
}) => unknown;
|
|
12
15
|
};
|
|
13
|
-
|
|
16
|
+
/** The sole executable package envelope. Metadata stays callback-free. */
|
|
17
|
+
export interface GeneratorModule<D extends GeneratorDefinition = GeneratorDefinition, Program extends GeneratorProgram = GeneratorProgram> {
|
|
14
18
|
readonly formatVersion: typeof GENERATOR_PACKAGE_FORMAT_VERSION;
|
|
15
19
|
readonly generatorId: D["id"];
|
|
16
20
|
readonly version: D["version"];
|
|
17
|
-
readonly
|
|
18
|
-
readonly build: (prepared: P, model: Context) => Output;
|
|
21
|
+
readonly generate: Program;
|
|
19
22
|
}
|
|
20
|
-
export interface GeneratorModuleOptions<D extends GeneratorDefinition,
|
|
23
|
+
export interface GeneratorModuleOptions<D extends GeneratorDefinition, Program extends GeneratorProgram> {
|
|
21
24
|
readonly definition: D;
|
|
22
|
-
readonly
|
|
23
|
-
readonly build: (prepared: P, model: Context) => Output;
|
|
25
|
+
readonly generate: DefinitionBoundProgram<D, Program>;
|
|
24
26
|
}
|
|
25
|
-
/**
|
|
26
|
-
export declare function defineGeneratorModule<const D extends GeneratorDefinition,
|
|
27
|
+
/** Binds a Modeling program to serializable identity without executing it. */
|
|
28
|
+
export declare function defineGeneratorModule<const D extends GeneratorDefinition, Program extends GeneratorProgram>({ definition, generate }: GeneratorModuleOptions<D, Program>): GeneratorModule<D, Program>;
|
|
29
|
+
export {};
|
|
27
30
|
//# sourceMappingURL=generator-module.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator-module.d.ts","sourceRoot":"","sources":["../src/generator-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"generator-module.d.ts","sourceRoot":"","sources":["../src/generator-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,uFAAuF;AACvF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,KAAK,OAAO,CAAC;CAChD;AAED,yFAAyF;AACzF,KAAK,sBAAsB,CACzB,CAAC,SAAS,mBAAmB,EAC7B,OAAO,SAAS,gBAAgB,IAC9B,OAAO,GAAG;IACZ,QAAQ,CAAC,QAAQ,EAAE,CACjB,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC,GAAG;QACzE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;KACtC,KACE,OAAO,CAAC;CACd,CAAC;AAEF,0EAA0E;AAC1E,MAAM,WAAW,eAAe,CAC9B,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,EACnD,OAAO,SAAS,gBAAgB,GAAG,gBAAgB;IAEnD,QAAQ,CAAC,aAAa,EAAE,OAAO,gCAAgC,CAAC;IAChE,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB,CACrC,CAAC,SAAS,mBAAmB,EAC7B,OAAO,SAAS,gBAAgB;IAEhC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;CACvD;AAED,8EAA8E;AAC9E,wBAAgB,qBAAqB,CACnC,KAAK,CAAC,CAAC,SAAS,mBAAmB,EACnC,OAAO,SAAS,gBAAgB,EAChC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,sBAAsB,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC,CAO3F"}
|
package/dist/generator-module.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { GENERATOR_PACKAGE_FORMAT_VERSION } from "./generator-package/constants.js";
|
|
2
|
-
/**
|
|
3
|
-
export function defineGeneratorModule({ definition,
|
|
2
|
+
/** Binds a Modeling program to serializable identity without executing it. */
|
|
3
|
+
export function defineGeneratorModule({ definition, generate }) {
|
|
4
4
|
return Object.freeze({
|
|
5
5
|
formatVersion: GENERATOR_PACKAGE_FORMAT_VERSION,
|
|
6
6
|
generatorId: definition.id,
|
|
7
7
|
version: definition.version,
|
|
8
|
-
|
|
9
|
-
build,
|
|
8
|
+
generate,
|
|
10
9
|
});
|
|
11
10
|
}
|
|
12
11
|
//# sourceMappingURL=generator-module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator-module.js","sourceRoot":"","sources":["../src/generator-module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"generator-module.js","sourceRoot":"","sources":["../src/generator-module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AAyCpF,8EAA8E;AAC9E,MAAM,UAAU,qBAAqB,CAGnC,EAAE,UAAU,EAAE,QAAQ,EAAsC;IAC5D,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,aAAa,EAAE,gCAAgC;QAC/C,WAAW,EAAE,UAAU,CAAC,EAAE;QAC1B,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,QAAQ;KACT,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export declare const METAMESH_RUNTIME_VERSION = "
|
|
2
|
-
export declare const GENERATOR_PACKAGE_FORMAT_VERSION =
|
|
1
|
+
export declare const METAMESH_RUNTIME_VERSION = "4.0.0";
|
|
2
|
+
export declare const GENERATOR_PACKAGE_FORMAT_VERSION = 4;
|
|
3
3
|
export declare const MAX_GENERATOR_PACKAGE_BYTES: number;
|
|
4
4
|
/** Portable metadata limits enforced before package content reaches Studio. */
|
|
5
5
|
export declare const MAX_GENERATOR_ID_LENGTH = 120;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export const METAMESH_RUNTIME_VERSION = "
|
|
2
|
-
export const GENERATOR_PACKAGE_FORMAT_VERSION =
|
|
1
|
+
export const METAMESH_RUNTIME_VERSION = "4.0.0";
|
|
2
|
+
export const GENERATOR_PACKAGE_FORMAT_VERSION = 4;
|
|
3
3
|
export const MAX_GENERATOR_PACKAGE_BYTES = 5 * 1024 * 1024;
|
|
4
4
|
/** Portable metadata limits enforced before package content reaches Studio. */
|
|
5
5
|
export const MAX_GENERATOR_ID_LENGTH = 120;
|
|
@@ -292,7 +292,7 @@ export declare const generatorPackageManifestSchema: z.ZodObject<{
|
|
|
292
292
|
}, z.core.$strict>;
|
|
293
293
|
entryFormat: z.ZodLiteral<"esm">;
|
|
294
294
|
entryPath: z.ZodString;
|
|
295
|
-
formatVersion: z.ZodLiteral<
|
|
295
|
+
formatVersion: z.ZodLiteral<4>;
|
|
296
296
|
generatorId: z.ZodString;
|
|
297
297
|
integrity: z.ZodObject<{
|
|
298
298
|
algorithm: z.ZodLiteral<"sha256">;
|
|
@@ -49,8 +49,8 @@ export function validateGeneratorPresets(definition, presets, path = "presets")
|
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
51
|
export function validateManifestIdentity(manifest) {
|
|
52
|
-
if (!manifest.runtimeVersion.startsWith("
|
|
53
|
-
fail("manifest.runtimeVersion", "format
|
|
52
|
+
if (!manifest.runtimeVersion.startsWith("4.")) {
|
|
53
|
+
fail("manifest.runtimeVersion", "format 4 packages require runtime major 4");
|
|
54
54
|
}
|
|
55
55
|
if (manifest.definition.id !== manifest.generatorId ||
|
|
56
56
|
manifest.definition.version !== manifest.version) {
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
export { defineGenerator,
|
|
2
|
-
export type { PreparationServices } from "./authoring.js";
|
|
1
|
+
export { defineGenerator, definePresets } from "./authoring.js";
|
|
3
2
|
export { defineGeneratorModule } from "./generator-module.js";
|
|
4
|
-
export type { GeneratorModule, GeneratorModuleOptions,
|
|
3
|
+
export type { GeneratorModule, GeneratorModuleOptions, GeneratorProgram, } from "./generator-module.js";
|
|
5
4
|
export { evaluateCondition } from "./conditions.js";
|
|
6
5
|
export type { ConditionExpression } from "./conditions.js";
|
|
7
6
|
export { isFontSelection } from "./fonts.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,YAAY,EACV,eAAe,EACf,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,oBAAoB,GACrB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC/F,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AACxE,YAAY,EACV,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,8BAA8B,EAC9B,yBAAyB,EACzB,mBAAmB,EACnB,2BAA2B,EAC3B,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,cAAc,EACd,eAAe,EACf,8BAA8B,EAC9B,oBAAoB,EACpB,YAAY,EACZ,yBAAyB,EACzB,yBAAyB,EACzB,8BAA8B,EAC9B,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { defineGenerator,
|
|
1
|
+
export { defineGenerator, definePresets } from "./authoring.js";
|
|
2
2
|
export { defineGeneratorModule } from "./generator-module.js";
|
|
3
3
|
export { evaluateCondition } from "./conditions.js";
|
|
4
4
|
export { isFontSelection } from "./fonts.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAM9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import type { GeneratorDefinition,
|
|
1
|
+
import type { GeneratorDefinition, GeneratorParams, ParameterValidationResult } from "../contracts.js";
|
|
2
2
|
export interface PreparedParameters<D extends GeneratorDefinition> {
|
|
3
3
|
readonly parameters: GeneratorParams<D>;
|
|
4
4
|
readonly validation: ParameterValidationResult;
|
|
5
5
|
}
|
|
6
6
|
/**
|
|
7
|
-
* Normalizes known values once
|
|
8
|
-
*
|
|
7
|
+
* Normalizes known values once and validates the declared parameter schema.
|
|
8
|
+
* Domain assertions belong to the generation program.
|
|
9
9
|
*/
|
|
10
|
-
export declare function prepareParameters<const D extends GeneratorDefinition>(definition: D, parameters: Readonly<Record<string, unknown
|
|
11
|
-
/**
|
|
12
|
-
export declare function validateParameters<const D extends GeneratorDefinition>(definition: D, parameters: Readonly<Record<string, unknown
|
|
10
|
+
export declare function prepareParameters<const D extends GeneratorDefinition>(definition: D, parameters: Readonly<Record<string, unknown>>): PreparedParameters<D>;
|
|
11
|
+
/** Validates the declared parameter schema without executing generation. */
|
|
12
|
+
export declare function validateParameters<const D extends GeneratorDefinition>(definition: D, parameters: Readonly<Record<string, unknown>>): ParameterValidationResult;
|
|
13
|
+
/** Reuses semantically unchanged bounded parameter values after normalization or Worker cloning. */
|
|
14
|
+
export declare function canonicalizeParameters<const D extends GeneratorDefinition>(_definition: D, parameters: GeneratorParams<D>, previous?: GeneratorParams<D>): GeneratorParams<D>;
|
|
13
15
|
//# sourceMappingURL=preparation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preparation.d.ts","sourceRoot":"","sources":["../../src/parameters/preparation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,
|
|
1
|
+
{"version":3,"file":"preparation.d.ts","sourceRoot":"","sources":["../../src/parameters/preparation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EAEf,yBAAyB,EAE1B,MAAM,iBAAiB,CAAC;AAUzB,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,mBAAmB;IAC/D,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC;CAChD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,CAAC,SAAS,mBAAmB,EACnE,UAAU,EAAE,CAAC,EACb,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAC5C,kBAAkB,CAAC,CAAC,CAAC,CA0BvB;AAED,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,CAAC,SAAS,mBAAmB,EACpE,UAAU,EAAE,CAAC,EACb,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAC5C,yBAAyB,CAE3B;AAED,oGAAoG;AACpG,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,CAAC,SAAS,mBAAmB,EACxE,WAAW,EAAE,CAAC,EACd,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,EAC9B,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAC5B,eAAe,CAAC,CAAC,CAAC,CAWpB"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { aggregateParameterIssues,
|
|
1
|
+
import { aggregateParameterIssues, validateDefinitionValue } from "./issues.js";
|
|
2
2
|
import { normalizeParameters } from "./recovery.js";
|
|
3
|
-
import { MAX_PROJECT_SVG_PARAMETER_BYTES, ownValue, svgParameterBytes } from "./values.js";
|
|
3
|
+
import { MAX_PROJECT_SVG_PARAMETER_BYTES, ownValue, parameterValueEquals, svgParameterBytes, } from "./values.js";
|
|
4
4
|
/**
|
|
5
|
-
* Normalizes known values once
|
|
6
|
-
*
|
|
5
|
+
* Normalizes known values once and validates the declared parameter schema.
|
|
6
|
+
* Domain assertions belong to the generation program.
|
|
7
7
|
*/
|
|
8
|
-
export function prepareParameters(definition, parameters
|
|
8
|
+
export function prepareParameters(definition, parameters) {
|
|
9
9
|
const schemaIssues = definition.parameters.flatMap((parameter) => validateDefinitionValue(parameter, ownValue(parameters, parameter.id)));
|
|
10
10
|
const svgBytes = definition.parameters.reduce((total, parameter) => {
|
|
11
11
|
const value = ownValue(parameters, parameter.id);
|
|
@@ -23,14 +23,25 @@ export function prepareParameters(definition, parameters, validate) {
|
|
|
23
23
|
]
|
|
24
24
|
: [];
|
|
25
25
|
const normalized = normalizeParameters(definition, parameters);
|
|
26
|
-
const customIssues = validate === undefined ? [] : parseParameterIssues(definition, validate(normalized));
|
|
27
26
|
return {
|
|
28
27
|
parameters: normalized,
|
|
29
|
-
validation: aggregateParameterIssues(schemaIssues, projectSvgIssues
|
|
28
|
+
validation: aggregateParameterIssues(schemaIssues, projectSvgIssues),
|
|
30
29
|
};
|
|
31
30
|
}
|
|
32
|
-
/**
|
|
33
|
-
export function validateParameters(definition, parameters
|
|
34
|
-
return prepareParameters(definition, parameters
|
|
31
|
+
/** Validates the declared parameter schema without executing generation. */
|
|
32
|
+
export function validateParameters(definition, parameters) {
|
|
33
|
+
return prepareParameters(definition, parameters).validation;
|
|
34
|
+
}
|
|
35
|
+
/** Reuses semantically unchanged bounded parameter values after normalization or Worker cloning. */
|
|
36
|
+
export function canonicalizeParameters(_definition, parameters, previous) {
|
|
37
|
+
if (previous === undefined)
|
|
38
|
+
return parameters;
|
|
39
|
+
const oldValues = previous;
|
|
40
|
+
const nextValues = parameters;
|
|
41
|
+
const canonical = Object.fromEntries(Object.entries(nextValues).map(([key, value]) => [
|
|
42
|
+
key,
|
|
43
|
+
parameterValueEquals(oldValues[key], value) ? oldValues[key] : value,
|
|
44
|
+
]));
|
|
45
|
+
return Object.freeze(canonical);
|
|
35
46
|
}
|
|
36
47
|
//# sourceMappingURL=preparation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preparation.js","sourceRoot":"","sources":["../../src/parameters/preparation.ts"],"names":[],"mappings":"AAOA,OAAO,
|
|
1
|
+
{"version":3,"file":"preparation.js","sourceRoot":"","sources":["../../src/parameters/preparation.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EACL,+BAA+B,EAC/B,QAAQ,EACR,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAOrB;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAa,EACb,UAA6C;IAE7C,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAC/D,uBAAuB,CAAC,SAAS,EAAE,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CACvE,CAAC;IACF,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;QACjE,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QACjD,OAAO,SAAS,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAC1D,CAAC,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC;YAClC,CAAC,CAAC,KAAK,CAAC;IACZ,CAAC,EAAE,CAAC,CAAC,CAAC;IACN,MAAM,gBAAgB,GACpB,QAAQ,GAAG,+BAA+B;QACxC,CAAC,CAAC;YACE;gBACE,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,yDAAyD;aAC1C;SAC3B;QACH,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,UAAU,GAAG,mBAAmB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAE/D,OAAO;QACL,UAAU,EAAE,UAAU;QACtB,UAAU,EAAE,wBAAwB,CAAC,YAAY,EAAE,gBAAgB,CAAC;KACrE,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,kBAAkB,CAChC,UAAa,EACb,UAA6C;IAE7C,OAAO,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,UAAU,CAAC;AAC9D,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,sBAAsB,CACpC,WAAc,EACd,UAA8B,EAC9B,QAA6B;IAE7B,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC;IAC9C,MAAM,SAAS,GAAG,QAA2B,CAAC;IAC9C,MAAM,UAAU,GAAG,UAA6B,CAAC;IACjD,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAClC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QAC/C,GAAG;QACH,oBAAoB,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK;KACrE,CAAC,CACH,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAuB,CAAC;AACxD,CAAC"}
|
package/dist/parameters.d.ts
CHANGED
|
@@ -3,6 +3,6 @@ export { getDefaultParameters, normalizeParameters } from "./parameters/recovery
|
|
|
3
3
|
export { MAX_PARAMETER_ISSUE_MESSAGE_LENGTH, MAX_PARAMETER_ISSUES, aggregateParameterIssues, parseParameterIssues, } from "./parameters/issues.js";
|
|
4
4
|
export { ParamDecodeError, createParamCodec } from "./parameters/strict.js";
|
|
5
5
|
export type { ParamCodec, ParamDecodeCode, ParamDecodeIssue, ParamParseResult, } from "./parameters/strict.js";
|
|
6
|
-
export { prepareParameters, validateParameters } from "./parameters/preparation.js";
|
|
6
|
+
export { prepareParameters, validateParameters, canonicalizeParameters, } from "./parameters/preparation.js";
|
|
7
7
|
export type { PreparedParameters } from "./parameters/preparation.js";
|
|
8
8
|
//# sourceMappingURL=parameters.d.ts.map
|
package/dist/parameters.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../src/parameters.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,EAC/B,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EACL,kCAAkC,EAClC,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,YAAY,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../src/parameters.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,EAC/B,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EACL,kCAAkC,EAClC,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,YAAY,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC"}
|
package/dist/parameters.js
CHANGED
|
@@ -2,5 +2,5 @@ export { EMPTY_SVG_PARAMETER_DEFAULT, MAX_PROJECT_SVG_PARAMETER_BYTES, MAX_SVG_P
|
|
|
2
2
|
export { getDefaultParameters, normalizeParameters } from "./parameters/recovery.js";
|
|
3
3
|
export { MAX_PARAMETER_ISSUE_MESSAGE_LENGTH, MAX_PARAMETER_ISSUES, aggregateParameterIssues, parseParameterIssues, } from "./parameters/issues.js";
|
|
4
4
|
export { ParamDecodeError, createParamCodec } from "./parameters/strict.js";
|
|
5
|
-
export { prepareParameters, validateParameters } from "./parameters/preparation.js";
|
|
5
|
+
export { prepareParameters, validateParameters, canonicalizeParameters, } from "./parameters/preparation.js";
|
|
6
6
|
//# sourceMappingURL=parameters.js.map
|
package/dist/parameters.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameters.js","sourceRoot":"","sources":["../src/parameters.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,EAC/B,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EACL,kCAAkC,EAClC,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAO5E,OAAO,
|
|
1
|
+
{"version":3,"file":"parameters.js","sourceRoot":"","sources":["../src/parameters.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,EAC/B,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EACL,kCAAkC,EAClC,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAO5E,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC"}
|