@selvajs/compute 2.0.0-beta.0 → 2.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 (39) hide show
  1. package/dist/chunk-3FH7FKLG.cjs +2 -0
  2. package/dist/{chunk-I6BYCRNM.cjs.map → chunk-3FH7FKLG.cjs.map} +1 -1
  3. package/dist/chunk-DELOBV2Q.js +2 -0
  4. package/dist/chunk-DELOBV2Q.js.map +1 -0
  5. package/dist/{chunk-LKSMZAOW.js → chunk-GTTKNF4G.js} +3 -3
  6. package/dist/chunk-GTTKNF4G.js.map +1 -0
  7. package/dist/{chunk-PTMR332C.cjs → chunk-JFLD2UCY.cjs} +2 -2
  8. package/dist/{chunk-PTMR332C.cjs.map → chunk-JFLD2UCY.cjs.map} +1 -1
  9. package/dist/{chunk-MQKJ46HT.cjs → chunk-MA6YB3YZ.cjs} +3 -3
  10. package/dist/chunk-MA6YB3YZ.cjs.map +1 -0
  11. package/dist/{chunk-KWNSHZE3.js → chunk-MKW2KTPT.js} +2 -2
  12. package/dist/core.cjs +1 -1
  13. package/dist/core.d.cts +1 -1
  14. package/dist/core.d.ts +1 -1
  15. package/dist/core.js +1 -1
  16. package/dist/grasshopper.cjs +1 -1
  17. package/dist/grasshopper.d.cts +2 -2
  18. package/dist/grasshopper.d.ts +2 -2
  19. package/dist/grasshopper.js +1 -1
  20. package/dist/{handle-files-BU9vu1Fd.d.cts → handle-files-DsrxHKHP.d.cts} +2 -0
  21. package/dist/{handle-files-BU9vu1Fd.d.ts → handle-files-DsrxHKHP.d.ts} +2 -0
  22. package/dist/index.cjs +1 -1
  23. package/dist/index.d.cts +1 -1
  24. package/dist/index.d.ts +1 -1
  25. package/dist/index.js +1 -1
  26. package/dist/visualization-GU7JIB4V.cjs +2 -0
  27. package/dist/{visualization-PRUUKBYP.cjs.map → visualization-GU7JIB4V.cjs.map} +1 -1
  28. package/dist/{visualization-AQNCY6MG.js → visualization-WIUVT2FZ.js} +2 -2
  29. package/dist/visualization.cjs +1 -1
  30. package/dist/visualization.js +1 -1
  31. package/package.json +1 -1
  32. package/dist/chunk-3N5WXYQZ.js +0 -2
  33. package/dist/chunk-3N5WXYQZ.js.map +0 -1
  34. package/dist/chunk-I6BYCRNM.cjs +0 -2
  35. package/dist/chunk-LKSMZAOW.js.map +0 -1
  36. package/dist/chunk-MQKJ46HT.cjs.map +0 -1
  37. package/dist/visualization-PRUUKBYP.cjs +0 -2
  38. /package/dist/{chunk-KWNSHZE3.js.map → chunk-MKW2KTPT.js.map} +0 -0
  39. /package/dist/{visualization-AQNCY6MG.js.map → visualization-WIUVT2FZ.js.map} +0 -0
package/dist/core.d.cts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { C as ComputeConfig } from './types-D1SkNje_.cjs';
2
2
  export { R as RetryPolicy, a as RhinoModelUnit, S as ServerTiming } from './types-D1SkNje_.cjs';
3
- 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-BU9vu1Fd.cjs';
3
+ 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-DsrxHKHP.cjs';
4
4
 
5
5
  /**
6
6
  * Generic Rhino Compute fetch function.
package/dist/core.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { C as ComputeConfig } from './types-D1SkNje_.js';
2
2
  export { R as RetryPolicy, a as RhinoModelUnit, S as ServerTiming } from './types-D1SkNje_.js';
3
- 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-BU9vu1Fd.js';
3
+ 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-DsrxHKHP.js';
4
4
 
5
5
  /**
6
6
  * Generic Rhino Compute fetch function.
package/dist/core.js CHANGED
@@ -1,2 +1,2 @@
1
- import{c as a,d as b,e as c,f as d,g as e,h as f,j as g,k as h,l as i,q as j,r as k}from"./chunk-LKSMZAOW.js";export{g as ComputeServerStats,a as ErrorCodes,b as RhinoComputeError,i as camelcaseKeys,k as downloadFileData,e as enableDebugLogging,j as extractFilesFromComputeResponse,f as fetchRhinoCompute,c as getLogger,d as setLogger,h as toCamelCase};
1
+ import{c as a,d as b,e as c,f as d,g as e,h as f,j as g,k as h,l as i,q as j,r as k}from"./chunk-GTTKNF4G.js";export{g as ComputeServerStats,a as ErrorCodes,b as RhinoComputeError,i as camelcaseKeys,k as downloadFileData,e as enableDebugLogging,j as extractFilesFromComputeResponse,f as fetchRhinoCompute,c as getLogger,d as setLogger,h as toCamelCase};
2
2
  //# sourceMappingURL=core.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkI6BYCRNMcjs = require('./chunk-I6BYCRNM.cjs');var _chunkMQKJ46HTcjs = require('./chunk-MQKJ46HT.cjs');exports.GrasshopperClient = _chunkI6BYCRNMcjs.d; exports.GrasshopperResponseProcessor = _chunkI6BYCRNMcjs.e; exports.RhinoComputeError = _chunkMQKJ46HTcjs.d; exports.SolveScheduler = _chunkI6BYCRNMcjs.c; exports.TreeBuilder = _chunkI6BYCRNMcjs.j; exports.downloadFileData = _chunkMQKJ46HTcjs.r; exports.extractFilesFromComputeResponse = _chunkMQKJ46HTcjs.q; exports.fetchDefinitionIO = _chunkI6BYCRNMcjs.h; exports.fetchParsedDefinitionIO = _chunkI6BYCRNMcjs.i; exports.hashSolveInput = _chunkI6BYCRNMcjs.b; exports.processInput = _chunkI6BYCRNMcjs.f; exports.processInputs = _chunkI6BYCRNMcjs.g; exports.solveGrasshopperDefinition = _chunkI6BYCRNMcjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk3FH7FKLGcjs = require('./chunk-3FH7FKLG.cjs');var _chunkMA6YB3YZcjs = require('./chunk-MA6YB3YZ.cjs');exports.GrasshopperClient = _chunk3FH7FKLGcjs.d; exports.GrasshopperResponseProcessor = _chunk3FH7FKLGcjs.e; exports.RhinoComputeError = _chunkMA6YB3YZcjs.d; exports.SolveScheduler = _chunk3FH7FKLGcjs.c; exports.TreeBuilder = _chunk3FH7FKLGcjs.j; exports.downloadFileData = _chunkMA6YB3YZcjs.r; exports.extractFilesFromComputeResponse = _chunkMA6YB3YZcjs.q; exports.fetchDefinitionIO = _chunk3FH7FKLGcjs.h; exports.fetchParsedDefinitionIO = _chunk3FH7FKLGcjs.i; exports.hashSolveInput = _chunk3FH7FKLGcjs.b; exports.processInput = _chunk3FH7FKLGcjs.f; exports.processInputs = _chunk3FH7FKLGcjs.g; exports.solveGrasshopperDefinition = _chunk3FH7FKLGcjs.a;
2
2
  //# sourceMappingURL=grasshopper.cjs.map
@@ -1,5 +1,5 @@
1
- import { R as RhinoComputeError, C as ComputeServerStats, F as FileBaseInfo } from './handle-files-BU9vu1Fd.cjs';
2
- export { b as FileData, P as ProcessedFile, d as downloadFileData, e as extractFilesFromComputeResponse } from './handle-files-BU9vu1Fd.cjs';
1
+ import { R as RhinoComputeError, C as ComputeServerStats, F as FileBaseInfo } from './handle-files-DsrxHKHP.cjs';
2
+ export { b as FileData, P as ProcessedFile, d as downloadFileData, e as extractFilesFromComputeResponse } from './handle-files-DsrxHKHP.cjs';
3
3
  import { R as RetryPolicy, C as ComputeConfig } from './types-D1SkNje_.cjs';
4
4
  export { a as RhinoModelUnit } from './types-D1SkNje_.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-CJ092lxB.cjs';
@@ -1,5 +1,5 @@
1
- import { R as RhinoComputeError, C as ComputeServerStats, F as FileBaseInfo } from './handle-files-BU9vu1Fd.js';
2
- export { b as FileData, P as ProcessedFile, d as downloadFileData, e as extractFilesFromComputeResponse } from './handle-files-BU9vu1Fd.js';
1
+ import { R as RhinoComputeError, C as ComputeServerStats, F as FileBaseInfo } from './handle-files-DsrxHKHP.js';
2
+ export { b as FileData, P as ProcessedFile, d as downloadFileData, e as extractFilesFromComputeResponse } from './handle-files-DsrxHKHP.js';
3
3
  import { R as RetryPolicy, C as ComputeConfig } from './types-D1SkNje_.js';
4
4
  export { a as RhinoModelUnit } from './types-D1SkNje_.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-XCUrJGby.js';
@@ -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-3N5WXYQZ.js";import{d as a,q as b,r as c}from"./chunk-LKSMZAOW.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,j as m}from"./chunk-DELOBV2Q.js";import{d as a,q as b,r as c}from"./chunk-GTTKNF4G.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};
2
2
  //# sourceMappingURL=grasshopper.js.map
@@ -137,6 +137,8 @@ declare const ErrorCodes: {
137
137
  readonly BROWSER_ONLY: "BROWSER_ONLY";
138
138
  readonly ENVIRONMENT_ERROR: "ENVIRONMENT_ERROR";
139
139
  readonly ENCODING_ERROR: "ENCODING_ERROR";
140
+ /** An input's `default` had a shape the normalizer didn't recognize (no innerTree key). */
141
+ readonly MALFORMED_DEFAULT: "MALFORMED_DEFAULT";
140
142
  /** Scheduler latest-wins: this call was replaced by a newer one. */
141
143
  readonly SUPERSEDED: "SUPERSEDED";
142
144
  /** Scheduler / caller-supplied AbortSignal: this call was aborted. */
@@ -137,6 +137,8 @@ declare const ErrorCodes: {
137
137
  readonly BROWSER_ONLY: "BROWSER_ONLY";
138
138
  readonly ENVIRONMENT_ERROR: "ENVIRONMENT_ERROR";
139
139
  readonly ENCODING_ERROR: "ENCODING_ERROR";
140
+ /** An input's `default` had a shape the normalizer didn't recognize (no innerTree key). */
141
+ readonly MALFORMED_DEFAULT: "MALFORMED_DEFAULT";
140
142
  /** Scheduler latest-wins: this call was replaced by a newer one. */
141
143
  readonly SUPERSEDED: "SUPERSEDED";
142
144
  /** Scheduler / caller-supplied AbortSignal: this call was aborted. */
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkI6BYCRNMcjs = require('./chunk-I6BYCRNM.cjs');var _chunkMQKJ46HTcjs = require('./chunk-MQKJ46HT.cjs');exports.ComputeServerStats = _chunkMQKJ46HTcjs.j; exports.ErrorCodes = _chunkMQKJ46HTcjs.c; exports.GrasshopperClient = _chunkI6BYCRNMcjs.d; exports.GrasshopperResponseProcessor = _chunkI6BYCRNMcjs.e; exports.RhinoComputeError = _chunkMQKJ46HTcjs.d; exports.SolveScheduler = _chunkI6BYCRNMcjs.c; exports.TreeBuilder = _chunkI6BYCRNMcjs.j; exports.camelcaseKeys = _chunkMQKJ46HTcjs.l; exports.downloadFileData = _chunkMQKJ46HTcjs.r; exports.enableDebugLogging = _chunkMQKJ46HTcjs.g; exports.extractFilesFromComputeResponse = _chunkMQKJ46HTcjs.q; exports.fetchDefinitionIO = _chunkI6BYCRNMcjs.h; exports.fetchParsedDefinitionIO = _chunkI6BYCRNMcjs.i; exports.fetchRhinoCompute = _chunkMQKJ46HTcjs.h; exports.getLogger = _chunkMQKJ46HTcjs.e; exports.hashSolveInput = _chunkI6BYCRNMcjs.b; exports.processInput = _chunkI6BYCRNMcjs.f; exports.processInputs = _chunkI6BYCRNMcjs.g; exports.setLogger = _chunkMQKJ46HTcjs.f; exports.solveGrasshopperDefinition = _chunkI6BYCRNMcjs.a; exports.toCamelCase = _chunkMQKJ46HTcjs.k;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk3FH7FKLGcjs = require('./chunk-3FH7FKLG.cjs');var _chunkMA6YB3YZcjs = require('./chunk-MA6YB3YZ.cjs');exports.ComputeServerStats = _chunkMA6YB3YZcjs.j; exports.ErrorCodes = _chunkMA6YB3YZcjs.c; exports.GrasshopperClient = _chunk3FH7FKLGcjs.d; exports.GrasshopperResponseProcessor = _chunk3FH7FKLGcjs.e; exports.RhinoComputeError = _chunkMA6YB3YZcjs.d; exports.SolveScheduler = _chunk3FH7FKLGcjs.c; exports.TreeBuilder = _chunk3FH7FKLGcjs.j; exports.camelcaseKeys = _chunkMA6YB3YZcjs.l; exports.downloadFileData = _chunkMA6YB3YZcjs.r; exports.enableDebugLogging = _chunkMA6YB3YZcjs.g; exports.extractFilesFromComputeResponse = _chunkMA6YB3YZcjs.q; exports.fetchDefinitionIO = _chunk3FH7FKLGcjs.h; exports.fetchParsedDefinitionIO = _chunk3FH7FKLGcjs.i; exports.fetchRhinoCompute = _chunkMA6YB3YZcjs.h; exports.getLogger = _chunkMA6YB3YZcjs.e; exports.hashSolveInput = _chunk3FH7FKLGcjs.b; exports.processInput = _chunk3FH7FKLGcjs.f; exports.processInputs = _chunk3FH7FKLGcjs.g; exports.setLogger = _chunkMA6YB3YZcjs.f; exports.solveGrasshopperDefinition = _chunk3FH7FKLGcjs.a; exports.toCamelCase = _chunkMA6YB3YZcjs.k;
2
2
  //# sourceMappingURL=index.cjs.map
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
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-BU9vu1Fd.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-DsrxHKHP.cjs';
3
3
  export { C as ComputeConfig, R as RetryPolicy, a as RhinoModelUnit, S as ServerTiming } from './types-D1SkNje_.cjs';
4
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';
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-CJ092lxB.cjs';
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
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-BU9vu1Fd.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-DsrxHKHP.js';
3
3
  export { C as ComputeConfig, R as RetryPolicy, a as RhinoModelUnit, S as ServerTiming } from './types-D1SkNje_.js';
4
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';
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-XCUrJGby.js';
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-3N5WXYQZ.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-LKSMZAOW.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,j as s}from"./chunk-DELOBV2Q.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-GTTKNF4G.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};
2
2
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkJFLD2UCYcjs = require('./chunk-JFLD2UCY.cjs');require('./chunk-MA6YB3YZ.cjs');exports.BINARY_MESH_MAGIC = _chunkJFLD2UCYcjs.g; exports.BINARY_MESH_VERSION = _chunkJFLD2UCYcjs.h; exports.FLAG_FLOAT32 = _chunkJFLD2UCYcjs.i; exports.Materials = _chunkJFLD2UCYcjs.f; exports.SCALE_FACTORS = _chunkJFLD2UCYcjs.n; exports.applyOffset = _chunkJFLD2UCYcjs.d; exports.computeCombinedBoundingBox = _chunkJFLD2UCYcjs.e; exports.getThreeMeshesFromComputeResponse = _chunkJFLD2UCYcjs.o; exports.initThree = _chunkJFLD2UCYcjs.a; exports.parseBinaryMeshBatch = _chunkJFLD2UCYcjs.j; exports.parseColor = _chunkJFLD2UCYcjs.c; exports.parseMeshBatch = _chunkJFLD2UCYcjs.k; exports.parseMeshBatchBlob = _chunkJFLD2UCYcjs.m; exports.parseMeshBatchObject = _chunkJFLD2UCYcjs.l; exports.updateScene = _chunkJFLD2UCYcjs.b;
2
+ //# sourceMappingURL=visualization-GU7JIB4V.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/selva-compute/selva-compute/dist/visualization-PRUUKBYP.cjs"],"names":[],"mappings":"AAAA,iIAAqI,gCAA6B,itBAAoV","file":"/home/runner/work/selva-compute/selva-compute/dist/visualization-PRUUKBYP.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/selva-compute/selva-compute/dist/visualization-GU7JIB4V.cjs"],"names":[],"mappings":"AAAA,iIAAqI,gCAA6B,itBAAoV","file":"/home/runner/work/selva-compute/selva-compute/dist/visualization-GU7JIB4V.cjs"}
@@ -1,2 +1,2 @@
1
- import{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 h,k as M,l as f,m,n as B,o as C}from"./chunk-KWNSHZE3.js";import"./chunk-LKSMZAOW.js";export{i as BINARY_MESH_MAGIC,p as BINARY_MESH_VERSION,n as FLAG_FLOAT32,s as Materials,B as SCALE_FACTORS,t as applyOffset,a as computeCombinedBoundingBox,C as getThreeMeshesFromComputeResponse,e as initThree,h as parseBinaryMeshBatch,o as parseColor,M as parseMeshBatch,m as parseMeshBatchBlob,f as parseMeshBatchObject,r as updateScene};
2
- //# sourceMappingURL=visualization-AQNCY6MG.js.map
1
+ import{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 h,k as M,l as f,m,n as B,o as C}from"./chunk-MKW2KTPT.js";import"./chunk-GTTKNF4G.js";export{i as BINARY_MESH_MAGIC,p as BINARY_MESH_VERSION,n as FLAG_FLOAT32,s as Materials,B as SCALE_FACTORS,t as applyOffset,a as computeCombinedBoundingBox,C as getThreeMeshesFromComputeResponse,e as initThree,h as parseBinaryMeshBatch,o as parseColor,M as parseMeshBatch,m as parseMeshBatchBlob,f as parseMeshBatchObject,r as updateScene};
2
+ //# sourceMappingURL=visualization-WIUVT2FZ.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkPTMR332Ccjs = require('./chunk-PTMR332C.cjs');require('./chunk-MQKJ46HT.cjs');exports.Materials = _chunkPTMR332Ccjs.f; exports.SCALE_FACTORS = _chunkPTMR332Ccjs.n; exports.getThreeMeshesFromComputeResponse = _chunkPTMR332Ccjs.o; exports.initThree = _chunkPTMR332Ccjs.a; exports.parseMeshBatchBlob = _chunkPTMR332Ccjs.m; exports.parseMeshBatchObject = _chunkPTMR332Ccjs.l; exports.updateScene = _chunkPTMR332Ccjs.b;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkJFLD2UCYcjs = require('./chunk-JFLD2UCY.cjs');require('./chunk-MA6YB3YZ.cjs');exports.Materials = _chunkJFLD2UCYcjs.f; exports.SCALE_FACTORS = _chunkJFLD2UCYcjs.n; exports.getThreeMeshesFromComputeResponse = _chunkJFLD2UCYcjs.o; exports.initThree = _chunkJFLD2UCYcjs.a; exports.parseMeshBatchBlob = _chunkJFLD2UCYcjs.m; exports.parseMeshBatchObject = _chunkJFLD2UCYcjs.l; exports.updateScene = _chunkJFLD2UCYcjs.b;
2
2
  //# sourceMappingURL=visualization.cjs.map
@@ -1,2 +1,2 @@
1
- import{a as e,b as o,f as t,l as r,m as i,n,o as s}from"./chunk-KWNSHZE3.js";import"./chunk-LKSMZAOW.js";export{t as Materials,n as SCALE_FACTORS,s as getThreeMeshesFromComputeResponse,e as initThree,i as parseMeshBatchBlob,r as parseMeshBatchObject,o as updateScene};
1
+ import{a as e,b as o,f as t,l as r,m as i,n,o as s}from"./chunk-MKW2KTPT.js";import"./chunk-GTTKNF4G.js";export{t as Materials,n as SCALE_FACTORS,s as getThreeMeshesFromComputeResponse,e as initThree,i as parseMeshBatchBlob,r as parseMeshBatchObject,o as updateScene};
2
2
  //# sourceMappingURL=visualization.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@selvajs/compute",
3
- "version": "2.0.0-beta.0",
3
+ "version": "2.0.0-beta.1",
4
4
  "description": "TypeScript library for Rhino Compute Server - Grasshopper and RhinoCommon",
5
5
  "author": "VektorNode",
6
6
  "license": "MIT",
@@ -1,2 +0,0 @@
1
- import{b as p,c as d,d as l,e as m,h as w,i as z,j as $,m as _,n as q,p as J,r as A}from"./chunk-LKSMZAOW.js";function b(t,e){e||typeof window<"u"&&m().warn(`Warning: ${t} is running on the client side. For better performance and security, consider running this on the server side.`)}var ye="Unable to load grasshopper definition";function ge(t){return t instanceof l&&t.message.includes(ye)}async function x(t,e,r){r.debug&&b("solveGrasshopperDefinition",r.suppressBrowserWarning??r.suppressClientSideWarning);let{response:n}=await N(D(e,t),r);return n}async function H(t,e,r){return r.debug&&b("solveGrasshopperDefinitionWithCacheKey",r.suppressBrowserWarning??r.suppressClientSideWarning),N(D(e,t),r)}async function Y(t,e,r,n){n.debug&&b("solveByCacheKey",n.suppressBrowserWarning??n.suppressClientSideWarning);let s={algo:null,pointer:e,values:t};try{return{...await N(s,n),missed:!1}}catch(o){if(!ge(o))throw o;return{...await N(D(r,t),n),missed:!0}}}async function N(t,e){be(t,e);let r=await w("grasshopper",t,e);if("pointer"in r){let{pointer:n,...s}=r;return{response:s,cacheKey:typeof n=="string"?n:null}}return{response:r,cacheKey:null}}function D(t,e){let r={algo:null,pointer:null,values:e};return t instanceof Uint8Array?r.algo=J(t):/^https?:\/\//i.test(t)?r.pointer=t:q(t)?r.algo=t:r.algo=_(t),r}function be(t,e){e.cachesolve!=null&&(t.cachesolve=e.cachesolve),e.modelunits!=null&&(t.modelunits=e.modelunits),e.angletolerance!=null&&(t.angletolerance=e.angletolerance),e.absolutetolerance!=null&&(t.absolutetolerance=e.absolutetolerance),e.dataversion!=null&&(t.dataversion=e.dataversion)}function Q(t){let e=new WeakSet,r=n=>{if(n==null)return JSON.stringify(n);if(typeof n=="number")return Number.isFinite(n)?String(n):JSON.stringify(null);if(typeof n=="string"||typeof n=="boolean")return JSON.stringify(n);if(typeof n=="bigint")return JSON.stringify(n.toString());if(n instanceof Uint8Array){let s=n.length>64?Array.from(n.slice(0,32)).concat(Array.from(n.slice(-32))):Array.from(n);return JSON.stringify({__u8:!0,len:n.length,sample:s})}return Array.isArray(n)?`[${n.map(r).join(",")}]`:typeof n=="object"?e.has(n)?JSON.stringify("[Circular]"):(e.add(n),`{${Object.keys(n).sort().map(a=>`${JSON.stringify(a)}:${r(n[a])}`).join(",")}}`):JSON.stringify(null)};return r(t)}function X(t,e){let r=2166136261;for(let n=0;n<t;n++)r^=e(n),r=r+((r<<1)+(r<<4)+(r<<7)+(r<<8)+(r<<24))>>>0;return r.toString(16).padStart(8,"0")}function Z(t){return X(t.length,e=>t.charCodeAt(e))}function ee(t){return X(t.length,e=>t[e])}function O(t,e){return Z(`${G(t)}|${Q(e)}`)}function G(t){return typeof t=="string"?t:`u8:${t.length}:${ee(t)}`}function Te(t){return t instanceof Uint8Array?!0:!/^https?:\/\//i.test(t)}var T=class{constructor(e,r,n={},s){p(this,"executor");p(this,"baseConfig");p(this,"mode");p(this,"maxConcurrent");p(this,"timeoutMs");p(this,"retry");p(this,"cacheEnabled");p(this,"cacheMax");p(this,"cacheTtl");p(this,"cache",new Map);p(this,"cacheKeyExecutor");p(this,"reuseServerDefinitionCache");p(this,"serverCacheKeys",new Map);p(this,"onStart");p(this,"onSettle");p(this,"onSuperseded");p(this,"subscribers",new Set);p(this,"inFlight",new Set);p(this,"pendingForLatestWins",null);p(this,"fifoQueue",[]);p(this,"_lastResult",null);p(this,"_lastError",null);p(this,"_lastDurationMs",null);p(this,"disposed",!1);this.executor=e,this.cacheKeyExecutor=s,this.baseConfig=r,this.mode=n.mode??"latest-wins",this.maxConcurrent=Math.max(1,n.maxConcurrent??(this.mode==="parallel"?4:1)),this.timeoutMs=n.timeoutMs,this.retry=n.retry;let o=n.cache;this.cacheEnabled=o!==void 0&&o!==!1;let a=typeof o=="object"?o:{};this.cacheMax=a.maxEntries??50,this.cacheTtl=a.ttlMs??0,this.reuseServerDefinitionCache=!!s&&(n.reuseServerDefinitionCache??!0),this.onStart=n.onStart,this.onSettle=n.onSettle,this.onSuperseded=n.onSuperseded}get isSolving(){return this.inFlight.size>0}get hasPending(){return this.pendingForLatestWins!==null||this.fifoQueue.length>0}get inFlightCount(){return this.inFlight.size}get queueDepth(){return this.fifoQueue.length+(this.pendingForLatestWins?1:0)}get lastResult(){return this._lastResult}get lastError(){return this._lastError}get lastDurationMs(){return this._lastDurationMs}subscribe(e){return this.subscribers.add(e),()=>this.subscribers.delete(e)}notify(){for(let e of this.subscribers)try{e()}catch(r){m().error("[SolveScheduler] subscriber threw:",r)}}solve(e,r,n){if(this.disposed)return Promise.reject(new l("SolveScheduler has been disposed and cannot be used",d.INVALID_STATE));let s=O(e,r),o={key:s,enqueuedAt:Date.now(),startedAt:null};if(this.cacheEnabled){let a=this.readCache(s);if(a){let i={status:"success",response:a,durationMs:0,fromCache:!0};return this._lastResult=a,this._lastError=null,this._lastDurationMs=0,this.runHook(this.onStart,o),this.runHook(this.onSettle,o,i),this.notify(),Promise.resolve(a)}}return new Promise((a,i)=>{let u={definition:e,dataTree:r,ctx:o,resolve:a,reject:i,externalSignal:n?.signal};if(u.externalSignal?.aborted){this.settleError(u,this.makeAbortError(o));return}this.enqueue(u)})}enqueue(e){switch(this.mode){case"latest-wins":{this.pendingForLatestWins&&(this.supersede(this.pendingForLatestWins),this.pendingForLatestWins=null);for(let r of this.inFlight)this.supersede(r),r.controller.abort();this.inFlight.size===0?this.execute(e):this.pendingForLatestWins=e;break}case"queue":case"parallel":{this.inFlight.size<this.maxConcurrent?this.execute(e):this.fifoQueue.push(e);break}}this.notify()}async execute(e){let r=new AbortController,n={...e,controller:r};this.inFlight.add(n),e.ctx.startedAt=Date.now();let s=()=>r.abort();e.externalSignal?.addEventListener("abort",s,{once:!0}),this.runHook(this.onStart,e.ctx),this.notify();let o=performance.now();try{let a={...this.baseConfig,signal:r.signal,...this.timeoutMs!==void 0&&{timeoutMs:this.timeoutMs},...this.retry!==void 0&&{retry:this.retry}},i=await this.runExecutor(e.definition,e.dataTree,a),u=performance.now()-o;if(this.cacheEnabled&&this.writeCache(e.ctx.key,i),!this.settleSuccess(e,i))return;this._lastResult=i,this._lastError=null,this._lastDurationMs=u,this.runHook(this.onSettle,e.ctx,{status:"success",response:i,durationMs:u,fromCache:!1})}catch(a){let i=performance.now()-o,u=this.normalizeExecutionError(a,n);this._lastError=u,this._lastDurationMs=i,this.settleError(e,u)&&this.runHook(this.onSettle,e.ctx,{status:"error",error:u,durationMs:i})}finally{e.externalSignal?.removeEventListener("abort",s),this.inFlight.delete(n),this.drainNext(),this.notify()}}async runExecutor(e,r,n){if(!this.cacheKeyExecutor||!this.reuseServerDefinitionCache||!Te(e))return this.executor(e,r,n);let s=G(e),o=this.serverCacheKeys.get(s)??null,a=await this.cacheKeyExecutor(e,r,o,n);return a.cacheKey?this.serverCacheKeys.set(s,a.cacheKey):this.serverCacheKeys.delete(s),a.response}drainNext(){if(!this.disposed){if(this.mode==="latest-wins"){if(this.pendingForLatestWins&&this.inFlight.size===0){let e=this.pendingForLatestWins;this.pendingForLatestWins=null,this.execute(e)}return}for(;this.fifoQueue.length>0&&this.inFlight.size<this.maxConcurrent;){let e=this.fifoQueue.shift();this.execute(e)}}}supersede(e){let r=new l("Superseded by newer solve",d.SUPERSEDED,{context:{key:e.ctx.key,enqueuedAt:e.ctx.enqueuedAt}});this.settleError(e,r)&&this.runHook(this.onSuperseded,e.ctx)}makeAbortError(e){return new l("Request aborted by caller",d.ABORTED,{context:{key:e.key,enqueuedAt:e.enqueuedAt}})}settleError(e,r){return e.settled?!1:(e.settled={error:r},e.reject(r),!0)}settleSuccess(e,r){return e.settled?!1:(e.settled={ok:!0},e.resolve(r),!0)}isAbortLikeError(e){if(e instanceof Error){if(e.name==="AbortError")return!0;if(typeof DOMException<"u"&&e instanceof DOMException)return e.name==="AbortError"}return!1}normalizeExecutionError(e,r){return r.settled&&"error"in r.settled?r.settled.error:e instanceof l?e:this.isAbortLikeError(e)?this.makeAbortError(r.ctx):new l(e instanceof Error?e.message:String(e),d.UNKNOWN_ERROR,{originalError:e instanceof Error?e:new Error(String(e))})}cancelAll(){for(this.pendingForLatestWins&&(this.rejectAsAborted(this.pendingForLatestWins),this.pendingForLatestWins=null);this.fifoQueue.length>0;){let e=this.fifoQueue.shift();this.rejectAsAborted(e)}for(let e of this.inFlight){let r=this.makeAbortError(e.ctx);this.settleError(e,r)&&this.runHook(this.onSettle,e.ctx,{status:"error",error:r,durationMs:e.ctx.startedAt?performance.now()-e.ctx.startedAt:0}),e.controller.abort()}this.notify()}rejectAsAborted(e){this.settleError(e,this.makeAbortError(e.ctx))}readCache(e){if(!this.cacheEnabled)return null;let r=this.cache.get(e);return r?this.cacheTtl>0&&Date.now()-r.insertedAt>this.cacheTtl?(this.cache.delete(e),null):(this.cache.delete(e),this.cache.set(e,r),r.response):null}writeCache(e,r){if(this.cacheEnabled)for(this.cache.set(e,{response:r,insertedAt:Date.now()});this.cache.size>this.cacheMax;){let n=this.cache.keys().next().value;if(n===void 0)break;this.cache.delete(n)}}clearCache(){this.cache.clear()}dispose(){this.disposed||(this.disposed=!0,this.cancelAll(),this.subscribers.clear(),this.cache.clear())}runHook(e,...r){if(e)try{e(...r)}catch(n){m().error("[SolveScheduler] hook threw:",n)}}};var P=class t{constructor(e){p(this,"config");p(this,"serverStats");p(this,"disposed",!1);this.config=this.normalizeComputeConfig(e),this.serverStats=new $(this.config.serverUrl,this.config.apiKey)}static async create(e){let r=new t(e);if(!await r.serverStats.isServerOnline())throw new l("Rhino Compute server is not online",d.NETWORK_ERROR,{context:{serverUrl:r.config.serverUrl}});return r}getConfig(){return this.ensureNotDisposed(),{...this.config}}async getIO(e){return this.ensureNotDisposed(),V(e,this.config)}async getRawIO(e){return this.ensureNotDisposed(),R(e,this.config)}async solve(e,r,n){this.ensureNotDisposed();try{if(typeof e=="string"&&!e?.trim())throw new l("Definition URL/content is required",d.INVALID_INPUT,{context:{receivedUrl:e}});if(e instanceof Uint8Array&&e.length===0)throw new l("Definition content is empty",d.INVALID_INPUT);let s={...this.config,...n?.signal!==void 0&&{signal:n.signal},...n?.timeoutMs!==void 0&&{timeoutMs:n.timeoutMs},...n?.retry!==void 0&&{retry:n.retry}},o=await x(r,e,s);if(o?.errors&&o.errors.length>0)throw new l(o.errors.join("; ")||"Computation failed",d.COMPUTATION_ERROR,{context:{definition:typeof e=="string"&&e.length<200?e:"...content...",inputs:r,errors:o.errors,warnings:o.warnings}});return o}catch(s){throw this.config.debug&&m().error("Compute failed:",s),s instanceof l?s:new l(s instanceof Error?s.message:String(s),d.COMPUTATION_ERROR,{context:{definition:typeof e=="string"&&e.length<200?e:"...content...",inputs:r},originalError:s instanceof Error?s:new Error(String(s))})}}createScheduler(e){this.ensureNotDisposed();let r=(s,o,a)=>x(o,s,a),n=(s,o,a,i)=>a===null?H(o,s,i).then(u=>({...u,missed:!1})):Y(o,a,s,i);return new T(r,this.config,e,n)}async dispose(){this.disposed||(this.disposed=!0,await this.serverStats.dispose())}ensureNotDisposed(){if(this.disposed)throw new l("GrasshopperClient has been disposed and cannot be used",d.INVALID_STATE)}normalizeComputeConfig(e){return{...e,serverUrl:z(e.serverUrl),apiKey:e.apiKey,authToken:e.authToken,debug:e.debug??!1,suppressBrowserWarning:e.suppressBrowserWarning??e.suppressClientSideWarning}}};var F=new Map;function te(t,e){F.set(t,e)}te("Rhino.Geometry.Point3d",(t,e)=>{let r=e;return!r||typeof r.X!="number"?null:new t.Point([r.X,r.Y,r.Z])});te("Rhino.Geometry.Line",(t,e)=>{let r=e;return!r||!r.From||!r.To?null:new t.Line([r.From.X,r.From.Y,r.From.Z],[r.To.X,r.To.Y,r.To.Z])});function Ce(t){if(F.has(t))return F.get(t);for(let[e,r]of F)if(t.startsWith(e))return r}function Ie(t){return!t||typeof t!="object"?null:t.data??t.value??null}function re(t,e,r){let n=Ce(e);if(n)try{return n(r,t)}catch(s){m().warn(`Failed to decode Rhino type ${e}:`,s)}try{let s=Ie(t);if(s)return r.CommonObject.decode(s)}catch(s){return m().warn(`Failed to decode ${e} with CommonObject:`,s),{__decodeError:!0,type:e,raw:t}}return t}var C={STRING:"System.String",INT:"System.Int32",DOUBLE:"System.Double",BOOL:"System.Boolean"},Se="Rhino.Geometry.",xe=["WebDisplay"],De="FileData";function ne(t){return xe.some(e=>t.includes(e))}function se(t){if(typeof t!="string")return t;let e=t.trim();if(!(e.startsWith("{")||e.startsWith("[")||e.startsWith('"')))return t;try{let n=JSON.parse(e);if(typeof n=="string")try{return JSON.parse(n)}catch{return n}return n}catch{return t}}function Pe(t,e,r){switch(e){case C.STRING:return typeof t!="string"?t:t.replace(/^"(.*)"$/,"$1");case C.INT:return Number.parseInt(t,10);case C.DOUBLE:return Number.parseFloat(t);case C.BOOL:return String(t).toLowerCase()==="true";default:return r&&e.startsWith(Se)?re(t,e,r):t}}function oe(t,e,r,n){if(typeof t!="string")return t;let s=r?se(t):t;return Pe(s,e,n)}function Re(t){if(!t||typeof t!="object")return!1;let e=t;return typeof e.fileName=="string"&&typeof e.fileType=="string"&&"data"in e&&typeof e.isBase64Encoded=="boolean"&&typeof e.subFolder=="string"}function M(t,e){for(let r of Object.values(t))if(Array.isArray(r))for(let n of r)e(n)}function ae(t,e=!1,r={}){let{parseValues:n=!0,rhino:s,stringOnly:o=!1}=r,a={};for(let i of t.values)M(i.InnerTree,u=>{if(ne(u.type)||o&&u.type!==C.STRING)return;let c=e?u.id:i.ParamName;if(!c)return;let f=oe(u.data,u.type,n,s);a[c]===void 0?a[c]=f:Array.isArray(a[c])?a[c].push(f):a[c]=[a[c],f]});return{values:a}}function ie(t){let e=[];for(let r of t.values)M(r.InnerTree,n=>{if(!n.type.includes(De))return;let s=se(n.data);Re(s)&&e.push(s)});return e}function k(t,e,r={}){let{parseValues:n=!0,rhino:s,stringOnly:o=!1}=r,a;if("byName"in e?a=t.values.find(u=>u.ParamName===e.byName):a=t.values.find(u=>{let c=!1;return M(u.InnerTree,f=>{f.id===e.byId&&(c=!0)}),c}),!a)return;let i=[];if(M(a.InnerTree,u=>{if("byId"in e&&u.id!==e.byId||ne(u.type)||o&&u.type!==C.STRING)return;let c=oe(u.data,u.type,n,s);i.push(c)}),i.length!==0)return i.length===1?i[0]:i}var E=class{constructor(e,r=!1){this.response=e;this.debug=r}getValues(e=!1,r={}){return ae(this.response,e,r)}getValue(e,r){return k(this.response,e,r)}getValueByParamName(e,r){return k(this.response,{byName:e},r)}getValueByParamId(e,r){return k(this.response,{byId:e},r)}async extractMeshesFromResponse(e){let r={debug:this.debug,...e},n;try{({getThreeMeshesFromComputeResponse:n}=await import("./visualization-AQNCY6MG.js"))}catch(s){throw new l("Failed to load three.js visualization module. Ensure three.js is installed as a peer dependency.",d.INVALID_STATE,{context:{originalError:s instanceof Error?s.message:String(s)}})}return n(this.response,r)}getFileData(){return ie(this.response)}getAndDownloadFiles(e,r){let n=this.getFileData();A(n,e,r)}};function ue(t){if(typeof t.default!="object"||t.default===null)return t;if(!("innerTree"in t.default))return m().warn("Unexpected structure in input.default:",t.default),{...t,default:null};let e=t.default.innerTree;if(Object.keys(e).length===0)return{...t,default:void 0};if(t.treeAccess||t.atMost&&t.atMost>1){let n={};for(let[s,o]of Object.entries(e))n[s]=o.map(a=>{if(typeof a.data=="string"){if(a.type==="System.Double"||a.type==="System.Int32"){let i=Number(a.data);return Number.isNaN(i)?a.data:i}if(a.type==="System.Boolean")return a.data.toLowerCase()==="true";if(a.type.startsWith("Rhino.Geometry")||a.type==="System.String")try{return JSON.parse(a.data)}catch{return a.data}}return a.data});return{...t,default:n}}let r=[];for(let n of Object.values(e))Array.isArray(n)&&n.forEach(s=>{s&&typeof s=="object"&&"data"in s&&r.push(s.data)});return r.length===0?{...t,default:void 0}:r.length===1?{...t,default:r[0]}:{...t,default:r}}var W=/^\{([\d;]*)\}$/;function v(t){if(typeof t!="object"||t===null||Array.isArray(t))return!1;let e=Object.entries(t);return e.length>0&&e.every(([r,n])=>W.test(r)&&Array.isArray(n))}function I(t,e,r){if(t==null)return t;if(Array.isArray(t)){let s=t.map(e).filter(o=>o!==null);return s.length>0?s:void 0}let n=e(t);return n!==null?n:r?void 0:t}var Ee=t=>{if(typeof t=="number")return t;if(typeof t=="string"){let e=Number(t.trim());return Number.isNaN(e)?null:e}return null},ve=t=>{if(typeof t=="boolean")return t;if(typeof t=="string"){let e=t.toLowerCase();if(e==="true")return!0;if(e==="false")return!1;throw new Error(`Invalid boolean string: "${t}"`)}return null},we=t=>typeof t=="string"?t.startsWith('"')&&t.endsWith('"')||t.startsWith('"')?t.slice(1,-1):t:null,Ae=t=>{if(typeof t=="string"){let e=t.trim();return e.startsWith('"')&&e.endsWith('"')&&(e=e.slice(1,-1).trim()),e}return null};function le(t){return e=>{if(typeof e=="object"&&e!==null)return e;if(typeof e=="string"&&e.trim()!=="")try{let r=JSON.parse(e);return typeof r=="object"&&r!==null?r:(m().warn(`Parsed value for input ${t} is not an object`),null)}catch(r){return m().warn(`Failed to parse object value "${e}" for input ${t}`,r),null}return null}}function pe(t,e,r){let n=Number(t.toFixed(e));return Math.abs(t-n)<r?n:t}function Ne(t,e){if(!Number.isFinite(t)||t===0)return .1;let r=Math.abs(t);if(r>=1){let h=String(t).split(".")[1];if(h&&h.length>0){let y=Math.min(h.length,12),g=Math.pow(10,-y),K=Number(g.toFixed(y));return Math.abs(K-g)<e?K:g}return 1}let n=String(t),s=n.toLowerCase().match(/e(-?\d+)/);if(s){let S=Number(s[1]);if(S<0||n.toLowerCase().includes("e-")){let h=Math.abs(S),y=Math.pow(10,-h),g=Number(y.toFixed(h));return Math.abs(g-y)<e?g:y}return .1}let o=12,i=r.toFixed(o).replace(/0+$/,""),u=Math.min((i.split(".")[1]||"").length,o);if(u===0)return .1;let c=Math.pow(10,-u),f=Number(c.toFixed(u));return Math.abs(f-c)<e?f:c}function Oe(t,e=1e-8){let r=t.paramType==="Integer";if(v(t.default))return{default:t.default,stepSize:r?1:.1};let n=I(t.default,Ee,!0);if(r)return Array.isArray(n)?n=n.map(f=>typeof f=="number"?Math.round(f):f):typeof n=="number"&&(n=Math.round(n)),{default:n,stepSize:1};let s=Array.isArray(n)?n[0]:n,o;typeof s=="number"&&Number.isFinite(s)&&s!==0?o=s:typeof t.minimum=="number"&&Number.isFinite(t.minimum)&&t.minimum!==0?o=t.minimum:typeof t.maximum=="number"&&Number.isFinite(t.maximum)&&t.maximum!==0&&(o=t.maximum);let a=o!==void 0?Ne(o,e):.1,i=0,u=String(a),c=u.toLowerCase().match(/e(-?\d+)/);if(c?i=Math.abs(Number(c[1])):i=u.split(".")[1]?.length??0,i===0&&typeof s=="number"&&s!==0&&Math.abs(s)<1){let f=Math.ceil(-Math.log10(Math.abs(s)));Number.isFinite(f)&&f>0&&(i=f)}return i=Math.min(Math.max(i,0),12),Array.isArray(n)?n=n.map(f=>typeof f=="number"?pe(f,i,e):f):typeof n=="number"&&(n=pe(n,i,e)),{default:n,stepSize:a}}var Ge={types:["Number","Integer"],parse(t,e){let{default:r,stepSize:n}=Oe(t);return{...e,paramType:t.paramType,minimum:t.minimum,maximum:t.maximum,atLeast:t.atLeast,atMost:t.atMost,stepSize:n,default:r}},fallback(t,e){let r=(t.atMost??1)>1;return{...e,paramType:t.paramType,minimum:t.minimum,maximum:t.maximum,atLeast:t.atLeast,atMost:t.atMost,default:r?[0]:0}}},Ve={types:["Boolean"],parse(t,e){let r;try{r=I(t.default,ve,!1)}catch(n){throw n instanceof Error?new l(n.message):n}return{...e,paramType:"Boolean",default:r}},fallback(t,e){let r=(t.atMost??1)>1;return{...e,paramType:"Boolean",default:r?[!1]:!1}}},Fe={types:["Text"],parse(t,e){let r=I(t.default,we,!1);return{...e,paramType:"Text",default:r}},fallback(t,e){let r=(t.atMost??1)>1;return{...e,paramType:"Text",default:r?[""]:""}}},Me={types:["ValueList"],parse(t,e){if(!t.values||typeof t.values!="object"||Object.keys(t.values).length===0)throw l.missingValues(t.nickname||"unnamed","ValueList");if(t.default!==void 0&&t.default!==null){let r=String(t.default).toLowerCase();Object.keys(t.values).some(s=>s.toLowerCase()===r)||m().warn(`ValueList input "${t.nickname||"unnamed"}" default value "${t.default}" is not in available values`)}return{...e,paramType:"ValueList",values:t.values,default:t.default}},fallback(t,e){let r=(t.atMost??1)>1;return{...e,paramType:"ValueList",values:t.values??{},default:r?[t.default]:t.default}}},ce={types:["Geometry"],parse(t,e){let r=I(t.default,le(t.nickname||"unnamed"),!0);return{...e,paramType:"Geometry",default:r}},fallback(t,e){let r=(t.atMost??1)>1;return{...e,paramType:"Geometry",default:r?[null]:null}}},ke={types:["File"],parse(t,e){let r=I(t.default,le(t.nickname||"unnamed"),!0);return{...e,paramType:"File",acceptedFormats:t.acceptedFormats,default:r}},fallback(t,e){let r=(t.atMost??1)>1;return{...e,paramType:"File",default:r?[null]:null}}},Le={types:["Color"],parse(t,e){let r=I(t.default,Ae,!1);return{...e,paramType:"Color",default:r}},fallback(t,e){let r=(t.atMost??1)>1;return{...e,paramType:"Color",default:r?["0, 0, 0"]:"0, 0, 0"}}},Be=[Ge,Ve,Fe,Me,ce,ke,Le],j=new Map(Be.flatMap(t=>t.types.map(e=>[e,t]))),fe=ce;var We=new Map([...j.keys()].map(t=>[t.toLowerCase(),t]));function je(t){return We.get(t?.toLowerCase())??t}function me(t){return U(t).input}function U(t){let e={description:t.description,name:t.name,nickname:t.nickname,treeAccess:t.treeAccess,groupName:t.groupName??"",id:t.id},r=je(t.paramType),n=ue({...t,paramType:r}),s=j.get(r);try{if(!s)throw l.unknownParamType(r,t.name);return{input:s.parse(n,e)}}catch(o){if(o instanceof l)return m().error(`Validation error for input ${t.name||"unknown"}:`,o.message),{input:(s??fe).fallback(n,e),error:{inputName:t.name||"unknown",paramType:r,message:o.message,code:o.code}};throw new l(o instanceof Error?o.message:String(o),"VALIDATION_ERROR",{context:{paramName:t.name,paramType:r},originalError:o instanceof Error?o:new Error(String(o))})}}function de(t){return L(t).inputs}function L(t){let e=[],r=[];for(let n of t){let{input:s,error:o}=U(n);e.push(s),o&&r.push(o)}return{inputs:e,parseErrors:r}}async function R(t,e){let r=D(t,[]),n={};if(r.algo&&(n.algo=r.algo),r.pointer&&(n.pointer=r.pointer),!n.algo&&!n.pointer)throw new l("Definition must resolve to either a URL pointer or base64 algo",d.INVALID_INPUT,{context:{definition:t}});let s=await w("io",n,e);if(!s||typeof s!="object")throw new l("Invalid IO response structure",d.INVALID_INPUT,{context:{response:s,definition:t}});let o=he(s.warnings),a=he(s.errors);return{inputs:s.inputs,outputs:s.outputs,...o&&{loadWarnings:o},...a&&{loadErrors:a}}}function he(t){if(!Array.isArray(t))return;let e=t.filter(r=>typeof r=="string"&&r.trim().length>0);return e.length>0?e:void 0}async function V(t,e){b("fetchParsedDefinitionIO",e.suppressBrowserWarning??e.suppressClientSideWarning);let{inputs:r,outputs:n,loadWarnings:s,loadErrors:o}=await R(t,e),{inputs:a,parseErrors:i}=L(r);return{inputs:a,outputs:n,...i.length>0&&{parseErrors:i},...s&&{loadWarnings:s},...o&&{loadErrors:o}}}var B=class t{constructor(e){p(this,"innerTree");p(this,"paramName");this.paramName=e,this.innerTree={}}append(e,r){let n=t.formatPathString(e);this.innerTree[n]||(this.innerTree[n]=[]);let s=r.map(o=>({data:t.serializeValue(o)}));return this.innerTree[n].push(...s),this}appendSingle(e,r){return this.append(e,[r])}fromDataTreeDefault(e){this.innerTree={};for(let[r,n]of Object.entries(e)){if(!Array.isArray(n))continue;let s=t.parsePathString(r);this.append(s,n)}return this}appendFlat(e){let r=Array.isArray(e)?e:[e];return this.append([0],r)}flatten(){let e=[];for(let r of Object.values(this.innerTree))if(Array.isArray(r))for(let n of r)e.push(t.deserializeValue(n.data));return e}getPaths(){return Object.keys(this.innerTree)}getPath(e){let r=t.formatPathString(e),n=this.innerTree[r];if(n)return n.map(s=>t.deserializeValue(s.data))}toComputeFormat(){return{ParamName:this.paramName,InnerTree:this.innerTree}}getInnerTree(){return this.innerTree}getParamName(){return this.paramName}static fromInputParams(e){return e.filter(r=>t.hasValidValue(r.default)).map(r=>{let n=new t(r.nickname||"unnamed"),s=r.default;if(r.treeAccess&&v(s))n.fromDataTreeDefault(s),t.isNumericInput(r)&&n.applyNumericConstraints(r.minimum,r.maximum,r.nickname||"unnamed");else{let o=Array.isArray(s)?s:[s],a=t.processValues(o,r);n.appendFlat(a)}return n.toComputeFormat()})}static fromInputParam(e){return t.hasValidValue(e.default)?t.fromInputParams([e])[0]:void 0}static replaceTreeValue(e,r,n){let s=e.length>0&&e[0]instanceof t,o=t.buildFromValue(r,n);if(s){let c=e,f=c.findIndex(S=>S.getParamName()===r);return f!==-1?c[f]=o:c.push(o),c}let a=e,i=o.toComputeFormat(),u=a.findIndex(c=>c.ParamName===r);return u!==-1?a[u]=i:a.push(i),a}static buildFromValue(e,r){let n=new t(e);return v(r)?n.fromDataTreeDefault(r):n.appendFlat(r),n}static getTreeValue(e,r){let s=e.length>0&&e[0]instanceof t?t.readFromBuilders(e,r):t.readFromDataTrees(e,r);return s===null||s.length===0?null:s.length===1?s[0]:s}static readFromBuilders(e,r){let n=e.find(s=>s.getParamName()===r);return n?n.flatten():null}static readFromDataTrees(e,r){let n=e.find(a=>a.ParamName===r);if(!n?.InnerTree)return null;let s=Object.keys(n.InnerTree)[0];if(!s)return null;let o=n.InnerTree[s];return Array.isArray(o)?o.map(a=>a?.data!==void 0?t.deserializeValue(a.data):null).filter(a=>a!==null):o?.data!==void 0?[t.deserializeValue(o.data)]:o!==void 0?[o]:null}static parsePathString(e){let r=e.match(W);return r?r[1]===""?[]:r[1].split(";").map(Number):(m().warn(`Invalid TreeBuilder path format: ${e}, using [0]`),[0])}static formatPathString(e){return`{${e.join(";")}}`}applyNumericConstraints(e,r,n){for(let s of Object.values(this.innerTree))if(Array.isArray(s))for(let o of s){let a=t.deserializeValue(o.data);if(typeof a=="number"){let i=t.clampValue(a,e,r,n);o.data=t.serializeValue(i)}}}static serializeValue(e){return typeof e=="boolean"||typeof e=="number"||typeof e=="string"?e:typeof e=="object"&&e!==null?JSON.stringify(e):String(e)}static deserializeValue(e){if(typeof e=="boolean"||typeof e=="number"||typeof e!="string")return e;if(e.startsWith("{")||e.startsWith("["))try{return JSON.parse(e)}catch{return e}return isNaN(Number(e))?e==="true"?!0:e==="false"?!1:e:Number(e)}static hasValidValue(e){return e==null?!1:typeof e=="string"?!0:!(Array.isArray(e)&&e.length===0||typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0)}static isNumericInput(e){return e.paramType==="Number"||e.paramType==="Integer"}static processValues(e,r){return e.map(n=>t.isNumericInput(r)&&typeof n=="number"?t.clampValue(n,r.minimum,r.maximum,r.nickname||"unnamed"):n).filter(n=>n!=null)}static clampValue(e,r,n,s){let o=e;return r!=null&&o<r&&(m().warn(`${s}: ${e} below min ${r}, clamping`),o=r),n!=null&&o>n&&(m().warn(`${s}: ${e} above max ${n}, clamping`),o=n),o}};export{x as a,O as b,T as c,P as d,E as e,me as f,de as g,R as h,V as i,B as j};
2
- //# sourceMappingURL=chunk-3N5WXYQZ.js.map