From 4f02e34af044847403932d04c5241f044d8abdd9 Mon Sep 17 00:00:00 2001 From: Russell Bicknell Date: Fri, 6 Aug 2021 11:50:22 -0700 Subject: [PATCH] Merge `lit-html-1.x` into `security` (#2039) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Remove trusted types mention from changelog * Adds rendering test composing parts and slots (#1077) * Adds rendering test composing parts and slots Tests if #1046 has been addressed in the webcomponents polyfills. * Update @webcomponents/webcomponentsjs dev dependency to required version * Add 1.2.0 release notes (#1104) * Don't disturb imperatively added classes in classMap (#1112) Fix #1111 Revert classMap to previous implementation, but don't use classList or className. * Fix lint errors (#1116) * Prepare 1.2.0-pre.1 release (#1117) * Link changelog issue (#1118) * Prepare 1.2.0 release (#1128) * Use downlevel-dts, test compile in TS 3.4 (#1129) * Use downlevel-dts, test compile in TS 3.4 Related to https://github.com/Polymer/lit-element/issues/935 Haven't heard anything about this being a problem for lit-html, but better to be ahead of any issues. * Lock typescript version at ~3.8 Prevent breakage for devs coming into the lit-html repo and doing `npm install` after a new breaking release of TypeScript * Prepare 1.2.1 release (#1130) * Update new task template * Update lint dependencies (#1099) * Update a broken link in the documentation. (#1138) * Doc usability improvements. Fixes #1133. (#1147) * Doc usability improvements. Fixes #1133. * Address feedback. * Fix typo. (#1152) * Update issue templates added label * Restore trusted types (#1153) * Revert "Revert "Add trusted types support to lit html (#970)"" This reverts commit cedf4b3d4f77077fd763101ba710abaf919c35a8. It also refactors the trusted types tests so that they can run with native trusted types enabled. Also revamp the trusted types tests, and run all lit-html tests with trusted types enabled on browsers that support it natively. * Adds the correct path information to the release notes links for #1163 (#1164) * Updating links in guide to point to correct guides https://lit-html.polymer-project.org/guide/release-notes * Didn't need to actually go down a level in the dir * Update docs/guide/release-notes/1.2.0.md Co-authored-by: Arthur Evans * Update docs/guide/release-notes/1.2.0.md Co-authored-by: Arthur Evans * Update docs/guide/release-notes/1.2.0.md Co-authored-by: Arthur Evans Co-authored-by: Arthur Evans * Correct copyright dates. (#1171) * Add BLM banner (#1172) * docs: fixed small error (#1180) Since this is just a typo fix in the README, I'm going to go ahead and merge it. * Fix api doc (#1178) * Fixes #1177. * Fix links. * Remove unneeded typedoc tags. * Redirect old API URLs. * Update firefox and edge logo (#1161) Co-authored-by: Arthur Evans * Update dev server recommendations (#1059) * Update dev server recommendations Came here to fix a broken link, got more than I bargained for. Other recommendations (like linting and IDE plugins) may need updating as well. * Address comments. * Fix typos, add notes on attribute prefixes. (#933) * Fix typos, add notes on attribute prefixes. * More detail on strings param * Run format. * Make IDE plugins links, change recommendation (#956) * Make IDE plugins links, change recommendation I think we should recommend runem.lit-plugin because it supports type checking of template bindings, and it seems to be robust (I ran it across all of google3 and there were only a small number of issues, which I'm sending out PRs for) * Address feedback, update linting suggestion. * Address more feedback. Co-authored-by: Arthur Evans * Bump lodash from 4.17.15 to 4.17.19 in /docs (#1183) Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Arthur Evans * Set type in package.json to "module" (#1146) This would let Node >=13 to load lit-html as ES modules without any other bundling tools. Move check-version-tracker file extension to .cjs to continue loading it as cjs. * Fix trusted types tests. (#1193) * Fix trusted types tests. Also fix support for trusted types in the unsafeSVG directive. Have to handle IE separately in unsafe-svg because apparently the svgElement.innerHTML setter is a no op in IE :/ * chore(shady-render): export shadyTemplateFactory (#1135) * Update changelog for 1.3.0 * Prepare 1.3.0-pre.1 release * Add 1.3.0 release notes (#1202) * Prep 1.3.0 release * Update package lock * Remove ts3.4 typings before generating * Update Tachometer * Add chromedriver as a devDependency * Fix flaky async-append test * Update build docs (#1201) * Revised build docs WIP. * Update build docs. Fixes #1148. * Address feedback. * Address feedback, fix typos. * Create lit-html-next-bug-report.md (#1308) * Create lit-html-next-bug-report.md Add issue template * Apply suggestions from code review * Create lit-element@next-major issue template (#1320) * Create lit-element-next-bug-report.md * Apply suggestions from code review * Fix issue template formatting * Fix styleMap example (#1433) Example function has a body, hence it doesn't have an implicit return value. An explicit return value is needed for the example to make sense. * Fix typos in 03-styling-templates.md (#1511) * Fix typos in 06-template-reference.md (#1562) * [lit-html] add Lit 2 directive syntax to Lit 1 (#1654) Co-authored-by: Kevin Schaaf Co-authored-by: Russell Bicknell * Small fixes to 1.3.0 release ntoes (#1719) * Correct evasive typo (#1725) change "current" -> "currently" * Small tweaks to forward-compat directives (#1748) * [lit-html] Update Twitter handle from polymer -> buildWithLit (#1779) * Add version banner, landing page redirect. (#1786) * [lit-html] Prepare v1.4.0 release (#1809) * build: add lit 2 directive files for publish (#1841) * Prepare lit-html 1.4.1 release (#1849) * Update social media links. (#1813) * [lit-html] Add `PropertyPart` to directives forward-compat file. (#1869) * Add `PropertyPart` to directives forward-compat file. * Test that `PartInfo`s provided to directives have the correct `.type`. * Use better names in templates used to test PartInfo. * Remove unnecessary constructor. * format * `lit-html-1.x`: Run tests on GitHub actions (#1967) * Copy test workflow from main branch. * Update test workflows to work with the lit-html-1.x branch. * Run local tests in XVFB * Update `actions/setup-node` and node version. * Remove 'benchmarks.yml' reference in comments. * Delete `.travis.yml` and `travis-bench.sh`. * Initial attempt at porting the benchmarks to a GitHub action. * Update tachometer. * Copy benchmarks workflow from main branch. * Update benchmark workflow to work with the lit-html-1.x branch. * Fix node_modules key. * Update to `actions/setup-node@v2`. * Use `git+https` protocol to avoid SSH which doesn't seem to work. * Move tachometer config to an external file. * Fix benchmark names in report action. * Update chromedriver. * Update URLs and references in tachometer.json . * Update ref in tachometer.json . * Update badge in README.md . * Remove `report-id` field from Tachometer reporter step. * Upstream cl/376929825: Fix compilation issues with TypeScript 4.3. (#1940) * `lit-html-1.x`: Replace local type declarations for polyfill APIs with those imported from the polyfills. (#2017) * Temporarily add local tarball based off of the `ts-externs` branch in webcomponents/polyfills. * Use the polyfill tarball package. * Remove local polyfill type declarations and reference those from the polyfill package instead. * format * Update webcomponentsjs tarball. * Replace local polyfills tarball with `@webcomponents/webcomponentsjs@^2.6.0`. Co-authored-by: Justin Fagnani Co-authored-by: Steve Orvell Co-authored-by: Abraham Williams <4braham@gmail.com> Co-authored-by: Peter Burns Co-authored-by: Abdón Rodríguez Davila Co-authored-by: Lukas Papay Co-authored-by: Arthur Evans Co-authored-by: nicolejadeyee Co-authored-by: Paul Kinlan Co-authored-by: 0xflotus <0xflotus@gmail.com> Co-authored-by: Felix Schulze Sindern <47390169+FelixSchuSi@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: vikerman Co-authored-by: Manuel Martín Co-authored-by: tikotus Co-authored-by: Nicolás Font Co-authored-by: Vadim Filimonov Co-authored-by: Elliott Marquez Co-authored-by: Kevin Schaaf Co-authored-by: Todd Pressley Co-authored-by: Elliott Marquez --- docs/_includes/version-banner.html | 4 ++-- package-lock.json | 15 ++++++++------- package.json | 2 +- src/env.d.ts | 20 -------------------- src/lib/dom.ts | 7 +------ src/lib/shady-render.ts | 3 ++- tsconfig.json | 1 + 7 files changed, 15 insertions(+), 37 deletions(-) delete mode 100644 src/env.d.ts diff --git a/docs/_includes/version-banner.html b/docs/_includes/version-banner.html index b2ef196837..1c9d52eb27 100644 --- a/docs/_includes/version-banner.html +++ b/docs/_includes/version-banner.html @@ -2,6 +2,6 @@

lit-html is now part of the Lit library–see the new site at lit.dev. - This site documents lit-html 1.0, not the latest version. + This site documents lit-html 1.0, no longer the current version.

- + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 1fc8eac3bb..694ff014cf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,6 +5,7 @@ "requires": true, "packages": { "": { + "name": "lit-html", "version": "1.4.1", "license": "BSD-3-Clause", "devDependencies": { @@ -14,7 +15,7 @@ "@typescript-eslint/eslint-plugin": "^2.26.0", "@typescript-eslint/parser": "^2.26.0", "@webcomponents/shadycss": "^1.8.0", - "@webcomponents/webcomponentsjs": "^2.4.2", + "@webcomponents/webcomponentsjs": "^2.6.0", "chai": "^4.1.2", "chromedriver": "^91.0.1", "clang-format": "~1.2.4", @@ -1379,9 +1380,9 @@ "dev": true }, "node_modules/@webcomponents/webcomponentsjs": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@webcomponents/webcomponentsjs/-/webcomponentsjs-2.4.3.tgz", - "integrity": "sha512-cV4+sAmshf8ysU2USutrSRYQkJzEYKHsRCGa0CkMElGpG5747VHtkfsW3NdVIBV/m2MDKXTDydT4lkrysH7IFA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@webcomponents/webcomponentsjs/-/webcomponentsjs-2.6.0.tgz", + "integrity": "sha512-Moog+Smx3ORTbWwuPqoclr+uvfLnciVd6wdCaVscHPrxbmQ/IJKm3wbB7hpzJtXWjAq2l/6QMlO85aZiOdtv5Q==", "dev": true }, "node_modules/accepts": { @@ -17010,9 +17011,9 @@ "dev": true }, "@webcomponents/webcomponentsjs": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@webcomponents/webcomponentsjs/-/webcomponentsjs-2.4.3.tgz", - "integrity": "sha512-cV4+sAmshf8ysU2USutrSRYQkJzEYKHsRCGa0CkMElGpG5747VHtkfsW3NdVIBV/m2MDKXTDydT4lkrysH7IFA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@webcomponents/webcomponentsjs/-/webcomponentsjs-2.6.0.tgz", + "integrity": "sha512-Moog+Smx3ORTbWwuPqoclr+uvfLnciVd6wdCaVscHPrxbmQ/IJKm3wbB7hpzJtXWjAq2l/6QMlO85aZiOdtv5Q==", "dev": true }, "accepts": { diff --git a/package.json b/package.json index 7ba21e61bc..9a1687e02e 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ "@typescript-eslint/eslint-plugin": "^2.26.0", "@typescript-eslint/parser": "^2.26.0", "@webcomponents/shadycss": "^1.8.0", - "@webcomponents/webcomponentsjs": "^2.4.2", + "@webcomponents/webcomponentsjs": "^2.6.0", "chai": "^4.1.2", "chromedriver": "^91.0.1", "clang-format": "~1.2.4", diff --git a/src/env.d.ts b/src/env.d.ts deleted file mode 100644 index b2cfd84bc2..0000000000 --- a/src/env.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -interface ShadyCSS { - nativeCss: boolean; - nativeShadow: boolean; - styleElement(host: Element, overrideProps?: {[key: string]: string}): void; - prepareTemplateDom(template: Element, elementName: string): void; - prepareTemplateStyles( - template: Element, elementName: string, typeExtension?: string): void; - ScopingShim: undefined|{ - prepareAdoptedCssText(cssTextArray: string[], elementName: string): void; - }; -} - -interface ShadyDOM { - inUse: boolean; -} - -interface Window { - ShadyCSS?: ShadyCSS; - ShadyDOM?: ShadyDOM; -} diff --git a/src/lib/dom.ts b/src/lib/dom.ts index 5862f83c25..f986c8bc33 100644 --- a/src/lib/dom.ts +++ b/src/lib/dom.ts @@ -12,17 +12,12 @@ * http://polymer.github.io/PATENTS.txt */ -interface MaybePolyfilledCe extends CustomElementRegistry { - readonly polyfillWrapFlushCallback?: object; -} - /** * True if the custom elements polyfill is in use. */ export const isCEPolyfill = typeof window !== 'undefined' && window.customElements != null && - (window.customElements as MaybePolyfilledCe).polyfillWrapFlushCallback !== - undefined; + window.customElements.polyfillWrapFlushCallback !== undefined; /** * Reparents nodes, starting from `start` (inclusive) to `end` (exclusive), diff --git a/src/lib/shady-render.ts b/src/lib/shady-render.ts index 8ab1d449f3..97ef022d6b 100644 --- a/src/lib/shady-render.ts +++ b/src/lib/shady-render.ts @@ -311,6 +311,7 @@ export const render = // so we leave it up to the user to call `ShadyCSS.styleElement` // for dynamic changes. if (!hasRendered && needsScoping) { - window.ShadyCSS!.styleElement((container as ShadowRoot).host); + window.ShadyCSS!.styleElement( + (container as ShadowRoot).host as HTMLElement); } }; diff --git a/tsconfig.json b/tsconfig.json index b1c49fb2c6..4775e3544a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -18,6 +18,7 @@ "noImplicitThis": true }, "include": [ + "node_modules/@webcomponents/webcomponentsjs/webcomponents-bundle.d.ts", "src/**/*.ts" ], "exclude": []