From 381544ca0d0ea549c73c09f06798f5278b9371dd Mon Sep 17 00:00:00 2001 From: Dan Freeman Date: Wed, 23 Mar 2022 15:14:37 +0100 Subject: [PATCH 1/2] Avoid triggering ember.js#19392 with synthetic attr nodes --- .../lib/htmlbars-plugin/index.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/ember-css-modules/lib/htmlbars-plugin/index.js b/packages/ember-css-modules/lib/htmlbars-plugin/index.js index e6f03c1..783ca34 100644 --- a/packages/ember-css-modules/lib/htmlbars-plugin/index.js +++ b/packages/ember-css-modules/lib/htmlbars-plugin/index.js @@ -142,9 +142,18 @@ module.exports = class ClassTransformPlugin { utils.pushAll(parts, this.localToPath(localClassAttr.value)); this.divide(parts, 'text'); - node.attributes.unshift( - this.builders.attr('class', this.builders.concat(parts)) - ); + + let newClassAttr = this.builders.attr('class', this.builders.concat(parts)); + node.attributes.unshift(newClassAttr); + + // In new-enough versions of Ember (>= 3.25 or so), we need to create a + // fake good-enough `loc` whose content will start with `class=` to avoid + // triggering https://github.com/emberjs/ember.js/issues/19392 + if (typeof localClassAttr.loc.slice === 'function') { + newClassAttr.loc = localClassAttr.loc.slice({ + skipStart: 'local-'.length, + }); + } } localToPath(node) { From b3aa7e7ca84d641409bae334b6cd478e0eab16e5 Mon Sep 17 00:00:00 2001 From: Dan Freeman Date: Wed, 23 Mar 2022 15:17:45 +0100 Subject: [PATCH 2/2] Prep release notes --- CHANGELOG.md | 5 +++++ packages/ember-css-modules/package.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4fd7e08..822d7df 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,11 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). ## Unreleased +## 2.0.1 (March 23, 2022) + +### Fixed +- Avoid triggering (ember.js#19392)[https://github.com/emberjs/ember.js/issues/19392] when we produce synthetic class `AttrNode`s. + ## 2.0.0 (November 22, 2021) This major release of Ember CSS Modules primarily removes support for deprecated patterns and updates our minimum support for other elements of the ecosystem. diff --git a/packages/ember-css-modules/package.json b/packages/ember-css-modules/package.json index 9bd4898..3486e16 100644 --- a/packages/ember-css-modules/package.json +++ b/packages/ember-css-modules/package.json @@ -1,6 +1,6 @@ { "name": "ember-css-modules", - "version": "2.0.0", + "version": "2.0.1", "description": "CSS Modules for ambitious applications", "scripts": { "build": "ember build --environment=production",