@selvajs/compute 2.6.0 → 3.0.0-beta.1

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 (49) hide show
  1. package/dist/chunk-6LCAIDQV.cjs +4 -0
  2. package/dist/{chunk-XA4OMT6Z.cjs.map → chunk-6LCAIDQV.cjs.map} +1 -1
  3. package/dist/chunk-FHX52FTY.cjs +2 -0
  4. package/dist/{chunk-XOEJMVK4.cjs.map → chunk-FHX52FTY.cjs.map} +1 -1
  5. package/dist/chunk-KS4A7AEU.cjs +55 -0
  6. package/dist/chunk-KS4A7AEU.cjs.map +1 -0
  7. package/dist/chunk-O55PTKMV.js +4 -0
  8. package/dist/chunk-O55PTKMV.js.map +1 -0
  9. package/dist/chunk-V5KVO4JJ.js +55 -0
  10. package/dist/chunk-V5KVO4JJ.js.map +1 -0
  11. package/dist/chunk-X7RGK5IZ.js +2 -0
  12. package/dist/chunk-X7RGK5IZ.js.map +1 -0
  13. package/dist/core.cjs +1 -1
  14. package/dist/core.d.cts +1 -1
  15. package/dist/core.d.ts +1 -1
  16. package/dist/core.js +1 -1
  17. package/dist/grasshopper.cjs +1 -1
  18. package/dist/grasshopper.cjs.map +1 -1
  19. package/dist/grasshopper.d.cts +21 -143
  20. package/dist/grasshopper.d.ts +21 -143
  21. package/dist/grasshopper.js +1 -1
  22. package/dist/{handle-files-UcwvknQ3.d.ts → handle-files-Bu2qmaPj.d.cts} +11 -1
  23. package/dist/{handle-files-UcwvknQ3.d.cts → handle-files-Bu2qmaPj.d.ts} +11 -1
  24. package/dist/index.cjs +1 -1
  25. package/dist/index.cjs.map +1 -1
  26. package/dist/index.d.cts +2 -2
  27. package/dist/index.d.ts +2 -2
  28. package/dist/index.js +1 -1
  29. package/dist/visualization-3VKXKTBW.js +2 -0
  30. package/dist/visualization-H4P23BWC.cjs +2 -0
  31. package/dist/{visualization-ZFXCE5NW.cjs.map → visualization-H4P23BWC.cjs.map} +1 -1
  32. package/dist/visualization.cjs +1 -1
  33. package/dist/visualization.d.cts +25 -10
  34. package/dist/visualization.d.ts +25 -10
  35. package/dist/visualization.js +1 -1
  36. package/package.json +1 -3
  37. package/dist/chunk-GY2WLD42.js +0 -4
  38. package/dist/chunk-GY2WLD42.js.map +0 -1
  39. package/dist/chunk-UH3HH7PS.js +0 -55
  40. package/dist/chunk-UH3HH7PS.js.map +0 -1
  41. package/dist/chunk-XA4OMT6Z.cjs +0 -4
  42. package/dist/chunk-XOEJMVK4.cjs +0 -2
  43. package/dist/chunk-XXA7NEQF.cjs +0 -55
  44. package/dist/chunk-XXA7NEQF.cjs.map +0 -1
  45. package/dist/chunk-Y7V63BG7.js +0 -2
  46. package/dist/chunk-Y7V63BG7.js.map +0 -1
  47. package/dist/visualization-RICQHNLJ.js +0 -2
  48. package/dist/visualization-ZFXCE5NW.cjs +0 -2
  49. /package/dist/{visualization-RICQHNLJ.js.map → visualization-3VKXKTBW.js.map} +0 -0
@@ -1,5 +1,5 @@
1
- import { R as RhinoComputeError, C as ComputeServerStats, F as FileBaseInfo } from './handle-files-UcwvknQ3.cjs';
2
- export { b as FileData, P as ProcessedFile, d as downloadFileData, e as extractFilesFromComputeResponse } from './handle-files-UcwvknQ3.cjs';
1
+ import { R as RhinoComputeError, C as ComputeServerStats, F as FileBaseInfo } from './handle-files-Bu2qmaPj.cjs';
2
+ export { b as FileData, P as ProcessedFile, d as downloadFileData, e as extractFilesFromComputeResponse } from './handle-files-Bu2qmaPj.cjs';
3
3
  import { R as RetryPolicy, C as ComputeConfig } from './types-ChF690kY.cjs';
4
4
  export { a as RhinoModelUnit } from './types-ChF690kY.cjs';
5
5
  import { f as GrasshopperComputeResponse, a as DataTree, e as GrasshopperComputeConfig, g as GrasshopperParsedIO, h as GrasshopperParsedIORaw, M as MeshExtractionOptions, k as InputParamSchema, j as InputParam, b as DataTreeDefault, c as DataTreePath } from './types-D-HQ-gWI.cjs';
@@ -356,20 +356,15 @@ interface GetValuesResult<T = ParsedContext> {
356
356
  declare class GrasshopperResponseProcessor {
357
357
  private readonly response;
358
358
  private readonly debug;
359
- /**
360
- * Store the compute response for reuse.
361
- */
362
359
  constructor(response: GrasshopperComputeResponse, debug?: boolean);
363
360
  /**
364
361
  * Extract all values in the response.
365
362
  *
366
363
  * @typeParam T - Expected structure of the return value. Defaults to a simple key/value map. (later cast as needed)
367
- * @param byId - If true, keys are parameter IDs; if false, keys are parameter names.
364
+ * @param byId - Key by parameter ID instead of name. Requires the VektorNode rhino.compute branch.
368
365
  * @param options - Controls parsing behavior such as Rhino geometry decoding.
369
366
  * @returns Parsed Grasshopper output values.
370
367
  *
371
- * **Note:** Using `byId` only works with the custom VektorNode rhino.compute branch.
372
- *
373
368
  * @example
374
369
  * ```ts
375
370
  * const processor = new GrasshopperResponseProcessor(response);
@@ -389,13 +384,13 @@ declare class GrasshopperResponseProcessor {
389
384
  * @param options - Parsing configuration (e.g. disable parsing or enable Rhino).
390
385
  * @returns Single parsed value, array of values, or undefined if the parameter is absent.
391
386
  *
387
+ * `byId` requires the VektorNode rhino.compute branch.
388
+ *
392
389
  * @example
393
390
  * ```ts
394
391
  * const schema = processor.getValue({ byName: 'Schema' });
395
392
  * const output = processor.getValue({ byId: 'a4be1c1e-23f9-4c27-b942-7f3bb2c45c6f' });
396
393
  * ```
397
- *
398
- * **Note:** `byId` only works with the custom VektorNode rhino.compute branch.
399
394
  */
400
395
  getValue(selector: {
401
396
  byName: string;
@@ -403,57 +398,26 @@ declare class GrasshopperResponseProcessor {
403
398
  byId: string;
404
399
  }, options?: GetValuesOptions): any;
405
400
  /**
406
- * @deprecated Use `getValue({ byName })` instead.
407
- */
408
- getValueByParamName(paramName: string, options?: GetValuesOptions): any;
409
- /**
410
- * @deprecated Use `getValue({ byId })` instead.
411
- */
412
- getValueByParamId(paramId: string, options?: GetValuesOptions): any;
413
- /**
414
- * Convert all geometry results into Three.js mesh objects.
415
- *
416
- * This uses internal helpers to decode Rhino geometry into Three.js
417
- * primitives such as meshes and lines, making them ready for rendering.
418
- *
419
- * All processing options (scaling, positioning, compression, etc.) can be customized.
420
- * The processor's debug flag is merged with options - explicit options take precedence.
401
+ * Decode all geometry results into Three.js meshes/lines ready for rendering.
402
+ * The processor's `debug` flag is merged with `options` (explicit options win).
421
403
  *
422
- * **Note:** This only works when using the **Selva Display** component in Grasshopper, and requires the custom branch of rhino.compute from VektorNode. This method dynamically imports three.js visualization modules. Ensure three.js is installed as a peer dependency if you use this feature.
404
+ * Requires the **Selva Display** Grasshopper component and the VektorNode
405
+ * rhino.compute branch. Three.js is loaded dynamically, so install it as a
406
+ * peer dependency before calling this.
423
407
  *
424
- * @param options - Configuration for mesh extraction and parsing. Overrides processor's debug flag if provided.
425
- * @returns Promise resolving to an array of Three.js mesh objects.
426
- * @throws {RhinoComputeError} If three.js visualization module cannot be loaded.
408
+ * @throws {RhinoComputeError} If the three.js visualization module can't load.
427
409
  *
428
410
  * @example
429
411
  * ```ts
430
412
  * const meshes = await processor.extractMeshesFromResponse();
431
413
  * scene.add(...meshes);
432
414
  * ```
433
- *
434
- * @example
435
- * ```ts
436
- * const meshes = await processor.extractMeshesFromResponse({
437
- * debug: true,
438
- * allowScaling: true,
439
- * allowAutoPosition: false,
440
- * parsing: {
441
- * mergeByMaterial: false,
442
- * applyTransforms: true,
443
- * debug: true,
444
- * },
445
- * });
446
- * ```
447
415
  */
448
416
  extractMeshesFromResponse(options?: MeshExtractionOptions): Promise<THREE.Object3D<THREE.Object3DEventMap>[]>;
449
417
  /**
450
- * Extract internal file data structures from the response.
451
- * This includes Grasshopper-generated textures, JSON exports,
452
- * CAD formats, or any file structure packaged in the response.
453
- *
454
- * **Note:** This only works when using the **Block to File** and **Geometry To File** components from the Selva plugin in Grasshopper, and requires the custom branch of rhino.compute from VektorNode.
455
- *
456
- * @returns Raw file data entries.
418
+ * Raw file entries packaged in the response (textures, JSON, CAD exports, …).
419
+ * Produced by the Selva **Block to File** / **Geometry To File** components on
420
+ * the VektorNode rhino.compute branch.
457
421
  */
458
422
  private getFileData;
459
423
  /**
@@ -479,19 +443,6 @@ declare class GrasshopperResponseProcessor {
479
443
  getAndDownloadFiles(folderName: string, additionalFiles?: FileBaseInfo[] | FileBaseInfo | null): Promise<void>;
480
444
  }
481
445
 
482
- /**
483
- * Hash definition and data tree into a stable cache key.
484
- *
485
- * The definition is the *identity* of what we solve, so a binary definition is
486
- * hashed over its full content (`fnv1aBytes`) — a length-only or sampled key
487
- * would let two different `.gh` files collide and serve one's cached solve for
488
- * the other. `.gh` files are small enough that a single linear pass is
489
- * negligible. (Note this differs from `stableStringify`'s sampled handling of a
490
- * `Uint8Array` found *inside* the dataTree, where sampling is a deliberate
491
- * per-solve perf tradeoff.)
492
- */
493
- declare function hashSolveInput(definition: string | Uint8Array, dataTree: unknown): string;
494
-
495
446
  /**
496
447
  * Runs a Rhino Compute job using the provided tree prototypes and Grasshopper definition.
497
448
  *
@@ -560,88 +511,15 @@ declare function fetchDefinitionIO(definition: string | Uint8Array, config: Comp
560
511
  declare function fetchParsedDefinitionIO(definition: string | Uint8Array, config: ComputeConfig): Promise<GrasshopperParsedIO>;
561
512
 
562
513
  /**
563
- * Processes a raw input parameter schema and converts it into a typed InputParam object.
564
- *
565
- * @internal This is an internal processor. Use `fetchParsedDefinitionIO()` to get processed inputs instead.
566
- *
567
- * This function handles the transformation of raw input parameter data from Grasshopper into
568
- * a structured, type-safe format. It performs validation, type-specific processing, and error
569
- * handling for various parameter types including numeric, boolean, text, geometry, point, and line inputs.
570
- *
571
- * @param rawInput - The raw input parameter schema to process
572
- * @returns A fully processed and typed InputParam object with appropriate type-specific properties
573
- *
574
- * @throws {RhinoComputeError} When an unknown paramType is encountered
575
- * @throws {Error} Re-throws any non-RhinoComputeError exceptions
576
- *
577
- * @remarks
578
- * The function performs the following operations:
579
- * - Extracts base properties common to all input types
580
- * - Preprocesses the raw input data
581
- * - Applies type-specific validation and transformation
582
- * - Handles errors gracefully by creating safe default values for validation errors
583
- *
584
- * Supported parameter types:
585
- * - `Number` and `Integer`: Numeric inputs with optional min/max constraints
586
- * - `Boolean`: Boolean flag inputs
587
- * - `Text`: String inputs
588
- * - `Geometry`: Generic geometry objects
589
- * - `Point`: 3D point objects
590
- * - `Line`: Line objects
591
- *
592
- * @example
593
- * ```typescript
594
- * const rawInput = {
595
- * name: 'Length',
596
- * paramType: 'Number',
597
- * minimum: 0,
598
- * maximum: 100,
599
- * default: 50
600
- * };
601
- * const processedInput = processInput(rawInput);
602
- * ```
514
+ * Parse one raw Grasshopper input schema into a typed {@link InputParam}.
515
+ * Validation failures are swallowed and replaced with a safe default; use
516
+ * {@link processInputWithError} to receive them.
603
517
  */
604
518
  declare function processInput(rawInput: InputParamSchema): InputParam;
605
519
  /**
606
- * Processes raw Grasshopper input schemas into strongly-typed TypeScript interfaces.
607
- *
608
- * @internal This is an internal batch processor. Use `fetchParsedDefinitionIO()` to get processed inputs instead.
609
- *
610
- * Transforms each raw input parameter by:
611
- * - Normalizing default values (flattening data trees, parsing primitives)
612
- * - Applying type-specific parsing (Number, Text, Boolean, Geometry, etc.)
613
- * - Validating constraints (min/max, required fields)
614
- * - Converting to discriminated union types for type safety
615
- *
616
- * @param rawInputs - Array of raw input schemas from Rhino Compute API
617
- * @returns Array of processed, strongly-typed input parameters
618
- *
619
- * @remarks
620
- * - Empty data trees are converted to `undefined`
621
- * - Single values are extracted from arrays when appropriate
622
- * - Tree structures are preserved for list/tree access parameters
623
- * - Invalid inputs fall back to safe defaults with console warnings
624
- *
625
- * @example
626
- * ```typescript
627
- * const rawInputs = [
628
- * { paramType: 'Number', name: 'radius', minimum: 0, default: 10 },
629
- * { paramType: 'Text', name: 'label', default: 'Hello' }
630
- * ];
631
- *
632
- * const processed = processInputs(rawInputs);
633
- * // Result: [
634
- * // { paramType: 'Number', name: 'radius', minimum: 0, default: 10, ... },
635
- * // { paramType: 'Text', name: 'label', default: 'Hello', ... }
636
- * // ]
637
- *
638
- * // Now type-safe:
639
- * if (processed[0].paramType === 'Number') {
640
- * console.log(processed[0].minimum); // TypeScript knows this exists
641
- * }
642
- * ```
643
- *
644
- * @see {@link processInput} for individual input processing logic
520
+ * Parse an array of raw input schemas into typed {@link InputParam}s, each via
521
+ * {@link processInput}. Use {@link processInputsWithErrors} to also collect the
522
+ * inputs that failed validation.
645
523
  */
646
524
  declare function processInputs(rawInputs: InputParamSchema[]): InputParam[];
647
525
 
@@ -915,4 +793,4 @@ declare class TreeBuilder {
915
793
  private static clampValue;
916
794
  }
917
795
 
918
- export { type CacheOptions, ComputeConfig, DataTree, DataTreeDefault, DataTreePath, type DataTreeValue, FileBaseInfo, type GetValuesOptions, type GetValuesResult, GrasshopperClient, GrasshopperComputeConfig, GrasshopperComputeResponse, GrasshopperParsedIO, GrasshopperParsedIORaw, GrasshopperResponseProcessor, InputParam, InputParamSchema, type ParsedContext, RetryPolicy, RhinoComputeError, type SchedulerMode, type SolveContext, type SolveExecutor, type SolveOptions, type SolveResult, SolveScheduler, type SolveSchedulerOptions, TreeBuilder, fetchDefinitionIO, fetchParsedDefinitionIO, hashSolveInput, processInput, processInputs, solveGrasshopperDefinition };
796
+ export { type CacheOptions, ComputeConfig, DataTree, DataTreeDefault, DataTreePath, type DataTreeValue, FileBaseInfo, type GetValuesOptions, type GetValuesResult, GrasshopperClient, GrasshopperComputeConfig, GrasshopperComputeResponse, GrasshopperParsedIO, GrasshopperParsedIORaw, GrasshopperResponseProcessor, InputParam, InputParamSchema, type ParsedContext, RetryPolicy, RhinoComputeError, type SchedulerMode, type SolveContext, type SolveOptions, type SolveResult, SolveScheduler, type SolveSchedulerOptions, TreeBuilder, fetchDefinitionIO, fetchParsedDefinitionIO, processInput, processInputs, solveGrasshopperDefinition };
@@ -1,5 +1,5 @@
1
- import { R as RhinoComputeError, C as ComputeServerStats, F as FileBaseInfo } from './handle-files-UcwvknQ3.js';
2
- export { b as FileData, P as ProcessedFile, d as downloadFileData, e as extractFilesFromComputeResponse } from './handle-files-UcwvknQ3.js';
1
+ import { R as RhinoComputeError, C as ComputeServerStats, F as FileBaseInfo } from './handle-files-Bu2qmaPj.js';
2
+ export { b as FileData, P as ProcessedFile, d as downloadFileData, e as extractFilesFromComputeResponse } from './handle-files-Bu2qmaPj.js';
3
3
  import { R as RetryPolicy, C as ComputeConfig } from './types-ChF690kY.js';
4
4
  export { a as RhinoModelUnit } from './types-ChF690kY.js';
5
5
  import { f as GrasshopperComputeResponse, a as DataTree, e as GrasshopperComputeConfig, g as GrasshopperParsedIO, h as GrasshopperParsedIORaw, M as MeshExtractionOptions, k as InputParamSchema, j as InputParam, b as DataTreeDefault, c as DataTreePath } from './types-DxT3hSkx.js';
@@ -356,20 +356,15 @@ interface GetValuesResult<T = ParsedContext> {
356
356
  declare class GrasshopperResponseProcessor {
357
357
  private readonly response;
358
358
  private readonly debug;
359
- /**
360
- * Store the compute response for reuse.
361
- */
362
359
  constructor(response: GrasshopperComputeResponse, debug?: boolean);
363
360
  /**
364
361
  * Extract all values in the response.
365
362
  *
366
363
  * @typeParam T - Expected structure of the return value. Defaults to a simple key/value map. (later cast as needed)
367
- * @param byId - If true, keys are parameter IDs; if false, keys are parameter names.
364
+ * @param byId - Key by parameter ID instead of name. Requires the VektorNode rhino.compute branch.
368
365
  * @param options - Controls parsing behavior such as Rhino geometry decoding.
369
366
  * @returns Parsed Grasshopper output values.
370
367
  *
371
- * **Note:** Using `byId` only works with the custom VektorNode rhino.compute branch.
372
- *
373
368
  * @example
374
369
  * ```ts
375
370
  * const processor = new GrasshopperResponseProcessor(response);
@@ -389,13 +384,13 @@ declare class GrasshopperResponseProcessor {
389
384
  * @param options - Parsing configuration (e.g. disable parsing or enable Rhino).
390
385
  * @returns Single parsed value, array of values, or undefined if the parameter is absent.
391
386
  *
387
+ * `byId` requires the VektorNode rhino.compute branch.
388
+ *
392
389
  * @example
393
390
  * ```ts
394
391
  * const schema = processor.getValue({ byName: 'Schema' });
395
392
  * const output = processor.getValue({ byId: 'a4be1c1e-23f9-4c27-b942-7f3bb2c45c6f' });
396
393
  * ```
397
- *
398
- * **Note:** `byId` only works with the custom VektorNode rhino.compute branch.
399
394
  */
400
395
  getValue(selector: {
401
396
  byName: string;
@@ -403,57 +398,26 @@ declare class GrasshopperResponseProcessor {
403
398
  byId: string;
404
399
  }, options?: GetValuesOptions): any;
405
400
  /**
406
- * @deprecated Use `getValue({ byName })` instead.
407
- */
408
- getValueByParamName(paramName: string, options?: GetValuesOptions): any;
409
- /**
410
- * @deprecated Use `getValue({ byId })` instead.
411
- */
412
- getValueByParamId(paramId: string, options?: GetValuesOptions): any;
413
- /**
414
- * Convert all geometry results into Three.js mesh objects.
415
- *
416
- * This uses internal helpers to decode Rhino geometry into Three.js
417
- * primitives such as meshes and lines, making them ready for rendering.
418
- *
419
- * All processing options (scaling, positioning, compression, etc.) can be customized.
420
- * The processor's debug flag is merged with options - explicit options take precedence.
401
+ * Decode all geometry results into Three.js meshes/lines ready for rendering.
402
+ * The processor's `debug` flag is merged with `options` (explicit options win).
421
403
  *
422
- * **Note:** This only works when using the **Selva Display** component in Grasshopper, and requires the custom branch of rhino.compute from VektorNode. This method dynamically imports three.js visualization modules. Ensure three.js is installed as a peer dependency if you use this feature.
404
+ * Requires the **Selva Display** Grasshopper component and the VektorNode
405
+ * rhino.compute branch. Three.js is loaded dynamically, so install it as a
406
+ * peer dependency before calling this.
423
407
  *
424
- * @param options - Configuration for mesh extraction and parsing. Overrides processor's debug flag if provided.
425
- * @returns Promise resolving to an array of Three.js mesh objects.
426
- * @throws {RhinoComputeError} If three.js visualization module cannot be loaded.
408
+ * @throws {RhinoComputeError} If the three.js visualization module can't load.
427
409
  *
428
410
  * @example
429
411
  * ```ts
430
412
  * const meshes = await processor.extractMeshesFromResponse();
431
413
  * scene.add(...meshes);
432
414
  * ```
433
- *
434
- * @example
435
- * ```ts
436
- * const meshes = await processor.extractMeshesFromResponse({
437
- * debug: true,
438
- * allowScaling: true,
439
- * allowAutoPosition: false,
440
- * parsing: {
441
- * mergeByMaterial: false,
442
- * applyTransforms: true,
443
- * debug: true,
444
- * },
445
- * });
446
- * ```
447
415
  */
448
416
  extractMeshesFromResponse(options?: MeshExtractionOptions): Promise<THREE.Object3D<THREE.Object3DEventMap>[]>;
449
417
  /**
450
- * Extract internal file data structures from the response.
451
- * This includes Grasshopper-generated textures, JSON exports,
452
- * CAD formats, or any file structure packaged in the response.
453
- *
454
- * **Note:** This only works when using the **Block to File** and **Geometry To File** components from the Selva plugin in Grasshopper, and requires the custom branch of rhino.compute from VektorNode.
455
- *
456
- * @returns Raw file data entries.
418
+ * Raw file entries packaged in the response (textures, JSON, CAD exports, …).
419
+ * Produced by the Selva **Block to File** / **Geometry To File** components on
420
+ * the VektorNode rhino.compute branch.
457
421
  */
458
422
  private getFileData;
459
423
  /**
@@ -479,19 +443,6 @@ declare class GrasshopperResponseProcessor {
479
443
  getAndDownloadFiles(folderName: string, additionalFiles?: FileBaseInfo[] | FileBaseInfo | null): Promise<void>;
480
444
  }
481
445
 
482
- /**
483
- * Hash definition and data tree into a stable cache key.
484
- *
485
- * The definition is the *identity* of what we solve, so a binary definition is
486
- * hashed over its full content (`fnv1aBytes`) — a length-only or sampled key
487
- * would let two different `.gh` files collide and serve one's cached solve for
488
- * the other. `.gh` files are small enough that a single linear pass is
489
- * negligible. (Note this differs from `stableStringify`'s sampled handling of a
490
- * `Uint8Array` found *inside* the dataTree, where sampling is a deliberate
491
- * per-solve perf tradeoff.)
492
- */
493
- declare function hashSolveInput(definition: string | Uint8Array, dataTree: unknown): string;
494
-
495
446
  /**
496
447
  * Runs a Rhino Compute job using the provided tree prototypes and Grasshopper definition.
497
448
  *
@@ -560,88 +511,15 @@ declare function fetchDefinitionIO(definition: string | Uint8Array, config: Comp
560
511
  declare function fetchParsedDefinitionIO(definition: string | Uint8Array, config: ComputeConfig): Promise<GrasshopperParsedIO>;
561
512
 
562
513
  /**
563
- * Processes a raw input parameter schema and converts it into a typed InputParam object.
564
- *
565
- * @internal This is an internal processor. Use `fetchParsedDefinitionIO()` to get processed inputs instead.
566
- *
567
- * This function handles the transformation of raw input parameter data from Grasshopper into
568
- * a structured, type-safe format. It performs validation, type-specific processing, and error
569
- * handling for various parameter types including numeric, boolean, text, geometry, point, and line inputs.
570
- *
571
- * @param rawInput - The raw input parameter schema to process
572
- * @returns A fully processed and typed InputParam object with appropriate type-specific properties
573
- *
574
- * @throws {RhinoComputeError} When an unknown paramType is encountered
575
- * @throws {Error} Re-throws any non-RhinoComputeError exceptions
576
- *
577
- * @remarks
578
- * The function performs the following operations:
579
- * - Extracts base properties common to all input types
580
- * - Preprocesses the raw input data
581
- * - Applies type-specific validation and transformation
582
- * - Handles errors gracefully by creating safe default values for validation errors
583
- *
584
- * Supported parameter types:
585
- * - `Number` and `Integer`: Numeric inputs with optional min/max constraints
586
- * - `Boolean`: Boolean flag inputs
587
- * - `Text`: String inputs
588
- * - `Geometry`: Generic geometry objects
589
- * - `Point`: 3D point objects
590
- * - `Line`: Line objects
591
- *
592
- * @example
593
- * ```typescript
594
- * const rawInput = {
595
- * name: 'Length',
596
- * paramType: 'Number',
597
- * minimum: 0,
598
- * maximum: 100,
599
- * default: 50
600
- * };
601
- * const processedInput = processInput(rawInput);
602
- * ```
514
+ * Parse one raw Grasshopper input schema into a typed {@link InputParam}.
515
+ * Validation failures are swallowed and replaced with a safe default; use
516
+ * {@link processInputWithError} to receive them.
603
517
  */
604
518
  declare function processInput(rawInput: InputParamSchema): InputParam;
605
519
  /**
606
- * Processes raw Grasshopper input schemas into strongly-typed TypeScript interfaces.
607
- *
608
- * @internal This is an internal batch processor. Use `fetchParsedDefinitionIO()` to get processed inputs instead.
609
- *
610
- * Transforms each raw input parameter by:
611
- * - Normalizing default values (flattening data trees, parsing primitives)
612
- * - Applying type-specific parsing (Number, Text, Boolean, Geometry, etc.)
613
- * - Validating constraints (min/max, required fields)
614
- * - Converting to discriminated union types for type safety
615
- *
616
- * @param rawInputs - Array of raw input schemas from Rhino Compute API
617
- * @returns Array of processed, strongly-typed input parameters
618
- *
619
- * @remarks
620
- * - Empty data trees are converted to `undefined`
621
- * - Single values are extracted from arrays when appropriate
622
- * - Tree structures are preserved for list/tree access parameters
623
- * - Invalid inputs fall back to safe defaults with console warnings
624
- *
625
- * @example
626
- * ```typescript
627
- * const rawInputs = [
628
- * { paramType: 'Number', name: 'radius', minimum: 0, default: 10 },
629
- * { paramType: 'Text', name: 'label', default: 'Hello' }
630
- * ];
631
- *
632
- * const processed = processInputs(rawInputs);
633
- * // Result: [
634
- * // { paramType: 'Number', name: 'radius', minimum: 0, default: 10, ... },
635
- * // { paramType: 'Text', name: 'label', default: 'Hello', ... }
636
- * // ]
637
- *
638
- * // Now type-safe:
639
- * if (processed[0].paramType === 'Number') {
640
- * console.log(processed[0].minimum); // TypeScript knows this exists
641
- * }
642
- * ```
643
- *
644
- * @see {@link processInput} for individual input processing logic
520
+ * Parse an array of raw input schemas into typed {@link InputParam}s, each via
521
+ * {@link processInput}. Use {@link processInputsWithErrors} to also collect the
522
+ * inputs that failed validation.
645
523
  */
646
524
  declare function processInputs(rawInputs: InputParamSchema[]): InputParam[];
647
525
 
@@ -915,4 +793,4 @@ declare class TreeBuilder {
915
793
  private static clampValue;
916
794
  }
917
795
 
918
- export { type CacheOptions, ComputeConfig, DataTree, DataTreeDefault, DataTreePath, type DataTreeValue, FileBaseInfo, type GetValuesOptions, type GetValuesResult, GrasshopperClient, GrasshopperComputeConfig, GrasshopperComputeResponse, GrasshopperParsedIO, GrasshopperParsedIORaw, GrasshopperResponseProcessor, InputParam, InputParamSchema, type ParsedContext, RetryPolicy, RhinoComputeError, type SchedulerMode, type SolveContext, type SolveExecutor, type SolveOptions, type SolveResult, SolveScheduler, type SolveSchedulerOptions, TreeBuilder, fetchDefinitionIO, fetchParsedDefinitionIO, hashSolveInput, processInput, processInputs, solveGrasshopperDefinition };
796
+ export { type CacheOptions, ComputeConfig, DataTree, DataTreeDefault, DataTreePath, type DataTreeValue, FileBaseInfo, type GetValuesOptions, type GetValuesResult, GrasshopperClient, GrasshopperComputeConfig, GrasshopperComputeResponse, GrasshopperParsedIO, GrasshopperParsedIORaw, GrasshopperResponseProcessor, InputParam, InputParamSchema, type ParsedContext, RetryPolicy, RhinoComputeError, type SchedulerMode, type SolveContext, type SolveOptions, type SolveResult, SolveScheduler, type SolveSchedulerOptions, TreeBuilder, fetchDefinitionIO, fetchParsedDefinitionIO, processInput, processInputs, solveGrasshopperDefinition };
@@ -1,2 +1,2 @@
1
- import{a as d,b as e,c as f,d as g,e as h,f as i,g as j,h as k,i as l,j as m}from"./chunk-Y7V63BG7.js";import{d as a,q as b,r as c}from"./chunk-GY2WLD42.js";export{g as GrasshopperClient,h as GrasshopperResponseProcessor,a as RhinoComputeError,f as SolveScheduler,m as TreeBuilder,c as downloadFileData,b as extractFilesFromComputeResponse,k as fetchDefinitionIO,l as fetchParsedDefinitionIO,e as hashSolveInput,i as processInput,j as processInputs,d as solveGrasshopperDefinition};
1
+ import{a as d,b as e,c as f,d as g,e as h,f as i,g as j,h as k,i as l}from"./chunk-X7RGK5IZ.js";import{d as a,q as b,r as c}from"./chunk-O55PTKMV.js";export{f as GrasshopperClient,g as GrasshopperResponseProcessor,a as RhinoComputeError,e as SolveScheduler,l as TreeBuilder,c as downloadFileData,b as extractFilesFromComputeResponse,j as fetchDefinitionIO,k as fetchParsedDefinitionIO,h as processInput,i as processInputs,d as solveGrasshopperDefinition};
2
2
  //# sourceMappingURL=grasshopper.js.map
@@ -29,11 +29,20 @@ declare class ComputeServerStats {
29
29
  * @param serverUrl - Base URL of the Rhino Compute server with http:// or https:// scheme (e.g., 'http://localhost:6500')
30
30
  * @param apiKey - Optional API key for authentication
31
31
  */
32
+ /** Timeout (ms) for the fast read/monitoring endpoints. */
33
+ private static readonly DEFAULT_TIMEOUT_MS;
34
+ /** Timeout (ms) for child-lifecycle POSTs — a cold Windows child can take ~30s to spawn. */
35
+ private static readonly LIFECYCLE_TIMEOUT_MS;
32
36
  constructor(serverUrl: string, apiKey?: string);
33
37
  /**
34
38
  * Build request headers with optional API key.
35
39
  */
36
40
  private buildHeaders;
41
+ /**
42
+ * `fetch` wrapper that aborts after `timeoutMs` so a hung connection can't stall
43
+ * a probe (or the `monitor()` loop) forever. Pass `0` to disable the timeout.
44
+ */
45
+ private fetchWithTimeout;
37
46
  /**
38
47
  * Check if the server is online.
39
48
  *
@@ -256,7 +265,8 @@ declare class ComputeServerStats {
256
265
  /**
257
266
  * POST a control endpoint that replies with a JSON object and return it,
258
267
  * degrading to `null` on any non-2xx, non-JSON, or network failure. Shared by
259
- * the child-lifecycle methods so their failure semantics stay identical.
268
+ * the child-lifecycle methods so their failure semantics stay identical. Uses
269
+ * the longer lifecycle timeout since a spawn/recycle can take ~30s.
260
270
  */
261
271
  private postJson;
262
272
  /**
@@ -29,11 +29,20 @@ declare class ComputeServerStats {
29
29
  * @param serverUrl - Base URL of the Rhino Compute server with http:// or https:// scheme (e.g., 'http://localhost:6500')
30
30
  * @param apiKey - Optional API key for authentication
31
31
  */
32
+ /** Timeout (ms) for the fast read/monitoring endpoints. */
33
+ private static readonly DEFAULT_TIMEOUT_MS;
34
+ /** Timeout (ms) for child-lifecycle POSTs — a cold Windows child can take ~30s to spawn. */
35
+ private static readonly LIFECYCLE_TIMEOUT_MS;
32
36
  constructor(serverUrl: string, apiKey?: string);
33
37
  /**
34
38
  * Build request headers with optional API key.
35
39
  */
36
40
  private buildHeaders;
41
+ /**
42
+ * `fetch` wrapper that aborts after `timeoutMs` so a hung connection can't stall
43
+ * a probe (or the `monitor()` loop) forever. Pass `0` to disable the timeout.
44
+ */
45
+ private fetchWithTimeout;
37
46
  /**
38
47
  * Check if the server is online.
39
48
  *
@@ -256,7 +265,8 @@ declare class ComputeServerStats {
256
265
  /**
257
266
  * POST a control endpoint that replies with a JSON object and return it,
258
267
  * degrading to `null` on any non-2xx, non-JSON, or network failure. Shared by
259
- * the child-lifecycle methods so their failure semantics stay identical.
268
+ * the child-lifecycle methods so their failure semantics stay identical. Uses
269
+ * the longer lifecycle timeout since a spawn/recycle can take ~30s.
260
270
  */
261
271
  private postJson;
262
272
  /**
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkXOEJMVK4cjs = require('./chunk-XOEJMVK4.cjs');var _chunkXA4OMT6Zcjs = require('./chunk-XA4OMT6Z.cjs');exports.ComputeServerStats = _chunkXA4OMT6Zcjs.j; exports.ErrorCodes = _chunkXA4OMT6Zcjs.c; exports.GrasshopperClient = _chunkXOEJMVK4cjs.d; exports.GrasshopperResponseProcessor = _chunkXOEJMVK4cjs.e; exports.RhinoComputeError = _chunkXA4OMT6Zcjs.d; exports.SolveScheduler = _chunkXOEJMVK4cjs.c; exports.TreeBuilder = _chunkXOEJMVK4cjs.j; exports.camelcaseKeys = _chunkXA4OMT6Zcjs.l; exports.downloadFileData = _chunkXA4OMT6Zcjs.r; exports.enableDebugLogging = _chunkXA4OMT6Zcjs.g; exports.extractFilesFromComputeResponse = _chunkXA4OMT6Zcjs.q; exports.fetchDefinitionIO = _chunkXOEJMVK4cjs.h; exports.fetchParsedDefinitionIO = _chunkXOEJMVK4cjs.i; exports.fetchRhinoCompute = _chunkXA4OMT6Zcjs.h; exports.getLogger = _chunkXA4OMT6Zcjs.e; exports.hashSolveInput = _chunkXOEJMVK4cjs.b; exports.processInput = _chunkXOEJMVK4cjs.f; exports.processInputs = _chunkXOEJMVK4cjs.g; exports.setLogger = _chunkXA4OMT6Zcjs.f; exports.solveGrasshopperDefinition = _chunkXOEJMVK4cjs.a; exports.toCamelCase = _chunkXA4OMT6Zcjs.k;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkFHX52FTYcjs = require('./chunk-FHX52FTY.cjs');var _chunk6LCAIDQVcjs = require('./chunk-6LCAIDQV.cjs');exports.ComputeServerStats = _chunk6LCAIDQVcjs.j; exports.ErrorCodes = _chunk6LCAIDQVcjs.c; exports.GrasshopperClient = _chunkFHX52FTYcjs.c; exports.GrasshopperResponseProcessor = _chunkFHX52FTYcjs.d; exports.RhinoComputeError = _chunk6LCAIDQVcjs.d; exports.SolveScheduler = _chunkFHX52FTYcjs.b; exports.TreeBuilder = _chunkFHX52FTYcjs.i; exports.camelcaseKeys = _chunk6LCAIDQVcjs.l; exports.downloadFileData = _chunk6LCAIDQVcjs.r; exports.enableDebugLogging = _chunk6LCAIDQVcjs.g; exports.extractFilesFromComputeResponse = _chunk6LCAIDQVcjs.q; exports.fetchDefinitionIO = _chunkFHX52FTYcjs.g; exports.fetchParsedDefinitionIO = _chunkFHX52FTYcjs.h; exports.fetchRhinoCompute = _chunk6LCAIDQVcjs.h; exports.getLogger = _chunk6LCAIDQVcjs.e; exports.processInput = _chunkFHX52FTYcjs.e; exports.processInputs = _chunkFHX52FTYcjs.f; exports.setLogger = _chunk6LCAIDQVcjs.f; exports.solveGrasshopperDefinition = _chunkFHX52FTYcjs.a; exports.toCamelCase = _chunk6LCAIDQVcjs.k;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/selva-compute/selva-compute/dist/index.cjs"],"names":[],"mappings":"AAAA,iIAAuG,wDAAqG,u/BAA8d","file":"/home/runner/work/selva-compute/selva-compute/dist/index.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/selva-compute/selva-compute/dist/index.cjs"],"names":[],"mappings":"AAAA,iIAAgG,wDAAqG,y8BAA0c","file":"/home/runner/work/selva-compute/selva-compute/dist/index.cjs"}
package/dist/index.d.cts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { Logger, camelcaseKeys, enableDebugLogging, fetchRhinoCompute, getLogger, setLogger, toCamelCase } from './core.cjs';
2
- export { C as ComputeServerStats, E as ErrorCode, a as ErrorCodes, F as FileBaseInfo, b as FileData, P as ProcessedFile, R as RhinoComputeError, d as downloadFileData, e as extractFilesFromComputeResponse } from './handle-files-UcwvknQ3.cjs';
2
+ export { C as ComputeServerStats, E as ErrorCode, a as ErrorCodes, F as FileBaseInfo, b as FileData, P as ProcessedFile, R as RhinoComputeError, d as downloadFileData, e as extractFilesFromComputeResponse } from './handle-files-Bu2qmaPj.cjs';
3
3
  export { C as ComputeConfig, R as RetryPolicy, a as RhinoModelUnit, S as ServerTiming } from './types-ChF690kY.cjs';
4
- export { CacheOptions, DataTreeValue, GetValuesOptions, GetValuesResult, GrasshopperClient, GrasshopperResponseProcessor, ParsedContext, SchedulerMode, SolveContext, SolveExecutor, SolveOptions, SolveResult, SolveScheduler, SolveSchedulerOptions, TreeBuilder, fetchDefinitionIO, fetchParsedDefinitionIO, hashSolveInput, processInput, processInputs, solveGrasshopperDefinition } from './grasshopper.cjs';
4
+ export { CacheOptions, DataTreeValue, GetValuesOptions, GetValuesResult, GrasshopperClient, GrasshopperResponseProcessor, ParsedContext, SchedulerMode, SolveContext, SolveOptions, SolveResult, SolveScheduler, SolveSchedulerOptions, TreeBuilder, fetchDefinitionIO, fetchParsedDefinitionIO, processInput, processInputs, solveGrasshopperDefinition } from './grasshopper.cjs';
5
5
  export { B as BooleanInputType, D as DataItem, a as DataTree, b as DataTreeDefault, c as DataTreePath, d as DefaultValue, F as FileInputType, G as GeometryInputType, e as GrasshopperComputeConfig, f as GrasshopperComputeResponse, g as GrasshopperParsedIO, h as GrasshopperParsedIORaw, i as GrasshopperRequestSchema, I as InnerTreeData, j as InputParam, k as InputParamSchema, N as NumericInputType, O as OutputParamSchema, l as OutputType, T as TextInputType, V as ValueListInputType } from './types-D-HQ-gWI.cjs';
6
6
  import 'three';
7
7
  import 'rhino3dm';
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { Logger, camelcaseKeys, enableDebugLogging, fetchRhinoCompute, getLogger, setLogger, toCamelCase } from './core.js';
2
- export { C as ComputeServerStats, E as ErrorCode, a as ErrorCodes, F as FileBaseInfo, b as FileData, P as ProcessedFile, R as RhinoComputeError, d as downloadFileData, e as extractFilesFromComputeResponse } from './handle-files-UcwvknQ3.js';
2
+ export { C as ComputeServerStats, E as ErrorCode, a as ErrorCodes, F as FileBaseInfo, b as FileData, P as ProcessedFile, R as RhinoComputeError, d as downloadFileData, e as extractFilesFromComputeResponse } from './handle-files-Bu2qmaPj.js';
3
3
  export { C as ComputeConfig, R as RetryPolicy, a as RhinoModelUnit, S as ServerTiming } from './types-ChF690kY.js';
4
- export { CacheOptions, DataTreeValue, GetValuesOptions, GetValuesResult, GrasshopperClient, GrasshopperResponseProcessor, ParsedContext, SchedulerMode, SolveContext, SolveExecutor, SolveOptions, SolveResult, SolveScheduler, SolveSchedulerOptions, TreeBuilder, fetchDefinitionIO, fetchParsedDefinitionIO, hashSolveInput, processInput, processInputs, solveGrasshopperDefinition } from './grasshopper.js';
4
+ export { CacheOptions, DataTreeValue, GetValuesOptions, GetValuesResult, GrasshopperClient, GrasshopperResponseProcessor, ParsedContext, SchedulerMode, SolveContext, SolveOptions, SolveResult, SolveScheduler, SolveSchedulerOptions, TreeBuilder, fetchDefinitionIO, fetchParsedDefinitionIO, processInput, processInputs, solveGrasshopperDefinition } from './grasshopper.js';
5
5
  export { B as BooleanInputType, D as DataItem, a as DataTree, b as DataTreeDefault, c as DataTreePath, d as DefaultValue, F as FileInputType, G as GeometryInputType, e as GrasshopperComputeConfig, f as GrasshopperComputeResponse, g as GrasshopperParsedIO, h as GrasshopperParsedIORaw, i as GrasshopperRequestSchema, I as InnerTreeData, j as InputParam, k as InputParamSchema, N as NumericInputType, O as OutputParamSchema, l as OutputType, T as TextInputType, V as ValueListInputType } from './types-DxT3hSkx.js';
6
6
  import 'three';
7
7
  import 'rhino3dm';
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{a as d,b as g,c as h,d as i,e as j,f as k,g as l,h as n,i as q,j as s}from"./chunk-Y7V63BG7.js";import{c as o,d as r,e,f,g as m,h as p,j as t,k as x,l as a,q as b,r as c}from"./chunk-GY2WLD42.js";export{t as ComputeServerStats,o as ErrorCodes,i as GrasshopperClient,j as GrasshopperResponseProcessor,r as RhinoComputeError,h as SolveScheduler,s as TreeBuilder,a as camelcaseKeys,c as downloadFileData,m as enableDebugLogging,b as extractFilesFromComputeResponse,n as fetchDefinitionIO,q as fetchParsedDefinitionIO,p as fetchRhinoCompute,e as getLogger,g as hashSolveInput,k as processInput,l as processInputs,f as setLogger,d as solveGrasshopperDefinition,x as toCamelCase};
1
+ import{a as d,b as g,c as h,d as i,e as j,f as k,g as l,h as n,i as q}from"./chunk-X7RGK5IZ.js";import{c as o,d as r,e,f,g as m,h as p,j as t,k as x,l as a,q as b,r as c}from"./chunk-O55PTKMV.js";export{t as ComputeServerStats,o as ErrorCodes,h as GrasshopperClient,i as GrasshopperResponseProcessor,r as RhinoComputeError,g as SolveScheduler,q as TreeBuilder,a as camelcaseKeys,c as downloadFileData,m as enableDebugLogging,b as extractFilesFromComputeResponse,l as fetchDefinitionIO,n as fetchParsedDefinitionIO,p as fetchRhinoCompute,e as getLogger,j as processInput,k as processInputs,f as setLogger,d as solveGrasshopperDefinition,x as toCamelCase};
2
2
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,2 @@
1
+ import{A as u,a as e,b as r,c as o,d as t,e as a,f as s,g as i,h as p,i as n,j as m,k as l,l as f,m as y,n as d,o as h,p as x,q as C,r as g,s as M,t as c,u as B,v as j,w as E,x as O,y as D,z as b}from"./chunk-V5KVO4JJ.js";import"./chunk-O55PTKMV.js";export{M as BINARY_MESH_MAGIC,c as BINARY_MESH_VERSION,p as EDGE_USERDATA_KIND,B as FLAG_FLOAT32,C as Materials,b as SCALE_FACTORS,n as addEdges,o as applyOffset,t as computeCombinedBoundingBox,a as createCameraController,s as createGrid,y as createLabelLayer,h as createMeasureTool,f as createRenderPipeline,i as createViewGizmo,u as getThreeMeshesFromComputeResponse,x as initThree,m as isEdgeOverlay,j as parseBinaryMeshBatch,r as parseColor,g as parseDisplayItems,E as parseMeshBatch,D as parseMeshBatchBlob,O as parseMeshBatchObject,l as removeEdges,d as snapToVertex,e as updateScene};
2
+ //# sourceMappingURL=visualization-3VKXKTBW.js.map
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkKS4A7AEUcjs = require('./chunk-KS4A7AEU.cjs');require('./chunk-6LCAIDQV.cjs');exports.BINARY_MESH_MAGIC = _chunkKS4A7AEUcjs.s; exports.BINARY_MESH_VERSION = _chunkKS4A7AEUcjs.t; exports.EDGE_USERDATA_KIND = _chunkKS4A7AEUcjs.h; exports.FLAG_FLOAT32 = _chunkKS4A7AEUcjs.u; exports.Materials = _chunkKS4A7AEUcjs.q; exports.SCALE_FACTORS = _chunkKS4A7AEUcjs.z; exports.addEdges = _chunkKS4A7AEUcjs.i; exports.applyOffset = _chunkKS4A7AEUcjs.c; exports.computeCombinedBoundingBox = _chunkKS4A7AEUcjs.d; exports.createCameraController = _chunkKS4A7AEUcjs.e; exports.createGrid = _chunkKS4A7AEUcjs.f; exports.createLabelLayer = _chunkKS4A7AEUcjs.m; exports.createMeasureTool = _chunkKS4A7AEUcjs.o; exports.createRenderPipeline = _chunkKS4A7AEUcjs.l; exports.createViewGizmo = _chunkKS4A7AEUcjs.g; exports.getThreeMeshesFromComputeResponse = _chunkKS4A7AEUcjs.A; exports.initThree = _chunkKS4A7AEUcjs.p; exports.isEdgeOverlay = _chunkKS4A7AEUcjs.j; exports.parseBinaryMeshBatch = _chunkKS4A7AEUcjs.v; exports.parseColor = _chunkKS4A7AEUcjs.b; exports.parseDisplayItems = _chunkKS4A7AEUcjs.r; exports.parseMeshBatch = _chunkKS4A7AEUcjs.w; exports.parseMeshBatchBlob = _chunkKS4A7AEUcjs.y; exports.parseMeshBatchObject = _chunkKS4A7AEUcjs.x; exports.removeEdges = _chunkKS4A7AEUcjs.k; exports.snapToVertex = _chunkKS4A7AEUcjs.n; exports.updateScene = _chunkKS4A7AEUcjs.a;
2
+ //# sourceMappingURL=visualization-H4P23BWC.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/selva-compute/selva-compute/dist/visualization-ZFXCE5NW.cjs"],"names":[],"mappings":"AAAA,iIAA8N,gCAA6B,owCAA+kB","file":"/home/runner/work/selva-compute/selva-compute/dist/visualization-ZFXCE5NW.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/selva-compute/selva-compute/dist/visualization-H4P23BWC.cjs"],"names":[],"mappings":"AAAA,iIAA8N,gCAA6B,owCAA+kB","file":"/home/runner/work/selva-compute/selva-compute/dist/visualization-H4P23BWC.cjs"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkXXA7NEQFcjs = require('./chunk-XXA7NEQF.cjs');require('./chunk-XA4OMT6Z.cjs');exports.EDGE_USERDATA_KIND = _chunkXXA7NEQFcjs.h; exports.Materials = _chunkXXA7NEQFcjs.q; exports.SCALE_FACTORS = _chunkXXA7NEQFcjs.z; exports.addEdges = _chunkXXA7NEQFcjs.i; exports.applyOffset = _chunkXXA7NEQFcjs.c; exports.computeCombinedBoundingBox = _chunkXXA7NEQFcjs.d; exports.createCameraController = _chunkXXA7NEQFcjs.e; exports.createGrid = _chunkXXA7NEQFcjs.f; exports.createLabelLayer = _chunkXXA7NEQFcjs.m; exports.createMeasureTool = _chunkXXA7NEQFcjs.o; exports.createRenderPipeline = _chunkXXA7NEQFcjs.l; exports.createViewGizmo = _chunkXXA7NEQFcjs.g; exports.getThreeMeshesFromComputeResponse = _chunkXXA7NEQFcjs.A; exports.initThree = _chunkXXA7NEQFcjs.p; exports.isEdgeOverlay = _chunkXXA7NEQFcjs.j; exports.parseColor = _chunkXXA7NEQFcjs.b; exports.parseDisplayItems = _chunkXXA7NEQFcjs.r; exports.parseMeshBatchBlob = _chunkXXA7NEQFcjs.y; exports.parseMeshBatchObject = _chunkXXA7NEQFcjs.x; exports.removeEdges = _chunkXXA7NEQFcjs.k; exports.snapToVertex = _chunkXXA7NEQFcjs.n; exports.updateScene = _chunkXXA7NEQFcjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkKS4A7AEUcjs = require('./chunk-KS4A7AEU.cjs');require('./chunk-6LCAIDQV.cjs');exports.EDGE_USERDATA_KIND = _chunkKS4A7AEUcjs.h; exports.Materials = _chunkKS4A7AEUcjs.q; exports.SCALE_FACTORS = _chunkKS4A7AEUcjs.z; exports.addEdges = _chunkKS4A7AEUcjs.i; exports.applyOffset = _chunkKS4A7AEUcjs.c; exports.computeCombinedBoundingBox = _chunkKS4A7AEUcjs.d; exports.createCameraController = _chunkKS4A7AEUcjs.e; exports.createGrid = _chunkKS4A7AEUcjs.f; exports.createLabelLayer = _chunkKS4A7AEUcjs.m; exports.createMeasureTool = _chunkKS4A7AEUcjs.o; exports.createRenderPipeline = _chunkKS4A7AEUcjs.l; exports.createViewGizmo = _chunkKS4A7AEUcjs.g; exports.getThreeMeshesFromComputeResponse = _chunkKS4A7AEUcjs.A; exports.initThree = _chunkKS4A7AEUcjs.p; exports.isEdgeOverlay = _chunkKS4A7AEUcjs.j; exports.parseColor = _chunkKS4A7AEUcjs.b; exports.parseDisplayItems = _chunkKS4A7AEUcjs.r; exports.parseMeshBatchBlob = _chunkKS4A7AEUcjs.y; exports.parseMeshBatchObject = _chunkKS4A7AEUcjs.x; exports.removeEdges = _chunkKS4A7AEUcjs.k; exports.snapToVertex = _chunkKS4A7AEUcjs.n; exports.updateScene = _chunkKS4A7AEUcjs.a;
2
2
  //# sourceMappingURL=visualization.cjs.map