@field/cascade 0.5.2 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +91 -0
- package/dist/assets/{CodeEditor-BHej8kM9.js → CodeEditor-DkpxJFRs.js} +7 -7
- package/dist/assets/{CodePanel-CT3eirK8.js → CodePanel-O31InnQg.js} +2 -2
- package/dist/assets/{CustomNodeDialog-BG0m7_Rv.js → CustomNodeDialog-Cn3sT-M2.js} +1 -1
- package/dist/assets/{ProjectSettings-BxoLWJG6.js → ProjectSettings-BzEmtsYc.js} +2 -2
- package/dist/assets/{SettingsDialog-r9PzZ22z.js → SettingsDialog-zWct7T8j.js} +1 -1
- package/dist/assets/{VersionHistoryDialog-B6zUV6Dy.js → VersionHistoryDialog-DCe6XQcO.js} +1 -1
- package/dist/assets/{core-wwx5881P.js → core-DwPLRUzm.js} +2 -2
- package/dist/assets/{cssMode-DY5T2Or0.js → cssMode-C1bjAPYj.js} +1 -1
- package/dist/assets/definitions-Dh-oZAA5.js +1 -0
- package/dist/assets/{editor.api-mkORHEMm.js → editor.api-wr5lElMs.js} +1 -1
- package/dist/assets/{freemarker2-CIWlk0sw.js → freemarker2-DQHTaSDb.js} +1 -1
- package/dist/assets/geo-DLRNQg57.js +1 -0
- package/dist/assets/{handlebars-t4jbj3Br.js → handlebars-DOiZYGbp.js} +1 -1
- package/dist/assets/{html-Ctx7UOlY.js → html-B1u4CWMY.js} +1 -1
- package/dist/assets/{htmlMode-BKNZxVw7.js → htmlMode-YNKJ8Hq1.js} +1 -1
- package/dist/assets/{image-BCBFz0gD.js → image-DmeeS7Tl.js} +3 -3
- package/dist/assets/{index-CeqTfMbr.js → index-C35beBgj.js} +36 -36
- package/dist/assets/{javascript-Da_TJBzH.js → javascript-DVujl3OI.js} +1 -1
- package/dist/assets/{jsonMode-Ftt5d1nV.js → jsonMode-Bp_Ujoae.js} +1 -1
- package/dist/assets/{liquid-D5kWYG57.js → liquid-C0wcDX3X.js} +1 -1
- package/dist/assets/{lspLanguageFeatures-B-93LC_L.js → lspLanguageFeatures-C2XtKL_c.js} +1 -1
- package/dist/assets/math-D0hLbnR2.js +1 -0
- package/dist/assets/{mdx-DGT3C_qs.js → mdx-Dz4Hb1ZN.js} +1 -1
- package/dist/assets/pop-OaOoEUwk.js +1 -0
- package/dist/assets/{python-Bz3Eew5S.js → python-Y4eTKlAp.js} +1 -1
- package/dist/assets/{razor-CFDdKpKI.js → razor-BmpH_QN_.js} +1 -1
- package/dist/assets/{tsMode-BaCINWBI.js → tsMode-mOQwydYU.js} +1 -1
- package/dist/assets/{typescript-BoOWspVs.js → typescript-8ItD7azm.js} +1 -1
- package/dist/assets/{workers-dSWyDxsQ.js → workers-xhda_-L2.js} +1 -1
- package/dist/assets/{xml-eFi1_vYt.js → xml-ydyZSquM.js} +1 -1
- package/dist/assets/{yaml-a7xrJHxm.js → yaml-BQjpTmW5.js} +1 -1
- package/dist/cli/index.js +11259 -19155
- package/dist/index.html +1 -1
- package/dist/runtime/builtins/geo/definitions.d.ts +153 -0
- package/dist/runtime/builtins/geo/definitions.js +75 -0
- package/dist/runtime/builtins/geo/index.d.ts +3 -1
- package/dist/runtime/builtins/geo/index.js +4 -1
- package/dist/runtime/builtins/index.js +2 -0
- package/dist/runtime/builtins/math/definitions.d.ts +845 -0
- package/dist/runtime/builtins/math/definitions.js +285 -0
- package/dist/runtime/builtins/math/index.d.ts +2 -0
- package/dist/runtime/builtins/math/index.js +2 -0
- package/dist/runtime/geometry/index.d.ts +1 -0
- package/dist/runtime/geometry/index.js +1 -0
- package/dist/runtime/geometry/rects.d.ts +88 -0
- package/dist/runtime/geometry/rects.js +68 -0
- package/doc/NODE_REFERENCE.md +141 -1
- package/package.json +1 -1
- package/dist/assets/definitions-BgCvRHyR.js +0 -1
- package/dist/assets/geo-CIxgs0oE.js +0 -1
- package/dist/assets/pop-BJGN5Ac4.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,97 @@
|
|
|
2
2
|
|
|
3
3
|
Notable changes to Cascade. Newest first.
|
|
4
4
|
|
|
5
|
+
## 0.7.0 — 2026-09-12
|
|
6
|
+
|
|
7
|
+
### Removed
|
|
8
|
+
|
|
9
|
+
- **The dynamic executor.** `cascade run` had a second execution path: when the
|
|
10
|
+
deterministic runtime declined a graph, the CLI built a Studio `Graph`,
|
|
11
|
+
compiled each node with esbuild and cooked it through the class-based
|
|
12
|
+
scheduler. About 160 lines of second implementation, with behaviour that
|
|
13
|
+
differed from the one every other surface uses.
|
|
14
|
+
|
|
15
|
+
Removed on a measurement: all nine graphs across six sketches either render
|
|
16
|
+
through the deterministic runtime or are refused by the runtime's own
|
|
17
|
+
`runtime/preflight-environment` for declaring `runsOn: 'browser'`. 72 nodes,
|
|
18
|
+
none dynamic. A graph with no definition-v1 nodes is now refused by name
|
|
19
|
+
rather than run through the other path.
|
|
20
|
+
|
|
21
|
+
Nothing in the CLI reads the class registry any more, so
|
|
22
|
+
`registerStandardNodes()` is gone from the runner and the bundled CLI no
|
|
23
|
+
longer carries the class-based standard library.
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
|
|
27
|
+
- **`cascade.geo.FromRects`** and `rectsToGeometry`. `rects` was a declared core
|
|
28
|
+
type with no consumers; it converts to geometry as one closed polygon per
|
|
29
|
+
rect, with the tag preserved as a primitive string attribute. Raster rects
|
|
30
|
+
need their frame height, and the node refuses rather than guessing it — an
|
|
31
|
+
unflipped raster rect renders mirrored and plausible.
|
|
32
|
+
- **A `files` capability on the CLI host.** Declaring `files` previously got a
|
|
33
|
+
node `undefined`, which pushed authors towards an undeclared `node:fs` import
|
|
34
|
+
— the invisible version of the thing declarations exist to make visible.
|
|
35
|
+
Reads resolve inside the project, writes are confined to `.cascade-cache/`.
|
|
36
|
+
- **Stage output reaches the operator.** A stage could log and nobody could read
|
|
37
|
+
it: `stderr` was consulted only on failure and `stdout` only for its last
|
|
38
|
+
line. `cascade run --verbose` now forwards both.
|
|
39
|
+
- **`--strict`** fails `validate` and `check` when a node names a module with no
|
|
40
|
+
file, and the summary says how many were unresolved rather than reporting
|
|
41
|
+
"passed" directly under the list.
|
|
42
|
+
|
|
43
|
+
### Fixed
|
|
44
|
+
|
|
45
|
+
- **Scrubbing no longer kills the cook it is waiting for.** The timeline marked
|
|
46
|
+
time-dependent nodes dirty *before* its own already-cooking guard, so every
|
|
47
|
+
scrubbed frame aborted the cook in flight and then deferred — a graph slower
|
|
48
|
+
than the mouse never finished one. The coalescing that was already there is
|
|
49
|
+
what makes leaving the running cook alone correct.
|
|
50
|
+
- **A cancelled cook is no longer logged as a failure.** The node's state was
|
|
51
|
+
already right; only the console was lying, several times a second, which
|
|
52
|
+
buries the real failure when one arrives.
|
|
53
|
+
|
|
54
|
+
## 0.6.0 — 2026-09-10
|
|
55
|
+
|
|
56
|
+
All three items from a user's first day with the npm package.
|
|
57
|
+
|
|
58
|
+
### Added
|
|
59
|
+
|
|
60
|
+
- **`cascade.math.*` — arithmetic as nodes.** `Binary` (add, subtract,
|
|
61
|
+
multiply, divide, power, modulo, min, max, atan2), `Unary` (abs, negate,
|
|
62
|
+
floor, ceil, round, sqrt, sign, sin, cos, tan, asin, acos, exp, log, radians,
|
|
63
|
+
degrees, fract), `Clamp`, `Mix` and `Compare`.
|
|
64
|
+
|
|
65
|
+
The maths already existed as expressions — every parameter field takes
|
|
66
|
+
`sin($T)`, `clamp`, `lerp`, `fit`. So these are not a second way to compute
|
|
67
|
+
but a second way to *place* a computation: an expression is private to one
|
|
68
|
+
parameter, and a value you want to look at, reuse, or wire into three places
|
|
69
|
+
has to be a node.
|
|
70
|
+
|
|
71
|
+
Grouped with an operation to pick rather than one node per operation, which
|
|
72
|
+
is Houdini's form and would be about twenty-five nodes. Inputs are `any` and
|
|
73
|
+
every operation is component-wise with scalar broadcast, so multiplying a
|
|
74
|
+
`vec2` by a scalar and adding two `vec3`s both work. There is no `Fit`:
|
|
75
|
+
`cascade.core.Remap` already is one.
|
|
76
|
+
|
|
77
|
+
Division and modulo by zero give zero rather than `Infinity`, and `sqrt` of a
|
|
78
|
+
negative gives zero rather than `NaN` — a non-finite number flows into a
|
|
79
|
+
position and the geometry silently vanishes, which is a blank frame with no
|
|
80
|
+
error anywhere.
|
|
81
|
+
|
|
82
|
+
- **Connections can be made backwards.** A drag or click may begin on an
|
|
83
|
+
unconnected input pin and end on an output; the endpoints are normalised
|
|
84
|
+
before the connection is built, so variadic fan-in, the `Input` node a subnet
|
|
85
|
+
auto-creates, and multi-select fan-in all behave identically in either
|
|
86
|
+
direction. A *connected* input keeps the disconnect gesture.
|
|
87
|
+
|
|
88
|
+
### Fixed
|
|
89
|
+
|
|
90
|
+
- **The node search panel no longer closes when the search narrows to one
|
|
91
|
+
result.** The pointer had not left it — the panel shrank away from underneath
|
|
92
|
+
a stationary cursor, which fired `mouseleave` at the exact moment you were
|
|
93
|
+
about to click the thing you searched for. Leave-to-close now applies only
|
|
94
|
+
while the panel is being browsed by hover, not once you have typed.
|
|
95
|
+
|
|
5
96
|
## 0.5.2 — 2026-09-10
|
|
6
97
|
|
|
7
98
|
### Fixed
|