geospec 0.1.0-beta.8 → 0.4.1-next.322
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +75 -17
- package/agent/doctrine.md +2 -1
- package/agent/geospec-authoring/SKILL.md +3 -2
- package/agent/geospec-authoring/api-index.md +20 -89
- package/agent/geospec-authoring/api-types.md +4 -481
- package/agent/geospec-authoring/public-api-functions.md +64 -3
- package/agent/geospec-authoring/public-api-index.md +245 -310
- package/agent/geospec-authoring/public-api-types-2.md +402 -348
- package/agent/geospec-authoring/public-api-types-3.md +204 -60
- package/agent/geospec-authoring/public-api-types.md +335 -850
- package/agent/resources.js +12 -12
- package/agent/skills.json +2 -2
- package/dist/assertion-client/client.d.mts +17 -16
- package/dist/assertion-client/client.mjs +1 -1
- package/dist/cli/check.mjs +2 -0
- package/dist/cli/cli.d.mts +48 -0
- package/dist/cli/cli.mjs +47 -0
- package/dist/cli/index.d.mts +3 -0
- package/dist/cli/index.mjs +1 -0
- package/dist/cli/main.d.mts +1 -0
- package/dist/cli/main.mjs +2 -0
- package/dist/cli/node-host.d.mts +27 -0
- package/dist/cli/node-host.mjs +1 -0
- package/dist/cli/wire-value.mjs +1 -0
- package/dist/config/define-config.d.mts +14 -0
- package/dist/config/define-config.mjs +2 -0
- package/dist/config/index.d.mts +4 -2
- package/dist/config/index.mjs +1 -1
- package/dist/config/node/index.mjs +1 -1
- package/dist/config/node/load.d.mts +4 -4
- package/dist/config/node/load.mjs +1 -1
- package/dist/config/read-geospec-config.d.mts +51 -0
- package/dist/config/read-geospec-config.mjs +3 -0
- package/dist/config/types.d.mts +15 -27
- package/dist/config/validate.mjs +1 -1
- package/dist/create-geospec.d.mts +7 -6
- package/dist/engine/client.d.mts +18 -16
- package/dist/engine/client.mjs +1 -1
- package/dist/engine/matchers.d.mts +10 -11
- package/dist/engine/pmi.types.d.mts +11 -12
- package/dist/engine/protocol.d.mts +7 -8
- package/dist/engine/protocol.mjs +1 -1
- package/dist/geometry-unit.d.mts +2 -3
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +1 -1
- package/dist/mesh/index.d.mts +2 -2
- package/dist/mesh/types.d.mts +8 -505
- package/dist/model/errors.d.mts +2 -3
- package/dist/model/load-model.d.mts +3 -4
- package/dist/model/mesh-evidence-matchers.d.mts +2 -3
- package/dist/model/native-model-loader.d.mts +14 -17
- package/dist/model/native-model-loader.mjs +1 -1
- package/dist/model/node/command-exporter.d.mts +5 -4
- package/dist/model/node/command-exporter.mjs +1 -1
- package/dist/model/node/index.mjs +1 -1
- package/dist/model/region-scope.d.mts +3 -6
- package/dist/model/region-scope.mjs +1 -1
- package/dist/model/subject.d.mts +2 -5
- package/dist/model/subject.mjs +1 -1
- package/dist/model/types.d.mts +19 -20
- package/dist/runner/collector.d.mts +7 -8
- package/dist/runner/collector.mjs +3 -1
- package/dist/runner/discovery.d.mts +10 -11
- package/dist/runner/discovery.mjs +5 -1
- package/dist/runner/filter.d.mts +6 -7
- package/dist/runner/filter.mjs +3 -1
- package/dist/runner/index.d.mts +4 -2
- package/dist/runner/index.mjs +1 -1
- package/dist/runner/native/index.mjs +1 -1
- package/dist/runner/native/native-pool-grants.d.mts +2 -3
- package/dist/runner/native/native-serial-runner.d.mts +4 -7
- package/dist/runner/native/native-serial-runner.mjs +1 -1
- package/dist/runner/node/engine.d.mts +39 -0
- package/dist/runner/node/engine.mjs +1 -0
- package/dist/runner/node/index.d.mts +4 -1
- package/dist/runner/node/index.mjs +1 -1
- package/dist/runner/node/node-vm-filesystem.d.mts +4 -5
- package/dist/runner/node/node-vm-filesystem.mjs +1 -1
- package/dist/runner/node/pool-runner.d.mts +76 -0
- package/dist/runner/node/pool-runner.mjs +1 -0
- package/dist/runner/node/pool-worker-entry.d.mts +46 -0
- package/dist/runner/node/pool-worker-entry.mjs +1 -0
- package/dist/runner/pool/events.mjs +1 -1
- package/dist/runner/pool/pool-messages.d.mts +10 -9
- package/dist/runner/pool/pool.d.mts +5 -7
- package/dist/runner/pool/pool.mjs +1 -1
- package/dist/runner/pool/shard-timings.d.mts +3 -4
- package/dist/runner/pool/worker-host.d.mts +7 -6
- package/dist/runner/pool/worker-host.mjs +1 -1
- package/dist/runner/run-geospec-module.d.mts +2 -3
- package/dist/runner/run-geospec-module.mjs +7 -7
- package/dist/runner/timeout-codes.d.mts +6 -8
- package/dist/runner/types.d.mts +65 -59
- package/dist/runner/worker/index.d.mts +1 -1
- package/dist/runner/worker/no-matching-tests-issue.d.mts +3 -4
- package/dist/runner/worker/runner-types.d.mts +17 -16
- package/dist/runner/worker/serial-runner.mjs +1 -1
- package/dist/selector/types.d.mts +22 -23
- package/dist/step/types.d.mts +4 -119
- package/dist/support/filesystem-errors.mjs +1 -0
- package/dist/support/hash.mjs +1 -0
- package/dist/support/path.mjs +1 -0
- package/dist/support/sha256.mjs +1 -0
- package/dist/support/types.d.mts +38 -0
- package/dist/vitest/adapter.d.mts +5 -6
- package/dist/vitest/adapter.mjs +1 -1
- package/dist/vitest/index.d.mts +0 -1
- package/dist/vitest/index.mjs +1 -1
- package/dist/vitest/node/index.d.mts +2 -0
- package/dist/vitest/node/index.mjs +1 -0
- package/dist/vitest/node/setup-project.d.mts +60 -0
- package/dist/vitest/node/setup-project.mjs +1 -0
- package/dist/vm/plain-module-vm.d.mts +13 -0
- package/dist/vm/plain-module-vm.mjs +8 -0
- package/dist/vm/types.d.mts +142 -0
- package/package.json +31 -10
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ registry, and host integration. It executes no geometry on its own: every claim
|
|
|
9
9
|
is evaluated by the compiled
|
|
10
10
|
[`geospec-engine`](https://github.com/taucad/geospec/tree/main/packages/geospec-engine) core that
|
|
11
11
|
the host passes to the runner. Tau's desktop/browser composition and the
|
|
12
|
-
[`geospec` CLI](
|
|
12
|
+
[`geospec` CLI](#runner-configuration) supply that engine. Authored tests
|
|
13
13
|
do not import or select an engine, and nothing registers one globally.
|
|
14
14
|
|
|
15
15
|
The following is a `*.geospec.ts` module for the CLI or Tau `test_model`:
|
|
@@ -68,14 +68,74 @@ qualification, and filtered requirements remain outside the demonstrated scope.
|
|
|
68
68
|
|
|
69
69
|
### Runner configuration
|
|
70
70
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
71
|
+
The `geospec` bin runs a project's specs on the compiled engine from
|
|
72
|
+
[`geospec-engine`](https://github.com/taucad/geospec/tree/main/packages/geospec-engine):
|
|
73
|
+
the native addon when this platform has one, else its WASM build. Models that
|
|
74
|
+
are not STEP or GLB come from the `exporters` the project's `geospec.config.*`
|
|
75
|
+
declares, imported once in each pool worker; without one, such a load refuses
|
|
76
|
+
with `GEOSPEC_EXPORTER_MISSING`.
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
geospec run .
|
|
80
|
+
geospec run . --include "parts/**/*.geospec.ts"
|
|
81
|
+
geospec run . --file main.geospec.ts --test-name-pattern volume
|
|
82
|
+
geospec run . --workers # worker pool, auto-sized
|
|
83
|
+
geospec run . --workers 4 --shard-timeout 600000
|
|
84
|
+
geospec run . --config ci.geospec.config.ts
|
|
85
|
+
geospec run . --json
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Spec imports.** The CLI bundles each spec with native esbuild over the
|
|
89
|
+
project: a spec may import project files and the GeoSpec builtins (`geospec`,
|
|
90
|
+
`geospec/model`, `geospec/config`). An npm package or URL import refuses with
|
|
91
|
+
`BUNDLER_FAILED` and a message naming the specifier; nothing is fetched or
|
|
92
|
+
installed. A host that resolves packages passes its own module VM as
|
|
93
|
+
`createModuleVm` (`CreateModuleVm` in `geospec/runner`; for a Node pool,
|
|
94
|
+
`moduleVmModule`). Tau's hosts inject Tau's esbuild VM this way. A browser host
|
|
95
|
+
has no default VM and must inject one.
|
|
96
|
+
|
|
97
|
+
| Flag | Meaning |
|
|
98
|
+
| --------------------------------------- | --------------------------------------------------------------------------------------------------------- |
|
|
99
|
+
| `--file <path>` | GeoSpec file or directory root; repeatable. Empty input discovers from the project root. |
|
|
100
|
+
| `--include <glob>` / `--exclude <glob>` | Vitest-style file globs; repeatable. Include defaults to `**/*.geospec.{ts,js}`. |
|
|
101
|
+
| `-t`, `--test-name-pattern <re>` | JavaScript regular expression matched against the full `suite > test` name. |
|
|
102
|
+
| `--test-timeout <ms>` | Timeout for each async test callback. |
|
|
103
|
+
| `--workers [n]` | Run in a worker pool. Default is one; omit the count after the flag to request available CPU parallelism. |
|
|
104
|
+
| `--shard-timeout <ms>` | Per-shard **non-verdict** watchdog. Off by default. |
|
|
105
|
+
| `--bail` | Stop after the first red file. Interactive use only — a reward run wants the complete red set. |
|
|
106
|
+
| `--config <path>` | The `geospec.config.*` to use instead of the one in the project root. |
|
|
107
|
+
| `--json` | Print exactly one JSON result document on stdout and nothing else. |
|
|
108
|
+
|
|
109
|
+
A flag replaces the config field of the same name. **The exit code is the
|
|
110
|
+
verdict.** `0` only when the run succeeded; any failure, any run-level issue,
|
|
111
|
+
and an empty selection are all `1`.
|
|
112
|
+
|
|
113
|
+
### Checking a file with no spec
|
|
114
|
+
|
|
115
|
+
`geospec check` runs one bundled validity spec on a STEP or GLB file, so a
|
|
116
|
+
first use needs no `*.geospec.ts`. It takes the same runner, engine and report
|
|
117
|
+
as `geospec run`; the file's folder is the project root.
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
geospec check bracket.step
|
|
121
|
+
geospec check assembly.glb --components 3 --json
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Each claim is its own test: no error diagnostics, closed edge incidence
|
|
125
|
+
(`toBeWatertight`) and a bounding box with positive size on every axis, plus
|
|
126
|
+
mesh integrity for a GLB or a valid BRep with closed shells for a STEP file.
|
|
127
|
+
`--components <n>` adds an exact connected-component count. A claim the engine
|
|
128
|
+
cannot decide is reported as inconclusive, never as a pass, and the exit code is
|
|
129
|
+
the verdict.
|
|
130
|
+
|
|
131
|
+
To embed the pool, use `createGeoSpecNodePoolRunner` from `geospec/runner/node`;
|
|
132
|
+
each worker owns one engine and its own exporters, and live subjects never
|
|
133
|
+
cross worker boundaries. To run serially in this process, pass an engine from
|
|
134
|
+
`createNodeGeoSpecEngine` to `createNativeGeoSpecRunner` from
|
|
135
|
+
`geospec/runner/native`; it builds the native model loader and releases every
|
|
136
|
+
admitted subject after each run. Other embeddings must qualify their actual
|
|
137
|
+
binding, input representation and supported domain; shared authoring syntax
|
|
138
|
+
alone does not establish verdict equivalence.
|
|
79
139
|
|
|
80
140
|
The filters below are the shared vocabulary of the CLI, the embedded runners
|
|
81
141
|
and the Tau `test_model` tool:
|
|
@@ -146,7 +206,7 @@ matches the exact retained primitive label, including any ordinal suffix.
|
|
|
146
206
|
Inspect that label and preserve cardinality instead of guessing an occurrence
|
|
147
207
|
path. Mesh input does not invent assembly ancestry or analytic faces; missing
|
|
148
208
|
measure, probe or ordering evidence refuses, even through query negation.
|
|
149
|
-
The STEP Body index
|
|
209
|
+
The STEP Body index exposes per-occurrence solid aggregates, so do
|
|
150
210
|
not assume its Body count maps one-to-one to mesh material roots.
|
|
151
211
|
|
|
152
212
|
Whole-Body contact requires no interior overlap and boundary separation within
|
|
@@ -161,9 +221,9 @@ import { loadModel } from 'geospec/model';
|
|
|
161
221
|
const subject = await loadModel({ file: 'part.step', format: 'step' });
|
|
162
222
|
```
|
|
163
223
|
|
|
164
|
-
For CAD source, `loadModel({ file: 'main.ts', format: 'step' })` asks the host to export STEP. The configured compiled engine admits the exact returned bytes through its OCCT binding. Export and source provenance do not by themselves
|
|
224
|
+
For CAD source, `loadModel({ file: 'main.ts', format: 'step' })` asks the host to export STEP. The configured compiled engine admits the exact returned bytes through its OCCT binding. Export and source provenance do not by themselves establish a geometric requirement.
|
|
165
225
|
|
|
166
|
-
Measurement matchers
|
|
226
|
+
Measurement matchers support mesh evidence and prefer exact BRep evidence when it is present:
|
|
167
227
|
|
|
168
228
|
```ts
|
|
169
229
|
expectGeo(subject).toHaveSurfaceArea({ value: 12_345, tolerance: 1 });
|
|
@@ -196,21 +256,19 @@ expectGeo(subject).toHaveVoidContinuity({
|
|
|
196
256
|
These are requirement examples, not a claim that every admitted model supports
|
|
197
257
|
them. `toHaveVoidContinuity` requires the declared path, material and isolation
|
|
198
258
|
proposition to be proved in a qualified domain. A sampled cross-section cannot
|
|
199
|
-
|
|
259
|
+
establish a continuous minimum: the general sampled profile refuses a requested
|
|
200
260
|
`minCrossSection`. Restricted nominal analytic domains have separate premises;
|
|
201
261
|
general mesh lumen, wall and motion qualification remains incomplete.
|
|
202
262
|
|
|
203
263
|
Likewise, watertight edge incidence does not prove manifold validity, a Boolean
|
|
204
|
-
fuse or material connectivity. Bounds and playback cannot
|
|
264
|
+
fuse or material connectivity. Bounds and playback cannot establish contact,
|
|
205
265
|
clearance, containment or sealing. Preserve intended geometry and tolerances;
|
|
206
266
|
report unavailable evidence instead of replacing the requirement with a proxy.
|
|
207
267
|
|
|
208
268
|
The [canonical API index](agent/geospec-authoring/api-index.md) describes
|
|
209
269
|
ordinary authoring. The separate
|
|
210
270
|
[complete public API index](agent/geospec-authoring/public-api-index.md)
|
|
211
|
-
retains host and framework contracts.
|
|
212
|
-
`GeometrySubject` input is not interchangeable with the opaque subject returned
|
|
213
|
-
by canonical `loadModel`.
|
|
271
|
+
retains host and framework contracts.
|
|
214
272
|
|
|
215
273
|
When a geometry assertion needs a parameter variant, pass that variant directly to `loadModel`. Omitting `parameters` exercises the defaults authored by the model:
|
|
216
274
|
|
package/agent/doctrine.md
CHANGED
|
@@ -22,7 +22,7 @@ describe('main geometry', () => {
|
|
|
22
22
|
});
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
Specs are always TypeScript or JavaScript, whatever the model's kernel: `loadModel({ file })` evaluates `main.ts`, `main.tsx`, `main.py`, `main.scad`, `main.kcl` or `main.cs` through Tau's runtime. `test_model` discovers `*.geospec.ts` and `*.geospec.js` only.
|
|
25
|
+
Specs are always TypeScript or JavaScript, whatever the model's kernel: `loadModel({ file })` evaluates `main.ts`, `main.tsx`, `main.py`, `main.scad`, `main.kcl` or `main.cs` through the exporter the host or the project's `geospec.config.ts` supplies. On Tau projects that is Tau's runtime, configured in `tau.config.ts`; never set GeoSpec exporters there. `test_model` discovers `*.geospec.ts` and `*.geospec.js` only.
|
|
26
26
|
|
|
27
27
|
Every matcher takes one expectation object:
|
|
28
28
|
|
|
@@ -36,6 +36,7 @@ Every matcher takes one expectation object:
|
|
|
36
36
|
- `loadModel({ file, workUnitLimit })` sets the default claim budget for that subject, and `expectGeo(model, { workUnitLimit })` overrides it for one chain. The budget is a positive integer no greater than 512000000. A `MATCHER_TIMEOUT` refusal reports `details.limit` and, when measured, `details.used`; its `test_model` row (category `work-budget`) names in `limit.retry` the one `workUnitLimit` that can decide the claim, or `null` at the host maximum. Never treat the refusal as a pass.
|
|
37
37
|
- `loadModel({ file, region: { min: [x, y, z], max: [x, y, z] } })` makes a separate claim about one millimetre box, never a stand-in for a whole-model claim. The kernel crops before export (PicoVoxel trims Voxels parts), and other kernels, STEP loads and unconfirmed crops refuse with a typed diagnostic. A cropped subject answers only bounding box, volume, surface area, mass and center of mass of its region, and its assertions record the region. Every other matcher on it refuses with `GEOSPEC_REGION_WHOLE_MODEL_CLAIM`. Name the region in the test, and keep whole-model claims on whole-model loads.
|
|
38
38
|
- A host or engine limit leaves a claim undecided, never false: `test_model` reports it as inconclusive with category `analysis-limit`, `resource-limit` or `work-budget` and a typed `limit` naming the limit and its numbers. Keep the model as designed: never coarsen, shrink or crop it to fit. Only a `work-budget` row's `limit.retry` is a retry, and `testTimeout` only answers a `timeout` row; report every other limit row as not decided at this capacity.
|
|
39
|
+
- An unknown or mistyped expectation field refuses only that claim, with `GEOSPEC_INVALID_EXPECTATION` naming `details.field`; its `test_model` row is inconclusive, category `invalid-expectation`. Fix the expectation and keep the assertion.
|
|
39
40
|
- `toHaveCenterOfMass({ point, tolerance })` takes an exact point. Per-axis ranges such as `{ y: { greaterThan: 1 } }` are refused.
|
|
40
41
|
|
|
41
42
|
## Ceilings
|
|
@@ -29,7 +29,7 @@ describe('main geometry', () => {
|
|
|
29
29
|
});
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
Specs are always TypeScript or JavaScript, whatever the model's kernel: `loadModel({ file })` evaluates `main.ts`, `main.tsx`, `main.py`, `main.scad`, `main.kcl` or `main.cs` through Tau's runtime. `test_model` discovers `*.geospec.ts` and `*.geospec.js` only.
|
|
32
|
+
Specs are always TypeScript or JavaScript, whatever the model's kernel: `loadModel({ file })` evaluates `main.ts`, `main.tsx`, `main.py`, `main.scad`, `main.kcl` or `main.cs` through the exporter the host or the project's `geospec.config.ts` supplies. On Tau projects that is Tau's runtime, configured in `tau.config.ts`; never set GeoSpec exporters there. `test_model` discovers `*.geospec.ts` and `*.geospec.js` only.
|
|
33
33
|
|
|
34
34
|
Every matcher takes one expectation object:
|
|
35
35
|
|
|
@@ -43,6 +43,7 @@ Every matcher takes one expectation object:
|
|
|
43
43
|
- `loadModel({ file, workUnitLimit })` sets the default claim budget for that subject, and `expectGeo(model, { workUnitLimit })` overrides it for one chain. The budget is a positive integer no greater than 512000000. A `MATCHER_TIMEOUT` refusal reports `details.limit` and, when measured, `details.used`; its `test_model` row (category `work-budget`) names in `limit.retry` the one `workUnitLimit` that can decide the claim, or `null` at the host maximum. Never treat the refusal as a pass.
|
|
44
44
|
- `loadModel({ file, region: { min: [x, y, z], max: [x, y, z] } })` makes a separate claim about one millimetre box, never a stand-in for a whole-model claim. The kernel crops before export (PicoVoxel trims Voxels parts), and other kernels, STEP loads and unconfirmed crops refuse with a typed diagnostic. A cropped subject answers only bounding box, volume, surface area, mass and center of mass of its region, and its assertions record the region. Every other matcher on it refuses with `GEOSPEC_REGION_WHOLE_MODEL_CLAIM`. Name the region in the test, and keep whole-model claims on whole-model loads.
|
|
45
45
|
- A host or engine limit leaves a claim undecided, never false: `test_model` reports it as inconclusive with category `analysis-limit`, `resource-limit` or `work-budget` and a typed `limit` naming the limit and its numbers. Keep the model as designed: never coarsen, shrink or crop it to fit. Only a `work-budget` row's `limit.retry` is a retry, and `testTimeout` only answers a `timeout` row; report every other limit row as not decided at this capacity.
|
|
46
|
+
- An unknown or mistyped expectation field refuses only that claim, with `GEOSPEC_INVALID_EXPECTATION` naming `details.field`; its `test_model` row is inconclusive, category `invalid-expectation`. Fix the expectation and keep the assertion.
|
|
46
47
|
- `toHaveCenterOfMass({ point, tolerance })` takes an exact point. Per-axis ranges such as `{ y: { greaterThan: 1 } }` are refused.
|
|
47
48
|
|
|
48
49
|
## Ceilings
|
|
@@ -485,7 +486,7 @@ LoadModelSourceOptions: {
|
|
|
485
486
|
|
|
486
487
|
## API reference
|
|
487
488
|
|
|
488
|
-
To read any other signature, find its name in `api-index.md`, which lists all
|
|
489
|
+
To read any other signature, find its name in `api-index.md`, which lists all 299 symbols by file with the lines that hold each, and read that range of the named file.
|
|
489
490
|
|
|
490
491
|
- `api-functions.md` — Functions
|
|
491
492
|
- `api-constants.md` — Constants
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# geospec API index
|
|
2
2
|
|
|
3
|
-
geospec 0.
|
|
3
|
+
geospec 0.4.0 · 299 symbols · extracted by TypeScript 5.9.3.
|
|
4
4
|
|
|
5
5
|
Every symbol appears here exactly once. The heading above each block names the file with its signature, and each top-level symbol names the lines of that file which hold its declaration and members: read only that range.
|
|
6
6
|
|
|
@@ -37,7 +37,7 @@ GeoSpecAssertion (type) [lines 16-66] [9 members] — Geometry assertion collect
|
|
|
37
37
|
GeoSpecAssertion.report (property) — Exact compiled assertion report, including core-owned bytes and polarity
|
|
38
38
|
GeoSpecAssertion.loadId (property) — The host load which admitted this assertion's subject
|
|
39
39
|
GeoSpecAssertion.region (property) — The crop this assertion's subject was loaded with
|
|
40
|
-
GeoSpecAssertion.durationMs (property) — Wall-clock cost of matcher evaluation in milliseconds (
|
|
40
|
+
GeoSpecAssertion.durationMs (property) — Wall-clock cost of matcher evaluation in milliseconds (budgeted matchers only)
|
|
41
41
|
GeoSpecAssemblyOccurrenceExpectation (type) [lines 68-91] [3 members] — Assembly occurrence rule accepted by `expectGeo(...).toHaveAssemblyOccurrences(...)`
|
|
42
42
|
GeoSpecAssemblyOccurrenceExpectation.name (property)
|
|
43
43
|
GeoSpecAssemblyOccurrenceExpectation.count (property)
|
|
@@ -203,85 +203,16 @@ GeoSpecVoidWaypoint (type) [lines 818-821] — One void-continuity waypoint
|
|
|
203
203
|
GeoSpecVolumeExpectation (type) [lines 823-831] [2 members] — Volume expectation accepted by `expectGeo(...).toHaveVolume(...)`
|
|
204
204
|
GeoSpecVolumeExpectation.value (property)
|
|
205
205
|
GeoSpecVolumeExpectation.tolerance (property)
|
|
206
|
-
|
|
207
|
-
BrepEvidence.validity (property)
|
|
208
|
-
BrepEvidence.topologyCounts (property)
|
|
209
|
-
BrepEvidence.boundingBox (property)
|
|
210
|
-
BrepEvidence.massProperties (property)
|
|
211
|
-
BrepEvidence.planarFaces (property)
|
|
212
|
-
BrepEvidence.cylindricalFaces (property)
|
|
213
|
-
BrepEvidence.circularHoles (property)
|
|
214
|
-
BrepEvidence.circularHolePatterns (property)
|
|
215
|
-
BrepEvidence.chamferFeatures (property)
|
|
216
|
-
BrepEvidence.filletFeatures (property)
|
|
217
|
-
BrepEvidence.minimumWallThickness (property)
|
|
218
|
-
GeometryFileFormat (type) [lines 1060-1061] — Geometry file formats understood by GeoSpec provenance
|
|
219
|
-
GeometryCapability (type) [lines 1063-1081] [2 members] — Capability exposed by a loaded subject
|
|
220
|
-
GeometryCapability.kind (property)
|
|
221
|
-
GeometryCapability.feature (property)
|
|
222
|
-
GeometryDiagnostic (type) [lines 1083-1111] [6 members] — Diagnostic emitted by GeoSpec loaders, analyzers, and matchers
|
|
206
|
+
GeometryDiagnostic (type) [lines 833-861] [6 members] — Diagnostic emitted by GeoSpec loaders, analyzers, and matchers
|
|
223
207
|
GeometryDiagnostic.code (property)
|
|
224
208
|
GeometryDiagnostic.severity (property)
|
|
225
209
|
GeometryDiagnostic.message (property)
|
|
226
210
|
GeometryDiagnostic.suggestion (property)
|
|
227
211
|
GeometryDiagnostic.spatial (property)
|
|
228
212
|
GeometryDiagnostic.details (property)
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
GeometryProvenance.loader (property)
|
|
233
|
-
GeometryProvenance.contentHash (property)
|
|
234
|
-
GeometryProvenance.parameters (property)
|
|
235
|
-
GeometryProvenance.exportIntent (property)
|
|
236
|
-
GeometrySource (type) [lines 1135-1152] [5 members] — Source metadata for a loaded geometry subject
|
|
237
|
-
GeometrySource.kind (property)
|
|
238
|
-
GeometrySource.format (property)
|
|
239
|
-
GeometrySource.path (property)
|
|
240
|
-
GeometrySource.name (property)
|
|
241
|
-
GeometrySource.byteLength (property)
|
|
242
|
-
GeometrySubject (type) [lines 1154-1183] [8 members] — Canonical P0 object under test for GeoSpec
|
|
243
|
-
GeometrySubject.kind (property)
|
|
244
|
-
GeometrySubject.subjectId (property) — Opaque engine-owned identifier used by every protocol claim
|
|
245
|
-
GeometrySubject.mesh (property)
|
|
246
|
-
GeometrySubject.brep (property)
|
|
247
|
-
GeometrySubject.step (property)
|
|
248
|
-
GeometrySubject.provenance (property)
|
|
249
|
-
GeometrySubject.capabilities (property)
|
|
250
|
-
GeometrySubject.diagnostics (property)
|
|
251
|
-
GeometrySubjectMeshEvidence (type) [lines 1185-1193] [2 members] — Wire-safe mesh summary carried by an opaque geometry subject
|
|
252
|
-
GeometrySubjectMeshEvidence.format (property)
|
|
253
|
-
GeometrySubjectMeshEvidence.stats (property)
|
|
254
|
-
MeshEvidence (type) [lines 1195-1203] [2 members] — Mesh evidence loaded from geometry bytes or buffers
|
|
255
|
-
MeshEvidence.format (property)
|
|
256
|
-
MeshEvidence.stats (property)
|
|
257
|
-
MeshFileFormat (type) [lines 1205-1206] — Geometry file formats supported by the P0 mesh loader
|
|
258
|
-
MeshQualityStats (type) [lines 1208-1261] [8 members] — Triangle quality and scalar mesh metrics used by P0 GeoSpec…
|
|
259
|
-
MeshQualityStats.triangleCount (property)
|
|
260
|
-
MeshQualityStats.nonFiniteVertices (property)
|
|
261
|
-
MeshQualityStats.degenerateTriangles (property)
|
|
262
|
-
MeshQualityStats.duplicateFaces (property)
|
|
263
|
-
MeshQualityStats.triangles (property)
|
|
264
|
-
MeshQualityStats.surfaceArea (property)
|
|
265
|
-
MeshQualityStats.signedVolume (property)
|
|
266
|
-
MeshQualityStats.centerOfMass (property)
|
|
267
|
-
MeshTriangle (type) [lines 1263-1286] [7 members] — One triangle from mesh evidence, in geometry document coordinates
|
|
268
|
-
MeshTriangle.primitive (property)
|
|
269
|
-
MeshTriangle.triangleIndex (property)
|
|
270
|
-
MeshTriangle.a (property)
|
|
271
|
-
MeshTriangle.b (property)
|
|
272
|
-
MeshTriangle.c (property)
|
|
273
|
-
MeshTriangle.center (property)
|
|
274
|
-
MeshTriangle.area (property)
|
|
275
|
-
StepEvidence (type) [lines 1288-1338] [6 members] — STEP/XDE evidence extracted while loading a STEP subject
|
|
276
|
-
StepEvidence.schema (property)
|
|
277
|
-
StepEvidence.unit (property)
|
|
278
|
-
StepEvidence.productStructure (property)
|
|
279
|
-
StepEvidence.readStrategy (property)
|
|
280
|
-
StepEvidence.capabilities (property)
|
|
281
|
-
StepEvidence.xde (property) — Structured AP242 XDE read result (occurrences, subshape names, datum placements)
|
|
282
|
-
Vec3 (type) [lines 1340-1341] — Numeric 3D vector
|
|
283
|
-
GeoSpecVec3 (type) [lines 1343-1344] — Numeric 3D vector
|
|
284
|
-
CreateModelLoaderOptions (type) [lines 1346-1393] [9 members] — Defaults accepted by {@link import ('./load-model.js').createModelLoader}
|
|
213
|
+
Vec3 (type) [lines 863-864] — Numeric 3D vector
|
|
214
|
+
GeoSpecVec3 (type) [lines 866-867] — Numeric 3D vector
|
|
215
|
+
CreateModelLoaderOptions (type) [lines 869-916] [9 members] — Defaults accepted by {@link import ('./load-model.js').createModelLoader}
|
|
285
216
|
CreateModelLoaderOptions.engine (property) — Initialized compiled engine supplied by the host, never selected by…
|
|
286
217
|
CreateModelLoaderOptions.readSource (property) — Rooted host reader for direct filesystem or URL sources
|
|
287
218
|
CreateModelLoaderOptions.format (property) — Geometry format to export when an individual call does not…
|
|
@@ -291,16 +222,16 @@ CreateModelLoaderOptions (type) [lines 1346-1393] [9 members] — Defaults accep
|
|
|
291
222
|
CreateModelLoaderOptions.mesh (property) — Whether STEP loading should also produce mesh evidence
|
|
292
223
|
CreateModelLoaderOptions.meshLinearTolerance (property) — Linear tolerance used while meshing exact BRep evidence
|
|
293
224
|
CreateModelLoaderOptions.meshAngularToleranceDegrees (property) — Angular tolerance in degrees used while meshing exact BRep evidence
|
|
294
|
-
GeoSpecExporterCapabilities (type) [lines
|
|
225
|
+
GeoSpecExporterCapabilities (type) [lines 918-940] [4 members] — What a {@link GeoSpecModelExporter} declares it can do
|
|
295
226
|
GeoSpecExporterCapabilities.formats (property) — The formats `export` produces
|
|
296
227
|
GeoSpecExporterCapabilities.parameters (property) — Accepts `parameters`
|
|
297
228
|
GeoSpecExporterCapabilities.region (property) — Crops to `region` (an axis-aligned millimetre box) before export
|
|
298
229
|
GeoSpecExporterCapabilities.inlineSources (property) — Accepts `inline` sources, which back `loadModel({ code })`
|
|
299
|
-
GeoSpecExportFormat (type) [lines
|
|
300
|
-
GeoSpecLoadRegion (type) [lines
|
|
230
|
+
GeoSpecExportFormat (type) [lines 942-943] — Formats a {@link GeoSpecModelExporter} may produce from a source-kind file
|
|
231
|
+
GeoSpecLoadRegion (type) [lines 945-953] [2 members] — Axis-aligned crop box in canonical Z-up millimetres
|
|
301
232
|
GeoSpecLoadRegion.min (property)
|
|
302
233
|
GeoSpecLoadRegion.max (property)
|
|
303
|
-
GeoSpecModelArtifact (type) [lines
|
|
234
|
+
GeoSpecModelArtifact (type) [lines 955-998] [7 members] — The bytes an exporter returns, in the canonical Z-up millimetre…
|
|
304
235
|
GeoSpecModelArtifact.bytes (property)
|
|
305
236
|
GeoSpecModelArtifact.format (property)
|
|
306
237
|
GeoSpecModelArtifact.sourceUnit (property) — Unit of raw GLB coordinates
|
|
@@ -308,14 +239,14 @@ GeoSpecModelArtifact (type) [lines 1432-1475] [7 members] — The bytes an expor
|
|
|
308
239
|
GeoSpecModelArtifact.consumedSources (property) — Every source file the export read, as a path from…
|
|
309
240
|
GeoSpecModelArtifact.diagnostics (property) — Notices from a successful export, admitted with the subject so…
|
|
310
241
|
GeoSpecModelArtifact.exportOptions (property) — The export options the exporter applied, recorded in the load…
|
|
311
|
-
GeoSpecModelExporter (type) [lines
|
|
242
|
+
GeoSpecModelExporter (type) [lines 1000-1034] [6 members] — Turns a source-kind model file into GLB or STEP bytes…
|
|
312
243
|
GeoSpecModelExporter.id (property)
|
|
313
244
|
GeoSpecModelExporter.extensions (property)
|
|
314
245
|
GeoSpecModelExporter.capabilities (property)
|
|
315
246
|
GeoSpecModelExporter.export (method)
|
|
316
247
|
GeoSpecModelExporter.revision (method) — The sources an export of `file` would read now, without…
|
|
317
248
|
GeoSpecModelExporter.close (method) — Releases what the exporter created for one scope
|
|
318
|
-
GeoSpecModelExportRequest (type) [lines
|
|
249
|
+
GeoSpecModelExportRequest (type) [lines 1036-1080] [8 members] — One export request
|
|
319
250
|
GeoSpecModelExportRequest.file (property) — Entry file, as a path from the project root
|
|
320
251
|
GeoSpecModelExportRequest.projectPath (property) — Absolute project root the exporter resolves `file` and its imports…
|
|
321
252
|
GeoSpecModelExportRequest.format (property)
|
|
@@ -324,12 +255,12 @@ GeoSpecModelExportRequest (type) [lines 1513-1557] [8 members] — One export re
|
|
|
324
255
|
GeoSpecModelExportRequest.region (property) — Millimetre crop box
|
|
325
256
|
GeoSpecModelExportRequest.inline (property) — Source text keyed by project-relative path
|
|
326
257
|
GeoSpecModelExportRequest.signal (property)
|
|
327
|
-
GeoSpecModelFormat (type) [lines
|
|
328
|
-
GeoSpecModelLoader (type) [lines
|
|
329
|
-
ManagedGeoSpecModelLoader (type) [lines
|
|
258
|
+
GeoSpecModelFormat (type) [lines 1082-1083] — Geometry formats accepted by {@link import ('./load-model.js').loadModel}
|
|
259
|
+
GeoSpecModelLoader (type) [lines 1085-1086] — Function shape used by GeoSpec runners to provide model loading…
|
|
260
|
+
ManagedGeoSpecModelLoader (type) [lines 1088-1094] [1 members] — A configured loader whose admissions can be released with its…
|
|
330
261
|
ManagedGeoSpecModelLoader.dispose (method)
|
|
331
|
-
GeoSpecConsumedSources (type) [lines
|
|
332
|
-
LoadModelCodeOptions (type) [lines
|
|
262
|
+
GeoSpecConsumedSources (type) [lines 1096-1100] — The source files one export read, each with its SHA-256…
|
|
263
|
+
LoadModelCodeOptions (type) [lines 1102-1174] [12 members] — Inline code-CAD model load options
|
|
333
264
|
LoadModelCodeOptions.code (property) — Source files keyed by project-relative path
|
|
334
265
|
LoadModelCodeOptions.file (property) — Entry path to render from {@link code }
|
|
335
266
|
LoadModelCodeOptions.rootDir (property) — Not accepted
|
|
@@ -342,7 +273,7 @@ LoadModelCodeOptions (type) [lines 1579-1651] [12 members] — Inline code-CAD m
|
|
|
342
273
|
LoadModelCodeOptions.meshAngularToleranceDegrees (property) — Angular tolerance in degrees used while meshing exact BRep evidence
|
|
343
274
|
LoadModelCodeOptions.workUnitLimit (property) — Default work-unit budget for every claim on this subject
|
|
344
275
|
LoadModelCodeOptions.region (property) — Axis-aligned millimetre box the exporter crops the model to before…
|
|
345
|
-
LoadModelFileOptions (type) [lines
|
|
276
|
+
LoadModelFileOptions (type) [lines 1176-1250] [11 members] — Filesystem-backed model load options
|
|
346
277
|
LoadModelFileOptions.file (property) — Model file to render, as a path from the project…
|
|
347
278
|
LoadModelFileOptions.rootDir (property) — Project-relative folder `file` resolves in, for a suite that loads…
|
|
348
279
|
LoadModelFileOptions.projectPath (property) — Absolute project root passed to the exporter
|
|
@@ -354,7 +285,7 @@ LoadModelFileOptions (type) [lines 1653-1727] [11 members] — Filesystem-backed
|
|
|
354
285
|
LoadModelFileOptions.meshAngularToleranceDegrees (property) — Angular tolerance in degrees used while meshing exact BRep evidence
|
|
355
286
|
LoadModelFileOptions.workUnitLimit (property) — Default work-unit budget for every claim on this subject
|
|
356
287
|
LoadModelFileOptions.region (property) — Axis-aligned millimetre box the exporter crops the model to before…
|
|
357
|
-
LoadModelOptions (type) [lines
|
|
288
|
+
LoadModelOptions (type) [lines 1252-1277] [8 members] — Options accepted by {@link import ('./load-model.js').loadModel}
|
|
358
289
|
LoadModelOptions.rootDir (property) — Project-relative folder `file` resolves in, for a suite that loads…
|
|
359
290
|
LoadModelOptions.format (property) — Geometry format to export
|
|
360
291
|
LoadModelOptions.parameters (property) — Explicit parameters passed to the exporter
|
|
@@ -363,7 +294,7 @@ LoadModelOptions (type) [lines 1729-1754] [8 members] — Options accepted by {@
|
|
|
363
294
|
LoadModelOptions.meshLinearTolerance (property) — Linear tolerance used while meshing exact BRep evidence
|
|
364
295
|
LoadModelOptions.meshAngularToleranceDegrees (property) — Angular tolerance in degrees used while meshing exact BRep evidence
|
|
365
296
|
LoadModelOptions.workUnitLimit (property) — Default work-unit budget for every claim on this subject
|
|
366
|
-
LoadModelSourceOptions (type) [lines
|
|
297
|
+
LoadModelSourceOptions (type) [lines 1279-1359] [13 members] — Direct geometry-source model load options
|
|
367
298
|
LoadModelSourceOptions.source (property) — Geometry bytes, path, browser file/blob, or in-memory mesh buffer
|
|
368
299
|
LoadModelSourceOptions.resources (property) — Named external resources consumed alongside the direct geometry bytes
|
|
369
300
|
LoadModelSourceOptions.rootDir (property) — Project-relative folder a path `source` and each resource path resolve…
|