Add rollup-plugin-minify-html-template-literals to node_modules

R=jacktfranklin@chromium.org

Bug: 1213034
Change-Id: I5da8225f60b53870a1c67d6b5d02a464c08f4eb2
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2917088
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
diff --git a/node_modules/minify-html-literals/CHANGELOG.md b/node_modules/minify-html-literals/CHANGELOG.md
new file mode 100644
index 0000000..9d6bba9
--- /dev/null
+++ b/node_modules/minify-html-literals/CHANGELOG.md
@@ -0,0 +1,167 @@
+# Changelog
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+### [1.3.5](https://github.com/asyncLiz/minify-html-literals/compare/v1.3.4...v1.3.5) (2021-03-09)
+
+
+### Bug Fixes
+
+* typing build error ([9571152](https://github.com/asyncLiz/minify-html-literals/commit/9571152724e542d329aea6e79bf609a67e20bec6))
+
+### [1.3.4](https://github.com/asyncLiz/minify-html-literals/compare/v1.3.3...v1.3.4) (2021-03-09)
+
+
+### Bug Fixes
+
+* build errors ([ee4d596](https://github.com/asyncLiz/minify-html-literals/commit/ee4d596c2797cea335af2c43ba0368ec3d6fa518))
+
+### [1.3.3](https://github.com/asyncLiz/minify-html-literals/compare/v1.3.2...v1.3.3) (2021-03-09)
+
+
+### Bug Fixes
+
+* html attribute placeholders throwing split error [#28](https://github.com/asyncLiz/minify-html-literals/issues/28) ([b1e14dc](https://github.com/asyncLiz/minify-html-literals/commit/b1e14dca1a5ed9e6599193f474992729953f885d))
+* minify multiline svg elements ([9f37d2d](https://github.com/asyncLiz/minify-html-literals/commit/9f37d2d6442a6533a90c1728f80aeb78d6060d9b))
+* parse errors with JS comments in HTML attributes with no quotes ([0f5a842](https://github.com/asyncLiz/minify-html-literals/commit/0f5a842c54f3514c72c79eaf6749f15770818550))
+* spaces in pseudo classes (like ::part) are not removed ([85526fc](https://github.com/asyncLiz/minify-html-literals/commit/85526fcb889e288e1adbb5c7ff9feca41d45acff)), closes [#26](https://github.com/asyncLiz/minify-html-literals/issues/26)
+
+### [1.3.2](https://github.com/asyncLiz/minify-html-literals/compare/v1.3.1...v1.3.2) (2020-08-18)
+
+
+### Bug Fixes
+
+* css tagged templates not respecting semicolons ([#22](https://github.com/asyncLiz/minify-html-literals/issues/22)) ([3651a0b](https://github.com/asyncLiz/minify-html-literals/commit/3651a0bc30167deccdfb21b4177827072df16cb5))
+
+### [1.3.1](https://github.com/asyncLiz/minify-html-literals/compare/v1.3.0...v1.3.1) (2020-06-10)
+
+
+### Bug Fixes
+
+* don't remove attribute quotes by default. Fixes [#12](https://github.com/asyncLiz/minify-html-literals/issues/12). ([#13](https://github.com/asyncLiz/minify-html-literals/issues/13)) ([e18ae65](https://github.com/asyncLiz/minify-html-literals/commit/e18ae65e202802cb2fd793089f76de3af54fec6f))
+
+## [1.3.0](https://github.com/asyncLiz/minify-html-literals/compare/v1.2.2...v1.3.0) (2020-02-08)
+
+### Features
+
+- minify svg-tagged templates [#9](https://github.com/asyncLiz/minify-html-literals/issues/9) ([62da810](https://github.com/asyncLiz/minify-html-literals/commit/62da810894a1f2c3705783ebb1a4264cf8989ee4))
+
+### Bug Fixes
+
+- update to html-minifier v4.0.0 ([6ddfd10](https://github.com/asyncLiz/minify-html-literals/commit/6ddfd104307347b7a66739b3c4e418bb6686e94e))
+- update to parse-literals v1.2.0 ([bba4c7d](https://github.com/asyncLiz/minify-html-literals/commit/bba4c7d12b9d92635ed1d72d00d69086a45d8edb))
+
+<a name="1.2.2"></a>
+
+## [1.2.2](https://github.com/asyncLiz/minify-html-literals/compare/v1.2.1...v1.2.2) (2019-02-13)
+
+### Bug Fixes
+
+- failure to minify templates prefixed with comments ([8805f69](https://github.com/asyncLiz/minify-html-literals/commit/8805f69))
+
+<a name="1.2.1"></a>
+
+## [1.2.1](https://github.com/asyncLiz/minify-html-literals/compare/v1.2.0...v1.2.1) (2019-02-13)
+
+### Bug Fixes
+
+- remove source files from package ([b53c052](https://github.com/asyncLiz/minify-html-literals/commit/b53c052))
+
+<a name="1.2.0"></a>
+
+# [1.2.0](https://github.com/asyncLiz/minify-html-literals/compare/v1.1.2...v1.2.0) (2019-02-13)
+
+### Features
+
+- add ability to minify css-tagged templates ([d37a037](https://github.com/asyncLiz/minify-html-literals/commit/d37a037)), closes [#3](https://github.com/asyncLiz/minify-html-literals/issues/3)
+
+<a name="1.1.2"></a>
+
+## [1.1.2](https://github.com/asyncLiz/minify-html-literals/compare/v1.1.1...v1.1.2) (2018-11-29)
+
+### Bug Fixes
+
+- update to html-minifier 3.5.21 ([11a9f6b](https://github.com/asyncLiz/minify-html-literals/commit/11a9f6b))
+- **strategy:** error when minifying inline CSS style placeholders [#1](https://github.com/asyncLiz/minify-html-literals/issues/1) ([2226ae2](https://github.com/asyncLiz/minify-html-literals/commit/2226ae2))
+
+<a name="1.1.1"></a>
+
+## [1.1.1](https://github.com/asyncLiz/minify-html-literals/compare/v1.1.0...v1.1.1) (2018-10-25)
+
+### Bug Fixes
+
+- fail to minify with <style> placeholders ([64b9b6f](https://github.com/asyncLiz/minify-html-literals/commit/64b9b6f))
+
+<a name="1.1.0"></a>
+
+# [1.1.0](https://github.com/asyncLiz/minify-html-literals/compare/v1.0.7...v1.1.0) (2018-10-24)
+
+### Bug Fixes
+
+- do not fail on empty template literals ([b74973a](https://github.com/asyncLiz/minify-html-literals/commit/b74973a))
+- update parse-literals to 1.1.0 ([5ba1e99](https://github.com/asyncLiz/minify-html-literals/commit/5ba1e99))
+
+### Features
+
+- allow partial minify options to make it easier to customize ([f007988](https://github.com/asyncLiz/minify-html-literals/commit/f007988))
+- do not require options or filename ([6649ac9](https://github.com/asyncLiz/minify-html-literals/commit/6649ac9))
+
+<a name="1.0.7"></a>
+
+## [1.0.7](https://github.com/asyncLiz/minify-html-literals/compare/v1.0.6...v1.0.7) (2018-10-05)
+
+### Bug Fixes
+
+- do not remove tag whitespace ([89f362a](https://github.com/asyncLiz/minify-html-literals/commit/89f362a))
+
+<a name="1.0.6"></a>
+
+## [1.0.6](https://github.com/asyncLiz/minify-html-literals/compare/v1.0.5...v1.0.6) (2018-10-03)
+
+### Bug Fixes
+
+- do not collapse boolean attributes for Polymer binding syntax ([80df154](https://github.com/asyncLiz/minify-html-literals/commit/80df154))
+
+<a name="1.0.5"></a>
+
+## [1.0.5](https://github.com/asyncLiz/minify-html-literals/compare/v1.0.4...v1.0.5) (2018-09-27)
+
+### Bug Fixes
+
+- update parse-literals to fix escaped character minifying ([93922c8](https://github.com/asyncLiz/minify-html-literals/commit/93922c8))
+
+<a name="1.0.4"></a>
+
+## [1.0.4](https://github.com/asyncLiz/minify-html-literals/compare/v1.0.3...v1.0.4) (2018-09-19)
+
+### Bug Fixes
+
+- do not sort attributes or class names ([b72a5c4](https://github.com/asyncLiz/minify-html-literals/commit/b72a5c4))
+
+<a name="1.0.3"></a>
+
+## [1.0.3](https://github.com/asyncLiz/minify-html-literals/compare/v1.0.2...v1.0.3) (2018-09-19)
+
+### Bug Fixes
+
+- use hires sourcemaps by default ([7f132b2](https://github.com/asyncLiz/minify-html-literals/commit/7f132b2))
+
+<a name="1.0.2"></a>
+
+## [1.0.2](https://github.com/asyncLiz/minify-html-literals/compare/v1.0.1...v1.0.2) (2018-09-13)
+
+### Bug Fixes
+
+- remove unused import ([e37a43a](https://github.com/asyncLiz/minify-html-literals/commit/e37a43a))
+
+<a name="1.0.1"></a>
+
+## 1.0.1 (2018-07-24)
+
+### Bug Fixes
+
+- option type errors ([b917607](https://github.com/asyncLiz/minify-html-literals/commit/b917607))
+
+### Features
+
+- initial release ([cadf7c2](https://github.com/asyncLiz/minify-html-literals/commit/cadf7c2))
diff --git a/node_modules/minify-html-literals/LICENSE.md b/node_modules/minify-html-literals/LICENSE.md
new file mode 100644
index 0000000..9eea402
--- /dev/null
+++ b/node_modules/minify-html-literals/LICENSE.md
@@ -0,0 +1,7 @@
+Copyright 2018 Elizabeth Mitchell
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/node_modules/minify-html-literals/README.md b/node_modules/minify-html-literals/README.md
new file mode 100644
index 0000000..b0de1da
--- /dev/null
+++ b/node_modules/minify-html-literals/README.md
@@ -0,0 +1,159 @@
+# minify-html-literals
+
+_Minify HTML markup inside JavaScript template literal strings._
+
+[![npm](https://img.shields.io/npm/v/minify-html-literals.svg)](https://www.npmjs.com/package/minify-html-literals)
+[![Build Status](https://travis-ci.com/asyncLiz/minify-html-literals.svg?branch=master)](https://travis-ci.com/asyncLiz/minify-html-literals)
+[![Coverage Status](https://coveralls.io/repos/github/asyncLiz/minify-html-literals/badge.svg?branch=master)](https://coveralls.io/github/asyncLiz/minify-html-literals?branch=master)
+
+## Why?
+
+Template literals are often used in JavaScript to write HTML and CSS markup (ex. [lit-html](https://www.npmjs.com/package/lit-html)). This library allows a developer to minify markup that is normally ignored by JavaScript minifiers.
+
+## Usage
+
+```js
+import { minifyHTMLLiterals } from 'minify-html-literals';
+// const minifyHTMLLiterals = require('minify-html-literals').minifyHTMLLiterals
+
+const result = minifyHTMLLiterals(
+  `function render(title, items) {
+    return html\`
+      <style>
+        .heading {
+          color: blue;
+        }
+      </style>
+      <h1 class="heading">\${title}</h1>
+      <ul>
+        \${items.map(item => {
+          return getHTML()\`
+            <li>\${item}</li>
+          \`;
+        })}
+      </ul>
+    \`;
+  }`,
+  {
+    fileName: 'render.js'
+  }
+);
+
+console.log(result.code);
+//  function render(title, items) {
+//    return html`<style>.heading{color:#00f}</style><h1 class=heading>${title}</h1><ul>${items.map(item => {
+//          return getHTML()`<li>${item}</li>`;
+//        })}</ul>`;
+//  }
+
+console.log(result.map);
+// {
+//   "version": 3,
+//   "file": "render.js.map",
+//   "sources": ["render.js"],
+//   "sourcesContent": [null],
+//   "names": [],
+//   "mappings": "AAAA;gBACgB,qDAMU,QAAQ,SAE1B;2BACmB,IACX,OAAO,KACb;WACC,KAEP;"
+// }
+```
+
+### ES5 Transpiling Warning
+
+Be sure to minify template literals _before_ transpiling to ES5. Otherwise, the API will not be able to find any template literal (`` `${}` ``) strings.
+
+## Supported Source Syntax
+
+- JavaScript
+- TypeScript
+
+## Options
+
+### Basic
+
+The following options are common to typical use cases.
+
+| Property                    | Type                                                                                         | Default                   | Description                                                                                                                                                               |
+| --------------------------- | -------------------------------------------------------------------------------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `fileName`                  | string                                                                                       |                           | _Required._ The name of the file, used for syntax parsing and source maps.                                                                                                |
+| `minifyOptions?`            | [html-minifier options](https://www.npmjs.com/package/html-minifier#options-quick-reference) | `defaultMinifyOptions`    | Defaults to production-ready minification.                                                                                                                                |
+| `minifyOptions?.minifyCSS?` | [clean-css options](https://www.npmjs.com/package/clean-css#constructor-options)             | `defaultMinifyCSSOptions` | Uses clean-css defaults.                                                                                                                                                  |
+| `shouldMinify?`             | function                                                                                     | `defaultShouldMinify`     | A function that determines whether or not an HTML template should be minified. Defaults to minify all tagged templates whose tag name contains "html" (case insensitive). |
+| `shouldMinifyCSS?`          | function                                                                                     | `defaultShouldMinifyCSS`  | A function that determines whether or not a CSS template should be minified. Defaults to minify all tagged templates whose tag name contains "css" (case insensitive).    |
+
+### Advanced
+
+All aspects of the API are exposed and customizable. The following options will not typically be used unless you need to change how a certain aspect of the API handles a use case.
+
+| Property                | Type                                                                      | Default                                                        | Description                                                                                                                                                |
+| ----------------------- | ------------------------------------------------------------------------- | -------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `generateSourceMap?`    | boolean or `(ms: MagicString, fileName: string) => SourceMap | undefined` | `defaultGenerateSourceMap`                                     | Set to `false` to disable source maps, or a custom function to control how source maps are generated from a `MagicString` instance.                        |
+| `strategy?`             | object                                                                    | `defaultStrategy`                                              | An object with methods defining how to minify HTML. The default strategy uses [html-minifier](https://www.npmjs.com/package/html-minifier).                |
+| `validate?`             | boolean or object                                                         | `defaultValidation`                                            | Set to `false` to disable strategy validation checks, or to a custom set of validation functions. This is only useful when implementing a custom strategy. |
+| `parseLiterals?`        | function                                                                  | [parse-literals](https://www.npmjs.com/package/parse-literals) | Override the function used to parse template literals from a source string.                                                                                |
+| `parseLiteralsOptions?` | object                                                                    |                                                                | Additional options to pass to `parseLiterals()`                                                                                                            |
+| `MagicString?`          | function                                                                  | [MagicString](https://www.npmjs.com/package/magic-string)      | Override the MagicString-like constructor to use for manipulating the source string and generating source maps.                                            |
+
+## Customization Examples
+
+### Minify non-tagged templates
+
+> This is particularly useful for libraries that define templates without using tags, such as Polymer's `<dom-module>`.
+
+```js
+import { minifyHTMLLiterals, defaultShouldMinify } from 'minify-html-literals';
+
+minifyHTMLLiterals(
+  `
+    template.innerHTML = \`
+      <dom-module id="custom-styles">
+        <style>
+          html {
+            --custom-color: blue;
+          }
+        </style>
+      </dom-module>
+    \`;
+  `,
+  {
+    fileName: 'render.js',
+    shouldMinify(template) {
+      return (
+        defaultShouldMinify(template) ||
+        template.parts.some(part => {
+          return part.text.includes('<dom-module>');
+        })
+      );
+    }
+  }
+);
+```
+
+### Do not minify CSS
+
+```js
+import { minifyHTMLLiterals, defaultMinifyOptions } from 'minify-html-literals';
+
+minifyHTMLLiterals(source, {
+  fileName: 'render.js',
+  minifyOptions: {
+    ...defaultMinifyOptions,
+    minifyCSS: false
+  },
+  shouldMinifyCSS: () => false
+});
+```
+
+### Modify generated SourceMap
+
+```js
+minifyHTMLLiterals(source, {
+  fileName: 'render.js',
+  generateSourceMap(ms, fileName) {
+    return ms.generateMap({
+      file: `${fileName}-converted.map`, // change file name
+      source: fileName,
+      includeContent: true // include source contents
+    });
+  }
+});
+```
diff --git a/node_modules/minify-html-literals/index.d.ts b/node_modules/minify-html-literals/index.d.ts
new file mode 100644
index 0000000..ac31a43
--- /dev/null
+++ b/node_modules/minify-html-literals/index.d.ts
@@ -0,0 +1,2 @@
+export * from './src/minifyHTMLLiterals';
+export * from './src/strategy';
diff --git a/node_modules/minify-html-literals/index.js b/node_modules/minify-html-literals/index.js
new file mode 100644
index 0000000..e29915e
--- /dev/null
+++ b/node_modules/minify-html-literals/index.js
@@ -0,0 +1,15 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+__exportStar(require("./src/minifyHTMLLiterals"), exports);
+__exportStar(require("./src/strategy"), exports);
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/minify-html-literals/index.js.map b/node_modules/minify-html-literals/index.js.map
new file mode 100644
index 0000000..35f68fa
--- /dev/null
+++ b/node_modules/minify-html-literals/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2DAAyC;AACzC,iDAA+B"}
\ No newline at end of file
diff --git a/node_modules/minify-html-literals/package.json b/node_modules/minify-html-literals/package.json
new file mode 100644
index 0000000..82aa86e
--- /dev/null
+++ b/node_modules/minify-html-literals/package.json
@@ -0,0 +1,85 @@
+{
+  "name": "minify-html-literals",
+  "version": "1.3.5",
+  "description": "Minify HTML template literal strings",
+  "main": "index.js",
+  "types": "index.d.ts",
+  "author": "Liz Mitchell <asyncliz@gmail.com>",
+  "license": "MIT",
+  "keywords": [
+    "minify",
+    "html",
+    "literal",
+    "literals",
+    "template",
+    "tagged",
+    "lit-html"
+  ],
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/asyncLiz/minify-html-literals.git"
+  },
+  "scripts": {
+    "clean": "tsc --build --clean && rimraf \"{.nyc_output/,coverage/}\"",
+    "prebuild": "npm run clean",
+    "build": "tsc",
+    "pretest": "npm run clean",
+    "test": "nyc mocha -r ts-node/register -r source-map-support/register test/*.ts",
+    "coveralls": "cat coverage/lcov.info | coveralls",
+    "lint": "prettier --write \"*.{js,ts,json,md}\" \"{src,test}/**/*\"",
+    "precommit": "lint-staged",
+    "release": "standard-version",
+    "prepublishOnly": "npm run build"
+  },
+  "lint-staged": {
+    "*.{js,ts,json,md}": [
+      "prettier --write",
+      "git add"
+    ]
+  },
+  "nyc": {
+    "extension": [
+      ".ts"
+    ],
+    "include": [
+      "index.ts",
+      "src/**/*.ts"
+    ],
+    "exclude": [
+      "**/*.d.ts"
+    ],
+    "reporter": [
+      "html",
+      "lcovonly",
+      "text-summary"
+    ],
+    "all": true
+  },
+  "dependencies": {
+    "@types/html-minifier": "^3.5.3",
+    "clean-css": "^4.2.1",
+    "html-minifier": "^4.0.0",
+    "magic-string": "^0.25.0",
+    "parse-literals": "^1.2.1"
+  },
+  "devDependencies": {
+    "@types/chai": "^4.1.4",
+    "@types/clean-css": "^4.2.0",
+    "@types/mocha": "^5.2.5",
+    "@types/node": "^14.14.32",
+    "@types/sinon": "^5.0.1",
+    "chai": "^4.1.2",
+    "coveralls": "^3.0.2",
+    "husky": "^0.14.3",
+    "lint-staged": "^7.2.0",
+    "mocha": "^7.2.0",
+    "nyc": "^15.0.0",
+    "prettier": "^1.13.7",
+    "rimraf": "^2.6.2",
+    "sinon": "^6.1.4",
+    "source-map-support": "^0.5.6",
+    "standard-version": "^9.0.0",
+    "ts-node": "^7.0.0",
+    "typescript": "^4.2.3"
+  }
+}
diff --git a/node_modules/minify-html-literals/src/minifyHTMLLiterals.d.ts b/node_modules/minify-html-literals/src/minifyHTMLLiterals.d.ts
new file mode 100644
index 0000000..5fbce51
--- /dev/null
+++ b/node_modules/minify-html-literals/src/minifyHTMLLiterals.d.ts
@@ -0,0 +1,207 @@
+import { SourceMapOptions } from 'magic-string';
+import { parseLiterals , ParseLiteralsOptions, Template, TemplatePart} from 'parse-literals';
+
+import { defaultMinifyOptions , Strategy} from './strategy';
+
+/**
+ * Options for <code>minifyHTMLLiterals()</code>.
+ */
+export declare type Options = DefaultOptions | CustomOptions<any>;
+/**
+ * Options for <code>minifyHTMLLiterals()</code>, using default html-minifier
+ * strategy.
+ */
+export interface DefaultOptions extends BaseOptions {
+    /**
+     * <code>html-minifier</code> options to use. Defaults to
+     * <code>defaultMinifyOptions</code>, for production-ready minification.
+     */
+    minifyOptions?: Partial<typeof defaultMinifyOptions>;
+}
+/**
+ * Options for <code>minifyHTMLLiterals()</code>, using a custom strategy.
+ */
+export interface CustomOptions<S extends Strategy> extends BaseOptions {
+    /**
+     * HTML minification options.
+     */
+    minifyOptions?: S extends Strategy<infer O> ? Partial<O> : never;
+    /**
+     * Override the default strategy for how to minify HTML. The default is to
+     * use <code>html-minifier</code>.
+     */
+    strategy: S;
+}
+/**
+ * Options for <code>minifyHTMLLiterals()</code>.
+ */
+export interface BaseOptions {
+    /**
+     * The name of the file. This is used to determine how to parse the source
+     * code and for source map filenames. It may be a base name, relative, or
+     * absolute path.
+     */
+    fileName?: string;
+    /**
+     * Override how source maps are generated. Set to false to disable source map
+     * generation.
+     *
+     * @param ms the MagicString instance with code modifications
+     * @param fileName the name or path of the file
+     * @returns a v3 SourceMap or undefined
+     */
+    generateSourceMap?: ((ms: MagicStringLike, fileName: string) => SourceMap | undefined) | false;
+    /**
+     * The MagicString-like constructor to use. MagicString is used to replace
+     * strings and generate source maps.
+     *
+     * Override if you want to set your own version of MagicString or change how
+     * strings are overridden. Use <code>generateSourceMap</code> if you want to
+     * change how source maps are created.
+     */
+    MagicString?: {
+        new (source: string): MagicStringLike;
+    };
+    /**
+     * Override how template literals are parsed from a source string.
+     */
+    parseLiterals?: typeof parseLiterals;
+    /**
+     * Options for <code>parseLiterals()</code>.
+     */
+    parseLiteralsOptions?: Partial<ParseLiteralsOptions>;
+    /**
+     * Determines whether or not a template should be minified. The default is to
+     * minify all tagged template whose tag name contains "html" (case
+     * insensitive).
+     *
+     * @param template the template to check
+     * @returns true if the template should be minified
+     */
+    shouldMinify?(template: Template): boolean;
+    /**
+     * Determines whether or not a CSS template should be minified. The default is
+     * to minify all tagged template whose tag name contains "css" (case
+     * insensitive).
+     *
+     * @param template the template to check
+     * @returns true if the template should be minified
+     */
+    shouldMinifyCSS?(template: Template): boolean;
+    /**
+     * Override custom validation or set to false to disable validation. This is
+     * only useful when implementing your own strategy that may return
+     * unexpected results.
+     */
+    validate?: Validation | false;
+}
+/**
+ * A MagicString-like instance. <code>minify-html-literals</code> only uses a
+ * subset of the MagicString API to overwrite the source code and generate
+ * source maps.
+ */
+export interface MagicStringLike {
+    generateMap(options?: Partial<SourceMapOptions>): SourceMap;
+    overwrite(start: number, end: number, content: string): any;
+    toString(): string;
+}
+/**
+ * A v3 SourceMap.
+ *
+ * <code>magic-string> incorrectly declares the SourceMap type with a version
+ * string instead of a number, so <code>minify-html-literals</code> declares
+ * its own type.
+ */
+export interface SourceMap {
+    version: number | string;
+    file: string | null;
+    sources: Array<string | null>;
+    sourcesContent: Array<string | null>;
+    names: string[];
+    mappings: string;
+    toString(): string;
+    toUrl(): string;
+}
+/**
+ * Validation that is executed when minifying HTML to ensure there are no
+ * unexpected errors. This is to alleviate hard-to-troubleshoot errors such as
+ * undefined errors.
+ */
+export interface Validation {
+    /**
+     * Throws an error if <code>strategy.getPlaceholder()</code> does not return
+     * a valid placeholder string.
+     *
+     * @param placeholder the placeholder to check
+     */
+    ensurePlaceholderValid(placeholder: any): void;
+    /**
+     * Throws an error if <code>strategy.splitHTMLByPlaceholder()</code> does not
+     * return an HTML part string for each template part.
+     *
+     * @param parts the template parts that generated the strings
+     * @param htmlParts the split HTML strings
+     */
+    ensureHTMLPartsValid(parts: TemplatePart[], htmlParts: string[]): void;
+}
+/**
+ * The result of a call to <code>minifyHTMLLiterals()</code>.
+ */
+export interface Result {
+    /**
+     * The minified code.
+     */
+    code: string;
+    /**
+     * Optional v3 SourceMap for the code.
+     */
+    map: SourceMap | undefined;
+}
+/**
+ * The default method to generate a SourceMap. It will generate the SourceMap
+ * from the provided MagicString instance using "fileName.map" as the file and
+ * "fileName" as the source.
+ *
+ * @param ms the MagicString instance with code modifications
+ * @param fileName the name of the source file
+ * @returns a v3 SourceMap
+ */
+export declare function defaultGenerateSourceMap(ms: MagicStringLike, fileName: string): SourceMap;
+/**
+ * The default method to determine whether or not to minify a template. It will
+ * return true for all tagged templates whose tag name contains "html" (case
+ * insensitive).
+ *
+ * @param template the template to check
+ * @returns true if the template should be minified
+ */
+export declare function defaultShouldMinify(template: Template): boolean;
+/**
+ * The default method to determine whether or not to minify a CSS template. It
+ * will return true for all tagged templates whose tag name contains "css" (case
+ * insensitive).
+ *
+ * @param template the template to check
+ * @returns true if the template should be minified
+ */
+export declare function defaultShouldMinifyCSS(template: Template): boolean;
+/**
+ * The default validation.
+ */
+export declare const defaultValidation: Validation;
+/**
+ * Minifies all HTML template literals in the provided source string.
+ *
+ * @param source the source code
+ * @param options minification options
+ * @returns the minified code, or null if no minification occurred.
+ */
+export declare function minifyHTMLLiterals(source: string, options?: DefaultOptions): Result | null;
+/**
+ * Minifies all HTML template literals in the provided source string.
+ *
+ * @param source the source code
+ * @param options minification options
+ * @returns the minified code, or null if no minification occurred.
+ */
+export declare function minifyHTMLLiterals<S extends Strategy>(source: string, options?: CustomOptions<S>): Result | null;
diff --git a/node_modules/minify-html-literals/src/minifyHTMLLiterals.js b/node_modules/minify-html-literals/src/minifyHTMLLiterals.js
new file mode 100644
index 0000000..277d9d9
--- /dev/null
+++ b/node_modules/minify-html-literals/src/minifyHTMLLiterals.js
@@ -0,0 +1,148 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.minifyHTMLLiterals = exports.defaultValidation = exports.defaultShouldMinifyCSS = exports.defaultShouldMinify = exports.defaultGenerateSourceMap = void 0;
+const magic_string_1 = require("magic-string");
+const parse_literals_1 = require("parse-literals");
+const strategy_1 = require("./strategy");
+/**
+ * The default method to generate a SourceMap. It will generate the SourceMap
+ * from the provided MagicString instance using "fileName.map" as the file and
+ * "fileName" as the source.
+ *
+ * @param ms the MagicString instance with code modifications
+ * @param fileName the name of the source file
+ * @returns a v3 SourceMap
+ */
+function defaultGenerateSourceMap(ms, fileName) {
+    return ms.generateMap({
+        file: `${fileName}.map`,
+        source: fileName,
+        hires: true
+    });
+}
+exports.defaultGenerateSourceMap = defaultGenerateSourceMap;
+/**
+ * The default method to determine whether or not to minify a template. It will
+ * return true for all tagged templates whose tag name contains "html" (case
+ * insensitive).
+ *
+ * @param template the template to check
+ * @returns true if the template should be minified
+ */
+function defaultShouldMinify(template) {
+    const tag = template.tag && template.tag.toLowerCase();
+    return !!tag && (tag.includes('html') || tag.includes('svg'));
+}
+exports.defaultShouldMinify = defaultShouldMinify;
+/**
+ * The default method to determine whether or not to minify a CSS template. It
+ * will return true for all tagged templates whose tag name contains "css" (case
+ * insensitive).
+ *
+ * @param template the template to check
+ * @returns true if the template should be minified
+ */
+function defaultShouldMinifyCSS(template) {
+    return !!template.tag && template.tag.toLowerCase().includes('css');
+}
+exports.defaultShouldMinifyCSS = defaultShouldMinifyCSS;
+/**
+ * The default validation.
+ */
+exports.defaultValidation = {
+    ensurePlaceholderValid(placeholder) {
+        if (typeof placeholder !== 'string' || !placeholder.length) {
+            throw new Error('getPlaceholder() must return a non-empty string');
+        }
+    },
+    ensureHTMLPartsValid(parts, htmlParts) {
+        if (parts.length !== htmlParts.length) {
+            throw new Error('splitHTMLByPlaceholder() must return same number of strings as template parts');
+        }
+    }
+};
+function minifyHTMLLiterals(source, options = {}) {
+    options.minifyOptions = {
+        ...strategy_1.defaultMinifyOptions,
+        ...(options.minifyOptions || {})
+    };
+    if (!options.MagicString) {
+        options.MagicString = magic_string_1.default;
+    }
+    if (!options.parseLiterals) {
+        options.parseLiterals = parse_literals_1.parseLiterals;
+    }
+    if (!options.shouldMinify) {
+        options.shouldMinify = defaultShouldMinify;
+    }
+    if (!options.shouldMinifyCSS) {
+        options.shouldMinifyCSS = defaultShouldMinifyCSS;
+    }
+    options.parseLiteralsOptions = {
+        ...{ fileName: options.fileName },
+        ...(options.parseLiteralsOptions || {})
+    };
+    const templates = options.parseLiterals(source, options.parseLiteralsOptions);
+    const strategy = options.strategy || strategy_1.defaultStrategy;
+    const { shouldMinify, shouldMinifyCSS } = options;
+    let validate;
+    if (options.validate !== false) {
+        validate = options.validate || exports.defaultValidation;
+    }
+    const ms = new options.MagicString(source);
+    templates.forEach(template => {
+        const minifyHTML = shouldMinify(template);
+        const minifyCSS = !!strategy.minifyCSS && shouldMinifyCSS(template);
+        if (minifyHTML || minifyCSS) {
+            const placeholder = strategy.getPlaceholder(template.parts);
+            if (validate) {
+                validate.ensurePlaceholderValid(placeholder);
+            }
+            const combined = strategy.combineHTMLStrings(template.parts, placeholder);
+            let min;
+            if (minifyCSS) {
+                const minifyCSSOptions = (options.minifyOptions || {}).minifyCSS;
+                if (typeof minifyCSSOptions === 'function') {
+                    min = minifyCSSOptions(combined);
+                }
+                else if (minifyCSSOptions === false) {
+                    min = combined;
+                }
+                else {
+                    const cssOptions = typeof minifyCSSOptions === 'object' ? minifyCSSOptions : undefined;
+                    min = strategy.minifyCSS(combined, cssOptions);
+                }
+            }
+            else {
+                min = strategy.minifyHTML(combined, options.minifyOptions);
+            }
+            const minParts = strategy.splitHTMLByPlaceholder(min, placeholder);
+            if (validate) {
+                validate.ensureHTMLPartsValid(template.parts, minParts);
+            }
+            template.parts.forEach((part, index) => {
+                if (part.start < part.end) {
+                    // Only overwrite if the literal part has text content
+                    ms.overwrite(part.start, part.end, minParts[index]);
+                }
+            });
+        }
+    });
+    const sourceMin = ms.toString();
+    if (source === sourceMin) {
+        return null;
+    }
+    else {
+        let map;
+        if (options.generateSourceMap !== false) {
+            const generateSourceMap = options.generateSourceMap || defaultGenerateSourceMap;
+            map = generateSourceMap(ms, options.fileName || '');
+        }
+        return {
+            map,
+            code: sourceMin
+        };
+    }
+}
+exports.minifyHTMLLiterals = minifyHTMLLiterals;
+//# sourceMappingURL=minifyHTMLLiterals.js.map
\ No newline at end of file
diff --git a/node_modules/minify-html-literals/src/minifyHTMLLiterals.js.map b/node_modules/minify-html-literals/src/minifyHTMLLiterals.js.map
new file mode 100644
index 0000000..ff66d3a
--- /dev/null
+++ b/node_modules/minify-html-literals/src/minifyHTMLLiterals.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"minifyHTMLLiterals.js","sourceRoot":"","sources":["minifyHTMLLiterals.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/minify-html-literals/src/strategy.d.ts b/node_modules/minify-html-literals/src/strategy.d.ts
new file mode 100644
index 0000000..19969bc
--- /dev/null
+++ b/node_modules/minify-html-literals/src/strategy.d.ts
@@ -0,0 +1,90 @@
+/// <reference types="./types/clean-css" />
+/// <reference types="node" />
+import * as CleanCSS from 'clean-css';
+import { Options as HTMLOptions } from 'html-minifier';
+import { TemplatePart } from 'parse-literals';
+/**
+ * A strategy on how to minify HTML and optionally CSS.
+ *
+ * @template O minify HTML options
+ * @template C minify CSS options
+ */
+export interface Strategy<O = any, C = any> {
+    /**
+     * Retrieve a placeholder for the given array of template parts. The
+     * placeholder returned should be the same if the function is invoked with the
+     * same array of parts.
+     *
+     * The placeholder should be an HTML-compliant string that is not present in
+     * any of the parts' text.
+     *
+     * @param parts the parts to get a placeholder for
+     * @returns the placeholder
+     */
+    getPlaceholder(parts: TemplatePart[]): string;
+    /**
+     * Combines the parts' HTML text strings together into a single string using
+     * the provided placeholder. The placeholder indicates where a template
+     * expression occurs.
+     *
+     * @param parts the parts to combine
+     * @param placeholder the placeholder to use between parts
+     * @returns the combined parts' text strings
+     */
+    combineHTMLStrings(parts: TemplatePart[], placeholder: string): string;
+    /**
+     * Minfies the provided HTML string.
+     *
+     * @param html the html to minify
+     * @param options html minify options
+     * @returns minified HTML string
+     */
+    minifyHTML(html: string, options?: O): string;
+    /**
+     * Minifies the provided CSS string.
+     *
+     * @param css the css to minfiy
+     * @param options css minify options
+     * @returns minified CSS string
+     */
+    minifyCSS?(css: string, options?: C): string;
+    /**
+     * Splits a minfied HTML string back into an array of strings from the
+     * provided placeholder. The returned array of strings should be the same
+     * length as the template parts that were combined to make the HTML string.
+     *
+     * @param html the html string to split
+     * @param placeholder the placeholder to split by
+     * @returns an array of html strings
+     */
+    splitHTMLByPlaceholder(html: string, placeholder: string): string[];
+}
+/**
+ * The default <code>clean-css</code> options, optimized for production
+ * minification.
+ */
+export declare const defaultMinifyCSSOptions: CleanCSS.Options;
+/**
+ * The default <code>html-minifier</code> options, optimized for production
+ * minification.
+ */
+export declare const defaultMinifyOptions: HTMLOptions;
+/**
+ * The default strategy. This uses <code>html-minifier</code> to minify HTML and
+ * <code>clean-css</code> to minify CSS.
+ */
+export declare const defaultStrategy: Strategy<HTMLOptions, CleanCSS.Options>;
+export declare function adjustMinifyCSSOptions(options?: CleanCSS.Options): {
+    level: import("clean-css/lib/options/optimization-level").OptimizationLevelOptions;
+    compatibility?: CleanCSS.CompatibilityOptions | "*" | "ie9" | "ie8" | "ie7" | undefined;
+    fetch?: ((uri: string, inlineRequest: import("http").RequestOptions | import("https").RequestOptions, inlineTimeout: number, done: (message: string | number, body: string) => void) => void) | undefined;
+    format?: false | CleanCSS.FormatOptions | "beautify" | "keep-breaks" | undefined;
+    inline?: false | readonly string[] | undefined;
+    inlineRequest?: import("http").RequestOptions | import("https").RequestOptions | undefined;
+    inlineTimeout?: number | undefined;
+    rebase?: boolean | undefined;
+    rebaseTo?: string | undefined;
+    returnPromise?: boolean | undefined;
+    sourceMap?: boolean | undefined;
+    sourceMapInlineSources?: boolean | undefined;
+};
diff --git a/node_modules/minify-html-literals/src/strategy.js b/node_modules/minify-html-literals/src/strategy.js
new file mode 100644
index 0000000..f4da3cd
--- /dev/null
+++ b/node_modules/minify-html-literals/src/strategy.js
@@ -0,0 +1,166 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.adjustMinifyCSSOptions = exports.defaultStrategy = exports.defaultMinifyOptions = exports.defaultMinifyCSSOptions = void 0;
+/// <reference types="./types/clean-css" />
+// Reference needed for d.ts distribution files in rollup-plugin-minify-html-literals
+const CleanCSS = require("clean-css");
+const optimization_level_1 = require("clean-css/lib/options/optimization-level");
+const html_minifier_1 = require("html-minifier");
+/**
+ * The default <code>clean-css</code> options, optimized for production
+ * minification.
+ */
+exports.defaultMinifyCSSOptions = {};
+/**
+ * The default <code>html-minifier</code> options, optimized for production
+ * minification.
+ */
+exports.defaultMinifyOptions = {
+    caseSensitive: true,
+    collapseWhitespace: true,
+    decodeEntities: true,
+    minifyCSS: exports.defaultMinifyCSSOptions,
+    minifyJS: true,
+    processConditionalComments: true,
+    removeAttributeQuotes: false,
+    removeComments: true,
+    removeEmptyAttributes: true,
+    removeScriptTypeAttributes: true,
+    removeStyleLinkTypeAttributes: true,
+    useShortDoctype: true
+};
+/**
+ * The default strategy. This uses <code>html-minifier</code> to minify HTML and
+ * <code>clean-css</code> to minify CSS.
+ */
+exports.defaultStrategy = {
+    getPlaceholder(parts) {
+        // Using @ and (); will cause the expression not to be removed in CSS.
+        // However, sometimes the semicolon can be removed (ex: inline styles).
+        // In those cases, we want to make sure that the HTML splitting also
+        // accounts for the missing semicolon.
+        const suffix = '();';
+        let placeholder = '@TEMPLATE_EXPRESSION';
+        while (parts.some(part => part.text.includes(placeholder + suffix))) {
+            placeholder += '_';
+        }
+        return placeholder + suffix;
+    },
+    combineHTMLStrings(parts, placeholder) {
+        return parts.map(part => part.text).join(placeholder);
+    },
+    minifyHTML(html, options = {}) {
+        let minifyCSSOptions;
+        if (options.minifyCSS) {
+            if (options.minifyCSS !== true &&
+                typeof options.minifyCSS !== 'function') {
+                minifyCSSOptions = { ...options.minifyCSS };
+            }
+            else {
+                minifyCSSOptions = {};
+            }
+        }
+        else {
+            minifyCSSOptions = false;
+        }
+        let adjustedMinifyCSSOptions = false;
+        if (minifyCSSOptions) {
+            adjustedMinifyCSSOptions = adjustMinifyCSSOptions(minifyCSSOptions);
+        }
+        let result = html_minifier_1.minify(html, {
+            ...options,
+            minifyCSS: adjustedMinifyCSSOptions
+        });
+        if (options.collapseWhitespace) {
+            // html-minifier does not support removing newlines inside <svg>
+            // attributes. Support this, but be careful not to remove newlines from
+            // supported areas (such as within <pre> and <textarea> tags).
+            const matches = Array.from(result.matchAll(/<svg/g)).reverse();
+            for (const match of matches) {
+                const startTagIndex = match.index;
+                const closeTagIndex = result.indexOf('</svg', startTagIndex);
+                if (closeTagIndex < 0) {
+                    // Malformed SVG without a closing tag
+                    continue;
+                }
+                const start = result.substring(0, startTagIndex);
+                let svg = result.substring(startTagIndex, closeTagIndex);
+                const end = result.substring(closeTagIndex);
+                svg = svg.replace(/\r?\n/g, '');
+                result = start + svg + end;
+            }
+        }
+        if (adjustedMinifyCSSOptions &&
+            adjustedMinifyCSSOptions.level[optimization_level_1.OptimizationLevel.One].tidySelectors) {
+            // Fix https://github.com/jakubpawlowicz/clean-css/issues/996
+            result = fixCleanCssTidySelectors(html, result);
+        }
+        return result;
+    },
+    minifyCSS(css, options = {}) {
+        const adjustedOptions = adjustMinifyCSSOptions(options);
+        const output = new CleanCSS(adjustedOptions).minify(css);
+        if (output.errors && output.errors.length) {
+            throw new Error(output.errors.join('\n\n'));
+        }
+        if (adjustedOptions.level[optimization_level_1.OptimizationLevel.One].tidySelectors) {
+            output.styles = fixCleanCssTidySelectors(css, output.styles);
+        }
+        return output.styles;
+    },
+    splitHTMLByPlaceholder(html, placeholder) {
+        const parts = html.split(placeholder);
+        // Make the last character (a semicolon) optional. See above.
+        if (placeholder.endsWith(';')) {
+            const withoutSemicolon = placeholder.substring(0, placeholder.length - 1);
+            for (let i = parts.length - 1; i >= 0; i--) {
+                parts.splice(i, 1, ...parts[i].split(withoutSemicolon));
+            }
+        }
+        return parts;
+    }
+};
+function adjustMinifyCSSOptions(options = {}) {
+    const level = optimization_level_1.optimizationLevelFrom(options.level);
+    const originalTransform = typeof options.level === 'object' &&
+        options.level[1] &&
+        options.level[1].transform;
+    level[optimization_level_1.OptimizationLevel.One].transform = (property, value) => {
+        if (value.startsWith('@TEMPLATE_EXPRESSION') && !value.endsWith(';')) {
+            // The CSS minifier has removed the semicolon from the placeholder
+            // and we need to add it back.
+            return (value = `${value};`);
+        }
+        return originalTransform ? originalTransform(property, value) : value;
+    };
+    return {
+        ...options,
+        level
+    };
+}
+exports.adjustMinifyCSSOptions = adjustMinifyCSSOptions;
+function fixCleanCssTidySelectors(original, result) {
+    const regex = /(::?.+\((.*)\))[\s\r\n]*{/gm;
+    let match;
+    while ((match = regex.exec(original)) != null) {
+        const pseudoClass = match[1];
+        const parameters = match[2];
+        if (!parameters.match(/\s/)) {
+            continue;
+        }
+        const parametersWithoutSpaces = parameters.replace(/\s/g, '');
+        const resultPseudoClass = pseudoClass.replace(parameters, parametersWithoutSpaces);
+        const resultStartIndex = result.indexOf(resultPseudoClass);
+        if (resultStartIndex < 0) {
+            continue;
+        }
+        const resultEndIndex = resultStartIndex + resultPseudoClass.length;
+        // Restore the original pseudo class with spaces
+        result =
+            result.substring(0, resultStartIndex) +
+                pseudoClass +
+                result.substring(resultEndIndex);
+    }
+    return result;
+}
+//# sourceMappingURL=strategy.js.map
\ No newline at end of file
diff --git a/node_modules/minify-html-literals/src/strategy.js.map b/node_modules/minify-html-literals/src/strategy.js.map
new file mode 100644
index 0000000..def533b
--- /dev/null
+++ b/node_modules/minify-html-literals/src/strategy.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"strategy.js","sourceRoot":"","sources":["strategy.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/minify-html-literals/src/types/clean-css/index.d.ts b/node_modules/minify-html-literals/src/types/clean-css/index.d.ts
new file mode 100644
index 0000000..bf030aa
--- /dev/null
+++ b/node_modules/minify-html-literals/src/types/clean-css/index.d.ts
@@ -0,0 +1,25 @@
+declare module 'clean-css/lib/options/optimization-level' {
+  import { Options, OptimizationsOptions } from 'clean-css';
+
+  export interface OptimizationLevel {
+    Zero: '0';
+    One: '1';
+    Two: '2';
+  }
+
+  export const OptimizationLevel: OptimizationLevel;
+
+  export interface OptimizationLevelOptions {
+    [OptimizationLevel.Zero]: {};
+    [OptimizationLevel.One]: Required<
+      Omit<Exclude<OptimizationsOptions['1'], undefined>, 'all'>
+    >;
+    [OptimizationLevel.Two]: Required<
+      Omit<Exclude<OptimizationsOptions['2'], undefined>, 'all'>
+    >;
+  }
+
+  export function optimizationLevelFrom(
+    source: Options['level']
+  ): OptimizationLevelOptions;
+}