Skip to content

Releases: ayronforge/haversack

Haversack 0.12.0

Choose a tag to compare

@pltoledo pltoledo released this 22 Oct 14:45
fab5f00

Presigned PUT URLs can now bind the upload size (#11).

BlobPresignPutInput takes an optional contentLength. When set, the R2 and S3 presigners sign Content-Length together with Content-Type, so the storage rejects an upload whose body has any other size. Browsers send Content-Length automatically. A length that is not a non-negative safe integer fails with BlobPresignError.

Without contentLength, URLs are signed exactly as before.

Haversack 0.11.0

Choose a tag to compare

@pltoledo pltoledo released this 02 Oct 13:39
cc49ab4

Supports Effect 4.0.0 stable (#10). The effect peer range is now ^4.0.0.

Internal imports moved from effect/unstable/{http,persistence,workflow} to the stable effect/{http,persistence,workflow} subpaths.

Breaking: Effect release candidates (4.0.0-rc.*) are no longer supported. Upgrade to effect@^4.0.0.

Haversack 0.10.0

Choose a tag to compare

@pltoledo pltoledo released this 19 Sep 14:09

Supports Effect 4.0.0-rc.116 (#9). The effect peer range now starts at 4.0.0-rc.116.

EndpointUrlFromString and PhoneNumberFromString use SchemaGetter.transformEffect, since rc.116 removed transformOrFail.

Breaking: RateLimiterRpc.tokenBucket returns [remaining, elapsedMillis] instead of number, matching the new RateLimiterStore.tokenBucket contract. Durable Objects implementing RateLimiterRpc must return the time elapsed in the current refill interval (0 when the bucket was at capacity before consuming).

Haversack 0.9.0

Choose a tag to compare

@pltoledo pltoledo released this 01 Sep 20:53

PostHogAnalytics, FeatureFlags and AnalyticsEngine now read Effect's FetchHttpClient.Fetch reference instead of the global fetch. Default is unchanged (globalThis.fetch); hosts and tests inject a transport with Effect.provideService(FetchHttpClient.Fetch, fn) (#8).

v0.8.0

Choose a tag to compare

@pltoledo pltoledo released this 01 Sep 15:57

Adds presignGet to the BlobPresigner contract, implemented for R2 and S3 with the same SigV4 query signing as presignPut. (#7)

v0.7.0

Choose a tag to compare

@pltoledo pltoledo released this 15 Aug 00:55
9c083eb

Canonical schema contracts for Brazilian identifiers and reusable string values.

  • CNPJ now stores and encodes canonical digits, exposes normalization, accepts masked validation input, and carries a brand.
  • EndpointUrl now separates canonical domain values from EndpointUrlFromString input parsing.
  • UUID validation now enforces RFC version and variant bits, normalizes input to lowercase, and carries a brand.
  • Slug values are now branded.

These public type and encoding changes intentionally ship as a minor release.

Haversack 0.6.0

Choose a tag to compare

@pltoledo pltoledo released this 15 Aug 00:28
f1616f8

Contact value contracts

  • Canonical E.164 phone numbers with explicit country parsing, formatting, inspection, and input masking.
  • Branded canonical CEP and CPF values with presentation-only formatters.
  • Stricter branded email parsing with explicit local-part normalization policy.
  • Injectable ViaCEP lookup with Effect cancellation/timeouts, sparse response support, and precise privacy-safe errors.

Haversack 0.5.0

Choose a tag to compare

@pltoledo pltoledo released this 13 Aug 13:01

Full Changelog: v0.4.0...v0.5.0

v0.4.0

Choose a tag to compare

@pltoledo pltoledo released this 12 Aug 21:13
5d54a6b

What's Changed

  • Release Haversack 0.4.0 with Effect 4 RC by @pltoledo in #4

Full Changelog: v0.3.0...v0.4.0

v0.3.0

Choose a tag to compare

@pltoledo pltoledo released this 10 Aug 17:40
c7ab72c

What's Changed

  • Add strict analytics, bounded blob reads, and React feature flags by @pltoledo in #3

Full Changelog: v0.2.0...v0.3.0