diff --git a/.changeset/fuzzy-stingrays-count.md b/.changeset/fuzzy-stingrays-count.md new file mode 100644 index 000000000..65c8feb94 --- /dev/null +++ b/.changeset/fuzzy-stingrays-count.md @@ -0,0 +1,9 @@ +--- +'astro': patch +--- + +Fix a host of compiler bugs, including: +- CSS scoping of `*` character inside of `calc()` expressions +- Encoding of double quotes inside of quoted attributes +- Expressions inside of `` elements + diff --git a/packages/astro/package.json b/packages/astro/package.json index 5da882f53..06176c8ca 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -53,7 +53,7 @@ "test": "mocha --parallel --timeout 15000" }, "dependencies": { - "@astrojs/compiler": "^0.3.3", + "@astrojs/compiler": "^0.3.4", "@astrojs/language-server": "^0.7.16", "@astrojs/markdown-remark": "^0.4.0", "@astrojs/prism": "0.3.0", diff --git a/packages/astro/test/errors.test.js b/packages/astro/test/errors.test.js index 067cc94f1..207c67a51 100644 --- a/packages/astro/test/errors.test.js +++ b/packages/astro/test/errors.test.js @@ -21,7 +21,8 @@ before(async () => { describe('Error display', () => { describe('Astro', () => { - it('syntax error', async () => { + // This test is redundant w/ runtime error since it no longer produces an Astro syntax error + it.skip('syntax error', async () => { if (isMacOS) return; const res = await fixture.fetch('/astro-syntax-error'); @@ -31,6 +32,7 @@ describe('Error display', () => { // error message includes "unrecoverable error" const body = await res.text(); + console.log(res.body); expect(body).to.include('unrecoverable error'); }); diff --git a/packages/astro/test/fixtures/wasm-panic-error/src/pages/index.astro b/packages/astro/test/fixtures/wasm-panic-error/src/pages/index.astro deleted file mode 100644 index fb2847eed..000000000 --- a/packages/astro/test/fixtures/wasm-panic-error/src/pages/index.astro +++ /dev/null @@ -1,3 +0,0 @@ - - -{[...new Array(20)].map(() => (
))} diff --git a/packages/astro/test/wasm-panic-error.test.js b/packages/astro/test/wasm-panic-error.test.js deleted file mode 100644 index 4ee1e3479..000000000 --- a/packages/astro/test/wasm-panic-error.test.js +++ /dev/null @@ -1,26 +0,0 @@ -import { expect } from 'chai'; -import cheerio from 'cheerio'; -import { loadFixture } from './test-utils.js'; - -let fixture; - -before(async () => { - fixture = await loadFixture({ projectRoot: './fixtures/wasm-panic-error' }); -}); - -describe('compiler error', () => { - it('throws helpful error', async () => { - try { - await fixture.build(); - - // should err - expect(true).to.be.false; - } catch (err) { - // test err thrown contains filepath - expect(err.stack).to.include('wasm-panic-error/src/pages/index.astro'); - - // test err thrown contains "unrecoverable error" - expect(err.message || err.toString()).to.include('Uh oh, the Astro compiler encountered an unrecoverable error!'); - } - }); -}); diff --git a/yarn.lock b/yarn.lock index ad25102a1..135a4e066 100644 --- a/yarn.lock +++ b/yarn.lock @@ -106,10 +106,10 @@ "@algolia/logger-common" "4.11.0" "@algolia/requester-common" "4.11.0" -"@astrojs/compiler@^0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@astrojs/compiler/-/compiler-0.3.3.tgz#78f4c9938a9e89fbaaf1bb02cd5c797a6d06d667" - integrity sha512-iARMoTw6RgpLZyHoJPE34FSVphMZDGJ6U7FCqSErGfRzLhL6YY4o/UT4woqZ5yjcPLnoArNEx/KQfAYB07Stsw== +"@astrojs/compiler@^0.3.4": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@astrojs/compiler/-/compiler-0.3.4.tgz#63f2b4245342806f2b8bde7897ba637b08bda0cc" + integrity sha512-MWbXeBe6BJT613XmbBESsd4/hiVkOWKIE9/uZo7YJ/1smMoFNwrwOIvhfPGbjVxX1gnMvA6yFJW5rzLcPxi8Gw== dependencies: typescript "^4.3.5" @@ -1379,6 +1379,21 @@ globby "^11.0.0" read-yaml-file "^1.1.0" +"@nanostores/preact@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@nanostores/preact/-/preact-0.1.2.tgz#cbf2f46a9d9a87b97724be59af24d69bc7b11f10" + integrity sha512-99ngXNZvrma2rGUspzVFxSiXurip8d35Y3FtqcmRqto2MIhMjjwoBHPIaWRFyNTHoiHenyaFioef2BlXA+KVEg== + +"@nanostores/react@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@nanostores/react/-/react-0.1.2.tgz#5313435164ef6633ac19c710ea25f57213e89ed1" + integrity sha512-H7IFdtCa0SiSoTt6GwOGwtNScLzyZEoafarGZwBicqk5WrtVaPpKMse93v8RcxvRB6MFW6mozQxvaXFfVlpG0g== + +"@nanostores/vue@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@nanostores/vue/-/vue-0.4.1.tgz#38ce674819713aaf1144e9c911161777d4b42627" + integrity sha512-b0nNzKD2fTi8R48Jrlg6j+/InPH9r1HOl0iOnpNmL84BOxl+jQnbgyzNlf+3VWAEQSD955hJ/HTl/N1bjJSz5g== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -7179,10 +7194,10 @@ nanoid@^3.1.30: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.30.tgz#63f93cc548d2a113dc5dfbc63bfa09e2b9b64362" integrity sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ== -nanostores@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/nanostores/-/nanostores-0.3.3.tgz#3f6a858d3e2700c70c7942301380550f66a8e9ee" - integrity sha512-+MemxV/HzzTPJQCvzEmwfIFMAIcDEiod37A5F1ERyKQqtm6hbEfuNokfmJfecYM2gjunlPdPHA5lQ9cwHHSYNg== +nanostores@^0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/nanostores/-/nanostores-0.5.6.tgz#d744c511ccbe417a6cdcdde6892196ef7df59cc0" + integrity sha512-GGqPf5sjDF5QM9jVhLpO+LMeTO0IqsCrQxvfUcBXezG/563ZcflCKFFYCokn5lSOv1he5awNHII9qQVqcQQceA== natural-compare@^1.4.0: version "1.4.0"