Skip to content

Releases: joelmoss/proscenium

v0.24.1

28 May 15:56

Choose a tag to compare

What's Changed

Features

  • Add block form to Proscenium::CssModule::Transformer#class_names that yields (transformed_name, side_load_path) per input, exposing the side-load path that was previously discarded

Bug Fixes

  • Remove module name from CSS class names generated by the CSS Modules transformer

Chores

  • Update Ruby dependencies
  • Refresh Appraisal lockfiles

CI

  • Parallelize Rails matrix across OS and Rails version so all appraisals run concurrently; enable setup-go caching, add concurrency cancellation, trigger on pull_request, use .ruby-version for rubocop

v0.24.0

24 Feb 19:20

Choose a tag to compare

What's Changed

Features

  • Add __filename and __dirname support (#36)
  • Change esbuild log level to warning by default
  • Log warnings for unresolved CSS mixin paths

Performance

  • Cache config JSON to skip redundant unmarshalling on FFI calls
  • Hoist regex compilation, remove reflect, use strings.Builder
  • Use Prepend instead of os.ReadFile to eliminate double-reads in dirname plugin
  • Cache i18n final result with mtime-based invalidation

Bug Fixes

  • Ensure consistent class name hashing for CSS modules (#46)
  • Resolve nested CSS mixin relative paths against defining file

Chores

  • Update Ruby and Go dependencies
  • Update Ruby to 3.4.8

v0.23.0

03 Feb 13:52

Choose a tag to compare

What's Changed

Features

  • Adjust minification conditions based on debug and environment settings
  • Add CSP nonce support to injected style tags (#59 by @mediazard)

Bug Fixes

  • Fix #57: correctly resolve @rubygems paths from aliases
  • Fix: Returned cached import too early in Importer.import

New Contributors

Full Changelog: v0.22.7...v0.23.0

v0.22.0

07 Nov 13:51

Choose a tag to compare

  • FEAT: Support Rails 8.1
  • FEAT: Pre-compilation task using rails assets:precompile, and configurable with the precompile config option.
  • FEAT: Assets in /vendor directory are now served exactly as-is, without building or pre-compilation. And are served with long cache lifetime.
  • FIX: Improved exceptions, taking full advantage of Rails error pages.
  • CHORE: Removed support for cache query string. use pre-compilation instead.
  • CHORE: Removed server-side import map support. Use aliases config instead.
  • CHORE: Update esbuild to 0.25.12

Full Changelog: v0.21.4...v0.22.0

v0.21.4

23 Oct 17:03

Choose a tag to compare

  • FIX: Ensure the query string used as the cache version, is passed down to nested imports, which avoids mismatched query strings.

Full Changelog: v0.21.3...v0.21.4

v0.21.3

18 Oct 12:02

Choose a tag to compare

  • FIX: Fixes a few cases of incorrect alias resolution.

Full Changelog: v0.21.0...v0.21.3

v0.21.0

18 Oct 12:01

Choose a tag to compare

  • NEW: Introduce alias mapping via the aliases config option. This is a simple way to map one import to another in a similar way to import maps, but it is far simpler. Import maps include features that are unnecessary when used on the server. Support for import maps will be removed in v0.22.0

Full Changelog: v0.20.0...v0.21.0

v0.20.0

06 Oct 15:44

Choose a tag to compare

What's Changed?

  • BREAKING(i18n): Keys are converted to camelCase, as per the JavaScript convention.
  • FIX: Serve asset chunks with long cache lifetime, as they are always unique anyway
  • FEAT: Added own-keys NPM module replacement.
  • CHORE: updated all dependencies.

Full Changelog: v0.19.0...v0.20.0

v0.19.0

08 Sep 22:36

Choose a tag to compare

This one is a big release that has been nearly a year in the making. But it's been heavily used in a production Rails app during development. Spit, polish, and docs are next!

What's Changed

  • NEW: Extracted phlex support to new proscenium-phlex gem
  • NEW: Extracted view_component support to new proscenium-view_component gem
  • NEW: logging config to enable/disable logging (default: true)
  • NEW: ensure_loaded config (default: :raise), allowing you to :log or :raise on side loaded assets that have not been included.
  • NEW: cache_query_string config option to append a query string to asset URL's for use with caching.
  • NEW: Experimental package registry via the @rubygems scope.
  • NEW: Automatically use native Web APIs instead of npm packages to reduce http requests.
  • NEW: Support unbundle import attribute as an alternative to the unbundle: prefix, to unbundle an import.
  • NEW: Import only CSS module names with the cssmodulenames import attribute.
  • NEW: Supports Rails 8
  • FIX: Only the first CSS module is now loaded in the ancestry, in addition to regular CSS files.

...plus loads more improvements and fixes under the hood!

Full Changelog: v0.18.0...v0.19.0

v0.18.0

15 Nov 17:40

Choose a tag to compare

What's Changed

  • Side loaded assets are now prepended to the response body when the Phlex fragment header is present.
  • Replace Dry gems with Literal.

Full Changelog: v0.17.0...v0.18.0