@tensnap/protocol 0.2.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/dist/codec.js ADDED
@@ -0,0 +1,430 @@
1
+ // src/codec.ts
2
+ import { decode, encode } from "@msgpack/msgpack";
3
+
4
+ // src/binary.ts
5
+ var BASE64_DATA_URL_MARKER = ";base64,";
6
+ function getGlobalBuffer() {
7
+ return globalThis.Buffer;
8
+ }
9
+ function encodeBytesAsBase64(bytes) {
10
+ const buffer = getGlobalBuffer();
11
+ if (buffer) {
12
+ return buffer.from(bytes).toString("base64");
13
+ }
14
+ if (typeof btoa === "function") {
15
+ let binary = "";
16
+ for (let index = 0; index < bytes.length; index += 1) {
17
+ binary += String.fromCharCode(bytes[index]);
18
+ }
19
+ return btoa(binary);
20
+ }
21
+ throw new Error("No base64 encoder is available in this runtime.");
22
+ }
23
+ function encodeBytesAsDataUrl(bytes, mime = "application/octet-stream") {
24
+ return `data:${mime};base64,${encodeBytesAsBase64(bytes)}`;
25
+ }
26
+ function decodeBinaryString(value) {
27
+ const decoded = tryDecodeBinaryString(value);
28
+ if (!decoded) {
29
+ throw new Error("Expected a base64 string or a base64 data URL.");
30
+ }
31
+ return decoded;
32
+ }
33
+ function isEncodedBinaryString(value) {
34
+ return tryDecodeBinaryString(value) !== null;
35
+ }
36
+ function tryDecodeBinaryString(value) {
37
+ if (value.startsWith("data:")) {
38
+ const dataUrl = tryDecodeBase64DataUrl(value);
39
+ if (dataUrl) {
40
+ return dataUrl;
41
+ }
42
+ }
43
+ const bytes = tryDecodeBase64(value);
44
+ if (!bytes) {
45
+ return null;
46
+ }
47
+ return {
48
+ bytes,
49
+ encoding: "base64"
50
+ };
51
+ }
52
+ function tryDecodeBase64DataUrl(value) {
53
+ const markerIndex = value.indexOf(BASE64_DATA_URL_MARKER);
54
+ if (markerIndex === -1) {
55
+ return null;
56
+ }
57
+ const mime = value.slice(5, markerIndex) || void 0;
58
+ const base64 = value.slice(markerIndex + BASE64_DATA_URL_MARKER.length);
59
+ const bytes = tryDecodeBase64(base64);
60
+ if (!bytes) {
61
+ return null;
62
+ }
63
+ return {
64
+ bytes,
65
+ mime,
66
+ encoding: "data-url"
67
+ };
68
+ }
69
+ function tryDecodeBase64(value) {
70
+ const normalized = value.replace(/\s+/g, "");
71
+ if (!normalized || normalized.length % 4 !== 0 || /[^A-Za-z0-9+/=]/.test(normalized)) {
72
+ return null;
73
+ }
74
+ try {
75
+ const buffer = getGlobalBuffer();
76
+ if (buffer) {
77
+ return new Uint8Array(buffer.from(normalized, "base64"));
78
+ }
79
+ if (typeof atob === "function") {
80
+ const binary = atob(normalized);
81
+ const bytes = new Uint8Array(binary.length);
82
+ for (let index = 0; index < binary.length; index += 1) {
83
+ bytes[index] = binary.charCodeAt(index);
84
+ }
85
+ return bytes;
86
+ }
87
+ } catch {
88
+ return null;
89
+ }
90
+ throw new Error("No base64 decoder is available in this runtime.");
91
+ }
92
+
93
+ // src/schemas.ts
94
+ import { z as z4 } from "zod";
95
+
96
+ // src/asset.ts
97
+ import { z } from "zod";
98
+ var AssetIdSchema = z.string();
99
+ var AssetMetaSchema = z.object({
100
+ id: AssetIdSchema,
101
+ hash: z.string(),
102
+ mime: z.string(),
103
+ size: z.number(),
104
+ label: z.string().optional()
105
+ });
106
+
107
+ // src/chart.ts
108
+ import { z as z2 } from "zod";
109
+ var ChartMetadataSchema = z2.object({
110
+ id: z2.string(),
111
+ label: z2.string(),
112
+ color: z2.string().optional()
113
+ });
114
+ var ChartGroupMetadataSchema = ChartMetadataSchema.extend({
115
+ dataList: z2.array(ChartMetadataSchema).optional()
116
+ });
117
+ var ChartUpdateDataSchema = z2.object({
118
+ id: z2.string(),
119
+ time: z2.number().optional(),
120
+ value: z2.unknown()
121
+ });
122
+ var ChartUpdateOperationSchema = z2.object({
123
+ id: z2.string(),
124
+ operation: z2.literal("clear")
125
+ });
126
+
127
+ // src/controls.ts
128
+ import { z as z3 } from "zod";
129
+ var ParameterTypeSchema = z3.enum(["number", "enum", "boolean", "string"]);
130
+ var ParameterBaseSchema = z3.object({
131
+ id: z3.string(),
132
+ type: ParameterTypeSchema,
133
+ label: z3.string(),
134
+ allowRuntimeChange: z3.boolean().optional()
135
+ });
136
+ var NumberParameterSchema = ParameterBaseSchema.extend({
137
+ type: z3.literal("number"),
138
+ value: z3.number(),
139
+ min: z3.number().optional(),
140
+ max: z3.number().optional(),
141
+ step: z3.number().optional()
142
+ });
143
+ var EnumParameterSchema = ParameterBaseSchema.extend({
144
+ type: z3.literal("enum"),
145
+ value: z3.string(),
146
+ options: z3.array(z3.string()),
147
+ labels: z3.record(z3.string(), z3.string()).optional()
148
+ });
149
+ var BooleanParameterSchema = ParameterBaseSchema.extend({
150
+ type: z3.literal("boolean"),
151
+ value: z3.boolean()
152
+ });
153
+ var StringParameterSchema = ParameterBaseSchema.extend({
154
+ type: z3.literal("string"),
155
+ value: z3.string()
156
+ });
157
+ var ParameterSchema = z3.union([
158
+ NumberParameterSchema,
159
+ EnumParameterSchema,
160
+ BooleanParameterSchema,
161
+ StringParameterSchema
162
+ ]);
163
+ var ActionSchema = z3.object({
164
+ id: z3.string(),
165
+ label: z3.string(),
166
+ continuous: z3.boolean().optional(),
167
+ allowRuntimeChange: z3.boolean().optional()
168
+ });
169
+
170
+ // src/schemas.ts
171
+ var BinaryPayloadStringSchema = z4.string().refine(
172
+ (value) => isEncodedBinaryString(value),
173
+ "Expected a base64 string or a base64 data URL for binary payload data."
174
+ );
175
+ var BinaryPayloadDataSchema = z4.union([BinaryPayloadStringSchema, z4.instanceof(Uint8Array)]);
176
+ var ItemSchema = z4.record(z4.string(), z4.unknown());
177
+ var ItemDiffSchema = z4.record(z4.string(), z4.unknown());
178
+ var ItemKeySchema = z4.record(z4.string(), z4.unknown());
179
+ var PrimitiveItemKeySchema = z4.union([z4.string(), z4.number()]);
180
+ var MetadataUpdatePayloadSchema = z4.object({
181
+ time: z4.number().optional()
182
+ }).loose();
183
+ var StateSyncBoundaryPayloadSchema = z4.object({
184
+ request_id: z4.string().optional()
185
+ });
186
+ var TickTimingBreakdownSchema = z4.object({
187
+ simulate_ms: z4.number().nonnegative().optional(),
188
+ communicate_ms: z4.number().nonnegative().optional(),
189
+ render_ms: z4.number().nonnegative().optional()
190
+ }).catchall(z4.number().nonnegative());
191
+ var ActionEndPayloadSchema = z4.object({
192
+ id: z4.string(),
193
+ tick_id: z4.string().optional(),
194
+ continue: z4.boolean().optional(),
195
+ timings: TickTimingBreakdownSchema.optional()
196
+ });
197
+ var ActionDeletePayloadSchema = z4.object({ id: z4.string() });
198
+ var EnvCreatePayloadSchema = z4.object({
199
+ id: z4.string(),
200
+ type: z4.enum(["uniform", "2d"])
201
+ });
202
+ var EnvDeletePayloadSchema = z4.object({ id: z4.string() });
203
+ var EnvLayerCreatePayloadSchema = z4.object({
204
+ env_id: z4.string(),
205
+ layer_id: z4.string(),
206
+ layer_type: z4.string(),
207
+ dependency_layer_ids: z4.record(z4.string(), z4.string()).optional(),
208
+ data: z4.record(z4.string(), z4.unknown()).optional()
209
+ });
210
+ var EnvLayerUpdatePayloadSchema = z4.object({
211
+ env_id: z4.string(),
212
+ layer_id: z4.string(),
213
+ data: z4.record(z4.string(), z4.unknown())
214
+ });
215
+ var EnvLayerDeletePayloadSchema = z4.object({
216
+ env_id: z4.string(),
217
+ layer_id: z4.string()
218
+ });
219
+ var ItemCreatePayloadSchema = z4.object({
220
+ env_id: z4.string(),
221
+ layer_id: z4.string(),
222
+ items: z4.array(ItemSchema)
223
+ });
224
+ var ItemUpdatePayloadSchema = z4.object({
225
+ env_id: z4.string(),
226
+ layer_id: z4.string(),
227
+ items: z4.array(ItemDiffSchema)
228
+ });
229
+ var ItemDeletePayloadSchema = z4.object({
230
+ env_id: z4.string(),
231
+ layer_id: z4.string(),
232
+ items: z4.union([z4.array(PrimitiveItemKeySchema), z4.array(ItemKeySchema)])
233
+ });
234
+ var ParameterDeletePayloadSchema = z4.object({ id: z4.string() });
235
+ var ParameterSyncPayloadSchema = z4.object({
236
+ id: z4.string(),
237
+ value: z4.unknown()
238
+ });
239
+ var ChartDeletePayloadSchema = z4.object({ id: z4.string() });
240
+ var ChartUpdatePayloadSchema = z4.object({
241
+ updates: z4.array(ChartUpdateDataSchema).optional(),
242
+ operations: z4.array(ChartUpdateOperationSchema).optional()
243
+ });
244
+ var LogLevelSchema = z4.enum(["debug", "info", "warning", "error", "critical"]);
245
+ var LogPayloadSchema = z4.object({
246
+ message: z4.string(),
247
+ level: LogLevelSchema.optional(),
248
+ target: z4.string().optional(),
249
+ timestamp: z4.number().optional(),
250
+ data: z4.unknown().optional()
251
+ });
252
+ var ErrorPayloadSchema = z4.object({ error: z4.string() });
253
+ var AssetMetaPayloadSchema = z4.object({
254
+ assets: z4.array(AssetMetaSchema)
255
+ });
256
+ var AssetDataPayloadSchema = z4.object({
257
+ id: z4.string(),
258
+ hash: z4.string(),
259
+ mime: z4.string(),
260
+ data: BinaryPayloadDataSchema
261
+ });
262
+ var AssetDeletePayloadSchema = z4.object({
263
+ ids: z4.array(z4.string())
264
+ });
265
+ var AssetSyncPayloadSchema = z4.object({
266
+ assets: z4.record(z4.string(), z4.string())
267
+ });
268
+ var ScreenshotRequestPayloadSchema = z4.object({
269
+ request_id: z4.string(),
270
+ env_id: z4.string().optional(),
271
+ chart_id: z4.string().optional(),
272
+ format: z4.enum(["png", "jpeg"]).optional(),
273
+ quality: z4.number().min(0).max(1).optional()
274
+ });
275
+ var ScreenshotResponsePayloadSchema = z4.object({
276
+ request_id: z4.string(),
277
+ data: BinaryPayloadDataSchema.optional(),
278
+ mime: z4.string().optional(),
279
+ error: z4.string().optional()
280
+ });
281
+ var StateSyncRequestSchema = z4.object({
282
+ request_id: z4.string().optional(),
283
+ parameters: z4.array(ParameterSchema),
284
+ actions: z4.array(ActionSchema),
285
+ envs: z4.array(z4.object({
286
+ id: z4.string(),
287
+ type: z4.string(),
288
+ layers: z4.array(z4.object({ layer_id: z4.string(), layer_type: z4.string() }))
289
+ })),
290
+ charts: z4.array(ChartMetadataSchema)
291
+ });
292
+ var ParameterChangePayloadSchema = z4.object({
293
+ id: z4.string(),
294
+ value: z4.unknown()
295
+ });
296
+ var ActionStartPayloadSchema = z4.object({
297
+ id: z4.string(),
298
+ tick_id: z4.string().optional(),
299
+ continuous: z4.boolean().optional()
300
+ });
301
+ var SimulatorToRendererMessageSchema = z4.object({
302
+ type: z4.enum([
303
+ "metadata_update",
304
+ "state_sync_begin",
305
+ "state_sync_end",
306
+ "action_end",
307
+ "action_create",
308
+ "action_update",
309
+ "action_delete",
310
+ "env_create",
311
+ "env_delete",
312
+ "env_layer_create",
313
+ "env_layer_update",
314
+ "env_layer_delete",
315
+ "item_create",
316
+ "item_update",
317
+ "item_delete",
318
+ "param_create",
319
+ "param_update",
320
+ "param_delete",
321
+ "param_sync",
322
+ "chart_create",
323
+ "chart_update",
324
+ "chart_delete",
325
+ "asset_meta",
326
+ "asset_data",
327
+ "asset_delete",
328
+ "screenshot_request",
329
+ "log",
330
+ "error"
331
+ ]),
332
+ payload: z4.unknown(),
333
+ timestamp: z4.number().optional()
334
+ });
335
+ var RendererToSimulatorMessageSchema = z4.object({
336
+ type: z4.enum([
337
+ "state_sync",
338
+ "param_change",
339
+ "action_start",
340
+ "asset_sync",
341
+ "screenshot_response",
342
+ "error"
343
+ ]),
344
+ payload: z4.unknown(),
345
+ timestamp: z4.number().optional()
346
+ });
347
+ var AnyProtocolMessageSchema = z4.union([
348
+ SimulatorToRendererMessageSchema,
349
+ RendererToSimulatorMessageSchema
350
+ ]);
351
+
352
+ // src/codec.ts
353
+ function detectProtocolEncoding(data) {
354
+ return typeof data === "string" ? "json" : "msgpack";
355
+ }
356
+ function encodeProtocolMessage(message, encoding) {
357
+ const normalized = normalizeBinarySemanticMessage(message, encoding);
358
+ return encoding === "json" ? JSON.stringify(normalized) : encode(normalized);
359
+ }
360
+ function decodeProtocolMessage(data) {
361
+ if (typeof data === "string") {
362
+ return normalizeDecodedBinarySemanticMessage(JSON.parse(data));
363
+ }
364
+ const bytes = data instanceof Uint8Array ? data : new Uint8Array(data);
365
+ return normalizeDecodedBinarySemanticMessage(decode(bytes));
366
+ }
367
+ function normalizeBinarySemanticMessage(message, encoding) {
368
+ switch (message.type) {
369
+ case "asset_data": {
370
+ const payload = AssetDataPayloadSchema.parse(message.payload);
371
+ return {
372
+ ...message,
373
+ payload: {
374
+ ...payload,
375
+ data: normalizeBinaryDataForEncoding(payload.data, payload.mime, encoding)
376
+ }
377
+ };
378
+ }
379
+ case "screenshot_response": {
380
+ const payload = ScreenshotResponsePayloadSchema.parse(message.payload);
381
+ return {
382
+ ...message,
383
+ payload: {
384
+ ...payload,
385
+ data: typeof payload.data === "undefined" ? void 0 : normalizeBinaryDataForEncoding(payload.data, payload.mime, encoding)
386
+ }
387
+ };
388
+ }
389
+ default:
390
+ return message;
391
+ }
392
+ }
393
+ function normalizeDecodedBinarySemanticMessage(message) {
394
+ switch (message.type) {
395
+ case "asset_data": {
396
+ const payload = AssetDataPayloadSchema.parse(message.payload);
397
+ return {
398
+ ...message,
399
+ payload: {
400
+ ...payload,
401
+ data: typeof payload.data === "string" ? decodeBinaryString(payload.data).bytes : payload.data
402
+ }
403
+ };
404
+ }
405
+ case "screenshot_response": {
406
+ const payload = ScreenshotResponsePayloadSchema.parse(message.payload);
407
+ return {
408
+ ...message,
409
+ payload: {
410
+ ...payload,
411
+ data: typeof payload.data === "string" ? decodeBinaryString(payload.data).bytes : payload.data
412
+ }
413
+ };
414
+ }
415
+ default:
416
+ return message;
417
+ }
418
+ }
419
+ function normalizeBinaryDataForEncoding(value, mime, encoding) {
420
+ if (encoding === "json") {
421
+ return typeof value === "string" ? value : encodeBytesAsDataUrl(value, mime ?? "application/octet-stream");
422
+ }
423
+ return typeof value === "string" ? decodeBinaryString(value).bytes : value;
424
+ }
425
+ export {
426
+ decodeProtocolMessage,
427
+ detectProtocolEncoding,
428
+ encodeProtocolMessage
429
+ };
430
+ //# sourceMappingURL=codec.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/codec.ts", "../src/binary.ts", "../src/schemas.ts", "../src/asset.ts", "../src/chart.ts", "../src/controls.ts"],
4
+ "sourcesContent": ["import { decode, encode } from '@msgpack/msgpack';\nimport { decodeBinaryString, encodeBytesAsDataUrl } from './binary';\nimport {\n AssetDataPayloadSchema,\n ScreenshotResponsePayloadSchema,\n} from './schemas';\nimport type { AnyProtocolMessage } from './types';\n\nexport type ProtocolEncoding = 'json' | 'msgpack';\n\nexport function detectProtocolEncoding(data: string | Uint8Array | ArrayBuffer): ProtocolEncoding {\n return typeof data === 'string' ? 'json' : 'msgpack';\n}\n\n/**\n * Encode semantic protocol messages for a transport.\n *\n * JSON cannot carry bytes directly, so binary semantic fields become data URLs.\n * MessagePack keeps those fields as Uint8Array values.\n */\nexport function encodeProtocolMessage(\n message: AnyProtocolMessage,\n encoding: ProtocolEncoding,\n): string | Uint8Array {\n const normalized = normalizeBinarySemanticMessage(message, encoding);\n return encoding === 'json' ? JSON.stringify(normalized) : encode(normalized);\n}\n\nexport function decodeProtocolMessage(data: string | Uint8Array | ArrayBuffer): AnyProtocolMessage {\n if (typeof data === 'string') {\n return normalizeDecodedBinarySemanticMessage(JSON.parse(data) as AnyProtocolMessage);\n }\n\n const bytes = data instanceof Uint8Array ? data : new Uint8Array(data);\n return normalizeDecodedBinarySemanticMessage(decode(bytes) as AnyProtocolMessage);\n}\n\nfunction normalizeBinarySemanticMessage(\n message: AnyProtocolMessage,\n encoding: ProtocolEncoding,\n): AnyProtocolMessage {\n switch (message.type) {\n case 'asset_data': {\n const payload = AssetDataPayloadSchema.parse(message.payload);\n return {\n ...message,\n payload: {\n ...payload,\n data: normalizeBinaryDataForEncoding(payload.data, payload.mime, encoding),\n },\n };\n }\n case 'screenshot_response': {\n const payload = ScreenshotResponsePayloadSchema.parse(message.payload);\n return {\n ...message,\n payload: {\n ...payload,\n data: typeof payload.data === 'undefined'\n ? undefined\n : normalizeBinaryDataForEncoding(payload.data, payload.mime, encoding),\n },\n };\n }\n default:\n return message;\n }\n}\n\nfunction normalizeDecodedBinarySemanticMessage(message: AnyProtocolMessage): AnyProtocolMessage {\n switch (message.type) {\n case 'asset_data': {\n const payload = AssetDataPayloadSchema.parse(message.payload);\n return {\n ...message,\n payload: {\n ...payload,\n data: typeof payload.data === 'string' ? decodeBinaryString(payload.data).bytes : payload.data,\n },\n };\n }\n case 'screenshot_response': {\n const payload = ScreenshotResponsePayloadSchema.parse(message.payload);\n return {\n ...message,\n payload: {\n ...payload,\n data: typeof payload.data === 'string' ? decodeBinaryString(payload.data).bytes : payload.data,\n },\n };\n }\n default:\n return message;\n }\n}\n\nfunction normalizeBinaryDataForEncoding(\n value: string | Uint8Array,\n mime: string | undefined,\n encoding: ProtocolEncoding,\n): string | Uint8Array {\n if (encoding === 'json') {\n return typeof value === 'string'\n ? value\n : encodeBytesAsDataUrl(value, mime ?? 'application/octet-stream');\n }\n\n return typeof value === 'string' ? decodeBinaryString(value).bytes : value;\n}\n", "const BASE64_DATA_URL_MARKER = ';base64,';\n\ninterface BufferEncoderResult {\n toString(encoding: 'base64'): string;\n}\n\ninterface BufferLike {\n from(data: Uint8Array): BufferEncoderResult;\n from(data: string, encoding: 'base64'): ArrayLike<number>;\n}\n\nexport interface DecodedBinaryString {\n bytes: Uint8Array;\n mime?: string;\n encoding: 'base64' | 'data-url';\n}\n\nfunction getGlobalBuffer(): BufferLike | undefined {\n return (globalThis as { Buffer?: BufferLike }).Buffer;\n}\n\nexport function encodeBytesAsBase64(bytes: Uint8Array): string {\n const buffer = getGlobalBuffer();\n if (buffer) {\n return buffer.from(bytes).toString('base64');\n }\n\n if (typeof btoa === 'function') {\n let binary = '';\n for (let index = 0; index < bytes.length; index += 1) {\n binary += String.fromCharCode(bytes[index]);\n }\n return btoa(binary);\n }\n\n throw new Error('No base64 encoder is available in this runtime.');\n}\n\nexport function encodeBytesAsDataUrl(\n bytes: Uint8Array,\n mime = 'application/octet-stream',\n): string {\n return `data:${mime};base64,${encodeBytesAsBase64(bytes)}`;\n}\n\nexport function decodeBinaryString(value: string): DecodedBinaryString {\n const decoded = tryDecodeBinaryString(value);\n if (!decoded) {\n throw new Error('Expected a base64 string or a base64 data URL.');\n }\n return decoded;\n}\n\nexport function isEncodedBinaryString(value: string): boolean {\n return tryDecodeBinaryString(value) !== null;\n}\n\nfunction tryDecodeBinaryString(value: string): DecodedBinaryString | null {\n if (value.startsWith('data:')) {\n const dataUrl = tryDecodeBase64DataUrl(value);\n if (dataUrl) {\n return dataUrl;\n }\n }\n\n const bytes = tryDecodeBase64(value);\n if (!bytes) {\n return null;\n }\n\n return {\n bytes,\n encoding: 'base64',\n };\n}\n\nfunction tryDecodeBase64DataUrl(value: string): DecodedBinaryString | null {\n const markerIndex = value.indexOf(BASE64_DATA_URL_MARKER);\n if (markerIndex === -1) {\n return null;\n }\n\n const mime = value.slice(5, markerIndex) || undefined;\n const base64 = value.slice(markerIndex + BASE64_DATA_URL_MARKER.length);\n const bytes = tryDecodeBase64(base64);\n if (!bytes) {\n return null;\n }\n\n return {\n bytes,\n mime,\n encoding: 'data-url',\n };\n}\n\nfunction tryDecodeBase64(value: string): Uint8Array | null {\n const normalized = value.replace(/\\s+/g, '');\n if (!normalized || normalized.length % 4 !== 0 || /[^A-Za-z0-9+/=]/.test(normalized)) {\n return null;\n }\n\n try {\n const buffer = getGlobalBuffer();\n if (buffer) {\n return new Uint8Array(buffer.from(normalized, 'base64'));\n }\n\n if (typeof atob === 'function') {\n const binary = atob(normalized);\n const bytes = new Uint8Array(binary.length);\n for (let index = 0; index < binary.length; index += 1) {\n bytes[index] = binary.charCodeAt(index);\n }\n return bytes;\n }\n } catch {\n return null;\n }\n\n throw new Error('No base64 decoder is available in this runtime.');\n}\n", "import { z } from 'zod';\nimport { AssetMetaSchema } from './asset';\nimport {\n ChartGroupMetadataSchema,\n ChartMetadataSchema,\n ChartUpdateDataSchema,\n ChartUpdateOperationSchema,\n} from './chart';\nimport { ActionSchema, ParameterSchema } from './controls';\nimport { isEncodedBinaryString } from './binary';\n\nconst BinaryPayloadStringSchema = z.string().refine(\n (value) => isEncodedBinaryString(value),\n 'Expected a base64 string or a base64 data URL for binary payload data.',\n);\n\nconst BinaryPayloadDataSchema = z.union([BinaryPayloadStringSchema, z.instanceof(Uint8Array)]);\n\nexport const ItemSchema = z.record(z.string(), z.unknown());\nexport const ItemDiffSchema = z.record(z.string(), z.unknown());\nexport const ItemKeySchema = z.record(z.string(), z.unknown());\nexport const PrimitiveItemKeySchema = z.union([z.string(), z.number()]);\n\nexport const MetadataUpdatePayloadSchema = z.object({\n time: z.number().optional(),\n}).loose();\n\nexport const StateSyncBoundaryPayloadSchema = z.object({\n request_id: z.string().optional(),\n});\n\nexport const TickTimingBreakdownSchema = z.object({\n simulate_ms: z.number().nonnegative().optional(),\n communicate_ms: z.number().nonnegative().optional(),\n render_ms: z.number().nonnegative().optional(),\n}).catchall(z.number().nonnegative());\n\nexport const ActionEndPayloadSchema = z.object({\n id: z.string(),\n tick_id: z.string().optional(),\n continue: z.boolean().optional(),\n timings: TickTimingBreakdownSchema.optional(),\n});\n\nexport const ActionDeletePayloadSchema = z.object({ id: z.string() });\n\nexport const EnvCreatePayloadSchema = z.object({\n id: z.string(),\n type: z.enum(['uniform', '2d']),\n});\n\nexport const EnvDeletePayloadSchema = z.object({ id: z.string() });\n\nexport const EnvLayerCreatePayloadSchema = z.object({\n env_id: z.string(),\n layer_id: z.string(),\n layer_type: z.string(),\n dependency_layer_ids: z.record(z.string(), z.string()).optional(),\n data: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const EnvLayerUpdatePayloadSchema = z.object({\n env_id: z.string(),\n layer_id: z.string(),\n data: z.record(z.string(), z.unknown()),\n});\n\nexport const EnvLayerDeletePayloadSchema = z.object({\n env_id: z.string(),\n layer_id: z.string(),\n});\n\nexport const ItemCreatePayloadSchema = z.object({\n env_id: z.string(),\n layer_id: z.string(),\n items: z.array(ItemSchema),\n});\n\nexport const ItemUpdatePayloadSchema = z.object({\n env_id: z.string(),\n layer_id: z.string(),\n items: z.array(ItemDiffSchema),\n});\n\nexport const ItemDeletePayloadSchema = z.object({\n env_id: z.string(),\n layer_id: z.string(),\n items: z.union([z.array(PrimitiveItemKeySchema), z.array(ItemKeySchema)]),\n});\n\nexport const ParameterDeletePayloadSchema = z.object({ id: z.string() });\n\nexport const ParameterSyncPayloadSchema = z.object({\n id: z.string(),\n value: z.unknown(),\n});\n\nexport const ChartDeletePayloadSchema = z.object({ id: z.string() });\n\nexport const ChartUpdatePayloadSchema = z.object({\n updates: z.array(ChartUpdateDataSchema).optional(),\n operations: z.array(ChartUpdateOperationSchema).optional(),\n});\n\nexport const LogLevelSchema = z.enum(['debug', 'info', 'warning', 'error', 'critical']);\n\nexport const LogPayloadSchema = z.object({\n message: z.string(),\n level: LogLevelSchema.optional(),\n target: z.string().optional(),\n timestamp: z.number().optional(),\n data: z.unknown().optional(),\n});\n\nexport const ErrorPayloadSchema = z.object({ error: z.string() });\n\nexport const AssetMetaPayloadSchema = z.object({\n assets: z.array(AssetMetaSchema),\n});\n\nexport const AssetDataPayloadSchema = z.object({\n id: z.string(),\n hash: z.string(),\n mime: z.string(),\n data: BinaryPayloadDataSchema,\n});\n\nexport const AssetDeletePayloadSchema = z.object({\n ids: z.array(z.string()),\n});\n\nexport const AssetSyncPayloadSchema = z.object({\n assets: z.record(z.string(), z.string()),\n});\n\nexport const ScreenshotRequestPayloadSchema = z.object({\n request_id: z.string(),\n env_id: z.string().optional(),\n chart_id: z.string().optional(),\n format: z.enum(['png', 'jpeg']).optional(),\n quality: z.number().min(0).max(1).optional(),\n});\n\nexport const ScreenshotResponsePayloadSchema = z.object({\n request_id: z.string(),\n data: BinaryPayloadDataSchema.optional(),\n mime: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const StateSyncRequestSchema = z.object({\n request_id: z.string().optional(),\n parameters: z.array(ParameterSchema),\n actions: z.array(ActionSchema),\n envs: z.array(z.object({\n id: z.string(),\n type: z.string(),\n layers: z.array(z.object({ layer_id: z.string(), layer_type: z.string() })),\n })),\n charts: z.array(ChartMetadataSchema),\n});\n\nexport const ParameterChangePayloadSchema = z.object({\n id: z.string(),\n value: z.unknown(),\n});\n\nexport const ActionStartPayloadSchema = z.object({\n id: z.string(),\n tick_id: z.string().optional(),\n continuous: z.boolean().optional(),\n});\n\nexport const SimulatorToRendererMessageSchema = z.object({\n type: z.enum([\n 'metadata_update',\n 'state_sync_begin',\n 'state_sync_end',\n 'action_end',\n 'action_create',\n 'action_update',\n 'action_delete',\n 'env_create',\n 'env_delete',\n 'env_layer_create',\n 'env_layer_update',\n 'env_layer_delete',\n 'item_create',\n 'item_update',\n 'item_delete',\n 'param_create',\n 'param_update',\n 'param_delete',\n 'param_sync',\n 'chart_create',\n 'chart_update',\n 'chart_delete',\n 'asset_meta',\n 'asset_data',\n 'asset_delete',\n 'screenshot_request',\n 'log',\n 'error',\n ]),\n payload: z.unknown(),\n timestamp: z.number().optional(),\n});\n\nexport const RendererToSimulatorMessageSchema = z.object({\n type: z.enum([\n 'state_sync',\n 'param_change',\n 'action_start',\n 'asset_sync',\n 'screenshot_response',\n 'error',\n ]),\n payload: z.unknown(),\n timestamp: z.number().optional(),\n});\n\nexport const AnyProtocolMessageSchema = z.union([\n SimulatorToRendererMessageSchema,\n RendererToSimulatorMessageSchema,\n]);\n\nexport const getPayloadSchema = (type: string) => {\n switch (type) {\n case 'metadata_update': return MetadataUpdatePayloadSchema;\n case 'state_sync_begin': return StateSyncBoundaryPayloadSchema;\n case 'state_sync_end': return StateSyncBoundaryPayloadSchema;\n case 'action_end': return ActionEndPayloadSchema;\n case 'action_create': return ActionSchema;\n case 'action_update': return ActionSchema;\n case 'action_delete': return ActionDeletePayloadSchema;\n case 'env_create': return EnvCreatePayloadSchema;\n case 'env_delete': return EnvDeletePayloadSchema;\n case 'env_layer_create': return EnvLayerCreatePayloadSchema;\n case 'env_layer_update': return EnvLayerUpdatePayloadSchema;\n case 'env_layer_delete': return EnvLayerDeletePayloadSchema;\n case 'item_create': return ItemCreatePayloadSchema;\n case 'item_update': return ItemUpdatePayloadSchema;\n case 'item_delete': return ItemDeletePayloadSchema;\n case 'param_create': return ParameterSchema;\n case 'param_update': return ParameterSchema;\n case 'param_delete': return ParameterDeletePayloadSchema;\n case 'param_sync': return ParameterSyncPayloadSchema;\n case 'chart_create': return ChartGroupMetadataSchema;\n case 'chart_update': return ChartUpdatePayloadSchema;\n case 'chart_delete': return ChartDeletePayloadSchema;\n case 'asset_meta': return AssetMetaPayloadSchema;\n case 'asset_data': return AssetDataPayloadSchema;\n case 'asset_delete': return AssetDeletePayloadSchema;\n case 'screenshot_request': return ScreenshotRequestPayloadSchema;\n case 'screenshot_response': return ScreenshotResponsePayloadSchema;\n case 'log': return LogPayloadSchema;\n case 'error': return ErrorPayloadSchema;\n case 'state_sync': return StateSyncRequestSchema;\n case 'param_change': return ParameterChangePayloadSchema;\n case 'action_start': return ActionStartPayloadSchema;\n case 'asset_sync': return AssetSyncPayloadSchema;\n default: return z.unknown();\n }\n};\n", "import { z } from 'zod';\n\n/**\n * Asset identifiers and metadata are protocol payloads, not renderer cache\n * objects. Renderers may resolve them into blob URLs or local buffers, but the\n * wire contract stays content-addressed by id plus hash.\n */\nexport const AssetIdSchema = z.string();\n\nexport type AssetId = z.infer<typeof AssetIdSchema>;\n\nexport const AssetMetaSchema = z.object({\n id: AssetIdSchema,\n hash: z.string(),\n mime: z.string(),\n size: z.number(),\n label: z.string().optional(),\n});\n\nexport type AssetMeta = z.infer<typeof AssetMetaSchema>;\n", "import { z } from 'zod';\n\n/**\n * Protocol-level chart types describe series identity and updates only. Chart\n * rendering config, layouts, and UI-specific storage live in renderer packages.\n */\nexport const ChartMetadataSchema = z.object({\n id: z.string(),\n label: z.string(),\n color: z.string().optional(),\n});\n\nexport type ChartMetadata = z.infer<typeof ChartMetadataSchema>;\n\nexport const ChartGroupMetadataSchema = ChartMetadataSchema.extend({\n dataList: z.array(ChartMetadataSchema).optional(),\n});\n\nexport type ChartGroupMetadata = z.infer<typeof ChartGroupMetadataSchema>;\n\nexport const ChartUpdateDataSchema = z.object({\n id: z.string(),\n time: z.number().optional(),\n value: z.unknown(),\n});\n\nexport type ChartUpdateData = z.infer<typeof ChartUpdateDataSchema>;\n\nexport const ChartUpdateOperationSchema = z.object({\n id: z.string(),\n operation: z.literal('clear'),\n});\n\nexport type ChartUpdateOperation = z.infer<typeof ChartUpdateOperationSchema>;\n", "import { z } from 'zod';\n\n/**\n * Parameters describe mutable simulator configuration exposed to the renderer.\n * Actions are intentionally separate in protocol v0.2: they have their own\n * lifecycle and renderer-driven continuous loop semantics.\n */\nexport const ParameterTypeSchema = z.enum(['number', 'enum', 'boolean', 'string']);\n\nexport type ParameterType = z.infer<typeof ParameterTypeSchema>;\n\nexport const ParameterBaseSchema = z.object({\n id: z.string(),\n type: ParameterTypeSchema,\n label: z.string(),\n allowRuntimeChange: z.boolean().optional(),\n});\n\nexport type ParameterBase = z.infer<typeof ParameterBaseSchema>;\n\nexport const NumberParameterSchema = ParameterBaseSchema.extend({\n type: z.literal('number'),\n value: z.number(),\n min: z.number().optional(),\n max: z.number().optional(),\n step: z.number().optional(),\n});\n\nexport type NumberParameter = z.infer<typeof NumberParameterSchema>;\n\nexport const EnumParameterSchema = ParameterBaseSchema.extend({\n type: z.literal('enum'),\n value: z.string(),\n options: z.array(z.string()),\n labels: z.record(z.string(), z.string()).optional(),\n});\n\nexport type EnumParameter = z.infer<typeof EnumParameterSchema>;\n\nexport const BooleanParameterSchema = ParameterBaseSchema.extend({\n type: z.literal('boolean'),\n value: z.boolean(),\n});\n\nexport type BooleanParameter = z.infer<typeof BooleanParameterSchema>;\n\nexport const StringParameterSchema = ParameterBaseSchema.extend({\n type: z.literal('string'),\n value: z.string(),\n});\n\nexport type StringParameter = z.infer<typeof StringParameterSchema>;\n\nexport const ParameterSchema = z.union([\n NumberParameterSchema,\n EnumParameterSchema,\n BooleanParameterSchema,\n StringParameterSchema,\n]);\n\nexport type Parameter = z.infer<typeof ParameterSchema>;\n\nexport const ActionSchema = z.object({\n id: z.string(),\n label: z.string(),\n continuous: z.boolean().optional(),\n allowRuntimeChange: z.boolean().optional(),\n});\n\n/** A renderer-visible command exposed by the simulator. */\nexport type Action = z.infer<typeof ActionSchema>;\n"],
5
+ "mappings": "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",
6
+ "names": ["z", "z", "z", "z"]
7
+ }
@@ -0,0 +1,102 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Parameters describe mutable simulator configuration exposed to the renderer.
4
+ * Actions are intentionally separate in protocol v0.2: they have their own
5
+ * lifecycle and renderer-driven continuous loop semantics.
6
+ */
7
+ export declare const ParameterTypeSchema: z.ZodEnum<{
8
+ string: "string";
9
+ number: "number";
10
+ boolean: "boolean";
11
+ enum: "enum";
12
+ }>;
13
+ export type ParameterType = z.infer<typeof ParameterTypeSchema>;
14
+ export declare const ParameterBaseSchema: z.ZodObject<{
15
+ id: z.ZodString;
16
+ type: z.ZodEnum<{
17
+ string: "string";
18
+ number: "number";
19
+ boolean: "boolean";
20
+ enum: "enum";
21
+ }>;
22
+ label: z.ZodString;
23
+ allowRuntimeChange: z.ZodOptional<z.ZodBoolean>;
24
+ }, z.core.$strip>;
25
+ export type ParameterBase = z.infer<typeof ParameterBaseSchema>;
26
+ export declare const NumberParameterSchema: z.ZodObject<{
27
+ id: z.ZodString;
28
+ label: z.ZodString;
29
+ allowRuntimeChange: z.ZodOptional<z.ZodBoolean>;
30
+ type: z.ZodLiteral<"number">;
31
+ value: z.ZodNumber;
32
+ min: z.ZodOptional<z.ZodNumber>;
33
+ max: z.ZodOptional<z.ZodNumber>;
34
+ step: z.ZodOptional<z.ZodNumber>;
35
+ }, z.core.$strip>;
36
+ export type NumberParameter = z.infer<typeof NumberParameterSchema>;
37
+ export declare const EnumParameterSchema: z.ZodObject<{
38
+ id: z.ZodString;
39
+ label: z.ZodString;
40
+ allowRuntimeChange: z.ZodOptional<z.ZodBoolean>;
41
+ type: z.ZodLiteral<"enum">;
42
+ value: z.ZodString;
43
+ options: z.ZodArray<z.ZodString>;
44
+ labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
45
+ }, z.core.$strip>;
46
+ export type EnumParameter = z.infer<typeof EnumParameterSchema>;
47
+ export declare const BooleanParameterSchema: z.ZodObject<{
48
+ id: z.ZodString;
49
+ label: z.ZodString;
50
+ allowRuntimeChange: z.ZodOptional<z.ZodBoolean>;
51
+ type: z.ZodLiteral<"boolean">;
52
+ value: z.ZodBoolean;
53
+ }, z.core.$strip>;
54
+ export type BooleanParameter = z.infer<typeof BooleanParameterSchema>;
55
+ export declare const StringParameterSchema: z.ZodObject<{
56
+ id: z.ZodString;
57
+ label: z.ZodString;
58
+ allowRuntimeChange: z.ZodOptional<z.ZodBoolean>;
59
+ type: z.ZodLiteral<"string">;
60
+ value: z.ZodString;
61
+ }, z.core.$strip>;
62
+ export type StringParameter = z.infer<typeof StringParameterSchema>;
63
+ export declare const ParameterSchema: z.ZodUnion<readonly [z.ZodObject<{
64
+ id: z.ZodString;
65
+ label: z.ZodString;
66
+ allowRuntimeChange: z.ZodOptional<z.ZodBoolean>;
67
+ type: z.ZodLiteral<"number">;
68
+ value: z.ZodNumber;
69
+ min: z.ZodOptional<z.ZodNumber>;
70
+ max: z.ZodOptional<z.ZodNumber>;
71
+ step: z.ZodOptional<z.ZodNumber>;
72
+ }, z.core.$strip>, z.ZodObject<{
73
+ id: z.ZodString;
74
+ label: z.ZodString;
75
+ allowRuntimeChange: z.ZodOptional<z.ZodBoolean>;
76
+ type: z.ZodLiteral<"enum">;
77
+ value: z.ZodString;
78
+ options: z.ZodArray<z.ZodString>;
79
+ labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
80
+ }, z.core.$strip>, z.ZodObject<{
81
+ id: z.ZodString;
82
+ label: z.ZodString;
83
+ allowRuntimeChange: z.ZodOptional<z.ZodBoolean>;
84
+ type: z.ZodLiteral<"boolean">;
85
+ value: z.ZodBoolean;
86
+ }, z.core.$strip>, z.ZodObject<{
87
+ id: z.ZodString;
88
+ label: z.ZodString;
89
+ allowRuntimeChange: z.ZodOptional<z.ZodBoolean>;
90
+ type: z.ZodLiteral<"string">;
91
+ value: z.ZodString;
92
+ }, z.core.$strip>]>;
93
+ export type Parameter = z.infer<typeof ParameterSchema>;
94
+ export declare const ActionSchema: z.ZodObject<{
95
+ id: z.ZodString;
96
+ label: z.ZodString;
97
+ continuous: z.ZodOptional<z.ZodBoolean>;
98
+ allowRuntimeChange: z.ZodOptional<z.ZodBoolean>;
99
+ }, z.core.$strip>;
100
+ /** A renderer-visible command exposed by the simulator. */
101
+ export type Action = z.infer<typeof ActionSchema>;
102
+ //# sourceMappingURL=controls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../src/controls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;;EAAkD,CAAC;AAEnF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,mBAAmB;;;;;;;;;;iBAK9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,qBAAqB;;;;;;;;;iBAMhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,mBAAmB;;;;;;;;iBAK9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,sBAAsB;;;;;;iBAGjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,qBAAqB;;;;;;iBAGhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAK1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,YAAY;;;;;iBAKvB,CAAC;AAEH,2DAA2D;AAC3D,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
@@ -0,0 +1,53 @@
1
+ // src/controls.ts
2
+ import { z } from "zod";
3
+ var ParameterTypeSchema = z.enum(["number", "enum", "boolean", "string"]);
4
+ var ParameterBaseSchema = z.object({
5
+ id: z.string(),
6
+ type: ParameterTypeSchema,
7
+ label: z.string(),
8
+ allowRuntimeChange: z.boolean().optional()
9
+ });
10
+ var NumberParameterSchema = ParameterBaseSchema.extend({
11
+ type: z.literal("number"),
12
+ value: z.number(),
13
+ min: z.number().optional(),
14
+ max: z.number().optional(),
15
+ step: z.number().optional()
16
+ });
17
+ var EnumParameterSchema = ParameterBaseSchema.extend({
18
+ type: z.literal("enum"),
19
+ value: z.string(),
20
+ options: z.array(z.string()),
21
+ labels: z.record(z.string(), z.string()).optional()
22
+ });
23
+ var BooleanParameterSchema = ParameterBaseSchema.extend({
24
+ type: z.literal("boolean"),
25
+ value: z.boolean()
26
+ });
27
+ var StringParameterSchema = ParameterBaseSchema.extend({
28
+ type: z.literal("string"),
29
+ value: z.string()
30
+ });
31
+ var ParameterSchema = z.union([
32
+ NumberParameterSchema,
33
+ EnumParameterSchema,
34
+ BooleanParameterSchema,
35
+ StringParameterSchema
36
+ ]);
37
+ var ActionSchema = z.object({
38
+ id: z.string(),
39
+ label: z.string(),
40
+ continuous: z.boolean().optional(),
41
+ allowRuntimeChange: z.boolean().optional()
42
+ });
43
+ export {
44
+ ActionSchema,
45
+ BooleanParameterSchema,
46
+ EnumParameterSchema,
47
+ NumberParameterSchema,
48
+ ParameterBaseSchema,
49
+ ParameterSchema,
50
+ ParameterTypeSchema,
51
+ StringParameterSchema
52
+ };
53
+ //# sourceMappingURL=controls.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/controls.ts"],
4
+ "sourcesContent": ["import { z } from 'zod';\n\n/**\n * Parameters describe mutable simulator configuration exposed to the renderer.\n * Actions are intentionally separate in protocol v0.2: they have their own\n * lifecycle and renderer-driven continuous loop semantics.\n */\nexport const ParameterTypeSchema = z.enum(['number', 'enum', 'boolean', 'string']);\n\nexport type ParameterType = z.infer<typeof ParameterTypeSchema>;\n\nexport const ParameterBaseSchema = z.object({\n id: z.string(),\n type: ParameterTypeSchema,\n label: z.string(),\n allowRuntimeChange: z.boolean().optional(),\n});\n\nexport type ParameterBase = z.infer<typeof ParameterBaseSchema>;\n\nexport const NumberParameterSchema = ParameterBaseSchema.extend({\n type: z.literal('number'),\n value: z.number(),\n min: z.number().optional(),\n max: z.number().optional(),\n step: z.number().optional(),\n});\n\nexport type NumberParameter = z.infer<typeof NumberParameterSchema>;\n\nexport const EnumParameterSchema = ParameterBaseSchema.extend({\n type: z.literal('enum'),\n value: z.string(),\n options: z.array(z.string()),\n labels: z.record(z.string(), z.string()).optional(),\n});\n\nexport type EnumParameter = z.infer<typeof EnumParameterSchema>;\n\nexport const BooleanParameterSchema = ParameterBaseSchema.extend({\n type: z.literal('boolean'),\n value: z.boolean(),\n});\n\nexport type BooleanParameter = z.infer<typeof BooleanParameterSchema>;\n\nexport const StringParameterSchema = ParameterBaseSchema.extend({\n type: z.literal('string'),\n value: z.string(),\n});\n\nexport type StringParameter = z.infer<typeof StringParameterSchema>;\n\nexport const ParameterSchema = z.union([\n NumberParameterSchema,\n EnumParameterSchema,\n BooleanParameterSchema,\n StringParameterSchema,\n]);\n\nexport type Parameter = z.infer<typeof ParameterSchema>;\n\nexport const ActionSchema = z.object({\n id: z.string(),\n label: z.string(),\n continuous: z.boolean().optional(),\n allowRuntimeChange: z.boolean().optional(),\n});\n\n/** A renderer-visible command exposed by the simulator. */\nexport type Action = z.infer<typeof ActionSchema>;\n"],
5
+ "mappings": ";AAAA,SAAS,SAAS;AAOX,IAAM,sBAAsB,EAAE,KAAK,CAAC,UAAU,QAAQ,WAAW,QAAQ,CAAC;AAI1E,IAAM,sBAAsB,EAAE,OAAO;AAAA,EAC1C,IAAI,EAAE,OAAO;AAAA,EACb,MAAM;AAAA,EACN,OAAO,EAAE,OAAO;AAAA,EAChB,oBAAoB,EAAE,QAAQ,EAAE,SAAS;AAC3C,CAAC;AAIM,IAAM,wBAAwB,oBAAoB,OAAO;AAAA,EAC9D,MAAM,EAAE,QAAQ,QAAQ;AAAA,EACxB,OAAO,EAAE,OAAO;AAAA,EAChB,KAAK,EAAE,OAAO,EAAE,SAAS;AAAA,EACzB,KAAK,EAAE,OAAO,EAAE,SAAS;AAAA,EACzB,MAAM,EAAE,OAAO,EAAE,SAAS;AAC5B,CAAC;AAIM,IAAM,sBAAsB,oBAAoB,OAAO;AAAA,EAC5D,MAAM,EAAE,QAAQ,MAAM;AAAA,EACtB,OAAO,EAAE,OAAO;AAAA,EAChB,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC;AAAA,EAC3B,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,EAAE,SAAS;AACpD,CAAC;AAIM,IAAM,yBAAyB,oBAAoB,OAAO;AAAA,EAC/D,MAAM,EAAE,QAAQ,SAAS;AAAA,EACzB,OAAO,EAAE,QAAQ;AACnB,CAAC;AAIM,IAAM,wBAAwB,oBAAoB,OAAO;AAAA,EAC9D,MAAM,EAAE,QAAQ,QAAQ;AAAA,EACxB,OAAO,EAAE,OAAO;AAClB,CAAC;AAIM,IAAM,kBAAkB,EAAE,MAAM;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAIM,IAAM,eAAe,EAAE,OAAO;AAAA,EACnC,IAAI,EAAE,OAAO;AAAA,EACb,OAAO,EAAE,OAAO;AAAA,EAChB,YAAY,EAAE,QAAQ,EAAE,SAAS;AAAA,EACjC,oBAAoB,EAAE,QAAQ,EAAE,SAAS;AAC3C,CAAC;",
6
+ "names": []
7
+ }
@@ -0,0 +1,8 @@
1
+ export * from './asset';
2
+ export * from './binary';
3
+ export * from './chart';
4
+ export * from './codec';
5
+ export * from './controls';
6
+ export * from './schemas';
7
+ export * from './types';
8
+ //# sourceMappingURL=index.d.ts.map