text: import nodeResolve from '@rollup/plugin-node-resolve';
  import babel from '@rollup/plugin-babel';
  import html from '@web/rollup-plugin-html';
  import { importMetaAssets } from '@web/rollup-plugin-import-meta-assets';
  import { terser } from 'rollup-plugin-terser';
  import { generateSW } from 'rollup-plugin-workbox';
  import path from 'path';
  import copy from 'rollup-plugin-copy';
  
  export default {
    input: 'index.html',
    output: {
      entryFileNames: '[hash].js',
      chunkFileNames: '[hash].js',
      assetFileNames: '[hash][extname]',
      format: 'es',
      dir: 'dist',
    },
    preserveEntrySignatures: false,
  
    plugins: [
      /** Enable using HTML as rollup entrypoint */
      html({
        minify: true,
        transformHtml: [html => process.env.VERCEL ? html.replace('//VERCEL', 'VERCEL') : html],
        injectServiceWorker: true,
        serviceWorkerPath: 'dist/sw.js',
      }),
      copy({
        targets: [
          {
            src: 'node_modules/@lrnwebcomponents/rpg-character/lib',
            dest: 'dist',
          },
          {
            src: 'node_modules/@lrnwebcomponents/simple-icon/lib/svgs',
            dest: 'dist',
          },
          {
            src: 'node_modules/@lrnwebcomponents/hax-iconset/lib/svgs',
            dest: 'dist',
          },
          {
            src: 'lib',
            dest: 'dist',
          },
          {
            src: 'demo',
            dest: 'dist',
          },
          {
            src: 'lib/assets/images/HAXLogo.svg',
            dest: 'dist/assets/lib/assets/images/HAXLogo.svg',
          },
        ],
      }),
      /** Resolve bare module imports */
      nodeResolve(),
      /** Minify JS */
      terser(),
      /** Bundle assets references via import.meta.url */
      importMetaAssets({
        warnOnError: true,
      }),
      /** Compile JS to a lower language target */
      babel({
        babelHelpers: 'bundled',
        presets: [
          [
            require.resolve('@babel/preset-env'),
            {
              targets: [
                'last 3 Chrome major versions',
                'last 3 Firefox major versions',
                'last 3 Edge major versions',
                'last 3 Safari major versions',
              ],
              modules: false,
              bugfixes: true,
            },
          ],
        ],
        plugins: [
          [
            require.resolve('babel-plugin-template-html-minifier'),
            {
              modules: { lit: ['html', { name: 'css', encapsulation: 'style' }] },
              failOnError: false,
              strictCSS: true,
              htmlMinifier: {
                collapseWhitespace: true,
                conservativeCollapse: true,
                removeComments: true,
                caseSensitive: true,
                minifyCSS: true,
              },
            },
          ],
        ],
      }),
      /** Create and inject a service worker */
      generateSW({
        navigateFallback: '/index.html',
        // where to output the generated sw
        swDest: path.join('dist', 'sw.js'),
        // directory to match patterns against to be precached
        globDirectory: path.join('dist'),
        // cache any html js and css by default
        globPatterns: ['**/*.{html,js,css,webmanifest}'],
        skipWaiting: true,
        clientsClaim: true,
      }),
    ],
  };
  