From a97e0b9483181b63f7457061783753b700a015cd Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Fri, 3 Nov 2023 19:37:52 +0800 Subject: [PATCH] Update glimmer to v0.85.8 (#15577) --- package.json | 4 +- scripts/build/config.js | 55 ++++++++---- .../html-void-elements.evaluate.js | 6 +- src/language-handlebars/parser-glimmer.js | 7 +- src/language-handlebars/utils.js | 3 +- .../visitor-keys.evaluate.js | 4 +- tsconfig.json | 1 + yarn.lock | 84 +++++++++++-------- 8 files changed, 97 insertions(+), 67 deletions(-) diff --git a/package.json b/package.json index 9cc20efdb..8f8a92032 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "@babel/code-frame": "7.22.13", "@babel/parser": "7.23.0", "@babel/types": "7.23.0", - "@glimmer/syntax": "0.84.3", + "@glimmer/syntax": "0.85.8", "@iarna/toml": "2.2.5", "@prettier/is-es5-identifier-name": "0.2.0", "@prettier/parse-srcset": "3.1.0", @@ -109,7 +109,7 @@ }, "devDependencies": { "@babel/generator": "7.22.15", - "@glimmer/reference": "0.84.3", + "@glimmer/reference": "0.85.8", "@types/estree": "1.0.2", "@types/file-entry-cache": "5.0.2", "@types/find-cache-dir": "3.2.1", diff --git a/scripts/build/config.js b/scripts/build/config.js index 624a40653..2b3943993 100644 --- a/scripts/build/config.js +++ b/scripts/build/config.js @@ -387,22 +387,47 @@ const pluginFiles = [ { input: "src/plugins/glimmer.js", replaceModule: [ - // See comment in `src/language-handlebars/parser-glimmer.js` file + ...["@glimmer/util", "@glimmer/wire-format", "@glimmer/syntax"].map( + (packageName) => ({ + module: getPackageFile(`${packageName}/dist/prod/index.js`), + path: getPackageFile(`${packageName}/dist/dev/index.js`), + }), + ), { - module: getPackageFile( - "@glimmer/syntax/dist/commonjs/es2017/lib/parser/tokenizer-event-handlers.js", - ), - path: getPackageFile( - "@glimmer/syntax/dist/modules/es2017/lib/parser/tokenizer-event-handlers.js", - ), - }, - // This passed to plugins, our plugin don't need access to the options - { - module: getPackageFile( - "@glimmer/syntax/dist/modules/es2017/lib/parser/tokenizer-event-handlers.js", - ), - process: (text) => - text.replace(/\nconst syntax = \{.*?\n\};/su, "\nconst syntax = {};"), + module: getPackageFile("@glimmer/syntax/dist/dev/index.js"), + process(text) { + // This passed to plugins, our plugin don't need access to the options + text = text.replace(/(?<=\nconst syntax = )\{.*?\n\}(?=;\n)/su, "{}"); + + text = text.replaceAll( + /\nclass \S+ extends node\(.*?\).*?\{.*?\n\}/gsu, + "", + ); + + text = text.replaceAll( + /\nvar api\S* = \/\*#__PURE__\*\/Object\.freeze\(\{.*?\n\}\);/gsu, + "", + ); + + text = text.replace( + "const ARGUMENT_RESOLUTION = ", + "const ARGUMENT_RESOLUTION = undefined &&", + ); + + text = text.replace( + "const HTML_RESOLUTION = ", + "const HTML_RESOLUTION = undefined &&", + ); + + text = text.replace( + "const LOCAL_DEBUG = ", + "const LOCAL_DEBUG = false &&", + ); + + text = text.replace(/(?<=\n)export .*?;/, "export { preprocess };"); + + return text; + }, }, { module: getPackageFile("@handlebars/parser/dist/esm/index.js"), diff --git a/src/language-handlebars/html-void-elements.evaluate.js b/src/language-handlebars/html-void-elements.evaluate.js index ce6441796..c8116fef9 100644 --- a/src/language-handlebars/html-void-elements.evaluate.js +++ b/src/language-handlebars/html-void-elements.evaluate.js @@ -1,3 +1,5 @@ -import { voidMap } from "@glimmer/syntax/dist/commonjs/es2017/lib/generation/printer.js"; +import { getVoidTags } from "@glimmer/syntax"; -export default Object.keys(voidMap); +const htmlVoidElements = new Set(getVoidTags()); + +export default htmlVoidElements; diff --git a/src/language-handlebars/parser-glimmer.js b/src/language-handlebars/parser-glimmer.js index d3b0ce73c..6e7454b2d 100644 --- a/src/language-handlebars/parser-glimmer.js +++ b/src/language-handlebars/parser-glimmer.js @@ -1,9 +1,4 @@ -/* - The module version `@glimmer/syntax/dist/modules/es2017/lib/parser/tokenizer-event-handlers.js` - can't be be imported since it use `.js` extension, and don't have `type: module` in `package.json` - We'll replace it during build - */ -import { preprocess as parseGlimmer } from "@glimmer/syntax/dist/commonjs/es2017/lib/parser/tokenizer-event-handlers.js"; +import { preprocess as parseGlimmer } from "@glimmer/syntax"; import { LinesAndColumns } from "lines-and-columns"; import createError from "../common/parser-create-error.js"; import { locStart, locEnd } from "./loc.js"; diff --git a/src/language-handlebars/utils.js b/src/language-handlebars/utils.js index 6ba026582..f88b8deb2 100644 --- a/src/language-handlebars/utils.js +++ b/src/language-handlebars/utils.js @@ -13,10 +13,9 @@ function isGlimmerComponent(node) { ); } -const voidTags = new Set(htmlVoidElements); // https://github.com/glimmerjs/glimmer-vm/blob/ec5648f3895b9ab8d085523be001553746221449/packages/%40glimmer/syntax/lib/generation/printer.ts#L44-L46 function isVoidTag(tag) { - return voidTags.has(tag.toLowerCase()) && !isUppercase(tag[0]); + return htmlVoidElements.has(tag.toLowerCase()) && !isUppercase(tag[0]); } function isVoidElement(node) { diff --git a/src/language-handlebars/visitor-keys.evaluate.js b/src/language-handlebars/visitor-keys.evaluate.js index bb1a38867..0c86c8e91 100644 --- a/src/language-handlebars/visitor-keys.evaluate.js +++ b/src/language-handlebars/visitor-keys.evaluate.js @@ -1,3 +1 @@ -import visitorKeys from "@glimmer/syntax/dist/commonjs/es2017/lib/v1/visitor-keys.js"; - -export default visitorKeys.default; +export { visitorKeys as default } from "@glimmer/syntax"; diff --git a/tsconfig.json b/tsconfig.json index 7a82dae0d..14163568d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,6 +7,7 @@ "module": "NodeNext", "resolveJsonModule": true, "strict": true, + "skipLibCheck": true, // TBD it is desired to enabled strict type checking at some point: "noImplicitAny": false, "strictNullChecks": false, diff --git a/yarn.lock b/yarn.lock index b26865868..fc779dcd7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1099,67 +1099,77 @@ __metadata: languageName: node linkType: hard -"@glimmer/global-context@npm:0.84.3": - version: 0.84.3 - resolution: "@glimmer/global-context@npm:0.84.3" - dependencies: - "@glimmer/env": ^0.1.7 - checksum: 89e699acfa1f23fe8ce8fd48455897781dfd935b7d1ef97d8d268ee38456a69a2ce09bcb18c250f17cb019a16cf0f2e4fdd5b178f9ddc233b42f1cc7e5c85157 +"@glimmer/global-context@npm:^0.85.8": + version: 0.85.8 + resolution: "@glimmer/global-context@npm:0.85.8" + checksum: 523d303827fc64f3cd7eb1188cec1c7e7f0aec6dab2d618ef2cdfc436bffcb08289adecf8d35104bd0dfd67d265e80a4a5bd524efb31586e84744b75af1a69ab languageName: node linkType: hard -"@glimmer/interfaces@npm:0.84.3": - version: 0.84.3 - resolution: "@glimmer/interfaces@npm:0.84.3" +"@glimmer/interfaces@npm:^0.85.8": + version: 0.85.8 + resolution: "@glimmer/interfaces@npm:0.85.8" dependencies: "@simple-dom/interface": ^1.4.0 - checksum: f6a6757a2fc6fc0a8aeb9c1ce4acaec7adf03b31130c9c3149265a401d8fc4773dfb1ff6a567fc008c669cb3c5b9a94f505c68298f72f283d03a46bc0dcb1121 + checksum: 7d18b10290e2c55263d7b872e620924e95f6a5659b000cf0d1cb1c9239c8d2612b54820b60c122035e27c9298243fa31c04a7a254f5da3a494fb1a0daf4111ea languageName: node linkType: hard -"@glimmer/reference@npm:0.84.3": - version: 0.84.3 - resolution: "@glimmer/reference@npm:0.84.3" +"@glimmer/reference@npm:0.85.8": + version: 0.85.8 + resolution: "@glimmer/reference@npm:0.85.8" dependencies: "@glimmer/env": ^0.1.7 - "@glimmer/global-context": 0.84.3 - "@glimmer/interfaces": 0.84.3 - "@glimmer/util": 0.84.3 - "@glimmer/validator": 0.84.3 - checksum: 856456c1211cb1c1ddc5c48b8aea924f1b1f19625be1984f2bc7147af49d89c70e3f356bf7d299aa519ee53a21ca4c7371277be14218c37d9206e4cac2f05b9e + "@glimmer/global-context": ^0.85.8 + "@glimmer/interfaces": ^0.85.8 + "@glimmer/util": ^0.85.8 + "@glimmer/validator": ^0.85.8 + checksum: fd674e5823d93d33d59dbbb0f1521e36a0a33ffe0429e50e0bdaa521000539700b9de2ad9d7b45b6ada50726a4ac53ce4704f634b1609249c84d485b2a820144 languageName: node linkType: hard -"@glimmer/syntax@npm:0.84.3": - version: 0.84.3 - resolution: "@glimmer/syntax@npm:0.84.3" +"@glimmer/syntax@npm:0.85.8": + version: 0.85.8 + resolution: "@glimmer/syntax@npm:0.85.8" dependencies: - "@glimmer/interfaces": 0.84.3 - "@glimmer/util": 0.84.3 + "@glimmer/interfaces": ^0.85.8 + "@glimmer/util": ^0.85.8 + "@glimmer/wire-format": ^0.85.8 "@handlebars/parser": ~2.0.0 simple-html-tokenizer: ^0.5.11 - checksum: afadea62f1c54735df723120a94f4da3cb663d762be1c9b130f8d22584ccc93a037198b60759706d3cf0d3658268170eae687dfdc7cb21e5c0a9af7005ebc727 + checksum: d5b6ec950ea82d501c14d7a90dda1de3c727a6dd34080ba197ebe342ec0934f1cbb1e02b28df9ac96ad27f2758470e666f39fdbad4d1ed288bc71ead87ffd9f5 languageName: node linkType: hard -"@glimmer/util@npm:0.84.3": - version: 0.84.3 - resolution: "@glimmer/util@npm:0.84.3" +"@glimmer/util@npm:^0.85.8": + version: 0.85.8 + resolution: "@glimmer/util@npm:0.85.8" dependencies: "@glimmer/env": 0.1.7 - "@glimmer/interfaces": 0.84.3 - "@simple-dom/interface": ^1.4.0 - checksum: d0f8d461a7653a113e630ee45aa57e4efbc33f78ab7b7ce12bdaa699b3513df93a7ffba96b1863883fafe566b650dfb01c4122f79207d6267d1655255b9baa4a + "@glimmer/interfaces": ^0.85.8 + checksum: abfefdc8c03e885e670591edbeae1929cbb1e4cc2838fd89d550338a31b6cf4b1801c13a5e64f1a8654118fb18e9cff3b1f37aaf51f551c767f2138f9dc2333f languageName: node linkType: hard -"@glimmer/validator@npm:0.84.3": - version: 0.84.3 - resolution: "@glimmer/validator@npm:0.84.3" +"@glimmer/validator@npm:^0.85.8": + version: 0.85.8 + resolution: "@glimmer/validator@npm:0.85.8" dependencies: "@glimmer/env": ^0.1.7 - "@glimmer/global-context": 0.84.3 - checksum: 58ac3c49a1a601de8271cfcc0f27415fa2388283ae90dd2b4f785f5ab44fa12506c8b32cfc6c74d69bb60ca27745b4f6707fec07a8dff78f2d9da9f9aecc2afa + "@glimmer/global-context": ^0.85.8 + "@glimmer/interfaces": ^0.85.8 + "@glimmer/util": ^0.85.8 + checksum: a5e4aa8c36b1a9a6527a52fe8db3c1dc4d2c8f09f0aa16d0cbfc9eb5edf82087f664ab6b3db26ed444ded27775b18dd9d139af4570f92e7cd11cde64bdca90b6 + languageName: node + linkType: hard + +"@glimmer/wire-format@npm:^0.85.8": + version: 0.85.8 + resolution: "@glimmer/wire-format@npm:0.85.8" + dependencies: + "@glimmer/interfaces": ^0.85.8 + "@glimmer/util": ^0.85.8 + checksum: 6eb0bf96f1c14595b65c323a4ac5c0c1956616b7c6cd5b1f86cce5b0d007a387325914a40e437c5e123c1ad310255d4642efc23f80dc30c1a7021787cbdf3378 languageName: node linkType: hard @@ -7128,8 +7138,8 @@ __metadata: "@babel/generator": 7.22.15 "@babel/parser": 7.23.0 "@babel/types": 7.23.0 - "@glimmer/reference": 0.84.3 - "@glimmer/syntax": 0.84.3 + "@glimmer/reference": 0.85.8 + "@glimmer/syntax": 0.85.8 "@iarna/toml": 2.2.5 "@prettier/is-es5-identifier-name": 0.2.0 "@prettier/parse-srcset": 3.1.0