Noodle 0.9.2 adds noodle.time to pre-request and post-response scripts. It
covers the small date operations that API workflows need: a timestamp in a
header, an expiration window, a local display time, or an elapsed difference.
This release also adds Intel Mac binaries and strengthens macOS artifact
verification before publication.
One instant, several representations
Capture the current time once when related fields must agree:
scripts: pre: |- const now = noodle.time.now(); const expiresAt = noodle.time.add(now, 15, "minutes"); noodle.request.headers.set("X-Timestamp", noodle.time.iso(now)); noodle.request.headers.set("X-Expires-At", noodle.time.iso(expiresAt)); noodle.run.set("expiresAt", expiresAt); post: |- const remaining = noodle.time.diff(noodle.run.get("expiresAt"), noodle.time.now(), "seconds"); console.info("Expiration window remaining (seconds):", remaining);now() returns Unix milliseconds, unix() returns seconds, and iso() returns
a UTC ISO timestamp. fromUnix() converts seconds back to milliseconds.
parse() accepts date-only ISO strings at midnight UTC or timestamps with an
explicit offset, including expanded ISO years.
The pre script applies generated values directly to the current request. The shared RunScope value is then available to post and later requests in the same collection run. Invalid time inputs use the existing script validation and rollback behavior.
Format locally, calculate elapsed time
Formatting defaults to UTC. Pass a named timezone when the API or display needs another representation:
const local = noodle.time.format("2026-01-15T12:00:00Z", "YYYY-MM-DD HH:mm:ss Z", { timeZone: "America/Santiago",});// 2026-01-15 09:00:00 -03:00Patterns cover year, month, day, time, milliseconds, and UTC offsets. Named
timezone aliases are accepted, and historical offsets retain seconds when
needed. Use iso() when you want a UTC value that parse() can read back.
add(), subtract(), and diff() work with elapsed durations from milliseconds
through weeks. A day always means 24 hours, including across daylight-saving
changes. They do not perform local-calendar month or year arithmetic.
JavaScript Date and the existing random timestamp generators remain available.
The Inline Scripting guide
introduces the helpers, the Script Cookbook
includes timestamp and expiration recipes, and the
API reference lists every
method, token, and limit. The noodle-use skill now documents the same contract;
noodle-dev identifies the implementation and regression checks.
macOS releases for both architectures
Prebuilt macOS binaries now cover Apple Silicon and Intel Macs. The installer and update metadata select the matching architecture alongside the existing Linux builds.
macOS binaries are ad-hoc signed and strictly verified before testing and checksum generation. The release workflow then downloads the draft artifacts and checks their checksum, signature, version, and script sandbox before publication. This prevents invalid embedded signatures from causing macOS to kill Noodle after installation or an update. Failed validation blocks publication, update metadata, and Homebrew notifications; reruns cannot replace published release assets.
CI and release handling also use pinned actions, narrower permissions, and checks for the exact four-binary release set. Manual CI runs provide test builds with checksums and build identity for verification before a release.
See Installation for supported platforms and update instructions.
