Full Code of FredKSchott/snowpack for AI

main 7f9b5455683a cached
903 files
4.6 MB
1.2M tokens
831 symbols
1 requests
Download .txt
Showing preview only (4,965K chars total). Download the full file or copy to clipboard to get everything.
Repository: FredKSchott/snowpack
Branch: main
Commit: 7f9b5455683a
Files: 903
Total size: 4.6 MB

Directory structure:
gitextract_28t6qide/

├── .changeset/
│   ├── README.md
│   └── config.json
├── .editorconfig
├── .github/
│   ├── CODEOWNERS
│   ├── ISSUE_TEMPLATE/
│   │   ├── ---bug-report.yml
│   │   ├── ---feature-request.yml
│   │   └── config.yml
│   ├── ISSUE_TEMPLATE.md
│   ├── PULL_REQUEST_TEMPLATE.md
│   └── workflows/
│       ├── format.yml
│       ├── lint.yml
│       ├── release.yml
│       └── test.yml
├── .gitignore
├── .prettierignore
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── create-snowpack-app/
│   ├── README.md
│   ├── app-scripts-lit-element/
│   │   ├── package.json
│   │   ├── snowpack.config.js
│   │   └── tsconfig.base.json
│   ├── app-scripts-preact/
│   │   ├── babel.config.json
│   │   ├── jest/
│   │   │   ├── babelTransform.js
│   │   │   ├── cssTransform.js
│   │   │   └── fileTransform.js
│   │   ├── jest.config.js
│   │   ├── package.json
│   │   ├── snowpack.config.js
│   │   └── tsconfig.base.json
│   ├── app-scripts-react/
│   │   ├── babel.config.json
│   │   ├── jest/
│   │   │   ├── babelTransform.js
│   │   │   ├── cssTransform.js
│   │   │   ├── esbuildTransform.js
│   │   │   ├── fileTransform.js
│   │   │   └── importMetaBabelPlugin.js
│   │   ├── jest.config.js
│   │   ├── package.json
│   │   ├── snowpack.config.js
│   │   └── tsconfig.base.json
│   ├── app-scripts-svelte/
│   │   ├── jest/
│   │   │   ├── babelTransform.js
│   │   │   └── importMetaBabelPlugin.js
│   │   ├── jest.config.js
│   │   ├── package.json
│   │   └── snowpack.config.js
│   ├── app-scripts-vue/
│   │   ├── package.json
│   │   ├── snowpack.config.js
│   │   └── tsconfig.base.json
│   ├── app-template-11ty/
│   │   ├── .eleventy.js
│   │   ├── .npmignore
│   │   ├── .prettierrc
│   │   ├── README.md
│   │   ├── _includes/
│   │   │   └── layouts/
│   │   │       └── base.njk
│   │   ├── _output/
│   │   │   ├── about/
│   │   │   │   └── index.html
│   │   │   ├── index.html
│   │   │   └── static/
│   │   │       └── index.css
│   │   ├── _template/
│   │   │   ├── about.md
│   │   │   ├── index.njk
│   │   │   └── static/
│   │   │       ├── index.css
│   │   │       └── robots.txt
│   │   ├── package.json
│   │   ├── snowpack.config.mjs
│   │   └── src/
│   │       └── index.js
│   ├── app-template-blank/
│   │   ├── .npmignore
│   │   ├── .prettierrc
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.mjs
│   │   └── src/
│   │       ├── index.css
│   │       └── index.js
│   ├── app-template-blank-typescript/
│   │   ├── .npmignore
│   │   ├── .prettierrc
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.mjs
│   │   ├── src/
│   │   │   ├── index.css
│   │   │   └── index.ts
│   │   ├── tsconfig.json
│   │   └── types/
│   │       └── static.d.ts
│   ├── app-template-lit-element/
│   │   ├── .npmignore
│   │   ├── .prettierrc
│   │   ├── README.md
│   │   ├── babel.config.json
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.css
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.mjs
│   │   └── src/
│   │       ├── app-root.js
│   │       └── index.js
│   ├── app-template-lit-element-typescript/
│   │   ├── .npmignore
│   │   ├── .prettierrc
│   │   ├── README.md
│   │   ├── babel.config.json
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.css
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.mjs
│   │   ├── src/
│   │   │   ├── app-root.ts
│   │   │   └── index.ts
│   │   ├── tsconfig.json
│   │   └── types/
│   │       └── static.d.ts
│   ├── app-template-minimal/
│   │   ├── README.md
│   │   ├── index.css
│   │   ├── index.html
│   │   ├── index.js
│   │   ├── package.json
│   │   └── snowpack.config.mjs
│   ├── app-template-preact/
│   │   ├── .npmignore
│   │   ├── .prettierrc
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.mjs
│   │   ├── src/
│   │   │   ├── App.css
│   │   │   ├── App.jsx
│   │   │   ├── App.test.jsx
│   │   │   ├── index.css
│   │   │   └── index.jsx
│   │   └── web-test-runner.config.js
│   ├── app-template-preact-typescript/
│   │   ├── .npmignore
│   │   ├── .prettierrc
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.mjs
│   │   ├── src/
│   │   │   ├── App.css
│   │   │   ├── App.test.tsx
│   │   │   ├── App.tsx
│   │   │   ├── index.css
│   │   │   └── index.tsx
│   │   ├── tsconfig.json
│   │   ├── types/
│   │   │   └── static.d.ts
│   │   └── web-test-runner.config.js
│   ├── app-template-react/
│   │   ├── .npmignore
│   │   ├── .prettierrc
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.mjs
│   │   ├── src/
│   │   │   ├── App.css
│   │   │   ├── App.jsx
│   │   │   ├── App.test.jsx
│   │   │   ├── index.css
│   │   │   └── index.jsx
│   │   └── web-test-runner.config.js
│   ├── app-template-react-typescript/
│   │   ├── .npmignore
│   │   ├── .prettierrc
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.mjs
│   │   ├── src/
│   │   │   ├── App.css
│   │   │   ├── App.test.tsx
│   │   │   ├── App.tsx
│   │   │   ├── index.css
│   │   │   └── index.tsx
│   │   ├── tsconfig.json
│   │   ├── types/
│   │   │   └── static.d.ts
│   │   └── web-test-runner.config.js
│   ├── app-template-svelte/
│   │   ├── .npmignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.mjs
│   │   ├── src/
│   │   │   ├── App.svelte
│   │   │   ├── App.test.js
│   │   │   └── index.js
│   │   └── web-test-runner.config.js
│   ├── app-template-svelte-typescript/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.mjs
│   │   ├── src/
│   │   │   ├── App.svelte
│   │   │   ├── App.test.ts
│   │   │   └── index.ts
│   │   ├── svelte.config.js
│   │   ├── tsconfig.json
│   │   ├── types/
│   │   │   └── static.d.ts
│   │   └── web-test-runner.config.js
│   ├── app-template-vue/
│   │   ├── .npmignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.mjs
│   │   └── src/
│   │       ├── App.vue
│   │       └── index.js
│   ├── app-template-vue-typescript/
│   │   ├── .npmignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.mjs
│   │   ├── src/
│   │   │   ├── App.vue
│   │   │   └── index.js
│   │   ├── tsconfig.json
│   │   └── types/
│   │       ├── shims-vue.d.ts
│   │       └── static.d.ts
│   └── cli/
│       ├── README.md
│       ├── createSnowpackApp.js
│       ├── index.js
│       └── package.json
├── docs/
│   ├── README.md
│   ├── concepts/
│   │   ├── build-pipeline.md
│   │   ├── dev-server.md
│   │   ├── hot-module-replacement.md
│   │   └── how-snowpack-works.md
│   ├── guides/
│   │   ├── babel.md
│   │   ├── connecting-tools.md
│   │   ├── hmr.md
│   │   ├── https-ssl-certificates.md
│   │   ├── jest.md
│   │   ├── optimize-and-bundle.md
│   │   ├── plugins.md
│   │   ├── postcss.md
│   │   ├── preact.md
│   │   ├── react-global-imports.md
│   │   ├── react-loadable-components.md
│   │   ├── routing.md
│   │   ├── sass.md
│   │   ├── server-side-render.md
│   │   ├── streaming-imports.md
│   │   ├── tailwind-css.md
│   │   ├── testing.md
│   │   ├── upgrade-guide.md
│   │   ├── wasm.md
│   │   ├── web-test-runner.md
│   │   ├── web-worker.md
│   │   └── workbox.md
│   ├── posts/
│   │   ├── 2020-05-26-snowpack-2-0-release.md
│   │   ├── 2020-07-30-snowpack-2-7-release.md
│   │   ├── 2020-12-03-snowpack-3-release-candidate.md
│   │   └── 2021-01-13-snowpack-3-0.md
│   ├── reference/
│   │   ├── cli-command-line-interface.md
│   │   ├── common-error-details.md
│   │   ├── configuration.md
│   │   ├── environment-variables.md
│   │   ├── hot-module-replacement.md
│   │   ├── javascript-interface.md
│   │   ├── plugins.md
│   │   └── supported-files.md
│   └── tutorials/
│       ├── getting-started.md
│       ├── quick-start.md
│       ├── react.md
│       ├── svelte.md
│       └── vue.md
├── esinstall/
│   ├── .gitignore
│   ├── CHANGELOG.md
│   ├── LICENSE
│   ├── README.md
│   ├── index.esm.mjs
│   ├── package.json
│   ├── src/
│   │   ├── entrypoints.ts
│   │   ├── index.ts
│   │   ├── rollup-plugins/
│   │   │   ├── generateProcessPolyfill.ts
│   │   │   ├── rollup-plugin-alias.ts
│   │   │   ├── rollup-plugin-catch-fetch.ts
│   │   │   ├── rollup-plugin-catch-unresolved.ts
│   │   │   ├── rollup-plugin-css.ts
│   │   │   ├── rollup-plugin-node-process-polyfill.ts
│   │   │   ├── rollup-plugin-stats.ts
│   │   │   ├── rollup-plugin-strip-source-mapping.ts
│   │   │   └── rollup-plugin-wrap-install-targets.ts
│   │   ├── stats.ts
│   │   ├── types.ts
│   │   └── util.ts
│   └── tsconfig.json
├── examples/
│   ├── .gitignore
│   ├── https-ssl-certificates/
│   │   ├── README.md
│   │   ├── index.html
│   │   ├── package.json
│   │   └── snowpack.config.js
│   ├── react-global-imports/
│   │   ├── README.md
│   │   ├── babel.config.js
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.js
│   │   └── src/
│   │       ├── App.css
│   │       ├── App.jsx
│   │       ├── index.css
│   │       └── index.jsx
│   ├── react-loadable-components/
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.js
│   │   └── src/
│   │       ├── App.css
│   │       ├── App.jsx
│   │       ├── Async.jsx
│   │       ├── index.css
│   │       └── index.jsx
│   └── tailwind/
│       ├── README.md
│       ├── package.json
│       ├── postcss.config.js
│       ├── public/
│       │   ├── global.css
│       │   └── index.html
│       ├── snowpack.config.mjs
│       └── tailwind.config.js
├── jest.config.js
├── jest.setup.js
├── lerna.json
├── package.json
├── plugins/
│   ├── plugin-babel/
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── plugin.js
│   │   ├── test/
│   │   │   └── plugin-babel.test.js
│   │   └── worker.js
│   ├── plugin-build-script/
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── plugin.js
│   │   └── test/
│   │       └── plugin.test.js
│   ├── plugin-dotenv/
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── plugin.js
│   │   └── test/
│   │       ├── __snapshots__/
│   │       │   └── plugin.test.js.snap
│   │       ├── execPlugin.js
│   │       └── plugin.test.js
│   ├── plugin-optimize/
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── lib/
│   │   │   ├── css.js
│   │   │   ├── html.js
│   │   │   └── js.js
│   │   ├── package.json
│   │   ├── plugin.js
│   │   ├── test/
│   │   │   ├── plugin.test.js
│   │   │   ├── serializer.js
│   │   │   └── stubs/
│   │   │       └── minimal/
│   │   │           ├── do-not-preload-1.js
│   │   │           ├── do-not-preload-2.js
│   │   │           ├── do-not-preload-3.js
│   │   │           ├── esm_example.js
│   │   │           ├── index.html
│   │   │           ├── index.js
│   │   │           ├── package.json
│   │   │           ├── style.css
│   │   │           └── target-es2018.js
│   │   └── util.js
│   ├── plugin-postcss/
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── plugin.js
│   │   ├── test/
│   │   │   ├── fixtures/
│   │   │   │   ├── from/
│   │   │   │   │   ├── from.css
│   │   │   │   │   ├── postcss.config.js
│   │   │   │   │   └── style.css
│   │   │   │   ├── postcss.config.js
│   │   │   │   └── style.css
│   │   │   └── plugin.test.js
│   │   └── worker.js
│   ├── plugin-react-refresh/
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── plugin.js
│   │   └── test/
│   │       ├── __snapshots__/
│   │       │   └── plugin.test.js.snap
│   │       ├── plugin.test.js
│   │       └── stubs/
│   │           ├── stub.html
│   │           └── stub.js
│   ├── plugin-run-script/
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── plugin.js
│   │   └── test/
│   │       └── plugin.test.js
│   ├── plugin-sass/
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── plugin.js
│   │   └── test/
│   │       ├── __snapshots__/
│   │       │   └── plugin.test.js.snap
│   │       ├── fixtures/
│   │       │   ├── bad/
│   │       │   │   └── bad.scss
│   │       │   ├── sass/
│   │       │   │   ├── App.sass
│   │       │   │   ├── _base.sass
│   │       │   │   └── folder/
│   │       │   │       ├── _child-partial.sass
│   │       │   │       └── _index.sass
│   │       │   └── scss/
│   │       │       ├── App.scss
│   │       │       ├── _base.scss
│   │       │       └── folder/
│   │       │           └── _index.scss
│   │       ├── plugin-mocked.test.js
│   │       └── plugin.test.js
│   ├── plugin-svelte/
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── plugin.js
│   │   └── test/
│   │       ├── Button.svelte
│   │       ├── custom-config.js
│   │       ├── plugin.test.js
│   │       └── svelte.config.js
│   ├── plugin-typescript/
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── plugin.js
│   │   └── test/
│   │       └── plugin.test.js
│   ├── plugin-vue/
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── plugin-tsx-jsx.js
│   │   ├── plugin.js
│   │   ├── src/
│   │   │   └── script-compilers.js
│   │   └── test/
│   │       ├── __snapshots__/
│   │       │   ├── plugin-tsx-jsx.test.js.snap
│   │       │   ├── plugin-vue-ts-tsx-jsx.test.js.snap
│   │       │   ├── plugin.test.js.snap
│   │       │   └── script-compilers.test.js.snap
│   │       ├── plugin-tsx-jsx.test.js
│   │       ├── plugin-vue-ts-tsx-jsx.test.js
│   │       ├── plugin.test.js
│   │       ├── script-compilers.test.js
│   │       └── stubs/
│   │           ├── JsxContent.jsx
│   │           ├── TsContent.ts
│   │           ├── TsxContent.tsx
│   │           ├── VueContent.vue
│   │           ├── VueContentJsx.vue
│   │           ├── VueContentOnlyTpl.vue
│   │           ├── VueContentStyleScoped.vue
│   │           ├── VueContentTs.vue
│   │           ├── VueContentTsx.vue
│   │           └── tsconfig.json
│   ├── plugin-webpack/
│   │   ├── .gitignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── plugin.js
│   │   ├── plugins/
│   │   │   ├── import-meta-fix.js
│   │   │   └── proxy-import-resolve.js
│   │   └── test/
│   │       ├── __snapshots__/
│   │       │   └── plugin.test.js.snap
│   │       ├── plugin.test.js
│   │       ├── readFilesSync.js
│   │       └── stubs/
│   │           ├── minimal/
│   │           │   ├── index.html
│   │           │   ├── index.js
│   │           │   ├── package.json
│   │           │   └── styles.css
│   │           └── multiple-entrypoints/
│   │               ├── admin/
│   │               │   ├── index.html
│   │               │   └── index.js
│   │               ├── index.html
│   │               ├── index.js
│   │               └── package.json
│   └── web-test-runner-plugin/
│       ├── CHANGELOG.md
│       ├── README.md
│       ├── package.json
│       └── plugin.js
├── scripts/
│   ├── release-all.js
│   └── release.cjs
├── skypack/
│   ├── .gitignore
│   ├── .prettierrc
│   ├── CHANGELOG.md
│   ├── LICENSE
│   ├── README.md
│   ├── index.esm.mjs
│   ├── package.json
│   ├── src/
│   │   ├── index.ts
│   │   ├── rollup-plugin-remote-cdn.ts
│   │   └── util.ts
│   └── tsconfig.json
├── snowpack/
│   ├── .gitignore
│   ├── .npmignore
│   ├── CHANGELOG.md
│   ├── LICENSE
│   ├── README.md
│   ├── assets/
│   │   ├── hmr-client.js
│   │   ├── hmr-error-overlay.js
│   │   ├── openChrome.appleScript
│   │   ├── require-or-import.js
│   │   └── snowpack-init-file.js
│   ├── index.bin.js
│   ├── package.json
│   ├── src/
│   │   ├── build/
│   │   │   ├── build-import-proxy.ts
│   │   │   ├── build-pipeline.ts
│   │   │   ├── file-builder.ts
│   │   │   ├── file-urls.ts
│   │   │   ├── import-css.ts
│   │   │   ├── import-resolver.ts
│   │   │   ├── import-sri.ts
│   │   │   ├── optimize.ts
│   │   │   └── process.ts
│   │   ├── commands/
│   │   │   ├── add-rm.ts
│   │   │   ├── build.ts
│   │   │   ├── dev.ts
│   │   │   ├── init.ts
│   │   │   ├── paint.ts
│   │   │   └── prepare.ts
│   │   ├── config.ts
│   │   ├── dev/
│   │   │   └── hmr.ts
│   │   ├── hmr-server-engine.ts
│   │   ├── index.ts
│   │   ├── lexer-util.ts
│   │   ├── logger.ts
│   │   ├── plugins/
│   │   │   └── plugin-esbuild.ts
│   │   ├── rewrite-imports.ts
│   │   ├── scan-import-glob.ts
│   │   ├── scan-imports.ts
│   │   ├── sources/
│   │   │   ├── local-install.ts
│   │   │   ├── local.ts
│   │   │   ├── remote.ts
│   │   │   └── util.ts
│   │   ├── ssr-loader/
│   │   │   ├── index.ts
│   │   │   ├── sourcemaps.ts
│   │   │   └── transform.ts
│   │   ├── types.ts
│   │   └── util.ts
│   ├── tsconfig.cjs.json
│   └── tsconfig.json
├── test/
│   ├── build/
│   │   ├── config-loading-esm-package/
│   │   │   ├── config-loading-esm-package.test.js
│   │   │   ├── package.json
│   │   │   ├── snowpack.config.js
│   │   │   └── src/
│   │   │       └── index.js
│   │   ├── config-loading-mjs/
│   │   │   ├── config-loading-mjs.test.js
│   │   │   ├── package.json
│   │   │   ├── snowpack.config.mjs
│   │   │   └── src/
│   │   │       └── index.js
│   │   ├── config-path/
│   │   │   ├── config-path.test.js
│   │   │   ├── index.js
│   │   │   ├── my-config-file.js
│   │   │   └── package.json
│   │   ├── entrypoint-ids/
│   │   │   ├── entrypoint-ids.test.js
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── index.js
│   │   ├── import-assets/
│   │   │   ├── import-assets.test.js
│   │   │   ├── package.json
│   │   │   ├── snowpack.config.json
│   │   │   └── src/
│   │   │       ├── index.js
│   │   │       └── styles.css
│   │   ├── package-bootstrap/
│   │   │   ├── package-bootstrap.test.js
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── index.js
│   │   │       └── styles.css
│   │   ├── package-workspace/
│   │   │   ├── package-workspace.test.js
│   │   │   ├── package.json
│   │   │   ├── snowpack.config.js
│   │   │   └── src/
│   │   │       ├── index.html
│   │   │       └── index.svelte
│   │   ├── plugin-build-script/
│   │   │   ├── package.json
│   │   │   ├── plugin-build-script.test.js
│   │   │   ├── snowpack.config.js
│   │   │   └── src/
│   │   │       └── index.ts
│   │   ├── plugin-hook-optimize/
│   │   │   ├── custom-optimize-plugin.js
│   │   │   ├── package.json
│   │   │   ├── plugin-hook-optimize.test.js
│   │   │   ├── snowpack.config.json
│   │   │   └── src/
│   │   │       ├── index.js
│   │   │       └── styles.css
│   │   ├── plugin-run-script/
│   │   │   ├── package.json
│   │   │   ├── plugin-run-script.test.js
│   │   │   ├── public/
│   │   │   │   └── css/
│   │   │   │       └── index.css
│   │   │   ├── snowpack.config.js
│   │   │   └── src/
│   │   │       └── css/
│   │   │           └── index.scss
│   │   ├── prepare-external-package/
│   │   │   ├── package.json
│   │   │   ├── prepare-external-package.test.js
│   │   │   └── src/
│   │   │       └── index.js
│   │   ├── react-lazy-bundle/
│   │   │   ├── package.json
│   │   │   ├── public/
│   │   │   │   └── index.html
│   │   │   ├── react-lazy.test.js
│   │   │   ├── snowpack.config.js
│   │   │   └── src/
│   │   │       ├── components/
│   │   │       │   ├── App.jsx
│   │   │       │   └── Articles.jsx
│   │   │       └── index.jsx
│   │   └── test-workspace-component/
│   │       ├── Layout.ts
│   │       ├── README.md
│   │       ├── SvelteComponent.svelte
│   │       ├── index.mjs
│   │       ├── package.json
│   │       └── works-without-extension.ts
│   ├── create-snowpack-app/
│   │   ├── __snapshots__/
│   │   │   └── create-snowpack-app.test.js.snap
│   │   └── create-snowpack-app.test.js
│   ├── esinstall/
│   │   ├── alias/
│   │   │   ├── alias.test.js
│   │   │   └── package.json
│   │   ├── cjs-autodetect-exports/
│   │   │   ├── .gitignore
│   │   │   ├── cjs-autodetect-exports.test.js
│   │   │   ├── package.json
│   │   │   └── packages/
│   │   │       ├── cjs-invalid-exports/
│   │   │       │   ├── entrypoint.js
│   │   │       │   └── package.json
│   │   │       └── cjs-valid-exports/
│   │   │           ├── entrypoint.js
│   │   │           └── package.json
│   │   ├── config-package-svelte/
│   │   │   ├── config-package-svelte.test.js
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── index.js
│   │   ├── dep-list-simple/
│   │   │   ├── __snapshots__
│   │   │   ├── dep-list-simple.test.js
│   │   │   └── package.json
│   │   ├── error-missing-dep/
│   │   │   ├── __snapshots__
│   │   │   ├── error-missing-dep.test.js
│   │   │   └── package.json
│   │   ├── esinstall-test-utils.js
│   │   ├── exclude-external-packages/
│   │   │   ├── __snapshots__
│   │   │   ├── exclude-external-packages.test.js
│   │   │   └── package.json
│   │   ├── exports-only/
│   │   │   ├── .gitignore
│   │   │   ├── exports-only.test.js
│   │   │   ├── mod.js
│   │   │   ├── package.json
│   │   │   ├── pkg/
│   │   │   │   ├── mod.mjs
│   │   │   │   └── package.json
│   │   │   └── snowpack.config.js
│   │   ├── exports-only-no-main/
│   │   │   ├── .gitignore
│   │   │   ├── exports-only-no-main.test.js
│   │   │   ├── mod.js
│   │   │   ├── package.json
│   │   │   ├── pkg/
│   │   │   │   ├── mod.mjs
│   │   │   │   └── package.json
│   │   │   └── snowpack.config.js
│   │   ├── import-assets/
│   │   │   ├── .gitignore
│   │   │   ├── import-assets.test.js
│   │   │   ├── package.json
│   │   │   └── packages/
│   │   │       └── mock-pkg-install-assets/
│   │   │           ├── css.css
│   │   │           ├── json.json
│   │   │           └── package.json
│   │   ├── import-astro/
│   │   │   ├── .gitignore
│   │   │   ├── import-astro.test.js
│   │   │   ├── package.json
│   │   │   └── packages/
│   │   │       └── components/
│   │   │           ├── Wow.astro
│   │   │           └── package.json
│   │   ├── import-missing/
│   │   │   ├── import-missing.test.js
│   │   │   ├── package.json
│   │   │   ├── packages/
│   │   │   │   ├── @material/
│   │   │   │   │   └── animation/
│   │   │   │   │       ├── LICENSE
│   │   │   │   │       ├── README.md
│   │   │   │   │       ├── _functions.import.scss
│   │   │   │   │       ├── _functions.scss
│   │   │   │   │       ├── _index.scss
│   │   │   │   │       ├── _variables.import.scss
│   │   │   │   │       ├── _variables.scss
│   │   │   │   │       ├── dist/
│   │   │   │   │       │   ├── mdc.animation.d.ts
│   │   │   │   │       │   └── mdc.animation.js
│   │   │   │   │       ├── index.d.ts
│   │   │   │   │       ├── index.js
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── types.d.ts
│   │   │   │   │       ├── types.js
│   │   │   │   │       ├── util.d.ts
│   │   │   │   │       └── util.js
│   │   │   │   └── tslib/
│   │   │   │       ├── CopyrightNotice.txt
│   │   │   │       ├── LICENSE.txt
│   │   │   │       ├── package.json
│   │   │   │       ├── tslib.d.ts
│   │   │   │       ├── tslib.es6.html
│   │   │   │       ├── tslib.es6.js
│   │   │   │       ├── tslib.html
│   │   │   │       └── tslib.js
│   │   │   └── src/
│   │   │       └── index.js
│   │   ├── import-named-from-default/
│   │   │   ├── import-named-from-default.test.js
│   │   │   ├── package/
│   │   │   │   └── default-only-esm/
│   │   │   │       ├── index.js
│   │   │   │       └── package.json
│   │   │   └── package.json
│   │   ├── import-node-builtin/
│   │   │   ├── .gitignore
│   │   │   ├── error-node-builtin-unresolved.test.js
│   │   │   ├── package.json
│   │   │   └── packages/
│   │   │       └── bad-node-builtin-pkg/
│   │   │           ├── entrypoint.js
│   │   │           └── package.json
│   │   ├── import-nothing/
│   │   │   ├── import-nothing.test.js
│   │   │   └── package.json
│   │   ├── import-types/
│   │   │   ├── .gitignore
│   │   │   ├── import-types.test.js
│   │   │   ├── package.json
│   │   │   └── packages/
│   │   │       └── type-only-pkg/
│   │   │           ├── index.d.ts
│   │   │           └── package.json
│   │   ├── named-exports/
│   │   │   ├── .gitignore
│   │   │   ├── named-exports.test.js
│   │   │   ├── package.json
│   │   │   └── packages/
│   │   │       ├── cjs-named-exports-obj/
│   │   │       │   ├── entrypoint.js
│   │   │       │   └── package.json
│   │   │       ├── cjs-named-exports-reexported/
│   │   │       │   ├── entrypoint.js
│   │   │       │   ├── package.json
│   │   │       │   └── reexported.js
│   │   │       ├── cjs-named-exports-simple/
│   │   │       │   ├── entrypoint.js
│   │   │       │   └── package.json
│   │   │       └── umd-named-exports/
│   │   │           ├── autolayout.js
│   │   │           └── package.json
│   │   ├── node-env/
│   │   │   ├── .gitignore
│   │   │   ├── node-env.test.js
│   │   │   ├── package.json
│   │   │   └── packages/
│   │   │       └── node-env-mock-pkg/
│   │   │           ├── entrypoint.js
│   │   │           └── package.json
│   │   ├── package-entrypoints/
│   │   │   ├── .gitignore
│   │   │   ├── browser-dot/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── browser-dot-slash/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── browser-dot-slash-index/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── browser-dot-slash-index-js/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── browser-index/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── browser-index-js/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── browser-no-valid/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── browser-path/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── export-map-dot-no-slash/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── export-map-dot-slash/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── export-map-internal-imports/
│   │   │   │   ├── entrypoint.js
│   │   │   │   ├── imported-by-entrypoint.js
│   │   │   │   ├── imports-entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── export-map-object-browser/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── export-map-object-browser-object/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── export-map-object-default/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── export-map-object-import/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── export-map-object-no-key/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── export-map-object-require/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── export-map-star/
│   │   │   │   ├── entrypoint.js
│   │   │   │   ├── package.json
│   │   │   │   └── src/
│   │   │   │       └── extras/
│   │   │   │           ├── one.js
│   │   │   │           ├── other.css
│   │   │   │           ├── three.js
│   │   │   │           └── two.js
│   │   │   ├── export-map-trailing-slash/
│   │   │   │   ├── dist/
│   │   │   │   │   ├── esm/
│   │   │   │   │   │   └── helpers.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── entrypoint.js
│   │   │   │   ├── package.json
│   │   │   │   └── src/
│   │   │   │       ├── extras/
│   │   │   │       │   ├── one.js
│   │   │   │       │   ├── other.css
│   │   │   │       │   ├── three.js
│   │   │   │       │   └── two.js
│   │   │   │       └── more/
│   │   │   │           └── one.js
│   │   │   ├── implicit-main/
│   │   │   │   ├── index.d.ts
│   │   │   │   ├── index.js
│   │   │   │   └── package.json
│   │   │   ├── jsnext-main/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── main-folder/
│   │   │   │   ├── entrypoint/
│   │   │   │   │   └── index.js
│   │   │   │   └── package.json
│   │   │   ├── module/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── package-entrypoints-browser.test.js
│   │   │   ├── package-entrypoints-export-map.test.js
│   │   │   ├── package-entrypoints-general.test.js
│   │   │   ├── package.json
│   │   │   └── pkg-with-dot.in-the-name/
│   │   │       ├── entrypoint.js
│   │   │       └── package.json
│   │   ├── package-node-fetch/
│   │   │   ├── .gitignore
│   │   │   ├── package-node-fetch.test.js
│   │   │   ├── package.json
│   │   │   └── packages/
│   │   │       └── dep-node-fetch-mock-pkg/
│   │   │           ├── entrypoint.js
│   │   │           └── package.json
│   │   ├── package-react/
│   │   │   ├── __snapshots__
│   │   │   ├── package-react.test.js
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── index.js
│   │   ├── polyfill-node/
│   │   │   ├── .gitignore
│   │   │   ├── package.json
│   │   │   ├── packages/
│   │   │   │   └── node-builtin-pkg/
│   │   │   │       ├── entrypoint.js
│   │   │   │       └── package.json
│   │   │   └── polyfill-node.test.js
│   │   ├── rollup/
│   │   │   ├── .gitignore
│   │   │   ├── package.json
│   │   │   ├── rollup.test.js
│   │   │   └── src/
│   │   │       └── index.js
│   │   ├── source-map-strip/
│   │   │   ├── __snapshots__
│   │   │   ├── package.json
│   │   │   └── source-map-strip.test.js
│   │   ├── sub-package-json/
│   │   │   ├── .gitignore
│   │   │   ├── package.json
│   │   │   └── sub-package-json.test.js
│   │   └── tree-shake-expression/
│   │       ├── .gitignore
│   │       ├── inner-module/
│   │       │   ├── main.js
│   │       │   └── package.json
│   │       ├── package.json
│   │       └── tree-shake-expression.test.js
│   ├── esinstall.api.test.js
│   ├── fixture-utils.js
│   ├── rollup-plugins.test.js
│   ├── snowpack/
│   │   ├── __template__/
│   │   │   └── index.test.js
│   │   ├── cdnUrls/
│   │   │   └── index.test.js
│   │   ├── config/
│   │   │   ├── alias/
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── index.test.js.snap
│   │   │   │   └── index.test.js
│   │   │   ├── buildOptions.baseUrl/
│   │   │   │   └── index.test.js
│   │   │   ├── buildOptions.jsxInject/
│   │   │   │   └── index.test.js
│   │   │   ├── buildOptions.metaUrlPath/
│   │   │   │   └── index.test.js
│   │   │   ├── buildOptions.out/
│   │   │   │   └── index.test.js
│   │   │   ├── env/
│   │   │   │   └── index.test.js
│   │   │   ├── invalid/
│   │   │   │   └── index.test.js
│   │   │   ├── mode/
│   │   │   │   └── index.test.js
│   │   │   ├── mount/
│   │   │   │   └── index.test.js
│   │   │   ├── optimize/
│   │   │   │   └── index.test.js
│   │   │   ├── packageOptions.external/
│   │   │   │   └── index.test.js
│   │   │   ├── packageOptions.packageLookupFields/
│   │   │   │   └── index.test.js
│   │   │   ├── packageOptions.source/
│   │   │   │   └── index.test.js
│   │   │   ├── plugins/
│   │   │   │   ├── extends/
│   │   │   │   │   └── index.test.js
│   │   │   │   └── instantiatedObject/
│   │   │   │       ├── __snapshots__/
│   │   │   │       │   └── index.test.js.snap
│   │   │   │       └── index.test.js
│   │   │   └── withExtension/
│   │   │       └── index.test.js
│   │   ├── cssModules/
│   │   │   └── index.test.js
│   │   ├── import/
│   │   │   ├── css.ts/
│   │   │   │   └── index.test.js
│   │   │   ├── dotFolder/
│   │   │   │   └── index.test.js
│   │   │   ├── glob/
│   │   │   │   └── index.test.js
│   │   │   ├── json/
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── index.test.js.snap
│   │   │   │   └── index.test.js
│   │   │   └── ts/
│   │   │       └── index.test.js
│   │   ├── import-sri.test.ts
│   │   ├── moduleResolution/
│   │   │   └── index.test.js
│   │   ├── namedImport/
│   │   │   ├── __snapshots__/
│   │   │   │   └── index.test.js.snap
│   │   │   └── index.test.js
│   │   ├── package/
│   │   │   ├── @nivo/
│   │   │   │   └── index.test.js
│   │   │   ├── bootstrap/
│   │   │   │   └── index.test.js
│   │   │   ├── tippy/
│   │   │   │   └── index.test.js
│   │   │   └── workspace/
│   │   │       └── index.test.js
│   │   ├── plugin/
│   │   │   ├── babel/
│   │   │   │   └── index.test.js
│   │   │   ├── buildScript/
│   │   │   │   └── index.test.js
│   │   │   ├── custom/
│   │   │   │   └── index.test.js
│   │   │   ├── customTransform/
│   │   │   │   └── index.test.js
│   │   │   ├── runScript/
│   │   │   │   └── index.test.js
│   │   │   ├── sass/
│   │   │   │   └── index.test.js
│   │   │   ├── svelte/
│   │   │   │   └── index.test.js
│   │   │   └── vue/
│   │   │       └── index.test.js
│   │   ├── runtime/
│   │   │   └── runtime.test.js
│   │   ├── utf8/
│   │   │   └── index.test.js
│   │   └── util.test.ts
│   └── test-utils.js
├── test-dev/
│   ├── README.md
│   ├── __snapshots__/
│   │   └── dev.test.ts.snap
│   ├── dev.test.ts
│   ├── smoke/
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── about.tmpl
│   │   │   ├── index.css
│   │   │   └── index.html
│   │   ├── snowpack.config.js
│   │   └── src/
│   │       └── index.js
│   ├── smoke-secure-1/
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── about.tmpl
│   │   │   ├── index.css
│   │   │   └── index.html
│   │   ├── snowpack.config.js
│   │   ├── snowpack.crt
│   │   ├── snowpack.key
│   │   └── src/
│   │       └── index.js
│   └── smoke-secure-2/
│       ├── package.json
│       ├── public/
│       │   ├── about.tmpl
│       │   ├── index.css
│       │   └── index.html
│       ├── snowpack.config.js
│       ├── src/
│       │   └── index.js
│       └── tls/
│           ├── certificate.pem
│           └── key.pem
└── www/
    ├── .gitignore
    ├── LICENSE
    ├── README.md
    ├── astro.config.mjs
    ├── package.json
    ├── public/
    │   ├── favicon/
    │   │   └── site.webmanifest
    │   ├── img/
    │   │   ├── snowpackskypack.webm
    │   │   └── streaming-imports-demo.webm
    │   ├── js/
    │   │   └── index.js
    │   ├── robots.txt
    │   └── styles/
    │       ├── _animations.scss
    │       ├── _card-grid.scss
    │       ├── _github-markdown.scss
    │       ├── _globals.scss
    │       ├── _prism.scss
    │       ├── _typography.scss
    │       ├── _utils.scss
    │       ├── _var.scss
    │       └── global.scss
    ├── scripts/
    │   └── copy.js
    └── src/
        ├── components/
        │   ├── Banner.astro
        │   ├── BaseHead.astro
        │   ├── BaseLayout.astro
        │   ├── Button.astro
        │   ├── Card.css
        │   ├── Card.jsx
        │   ├── CompanyLogo.jsx
        │   ├── Hero.astro
        │   ├── MainLayout.astro
        │   ├── Menu.astro
        │   ├── Nav.astro
        │   ├── NewsAssets.svelte
        │   ├── NewsTitle.vue
        │   ├── PluginSearchPage.jsx
        │   ├── PluginSearchPage.module.css
        │   ├── PokemonLookup.astro
        │   ├── Subnav.astro
        │   ├── docsearch.js
        │   └── index.ts
        ├── data/
        │   ├── news.json
        │   └── users.json
        ├── layouts/
        │   ├── content-with-cover.astro
        │   ├── content.astro
        │   └── post.astro
        └── pages/
            ├── 404.astro
            ├── guides.astro
            ├── index.astro
            ├── news.astro
            └── plugins.astro

================================================
FILE CONTENTS
================================================

================================================
FILE: .changeset/README.md
================================================
# Changesets

Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
with multi-package repos, or single-package repos to help you version and publish your code. You can
find the full documentation for it [in our repository](https://github.com/changesets/changesets)

We have a quick list of common questions to get you started engaging with this project in
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)


================================================
FILE: .changeset/config.json
================================================
{
  "$schema": "https://unpkg.com/@changesets/config@1.6.0/schema.json",
  "changelog": "@changesets/cli/changelog",
  "commit": false,
  "linked": [],
  "access": "public",
  "baseBranch": "main",
  "ignore": ["@snowpack/test-*"]
}


================================================
FILE: .editorconfig
================================================
root = true

[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 2
insert_final_newline = true


================================================
FILE: .github/CODEOWNERS
================================================
* @snowpackjs/maintainers
docs/* @snowpackjs/docs


================================================
FILE: .github/ISSUE_TEMPLATE/---bug-report.yml
================================================
name: "\U0001F41B Bug Report"
description: Report an issue or possible bug
title: "\U0001F41B BUG:"
labels: []
assignees: []
body:
  - type: markdown
    attributes:
      value: |
        Thank you for taking the time to file a bug report! Please fill out this form as completely as possible.
  - type: checkboxes
    attributes:
      label: Quick checklist
      options:
        - label: I am using the **latest version of Snowpack** and all plugins.
  - type: input
    attributes:
      label: What package manager are you using?
      placeholder: npm, yarn, pnpm
    validations:
      required: true
  - type: input
    attributes:
      label: What operating system are you using?
      placeholder: macOS, Windows, Linux
    validations:
      required: true
  - type: textarea
    attributes:
      label: Describe the bug
      description: A clear and concise description of what the bug is.
    validations:
      required: true
  - type: textarea
    attributes:
      label: Steps to reproduce
      description: Describe the bug in steps that we can reproduce ourselves.
      value: |
        1. `npx create-snowpack-app` using template <NAME>
        2. ...
        3. ...
        4. ...
        5. Error! Describe what went wrong (and what was expected instead)...
    validations:
      required: true
  - type: input
    attributes:
      label: Link to minimal reproducible example (optional)
      description: 'Issues with easy reproductions are more likely to get fixed, faster.'
      placeholder: 'https://github.com/username/repo'


================================================
FILE: .github/ISSUE_TEMPLATE/---feature-request.yml
================================================
name: "\U0001F4A1 Feature Request"
description: 'Submit an RFC or suggest an idea for this project'
title: "\U0001F4A1 RFC: "
labels: ['feature']
assignees: []
body:
  - type: markdown
    attributes:
      value: Thanks for taking the time to suggest a new feature! Please fill out this form as completely as possible.
  - type: textarea
    attributes:
      label: Motivation
      description: |
        A quick, clear and concise description of what the problem is.

        **Please include links to relevant issues, Discord convos, and anything else.**
      placeholder: I want to be able to...
    validations:
      required: true
  - type: textarea
    attributes:
      label: Proposed solution
      description: Your take on one (or more) possible solution(s) to problem.
      value: |
        ### Possible solutions

        ### Alternatives considered

        ### Risks, downsides, and/or tradeoffs
    validations:
      required: true
  - type: textarea
    attributes:
      label: Detailed design
      description: |
        🛑 **Just looking for feedback on an idea? Leave this section blank.**

        Otherwise, explain the exact steps required to implement this change.
        Include specific details that would help someone implement this feature.
  - type: textarea
    attributes:
      label: Open questions
      description: |
        Are there any open questions remaining? List them here.
  - type: checkboxes
    attributes:
      label: Help make it happen!
      description: 'Tip: RFCs with contributing authors are much more likely to get done!'
      options:
        - label: I am willing to submit a PR to implement this change.
        - label: I am willing to submit a PR to implement this change, but would need some guidance.
        - label: I am not willing to submit a PR to implement this change.
    validations:
      required: true


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
  - name: 💬 Everything else
    about: Ask questions and get help from our community!
    url: https://github.com/withastro/snowpack/discussions


================================================
FILE: .github/ISSUE_TEMPLATE.md
================================================
<!--
---- ⛔ STOP!
----
---- This project supports GitHub's new Discussions feature!
---- Issues are handled a little bit differently than you might be used to.
----
---- ❗️ Don't start by creating a new issue. Instead, create a discussion:
----   🔎 Search Existing:   https://github.com/withastro/snowpack/discussions
----   📝 Create New:        https://github.com/withastro/snowpack/discussions/category_choices
----
---- More information on how our team manages issues & discussions:
----   https://github.com/withastro/snowpack/discussions/613#discussioncomment-41103
--->

**Original Discussion:** <!-- URL to discussion -->
**/cc** <!-- @mention everyone from discussion -->


================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
## Changes

<!-- What does this change, in plain language? -->
<!-- Before/after screenshots may be helpful.  -->

## Testing

<!-- How was this change tested? -->
<!-- DON'T DELETE THIS SECTION! If no tests added, explain why -->

## Docs

<!-- Was public documentation updated? -->
<!-- DON'T DELETE THIS SECTION! If no docs added, explain why (e.g. "bug fix only") -->


================================================
FILE: .github/workflows/format.yml
================================================
name: 'Format Code'

on:
  push:
    branches:
      - main

env:
  node_version: 14

jobs:
  format:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          ref: ${{ github.head_ref }}
      - uses: actions/setup-node@v2
        with:
          node-version: ${{ env.node_version }}
      - name: yarn install
        run: yarn --frozen-lockfile
        env:
          CI: true
      - name: yarn format
        run: yarn format
      - name: Commit changes
        uses: stefanzweifel/git-auto-commit-action@v4
        with:
          commit_message: '[ci] yarn format'
          branch: ${{ github.head_ref }}
          push_options: --force


================================================
FILE: .github/workflows/lint.yml
================================================
name: Lint Code

on:
  push:
    branches:
      - main
  pull_request:

env:
  node_version: 14

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Use Node.js ${{ env.node_version }}
        uses: actions/setup-node@v2
        with:
          node-version: ${{ env.node_version }}
      - name: lint
        run: |
          yarn --ignore-engines --frozen-lockfile
          yarn build
          yarn lint


================================================
FILE: .github/workflows/release.yml
================================================
# Inspired by https://bret.io/projects/package-automation/

name: Create Release

on:
  workflow_dispatch:
    inputs:
      tag:
        description: 'what kind of release? (ex: "next", "latest")'
        required: true
      packagePath:
        description: 'path to package? (ex: "snowpack", "plugins/plugin-babel")'
        required: true

env:
  node_version: 14

jobs:
  version_and_release:
    runs-on: ubuntu-latest
    steps:
      # SETUP:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0
      - name: Use Node.js ${{ env.node_version }}
        uses: actions/setup-node@v2
        with:
          node-version: ${{ env.node_version }}
          # (REQUIRED) setting a registry enables the NODE_AUTH_TOKEN env variable where we can set an npm token.
          registry-url: 'https://registry.npmjs.org'
      - run: git config --global user.email "github-ci@snowpack.dev"
      - run: git config --global user.name " ${{ github.actor }}"
      - run: yarn --frozen-lockfile

      # PUBLISH:
      - run: node -e "require('./scripts/release.cjs')('${{ github.event.inputs.packagePath }}', '${{ github.event.inputs.tag }}')"
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}


================================================
FILE: .github/workflows/test.yml
================================================
name: Test Code

on:
  push:
    branches:
      - main
  pull_request:

jobs:
  test:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest]
        node-version: [12.x, 14.x, 16.x]
    steps:
      - uses: actions/checkout@v2
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v2
        with:
          node-version: ${{ matrix.node-version }}
      - name: build
        run: |
          yarn --ignore-engines --frozen-lockfile
          yarn build
        env:
          CI: true
      - name: test
        run: yarn test
        env:
          CI: true


================================================
FILE: .gitignore
================================================
.DS_Store
.build
.idea
.snowpack
.vercel
lerna-debug.log
node_modules
package-lock.json
create-snowpack-app/*/build
test/__temp__
test/build/**/build
test/build/**/TEST_BUILD_OUT
test/build/**/web_modules
test/create-snowpack-app/test-install
test/esinstall/**/web_modules
yarn-error.log

# Ignore files that are copied from /docs
www/_template/**/*.md
!www/_template/posts/**/*.md


================================================
FILE: .prettierignore
================================================
vendor
dist
test/build/**/build
create-snowpack-app/**/build
packages
pkg
TEST_BUILD_OUT
web_modules
test/create-snowpack-app/test-install
.snowpack


================================================
FILE: CHANGELOG.md
================================================
# Changelog

## Version 3.x

The CHANGELOG.md for the current 3.x version of Snowpack is maintained in the `/snowpack` directory at: https://github.com/withastro/snowpack/blob/main/snowpack/CHANGELOG.md

## Version 2.x

The CHANGELOG.md for version 2.x is currently maintained in a discussion so that you can subscribe for updates:
**https://github.com/withastro/snowpack/discussions/1183**


================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

- The use of sexualized language or imagery and unwelcome sexual attention or
  advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic
  address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a
  professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at info@pika.dev. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq


================================================
FILE: CONTRIBUTING.md
================================================
# Contributions Welcome!

Interested in contributing? We'd love your help!

If you run into problems or find something confusing, please share it with us in [this discussion](https://github.com/withastro/snowpack/discussions/958). A great experience for new contributors is very important to us!

Please note that all activity on the [`snowpackjs/snowpack` repository](https://github.com/withastro/snowpack) and our [Discord][discord] is moderated and will be strictly enforced under Snowpack's [Contributor Code of Conduct](CODE_OF_CONDUCT.md).

Our [issue tracker](https://github.com/withastro/snowpack/issues) is always organized with a selection of high-priority bugs, feature requests, and ["help wanted!"](https://github.com/withastro/snowpack/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)/["good first issue"](https://github.com/withastro/snowpack/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) items. For general package troubleshooting and discussions, check out our [Package Community](https://www.pika.dev/npm/snowpack/discuss) discussion board.

## Requirements

Snowpack uses [yarn workspaces](https://classic.yarnpkg.com/) to manage multiple packages contained in this repository. To contribute, [make sure that you have Yarn installed on your machine](https://classic.yarnpkg.com/en/docs/install).

## Initial setup

```bash
git clone https://github.com/withastro/snowpack.git
cd snowpack
yarn
```

## Checking out and building a branch

```bash
git checkout some-branch-name
yarn # in case dependencies have changed
yarn build # re-builds all packages
# that's it! Your monorepo is set up and ready to run/test.
```

## Build after changes

Some packages in the repo are written in JavaScript, and require no build step. Others (like Snowpack itself) are written in TypeScript, and require a build step to run.

```bash
# Option 1: A one-time build step
yarn build

# Option 2: Start a persistent TypeScript watcher, recompiling on every change
# Recommended for active development, when many changes are required
yarn build:watch
```

## Updating and adding packages

Since this is a monorepo with several packages, if you want to update/add packages in the subrepos like `create-snowpack-app/app-template-11ty` you'll want to run the commands in the target subdirectory like

```bash
cd create-snowpack-app/app-template-vue
yarn add vue@latest
```

## Tests

We recommend running all tests before you submit a PR. Tests will not work unless you have run a build `yarn build`.

### Running tests

From the repository's root folder, run

```bash
yarn build
yarn test
yarn test:dev # sometimes flaky on windows, see #1171
```

### Snapshot tests

_Update March 2021: we’re working on improving this and would love your help converting old test directories to smaller TypeScript tests/fixtures!_

All new tests should live in either `test/snowpack`, `test/esinstall`, or the `test` directory of one of our plugins (ex: `plugins/plugin-dotenv/test/plugin.test.js`). `test/build` is considered legacy and is in the process of getting converted into `test/snowpack`.

The way our snapshot tests work is they test Snowpack by building a project. Because Snowpack's build method uses the dev server internally, this is a good way to test the build behavior of both dev & build together.

You'll almost always have a "failed" snapshot test when you make a contribution because your new change will make the final build different. You'll want to take a new snapshot. To do this run:

```bash
yarn test -u
```

You'll notice this changes the snapshot file. Commit this change and submit it along with your PR.

### Filtering tests

Jest supports basic test filtering to only run a subset of our test suite. The [`--testNamePattern`](https://jestjs.io/docs/en/cli#--testnamepatternregex) flag also works as well.

```bash
yarn test treeshake
```

## Run local snowpack in another project

You can run your local snowpack by path

```bash
yarn build
cd path/to/some-other-project
/path/to/snowpack-repository/snowpack/index.bin.js dev --verbose --reload
```

Or by linking the global `snowpack` library to your local clone

```bash
cd snowpack
npm link
cd path/to/some-other-project
snowpack dev --verbose --reload
```

To test a local version of the CLI tool use

```bash
node /path/to/snowpack-repository/create-snowpack-app/cli [my-new-dir] --template @snowpack/app-template-vue
```

To test a local version of the `create-snowpack-app` templates use

```bash
npx create-snowpack-app [my-new-dir] --template ./path/to/template
```

Note the path must start with must start with a `.` to be considered local

The `--verbose` flag enables additional logs which will help to identify the source of a problem. The `--reload` will clear the local cache which might have been created by a different `snowpack` version. Learn more about [Snowpack's CLI flags](/reference/cli-command-line-interface).

## Documentation

The [Snowpack website](https://snowpack.dev) source is located in [`/www`](./www). The documentation source files are located in [`/docs`](./docs) for contributor convenience.

The directories inside of `/docs` are automatically copied to `/www/_template`, so relative URLs in the documentation use `/www` as their base path.

### Localization

If you’d like to help localize, we’d love your help! This is our proposed structure for [`/docs`](./docs):

- English translations in the root (e.g. `/docs/tutorials/getting-started.md` is English)
- All other languages located in `/docs/[ISO 639-1]/` folders, mirroring structure (e.g. `/docs/tutorials/es/getting-started.md`).

Some other considerations:

- The `.md` filename should match its English name, only to mark it as the same document. Within the document itself, the title shown to users will be localized.
- We’re open to having locale-specific guides that don’t exist in English, but please [start a discussion][discussion] before doing so, so we understand the context.

## Pull Request Guidelines

Checkout a topic branch from a base branch, e.g. `main`, and merge back against that branch.

If adding a feature, it probably should have been brought up in a [discussion][discussion] instead before the PR was created.

Some tips for creating your first pull request:

- Provide background for why a PR was created.
- Link to any relevant issues, discussions, or past PRs.
- Add accompanying tests if applicable.
- Ensure all tests have been passed.
- Be sure to add a [changesets][changesets] message along with your commit! Our friendly 🤖 bot will help guide you with more instructions.

## Discussion

[Join the Pika Discord][discord]

[changesets]: https://github.com/atlassian/changesets
[discord]: https://discord.gg/rS8SnRk
[discussion]: https://github.com/withastro/snowpack/discussions


================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) 2019 Fred K. Schott

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.


================================================
FILE: README.md
================================================
> **Update (April 20, 2022):** Snowpack is no longer actively maintained and is not recommended for new projects.
> 
> Check out [Vite](https://vitejs.dev/) for a well-maintained Snowpack alternative.  
> See also: [esbuild](https://esbuild.github.io/), [parcel](https://parceljs.org/)

<h1>Snowpack</h1>

Snowpack is a lightning-fast frontend build tool, designed to leverage JavaScript's native module system (<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import">known as ESM</a>). It is an alternative to heavier, more complex bundlers like webpack or Parcel in your development workflow.

### Key Features

- Develop faster, with a dev server that starts up in **50ms or less.**
- See changes reflected [instantly in the browser.](https://www.snowpack.dev/concepts/hot-module-replacement)
- Integrate your favorite bundler for a [production-optimized build.](https://www.snowpack.dev/concepts/build-pipeline)
- Enjoy out-of-the-box support for [TypeScript, JSX, CSS Modules and more.](https://www.snowpack.dev/reference/supported-files)
- Connect your favorite tools with [third-party plugins.](https://www.snowpack.dev/plugins)

**💁 More info at the official [Snowpack website ➞](https://snowpack.dev)**

<br/>

> **Contributor Guidelines:** [CONTRIBUTING.md](./CONTRIBUTING.md)  
> **License:** [MIT](https://github.com/withastro/snowpack/blob/main/LICENSE)


================================================
FILE: create-snowpack-app/README.md
================================================
## 👉 [`create-snowpack-app`](./cli)


================================================
FILE: create-snowpack-app/app-scripts-lit-element/package.json
================================================
{
  "name": "@snowpack/app-scripts-lit-element",
  "version": "2.0.0",
  "main": "snowpack.config.js",
  "publishConfig": {
    "access": "public"
  },
  "license": "MIT",
  "homepage": "https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-scripts-lit-element#readme",
  "repository": {
    "type": "git",
    "url": "https://github.com/withastro/snowpack.git",
    "directory": "create-snowpack-app/app-scripts-lit-element"
  },
  "dependencies": {
    "@babel/core": "^7.14.0",
    "@snowpack/plugin-babel": "^2.1.7",
    "@snowpack/plugin-dotenv": "^2.1.0"
  },
  "gitHead": "a01616bb0787d56cd782f94cecf2daa12c7594e4"
}


================================================
FILE: create-snowpack-app/app-scripts-lit-element/snowpack.config.js
================================================
const fs = require('fs');
const path = require('path');
const url = require('url');

const isTS = fs.existsSync(url.pathToFileURL(path.join(process.cwd(), 'tsconfig.json')));

module.exports = {
  mount: {
    public: {url: '/', static: true},
    src: {url: '/dist'},
  },
  plugins: ['@snowpack/plugin-babel', '@snowpack/plugin-dotenv'],
  devOptions: {},
  packageOptions: {},
};


================================================
FILE: create-snowpack-app/app-scripts-lit-element/tsconfig.base.json
================================================
{
  "compilerOptions": {
    "module": "esnext",
    "target": "esnext",
    "moduleResolution": "node",
    "jsx": "preserve",
    "baseUrl": "./",
    "allowSyntheticDefaultImports": true,
    "importsNotUsedAsValues": "error",
    /* more strict checking for errors that per-file transpilers like `esbuild` would crash */
    "isolatedModules": true,
    /* noEmit - We only use TypeScript for type checking. */
    "noEmit": true,
    /* Additional Options */
    "strict": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true
  }
}


================================================
FILE: create-snowpack-app/app-scripts-preact/babel.config.json
================================================
{
  "presets": [
    [
      "@babel/preset-react",
      {
        "pragma": "h",
        "pragmaFrag": "Fragment"
      }
    ],
    [
      "@babel/preset-typescript",
      {
        "jsxPragma": "h"
      }
    ]
  ],
  "env": {
    "development": {
      "plugins": ["@prefresh/babel-plugin"]
    }
  }
}


================================================
FILE: create-snowpack-app/app-scripts-preact/jest/babelTransform.js
================================================
// @remove-file-on-eject
/**
 * Copyright (c) 2014-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
('use strict');

const babelJest = require('babel-jest');

module.exports = babelJest.createTransformer({
  presets: [
    [
      '@babel/preset-env',
      {
        targets: {
          node: 'current',
        },
      },
    ],
    [
      '@babel/preset-react',
      {
        pragma: 'h',
        pragmaFrag: 'Fragment',
      },
    ],
    [
      '@babel/preset-typescript',
      {
        jsxPragma: 'h',
      },
    ],
  ],
});


================================================
FILE: create-snowpack-app/app-scripts-preact/jest/cssTransform.js
================================================
// @remove-on-eject-begin
/**
 * Copyright (c) 2014-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
// @remove-on-eject-end
'use strict';

// This is a custom Jest transformer turning style imports into empty objects.
// http://facebook.github.io/jest/docs/en/webpack.html

module.exports = {
  process() {
    return 'module.exports = {};';
  },
  getCacheKey() {
    // The output is always the same.
    return 'cssTransform';
  },
};


================================================
FILE: create-snowpack-app/app-scripts-preact/jest/fileTransform.js
================================================
'use strict';
const path = require('path');

module.exports = {
  process(src, filename) {
    const assetFilename = path.basename(filename);
    return `module.exports = {
      __esModule: true,
      default: ${JSON.stringify(assetFilename)},
    };`;
  },
};


================================================
FILE: create-snowpack-app/app-scripts-preact/jest.config.js
================================================
const fs = require('fs');
const path = require('path');

// Use this instead of `paths.testsSetup` to avoid putting
// an absolute filename into configuration after ejecting.
// const setupTestsFile = fs.existsSync(paths.testsSetup)
//   ? `<rootDir>/src/setupTests.js`
//   : undefined;
const setupTestsFile = true;

module.exports = function () {
  return {
    verbose: true,

    setupFiles: [require.resolve('react-app-polyfill/jsdom')],
    setupFilesAfterEnv: setupTestsFile ? ['<rootDir>/jest.setup.js'] : [],
    testMatch: [
      '<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}',
      '<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}',
    ],
    transform: {
      '^.+\\.(js|jsx|ts|tsx)$': path.resolve(__dirname, 'jest/babelTransform.js'),
      '^.+\\.css$': path.resolve(__dirname, 'jest/cssTransform.js'),
      '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': path.resolve(__dirname, 'jest/fileTransform.js'),
    },
    transformIgnorePatterns: ['node_modules'],
    // transformIgnorePatterns: [
    //   "[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$",
    //   "^.+\\.module\\.(css|sass|scss)$",
    // ],
  };
};


================================================
FILE: create-snowpack-app/app-scripts-preact/package.json
================================================
{
  "name": "@snowpack/app-scripts-preact",
  "version": "2.0.1",
  "main": "snowpack.config.js",
  "publishConfig": {
    "access": "public"
  },
  "license": "MIT",
  "homepage": "https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-scripts-preact#readme",
  "repository": {
    "type": "git",
    "url": "https://github.com/withastro/snowpack.git",
    "directory": "create-snowpack-app/app-scripts-preact"
  },
  "dependencies": {
    "@babel/core": "^7.14.0",
    "@babel/preset-env": "^7.14.0",
    "@babel/preset-react": "^7.13.13",
    "@babel/preset-typescript": "^7.13.0",
    "@prefresh/babel-plugin": "^0.4.1",
    "@prefresh/snowpack": "^3.1.2",
    "@snowpack/plugin-babel": "^2.1.7",
    "@snowpack/plugin-dotenv": "^2.1.0",
    "babel-jest": "^26.6.3",
    "react-app-polyfill": "^2.0.0"
  },
  "gitHead": "a01616bb0787d56cd782f94cecf2daa12c7594e4"
}


================================================
FILE: create-snowpack-app/app-scripts-preact/snowpack.config.js
================================================
const fs = require('fs');
const path = require('path');

const cwd = process.cwd();
const isTS = fs.existsSync(path.join(cwd, 'tsconfig.json'));

module.exports = {
  mount: {
    public: {url: '/', static: true},
    src: {url: '/dist'},
  },
  plugins: ['@snowpack/plugin-babel', '@prefresh/snowpack', '@snowpack/plugin-dotenv'],
  packageOptions: {},
};


================================================
FILE: create-snowpack-app/app-scripts-preact/tsconfig.base.json
================================================
{
  "compilerOptions": {
    "module": "esnext",
    "target": "esnext",
    "moduleResolution": "node",
    "jsx": "preserve",
    "jsxFactory": "h",
    "baseUrl": "./",
    "allowSyntheticDefaultImports": true,
    "importsNotUsedAsValues": "error",
    /* more strict checking for errors that per-file transpilers like `esbuild` would crash */
    "isolatedModules": true,
    /* noEmit - We only use TypeScript for type checking. */
    "noEmit": true,
    /* Additional Options */
    "strict": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true
  }
}


================================================
FILE: create-snowpack-app/app-scripts-react/babel.config.json
================================================
{
  "presets": [["@babel/preset-react"], "@babel/preset-typescript"]
}


================================================
FILE: create-snowpack-app/app-scripts-react/jest/babelTransform.js
================================================
// @remove-file-on-eject
/**
 * Copyright (c) 2014-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
'use strict';

const importMetaBabelPlugin = require('./importMetaBabelPlugin');
const babelJestModule = require('babel-jest');
const babelJest = babelJestModule.__esModule ? babelJestModule.default : babelJestModule;

module.exports = babelJest.createTransformer({
  presets: ['babel-preset-react-app', '@babel/preset-react', '@babel/preset-typescript'],
  plugins: [[importMetaBabelPlugin]],
});


================================================
FILE: create-snowpack-app/app-scripts-react/jest/cssTransform.js
================================================
// @remove-on-eject-begin
/**
 * Copyright (c) 2014-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
// @remove-on-eject-end
'use strict';

// This is a custom Jest transformer turning style imports into empty objects.
// http://facebook.github.io/jest/docs/en/webpack.html

module.exports = {
  process() {
    return 'module.exports = {};';
  },
  getCacheKey() {
    // The output is always the same.
    return 'cssTransform';
  },
};


================================================
FILE: create-snowpack-app/app-scripts-react/jest/esbuildTransform.js
================================================
// NOTE: THIS IS CURRENTLY DISABLED UNTIL ESBUILD SUPPORTS ESM->CJS WITHOUT BUNDLING
// SEE: https://github.com/evanw/esbuild/issues/109

'use strict';
const path = require('path');
const execa = require('execa');
const esbuildPath = require.resolve('esbuild');
const esbuildBin = path.resolve(esbuildPath, '..', '..', 'bin', 'esbuild');

module.exports = {
  process(code, filename) {
    const result = execa.sync(
      esbuildBin,
      [
        `--loader=${path.extname(filename).substr(1)}`,
        '--format=cjs',
        '--platform=node',
        '--target=es2019',
      ],
      {input: code},
    );
    return {code: result.stdout};
  },
};


================================================
FILE: create-snowpack-app/app-scripts-react/jest/fileTransform.js
================================================
'use strict';
const path = require('path');

module.exports = {
  process(src, filename) {
    const assetFilename = path.basename(filename);
    return `module.exports = {
      __esModule: true,
      default: ${JSON.stringify(assetFilename)},
    };`;
  },
};


================================================
FILE: create-snowpack-app/app-scripts-react/jest/importMetaBabelPlugin.js
================================================
'use strict';

const template = require('@babel/template').default;

/**
 * Add import.meta.env support
 * Note: import.meta.url is not supported at this time
 */
module.exports = function importMetaBabelPlugin() {
  const ast = template.ast(`
  ({
    env: {
      ...Object.fromEntries(
        Object.entries(process.env).filter(([k]) => /^SNOWPACK_PUBLIC_/.test(k)),
      ),
      MODE: 'test',
      NODE_ENV: 'test',
    },
  })
`);
  return {
    visitor: {
      MetaProperty(path) {
        path.replaceWith(ast);
      },
    },
  };
};


================================================
FILE: create-snowpack-app/app-scripts-react/jest.config.js
================================================
const fs = require('fs');
const path = require('path');

// Use this instead of `paths.testsSetup` to avoid putting
// an absolute filename into configuration after ejecting.
// const setupTestsFile = fs.existsSync(paths.testsSetup)
//   ? `<rootDir>/src/setupTests.js`
//   : undefined;
const setupTestsFile = true;

module.exports = function () {
  return {
    verbose: true,

    setupFiles: [require.resolve('react-app-polyfill/jsdom')],
    setupFilesAfterEnv: setupTestsFile ? ['<rootDir>/jest.setup.js'] : [],
    testMatch: [
      '<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}',
      '<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}',
    ],
    transform: {
      '^.+\\.(js|jsx|ts|tsx)$': path.resolve(__dirname, 'jest/babelTransform.js'),
      '^.+\\.css$': path.resolve(__dirname, 'jest/cssTransform.js'),
      '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': path.resolve(__dirname, 'jest/fileTransform.js'),
    },
    transformIgnorePatterns: ['node_modules'],
    testEnvironment: 'jsdom',
    // transformIgnorePatterns: [
    //   "[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$",
    //   "^.+\\.module\\.(css|sass|scss)$",
    // ],
  };
};


================================================
FILE: create-snowpack-app/app-scripts-react/package.json
================================================
{
  "name": "@snowpack/app-scripts-react",
  "version": "2.0.1",
  "main": "snowpack.config.js",
  "publishConfig": {
    "access": "public"
  },
  "license": "MIT",
  "homepage": "https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-scripts-react#readme",
  "repository": {
    "type": "git",
    "url": "https://github.com/withastro/snowpack.git",
    "directory": "create-snowpack-app/app-scripts-react"
  },
  "dependencies": {
    "@babel/core": "^7.14.0",
    "@babel/preset-react": "^7.13.13",
    "@babel/preset-typescript": "^7.13.0",
    "@snowpack/plugin-babel": "^2.1.7",
    "@snowpack/plugin-dotenv": "^2.1.0",
    "@snowpack/plugin-react-refresh": "^2.5.0",
    "@snowpack/plugin-typescript": "^1.2.1",
    "babel-jest": "^27.2.2",
    "babel-preset-react-app": "^10.0.0",
    "react-app-polyfill": "^2.0.0"
  },
  "peerDependencies": {
    "jest": "^27.2.2"
  },
  "gitHead": "a01616bb0787d56cd782f94cecf2daa12c7594e4"
}


================================================
FILE: create-snowpack-app/app-scripts-react/snowpack.config.js
================================================
const fs = require('fs');
const path = require('path');

const cwd = process.cwd();
const isTS = fs.existsSync(path.join(cwd, 'tsconfig.json'));

module.exports = {
  mount: {
    public: {url: '/', static: true},
    src: {url: '/dist'},
  },
  plugins: [
    '@snowpack/plugin-react-refresh',
    '@snowpack/plugin-babel',
    '@snowpack/plugin-dotenv',
    ...(isTS ? ['@snowpack/plugin-typescript'] : []),
  ],
  devOptions: {},
  packageOptions: {},
};


================================================
FILE: create-snowpack-app/app-scripts-react/tsconfig.base.json
================================================
{
  "compilerOptions": {
    "module": "esnext",
    "target": "esnext",
    "moduleResolution": "node",
    "jsx": "preserve",
    "baseUrl": "./",
    "allowSyntheticDefaultImports": true,
    "importsNotUsedAsValues": "error",
    /* more strict checking for errors that per-file transpilers like `esbuild` would crash */
    "isolatedModules": true,
    /* noEmit - We only use TypeScript for type checking. */
    "noEmit": true,
    /* Additional Options */
    "strict": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true
  }
}


================================================
FILE: create-snowpack-app/app-scripts-svelte/jest/babelTransform.js
================================================
// @remove-file-on-eject
/**
 * Copyright (c) 2014-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
'use strict';
const fs = require('fs');
const path = require('path');
const babelJest = require('babel-jest');
const importMetaBabelPlugin = require('./importMetaBabelPlugin');

const userBabelConfig = getUserBabelConfig();

module.exports = babelJest.createTransformer({
  presets: [
    [
      '@babel/preset-env',
      {
        targets: {
          node: 'current',
        },
      },
    ],
    ...(userBabelConfig.presets || []),
  ],
  plugins: [[importMetaBabelPlugin]],
});

function getUserBabelConfig() {
  const userBabelConfigLoc = path.join(process.cwd(), 'babel.config.json');
  if (fs.existsSync(userBabelConfigLoc)) {
    return require(userBabelConfigLoc);
  }

  return {};
}


================================================
FILE: create-snowpack-app/app-scripts-svelte/jest/importMetaBabelPlugin.js
================================================
'use strict';

const template = require('@babel/template').default;

/**
 * Add import.meta.env support
 * Note: import.meta.url is not supported at this time
 */
module.exports = function importMetaBabelPlugin() {
  const ast = template.ast(`
  ({
    env: {
      ...Object.fromEntries(
        Object.entries(process.env).filter(([k]) => /^SNOWPACK_PUBLIC_/.test(k)),
      ),
      MODE: 'test',
      NODE_ENV: 'test',
    },
  })
`);
  return {
    visitor: {
      MetaProperty(path) {
        path.replaceWith(ast);
      },
    },
  };
};


================================================
FILE: create-snowpack-app/app-scripts-svelte/jest.config.js
================================================
const fs = require('fs');
const path = require('path');

// Use this instead of `paths.testsSetup` to avoid putting
// an absolute filename into configuration after ejecting.
// const setupTestsFile = fs.existsSync(paths.testsSetup)
//   ? `<rootDir>/src/setupTests.js`
//   : undefined;
const setupTestsFile = true;

module.exports = function () {
  const userSvelteConfig = getUserSvelteConfig();

  return {
    testMatch: [
      '<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}',
      '<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}',
    ],
    transform: {
      '^.+\\.svelte$': ['jest-transform-svelte', {preprocess: userSvelteConfig.preprocess}],
      '^.+\\.(js|ts)$': path.resolve(__dirname, 'jest/babelTransform.js'),
    },
    moduleFileExtensions: ['js', 'ts', 'svelte'],
    testPathIgnorePatterns: ['node_modules'],
    transformIgnorePatterns: ['node_modules'],
    bail: false,
    verbose: true,
    setupFilesAfterEnv: setupTestsFile ? ['<rootDir>/jest.setup.js'] : [],
  };
};

function getUserSvelteConfig() {
  const userSvelteConfigLoc = path.join(process.cwd(), 'svelte.config.js');
  if (fs.existsSync(userSvelteConfigLoc)) {
    return require(userSvelteConfigLoc);
  }

  return {};
}


================================================
FILE: create-snowpack-app/app-scripts-svelte/package.json
================================================
{
  "name": "@snowpack/app-scripts-svelte",
  "version": "2.0.1",
  "main": "snowpack.config.js",
  "publishConfig": {
    "access": "public"
  },
  "license": "MIT",
  "homepage": "https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-scripts-svelte#readme",
  "repository": {
    "type": "git",
    "url": "https://github.com/withastro/snowpack.git",
    "directory": "create-snowpack-app/app-scripts-svelte"
  },
  "peerDependencies": {
    "svelte": "^3.21.0"
  },
  "devDependencies": {
    "svelte": "^3.21.0"
  },
  "dependencies": {
    "@babel/core": "^7.14.0",
    "@babel/preset-typescript": "^7.13.0",
    "@snowpack/plugin-dotenv": "^2.1.0",
    "@snowpack/plugin-svelte": "^3.6.1",
    "babel-jest": "^26.6.3",
    "jest-transform-svelte": "^2.1.1"
  },
  "gitHead": "a01616bb0787d56cd782f94cecf2daa12c7594e4"
}


================================================
FILE: create-snowpack-app/app-scripts-svelte/snowpack.config.js
================================================
module.exports = {
  mount: {
    public: {url: '/', static: true},
    src: {url: '/dist'},
  },
  plugins: ['@snowpack/plugin-svelte', '@snowpack/plugin-dotenv'],
};


================================================
FILE: create-snowpack-app/app-scripts-vue/package.json
================================================
{
  "name": "@snowpack/app-scripts-vue",
  "version": "2.0.0",
  "main": "snowpack.config.js",
  "license": "MIT",
  "homepage": "https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-scripts-vue#readme",
  "repository": {
    "type": "git",
    "url": "https://github.com/withastro/snowpack.git",
    "directory": "create-snowpack-app/app-scripts-vue"
  },
  "publishConfig": {
    "access": "public"
  },
  "dependencies": {
    "@snowpack/plugin-dotenv": "^2.0.4",
    "@snowpack/plugin-vue": "^2.2.4"
  },
  "gitHead": "a01616bb0787d56cd782f94cecf2daa12c7594e4"
}


================================================
FILE: create-snowpack-app/app-scripts-vue/snowpack.config.js
================================================
module.exports = {
  mount: {
    public: {url: '/', static: true},
    src: {url: '/dist'},
  },
  plugins: ['@snowpack/plugin-vue', '@snowpack/plugin-dotenv'],
};


================================================
FILE: create-snowpack-app/app-scripts-vue/tsconfig.base.json
================================================
{
  "compilerOptions": {
    "module": "esnext",
    "target": "es2015",
    "moduleResolution": "node",
    "jsx": "preserve",
    "baseUrl": "./",
    "allowSyntheticDefaultImports": true,
    "importsNotUsedAsValues": "error",
    /* more strict checking for errors that per-file transpilers like `esbuild` would crash */
    "isolatedModules": true,
    /* noEmit - We only use TypeScript for type checking. */
    "noEmit": true,
    /* Additional Options */
    "strict": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true
  }
}


================================================
FILE: create-snowpack-app/app-template-11ty/.eleventy.js
================================================
module.exports = function (eleventyConfig) {
  eleventyConfig.setTemplateFormats([
    // Templates:
    'html',
    'njk',
    'md',
    // Static Assets:
    'css',
    'jpeg',
    'jpg',
    'png',
    'svg',
    'woff',
    'woff2',
  ]);
  eleventyConfig.addPassthroughCopy('static');

  return {
    dir: {
      input: '_template',
      includes: '../_includes',
      output: '_output',
    },
  };
};


================================================
FILE: create-snowpack-app/app-template-11ty/.npmignore
================================================
.build
build

================================================
FILE: create-snowpack-app/app-template-11ty/.prettierrc
================================================
{
  "singleQuote": true,
  "trailingComma": "all"
}


================================================
FILE: create-snowpack-app/app-template-11ty/README.md
================================================
# New Project

> ✨ Bootstrapped with Create Snowpack App (CSA).

## Available Scripts

### npm start

Runs the app in the development mode.
Open http://localhost:8080 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

### npm run build

Builds a static copy of your site to the `build/` folder.
Your app is ready to be deployed!

**For the best production performance:** Add a build bundler plugin like [@snowpack/plugin-webpack](https://github.com/withastro/snowpack/tree/main/plugins/plugin-webpack) or [snowpack-plugin-rollup-bundle](https://github.com/ParamagicDev/snowpack-plugin-rollup-bundle) to your `snowpack.config.mjs` config file.

### Q: What about Eject?

No eject needed! Snowpack guarantees zero lock-in, and CSA strives for the same.


================================================
FILE: create-snowpack-app/app-template-11ty/_includes/layouts/base.njk
================================================
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <link rel="icon" href="/static/favicon.png" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="description" content="Web site created using create-snowpack-app" />
    <link rel="stylesheet" type="text/css" href="/static/index.css" />
    <title>Snowpack App</title>
  </head>
  <body>  
    <div class="banner">
      <img height="128px" style="padding-right: 0" id="img" src="/static/logo.svg" />
      <svg height="32px" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="plus" class="svg-inline--fa fa-plus fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"></path></svg>
      <svg height="64px" style="padding-left: 8px;" viewBox="0 0 640 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
        <g id="Page-1" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
            <g id="mountain-solid" transform="translate(-1.000000, 0.000000)" fill-rule="nonzero">
                <path d="M635.92,462.7 L347.92,14.7 C342.03,5.54 331.89,0 321,0 C310.11,0 299.97,5.54 294.08,14.7 L6.08,462.7 C-0.250773249,472.547007 -0.699487627,485.064987 4.91,495.34 C10.522069,505.612419 21.2945349,512 33,512 L609,512 C620.71,512 631.48,505.61 637.09,495.33 C642.699457,485.058495 642.250708,472.543372 635.92,462.7 Z M321,91.18 L406.39,224 L321,224 L257,288 L218.94,249.94 L321,91.18 Z" id="Shape"></path>
            </g>
        </g>
      </svg>
    </div>

    {{ content | safe }}
  </body>
</html>


================================================
FILE: create-snowpack-app/app-template-11ty/_output/about/index.html
================================================
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <link rel="icon" href="/static/favicon.png" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="description" content="Web site created using create-snowpack-app" />
    <link rel="stylesheet" type="text/css" href="/static/index.css" />
    <title>Snowpack App</title>
  </head>
  <body>  
    <div class="banner">
      <img height="128px" style="padding-right: 0" id="img" src="/static/logo.svg" />
      <svg height="32px" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="plus" class="svg-inline--fa fa-plus fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"></path></svg>
      <svg height="64px" style="padding-left: 8px;" viewBox="0 0 640 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
        <g id="Page-1" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
            <g id="mountain-solid" transform="translate(-1.000000, 0.000000)" fill-rule="nonzero">
                <path d="M635.92,462.7 L347.92,14.7 C342.03,5.54 331.89,0 321,0 C310.11,0 299.97,5.54 294.08,14.7 L6.08,462.7 C-0.250773249,472.547007 -0.699487627,485.064987 4.91,495.34 C10.522069,505.612419 21.2945349,512 33,512 L609,512 C620.71,512 631.48,505.61 637.09,495.33 C642.699457,485.058495 642.250708,472.543372 635.92,462.7 Z M321,91.18 L406.39,224 L321,224 L257,288 L218.94,249.94 L321,91.18 Z" id="Shape"></path>
            </g>
        </g>
      </svg>
    </div>

    <h1>About</h1>
<p><a href="https://www.11ty.dev/">11ty</a>, powered by <a href="http://snowpack.dev/">Snowpack</a>.</p>
<br/>
<p><a href="/">Back to Home</a></p>

  </body>
</html>


================================================
FILE: create-snowpack-app/app-template-11ty/_output/index.html
================================================
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <link rel="icon" href="/static/favicon.png" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="description" content="Web site created using create-snowpack-app" />
    <link rel="stylesheet" type="text/css" href="/static/index.css" />
    <title>Snowpack App</title>
  </head>
  <body>  
    <div class="banner">
      <img height="128px" style="padding-right: 0" id="img" src="/static/logo.svg" />
      <svg height="32px" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="plus" class="svg-inline--fa fa-plus fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"></path></svg>
      <svg height="64px" style="padding-left: 8px;" viewBox="0 0 640 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
        <g id="Page-1" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
            <g id="mountain-solid" transform="translate(-1.000000, 0.000000)" fill-rule="nonzero">
                <path d="M635.92,462.7 L347.92,14.7 C342.03,5.54 331.89,0 321,0 C310.11,0 299.97,5.54 294.08,14.7 L6.08,462.7 C-0.250773249,472.547007 -0.699487627,485.064987 4.91,495.34 C10.522069,505.612419 21.2945349,512 33,512 L609,512 C620.71,512 631.48,505.61 637.09,495.33 C642.699457,485.058495 642.250708,472.543372 635.92,462.7 Z M321,91.18 L406.39,224 L321,224 L257,288 L218.94,249.94 L321,91.18 Z" id="Shape"></path>
            </g>
        </g>
      </svg>
    </div>

    
<canvas id="canvas"></canvas>
<script type="module" src="/dist/index.js"></script>
<a href="/about">About Page</a>
  </body>
</html>


================================================
FILE: create-snowpack-app/app-template-11ty/_output/static/index.css
================================================
body {
  background: #222;
  color: #eee;
  font-family: Arial, Helvetica, sans-serif;
  text-align: center;
}
a {
  color: #aaa;
}
.banner {
  display: flex;
  justify-content: center;
  align-items: center;
}
.banner img,
.banner svg {
  display: block;
  padding: 1.5rem;
}

#canvas {
  display: block;
  margin: 0rem auto;
  width: 720px;
  height: 420px;
}


================================================
FILE: create-snowpack-app/app-template-11ty/_template/about.md
================================================
---
layout: layouts/base.njk
---

# About

[11ty](https://www.11ty.dev/), powered by [Snowpack](http://snowpack.dev/).

<br/>

[Back to Home](/)


================================================
FILE: create-snowpack-app/app-template-11ty/_template/index.njk
================================================
---
layout: layouts/base.njk
---

<canvas id="canvas"></canvas>
<script type="module" src="/dist/index.js"></script>
<a href="/about">About Page</a>

================================================
FILE: create-snowpack-app/app-template-11ty/_template/static/index.css
================================================
body {
  background: #222;
  color: #eee;
  font-family: Arial, Helvetica, sans-serif;
  text-align: center;
}
a {
  color: #aaa;
}
.banner {
  display: flex;
  justify-content: center;
  align-items: center;
}
.banner img,
.banner svg {
  display: block;
  padding: 1.5rem;
}

#canvas {
  display: block;
  margin: 0rem auto;
  width: 720px;
  height: 420px;
}


================================================
FILE: create-snowpack-app/app-template-11ty/_template/static/robots.txt
================================================
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:


================================================
FILE: create-snowpack-app/app-template-11ty/package.json
================================================
{
  "name": "@snowpack/app-template-11ty",
  "description": "A preconfigured template for Snowpack with Eleventy",
  "version": "2.0.1",
  "license": "MIT",
  "homepage": "https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-11ty#readme",
  "repository": {
    "type": "git",
    "url": "https://github.com/withastro/snowpack.git",
    "directory": "create-snowpack-app/app-template-11ty"
  },
  "keywords": [
    "csa-template"
  ],
  "publishConfig": {
    "access": "public"
  },
  "scripts": {
    "start": "snowpack dev",
    "build": "snowpack build",
    "format": "prettier --write \"src/**/*.js\"",
    "lint": "prettier --check \"src/**/*.js\"",
    "test": "echo \"This template does not include a test runner by default.\" && exit 1"
  },
  "dependencies": {
    "canvas-confetti": "^1.2.0"
  },
  "devDependencies": {
    "@11ty/eleventy": "^0.11.0",
    "@snowpack/plugin-run-script": "^2.3.0",
    "prettier": "^2.2.1",
    "snowpack": "^3.3.7"
  },
  "gitHead": "a01616bb0787d56cd782f94cecf2daa12c7594e4"
}


================================================
FILE: create-snowpack-app/app-template-11ty/snowpack.config.mjs
================================================
/** @type {import("snowpack").SnowpackUserConfig } */
export default {
  mount: {
    _output: { url: '/', static: true },
    src: { url: '/dist' },
  },
  plugins: [
    ['@snowpack/plugin-run-script', { cmd: 'eleventy', watch: '$1 --watch' }],
  ],
  routes: [
    /* Enable an SPA Fallback in development: */
    // {"match": "routes", "src": ".*", "dest": "/index.html"},
  ],
  optimize: {
    /* Example: Bundle your final build: */
    // "bundle": true,
  },
  packageOptions: {
    /* ... */
  },
  devOptions: {
    // Eleventy updates multiple files at once, so add a 300ms delay before we trigger a browser update
    hmrDelay: 300,
  },
  buildOptions: {
    /* ... */
  },
};


================================================
FILE: create-snowpack-app/app-template-11ty/src/index.js
================================================
/**
 * This file is just a silly example to show everything working in the browser.
 * When you're ready to start on your site, clear the file. Happy hacking!
 **/

import confetti from 'canvas-confetti';

confetti.create(document.getElementById('canvas'), {
  resize: true,
  useWorker: true,
})({ particleCount: 200, spread: 200 });


================================================
FILE: create-snowpack-app/app-template-blank/.npmignore
================================================
.build
build

================================================
FILE: create-snowpack-app/app-template-blank/.prettierrc
================================================
{
  "singleQuote": true,
  "trailingComma": "all"
}


================================================
FILE: create-snowpack-app/app-template-blank/README.md
================================================
# New Project

> ✨ Bootstrapped with Create Snowpack App (CSA).

## Available Scripts

### npm start

Runs the app in the development mode.
Open http://localhost:8080 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

### npm run build

Builds a static copy of your site to the `build/` folder.
Your app is ready to be deployed!

**For the best production performance:** Add a build bundler plugin like [@snowpack/plugin-webpack](https://github.com/withastro/snowpack/tree/main/plugins/plugin-webpack) or [snowpack-plugin-rollup-bundle](https://github.com/ParamagicDev/snowpack-plugin-rollup-bundle) to your `snowpack.config.mjs` config file.

### Q: What about Eject?

No eject needed! Snowpack guarantees zero lock-in, and CSA strives for the same.


================================================
FILE: create-snowpack-app/app-template-blank/package.json
================================================
{
  "name": "@snowpack/app-template-blank",
  "description": "A preconfigured template for Snowpack with Prettier",
  "version": "2.2.0",
  "license": "MIT",
  "homepage": "https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-blank#readme",
  "repository": {
    "type": "git",
    "url": "https://github.com/withastro/snowpack.git",
    "directory": "create-snowpack-app/app-template-blank"
  },
  "keywords": [
    "csa-template"
  ],
  "publishConfig": {
    "access": "public"
  },
  "scripts": {
    "start": "snowpack dev",
    "build": "snowpack build",
    "format": "prettier --write \"src/**/*.js\"",
    "lint": "prettier --check \"src/**/*.js\"",
    "test": "echo \"This template does not include a test runner by default.\" && exit 1"
  },
  "dependencies": {},
  "devDependencies": {
    "prettier": "^2.2.1",
    "snowpack": "^3.3.7"
  },
  "gitHead": "a01616bb0787d56cd782f94cecf2daa12c7594e4"
}


================================================
FILE: create-snowpack-app/app-template-blank/public/index.html
================================================
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <link rel="icon" href="/favicon.ico" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="description" content="Web site created using create-snowpack-app" />
    <link rel="stylesheet" type="text/css" href="/dist/index.css" />
    <script type="module" src="/dist/index.js" defer></script>
    <title>Snowpack App</title>
  </head>
  <body>
    <img id="img" src="/logo.svg" />
    <p>Page has been open for <code id="counter">0</code> seconds.</p>
    <p>
      <a href="https://developer.mozilla.org/en-US/docs/Learn">
        Learn web development
      </a>
    </p>
    <noscript>You need to enable JavaScript to run this app.</noscript>
    <!--
      This HTML file is a template.

      You can add webfonts, meta tags, or analytics to this file.
      The build step will place the bundled scripts into the <body> tag.

      To begin the development, run `npm start` or `yarn start`.
      To create a production bundle, use `npm run build` or `yarn build`.
    -->
  </body>
</html>


================================================
FILE: create-snowpack-app/app-template-blank/public/robots.txt
================================================
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:


================================================
FILE: create-snowpack-app/app-template-blank/snowpack.config.mjs
================================================
/** @type {import("snowpack").SnowpackUserConfig } */
export default {
  mount: {
    public: { url: '/', static: true },
    src: { url: '/dist' },
  },
  plugins: [
    /* ... */
  ],
  routes: [
    /* Enable an SPA Fallback in development: */
    // {"match": "routes", "src": ".*", "dest": "/index.html"},
  ],
  optimize: {
    /* Example: Bundle your final build: */
    // "bundle": true,
  },
  packageOptions: {
    /* ... */
  },
  devOptions: {
    /* ... */
  },
  buildOptions: {
    /* ... */
  },
};


================================================
FILE: create-snowpack-app/app-template-blank/src/index.css
================================================
body {
  font-size: calc(10px + 2vmin);
  font-family: Arial, Helvetica, sans-serif;
}

#img {
  display: block;
  margin: auto;
  height: 128px;
  width: 128px;
  padding: 2rem;
}

p {
  display: block;
  margin: 1rem auto;
  text-align: center;
}

#counter {
  background-color: rgb(46, 94, 130);
  color: white;
  padding: 4px 8px;
  border-radius: 4px;
}

a {
  color: rgb(46, 94, 130);
}


================================================
FILE: create-snowpack-app/app-template-blank/src/index.js
================================================
const counter = document.querySelector('#counter');
let seconds = 0;

setInterval(() => {
  seconds += 1;
  counter.textContent = seconds;
}, 1000);


================================================
FILE: create-snowpack-app/app-template-blank-typescript/.npmignore
================================================
.build
build

================================================
FILE: create-snowpack-app/app-template-blank-typescript/.prettierrc
================================================
{
  "singleQuote": true,
  "trailingComma": "all"
}


================================================
FILE: create-snowpack-app/app-template-blank-typescript/README.md
================================================
# New Project

> ✨ Bootstrapped with Create Snowpack App (CSA).

## Available Scripts

### npm start

Runs the app in the development mode.
Open http://localhost:8080 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

### npm run build

Builds a static copy of your site to the `build/` folder.
Your app is ready to be deployed!

**For the best production performance:** Add a build bundler plugin like [@snowpack/plugin-webpack](https://github.com/withastro/snowpack/tree/main/plugins/plugin-webpack) or [snowpack-plugin-rollup-bundle](https://github.com/ParamagicDev/snowpack-plugin-rollup-bundle) to your `snowpack.config.mjs` config file.

### Q: What about Eject?

No eject needed! Snowpack guarantees zero lock-in, and CSA strives for the same.


================================================
FILE: create-snowpack-app/app-template-blank-typescript/package.json
================================================
{
  "name": "@snowpack/app-template-blank-typescript",
  "description": "A preconfigured template for Snowpack with Typescript",
  "version": "2.2.0",
  "license": "MIT",
  "homepage": "https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-blank-typescript#readme",
  "repository": {
    "type": "git",
    "url": "https://github.com/withastro/snowpack.git",
    "directory": "create-snowpack-app/app-template-blank-typescript"
  },
  "keywords": [
    "csa-template"
  ],
  "publishConfig": {
    "access": "public"
  },
  "scripts": {
    "start": "snowpack dev",
    "build": "snowpack build",
    "format": "prettier --write \"src/**/*.{ts,js}\"",
    "lint": "prettier --check \"src/**/*.{ts,js}\"",
    "test": "echo \"This template does not include a test runner by default.\" && exit 1"
  },
  "dependencies": {},
  "devDependencies": {
    "@snowpack/plugin-typescript": "^1.2.1",
    "@types/snowpack-env": "^2.3.3",
    "prettier": "^2.2.1",
    "snowpack": "^3.3.7",
    "typescript": "^4.3.4"
  },
  "gitHead": "a01616bb0787d56cd782f94cecf2daa12c7594e4"
}


================================================
FILE: create-snowpack-app/app-template-blank-typescript/public/index.html
================================================
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <link rel="icon" href="/favicon.ico" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="description" content="Web site created using create-snowpack-app" />
    <link rel="stylesheet" type="text/css" href="/dist/index.css" />
    <script type="module" src="/dist/index.js" defer></script>
    <title>Snowpack App</title>
  </head>
  <body>
    <img id="img" src="/logo.svg" />
    <p>Page has been open for <code id="counter">0</code> seconds.</p>
    <p>
      <a href="https://developer.mozilla.org/en-US/docs/Learn">
        Learn web development
      </a>
    </p>
    <noscript>You need to enable JavaScript to run this app.</noscript>
    <!--
      This HTML file is a template.

      You can add webfonts, meta tags, or analytics to this file.
      The build step will place the bundled scripts into the <body> tag.

      To begin the development, run `npm start` or `yarn start`.
      To create a production bundle, use `npm run build` or `yarn build`.
    -->
  </body>
</html>


================================================
FILE: create-snowpack-app/app-template-blank-typescript/public/robots.txt
================================================
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:


================================================
FILE: create-snowpack-app/app-template-blank-typescript/snowpack.config.mjs
================================================
/** @type {import("snowpack").SnowpackUserConfig } */
export default {
  mount: {
    public: { url: '/', static: true },
    src: { url: '/dist' },
  },
  plugins: [
    [
      '@snowpack/plugin-typescript',
      {
        /* Yarn PnP workaround: see https://www.npmjs.com/package/@snowpack/plugin-typescript */
        ...(process.versions.pnp ? { tsc: 'yarn pnpify tsc' } : {}),
      },
    ],
  ],
  routes: [
    /* Enable an SPA Fallback in development: */
    // {"match": "routes", "src": ".*", "dest": "/index.html"},
  ],
  optimize: {
    /* Example: Bundle your final build: */
    // "bundle": true,
  },
  packageOptions: {
    /* ... */
  },
  devOptions: {
    /* ... */
  },
  buildOptions: {
    /* ... */
  },
};


================================================
FILE: create-snowpack-app/app-template-blank-typescript/src/index.css
================================================
body {
  font-size: calc(10px + 2vmin);
  font-family: Arial, Helvetica, sans-serif;
}

#img {
  display: block;
  margin: auto;
  height: 128px;
  width: 128px;
  padding: 2rem;
}

p {
  display: block;
  margin: 1rem auto;
  text-align: center;
}

#counter {
  background-color: rgb(46, 94, 130);
  color: white;
  padding: 4px 8px;
  border-radius: 4px;
}

a {
  color: rgb(46, 94, 130);
}


================================================
FILE: create-snowpack-app/app-template-blank-typescript/src/index.ts
================================================
const counter = document.querySelector('#counter') as HTMLSpanElement;
let seconds = 0;

setInterval(() => {
  seconds += 1;
  counter.textContent = seconds.toString();
}, 1000);

export {};


================================================
FILE: create-snowpack-app/app-template-blank-typescript/tsconfig.json
================================================
{
  "include": ["src", "types"],
  "compilerOptions": {
    "module": "esnext",
    "target": "esnext",
    "moduleResolution": "node",
    "jsx": "preserve",
    "baseUrl": "./",
    /* paths - import rewriting/resolving */
    "paths": {
      // If you configured any Snowpack aliases, add them here.
      // Add this line to get types for streaming imports (packageOptions.source="remote"):
      //     "*": [".snowpack/types/*"]
      // More info: https://www.snowpack.dev/guides/streaming-imports
    },
    "allowSyntheticDefaultImports": true,
    "importsNotUsedAsValues": "error",
    /* more strict checking for errors that per-file transpilers like `esbuild` would crash */
    "isolatedModules": true,
    /* noEmit - We only use TypeScript for type checking. */
    "noEmit": true,
    /* Additional Options */
    "strict": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true,
    "useDefineForClassFields": true
  }
}


================================================
FILE: create-snowpack-app/app-template-blank-typescript/types/static.d.ts
================================================
/* Use this file to declare any custom file extensions for importing */
/* Use this folder to also add/extend a package d.ts file, if needed. */

/* CSS MODULES */
declare module '*.module.css' {
  const classes: { [key: string]: string };
  export default classes;
}
declare module '*.module.scss' {
  const classes: { [key: string]: string };
  export default classes;
}
declare module '*.module.sass' {
  const classes: { [key: string]: string };
  export default classes;
}
declare module '*.module.less' {
  const classes: { [key: string]: string };
  export default classes;
}
declare module '*.module.styl' {
  const classes: { [key: string]: string };
  export default classes;
}

/* CSS */
declare module '*.css';
declare module '*.scss';
declare module '*.sass';
declare module '*.less';
declare module '*.styl';

/* IMAGES */
declare module '*.svg' {
  const ref: string;
  export default ref;
}
declare module '*.bmp' {
  const ref: string;
  export default ref;
}
declare module '*.gif' {
  const ref: string;
  export default ref;
}
declare module '*.jpg' {
  const ref: string;
  export default ref;
}
declare module '*.jpeg' {
  const ref: string;
  export default ref;
}
declare module '*.png' {
  const ref: string;
  export default ref;
}

/* CUSTOM: ADD YOUR OWN HERE */


================================================
FILE: create-snowpack-app/app-template-lit-element/.npmignore
================================================
.build
build

================================================
FILE: create-snowpack-app/app-template-lit-element/.prettierrc
================================================
{
  "singleQuote": true,
  "trailingComma": "all"
}


================================================
FILE: create-snowpack-app/app-template-lit-element/README.md
================================================
# New Project

> ✨ Bootstrapped with Create Snowpack App (CSA).

## Available Scripts

### npm start

Runs the app in the development mode.
Open http://localhost:8080 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

### npm run build

Builds the app for production to the `dist/` folder.
It correctly bundles the app in production mode and optimizes the build for the best performance.

## Directives

In case you need to add a directive like `classMap` you should add the extension to the import:

```
import { classMap } from "lit-html/directives/class-map.js";
```


================================================
FILE: create-snowpack-app/app-template-lit-element/babel.config.json
================================================
{
  "plugins": [
    ["@babel/plugin-proposal-decorators", { "decoratorsBeforeExport": true }],
    ["@babel/plugin-proposal-class-properties", { "loose": true }]
  ]
}


================================================
FILE: create-snowpack-app/app-template-lit-element/package.json
================================================
{
  "name": "@snowpack/app-template-lit-element",
  "description": "A preconfigured template for Snowpack with LitElement",
  "version": "2.1.2",
  "license": "MIT",
  "homepage": "https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-lit-element#readme",
  "repository": {
    "type": "git",
    "url": "https://github.com/withastro/snowpack.git",
    "directory": "create-snowpack-app/app-template-lit-element"
  },
  "keywords": [
    "csa-template"
  ],
  "publishConfig": {
    "access": "public"
  },
  "scripts": {
    "start": "snowpack dev",
    "build": "snowpack build",
    "format": "prettier --write \"src/**/*.js\"",
    "lint": "prettier --check \"src/**/*.js\"",
    "test": "echo \"This template does not include a test runner by default.\" && exit 1"
  },
  "dependencies": {
    "lit-element": "^2.4.0",
    "lit-html": "^1.4.0"
  },
  "devDependencies": {
    "@babel/plugin-proposal-class-properties": "^7.13.0",
    "@babel/plugin-proposal-decorators": "^7.13.15",
    "@snowpack/plugin-babel": "^2.1.7",
    "@snowpack/plugin-dotenv": "^2.1.0",
    "prettier": "^2.2.1",
    "snowpack": "^3.3.7"
  },
  "gitHead": "a01616bb0787d56cd782f94cecf2daa12c7594e4"
}


================================================
FILE: create-snowpack-app/app-template-lit-element/public/index.css
================================================
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  color: white;
  margin: 0;
  padding: 0;
}


================================================
FILE: create-snowpack-app/app-template-lit-element/public/index.html
================================================
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <link rel="icon" href="/favicon.ico" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="description" content="Web site created using create-snowpack-app" />
    <link rel="stylesheet" type="text/css" href="/index.css" />
    <title>Snowpack App</title>
  </head>
  <body>
    <app-root></app-root>
    <noscript>You need to enable JavaScript to run this app.</noscript>
    <script type="module" src="/dist/index.js"></script>
    <!--
      This HTML file is a template.
      If you open it directly in the browser, you will see an empty page.

      You can add webfonts, meta tags, or analytics to this file.
      The build step will place the bundled scripts into the <body> tag.

      To begin the development, run `npm start` or `yarn start`.
      To create a production bundle, use `npm run build` or `yarn build`.
    -->
  </body>
</html>


================================================
FILE: create-snowpack-app/app-template-lit-element/public/robots.txt
================================================
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:


================================================
FILE: create-snowpack-app/app-template-lit-element/snowpack.config.mjs
================================================
/** @type {import("snowpack").SnowpackUserConfig } */
export default {
  mount: {
    public: { url: '/', static: true },
    src: { url: '/dist' },
  },
  plugins: ['@snowpack/plugin-babel', '@snowpack/plugin-dotenv'],
  routes: [
    /* Enable an SPA Fallback in development: */
    // {"match": "routes", "src": ".*", "dest": "/index.html"},
  ],
  optimize: {
    /* Example: Bundle your final build: */
    // "bundle": true,
  },
  packageOptions: {
    /* ... */
  },
  devOptions: {
    /* ... */
  },
  buildOptions: {
    /* ... */
  },
};


================================================
FILE: create-snowpack-app/app-template-lit-element/src/app-root.js
================================================
import { customElement, property, LitElement, html, css } from 'lit-element';

@customElement('app-root')
export class AppRoot extends LitElement {
  @property() message = 'Learn LitElement';

  static get styles() {
    return css`
      h1 {
        font-size: 4rem;
      }
      .wrapper {
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column;
        height: 100vh;
        background-color: #2196f3;
        background: linear-gradient(315deg, #b4d2ea 0%, #2196f3 100%);
        font-size: 24px;
      }
      .link {
        color: white;
      }
    `;
  }

  render() {
    return html`
      <div class="wrapper">
        <h1>LitElement + Snowpack</h1>
        <p>Edit <code>src/app-root.js</code> and save to reload.</p>
        <a
          class="link"
          href="https://lit-element.polymer-project.org/"
          target="_blank"
          rel="noopener noreferrer"
        >
          ${this.message}
        </a>
      </div>
    `;
  }
}


================================================
FILE: create-snowpack-app/app-template-lit-element/src/index.js
================================================
import './app-root';


================================================
FILE: create-snowpack-app/app-template-lit-element-typescript/.npmignore
================================================
.build
build

================================================
FILE: create-snowpack-app/app-template-lit-element-typescript/.prettierrc
================================================
{
  "singleQuote": true,
  "trailingComma": "all"
}


================================================
FILE: create-snowpack-app/app-template-lit-element-typescript/README.md
================================================
# New Project

> ✨ Bootstrapped with Create Snowpack App (CSA).

## Available Scripts

### npm start

Runs the app in the development mode.
Open http://localhost:8080 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

### npm run build

Builds the app for production to the `dist/` folder.
It correctly bundles the app in production mode and optimizes the build for the best performance.

## Directives

In case you need to add a directive like `classMap` you should add the extension to the import:

```
import { classMap } from "lit-html/directives/class-map.js";
```


================================================
FILE: create-snowpack-app/app-template-lit-element-typescript/babel.config.json
================================================
{
  "presets": ["@babel/preset-typescript"],
  "plugins": [
    ["@babel/plugin-proposal-decorators", { "decoratorsBeforeExport": true }],
    ["@babel/plugin-proposal-class-properties", { "loose": true }]
  ]
}


================================================
FILE: create-snowpack-app/app-template-lit-element-typescript/package.json
================================================
{
  "name": "@snowpack/app-template-lit-element-typescript",
  "description": "A preconfigured template for Snowpack with TypeScript and LitElement",
  "version": "2.1.3",
  "license": "MIT",
  "homepage": "https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-lit-element-typescript#readme",
  "repository": {
    "type": "git",
    "url": "https://github.com/withastro/snowpack.git",
    "directory": "create-snowpack-app/app-template-lit-element-typescript"
  },
  "keywords": [
    "csa-template"
  ],
  "publishConfig": {
    "access": "public"
  },
  "scripts": {
    "start": "snowpack dev",
    "build": "snowpack build",
    "format": "prettier --write \"src/**/*.ts\"",
    "lint": "prettier --check \"src/**/*.ts\"",
    "test": "echo \"This template does not include a test runner by default.\" && exit 1"
  },
  "dependencies": {
    "lit-element": "^2.4.0",
    "lit-html": "^1.4.0"
  },
  "devDependencies": {
    "@babel/plugin-proposal-class-properties": "^7.13.0",
    "@babel/plugin-proposal-decorators": "^7.13.15",
    "@babel/preset-typescript": "^7.13.0",
    "@snowpack/plugin-babel": "^2.1.7",
    "@snowpack/plugin-dotenv": "^2.1.0",
    "@snowpack/plugin-typescript": "^1.2.1",
    "@types/snowpack-env": "^2.3.3",
    "prettier": "^2.2.1",
    "snowpack": "^3.3.7",
    "typescript": "^4.3.4"
  },
  "gitHead": "a01616bb0787d56cd782f94cecf2daa12c7594e4"
}


================================================
FILE: create-snowpack-app/app-template-lit-element-typescript/public/index.css
================================================
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  color: white;
  margin: 0;
  padding: 0;
}


================================================
FILE: create-snowpack-app/app-template-lit-element-typescript/public/index.html
================================================
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <link rel="icon" href="/favicon.ico" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="description" content="Web site created using create-snowpack-app" />
    <link rel="stylesheet" type="text/css" href="/index.css" />
    <title>Snowpack App</title>
  </head>
  <body>
    <app-root></app-root>
    <noscript>You need to enable JavaScript to run this app.</noscript>
    <script type="module" src="/dist/index.js"></script>
    <!--
      This HTML file is a template.
      If you open it directly in the browser, you will see an empty page.

      You can add webfonts, meta tags, or analytics to this file.
      The build step will place the bundled scripts into the <body> tag.

      To begin the development, run `npm start` or `yarn start`.
      To create a production bundle, use `npm run build` or `yarn build`.
    -->
  </body>
</html>


================================================
FILE: create-snowpack-app/app-template-lit-element-typescript/public/robots.txt
================================================
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:


================================================
FILE: create-snowpack-app/app-template-lit-element-typescript/snowpack.config.mjs
================================================
/** @type {import("snowpack").SnowpackUserConfig } */
export default {
  mount: {
    public: { url: '/', static: true },
    src: { url: '/dist' },
  },
  plugins: [
    '@snowpack/plugin-babel',
    '@snowpack/plugin-dotenv',
    [
      '@snowpack/plugin-typescript',
      {
        /* Yarn PnP workaround: see https://www.npmjs.com/package/@snowpack/plugin-typescript */
        ...(process.versions.pnp ? { tsc: 'yarn pnpify tsc' } : {}),
      },
    ],
  ],
  routes: [
    /* Enable an SPA Fallback in development: */
    // {"match": "routes", "src": ".*", "dest": "/index.html"},
  ],
  optimize: {
    /* Example: Bundle your final build: */
    // "bundle": true,
  },
  packageOptions: {
    /* ... */
  },
  devOptions: {
    /* ... */
  },
  buildOptions: {
    /* ... */
  },
};


================================================
FILE: create-snowpack-app/app-template-lit-element-typescript/src/app-root.ts
================================================
import { customElement, property, LitElement, html, css } from 'lit-element';

@customElement('app-root')
export class AppRoot extends LitElement {
  @property() message = 'Learn LitElement';

  static get styles() {
    return css`
      h1 {
        font-size: 4rem;
      }
      .wrapper {
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column;
        height: 100vh;
        background-color: #2196f3;
        background: linear-gradient(315deg, #b4d2ea 0%, #2196f3 100%);
        font-size: 24px;
      }
      .link {
        color: white;
      }
    `;
  }

  render() {
    return html`
      <div class="wrapper">
        <h1>LitElement + Snowpack</h1>
        <p>Edit <code>src/app-root.ts</code> and save to reload.</p>
        <a
          class="link"
          href="https://lit-element.polymer-project.org/"
          target="_blank"
          rel="noopener noreferrer"
        >
          ${this.message}
        </a>
      </div>
    `;
  }
}


================================================
FILE: create-snowpack-app/app-template-lit-element-typescript/src/index.ts
================================================
import './app-root';


================================================
FILE: create-snowpack-app/app-template-lit-element-typescript/tsconfig.json
================================================
{
  "include": ["src", "types"],
  "compilerOptions": {
    "module": "esnext",
    "target": "esnext",
    "moduleResolution": "node",
    "jsx": "preserve",
    "baseUrl": "./",
    /* paths - import rewriting/resolving */
    "paths": {
      // If you configured any Snowpack aliases, add them here.
      // Add this line to get types for streaming imports (packageOptions.source="remote"):
      //     "*": [".snowpack/types/*"]
      // More info: https://www.snowpack.dev/guides/streaming-imports
    },
    /* noEmit - Snowpack builds (emits) files, not tsc. */
    "noEmit": true,
    /* LitElement - Add decorator support! */
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    /* Additional Options */
    "strict": true,
    "skipLibCheck": true,
    "types": ["snowpack-env"],
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true,
    "allowSyntheticDefaultImports": true,
    "importsNotUsedAsValues": "error"
  }
}


================================================
FILE: create-snowpack-app/app-template-lit-element-typescript/types/static.d.ts
================================================
/* Use this file to declare any custom file extensions for importing */
/* Use this folder to also add/extend a package d.ts file, if needed. */

/* CSS MODULES */
declare module '*.module.css' {
  const classes: { [key: string]: string };
  export default classes;
}
declare module '*.module.scss' {
  const classes: { [key: string]: string };
  export default classes;
}
declare module '*.module.sass' {
  const classes: { [key: string]: string };
  export default classes;
}
declare module '*.module.less' {
  const classes: { [key: string]: string };
  export default classes;
}
declare module '*.module.styl' {
  const classes: { [key: string]: string };
  export default classes;
}

/* CSS */
declare module '*.css';
declare module '*.scss';
declare module '*.sass';
declare module '*.less';
declare module '*.styl';

/* IMAGES */
declare module '*.svg' {
  const ref: string;
  export default ref;
}
declare module '*.bmp' {
  const ref: string;
  export default ref;
}
declare module '*.gif' {
  const ref: string;
  export default ref;
}
declare module '*.jpg' {
  const ref: string;
  export default ref;
}
declare module '*.jpeg' {
  const ref: string;
  export default ref;
}
declare module '*.png' {
  const ref: string;
  export default ref;
}

/* CUSTOM: ADD YOUR OWN HERE */


================================================
FILE: create-snowpack-app/app-template-minimal/README.md
================================================
# New Project

> ✨ Bootstrapped with Create Snowpack App (CSA).

## Available Scripts

### npm start

Runs the app in the development mode.
Open http://localhost:8080 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

### npm run build

Builds a static copy of your site to the `build/` folder.
Your app is ready to be deployed!

**For the best production performance:** Add a build bundler plugin like [@snowpack/plugin-webpack](https://github.com/withastro/snowpack/tree/main/plugins/plugin-webpack) or [snowpack-plugin-rollup-bundle](https://github.com/ParamagicDev/snowpack-plugin-rollup-bundle) to your `snowpack.config.mjs` config file.

### Q: What about Eject?

No eject needed! Snowpack guarantees zero lock-in, and CSA strives for the same.


================================================
FILE: create-snowpack-app/app-template-minimal/index.css
================================================
/* Add CSS styles here! */
body {
  font-family: sans-serif;
}


================================================
FILE: create-snowpack-app/app-template-minimal/index.html
================================================
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="description" content="Starter Snowpack App" />
    <link rel="stylesheet" type="text/css" href="/index.css" />
    <title>Starter Snowpack App</title>
  </head>
  <body>
    <h1>Welcome to Snowpack!</h1>
    <script type="module" src="/index.js"></script>
  </body>
</html>


================================================
FILE: create-snowpack-app/app-template-minimal/index.js
================================================
/* Add JavaScript code here! */
console.log('Hello World! You did it! Welcome to Snowpack :D');


================================================
FILE: create-snowpack-app/app-template-minimal/package.json
================================================
{
  "name": "@snowpack/app-template-minimal",
  "description": "A preconfigured minimal template for Snowpack",
  "version": "2.1.1",
  "license": "MIT",
  "homepage": "https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-preact#readme",
  "repository": {
    "type": "git",
    "url": "https://github.com/withastro/snowpack.git",
    "directory": "create-snowpack-app/app-template-minimal"
  },
  "keywords": [
    "csa-template"
  ],
  "main": "index.js",
  "scripts": {
    "start": "snowpack dev",
    "build": "snowpack build",
    "test": "echo \"This template does not include a test runner by default.\" && exit 1"
  },
  "devDependencies": {
    "snowpack": "^3.3.7"
  }
}


================================================
FILE: create-snowpack-app/app-template-minimal/snowpack.config.mjs
================================================
/** @type {import("snowpack").SnowpackUserConfig } */
export default {
  mount: {
    /* ... */
  },
  plugins: [
    /* ... */
  ],
  routes: [
    /* Enable an SPA Fallback in development: */
    // {"match": "routes", "src": ".*", "dest": "/index.html"},
  ],
  optimize: {
    /* Example: Bundle your final build: */
    // "bundle": true,
  },
  packageOptions: {
    /* ... */
  },
  devOptions: {
    /* ... */
  },
  buildOptions: {
    /* ... */
  },
};


================================================
FILE: create-snowpack-app/app-template-preact/.npmignore
================================================
.build
build

================================================
FILE: create-snowpack-app/app-template-preact/.prettierrc
================================================
{
  "singleQuote": true,
  "trailingComma": "all"
}


================================================
FILE: create-snowpack-app/app-template-preact/README.md
================================================
# New Project

> ✨ Bootstrapped with Create Snowpack App (CSA).

## Available Scripts

### npm start

Runs the app in the development mode.
Open http://localhost:8080 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

### npm test

Launches the test runner in the interactive watch mode.
See the section about running tests for more information.

### npm run build

Builds the app for production to the `build/` folder.
It correctly bundles Preact in production mode and optimizes the build for the best performance.

### Q: What about Eject?

No eject needed! Snowpack guarantees zero lock-in, and CSA strives for the same.


================================================
FILE: create-snowpack-app/app-template-preact/package.json
================================================
{
  "name": "@snowpack/app-template-preact",
  "description": "A preconfigured template for Snowpack with Preact",
  "version": "2.1.2",
  "license": "MIT",
  "homepage": "https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-preact#readme",
  "repository": {
    "type": "git",
    "url": "https://github.com/withastro/snowpack.git",
    "directory": "create-snowpack-app/app-template-preact"
  },
  "keywords": [
    "csa-template"
  ],
  "publishConfig": {
    "access": "public"
  },
  "scripts": {
    "start": "snowpack dev",
    "build": "snowpack build",
    "format": "prettier --write \"src/**/*.{js,jsx}\"",
    "lint": "prettier --check \"src/**/*.{js,jsx}\"",
    "test": "web-test-runner \"src/**/*.test.jsx\""
  },
  "dependencies": {
    "preact": "^10.5.13"
  },
  "devDependencies": {
    "@prefresh/snowpack": "^3.0.0",
    "@snowpack/plugin-dotenv": "^2.1.0",
    "@snowpack/web-test-runner-plugin": "^0.2.2",
    "@testing-library/preact": "^2.0.1",
    "@web/test-runner": "^0.13.3",
    "chai": "^4.3.4",
    "prettier": "^2.2.1",
    "snowpack": "^3.8.0"
  },
  "gitHead": "a01616bb0787d56cd782f94cecf2daa12c7594e4"
}


================================================
FILE: create-snowpack-app/app-template-preact/public/index.html
================================================
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <link rel="icon" href="/favicon.ico" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="description" content="Web site created using create-snowpack-app" />
    <title>Snowpack App</title>
  </head>
  <body>
    <div id="root"></div>
    <noscript>You need to enable JavaScript to run this app.</noscript>
    <script type="module" src="/dist/index.js"></script>
    <!--
      This HTML file is a template.
      If you open it directly in the browser, you will see an empty page.

      You can add webfonts, meta tags, or analytics to this file.
      The build step will place the bundled scripts into the <body> tag.

      To begin the development, run `npm start` or `yarn start`.
      To create a production bundle, use `npm run build` or `yarn build`.
    -->
  </body>
</html>


================================================
FILE: create-snowpack-app/app-template-preact/public/robots.txt
================================================
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:


================================================
FILE: create-snowpack-app/app-template-preact/snowpack.config.mjs
================================================
/** @type {import("snowpack").SnowpackUserConfig } */
export default {
  mount: {
    public: { url: '/', static: true },
    src: { url: '/dist' },
  },
  plugins: ['@snowpack/plugin-dotenv', '@prefresh/snowpack'],
  routes: [
    /* Enable an SPA Fallback in development: */
    // {"match": "routes", "src": ".*", "dest": "/index.html"},
  ],
  optimize: {
    /* Example: Bundle your final build: */
    // "bundle": true,
  },
  packageOptions: {
    /* ... */
  },
  devOptions: {
    /* ... */
  },
  buildOptions: {
    /* ... */
  },

  alias: {
    /* ... */
  },
};


================================================
FILE: create-snowpack-app/app-template-preact/src/App.css
================================================
.App {
  text-align: center;
}
.App code {
  background: #FFF3;
  padding: 4px 8px;
  border-radius: 4px;
}
.App p {
  margin: 0.4rem;
}

.App-header {
  background-color: #282c34;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: calc(10px + 2vmin);
  color: white;
}

.App-link {
  color: #61dafb;
}

.App-logo {
  height: 36vmin;
  pointer-events: none;
  margin-bottom: 3rem;
  animation: App-logo-spin infinite 1.6s ease-in-out alternate;
}
@keyframes App-logo-spin {
  from {
    transform: scale(1);
  }
  to {
    transform: scale(1.06);
  }
}


================================================
FILE: create-snowpack-app/app-template-preact/src/App.jsx
================================================
import { h } from 'preact';
import { useState, useEffect } from 'preact/hooks';
import logo from './logo.png';
import './App.css';

function App() {
  // Create the count state.
  const [count, setCount] = useState(0);
  // Create the counter (+1 every second).
  useEffect(() => {
    const timer = setTimeout(() => setCount(count + 1), 1000);
    return () => clearTimeout(timer);
  }, [count, setCount]);
  // Return the App component.
  return (
    <div className="App">
      <header className="App-header">
        <img src={logo} className="App-logo" alt="logo" />
        <p>
          Edit <code>src/App.jsx</code> and save to reload.
        </p>
        <p>
          Page has been open for <code>{count}</code> seconds.
        </p>
        <p>
          <a
            className="App-link"
            href="https://preactjs.com"
            target="_blank"
            rel="noopener noreferrer"
          >
            Learn Preact
          </a>
        </p>
      </header>
    </div>
  );
}

export default App;


================================================
FILE: create-snowpack-app/app-template-preact/src/App.test.jsx
================================================
import { h } from 'preact';
import { render } from '@testing-library/preact';
import { expect } from 'chai';
import App from './App';

describe('<App>', () => {
  it('renders learn react link', () => {
    const { getByText } = render(<App />);
    const linkElement = getByText(/learn preact/i);
    expect(document.body.contains(linkElement));
  });
});


================================================
FILE: create-snowpack-app/app-template-preact/src/index.css
================================================
body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
    'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
    sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

code {
  font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
    monospace;
}


================================================
FILE: create-snowpack-app/app-template-preact/src/index.jsx
================================================
import { h, render } from 'preact';
import 'preact/devtools';
import App from './App.js';
import './index.css';

render(<App />, document.getElementById('root'));


================================================
FILE: create-snowpack-app/app-template-preact/web-test-runner.config.js
================================================
process.env.NODE_ENV = 'test';

module.exports = {
  plugins: [require('@snowpack/web-test-runner-plugin')()],
};


================================================
FILE: create-snowpack-app/app-template-preact-typescript/.npmignore
================================================
.build
build

================================================
FILE: create-snowpack-app/app-template-preact-typescript/.prettierrc
================================================
{
  "singleQuote": true,
  "trailingComma": "all"
}


================================================
FILE: create-snowpack-app/app-template-preact-typescript/README.md
================================================
# New Project

> ✨ Bootstrapped with Create Snowpack App (CSA).

## Available Scripts

### npm start

Runs the app in the development mode.
Open http://localhost:8080 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

### npm test

Launches the test runner in the interactive watch mode.
See the section about running tests for more information.

### npm run build

Builds the app for production to the `build/` folder.
It correctly bundles Preact in production mode and optimizes the build for the best performance.

### Q: What about Eject?

No eject needed! Snowpack guarantees zero lock-in, and CSA strives for the same.


================================================
FILE: create-snowpack-app/app-template-preact-typescript/package.json
================================================
{
  "name": "@snowpack/app-template-preact-typescript",
  "description": "A preconfigured template for Snowpack with Preact and Typescript",
  "version": "2.1.3",
  "license": "MIT",
  "homepage": "https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-preact-typescript#readme",
  "repository": {
    "type": "git",
    "url": "https://github.com/withastro/snowpack.git",
    "directory": "create-snowpack-app/app-template-preact-typescript"
  },
  "keywords": [
    "csa-template"
  ],
  "publishConfig": {
    "access": "public"
  },
  "scripts": {
    "start": "snowpack dev",
    "build": "snowpack build",
    "format": "prettier --write \"src/**/*.{js,jsx}\"",
    "lint": "prettier --check \"src/**/*.{js,jsx}\"",
    "test": "web-test-runner \"src/**/*.test.tsx\""
  },
  "dependencies": {
    "preact": "^10.5.13"
  },
  "devDependencies": {
    "@prefresh/snowpack": "^3.0.0",
    "@snowpack/plugin-dotenv": "^2.1.0",
    "@snowpack/plugin-typescript": "^1.2.1",
    "@snowpack/web-test-runner-plugin": "^0.2.2",
    "@testing-library/preact": "^2.0.1",
    "@types/chai": "^4.2.17",
    "@types/mocha": "^8.2.2",
    "@web/test-runner": "^0.13.3",
    "chai": "^4.3.4",
    "prettier": "^2.2.1",
    "snowpack": "^3.8.0",
    "typescript": "^4.3.4"
  },
  "gitHead": "a01616bb0787d56cd782f94cecf2daa12c7594e4"
}


================================================
FILE: create-snowpack-app/app-template-preact-typescript/public/index.html
================================================
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <link rel="icon" href="/favicon.ico" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="description" content="Web site created using create-snowpack-app" />
    <title>Snowpack App</title>
  </head>
  <body>
    <div id="root"></div>
    <noscript>You need to enable JavaScript to run this app.</noscript>
    <script type="module" src="/dist/index.js"></script>
    <!--
      This HTML file is a template.
      If you open it directly in the browser, you will see an empty page.

      You can add webfonts, meta tags, or analytics to this file.
      The build step will place the bundled scripts into the <body> tag.

      To begin the development, run `npm start` or `yarn start`.
      To create a production bundle, use `npm run build` or `yarn build`.
    -->
  </body>
</html>


================================================
FILE: create-snowpack-app/app-template-preact-typescript/public/robots.txt
================================================
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:


================================================
FILE: create-snowpack-app/app-template-preact-typescript/snowpack.config.mjs
================================================
/** @type {import("snowpack").SnowpackUserConfig } */
export default {
  mount: {
    public: { url: '/', static: true },
    src: { url: '/dist' },
  },
  plugins: [
    '@prefresh/snowpack',
    '@snowpack/plugin-dotenv',
    [
      '@snowpack/plugin-typescript',
      {
        /* Yarn PnP workaround: see https://www.npmjs.com/package/@snowpack/plugin-typescript */
        ...(process.versions.pnp ? { tsc: 'yarn pnpify tsc' } : {}),
      },
    ],
  ],
  routes: [
    /* Enable an SPA Fallback in development: */
    // {"match": "routes", "src": ".*", "dest": "/index.html"},
  ],
  optimize: {
    /* Example: Bundle your final build: */
    // "bundle": true,
  },
  packageOptions: {
    /* ... */
  },
  devOptions: {
    /* ... */
  },
  buildOptions: {
    /* ... */
  },
};


================================================
FILE: create-snowpack-app/app-template-preact-typescript/src/App.css
================================================
.App {
  text-align: center;
}
.App code {
  background: #FFF3;
  padding: 4px 8px;
  border-radius: 4px;
}
.App p {
  margin: 0.4rem;
}

.App-header {
  background-color: #282c34;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: calc(10px + 2vmin);
  color: white;
}

.App-link {
  color: #61dafb;
}

.App-logo {
  height: 36vmin;
  pointer-events: none;
  margin-bottom: 3rem;
  animation: App-logo-spin infinite 1.6s ease-in-out alternate;
}
@keyframes App-logo-spin {
  from {
    transform: scale(1);
  }
  to {
    transform: scale(1.06);
  }
}


================================================
FILE: create-snowpack-app/app-template-preact-typescript/src/App.test.tsx
================================================
import { h } from 'preact';
import { render } from '@testing-library/preact';
import { expect } from 'chai';
import App from './App';

describe('<App>', () => {
  it('renders learn react link', () => {
    const { getByText } = render(<App />);
    const linkElement = getByText(/learn preact/i);
    expect(document.body.contains(linkElement));
  });
});


================================================
FILE: create-snowpack-app/app-template-preact-typescript/src/App.tsx
================================================
import { h } from 'preact';
import { useState, useEffect } from 'preact/hooks';
import logo from './logo.png';
import './App.css';

function App() {
  // Create the count state.
  const [count, setCount] = useState(0);
  // Create the counter (+1 every second).
  useEffect(() => {
    const timer = setTimeout(() => setCount(count + 1), 1000);
    return () => clearTimeout(timer);
  }, [count, setCount]);
  // Return the App component.
  return (
    <div className="App">
      <header className="App-header">
        <img src={logo} className="App-logo" alt="logo" />
        <p>
          Edit <code>src/App.jsx</code> and save to reload.
        </p>
        <p>
          Page has been open for <code>{count}</code> seconds.
        </p>
        <p>
          <a
            className="App-link"
            href="https://preactjs.com"
            target="_blank"
            rel="noopener noreferrer"
          >
            Learn Preact
          </a>
        </p>
      </header>
    </div>
  );
}

export default App;


================================================
FILE: create-snowpack-app/app-template-preact-typescript/src/index.css
================================================
body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
    'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
    sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

code {
  font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
    monospace;
}


================================================
FILE: create-snowpack-app/app-template-preact-typescript/src/index.tsx
================================================
import { h, render } from 'preact';
import 'preact/devtools';
import App from './App.js';
import './index.css';

const root = document.getElementById('root')

if (root) {
  render(<App />, root);
}


================================================
FILE: create-snowpack-app/app-template-preact-typescript/tsconfig.json
================================================
{
  "include": ["src", "types"],
  "compilerOptions": {
    "module": "esnext",
    "target": "esnext",
    "moduleResolution": "node",
    "jsx": "preserve",
    "jsxFactory": "h",
    "baseUrl": "./",
    /* paths - import rewriting/resolving */
    "paths": {
      // If you configured any Snowpack aliases, add them here.
      // Add this line to get types for streaming imports (packageOptions.source="remote"):
      //     "*": [".snowpack/types/*"]
      // More info: https://www.snowpack.dev/guides/streaming-imports
    },
    /* noEmit - Snowpack builds (emits) files, not tsc. */
    "noEmit": true,
    /* Additional Options */
    "strict": true,
    "skipLibCheck": true,
    "types": ["mocha", "snowpack-env"],
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true,
    "allowSyntheticDefaultImports": true,
    "importsNotUsedAsValues": "error"
  }
}


================================================
FILE: create-snowpack-app/app-template-preact-typescript/types/static.d.ts
================================================
/* Use this file to declare any custom file extensions for importing */
/* Use this folder to also add/extend a package d.ts file, if needed. */

/* CSS MODULES */
declare module '*.module.css' {
  const classes: { [key: string]: string };
  export default classes;
}
declare module '*.module.scss' {
  const classes: { [key: string]: string };
  export default classes;
}
declare module '*.module.sass' {
  const classes: { [key: string]: string };
  export default classes;
}
declare module '*.module.less' {
  const classes: { [key: string]: string };
  export default classes;
}
declare module '*.module.styl' {
  const classes: { [key: string]: string };
  export default classes;
}

/* CSS */
declare module '*.css';
declare module '*.scss';
declare module '*.sass';
declare module '*.less';
declare module '*.styl';

/* IMAGES */
declare module '*.svg' {
  const ref: string;
  export default ref;
}
declare module '*.bmp' {
  const ref: string;
  export default ref;
}
declare module '*.gif' {
  const ref: string;
  export default ref;
}
declare module '*.jpg' {
  const ref: string;
  export default ref;
}
declare module '*.jpeg' {
  const ref: string;
  export default ref;
}
declare module '*.png' {
  const ref: string;
  export default ref;
}

/* CUSTOM: ADD YOUR OWN HERE */


================================================
FILE: create-snowpack-app/app-template-preact-typescript/web-test-runner.config.js
================================================
process.env.NODE_ENV = 'test';

module.exports = {
  plugins: [require('@snowpack/web-test-runner-plugin')()],
};


================================================
FILE: create-snowpack-app/app-template-react/.npmignore
================================================
.build
build

================================================
FILE: create-snowpack-app/app-template-react/.prettierrc
================================================
{
  "singleQuote": true,
  "trailingComma": "all"
}


================================================
FILE: create-snowpack-app/app-template-react/README.md
================================================
# New Project

> ✨ Bootstrapped with Create Snowpack App (CSA).

## Available Scripts

### npm start

Runs the app in the development mode.
Open http://localhost:8080 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

### npm run build

Builds a static copy of your site to the `build/` folder.
Your app is ready to be deployed!

**For the best production performance:** Add a build bundler plugin like "@snowpack/plugin-webpack" to your `snowpack.config.mjs` config file.

### npm test

Launches the application test runner.
Run with the `--watch` flag (`npm test -- --watch`) to run in interactive watch mode.


================================================
FILE: create-snowpack-app/app-template-react/package.json
================================================
{
  "name": "@snowpack/app-template-react",
  "description": "A preconfigured template for Snowpack with React",
  "version": "2.1.2",
  "license": "MIT",
  "homepage": "https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-react#readme",
  "repository": {
    "type": "git",
    "url": "https://github.com/withastro/snowpack.git",
    "directory": "create-snowpack-app/app-template-react"
  },
  "keywords": [
    "csa-template"
  ],
  "publishConfig": {
    "access": "public"
  },
  "scripts": {
    "start": "snowpack dev",
    "build": "snowpack build",
    "format": "prettier --write \"src/**/*.{js,jsx}\"",
    "lint": "prettier --check \"src/**/*.{js,jsx}\"",
    "test": "web-test-runner \"src/**/*.test.jsx\""
  },
  "dependencies": {
    "react": "^17.0.2",
    "react-dom": "^17.0.2"
  },
  "devDependencies": {
    "@snowpack/plugin-dotenv": "^2.1.0",
    "@snowpack/plugin-react-refresh": "^2.5.0",
    "@snowpack/web-test-runner-plugin": "^0.2.2",
    "@testing-library/react": "^11.2.6",
    "@web/test-runner": "^0.13.3",
    "chai": "^4.3.4",
    "prettier": "^2.2.1",
    "snowpack": "^3.8.0"
  },
  "gitHead": "a01616bb0787d56cd782f94cecf2daa12c7594e4"
}


================================================
FILE: create-snowpack-app/app-template-react/public/index.html
================================================
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <link rel="icon" href="/favicon.ico" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="description" content="Web site created using create-snowpack-app" />
    <title>Snowpack App</title>
  </head>
  <body>
    <div id="root"></div>
    <noscript>You need to enable JavaScript to run this app.</noscript>
    <script type="module" src="/dist/index.js"></script>
    <!--
      This HTML file is a template.
      If you open it directly in the browser, you will see an empty page.

      You can add webfonts, meta tags, or analytics to this file.
      The build step will place the bundled scripts into the <body> tag.

      To begin the development, run `npm start` or `yarn start`.
      To create a production bundle, use `npm run build` or `yarn build`.
    -->
  </body>
</html>


================================================
FILE: create-snowpack-app/app-template-react/public/robots.txt
================================================
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:


================================================
FILE: create-snowpack-app/app-template-react/snowpack.config.mjs
================================================
/** @type {import("snowpack").SnowpackUserConfig } */
export default {
  mount: {
    public: { url: '/', static: true },
    src: { url: '/dist' },
  },
  plugins: ['@snowpack/plugin-react-refresh', '@snowpack/plugin-dotenv'],
  routes: [
    /* Enable an SPA Fallback in development: */
    // {"match": "routes", "src": ".*", "dest": "/index.html"},
  ],
  optimize: {
    /* Example: Bundle your final build: */
    // "bundle": true,
  },
  packageOptions: {
    /* ... */
  },
  devOptions: {
    /* ... */
  },
  buildOptions: {
    /* ... */
  },
};


================================================
FILE: create-snowpack-app/app-template-react/src/App.css
================================================
.App {
  text-align: center;
}
.App code {
  background: #FFF3;
  padding: 4px 8px;
  border-radius: 4px;
}
.App p {
  margin: 0.4rem;
}
.App-logo {
  height: 40vmin;
  pointer-events: none;
}

@media (prefers-reduced-motion: no-preference) {
  .App-logo {
    animation: App-logo-spin infinite 20s linear;
  }
}

.App-header {
  background-color: #282c34;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: calc(10px + 2vmin);
  color: white;
}

.App-link {
  color: #61dafb;
}

@keyframes App-logo-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}


================================================
FILE: create-snowpack-app/app-template-react/src/App.jsx
================================================
import React, { useState, useEffect } from 'react';
import logo from './logo.svg';
import './App.css';

function App() {
  // Create the count state.
  const [count, setCount] = useState(0);
  // Create the counter (+1 every second).
  useEffect(() => {
    const timer = setTimeout(() => setCount(count + 1), 1000);
    return () => clearTimeout(timer);
  }, [count, setCount]);
  // Return the App component.
  return (
    <div className="App">
      <header className="App-header">
        <img src={logo} className="App-logo" alt="logo" />
        <p>
          Edit <code>src/App.jsx</code> and save to reload.
        </p>
        <p>
          Page has been open for <code>{count}</code> seconds.
        </p>
        <p>
          <a
            className="App-link"
            href="https://reactjs.org"
            target="_blank"
            rel="noopener noreferrer"
          >
            Learn React
          </a>
        </p>
      </header>
    </div>
  );
}

export default App;


================================================
FILE: create-snowpack-app/app-template-react/src/App.test.jsx
================================================
import * as React from 'react';
import { render } from '@testing-library/react';
import { expect } from 'chai';
import App from './App';

describe('<App>', () => {
  it('renders learn react link', () => {
    const { getByText } = render(<App />);
    const linkElement = getByText(/learn react/i);
    expect(document.body.contains(linkElement));
  });
});


================================================
FILE: create-snowpack-app/app-template-react/src/index.css
================================================
body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
    'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
    sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

code {
  font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
    monospace;
}


================================================
FILE: create-snowpack-app/app-template-react/src/index.jsx
================================================
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App.jsx';
import './index.css';

ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById('root'),
);

// Hot Module Replacement (HMR) - Remove this snippet to remove HMR.
// Learn more: https://www.snowpack.dev/concepts/hot-module-replacement
if (import.meta.hot) {
  import.meta.hot.accept();
}


================================================
FILE: create-snowpack-app/app-template-react/web-test-runner.config.js
================================================
process.env.NODE_ENV = 'test';

module.exports = {
  plugins: [require('@snowpack/web-test-runner-plugin')()],
};


================================================
FILE: create-snowpack-app/app-template-react-typescript/.npmignore
================================================
.build
build

================================================
FILE: create-snowpack-app/app-template-react-typescript/.prettierrc
================================================
{
  "singleQuote": true,
  "trailingComma": "all"
}


================================================
FILE: create-snowpack-app/app-template-react-typescript/README.md
================================================
# New Project

> ✨ Bootstrapped with Create Snowpack App (CSA).

## Available Scripts

### npm start

Runs the app in the development mode.
Open http://localhost:8080 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

### npm run build

Builds a static copy of your site to the `build/` folder.
Your app is ready to be deployed!

**For the best production performance:** Add a build bundler plugin like "@snowpack/plugin-webpack" to your `snowpack.config.mjs` config file.

### npm test

Launches the application test runner.
Run with the `--watch` flag (`npm test -- --watch`) to run in interactive watch mode.


================================================
FILE: create-snowpack-app/app-template-react-typescript/package.json
================================================
{
  "name": "@snowpack/app-template-react-typescript",
  "description": "A preconfigured template for Snowpack with React and TypeScript",
  "version": "2.1.3",
  "license": "MIT",
  "homepage": "https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-react-typescript#readme",
  "repository": {
    "type": "git",
    "url": "https://github.com/withastro/snowpack.git",
    "directory": "create-snowpack-app/app-template-react-typescript"
  },
  "keywords": [
    "csa-template"
  ],
  "publishConfig": {
    "access": "public"
  },
  "scripts": {
    "start": "snowpack dev",
    "build": "snowpack build",
    "format": "prettier --write \"src/**/*.{js,jsx,ts,tsx}\"",
    "lint": "prettier --check \"src/**/*.{js,jsx,ts,tsx}\"",
    "test": "web-test-runner \"src/**/*.test.tsx\""
  },
  "dependencies": {
    "react": "^17.0.2",
    "react-dom": "^17.0.2"
  },
  "devDependencies": {
    "@snowpack/plugin-dotenv": "^2.1.0",
    "@snowpack/plugin-react-refresh": "^2.5.0",
    "@snowpack/plugin-typescript": "^1.2.1",
    "@snowpack/web-test-runner-plugin": "^0.2.2",
    "@testing-library/react": "^11.2.6",
    "@types/chai": "^4.2.17",
    "@types/mocha": "^8.2.2",
    "@types/react": "^17.0.4",
    "@types/react-dom": "^17.0.3",
    "@types/snowpack-env": "^2.3.3",
    "@web/test-runner": "^0.13.3",
    "chai": "^4.3.4",
    "prettier": "^2.2.1",
    "snowpack": "^3.8.0",
    "typescript": "^4.3.4"
  },
  "gitHead": "a01616bb0787d56cd782f94cecf2daa12c7594e4"
}


================================================
FILE: create-snowpack-app/app-template-react-typescript/public/index.html
================================================
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <link rel="icon" href="/favicon.ico" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="description" content="Web site created using create-snowpack-app" />
    <title>Snowpack App</title>
  </head>
  <body>
    <div id="root"></div>
    <noscript>You need to enable JavaScript to run this app.</noscript>
    <script type="module" src="/dist/index.js"></script>
    <!--
      This HTML file is a template.
      If you open it directly in the browser, you will see an empty page.

      You can add webfonts, meta tags, or analytics to this file.
      The build step will place the bundled scripts into the <body> tag.

      To begin the development, run `npm start` or `yarn start`.
      To create a production bundle, use `npm run build` or `yarn build`.
    -->
  </body>
</html>


================================================
FILE: create-snowpack-app/app-template-react-typescript/public/robots.txt
================================================
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:


================================================
FILE: create-snowpack-app/app-template-react-typescript/snowpack.config.mjs
================================================
/** @type {import("snowpack").SnowpackUserConfig } */
export default {
  mount: {
    public: { url: '/', static: true },
    src: { url: '/dist' },
  },
  plugins: [
    '@snowpack/plugin-react-refresh',
    '@snowpack/plugin-dotenv',
    [
      '@snowpack/plugin-typescript',
      {
        /* Yarn PnP workaround: see https://www.npmjs.com/package/@snowpack/plugin-typescript */
        ...(process.versions.pnp ? { tsc: 'yarn pnpify tsc' } : {}),
      },
    ],
  ],
  routes: [
    /* Enable an SPA Fallback in development: */
    // {"match": "routes", "src": ".*", "dest": "/index.html"},
  ],
  optimize: {
    /* Example: Bundle your final build: */
    // "bundle": true,
  },
  packageOptions: {
    /* ... */
  },
  devOptions: {
    /* ... */
  },
  buildOptions: {
    /* ... */
  },
};


================================================
FILE: create-snowpack-app/app-template-react-typescript/src/App.css
================================================
.App {
  text-align: center;
}
.App code {
  background: #FFF3;
  padding: 4px 8px;
  border-radius: 4px;
}
.App p {
  margin: 0.4rem;
}

.App-logo {
  height: 40vmin;
  pointer-events: none;
}

@media (prefers-reduced-motion: no-preference) {
  .App-logo {
    animation: App-logo-spin infinite 20s linear;
  }
}

.App-header {
  background-color: #282c34;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: calc(10px + 2vmin);
  color: white;
}

.App-link {
  color: #61dafb;
}

@keyframes App-logo-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}


================================================
FILE: create-snowpack-app/app-template-react-typescript/src/App.test.tsx
================================================
import * as React from 'react';
import { render } from '@testing-library/react';
import { expect } from 'chai';
import App from './App';

describe('<App>', () => {
  it('renders learn react link', () => {
    const { getByText } = render(<App />);
    const linkElement = getByText(/learn react/i);
    expect(document.body.contains(linkElement));
  });
});


================================================
FILE: create-snowpack-app/app-template-react-typescript/src/App.tsx
================================================
import React, { useState, useEffect } from 'react';
import logo from './logo.svg';
import './App.css';

interface AppProps {}

function App({}: AppProps) {
  // Create the count state.
  const [count, setCount] = useState(0);
  // Create the counter (+1 every second).
  useEffect(() => {
    const timer = setTimeout(() => setCount(count + 1), 1000);
    return () => clearTimeout(timer);
  }, [count, setCount]);
  // Return the App component.
  return (
    <div className="App">
      <header className="App-header">
        <img src={logo} className="App-logo" alt="logo" />
        <p>
          Edit <code>src/App.tsx</code> and save to reload.
        </p>
        <p>
          Page has been open for <code>{count}</code> seconds.
        </p>
        <p>
          <a
            className="App-link"
            href="https://reactjs.org"
            target="_blank"
            rel="noopener noreferrer"
          >
            Learn React
          </a>
        </p>
      </header>
    </div>
  );
}

export default App;


================================================
FILE: create-snowpack-app/app-template-react-typescript/src/index.css
================================================
body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen",
    "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
    sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

code {
  font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New",
    monospace;
}


================================================
FILE: create-snowpack-app/app-template-react-typescript/src/index.tsx
================================================
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import './index.css';

ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById('root'),
);

// Hot Module Replacement (HMR) - Remove this snippet to remove HMR.
// Learn more: https://snowpack.dev/concepts/hot-module-replacement
if (import.meta.hot) {
  import.meta.hot.accept();
}


================================================
FILE: create-snowpack-app/app-template-react-typescript/tsconfig.json
================================================
{
  "include": ["src", "types"],
  "compilerOptions": {
    "module": "esnext",
    "target": "esnext",
    "moduleResolution": "node",
    "jsx": "preserve",
    "baseUrl": "./",
    /* paths - import rewriting/resolving */
    "paths": {
      // If you configured any Snowpack aliases, add them here.
      // Add this line to get types for streaming imports (packageOptions.source="remote"):
      //     "*": [".snowpack/types/*"]
      // More info: https://www.snowpack.dev/guides/streaming-imports
    },
    /* noEmit - Snowpack builds (emits) files, not tsc. */
    "noEmit": true,
    /* Additional Options */
    "strict": true,
    "skipLibCheck": true,
    "types": ["mocha", "snowpack-env"],
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true,
    "allowSyntheticDefaultImports": true,
    "importsNotUsedAsValues": "error"
  }
}


================================================
FILE: create-snowpack-app/app-template-react-typescript/types/static.d.ts
================================================
/* Use this file to declare any custom file extensions for importing */
/* Use this folder to also add/extend a package d.ts file, if needed. */

/* CSS MODULES */
declare module '*.module.css' {
  const classes: { [key: string]: string };
  export default classes;
}
declare module '*.module.scss' {
  const classes: { [key: string]: string };
  export default classes;
}
declare module '*.module.sass' {
  const classes: { [key: string]: string };
  export default classes;
}
declare module '*.module.less' {
  const classes: { [key: string]: string };
  export default classes;
}
declare module '*.module.styl' {
  const classes: { [key: string]: string };
  export default classes;
}

/* CSS */
declare module '*.css';
declare module '*.scss';
declare module '*.sass';
declare module '*.less';
declare module '*.styl';

/* IMAGES */
declare module '*.svg' {
  const ref: string;
  export default ref;
}
declare module '*.bmp' {
  const ref: string;
  export default ref;
}
declare module '*.gif' {
  const ref: string;
  export default ref;
}
declare module '*.jpg' {
  const ref: string;
  export default ref;
}
declare module '*.jpeg' {
  const ref: string;
  export default ref;
}
declare module '*.png' {
  const ref: string;
  export default ref;
}

/* CUSTOM: ADD YOUR OWN HERE */


================================================
FILE: create-snowpack-app/app-template-react-typescript/web-test-runner.config.js
================================================
process.env.NODE_ENV = 'test';

module.exports = {
  plugins: [require('@snowpack/web-test-runner-plugin')()],
};


================================================
FILE: create-snowpack-app/app-template-svelte/.npmignore
================================================
.build
build

================================================
FILE: create-snowpack-app/app-template-svelte/README.md
================================================
# New Project

> ✨ Bootstrapped with Create Snowpack App (CSA).

## Available Scripts

### npm start

Runs the app in the development mode.
Open http://localhost:8080 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

### npm test

Launches the test runner in the interactive watch mode.
See the section about running tests for more information.

### npm run build

Builds a static copy of your site to the `build/` folder.
Your app is ready to be deployed!

**For the best production performance:** Add a build bundler plugin like [@snowpack/plugin-webpack](https://github.com/withastro/snowpack/tree/main/plugins/plugin-webpack) or [snowpack-plugin-rollup-bundle](https://github.com/ParamagicDev/snowpack-plugin-rollup-bundle) to your `snowpack.config.mjs` config file.

### Q: What about Eject?

No eject needed! Snowpack guarantees zero lock-in, and CSA strives for the same.


================================================
FILE: create-snowpack-app/app-template-svelte/package.json
================================================
{
  "name": "@snowpack/app-template-svelte",
  "description": "A preconfigured template for Snowpack with Svelte",
  "version": "2.1.2",
  "license": "MIT",
  "homepage": "https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-svelte#readme",
  "repository": {
    "type": "git",
    "url": "https://github.com/withastro/snowpack.git",
    "directory": "create-snowpack-app/app-template-svelte"
  },
  "keywords": [
    "csa-template"
  ],
  "publishConfig": {
    "access": "public"
  },
  "scripts": {
    "start": "snowpack dev",
    "build": "snowpack build",
    "test": "web-test-runner \"src/**/*.test.js\""
  },
  "dependencies": {
    "svelte": "^3.37.0"
  },
  "devDependencies": {
    "@snowpack/plugin-dotenv": "^2.1.0",
    "@snowpack/plugin-svelte": "^3.6.1",
    "@snowpack/web-test-runner-plugin": "^0.2.2",
    "@testing-library/svelte": "^3.0.3",
    "@web/test-runner": "^0.13.3",
    "chai": "^4.3.4",
    "snowpack": "^3.8.0"
  },
  "gitHead": "a01616bb0787d56cd782f94cecf2daa12c7594e4"
}


================================================
FILE: create-snowpack-app/app-template-svelte/public/index.html
================================================
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <link rel="icon" href="/favicon.ico" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="description" content="Web site created using create-snowpack-app" />
    <title>Snowpack App</title>
  </head>
  <body>
    <noscript>You need to enable JavaScript to run this app.</noscript>
    <script type="module" src="/dist/index.js"></script>
    <!--
      This HTML file is a template.
      If you open it directly in the browser, you will see an empty page.

      You can add webfonts, meta tags, or analytics to this file.
      The build step will place the bundled scripts into the <body> tag.

      To begin the development, run `npm start` or `yarn start`.
      To create a production bundle, use `npm run build` or `yarn build`.
    -->
  </body>
</html>


================================================
FILE: create-snowpack-app/app-template-svelte/public/robots.txt
================================================
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:


================================================
FILE: create-snowpack-app/app-template-svelte/snowpack.config.mjs
================================================
/** @type {import("snowpack").SnowpackUserConfig } */
export default {
  mount: {
    public: {url: '/', static: true},
    src: {url: '/dist'},
  },
  plugins: ['@snowpack/plugin-svelte', '@snowpack/plugin-dotenv'],
  routes: [
    /* Example: Enable an SPA Fallback in development: */
    // {"match": "routes", "src": ".*", "dest": "/index.html"},
  ],
  optimize: {
    /* Example: Bundle your final build: */
    // "bundle": true,
  },
  packageOptions: {
    /* ... */
  },
  devOptions: {
    /* ... */
  },
  buildOptions: {
    /* ... */
  },
};


================================================
FILE: create-snowpack-app/app-template-svelte/src/App.svelte
================================================
<script>
  import {onMount} from 'svelte';
  let count = 0;
  onMount(() => {
    const interval = setInterval(() => count++, 1000);
    return () => {
      clearInterval(interval);
    };
  });
</script>

<style>
  :global(body) {
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
  }
  .App {
    text-align: center;
  }
  .App code {
    background: #0002;
    padding: 4px 8px;
    border-radius: 4px;
  }
  .App p {
    margin: 0.4rem;
  }

  .App-header {
    background-color: #f9f6f6;
    color: #333;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-size: calc(10px + 2vmin);
  }
  .App-link {
    color: #ff3e00;
  }
  .App-logo {
    height: 36vmin;
    pointer-events: none;
    margin-bottom: 3rem;
    animation: App-logo-pulse infinite 1.6s ease-in-out alternate;
  }
  @keyframes App-logo-pulse {
    from {
      transform: scale(1);
    }
    to {
      transform: scale(1.06);
    }
  }
</style>

<div class="App">
  <header class="App-header">
    <img src="/logo.svg" class="App-logo" alt="logo" />
    <p>Edit <code>src/App.svelte</code> and save to reload.</p>
    <p>Page has been open for <code>{count}</code> seconds.</p>
    <p>
      <a class="App-link" href="https://svelte.dev" target="_blank" rel="noopener noreferrer">
        Learn Svelte
      </a>
    </p>
  </header>
</div>


================================================
FILE: create-snowpack-app/app-template-svelte/src/App.test.js
================================================
import {render} from '@testing-library/svelte';
import {expect} from 'chai';
import App from './App.svelte';

describe('<App>', () => {
  it('renders learn svelte link', () => {
    const {getByText} = render(App);
    const linkElement = getByText(/learn svelte/i);
    expect(document.body.contains(linkElement));
  });
});


================================================
FILE: create-snowpack-app/app-template-svelte/src/index.js
================================================
import App from './App.svelte';

let app = new App({
  target: document.body,
});

export default app;

// Hot Module Replacement (HMR) - Remove this snippet to remove HMR.
// Learn more: https://www.snowpack.dev/concepts/hot-module-replacement
if (import.meta.hot) {
  import.meta.hot.accept();
  import.meta.hot.dispose(() => {
    app.$destroy();
  });
}


================================================
FILE: create-snowpack-app/app-template-svelte/web-test-runner.config.js
================================================
process.env.NODE_ENV = 'test';

module.exports = {
  plugins: [require('@snowpack/web-test-runner-plugin')()],
};


================================================
FILE: create-snowpack-app/app-template-svelte-typescript/.npmignore
================================================
.build
build

================================================
FILE: create-snowpack-app/app-template-svelte-typescript/CHANGELOG.md
================================================
# @snowpack/app-template-svelte-typescript

## 2.1.5

### Patch Changes

- fed2c940: Remove default language option as its use is discouraged


================================================
FILE: create-snowpack-app/app-template-svelte-typescript/README.md
================================================
# New Project

> ✨ Bootstrapped with Create Snowpack App (CSA).

## Available Scripts

### npm start

Runs the app in the development mode.
Open http://localhost:8080 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

### npm test

Launches the test runner in the interactive watch mode.
See the section about running tests for more information.

### npm run build

Builds a static copy of your site to the `build/` folder.
Your app is ready to be deployed!

**For the best production performance:** Add a build bundler plugin like [@snowpack/plugin-webpack](https://github.com/withastro/snowpack/tree/main/plugins/plugin-webpack) or [snowpack-plugin-rollup-bundle](https://github.com/ParamagicDev/snowpack-plugin-rollup-bundle) to your `snowpack.config.mjs` config file.

### Q: What about Eject?

No eject needed! Snowpack guarantees zero lock-in, and CSA strives for the same.


================================================
FILE: create-snowpack-app/app-template-svelte-typescript/package.json
================================================
{
  "name": "@snowpack/app-template-svelte-typescript",
  "description": "A preconfigured template for Snowpack with Svelte and TypeScript",
  "version": "2.1.5",
  "license": "MIT",
  "homepage": "https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-svelte-typescript#readme",
  "repository": {
    "type": "git",
    "url": "https://github.com/withastro/snowpack.git",
    "directory": "create-snowpack-app/app-template-svelte-typescript"
  },
  "keywords": [
    "csa-template"
  ],
  "publishConfig": {
    "access": "public"
  },
  "scripts": {
    "start": "snowpack dev",
    "build": "snowpack build",
    "test": "web-test-runner \"src/**/*.test.ts\""
  },
  "dependencies": {
    "svelte": "^3.37.0"
  },
  "devDependencies": {
    "@snowpack/plugin-dotenv": "^2.2.0",
    "@snowpack/plugin-svelte": "^3.6.1",
    "@snowpack/plugin-typescript": "^1.2.1",
    "@snowpack/web-test-runner-plugin": "^0.2.2",
    "@testing-library/svelte": "^3.0.3",
    "@tsconfig/svelte": "^1.0.10",
    "@types/chai": "^4.2.17",
    "@types/mocha": "^8.2.2",
    "@types/snowpack-env": "^2.3.3",
    "@web/test-runner": "^0.13.3",
    "chai": "^4.3.4",
    "snowpack": "^3.8.8",
    "svelte-preprocess": "^4.7.2",
    "typescript": "^4.3.4"
  },
  "gitHead": "a01616bb0787d56cd782f94cecf2daa12c7594e4"
}


================================================
FILE: create-snowpack-app/app-template-svelte-typescript/public/index.html
================================================
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <link rel="icon" href="/favicon.ico" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="description" content="Web site created using create-snowpack-app" />
    <title>Snowpack App</title>
  </head>
  <body>
    <noscript>You need to enable JavaScript to run this app.</noscript>
    <script type="module" src="/dist/index.js"></script>
    <!--
      This HTML file is a template.
      If you open it directly in the browser, you will see an empty page.

      You can add webfonts, meta tags, or analytics to this file.
      The build step will place the bundled scripts into the <body> tag.

      To begin the development, run `npm start` or `yarn start`.
      To create a production bundle, use `npm run build` or `yarn build`.
    -->
  </body>
</html>


================================================
FILE: create-snowpack-app/app-template-svelte-typescript/public/robots.txt
================================================
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:


================================================
FILE: create-snowpack-app/app-template-svelte-typescript/snowpack.config.mjs
================================================
/** @type {import("snowpack").SnowpackUserConfig } */
export default {
  mount: {
    public: {url: '/', static: true},
    src: {url: '/dist'},
  },
  plugins: [
    '@snowpack/plugin-svelte',
    '@snowpack/plugin-dotenv',
    [
      '@snowpack/plugin-typescript',
      {
        /* Yarn PnP workaround: see https://www.npmjs.com/package/@snowpack/plugin-typescript */
        ...(process.versions.pnp ? {tsc: 'yarn pnpify tsc'} : {}),
      },
    ],
  ],
  routes: [
    /* Enable an SPA Fallback in development: */
    // {"match": "routes", "src": ".*", "dest": "/index.html"},
  ],
  optimize: {
    /* Example: Bundle your final build: */
    // "bundle": true,
  },
  packageOptions: {
    /* ... */
  },
  devOptions: {
    /* ... */
  },
  buildOptions: {
    /* ... */
  },
};


================================================
FILE: create-snowpack-app/app-template-svelte-typescript/src/App.svelte
================================================
<script lang="ts">
  import {onMount} from 'svelte'

  let count: number = 0
  onMount(() => {
    const interval = setInterval(() => count++, 1000)
    return () => {
      clearInterval(interval)
    }
  })
</script>

<style>
  :global(body) {
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
  }

  .App {
    text-align: center;
  }

  .App code {
    background: #0002;
    padding: 4px 8px;
    border-radius: 4px;
  }

  .App p {
    margin: 0.4rem;
  }

  .App-header {
    background-color: #f9f6f6;
    color: #333;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-size: calc(10px + 2vmin);
  }

  .App-link {
    color: #ff3e00;
  }

  .App-logo {
    height: 36vmin;
    pointer-events: none;
    margin-bottom: 3rem;
    animation: App-logo-spin infinite 1.6s ease-in-out alternate;
  }

  @keyframes App-logo-spin {
    from {
      transform: scale(1);
    }
    to {
      transform: scale(1.06);
    }
  }
</style>

<div class="App">
  <header class="App-header">
    <img src="/logo.svg" class="App-logo" alt="logo"/>
    <p>Edit <code>src/App.svelte</code> and save to reload.</p>
    <p>Page has been open for <code>{count}</code> seconds.</p>
    <p>
      <a class="App-link" href="https://svelte.dev" target="_blank" rel="noopener noreferrer">
        Learn Svelte
      </a>
    </p>
  </header>
</div>


================================================
FILE: create-snowpack-app/app-template-svelte-typescript/src/App.test.ts
================================================
import {render} from '@testing-library/svelte';
import {expect} from 'chai';
import App from './App.svelte';

describe('<App>', () => {
  it('renders learn svelte link', () => {
    const {getByText} = render(App);
    const linkElement = getByText(/learn svelte/i);
    expect(document.body.contains(linkElement));
  });
});


================================================
FILE: create-snowpack-app/app-template-svelte-typescript/src/index.ts
================================================
import App from './App.svelte';

var app = new App({
  target: document.body,
});

export default app;

// Hot Module Replacement (HMR) - Remove this snippet to remove HMR.
// Learn more: https://www.snowpack.dev/concepts/hot-module-replacement
if (import.meta.hot) {
  import.meta.hot.accept();
  import.meta.hot.dispose(() => {
    app.$destroy();
  });
}


================================================
FILE: create-snowpack-app/app-template-svelte-typescript/svelte.config.js
================================================
const autoPreprocess = require('svelte-preprocess');

module.exports = {
  preprocess: autoPreprocess(),
};


================================================
FILE: create-snowpack-app/app-template-svelte-typescript/tsconfig.json
================================================
{
  "extends": "@tsconfig/svelte/tsconfig.json",
  "include": ["src", "types"],
  "compilerOptions": {
    "module": "esnext",
    "moduleResolution": "node",
    "jsx": "preserve",
    "baseUrl": "./",
    /* paths - import rewriting/resolving */
    "paths": {
      // If you configured any Snowpack aliases, add them here.
      // Add this line to get types for streaming imports (packageOptions.source="remote"):
      //     "*": [".snowpack/types/*"]
      // More info: https://www.snowpack.dev/guides/streaming-imports
    },
    /* noEmit - Snowpack builds (emits) files, not tsc. */
    "noEmit": true,
    /* Additional Options */
    "strict": true,
    "skipLibCheck": true,
    "types": ["mocha", "snowpack-env"],
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true,
    "useDefineForClassFields": true,
    "allowSyntheticDefaultImports": true,
    "importsNotUsedAsValues": "error"
  }
}


================================================
FILE: create-snowpack-app/app-template-svelte-typescript/types/static.d.ts
================================================
/* Use this file to declare any custom file extensions for importing */
/* Use this folder to also add/extend a package d.ts file, if needed. */

/* CSS MODULES */
declare module '*.module.css' {
  const classes: {[key: string]: string};
  export default classes;
}
declare module '*.module.scss' {
  const classes: {[key: string]: string};
  export default classes;
}
declare module '*.module.sass' {
  const classes: {[key: string]: string};
  export default classes;
}
declare module '*.module.less' {
  const classes: {[key: string]: string};
  export default classes;
}
declare module '*.module.styl' {
  const classes: {[key: string]: string};
  export default classes;
}

/* CSS */
declare module '*.css';
declare module '*.scss';
declare module '*.sass';
declare module '*.less';
declare module '*.styl';

/* IMAGES */
declare module '*.svg' {
  const ref: string;
  export default ref;
}
declare module '*.bmp' {
  const ref: string;
  export default ref;
}
declare module '*.gif' {
  const ref: string;
  export default ref;
}
declare module '*.jpg' {
  const ref: string;
  export default ref;
}
declare module '*.jpeg' {
  const ref: string;
  export default ref;
}
declare module '*.png' {
  const ref: string;
  export default ref;
}

/* CUSTOM: ADD YOUR OWN HERE */


================================================
FILE: create-snowpack-app/app-template-svelte-typescript/web-test-runner.config.js
================================================
process.env.NODE_ENV = 'test';

module.exports = {
  plugins: [require('@snowpack/web-test-runner-plugin')()],
};


================================================
FILE: create-snowpack-app/app-template-vue/.npmignore
================================================
.build
build

================================================
FILE: create-snowpack-app/app-template-vue/README.md
================================================
# New Project

> ✨ Bootstrapped with Create Snowpack App (CSA).

## Available Scripts

### npm start

Runs the app in the development mode.
Open http://localhost:8080 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

### npm test

**⚠️ NOTE:** Vue 3 testing support is still in progress. This template does not ship with a test runner.

### npm run build

Builds the app for production to the `build/` folder.
It correctly bundles Vue in production mode and optimizes the build for the best performance.

### Q: What about Eject?

No eject needed! Snowpack guarantees zero lock-in, and CSA strives for the same.


================================================
FILE: create-snowpack-app/app-template-vue/package.json
================================================
{
  "name": "@snowpack/app-template-vue",
  "description": "A preconfigured template for Snowpack with Vue",
  "version": "2.1.2",
  "license": "MIT",
  "homepage": "https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-vue#readme",
  "repository": {
    "type": "git",
    "url": "https://github.com/withastro/snowpack.git",
    "directory": "create-snowpack-app/app-template-vue"
  },
  "keywords": [
    "csa-template"
  ],
  "publishConfig": {
    "access": "public"
  },
  "scripts": {
    "start": "snowpack dev",
    "build": "snowpack build",
    "test": "echo \"This template does not include a test runner by default.\" && exit 1"
  },
  "dependencies": {
    "vue": "^3.0.11"
  },
  "devDependencies": {
    "@snowpack/plugin-dotenv": "^2.1.0",
    "@snowpack/plugin-vue": "^2.4.0",
    "snowpack": "^3.3.7"
  },
  "gitHead": "a01616bb0787d56cd782f94cecf2daa12c7594e4"
}


================================================
FILE: create-snowpack-app/app-template-vue/public/index.html
================================================
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="description" content="Web site created using create-snowpack-app" />
    <title>Snowpack App</title>
  </head>
  <body>
    <div id="app"></div>
    <noscript>You need to enable JavaScript to run this app.</noscript>
    <script type="module" src="/dist/index.js"></script>
    <!--
      This HTML file is a template.
      If you open it directly in the browser, you will see an empty page.

      You can add webfonts, meta tags, or analytics to this file.
      The build step will place the bundled scripts into the <body> tag.

      To begin the development, run `npm start` or `yarn start`.
      To create a production bundle, use `npm run build` or `yarn build`.
    -->
  </body>
</html>


================================================
FILE: create-snowpack-app/app-template-vue/public/robots.txt
================================================
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:


================================================
FILE: create-snowpack-app/app-template-vue/snowpack.config.mjs
================================================
/** @type {import("snowpack").SnowpackUserConfig } */
export default {
  mount: {
    public: {url: '/', static: true},
    src: {url: '/dist'},
  },
  plugins: ['@snowpack/plugin-vue', '@snowpack/plugin-dotenv'],
  routes: [
    /* Enable an SPA Fallback in development: */
    // {"match": "routes", "src": ".*", "dest": "/index.html"},
  ],
  optimize: {
    /* Example: Bundle your final build: */
    // "bundle": true,
  },
  packageOptions: {
    /* ... */
  },
  devOptions: {
    /* ... */
  },
  buildOptions: {
    /* ... */
  },
};


================================================
FILE: create-snowpack-app/app-template-vue/src/App.vue
================================================
<template>
  <div class="App">
    <header class="App-header">
      <img src="/logo.svg" class="App-logo" alt="logo" />
      <p>
        Edit
        <code>src/App.vue</code> and save to reload.
      </p>
      <a
        class="App-link"
        href="https://vuejs.org"
        target="_blank"
        rel="noopener noreferrer"
      >{{ message }}</a>
    </header>
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: "Learn Vue"
    };
  }
};
</script>

<style>
.App {
  text-align: center;
}
.App-header {
  background-color: #f9f6f6;
  color: #32485f;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: calc(10px + 2vmin);
}
.App-link {
  color: #00c185;
}
.App-logo {
  height: 40vmin;
  pointer-events: none;
  margin-bottom: 1rem;
  animation: App-logo-spin infinite 1.6s ease-in-out alternate;
}
@keyframes App-logo-spin {
  from {
    transform: scale(1);
  }
  to {
    transform: scale(1.06);
  }
}
</style>


================================================
FILE: create-snowpack-app/app-template-vue/src/index.js
================================================
import {createApp} from 'vue';
import App from './App.vue';

const app = createApp(App);
app.mount('#app');

// Hot Module Replacement (HMR) - Remove this snippet to remove HMR.
// Learn more: https://www.snowpack.dev/concepts/hot-module-replacement
if (import.meta.hot) {
  import.meta.hot.accept();
  import.meta.hot.dispose(() => {
    app.unmount();
  });
}


================================================
FILE: create-snowpack-app/app-template-vue-typescript/.npmignore
================================================
.build
build

================================================
FILE: create-snowpack-app/app-template-vue-typescript/README.md
================================================
# New Project

> ✨ Bootstrapped with Create Snowpack App (CSA).

## Available Scripts

### npm start

Runs the app in the development mode.
Open http://localhost:8080 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

### npm test

**⚠️ NOTE:** Vue 3 testing support is still in progress. This template does not ship with a test runner.

### npm run build

Builds the app for production to the `build/` folder.
It correctly bundles Vue in production mode and optimizes the build for the best performance.

### Q: What about Eject?

No eject needed! Snowpack guarantees zero lock-in, and CSA strives for the same.


================================================
FILE: create-snowpack-app/app-template-vue-typescript/package.json
================================================
{
  "name": "@snowpack/app-template-vue-typescript",
  "description": "A preconfigured template for Snowpack with Vue and TypeScript",
  "version": "2.1.2",
  "license": "MIT",
  "homepage": "https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-vue-typescript#readme",
  "repository": {
    "type": "git",
    "url": "https://github.com/withastro/snowpack.git",
    "directory": "create-snowpack-app/app-template-vue-typescript"
  },
  "keywords": [
    "csa-template"
  ],
  "publishConfig": {
    "access": "public"
  },
  "scripts": {
    "start": "snowpack dev",
    "build": "snowpack build",
    "type-check": "tsc",
    "test": "echo \"This template does not include a test runner by default.\" && exit 1"
  },
  "dependencies": {
    "vue": "^3.0.11"
  },
  "devDependencies": {
    "@snowpack/plugin-dotenv": "^2.1.0",
    "@snowpack/plugin-vue": "^2.4.0",
    "snowpack": "^3.3.7",
    "typescript": "^4.3.4"
  },
  "gitHead": "a01616bb0787d56cd782f94cecf2daa12c7594e4"
}


================================================
FILE: create-snowpack-app/app-template-vue-typescript/public/index.html
================================================
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="description" content="Web site created using create-snowpack-app" />
    <title>Snowpack App</title>
  </head>
  <body>
    <div id="app"></div>
    <noscript>You need to enable JavaScript to run this app.</noscript>
    <script type="module" src="/dist/index.js"></script>
    <!--
      This HTML file is a template.
      If you open it directly in the browser, you will see an empty page.

      You can add webfonts, meta tags, or analytics to this file.
      The build step will place the bundled scripts into the <body> tag.

      To begin the development, run `npm start` or `yarn start`.
      To create a production bundle, use `npm run build` or `yarn build`.
    -->
  </body>
</html>


================================================
FILE: create-snowpack-app/app-template-vue-typescript/public/robots.txt
================================================
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:


================================================
FILE: create-snowpack-app/app-template-vue-typescript/snowpack.config.mjs
================================================
/** @type {import("snowpack").SnowpackUserConfig } */
export default {
  mount: {
    public: {url: '/', static: true},
    src: {url: '/dist'},
  },
  plugins: [
    '@snowpack/plugin-vue',
    '@snowpack/plugin-vue/plugin-tsx-jsx.js',
    '@snowpack/plugin-dotenv',
  ],
  routes: [
    /* Enable an SPA Fallback in development: */
    // {"match": "routes", "src": ".*", "dest": "/index.html"},
  ],
  optimize: {
    /* Example: Bundle your final build: */
    // "bundle": true,
  },
  packageOptions: {
    /* ... */
  },
  devOptions: {
    /* ... */
  },
  buildOptions: {
    /* ... */
  },
};


================================================
FILE: create-snowpack-app/app-template-vue-typescript/src/App.vue
================================================
<template>
  <div class="App">
    <header class="App-header">
      <img src="/logo.svg" class="App-logo" alt="logo" />
      <p>
        Edit
        <code>src/App.vue</code> and save to reload.
      </p>
      <p class="App-tsx">
        <FooTsxVue />
        <FooTsx />
        <BarJsxVue />
        <BarJsx />
      </p>
      <a class="App-link" href="https://vuejs.org" target="_blank" rel="noopener noreferrer">{{
        state.message
      }}</a>
    </header>
  </div>
</template>

<script lang="ts">
import {defineComponent, reactive} from 'vue';

interface State {
  message: string;
}

export default defineComponent({
  setup() {
    const state = reactive({
      message: 'Learn Vue',
    });
    return {
      state,
    };
  },
});
</script>

<style>
.App {
  text-align: center;
}
.App-header {
  background-color: #f9f6f6;
  color: #32485f;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: calc(10px + 2vmin);
}
.App-link {
  color: #00c185;
}
.App-logo {
  height: 40vmin;
  pointer-events: none;
  margin-bottom: 1rem;
  animation: App-logo-spin infinite 1.6s ease-in-out alternate;
}
.App-tsx {
  display: flex;
}
.App-tsx > div {
  margin-left: 30px;
  font-size: 16px;
}
@keyframes App-logo-spin {
  from {
    transform: scale(1);
  }
  to {
    transform: scale(1.06);
  }
}
</style>


================================================
FILE: create-snowpack-app/app-template-vue-typescript/src/index.js
================================================
import {createApp} from 'vue';
import App from './App.vue';

const app = createApp(App);
app.mount('#app');

// Hot Module Replacement (HMR) - Remove this snippet to remove HMR.
// Learn more: https://www.snowpack.dev/concepts/hot-module-replacement
if (import.meta.hot) {
  import.meta.hot.accept();
  import.meta.hot.dispose(() => {
    app.unmount();
  });
}


================================================
FILE: create-snowpack-app/app-template-vue-typescript/tsconfig.json
================================================
{
  "include": ["src", "types"],
  "compilerOptions": {
    "module": "esnext",
    "target": "esnext",
    "moduleResolution": "node",
    "jsx": "preserve",
    "baseUrl": "./",
    /* paths - import rewriting/resolving */
    "paths": {
      // If you configured any Snowpack aliases, add them here.
      // Add this line to get types for streaming imports (packageOptions.source="remote"):
      //     "*": [".snowpack/types/*"]
      // More info: https://www.snowpack.dev/guides/streaming-imports
    },
    /* noEmit - Snowpack builds (emits) files, not tsc. */
    "noEmit": true,
    /* Additional Options */
    "strict": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true,
    "allowSyntheticDefaultImports": true,
    "importsNotUsedAsValues": "error"
  }
}


================================================
FILE: create-snowpack-app/app-template-vue-typescript/types/shims-vue.d.ts
================================================
declare module '*.vue' {
  import {defineComponent} from 'vue';
  const component: ReturnType<typeof defineComponent>;
  export default component;
}


================================================
FILE: create-snowpack-app/app-template-vue-typescript/types/static.d.ts
================================================
/* Use this file to declare any custom file extensions for importing */
/* Use this folder to also add/extend a package d.ts file, if needed. */

/* CSS MODULES */
declare module '*.module.css' {
  const classes: {[key: string]: string};
  export default classes;
}
declare module '*.module.scss' {
  const classes: {[key: string]: string};
  export default classes;
}
declare module '*.module.sass' {
  const classes: {[key: string]: string};
  export default classes;
}
declare module '*.module.less' {
  const classes: {[key: string]: string};
  export default classes;
}
declare module '*.module.styl' {
  const classes: {[key: string]: string};
  export default classes;
}

/* CSS */
declare module '*.css';
declare module '*.scss';
declare module '*.sass';
declare module '*.less';
declare module '*.styl';

/* IMAGES */
declare module '*.svg' {
  const ref: string;
  export default ref;
}
declare module '*.bmp' {
  const ref: string;
  export default ref;
}
declare module '*.gif' {
  const ref: string;
  export default ref;
}
declare module '*.jpg' {
  const ref: string;
  export default ref;
}
declare module '*.jpeg' {
  const ref: string;
  export default ref;
}
declare module '*.png' {
  const ref: string;
  export default ref;
}

/* CUSTOM: ADD YOUR OWN HERE */


================================================
FILE: create-snowpack-app/cli/README.md
================================================
# Create Snowpack App (CSA)

```sh
npx create-snowpack-app new-dir --template @snowpack/app-template-NAME [--use-yarn | --use-pnpm | --no-install | --no-git]
```

## Official App Templates

- [@snowpack/app-template-blank](https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-blank)
- [@snowpack/app-template-blank-typescript](https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-blank-typescript)
- [@snowpack/app-template-11ty](https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-11ty)
- [@snowpack/app-template-lit-element](https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-lit-element)
- [@snowpack/app-template-lit-element-typescript](https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-lit-element-typescript)
- [@snowpack/app-template-preact](https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-preact)
- [@snowpack/app-template-preact-typescript](https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-preact-typescript)
- [@snowpack/app-template-react](https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-react)
- [@snowpack/app-template-react-typescript](https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-react-typescript)
- [@snowpack/app-template-svelte](https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-svelte)
- [@snowpack/app-template-svelte-typescript](https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-svelte-typescript)
- [@snowpack/app-template-vue](https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-vue)
- [@snowpack/app-template-vue-typescript](https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-vue-typescript)

### Featured Community Templates

- [snowpack-template-preset-env](https://github.com/argyleink/snowpack-template-preset-env) (PostCSS + Babel)
- [11st-Starter-Kit](https://github.com/stefanfrede/11st-starter-kit) (11ty +
  Snowpack + tailwindcss)
- [app-template-rescript-react](https://github.com/jihchi/app-template-rescript-react) (ReScript & rescript-react on top of [@snowpack/app-template-react](https://github.com/withastro/snowpack/tree/main/create-snowpack-app/app-template-react))
- [svelte-tailwind](https://github.com/agneym/svelte-tailwind-snowpack) (Adds PostCSS and TailwindCSS using [svelte-preprocess](https://github.com/sveltejs/svelte-preprocess))
- [snowpack-react-tailwind](https://github.com/mrkldshv/snowpack-react-tailwind) (React + Snowpack + Tailwindcss)
- [hyperapp-snowpack](https://github.com/bmartel/hyperapp-snowpack) (Hyperapp + Snowpack + TailwindCSS)
- [snowpack-vue-capacitor-2-demo](https://github.com/brodybits/snowpack-vue-capacitor-2-demo) Demo of Snowpack with Vue and [Capacitor mobile app framework](https://capacitorjs.com/) version 2, originally generated from `@snowpack/vue-template` template, see [discussion #905](https://github.com/withastro/snowpack/discussions/905)
- [snowpack-react-ssr](https://github.com/matthoffner/snowpack-react-ssr) (React + Server Side Rendering)
- [snowpack-app-template-preact-hmr-tailwind](https://github.com/Mozart409/snowpack-app-template-preact-hmr-tailwind) (Snowpack + Preact + HMR + Tailwindcss)
- [snowpack-mdx-chakra](https://github.com/molebox/snowpack-mdx)(An opinionated template setup with MDX, Chakra-ui for styling, theme and components, and React Router v6 for routing.)
- [app-template-sstt](https://github.com/LBrian/app-template-s2t2) (S2T2 - Snowpack + Svelte + Typescript + TailwindCSS)
- [snowpack-svelte-ts-tw](https://github.com/GarrettCannon/snowpack-svelte-ts-tw) (Snowpack + Svelte + Typescript + TailwindCSS)
- [snowpack-template-tailwind](https://github.com/jonalvarezz/snowpack-template-tailwind) (Snowpack + TailwindCSS + Autopublish to GitHub Pages)
- [glimmer-snowpack](https://github.com/rajasegar/glimmer-snowpack) (Snowpack + [Glimmer.js](https://glimmerjs.com))
- [snowpack-cycle](https://github.com/rajasegar/snowpack-cycle) (A pre-configured Snowpack app template for [Cycle.js](https://cycle.js.org))
- [@snowpack-angular/template](https://github.com/YogliB/snowpack-angular/tree/main/templates/base) (A preconfigured template for Snowpack with [Angular](https://angular.io))
- [snowpack-solid](https://github.com/amoutonbrady/snowpack-solid) (A pre-configured Snowpack app template for [Solid](https://github.com/ryansolid/solid))
- [snowpack-template-ts-rust-wasm](https://github.com/jake-pauls/snowpack-template-ts-rust-wasm) (Snowpack + Typescript + Rust + WebAssembly)
- PRs that add a link to this list are welcome!


================================================
FILE: create-snowpack-app/cli/createSnowpackApp.js
================================================
const fs = require('fs');
const path = require('path');
const execa = require('execa');
const yargs = require('yargs-parser');
const {copy, removeSync} = require('fs-extra');
const colors = require('kleur');

const errorAlert = `${colors.red('[ERROR]')}`;
const errorLink = `${colors.dim(colors.underline('https://github.com/withastro/snowpack'))}`;

function logError(msg) {
  console.error(`${errorAlert} ${msg} ${errorLink}`);
  process.exit(1);
}

function hasPmInstalled(packageManager) {
  try {
    execa.commandSync(`${packageManager} --version`);
    return true;
  } catch (err) {
    return false;
  }
}

function validateArgs(args) {
  const {template, useYarn, usePnpm, force, target, install, verbose, git = true, _} = yargs(args);
  const toInstall = install !== undefined ? install : true;
  const toInitializeGitRepo = git !== undefined ? git : true;
  if (useYarn && usePnpm) {
    logError('You can not use Yarn and pnpm at the same time.');
  }
  if (useYarn && !hasPmInstalled('yarn')) {
    logError(`Yarn doesn't seem to be installed.`);
  }
  if (usePnpm && !hasPmInstalled('pnpm')) {
    logError(`pnpm doesn't seem to be installed.`);
  }
  if (!target && _.length === 2) {
    logError('Missing --target directory.');
  }
  if (typeof template !== 'string') {
    logError('Missing --template argument.');
  }
  if (_.length > 3) {
    logError('Unexpected extra arguments.');
  }
  const targetDirectoryRelative = target || _[2];
  const targetDirectory = path.resolve(process.cwd(), targetDirectoryRelative);
  if (fs.existsSync(targetDirectory) && !force) {
    logError(`${targetDirectory} already exists. Use \`--force\` to overwrite this directory.`);
  }
  return {
    template,
    useYarn,
    usePnpm,
    targetDirectoryRelative,
    targetDirectory,
    toInstall,
    toInitializeGitRepo,
    verbose,
  };
}

async function verifyProjectTemplate(isLocalTemplate, {template, dir}) {
  let keywords;
  if (isLocalTemplate) {
    const packageManifest = path.join(dir, 'package.json');
    keywords = require(packageManifest).keywords;
  } else {
    try {
      const {stdout} = await execa('npm', ['info', template, 'keywords', '--json']);
      keywords = JSON.parse(stdout);
    } catch (err) {
      console.log();
      if (err.stderr) {
        console.error(
          `${errorAlert} Unable to find "${colors.cyan(template)}" in the npm registry.`,
        );
      } else {
        console.log(err);
      }
      console.error(`${errorAlert} Cannot continue safely. Exiting...`);
      process.exit(1);
    }
  }

  if (!keywords || !keywords.includes('csa-template')) {
    console.error(
      `\n${errorAlert} The template is not a CSA template (missing "${colors.yellow(
        'csa-template',
      )}" keyword in package.json), check the template name to make sure you are using the current template name.`,
    );
    console.error(`${errorAlert} Cannot continue safely. Exiting...`);
    process.exit(1);
  }
}

async function cleanProject(dir) {
  const packageManifest = path.join(dir, 'package.json');
  removeSync(path.join(dir, 'package-lock.json'));
  removeSync(path.join(dir, 'node_modules'));

  const {scripts, webDependencies, dependencies, devDependencies} = require(packageManifest);
  const {prepare, start, build, test, ...otherScripts} = scripts;
  await fs.promises.writeFile(
    packageManifest,
    JSON.stringify(
      {
        scripts: {prepare, start, build, test, ...otherScripts},
        webDependencies,
        dependencies,
        devDependencies,
      },
      null,
      2,
    ),
  );

  const gitignore = path.join(dir, '.gitignore');
  if (!fs.existsSync(gitignore)) {
    await fs.promises.writeFile(gitignore, ['.snowpack', 'build', 'node_modules'].join('\n'));
  }
}

async function initializeGitRepo(targetDirectory) {
  console.log(`\n  - Initializing git repo.\n`);
  try {
    await execa('git', ['init'], {cwd: targetDirectory});
    await execa('git', ['add', '-A'], {cwd: targetDirectory});
    await execa('git', ['commit', '-m', 'initial commit'], {
      cwd: targetDirectory,
    });
    console.log(`  - ${colors.green('Success!')}`);
  } catch (err) {
    console.log(`  - ${colors.yellow('Could not complete git repository initialization.')}`);
  }
}

const {
  template,
  useYarn,
  usePnpm,
  toInstall,
  toInitializeGitRepo,
  targetDirectoryRelative,
  targetDirectory,
  verbose,
} = validateArgs(process.argv);

let installer = 'npm';
if (useYarn) {
  installer = 'yarn';
} else if (usePnpm) {
  installer = 'pnpm';
}

const isLocalTemplate = template.startsWith('.'); // must start with a `.` to be considered local
const installedTemplate = isLocalTemplate
  ? path.resolve(process.cwd(), template) // handle local template
  : path.join(targetDirectory, 'node_modules', template); // handle template from npm/yarn

(async () => {
  await verifyProjectTemplate(isLocalTemplate, {dir: installedTemplate, template});

  console.log(`\n  - Using template ${colors.cyan(template)}`);
  console.log(`  - Creating a new project in ${colors.cyan(targetDirectory)}`);
  fs.mkdirSync(targetDirectory, {recursive: true});
  await fs.promises.writeFile(path.join(targetDirectory, 'package.json'), `{"name": "my-csa-app"}`);
  // fetch from npm or GitHub if not local (which will be most of the time)
  if (!isLocalTemplate) {
    try {
      await execa(
        'npm',
        ['install', template, '--ignore-scripts', '--loglevel', verbose ? 'verbose' : 'error'],
        {
          cwd: targetDirectory,
          all: true,
        },
      );
    } catch (err) {
      // Only log output if the command failed
      console.error(err.all);
      throw err;
    }
  }
  await copy(installedTemplate, targetDirectory);
  await cleanProject(targetDirectory);

  if (toInstall) {
    console.log(`  - Installing package dependencies. This might take a couple of minutes.\n`);

    const npmInstallOptions = {
      cwd: targetDirectory,
      stdio: 'inherit',
    };

    function installProcess(packageManager) {
      switch (packageManager) {
        case 'npm':
          return execa(
            'npm',
            ['install', '--loglevel', verbose ? 'verbose' : 'error'],
            npmInstallOptions,
          );
        case 'yarn':
          return execa('yarn', [verbose ? '--verbose' : '--silent'], npmInstallOptions);
        case 'pnpm':
          return execa(
            'pnpm',
            ['install', `--reporter=${verbose ? 'default' : 'silent'}`],
            npmInstallOptions,
          );
        default:
          throw new Error('Unspecified package installer.');
      }
    }

    const npmInstallProcess = installProcess(installer);
    npmInstallProcess.stdout && npmInstallProcess.stdout.pipe(process.stdout);
    npmInstallProcess.stderr && npmInstallProcess.stderr.pipe(process.stderr);
    await npmInstallProcess;
  } else {
    console.log(`  - Skipping "${installer} install" step\n`);
  }

  if (toInitializeGitRepo) {
    await initializeGitRepo(targetDirectory);
  }

  function formatCommand(command, description) {
    return '  ' + command.padEnd(17) + colors.dim(description);
  }

  console.log(``);
  console.log(colors.bold(colors.underline(`Quickstart:`)));
  console.log(``);
  console.log(`  cd ${targetDirectoryRelative}`);
  console.log(`  ${installer} start`);
  console.log(``);
  console.log(colors.bold(colors.underline(`All Commands:`)));
  console.log(``);
  console.log(
    formatCommand(
      `${installer} install`,
      `Install your dependencies. ${
        toInstall ? '(We already ran this one for you!)' : '(You asked us to skip this step!)'
      }`,
    ),
  );
  console.log(formatCommand(`${installer} start`, 'Start your development server.'));
  console.log(formatCommand(`${installer} run build`, 'Build your website for production.'));
  console.log(formatCommand(`${installer} test`, 'Run your tests.'));
  console.log(``);
})();


================================================
FILE: create-snowpack-app/cli/index.js
================================================
#!/usr/bin/env node
'use strict';

const currentVersion = process.versions.node;
const requiredMajorVersion = parseInt(currentVersion.split('.')[0], 10);
const minimumMajorVersion = 10;

if (requiredMajorVersion < minimumMajorVersion) {
  console.error(`Node.js v${currentVersion} is out of date and unsupported!`);
  console.error(`Please use Node.js v${minimumMajorVersion} or higher.`);
  process.exit(1);
}

require('./createSnowpackApp');


================================================
FILE: create-snowpack-app/cli/package.json
================================================
{
  "name": "create-snowpack-app",
  "version": "1.10.0",
  "license": "MIT",
  "homepage": "https://github.com/withastro/snowpack/tree/main/create-snowpack-app/cli#readme",
  "repository": {
    "type": "git",
    "url": "https://github.com/withastro/snowpack.git",
    "directory": "create-snowpack-app/cli"
  },
  "publishConfig": {
    "access": "public"
  },
  "bin": {
    "create-snowpack-app": "./index.js"
  },
  "dependencies": {
    "execa": "^5.1.1",
    "fs-extra": "^9.0.0",
    "kleur": "^4.1.1",
    "yargs-parser": "^20.0.0"
  }
}


================================================
FILE: docs/README.md
================================================
<h1>Documentation</h1>

**📚 To read our documentation, please visit the official [Snowpack website ➞](https://snowpack.dev)**

---

**🙋 To contribute to our documentation, please read our [Contributor Guidelines ➞](../CONTRIBUTING.md#Documentation)**


================================================
FILE: docs/concepts/build-pipeline.md
================================================
---
layout: ../../layouts/content.astro
title: The Build Pipeline
description: Snowpack Build creates a production-ready website with or without a bundler
---

![build output example](/img/snowpack-build-example.png)

`snowpack build` - When you're ready to deploy your application, run the build command to generate a static production build of your site. Building is tightly integrated with your dev setup so that you are guaranteed to get a near-exact copy of the same code that you saw during development.

### Bundle for Production

**You should be able to use a bundler because you want to, and not because you need to.** That was the original concept that Snowpack was designed to address. Snowpack treats bundling as an optional production optimization, which means you're free to skip over the extra complexity of bundling until you need it.

By default, `snowpack build` will build your site using the same unbundled approach as the `dev` command. This is fine for most projects, but you also may still want to bundle for production. Legacy browser support, code minification, code-splitting, tree-shaking, dead code elimination, and other performance optimizations can all be handled in Snowpack via bundling.

Bundlers normally require dozens or even hundreds of lines of configuration, but with Snowpack it's just a one-line plugin with no config required. This is possible because Snowpack builds your application _before_ sending it to the bundler, so the bundler never sees your custom source code (JSX, TS, Svelte, Vue, etc.) and instead needs to worry only about building common HTML, CSS, and JS.

```js
// Bundlers plugins are pre-configured to work with Snowpack apps.
// No config required! You just need to install the plugin first.
{
  "plugins": [["@snowpack/plugin-webpack"]]
}
```

See [our bundling guides](/guides/optimize-and-bundle) for more information about connecting bundled (or unbundled) optimization plugins for your production builds.

## Legacy Browser Support

You can customize the set of browsers you'd like to support via the `package.json` "browserslist" property, going all the way back to IE11. This will be picked up when you run `snowpack build` to build for production.

```js
/* package.json */
"browserslist": ">0.75%, not ie 11, not UCAndroid >0, not OperaMini all",
```

If you're worried about legacy browsers, you should also add a bundler to your production build. Check out our [section on bundling for deployment](/guides/optimize-and-bundle) for more info.

Note: During development (`snowpack dev`) we perform no transpilation for older browsers. Make sure that you're using a modern browser during development.


================================================
FILE: docs/concepts/dev-server.md
================================================
---
layout: ../../layouts/content.astro
title: The Dev Server
description: Snowpack's dev server is fast because it only rebuilds the files you change. Powered by ESM (ES modules).
---

![dev command output example](/img/snowpack-dev-startup-2.png)

`snowpack dev` - Snowpack's dev server is an instant dev environment for [unbundled development.](/concepts/how-snowpack-works) The dev server will build a file only when it's requested by the browser. That means that Snowpack can start up instantly (usually in **<50ms**) and scale to infinitely large projects without slowing down. In contrast, it's common to see 30+ second dev startup times when building large apps with a traditional bundler.

Snowpack supports JSX & TypeScript source code by default. You can extend your build even further with [custom plugins](/plugins) that connect Snowpack with your favorite build tools: TypeScript, Babel, Vue, Svelte, PostCSS, Sass... go wild!


================================================
FILE: docs/concepts/hot-module-replacement.md
================================================
---
layout: ../../layouts/content.astro
title: HMR + Fast Refresh
description: Snowpack's ESM-powered unbundled development means near-instant single file builds that only take 10-25ms to load and update in the browser.
---

Hot Module Replacement (HMR) is the ability to push file updates to the browser without triggering a full page refresh. Imagine changing some CSS, hitting save, and then instantly seeing your change reflected on the page without a refresh. That's HMR.

HMR is not unique to Snowpack. However, Snowpack's ability to leverage ESM for unbundled development introduces near-instant single file builds that only take 10-25ms to load and update in the browser.

Snowpack ships with ready, out-of-the-box HMR support for the following file types:

- CSS
- CSS Modules
- JSON

JavaScript HMR is also supported out-of-the-box, but often requires a few additional lines of code to properly integrate with your frontend framework's "render" function. See "Enabling HMR + Fast Refresh" below.

## Fast Refresh

In addition to normal HMR, Snowpack also supports **Fast Refresh** for most popular frameworks like React, Preact and Svelte. Fast Refresh is a framework-specific enhancement to HMR, which applies single file updates in a way that preserves component state across updates. Changes to a `<Timer />` component, for example, would be applied without resetting the component's internal state.

Fast Refresh makes development even faster, especially when working on popups and other secondary view states that normally would require a click to re-open or re-visit after every change.

## Enabling HMR + Fast Refresh

Snowpack supports HMR for all popular frontend frameworks. **[Create Snowpack App (CSA)](https://github.com/withastro/snowpack/blob/main/create-snowpack-app) ships with HMR enabled by default.** You can setup HMR yourself with just a few lines of code, and Fast Refresh can be enabled automatically via plugin:

- Preact: [@prefresh/snowpack](https://www.npmjs.com/package/@prefresh/snowpack)
- React: [@snowpack/plugin-react-refresh](https://www.npmjs.com/package/@snowpack/plugin-react-refresh)
- Svelte: [@snowpack/plugin-svelte](https://www.npmjs.com/package/@snowpack/plugin-svelte)
- Vue (HMR only): [A few lines of code](https://github.com/withastro/snowpack/blob/main/create-snowpack-app/app-template-vue/src/index.js#L7-L14)

For more advanced HMR integrations, Snowpack created the [esm-hmr spec](https://github.com/snowpackjs/esm-hmr), a standard HMR API for any ESM-based dev environment:

```js
// HMR Code Snippet Example
if (import.meta.hot) {
  import.meta.hot.accept(({module}) => {
    // Accept the module, apply it into your application.
  });
}
```

Check out the full [ESM-HMR API reference](https://github.com/snowpackjs/esm-hmr) on GitHub.


================================================
FILE: docs/concepts/how-snowpack-works.md
================================================
---
layout: ../../layouts/content.astro
title: How Snowpack Works
description: Snowpack serves your application unbundled during development. Each file is built only once and is cached until it changes.
---

### Summary

**Snowpack is a modern, lightweight build tool for faster web development.** Traditional JavaScript build tools like webpack and Parcel need to rebuild & rebundle entire chunks of your application every time you save a single file. This rebundling step introduces lag between hitting save on your changes and seeing them reflected in the browser.

Snowpack serves your application **unbundled during development.** Each file needs to be built only once and then is cached forever. When a file changes, Snowpack rebuilds that single file. There's no time wasted re-bundling every change, just instant updates in the browser (made even faster via [Hot-Module Replacement (HMR)](/concepts/hot-module-replacement)). You can read more about this approach in our [Snowpack 2.0 Release Post.](/posts/2020-05-26-snowpack-2-0-release/)

Snowpack's **unbundled development** still supports the same **bundled builds** that you're used to for production. When you go to build your application for production, you can plug in your favorite bundler via an official Snowpack plugin for Webpack or Rollup (coming soon). With Snowpack already handling your build, there's no complex bundler config required.

**Snowpack gets you the best of both worlds:** fast, unbundled development with optimized performance in your bundled production builds.

![webpack vs. snowpack diagram](/img/snowpack-unbundled-example-3.png)

### Unbundled Development

**Unbundled development** is the idea of shipping individual files to the browser during development. Files can still be built with your favorite tools (like Babel, TypeScript, Sass) and then loaded individually in the browser with dependencies thanks to ESM `import` and `export` syntax. Any time you change a file, Snowpack rebuilds only that file.

The alternative is **bundled development.** Almost every popular JavaScript build tool today focuses on bundled development. Running your entire application through a bundler introduces additional work and complexity to your dev workflow that is unnecessary now that ESM is widely supported. Every change -- on every save -- must be rebundled with the rest of your application before your changes can be reflected in your browser.

Unbundled development has several advantages over the traditional bundled development approach:

- Single-file builds are fast.
- Single-file builds are deterministic.
- Single-file builds are easier to debug.
- Project size doesn’t affect dev speed.
- Individual files cache better.

That last point is key: **Every file is built individually and cached indefinitely.** Your dev environment will never build a file more than once and your browser will never download a file twice (until it changes). This is the real power of unbundled development.

### Using NPM Dependencies

NPM packages are mainly published using a module syntax (Common.js, or CJS) that can't run on the web without some build processing. Even if you write your application using browser-native ESM `import` and `export` statements that would all run directly in the browser, trying to import any one npm package will force you back into bundled development.

**Snowpack takes a different approach:** Instead of bundling your entire application for this one requirement, Snowpack processes your dependencies separately. Here's how it works:

```
node_modules/react/**/*     -> http://localhost:3000/web_modules/react.js
node_modules/react-dom/**/* -> http://localhost:3000/web_modules/react-dom.js
```

1. Snowpack scans your website/application for all used npm packages.
2. Snowpack reads these installed dependencies from your `node_modules` directory.
3. Snowpack bundles all of your dependencies separately into single JavaScript files. For example: `react` and `react-dom` are converted to `react.js` and `react-dom.js`, respectively.
4. Each resulting file can be run directly in the browser, and imported via ESM `import` statements.
5. Because your dependencies rarely change, Snowpack rarely needs to rebuild them.

After Snowpack builds your dependencies, any package can be imported and run directly in the browser with zero additional bundling or tooling required. This ability to import npm packages natively in the browser (without a bundler) is the foundation that all unbundled development and the rest of Snowpack is built on top of.

```html
<!-- This runs directly in the browser with `snowpack dev` -->
<body>
  <script type="module">
    import React from 'react';
    console.log(React);
  </script>
</body>
```


================================================
FILE: docs/guides/babel.md
================================================
---
layout: ../../layouts/content.astro
title: 'Babel'
tags: communityGuide
published: true
img: '/img/logos/babel.svg'
imgBackground: '#323330'
description: How to use Babel in your Snowpack project.
---

[Babel](https://babeljs.io/) is a popular JavaScript transpiler that includes a huge ecosystem of plugins.

**You probably don't need Babel!** Snowpack has built-in support for JSX and TypeScript transpilation. Only use Babel if you need to customize how your JavaScript/TypeScript files are built using custom Babel plugins/presets.

**To use Babel with Snowpack:** add the [@snowpack/plugin-babel](https://www.npmjs.com/package/@snowpack/plugin-babel) plugin to your project.

```diff
  // snowpack.config.mjs
  export default {
    "plugins": [
+     ['@snowpack/plugin-babel'],
    ],
  };
```


================================================
FILE: docs/guides/connecting-tools.md
================================================
---
layout: ../../layouts/content.astro
title: The Snowpack Guide to connecting your favorite tools
description: 'How do you use your favorite tools in Snowpack? This Guide will help you get started'
published: true
---

One of the most common questions we get is "How do I connect my favorite tool to Snowpack?" In this guide we'll go over the three different ways that you can integrate third-party tooling into your Snowpack dev environment or build pipeline:

- Snowpack plugin
- Integrated CLI script (via `@snowpack/plugin-run-script`)
- Run separately, outside of Snowpack (ex: in your `package.json`)

## Integrating a Tool With a Snowpack Plugin

The best way to connect a new tool to Snowpack is to search our [plugin catalog](/plugins) for a relevant plugin. Most likely, someone already created a plugin to help you integrate your favorite tool with ease.

To add a plugin first install using your package manager, then add the plugin name to the `plugins` section in your Snowpack configuration file. Many plugins have their own totally optional configuration options. These are covered in each plugin's documentation.

For example, if you'd like to use sass, you can install [`@snowpack/plugin-sass`
](https://www.npmjs.com/package/@snowpack/plugin-sass) with npm:

```bash
npm install @snowpack/plugin-sass
```

Then if you don't already have a Snowpack configuration file (`snowpack.config.mjs`) you can create one with this command:

```bash
snowpack init
```

Open up `snowpack.config.mjs` and add the name of your new plugin to the plugins object:

```diff
  // snowpack.config.mjs
  export default {
    plugins: [
-    /* ... */
+    '@snowpack/plugin-sass',
    ],
  };
```

What about the other optional configuration options? [The `@snowpack/plugin-sass` documentation](https://github.com/withastro/snowpack/tree/main/plugins/plugin-sass) lists all the options and where to put them in the `snowpack.config.mjs` file. If I wanted the `compressed` output `style` I'd turn the `@snowpack/plugin-sass` value into an array with an object containing the configuration:

```diff
  // snowpack.config.mjs
  export default {
    plugins: [
-     '@snowpack/plugin-sass'
+     ['@snowpack/plugin-sass', { style: 'compressed'}]
    ],
  };
```

If there isn't a plugin yet, you might be interested in making one. Check out our [Plugin API](/reference/plugins)

## Connect any other Script/CLI using plugin-run-script and plugin-build-script

If you can't find a plugin that fits your needs and don't want to write your own, you can also run CLI commands directly as a part of your build using one of our two utility plugins: `@snowpack/plugin-build-script` & `@snowpack/plugin-run-script`.

#### @snowpack/plugin-build-script

```js
// snowpack.config.mjs
// [npm install @snowpack/plugin-build-script]
export default {
  plugins: [
    [
      '@snowpack/plugin-build-script',
      {
        cmd: 'postcss',
        input: ['.css'],
        output: ['.css'],
      },
    ],
  ],
};
```

This plugin allows you to connect any CLI into your build process. Just give it a `cmd` CLI command that can take input from `stdin` and emit the build result via `stdout`. Check out the [plugin documentation](https://github.com/withastro/snowpack/tree/main/plugins/plugin-build-script) for more information.

#### @snowpack/plugin-run-script

```js
// snowpack.config.mjs
// [npm install @snowpack/plugin-run-script]
export default {
  plugins: [
    [
      '@snowpack/plugin-run-script',
      {
        cmd: 'eleventy',
        watch: '$1 --watch',
      },
    ],
  ],
};
```

This plugin allows you to run any CLI command as a part of your dev and build workflow. This plugin doesn't affect your build output, but it is useful for connecting developer tooling directly into Snowpack. Use this to add meaningful feedback to your dev console as you type, like TypeScript type-checking and ESLint lint errors. This doesn't affect how Snowpack builds your site. Check out the [plugin documentation](https://github.com/withastro/snowpack/tree/main/plugins/plugin-run-script) for more information.

### Examples

#### PostCSS

```js
// snowpack.config.mjs
export default {
  plugins: [
    [
      '@snowpack/plugin-build-script',
      {
        cmd: 'postcss',
        input: ['.css'],
        output: ['.css'],
      },
    ],
  ],
};
```

The [`postcss-cli`](https://github.com/postcss/postcss-cli) package must be installed manually. You can configure PostCSS with a `postcss.config.js` file in your current working directory.

#### ESLint

```js
// snowpack.config.mjs
export default {
  plugins: [
    [
      '@snowpack/plugin-run-script',
      {
        cmd: 'eslint src --ext .js,.jsx,.ts,.tsx',
        // Optional: Use npm package "eslint-watch" to run on every file change
        watch: 'esw -w --clear src --ext .js,.jsx,.ts,.tsx',
      },
    ],
  ],
};
```


================================================
FILE: docs/guides/hmr.md
================================================
---
layout: ../../layouts/content.astro
title: Hot Module Replacement (HMR)
description: Enable Snowpack's Hot Module Replacement (HMR) on your development server.
published: false
---

<div class="stub">
This article is a stub, you 
Download .txt
gitextract_28t6qide/

├── .changeset/
│   ├── README.md
│   └── config.json
├── .editorconfig
├── .github/
│   ├── CODEOWNERS
│   ├── ISSUE_TEMPLATE/
│   │   ├── ---bug-report.yml
│   │   ├── ---feature-request.yml
│   │   └── config.yml
│   ├── ISSUE_TEMPLATE.md
│   ├── PULL_REQUEST_TEMPLATE.md
│   └── workflows/
│       ├── format.yml
│       ├── lint.yml
│       ├── release.yml
│       └── test.yml
├── .gitignore
├── .prettierignore
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── create-snowpack-app/
│   ├── README.md
│   ├── app-scripts-lit-element/
│   │   ├── package.json
│   │   ├── snowpack.config.js
│   │   └── tsconfig.base.json
│   ├── app-scripts-preact/
│   │   ├── babel.config.json
│   │   ├── jest/
│   │   │   ├── babelTransform.js
│   │   │   ├── cssTransform.js
│   │   │   └── fileTransform.js
│   │   ├── jest.config.js
│   │   ├── package.json
│   │   ├── snowpack.config.js
│   │   └── tsconfig.base.json
│   ├── app-scripts-react/
│   │   ├── babel.config.json
│   │   ├── jest/
│   │   │   ├── babelTransform.js
│   │   │   ├── cssTransform.js
│   │   │   ├── esbuildTransform.js
│   │   │   ├── fileTransform.js
│   │   │   └── importMetaBabelPlugin.js
│   │   ├── jest.config.js
│   │   ├── package.json
│   │   ├── snowpack.config.js
│   │   └── tsconfig.base.json
│   ├── app-scripts-svelte/
│   │   ├── jest/
│   │   │   ├── babelTransform.js
│   │   │   └── importMetaBabelPlugin.js
│   │   ├── jest.config.js
│   │   ├── package.json
│   │   └── snowpack.config.js
│   ├── app-scripts-vue/
│   │   ├── package.json
│   │   ├── snowpack.config.js
│   │   └── tsconfig.base.json
│   ├── app-template-11ty/
│   │   ├── .eleventy.js
│   │   ├── .npmignore
│   │   ├── .prettierrc
│   │   ├── README.md
│   │   ├── _includes/
│   │   │   └── layouts/
│   │   │       └── base.njk
│   │   ├── _output/
│   │   │   ├── about/
│   │   │   │   └── index.html
│   │   │   ├── index.html
│   │   │   └── static/
│   │   │       └── index.css
│   │   ├── _template/
│   │   │   ├── about.md
│   │   │   ├── index.njk
│   │   │   └── static/
│   │   │       ├── index.css
│   │   │       └── robots.txt
│   │   ├── package.json
│   │   ├── snowpack.config.mjs
│   │   └── src/
│   │       └── index.js
│   ├── app-template-blank/
│   │   ├── .npmignore
│   │   ├── .prettierrc
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.mjs
│   │   └── src/
│   │       ├── index.css
│   │       └── index.js
│   ├── app-template-blank-typescript/
│   │   ├── .npmignore
│   │   ├── .prettierrc
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.mjs
│   │   ├── src/
│   │   │   ├── index.css
│   │   │   └── index.ts
│   │   ├── tsconfig.json
│   │   └── types/
│   │       └── static.d.ts
│   ├── app-template-lit-element/
│   │   ├── .npmignore
│   │   ├── .prettierrc
│   │   ├── README.md
│   │   ├── babel.config.json
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.css
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.mjs
│   │   └── src/
│   │       ├── app-root.js
│   │       └── index.js
│   ├── app-template-lit-element-typescript/
│   │   ├── .npmignore
│   │   ├── .prettierrc
│   │   ├── README.md
│   │   ├── babel.config.json
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.css
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.mjs
│   │   ├── src/
│   │   │   ├── app-root.ts
│   │   │   └── index.ts
│   │   ├── tsconfig.json
│   │   └── types/
│   │       └── static.d.ts
│   ├── app-template-minimal/
│   │   ├── README.md
│   │   ├── index.css
│   │   ├── index.html
│   │   ├── index.js
│   │   ├── package.json
│   │   └── snowpack.config.mjs
│   ├── app-template-preact/
│   │   ├── .npmignore
│   │   ├── .prettierrc
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.mjs
│   │   ├── src/
│   │   │   ├── App.css
│   │   │   ├── App.jsx
│   │   │   ├── App.test.jsx
│   │   │   ├── index.css
│   │   │   └── index.jsx
│   │   └── web-test-runner.config.js
│   ├── app-template-preact-typescript/
│   │   ├── .npmignore
│   │   ├── .prettierrc
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.mjs
│   │   ├── src/
│   │   │   ├── App.css
│   │   │   ├── App.test.tsx
│   │   │   ├── App.tsx
│   │   │   ├── index.css
│   │   │   └── index.tsx
│   │   ├── tsconfig.json
│   │   ├── types/
│   │   │   └── static.d.ts
│   │   └── web-test-runner.config.js
│   ├── app-template-react/
│   │   ├── .npmignore
│   │   ├── .prettierrc
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.mjs
│   │   ├── src/
│   │   │   ├── App.css
│   │   │   ├── App.jsx
│   │   │   ├── App.test.jsx
│   │   │   ├── index.css
│   │   │   └── index.jsx
│   │   └── web-test-runner.config.js
│   ├── app-template-react-typescript/
│   │   ├── .npmignore
│   │   ├── .prettierrc
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.mjs
│   │   ├── src/
│   │   │   ├── App.css
│   │   │   ├── App.test.tsx
│   │   │   ├── App.tsx
│   │   │   ├── index.css
│   │   │   └── index.tsx
│   │   ├── tsconfig.json
│   │   ├── types/
│   │   │   └── static.d.ts
│   │   └── web-test-runner.config.js
│   ├── app-template-svelte/
│   │   ├── .npmignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.mjs
│   │   ├── src/
│   │   │   ├── App.svelte
│   │   │   ├── App.test.js
│   │   │   └── index.js
│   │   └── web-test-runner.config.js
│   ├── app-template-svelte-typescript/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.mjs
│   │   ├── src/
│   │   │   ├── App.svelte
│   │   │   ├── App.test.ts
│   │   │   └── index.ts
│   │   ├── svelte.config.js
│   │   ├── tsconfig.json
│   │   ├── types/
│   │   │   └── static.d.ts
│   │   └── web-test-runner.config.js
│   ├── app-template-vue/
│   │   ├── .npmignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.mjs
│   │   └── src/
│   │       ├── App.vue
│   │       └── index.js
│   ├── app-template-vue-typescript/
│   │   ├── .npmignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.mjs
│   │   ├── src/
│   │   │   ├── App.vue
│   │   │   └── index.js
│   │   ├── tsconfig.json
│   │   └── types/
│   │       ├── shims-vue.d.ts
│   │       └── static.d.ts
│   └── cli/
│       ├── README.md
│       ├── createSnowpackApp.js
│       ├── index.js
│       └── package.json
├── docs/
│   ├── README.md
│   ├── concepts/
│   │   ├── build-pipeline.md
│   │   ├── dev-server.md
│   │   ├── hot-module-replacement.md
│   │   └── how-snowpack-works.md
│   ├── guides/
│   │   ├── babel.md
│   │   ├── connecting-tools.md
│   │   ├── hmr.md
│   │   ├── https-ssl-certificates.md
│   │   ├── jest.md
│   │   ├── optimize-and-bundle.md
│   │   ├── plugins.md
│   │   ├── postcss.md
│   │   ├── preact.md
│   │   ├── react-global-imports.md
│   │   ├── react-loadable-components.md
│   │   ├── routing.md
│   │   ├── sass.md
│   │   ├── server-side-render.md
│   │   ├── streaming-imports.md
│   │   ├── tailwind-css.md
│   │   ├── testing.md
│   │   ├── upgrade-guide.md
│   │   ├── wasm.md
│   │   ├── web-test-runner.md
│   │   ├── web-worker.md
│   │   └── workbox.md
│   ├── posts/
│   │   ├── 2020-05-26-snowpack-2-0-release.md
│   │   ├── 2020-07-30-snowpack-2-7-release.md
│   │   ├── 2020-12-03-snowpack-3-release-candidate.md
│   │   └── 2021-01-13-snowpack-3-0.md
│   ├── reference/
│   │   ├── cli-command-line-interface.md
│   │   ├── common-error-details.md
│   │   ├── configuration.md
│   │   ├── environment-variables.md
│   │   ├── hot-module-replacement.md
│   │   ├── javascript-interface.md
│   │   ├── plugins.md
│   │   └── supported-files.md
│   └── tutorials/
│       ├── getting-started.md
│       ├── quick-start.md
│       ├── react.md
│       ├── svelte.md
│       └── vue.md
├── esinstall/
│   ├── .gitignore
│   ├── CHANGELOG.md
│   ├── LICENSE
│   ├── README.md
│   ├── index.esm.mjs
│   ├── package.json
│   ├── src/
│   │   ├── entrypoints.ts
│   │   ├── index.ts
│   │   ├── rollup-plugins/
│   │   │   ├── generateProcessPolyfill.ts
│   │   │   ├── rollup-plugin-alias.ts
│   │   │   ├── rollup-plugin-catch-fetch.ts
│   │   │   ├── rollup-plugin-catch-unresolved.ts
│   │   │   ├── rollup-plugin-css.ts
│   │   │   ├── rollup-plugin-node-process-polyfill.ts
│   │   │   ├── rollup-plugin-stats.ts
│   │   │   ├── rollup-plugin-strip-source-mapping.ts
│   │   │   └── rollup-plugin-wrap-install-targets.ts
│   │   ├── stats.ts
│   │   ├── types.ts
│   │   └── util.ts
│   └── tsconfig.json
├── examples/
│   ├── .gitignore
│   ├── https-ssl-certificates/
│   │   ├── README.md
│   │   ├── index.html
│   │   ├── package.json
│   │   └── snowpack.config.js
│   ├── react-global-imports/
│   │   ├── README.md
│   │   ├── babel.config.js
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.js
│   │   └── src/
│   │       ├── App.css
│   │       ├── App.jsx
│   │       ├── index.css
│   │       └── index.jsx
│   ├── react-loadable-components/
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   └── robots.txt
│   │   ├── snowpack.config.js
│   │   └── src/
│   │       ├── App.css
│   │       ├── App.jsx
│   │       ├── Async.jsx
│   │       ├── index.css
│   │       └── index.jsx
│   └── tailwind/
│       ├── README.md
│       ├── package.json
│       ├── postcss.config.js
│       ├── public/
│       │   ├── global.css
│       │   └── index.html
│       ├── snowpack.config.mjs
│       └── tailwind.config.js
├── jest.config.js
├── jest.setup.js
├── lerna.json
├── package.json
├── plugins/
│   ├── plugin-babel/
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── plugin.js
│   │   ├── test/
│   │   │   └── plugin-babel.test.js
│   │   └── worker.js
│   ├── plugin-build-script/
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── plugin.js
│   │   └── test/
│   │       └── plugin.test.js
│   ├── plugin-dotenv/
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── plugin.js
│   │   └── test/
│   │       ├── __snapshots__/
│   │       │   └── plugin.test.js.snap
│   │       ├── execPlugin.js
│   │       └── plugin.test.js
│   ├── plugin-optimize/
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── lib/
│   │   │   ├── css.js
│   │   │   ├── html.js
│   │   │   └── js.js
│   │   ├── package.json
│   │   ├── plugin.js
│   │   ├── test/
│   │   │   ├── plugin.test.js
│   │   │   ├── serializer.js
│   │   │   └── stubs/
│   │   │       └── minimal/
│   │   │           ├── do-not-preload-1.js
│   │   │           ├── do-not-preload-2.js
│   │   │           ├── do-not-preload-3.js
│   │   │           ├── esm_example.js
│   │   │           ├── index.html
│   │   │           ├── index.js
│   │   │           ├── package.json
│   │   │           ├── style.css
│   │   │           └── target-es2018.js
│   │   └── util.js
│   ├── plugin-postcss/
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── plugin.js
│   │   ├── test/
│   │   │   ├── fixtures/
│   │   │   │   ├── from/
│   │   │   │   │   ├── from.css
│   │   │   │   │   ├── postcss.config.js
│   │   │   │   │   └── style.css
│   │   │   │   ├── postcss.config.js
│   │   │   │   └── style.css
│   │   │   └── plugin.test.js
│   │   └── worker.js
│   ├── plugin-react-refresh/
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── plugin.js
│   │   └── test/
│   │       ├── __snapshots__/
│   │       │   └── plugin.test.js.snap
│   │       ├── plugin.test.js
│   │       └── stubs/
│   │           ├── stub.html
│   │           └── stub.js
│   ├── plugin-run-script/
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── plugin.js
│   │   └── test/
│   │       └── plugin.test.js
│   ├── plugin-sass/
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── plugin.js
│   │   └── test/
│   │       ├── __snapshots__/
│   │       │   └── plugin.test.js.snap
│   │       ├── fixtures/
│   │       │   ├── bad/
│   │       │   │   └── bad.scss
│   │       │   ├── sass/
│   │       │   │   ├── App.sass
│   │       │   │   ├── _base.sass
│   │       │   │   └── folder/
│   │       │   │       ├── _child-partial.sass
│   │       │   │       └── _index.sass
│   │       │   └── scss/
│   │       │       ├── App.scss
│   │       │       ├── _base.scss
│   │       │       └── folder/
│   │       │           └── _index.scss
│   │       ├── plugin-mocked.test.js
│   │       └── plugin.test.js
│   ├── plugin-svelte/
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── plugin.js
│   │   └── test/
│   │       ├── Button.svelte
│   │       ├── custom-config.js
│   │       ├── plugin.test.js
│   │       └── svelte.config.js
│   ├── plugin-typescript/
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── plugin.js
│   │   └── test/
│   │       └── plugin.test.js
│   ├── plugin-vue/
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── plugin-tsx-jsx.js
│   │   ├── plugin.js
│   │   ├── src/
│   │   │   └── script-compilers.js
│   │   └── test/
│   │       ├── __snapshots__/
│   │       │   ├── plugin-tsx-jsx.test.js.snap
│   │       │   ├── plugin-vue-ts-tsx-jsx.test.js.snap
│   │       │   ├── plugin.test.js.snap
│   │       │   └── script-compilers.test.js.snap
│   │       ├── plugin-tsx-jsx.test.js
│   │       ├── plugin-vue-ts-tsx-jsx.test.js
│   │       ├── plugin.test.js
│   │       ├── script-compilers.test.js
│   │       └── stubs/
│   │           ├── JsxContent.jsx
│   │           ├── TsContent.ts
│   │           ├── TsxContent.tsx
│   │           ├── VueContent.vue
│   │           ├── VueContentJsx.vue
│   │           ├── VueContentOnlyTpl.vue
│   │           ├── VueContentStyleScoped.vue
│   │           ├── VueContentTs.vue
│   │           ├── VueContentTsx.vue
│   │           └── tsconfig.json
│   ├── plugin-webpack/
│   │   ├── .gitignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── plugin.js
│   │   ├── plugins/
│   │   │   ├── import-meta-fix.js
│   │   │   └── proxy-import-resolve.js
│   │   └── test/
│   │       ├── __snapshots__/
│   │       │   └── plugin.test.js.snap
│   │       ├── plugin.test.js
│   │       ├── readFilesSync.js
│   │       └── stubs/
│   │           ├── minimal/
│   │           │   ├── index.html
│   │           │   ├── index.js
│   │           │   ├── package.json
│   │           │   └── styles.css
│   │           └── multiple-entrypoints/
│   │               ├── admin/
│   │               │   ├── index.html
│   │               │   └── index.js
│   │               ├── index.html
│   │               ├── index.js
│   │               └── package.json
│   └── web-test-runner-plugin/
│       ├── CHANGELOG.md
│       ├── README.md
│       ├── package.json
│       └── plugin.js
├── scripts/
│   ├── release-all.js
│   └── release.cjs
├── skypack/
│   ├── .gitignore
│   ├── .prettierrc
│   ├── CHANGELOG.md
│   ├── LICENSE
│   ├── README.md
│   ├── index.esm.mjs
│   ├── package.json
│   ├── src/
│   │   ├── index.ts
│   │   ├── rollup-plugin-remote-cdn.ts
│   │   └── util.ts
│   └── tsconfig.json
├── snowpack/
│   ├── .gitignore
│   ├── .npmignore
│   ├── CHANGELOG.md
│   ├── LICENSE
│   ├── README.md
│   ├── assets/
│   │   ├── hmr-client.js
│   │   ├── hmr-error-overlay.js
│   │   ├── openChrome.appleScript
│   │   ├── require-or-import.js
│   │   └── snowpack-init-file.js
│   ├── index.bin.js
│   ├── package.json
│   ├── src/
│   │   ├── build/
│   │   │   ├── build-import-proxy.ts
│   │   │   ├── build-pipeline.ts
│   │   │   ├── file-builder.ts
│   │   │   ├── file-urls.ts
│   │   │   ├── import-css.ts
│   │   │   ├── import-resolver.ts
│   │   │   ├── import-sri.ts
│   │   │   ├── optimize.ts
│   │   │   └── process.ts
│   │   ├── commands/
│   │   │   ├── add-rm.ts
│   │   │   ├── build.ts
│   │   │   ├── dev.ts
│   │   │   ├── init.ts
│   │   │   ├── paint.ts
│   │   │   └── prepare.ts
│   │   ├── config.ts
│   │   ├── dev/
│   │   │   └── hmr.ts
│   │   ├── hmr-server-engine.ts
│   │   ├── index.ts
│   │   ├── lexer-util.ts
│   │   ├── logger.ts
│   │   ├── plugins/
│   │   │   └── plugin-esbuild.ts
│   │   ├── rewrite-imports.ts
│   │   ├── scan-import-glob.ts
│   │   ├── scan-imports.ts
│   │   ├── sources/
│   │   │   ├── local-install.ts
│   │   │   ├── local.ts
│   │   │   ├── remote.ts
│   │   │   └── util.ts
│   │   ├── ssr-loader/
│   │   │   ├── index.ts
│   │   │   ├── sourcemaps.ts
│   │   │   └── transform.ts
│   │   ├── types.ts
│   │   └── util.ts
│   ├── tsconfig.cjs.json
│   └── tsconfig.json
├── test/
│   ├── build/
│   │   ├── config-loading-esm-package/
│   │   │   ├── config-loading-esm-package.test.js
│   │   │   ├── package.json
│   │   │   ├── snowpack.config.js
│   │   │   └── src/
│   │   │       └── index.js
│   │   ├── config-loading-mjs/
│   │   │   ├── config-loading-mjs.test.js
│   │   │   ├── package.json
│   │   │   ├── snowpack.config.mjs
│   │   │   └── src/
│   │   │       └── index.js
│   │   ├── config-path/
│   │   │   ├── config-path.test.js
│   │   │   ├── index.js
│   │   │   ├── my-config-file.js
│   │   │   └── package.json
│   │   ├── entrypoint-ids/
│   │   │   ├── entrypoint-ids.test.js
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── index.js
│   │   ├── import-assets/
│   │   │   ├── import-assets.test.js
│   │   │   ├── package.json
│   │   │   ├── snowpack.config.json
│   │   │   └── src/
│   │   │       ├── index.js
│   │   │       └── styles.css
│   │   ├── package-bootstrap/
│   │   │   ├── package-bootstrap.test.js
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── index.js
│   │   │       └── styles.css
│   │   ├── package-workspace/
│   │   │   ├── package-workspace.test.js
│   │   │   ├── package.json
│   │   │   ├── snowpack.config.js
│   │   │   └── src/
│   │   │       ├── index.html
│   │   │       └── index.svelte
│   │   ├── plugin-build-script/
│   │   │   ├── package.json
│   │   │   ├── plugin-build-script.test.js
│   │   │   ├── snowpack.config.js
│   │   │   └── src/
│   │   │       └── index.ts
│   │   ├── plugin-hook-optimize/
│   │   │   ├── custom-optimize-plugin.js
│   │   │   ├── package.json
│   │   │   ├── plugin-hook-optimize.test.js
│   │   │   ├── snowpack.config.json
│   │   │   └── src/
│   │   │       ├── index.js
│   │   │       └── styles.css
│   │   ├── plugin-run-script/
│   │   │   ├── package.json
│   │   │   ├── plugin-run-script.test.js
│   │   │   ├── public/
│   │   │   │   └── css/
│   │   │   │       └── index.css
│   │   │   ├── snowpack.config.js
│   │   │   └── src/
│   │   │       └── css/
│   │   │           └── index.scss
│   │   ├── prepare-external-package/
│   │   │   ├── package.json
│   │   │   ├── prepare-external-package.test.js
│   │   │   └── src/
│   │   │       └── index.js
│   │   ├── react-lazy-bundle/
│   │   │   ├── package.json
│   │   │   ├── public/
│   │   │   │   └── index.html
│   │   │   ├── react-lazy.test.js
│   │   │   ├── snowpack.config.js
│   │   │   └── src/
│   │   │       ├── components/
│   │   │       │   ├── App.jsx
│   │   │       │   └── Articles.jsx
│   │   │       └── index.jsx
│   │   └── test-workspace-component/
│   │       ├── Layout.ts
│   │       ├── README.md
│   │       ├── SvelteComponent.svelte
│   │       ├── index.mjs
│   │       ├── package.json
│   │       └── works-without-extension.ts
│   ├── create-snowpack-app/
│   │   ├── __snapshots__/
│   │   │   └── create-snowpack-app.test.js.snap
│   │   └── create-snowpack-app.test.js
│   ├── esinstall/
│   │   ├── alias/
│   │   │   ├── alias.test.js
│   │   │   └── package.json
│   │   ├── cjs-autodetect-exports/
│   │   │   ├── .gitignore
│   │   │   ├── cjs-autodetect-exports.test.js
│   │   │   ├── package.json
│   │   │   └── packages/
│   │   │       ├── cjs-invalid-exports/
│   │   │       │   ├── entrypoint.js
│   │   │       │   └── package.json
│   │   │       └── cjs-valid-exports/
│   │   │           ├── entrypoint.js
│   │   │           └── package.json
│   │   ├── config-package-svelte/
│   │   │   ├── config-package-svelte.test.js
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── index.js
│   │   ├── dep-list-simple/
│   │   │   ├── __snapshots__
│   │   │   ├── dep-list-simple.test.js
│   │   │   └── package.json
│   │   ├── error-missing-dep/
│   │   │   ├── __snapshots__
│   │   │   ├── error-missing-dep.test.js
│   │   │   └── package.json
│   │   ├── esinstall-test-utils.js
│   │   ├── exclude-external-packages/
│   │   │   ├── __snapshots__
│   │   │   ├── exclude-external-packages.test.js
│   │   │   └── package.json
│   │   ├── exports-only/
│   │   │   ├── .gitignore
│   │   │   ├── exports-only.test.js
│   │   │   ├── mod.js
│   │   │   ├── package.json
│   │   │   ├── pkg/
│   │   │   │   ├── mod.mjs
│   │   │   │   └── package.json
│   │   │   └── snowpack.config.js
│   │   ├── exports-only-no-main/
│   │   │   ├── .gitignore
│   │   │   ├── exports-only-no-main.test.js
│   │   │   ├── mod.js
│   │   │   ├── package.json
│   │   │   ├── pkg/
│   │   │   │   ├── mod.mjs
│   │   │   │   └── package.json
│   │   │   └── snowpack.config.js
│   │   ├── import-assets/
│   │   │   ├── .gitignore
│   │   │   ├── import-assets.test.js
│   │   │   ├── package.json
│   │   │   └── packages/
│   │   │       └── mock-pkg-install-assets/
│   │   │           ├── css.css
│   │   │           ├── json.json
│   │   │           └── package.json
│   │   ├── import-astro/
│   │   │   ├── .gitignore
│   │   │   ├── import-astro.test.js
│   │   │   ├── package.json
│   │   │   └── packages/
│   │   │       └── components/
│   │   │           ├── Wow.astro
│   │   │           └── package.json
│   │   ├── import-missing/
│   │   │   ├── import-missing.test.js
│   │   │   ├── package.json
│   │   │   ├── packages/
│   │   │   │   ├── @material/
│   │   │   │   │   └── animation/
│   │   │   │   │       ├── LICENSE
│   │   │   │   │       ├── README.md
│   │   │   │   │       ├── _functions.import.scss
│   │   │   │   │       ├── _functions.scss
│   │   │   │   │       ├── _index.scss
│   │   │   │   │       ├── _variables.import.scss
│   │   │   │   │       ├── _variables.scss
│   │   │   │   │       ├── dist/
│   │   │   │   │       │   ├── mdc.animation.d.ts
│   │   │   │   │       │   └── mdc.animation.js
│   │   │   │   │       ├── index.d.ts
│   │   │   │   │       ├── index.js
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── types.d.ts
│   │   │   │   │       ├── types.js
│   │   │   │   │       ├── util.d.ts
│   │   │   │   │       └── util.js
│   │   │   │   └── tslib/
│   │   │   │       ├── CopyrightNotice.txt
│   │   │   │       ├── LICENSE.txt
│   │   │   │       ├── package.json
│   │   │   │       ├── tslib.d.ts
│   │   │   │       ├── tslib.es6.html
│   │   │   │       ├── tslib.es6.js
│   │   │   │       ├── tslib.html
│   │   │   │       └── tslib.js
│   │   │   └── src/
│   │   │       └── index.js
│   │   ├── import-named-from-default/
│   │   │   ├── import-named-from-default.test.js
│   │   │   ├── package/
│   │   │   │   └── default-only-esm/
│   │   │   │       ├── index.js
│   │   │   │       └── package.json
│   │   │   └── package.json
│   │   ├── import-node-builtin/
│   │   │   ├── .gitignore
│   │   │   ├── error-node-builtin-unresolved.test.js
│   │   │   ├── package.json
│   │   │   └── packages/
│   │   │       └── bad-node-builtin-pkg/
│   │   │           ├── entrypoint.js
│   │   │           └── package.json
│   │   ├── import-nothing/
│   │   │   ├── import-nothing.test.js
│   │   │   └── package.json
│   │   ├── import-types/
│   │   │   ├── .gitignore
│   │   │   ├── import-types.test.js
│   │   │   ├── package.json
│   │   │   └── packages/
│   │   │       └── type-only-pkg/
│   │   │           ├── index.d.ts
│   │   │           └── package.json
│   │   ├── named-exports/
│   │   │   ├── .gitignore
│   │   │   ├── named-exports.test.js
│   │   │   ├── package.json
│   │   │   └── packages/
│   │   │       ├── cjs-named-exports-obj/
│   │   │       │   ├── entrypoint.js
│   │   │       │   └── package.json
│   │   │       ├── cjs-named-exports-reexported/
│   │   │       │   ├── entrypoint.js
│   │   │       │   ├── package.json
│   │   │       │   └── reexported.js
│   │   │       ├── cjs-named-exports-simple/
│   │   │       │   ├── entrypoint.js
│   │   │       │   └── package.json
│   │   │       └── umd-named-exports/
│   │   │           ├── autolayout.js
│   │   │           └── package.json
│   │   ├── node-env/
│   │   │   ├── .gitignore
│   │   │   ├── node-env.test.js
│   │   │   ├── package.json
│   │   │   └── packages/
│   │   │       └── node-env-mock-pkg/
│   │   │           ├── entrypoint.js
│   │   │           └── package.json
│   │   ├── package-entrypoints/
│   │   │   ├── .gitignore
│   │   │   ├── browser-dot/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── browser-dot-slash/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── browser-dot-slash-index/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── browser-dot-slash-index-js/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── browser-index/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── browser-index-js/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── browser-no-valid/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── browser-path/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── export-map-dot-no-slash/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── export-map-dot-slash/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── export-map-internal-imports/
│   │   │   │   ├── entrypoint.js
│   │   │   │   ├── imported-by-entrypoint.js
│   │   │   │   ├── imports-entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── export-map-object-browser/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── export-map-object-browser-object/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── export-map-object-default/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── export-map-object-import/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── export-map-object-no-key/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── export-map-object-require/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── export-map-star/
│   │   │   │   ├── entrypoint.js
│   │   │   │   ├── package.json
│   │   │   │   └── src/
│   │   │   │       └── extras/
│   │   │   │           ├── one.js
│   │   │   │           ├── other.css
│   │   │   │           ├── three.js
│   │   │   │           └── two.js
│   │   │   ├── export-map-trailing-slash/
│   │   │   │   ├── dist/
│   │   │   │   │   ├── esm/
│   │   │   │   │   │   └── helpers.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── entrypoint.js
│   │   │   │   ├── package.json
│   │   │   │   └── src/
│   │   │   │       ├── extras/
│   │   │   │       │   ├── one.js
│   │   │   │       │   ├── other.css
│   │   │   │       │   ├── three.js
│   │   │   │       │   └── two.js
│   │   │   │       └── more/
│   │   │   │           └── one.js
│   │   │   ├── implicit-main/
│   │   │   │   ├── index.d.ts
│   │   │   │   ├── index.js
│   │   │   │   └── package.json
│   │   │   ├── jsnext-main/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── main-folder/
│   │   │   │   ├── entrypoint/
│   │   │   │   │   └── index.js
│   │   │   │   └── package.json
│   │   │   ├── module/
│   │   │   │   ├── entrypoint.js
│   │   │   │   └── package.json
│   │   │   ├── package-entrypoints-browser.test.js
│   │   │   ├── package-entrypoints-export-map.test.js
│   │   │   ├── package-entrypoints-general.test.js
│   │   │   ├── package.json
│   │   │   └── pkg-with-dot.in-the-name/
│   │   │       ├── entrypoint.js
│   │   │       └── package.json
│   │   ├── package-node-fetch/
│   │   │   ├── .gitignore
│   │   │   ├── package-node-fetch.test.js
│   │   │   ├── package.json
│   │   │   └── packages/
│   │   │       └── dep-node-fetch-mock-pkg/
│   │   │           ├── entrypoint.js
│   │   │           └── package.json
│   │   ├── package-react/
│   │   │   ├── __snapshots__
│   │   │   ├── package-react.test.js
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── index.js
│   │   ├── polyfill-node/
│   │   │   ├── .gitignore
│   │   │   ├── package.json
│   │   │   ├── packages/
│   │   │   │   └── node-builtin-pkg/
│   │   │   │       ├── entrypoint.js
│   │   │   │       └── package.json
│   │   │   └── polyfill-node.test.js
│   │   ├── rollup/
│   │   │   ├── .gitignore
│   │   │   ├── package.json
│   │   │   ├── rollup.test.js
│   │   │   └── src/
│   │   │       └── index.js
│   │   ├── source-map-strip/
│   │   │   ├── __snapshots__
│   │   │   ├── package.json
│   │   │   └── source-map-strip.test.js
│   │   ├── sub-package-json/
│   │   │   ├── .gitignore
│   │   │   ├── package.json
│   │   │   └── sub-package-json.test.js
│   │   └── tree-shake-expression/
│   │       ├── .gitignore
│   │       ├── inner-module/
│   │       │   ├── main.js
│   │       │   └── package.json
│   │       ├── package.json
│   │       └── tree-shake-expression.test.js
│   ├── esinstall.api.test.js
│   ├── fixture-utils.js
│   ├── rollup-plugins.test.js
│   ├── snowpack/
│   │   ├── __template__/
│   │   │   └── index.test.js
│   │   ├── cdnUrls/
│   │   │   └── index.test.js
│   │   ├── config/
│   │   │   ├── alias/
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── index.test.js.snap
│   │   │   │   └── index.test.js
│   │   │   ├── buildOptions.baseUrl/
│   │   │   │   └── index.test.js
│   │   │   ├── buildOptions.jsxInject/
│   │   │   │   └── index.test.js
│   │   │   ├── buildOptions.metaUrlPath/
│   │   │   │   └── index.test.js
│   │   │   ├── buildOptions.out/
│   │   │   │   └── index.test.js
│   │   │   ├── env/
│   │   │   │   └── index.test.js
│   │   │   ├── invalid/
│   │   │   │   └── index.test.js
│   │   │   ├── mode/
│   │   │   │   └── index.test.js
│   │   │   ├── mount/
│   │   │   │   └── index.test.js
│   │   │   ├── optimize/
│   │   │   │   └── index.test.js
│   │   │   ├── packageOptions.external/
│   │   │   │   └── index.test.js
│   │   │   ├── packageOptions.packageLookupFields/
│   │   │   │   └── index.test.js
│   │   │   ├── packageOptions.source/
│   │   │   │   └── index.test.js
│   │   │   ├── plugins/
│   │   │   │   ├── extends/
│   │   │   │   │   └── index.test.js
│   │   │   │   └── instantiatedObject/
│   │   │   │       ├── __snapshots__/
│   │   │   │       │   └── index.test.js.snap
│   │   │   │       └── index.test.js
│   │   │   └── withExtension/
│   │   │       └── index.test.js
│   │   ├── cssModules/
│   │   │   └── index.test.js
│   │   ├── import/
│   │   │   ├── css.ts/
│   │   │   │   └── index.test.js
│   │   │   ├── dotFolder/
│   │   │   │   └── index.test.js
│   │   │   ├── glob/
│   │   │   │   └── index.test.js
│   │   │   ├── json/
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── index.test.js.snap
│   │   │   │   └── index.test.js
│   │   │   └── ts/
│   │   │       └── index.test.js
│   │   ├── import-sri.test.ts
│   │   ├── moduleResolution/
│   │   │   └── index.test.js
│   │   ├── namedImport/
│   │   │   ├── __snapshots__/
│   │   │   │   └── index.test.js.snap
│   │   │   └── index.test.js
│   │   ├── package/
│   │   │   ├── @nivo/
│   │   │   │   └── index.test.js
│   │   │   ├── bootstrap/
│   │   │   │   └── index.test.js
│   │   │   ├── tippy/
│   │   │   │   └── index.test.js
│   │   │   └── workspace/
│   │   │       └── index.test.js
│   │   ├── plugin/
│   │   │   ├── babel/
│   │   │   │   └── index.test.js
│   │   │   ├── buildScript/
│   │   │   │   └── index.test.js
│   │   │   ├── custom/
│   │   │   │   └── index.test.js
│   │   │   ├── customTransform/
│   │   │   │   └── index.test.js
│   │   │   ├── runScript/
│   │   │   │   └── index.test.js
│   │   │   ├── sass/
│   │   │   │   └── index.test.js
│   │   │   ├── svelte/
│   │   │   │   └── index.test.js
│   │   │   └── vue/
│   │   │       └── index.test.js
│   │   ├── runtime/
│   │   │   └── runtime.test.js
│   │   ├── utf8/
│   │   │   └── index.test.js
│   │   └── util.test.ts
│   └── test-utils.js
├── test-dev/
│   ├── README.md
│   ├── __snapshots__/
│   │   └── dev.test.ts.snap
│   ├── dev.test.ts
│   ├── smoke/
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── about.tmpl
│   │   │   ├── index.css
│   │   │   └── index.html
│   │   ├── snowpack.config.js
│   │   └── src/
│   │       └── index.js
│   ├── smoke-secure-1/
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── about.tmpl
│   │   │   ├── index.css
│   │   │   └── index.html
│   │   ├── snowpack.config.js
│   │   ├── snowpack.crt
│   │   ├── snowpack.key
│   │   └── src/
│   │       └── index.js
│   └── smoke-secure-2/
│       ├── package.json
│       ├── public/
│       │   ├── about.tmpl
│       │   ├── index.css
│       │   └── index.html
│       ├── snowpack.config.js
│       ├── src/
│       │   └── index.js
│       └── tls/
│           ├── certificate.pem
│           └── key.pem
└── www/
    ├── .gitignore
    ├── LICENSE
    ├── README.md
    ├── astro.config.mjs
    ├── package.json
    ├── public/
    │   ├── favicon/
    │   │   └── site.webmanifest
    │   ├── img/
    │   │   ├── snowpackskypack.webm
    │   │   └── streaming-imports-demo.webm
    │   ├── js/
    │   │   └── index.js
    │   ├── robots.txt
    │   └── styles/
    │       ├── _animations.scss
    │       ├── _card-grid.scss
    │       ├── _github-markdown.scss
    │       ├── _globals.scss
    │       ├── _prism.scss
    │       ├── _typography.scss
    │       ├── _utils.scss
    │       ├── _var.scss
    │       └── global.scss
    ├── scripts/
    │   └── copy.js
    └── src/
        ├── components/
        │   ├── Banner.astro
        │   ├── BaseHead.astro
        │   ├── BaseLayout.astro
        │   ├── Button.astro
        │   ├── Card.css
        │   ├── Card.jsx
        │   ├── CompanyLogo.jsx
        │   ├── Hero.astro
        │   ├── MainLayout.astro
        │   ├── Menu.astro
        │   ├── Nav.astro
        │   ├── NewsAssets.svelte
        │   ├── NewsTitle.vue
        │   ├── PluginSearchPage.jsx
        │   ├── PluginSearchPage.module.css
        │   ├── PokemonLookup.astro
        │   ├── Subnav.astro
        │   ├── docsearch.js
        │   └── index.ts
        ├── data/
        │   ├── news.json
        │   └── users.json
        ├── layouts/
        │   ├── content-with-cover.astro
        │   ├── content.astro
        │   └── post.astro
        └── pages/
            ├── 404.astro
            ├── guides.astro
            ├── index.astro
            ├── news.astro
            └── plugins.astro
Download .txt
SYMBOL INDEX (831 symbols across 143 files)

FILE: create-snowpack-app/app-scripts-preact/jest/cssTransform.js
  method process (line 15) | process() {
  method getCacheKey (line 18) | getCacheKey() {

FILE: create-snowpack-app/app-scripts-preact/jest/fileTransform.js
  method process (line 5) | process(src, filename) {

FILE: create-snowpack-app/app-scripts-react/jest/cssTransform.js
  method process (line 15) | process() {
  method getCacheKey (line 18) | getCacheKey() {

FILE: create-snowpack-app/app-scripts-react/jest/esbuildTransform.js
  method process (line 11) | process(code, filename) {

FILE: create-snowpack-app/app-scripts-react/jest/fileTransform.js
  method process (line 5) | process(src, filename) {

FILE: create-snowpack-app/app-scripts-react/jest/importMetaBabelPlugin.js
  method MetaProperty (line 23) | MetaProperty(path) {

FILE: create-snowpack-app/app-scripts-svelte/jest.config.js
  function getUserSvelteConfig (line 32) | function getUserSvelteConfig() {

FILE: create-snowpack-app/app-scripts-svelte/jest/babelTransform.js
  function getUserBabelConfig (line 31) | function getUserBabelConfig() {

FILE: create-snowpack-app/app-scripts-svelte/jest/importMetaBabelPlugin.js
  method MetaProperty (line 23) | MetaProperty(path) {

FILE: create-snowpack-app/app-template-lit-element-typescript/src/app-root.ts
  class AppRoot (line 4) | class AppRoot extends LitElement {
    method styles (line 7) | static get styles() {
    method render (line 28) | render() {

FILE: create-snowpack-app/app-template-lit-element/src/app-root.js
  class AppRoot (line 4) | class AppRoot extends LitElement {
    method styles (line 7) | static get styles() {
    method render (line 28) | render() {

FILE: create-snowpack-app/app-template-preact-typescript/src/App.tsx
  function App (line 6) | function App() {

FILE: create-snowpack-app/app-template-preact/src/App.jsx
  function App (line 6) | function App() {

FILE: create-snowpack-app/app-template-react-typescript/src/App.tsx
  type AppProps (line 5) | interface AppProps {}
  function App (line 7) | function App({}: AppProps) {

FILE: create-snowpack-app/app-template-react/src/App.jsx
  function App (line 5) | function App() {

FILE: create-snowpack-app/cli/createSnowpackApp.js
  function logError (line 11) | function logError(msg) {
  function hasPmInstalled (line 16) | function hasPmInstalled(packageManager) {
  function validateArgs (line 25) | function validateArgs(args) {
  function verifyProjectTemplate (line 64) | async function verifyProjectTemplate(isLocalTemplate, {template, dir}) {
  function cleanProject (line 98) | async function cleanProject(dir) {
  function initializeGitRepo (line 125) | async function initializeGitRepo(targetDirectory) {
  function installProcess (line 197) | function installProcess(packageManager) {
  function formatCommand (line 230) | function formatCommand(command, description) {

FILE: esinstall/src/entrypoints.ts
  constant MAIN_FIELDS (line 10) | const MAIN_FIELDS = [
  constant BROKEN_BROWSER_ENTRYPOINT (line 21) | const BROKEN_BROWSER_ENTRYPOINT = ['@sheerun/mutationobserver-shim'];
  constant FILE_EXTENSION_REGEX (line 22) | const FILE_EXTENSION_REGEX = /\..+$/;
  function getMissingEntrypointHint (line 24) | function getMissingEntrypointHint(
  type FindManifestEntryOptions (line 50) | type FindManifestEntryOptions = {
  function findManifestEntry (line 58) | function findManifestEntry(
  function findExportMapEntry (line 113) | function findExportMapEntry(
  type ResolveEntrypointOptions (line 140) | type ResolveEntrypointOptions = {
  function resolveEntrypoint (line 151) | function resolveEntrypoint(
  function explodeExportMap (line 367) | function explodeExportMap(

FILE: esinstall/src/index.ts
  type DependencyLoc (line 50) | type DependencyLoc = {
  function isImportOfPackage (line 55) | function isImportOfPackage(importUrl: string, packageName: string) {
  function resolveWebDependency (line 65) | function resolveWebDependency(
  function generateEnvObject (line 76) | function generateEnvObject(userEnv: EnvVarReplacements): Object {
  function generateReplacements (line 87) | function generateReplacements(env: Object): {[key: string]: string} {
  type InstallOptions (line 99) | interface InstallOptions {
  type PublicInstallOptions (line 124) | type PublicInstallOptions = Partial<InstallOptions>;
  type InstallResult (line 126) | type InstallResult = {importMap: ImportMap; stats: DependencyStatsOutput...
  function setOptionDefaults (line 131) | function setOptionDefaults(_options: PublicInstallOptions): InstallOptio...
  function install (line 173) | async function install(

FILE: esinstall/src/rollup-plugins/generateProcessPolyfill.ts
  function generateProcessPolyfill (line 31) | function generateProcessPolyfill(env) {

FILE: esinstall/src/rollup-plugins/rollup-plugin-alias.ts
  constant VOLUME (line 32) | const VOLUME = /^([A-Z]:)/i;
  constant IS_WINDOWS (line 33) | const IS_WINDOWS = platform() === 'win32';
  function matches (line 36) | function matches(alias: Alias, importee: string) {
  function normalizeId (line 56) | function normalizeId(id: string | undefined) {
  type Alias (line 63) | interface Alias {
  function getEntries (line 69) | function getEntries({entries}): readonly Alias[] {
  function rollupPluginAlias (line 76) | function rollupPluginAlias(options: {entries: Alias[]}): Plugin {

FILE: esinstall/src/rollup-plugins/rollup-plugin-catch-fetch.ts
  constant FETCH_POLYFILL (line 4) | const FETCH_POLYFILL = `
  function isNodeFetch (line 30) | function isNodeFetch(id: string): boolean {
  function rollupPluginCatchFetch (line 39) | function rollupPluginCatchFetch(): Plugin {

FILE: esinstall/src/rollup-plugins/rollup-plugin-catch-unresolved.ts
  function rollupPluginCatchUnresolved (line 9) | function rollupPluginCatchUnresolved(): Plugin {

FILE: esinstall/src/rollup-plugins/rollup-plugin-css.ts
  function getInjectorCode (line 3) | function getInjectorCode(name: string, code: string) {
  function rollupPluginCss (line 28) | function rollupPluginCss() {

FILE: esinstall/src/rollup-plugins/rollup-plugin-node-process-polyfill.ts
  constant PROCESS_MODULE_NAME (line 5) | const PROCESS_MODULE_NAME = 'process';
  function rollupPluginNodeProcessPolyfill (line 6) | function rollupPluginNodeProcessPolyfill(env = {}): Plugin {

FILE: esinstall/src/rollup-plugins/rollup-plugin-stats.ts
  function rollupPluginDependencyStats (line 7) | function rollupPluginDependencyStats(

FILE: esinstall/src/rollup-plugins/rollup-plugin-strip-source-mapping.ts
  function rollupPluginStripSourceMapping (line 8) | function rollupPluginStripSourceMapping(): Plugin {

FILE: esinstall/src/rollup-plugins/rollup-plugin-wrap-install-targets.ts
  function isValidNamedExport (line 14) | function isValidNamedExport(name: string): boolean {
  constant TRUSTED_CJS_PACKAGES (line 21) | const TRUSTED_CJS_PACKAGES = ['chai/index.js', 'events/events.js', 'uuid...
  constant UNSCANNABLE_CJS_PACKAGES (line 28) | const UNSCANNABLE_CJS_PACKAGES = [
  function rollupPluginWrapInstallTargets (line 48) | function rollupPluginWrapInstallTargets(

FILE: esinstall/src/stats.ts
  constant SIZE_COLUMN_WIDTH (line 5) | const SIZE_COLUMN_WIDTH = 11;
  function entriesSort (line 8) | function entriesSort([filenameA]: [string, any], [filenameB]: [string, a...
  function formatSize (line 13) | function formatSize(size) {
  function formatDelta (line 29) | function formatDelta(delta) {
  function formatFileInfo (line 35) | function formatFileInfo(
  function formatFiles (line 55) | function formatFiles(files: [string, DependencyStats][], padEnd: number) {
  function printStats (line 67) | function printStats(dependencyStats: DependencyStatsOutput): string {

FILE: esinstall/src/types.ts
  type DeepPartial (line 1) | type DeepPartial<T> = {
  type EnvVarReplacements (line 9) | type EnvVarReplacements = Record<string, string | number | true>;
  type ImportMap (line 11) | interface ImportMap {
  type AbstractLogger (line 15) | interface AbstractLogger {
  type InstallTarget (line 28) | type InstallTarget = {
  type DependencyStats (line 36) | type DependencyStats = {
  type DependencyType (line 43) | type DependencyType = 'direct' | 'common';
  type DependencyStatsMap (line 45) | type DependencyStatsMap = {
  type DependencyStatsOutput (line 49) | type DependencyStatsOutput = Record<DependencyType, DependencyStatsMap>;
  type LoggerLevel (line 51) | type LoggerLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
  type LoggerEvent (line 52) | type LoggerEvent = 'debug' | 'info' | 'warn' | 'error';
  type LoggerOptions (line 53) | interface LoggerOptions {
  type ExportMapEntry (line 59) | type ExportMapEntry =
  type ExportMap (line 68) | type ExportMap = Record<string, ExportMapEntry>;
  type ExportField (line 69) | type ExportField = string | ExportMap;
  type BrowserField (line 78) | type BrowserField = string | Record<string, string | boolean>;
  type PackageManifest (line 81) | type PackageManifest = {
  type PackageManifestWithExports (line 92) | type PackageManifestWithExports = PackageManifest & {

FILE: esinstall/src/util.ts
  constant NATIVE_REQUIRE (line 8) | const NATIVE_REQUIRE = eval('require');
  function writeLockfile (line 10) | async function writeLockfile(loc: string, importMap: ImportMap): Promise...
  function isRemoteUrl (line 18) | function isRemoteUrl(val: string): boolean {
  function isTruthy (line 22) | function isTruthy<T>(item: T | false | null | undefined): item is T {
  function parsePackageImportSpecifier (line 27) | function parsePackageImportSpecifier(imp: string): [string, string | nul...
  function resolveDependencyManifest (line 45) | function resolveDependencyManifest(
  constant MISSING_PLUGIN_SUGGESTIONS (line 68) | const MISSING_PLUGIN_SUGGESTIONS: {[ext: string]: string} = {
  function findMatchingAliasEntry (line 78) | function findMatchingAliasEntry(
  function isPackageAliasEntry (line 112) | function isPackageAliasEntry(val: string): boolean {
  function getExt (line 117) | function getExt(fileName: string) {
  function sanitizePackageName (line 131) | function sanitizePackageName(filepath: string): string {
  function getWebDependencyName (line 141) | function getWebDependencyName(dep: string): string {
  function addLeadingSlash (line 148) | function addLeadingSlash(path: string) {
  function addTrailingSlash (line 153) | function addTrailingSlash(path: string) {
  function removeLeadingSlash (line 158) | function removeLeadingSlash(path: string) {
  function removeTrailingSlash (line 163) | function removeTrailingSlash(path: string) {
  function createInstallTarget (line 167) | function createInstallTarget(specifier: string, all = true): InstallTarg...
  function isJavaScript (line 177) | function isJavaScript(pathname: string): boolean {
  function getWebDependencyType (line 189) | function getWebDependencyType(pathname: string): 'ASSET' | 'BUNDLE' | 'D...

FILE: examples/react-global-imports/src/App.jsx
  function App (line 5) | function App() {

FILE: examples/react-loadable-components/src/App.jsx
  function App (line 7) | function App() {

FILE: examples/react-loadable-components/src/Async.jsx
  function Async (line 3) | function Async() {

FILE: plugins/plugin-babel/plugin.js
  method load (line 22) | async load({filePath, isPackage}) {
  method cleanup (line 60) | cleanup() {

FILE: plugins/plugin-babel/worker.js
  function transformFileAsync (line 4) | async function transformFileAsync(path, options) {

FILE: plugins/plugin-build-script/plugin.js
  function buildScriptPlugin (line 5) | function buildScriptPlugin(snowpackConfig, {input, output, cmd}) {

FILE: plugins/plugin-dotenv/test/plugin.test.js
  function execPlugin (line 7) | function execPlugin(nodeEnv, params = null) {
  constant NODE_ENV_LIST (line 20) | const NODE_ENV_LIST = [undefined, 'development', 'test', 'production'];

FILE: plugins/plugin-optimize/lib/css.js
  function hasCSSImport (line 7) | function hasCSSImport(files) {
  function transformCSSProxy (line 27) | function transformCSSProxy(file, originalCode) {
  function buildImportCSS (line 83) | function buildImportCSS(manifest, minifyCSS) {

FILE: plugins/plugin-optimize/lib/html.js
  function scanHTML (line 12) | async function scanHTML(htmlFiles, buildDirectory) {
  function preloadJS (line 78) | function preloadJS({code, file, preloadCSS, rootDir}) {

FILE: plugins/plugin-optimize/lib/js.js
  function scanJS (line 11) | function scanJS({file, rootDir, scannedFiles, importList}) {

FILE: plugins/plugin-optimize/plugin.js
  function optimizeFile (line 31) | async function optimizeFile({file, preloadCSS, target, rootDir}) {
  method optimize (line 110) | async optimize({buildDirectory}) {

FILE: plugins/plugin-optimize/test/serializer.js
  function getSnowpackPluginOutputSnapshotSerializer (line 17) | function getSnowpackPluginOutputSnapshotSerializer(basePath) {
  function toPathAndStringContent (line 49) | function toPathAndStringContent(basePath, [path, content]) {
  function toSingleArgument (line 58) | function toSingleArgument([output, ...args]) {
  function toNoralizedByteSize (line 61) | function toNoralizedByteSize(output) {
  function removeColors (line 65) | function removeColors(output) {
  function isLocal (line 69) | function isLocal(call) {

FILE: plugins/plugin-optimize/test/stubs/minimal/esm_example.js
  function esm_example (line 1) | function esm_example() {

FILE: plugins/plugin-optimize/test/stubs/minimal/index.js
  function n (line 6) | function n(o) {

FILE: plugins/plugin-optimize/test/stubs/minimal/target-es2018.js
  function testTarget (line 1) | function testTarget() {

FILE: plugins/plugin-optimize/util.js
  function log (line 12) | function log(msg, level = 'log') {
  function isRemoteModule (line 18) | function isRemoteModule(specifier) {
  function projectURL (line 28) | function projectURL(url, buildDirectory) {
  function removeLeadingSlash (line 34) | function removeLeadingSlash(path) {
  function formatManifest (line 40) | function formatManifest({manifest, buildDirectory, generatedFiles, prelo...

FILE: plugins/plugin-postcss/plugin.js
  method transform (line 26) | async transform({id, srcPath, fileExt, contents}) {
  method onChange (line 69) | onChange({filePath}) {
  method cleanup (line 80) | cleanup() {

FILE: plugins/plugin-postcss/test/fixtures/from/postcss.config.js
  function pluginFrom (line 1) | function pluginFrom() {

FILE: plugins/plugin-postcss/worker.js
  function transformAsync (line 11) | async function transformAsync(css, {filepath, config, cwd, map}) {

FILE: plugins/plugin-react-refresh/plugin.js
  function transformHtml (line 15) | function transformHtml(contents) {
  constant IS_FAST_REFRESH_ENABLED (line 34) | const IS_FAST_REFRESH_ENABLED = /\$RefreshReg\$\(/;
  function transformJs (line 35) | async function transformJs(contents, id, cwd, babelConfig) {
  method transform (line 101) | transform({contents, fileExt, id, isDev, isHmrEnabled, isSSR}) {

FILE: plugins/plugin-react-refresh/test/plugin.test.js
  function mockBabel (line 31) | function mockBabel() {
  function testPluginInstance (line 62) | async function testPluginInstance(pluginInstance, overrides = {}) {

FILE: plugins/plugin-react-refresh/test/stubs/stub.js
  function App (line 2) | function App() {

FILE: plugins/plugin-run-script/plugin.js
  constant CLEAR_SEQUENCES (line 4) | const CLEAR_SEQUENCES = ['\x1Bc', '\x1B[2J\x1B[0;0f'];
  function runScriptPlugin (line 6) | function runScriptPlugin(snowpackConfig, {name, cmd, watch, output}) {

FILE: plugins/plugin-sass/plugin.js
  constant IMPORT_REGEX (line 7) | const IMPORT_REGEX = /\@(use|import|forward)\s*['"](.*?)['"]/g;
  constant PARTIAL_REGEX (line 8) | const PARTIAL_REGEX = /([\/\\])_(.+)(?![\/\\])/;
  function stripFileExtension (line 10) | function stripFileExtension(filename) {
  function findChildPartials (line 14) | function findChildPartials(pathName, fileName, fileExt) {
  function scanSassImports (line 37) | function scanSassImports(fileContents, filePath, fileExt, partials = new...
  function addImportsToMap (line 87) | function addImportsToMap(filePath, sassImport) {
  method _markImportersAsChanged (line 106) | _markImportersAsChanged(filePath) {
  method onChange (line 120) | onChange({filePath}) {
  method load (line 137) | async load({filePath, isDev}) {

FILE: plugins/plugin-sass/test/plugin-mocked.test.js
  constant MOCK_CONFIG (line 9) | const MOCK_CONFIG = null;
  constant MOCK_LOAD (line 10) | const MOCK_LOAD = {filePath: path.join(__dirname, 'fixtures', 'scss', 'A...

FILE: plugins/plugin-svelte/plugin.js
  function addImportsToMap (line 95) | function addImportsToMap(filePath, imp) {
  method _markImportersAsChanged (line 129) | _markImportersAsChanged(filePath) {
  method onChange (line 143) | onChange({filePath}) {
  method load (line 147) | async load({filePath, isHmrEnabled, isSSR, isPackage}) {

FILE: plugins/plugin-svelte/test/plugin.test.js
  constant DEFAULT_CONFIG (line 10) | let DEFAULT_CONFIG;

FILE: plugins/plugin-typescript/plugin.js
  function typescriptPlugin (line 4) | function typescriptPlugin(snowpackConfig, {tsc, args} = {}) {

FILE: plugins/plugin-vue/plugin-tsx-jsx.js
  method load (line 11) | async load({filePath, fileExt}) {

FILE: plugins/plugin-vue/plugin.js
  function displayError (line 14) | function displayError({contents, filePath, error}) {
  method load (line 65) | async load({filePath, isSSR}) {

FILE: plugins/plugin-vue/test/stubs/JsxContent.jsx
  method setup (line 5) | setup() {

FILE: plugins/plugin-vue/test/stubs/TsContent.ts
  method setup (line 5) | setup() {

FILE: plugins/plugin-vue/test/stubs/TsxContent.tsx
  method setup (line 5) | setup() {

FILE: plugins/plugin-webpack/plugin.js
  function insertBefore (line 15) | function insertBefore(newNode, existingNode) {
  function ensureDirectoryExists (line 19) | function ensureDirectoryExists(dir) {
  function parseHTMLFiles (line 25) | function parseHTMLFiles({buildDirectory}) {
  function emitHTMLFiles (line 66) | function emitHTMLFiles({doms, jsEntries, stats, baseUrl, outputDirectory...
  function getSplitChunksConfig (line 118) | function getSplitChunksConfig({numEntries}) {
  function getPresetEnvTargets (line 201) | function getPresetEnvTargets({browserslist}) {
  method optimize (line 261) | async optimize({buildDirectory, log}) {

FILE: plugins/plugin-webpack/plugins/import-meta-fix.js
  function toBrowserPath (line 27) | function toBrowserPath(filePath, _path = path) {

FILE: plugins/plugin-webpack/test/plugin.test.js
  constant STUBS_DIR (line 7) | const STUBS_DIR = path.join(__dirname, 'stubs/minimal/');
  constant IGNORED_STUBS_DIR (line 8) | const IGNORED_STUBS_DIR = path.join(__dirname, 'stubs/minimal_ignore/');
  constant MULTIPLE_DIR (line 10) | const MULTIPLE_DIR = path.join(__dirname, 'stubs/multiple-entrypoints/');
  constant IGNORED_MULTIPLE_DIR (line 11) | const IGNORED_MULTIPLE_DIR = path.join(__dirname, 'stubs/multiple-entryp...

FILE: plugins/plugin-webpack/test/readFilesSync.js
  function readFilesSync (line 4) | function readFilesSync(dir) {
  function normalizeContent (line 23) | function normalizeContent(content) {

FILE: plugins/web-test-runner-plugin/plugin.js
  function isTestRunnerFile (line 9) | function isTestRunnerFile(url) {
  method serverStart (line 18) | async serverStart({fileWatcher}) {
  method serverStop (line 32) | async serverStop() {
  method serve (line 35) | async serve({request}) {
  method transformImport (line 47) | transformImport({source}) {

FILE: scripts/release.cjs
  function formatDate (line 5) | function formatDate() {

FILE: skypack/index.esm.mjs
  constant SKYPACK_ORIGIN (line 9) | const SKYPACK_ORIGIN = Pkg.SKYPACK_ORIGIN;

FILE: skypack/src/index.ts
  constant SKYPACK_ORIGIN (line 12) | const SKYPACK_ORIGIN = 'https://cdn.skypack.dev';
  function parseRawPackageImport (line 14) | function parseRawPackageImport(spec: string): [string, string | null] {
  class SkypackSDK (line 24) | class SkypackSDK {
    method constructor (line 27) | constructor(options: {origin?: string} = {}) {
    method generateImportMap (line 31) | async generateImportMap(
    method fetch (line 82) | async fetch(
    method buildNewPackage (line 157) | async buildNewPackage(
    method lookupBySpecifier (line 178) | async lookupBySpecifier(
    method installTypes (line 210) | async installTypes(spec: string, semverString?: string, dir?: string) {
  type ResourceCacheMetadata (line 258) | interface ResourceCacheMetadata {
  type BuildNewPackageResponse (line 264) | type BuildNewPackageResponse =
  type LookupBySpecifierResponse (line 271) | type LookupBySpecifierResponse =
  function clearCache (line 284) | async function clearCache() {

FILE: skypack/src/rollup-plugin-remote-cdn.ts
  function rollupPluginSkypack (line 14) | function rollupPluginSkypack({sdk, logger}: {sdk: SkypackSDK; logger: Ab...

FILE: skypack/src/util.ts
  type AbstractLogger (line 8) | interface AbstractLogger {
  type ImportMap (line 14) | interface ImportMap {
  constant GLOBAL_CACHE_DIR (line 18) | const GLOBAL_CACHE_DIR = globalCacheDir('skypack');
  constant RESOURCE_CACHE (line 19) | const RESOURCE_CACHE = path.join(GLOBAL_CACHE_DIR, 'pkg-cache-3.0');
  constant HAS_CDN_HASH_REGEX (line 20) | const HAS_CDN_HASH_REGEX = /\-[a-zA-Z0-9]{16,}/;
  constant BUILD_CACHE (line 27) | const BUILD_CACHE = path.join(GLOBAL_CACHE_DIR, 'build-cache-2.7');
  constant LOCKFILE_HASH_FILE (line 29) | const LOCKFILE_HASH_FILE = '.hash';
  constant HTML_JS_REGEX (line 32) | const HTML_JS_REGEX = /(<script.*?type="?module"?.*?>)(.*?)<\/script>/gms;
  constant CSS_REGEX (line 33) | const CSS_REGEX = /@import\s*['"](.*)['"];/gs;
  constant SVELTE_VUE_REGEX (line 34) | const SVELTE_VUE_REGEX = /(<script[^>]*>)(.*?)<\/script>/gms;
  constant URL_HAS_PROTOCOL_REGEX (line 36) | const URL_HAS_PROTOCOL_REGEX = /^(\w+:)?\/\//;
  constant UTF8_FORMATS (line 38) | const UTF8_FORMATS = ['.css', '.html', '.js', '.map', '.mjs', '.json', '...
  function getEncodingType (line 39) | function getEncodingType(ext: string): 'utf-8' | undefined {
  function readLockfile (line 43) | async function readLockfile(cwd: string): Promise<ImportMap | null> {
  function writeLockfile (line 56) | async function writeLockfile(loc: string, importMap: ImportMap): Promise...
  function isTruthy (line 64) | function isTruthy<T>(item: T | false | null | undefined): item is T {
  function parsePackageImportSpecifier (line 69) | function parsePackageImportSpecifier(imp: string): [string, string | nul...
  function resolveDependencyManifest (line 87) | function resolveDependencyManifest(dep: string, cwd: string): [string | ...
  constant MISSING_PLUGIN_SUGGESTIONS (line 132) | const MISSING_PLUGIN_SUGGESTIONS: {[ext: string]: string} = {
  function checkLockfileHash (line 139) | async function checkLockfileHash(dir: string) {
  function updateLockfileHash (line 150) | async function updateLockfileHash(dir: string) {
  function findMatchingAliasEntry (line 164) | function findMatchingAliasEntry(
  function isPackageAliasEntry (line 198) | function isPackageAliasEntry(val: string): boolean {
  function getExt (line 203) | function getExt(fileName: string) {
  function replaceExt (line 213) | function replaceExt(fileName: string, oldExt: string, newExt: string): s...
  function sanitizePackageName (line 223) | function sanitizePackageName(filepath: string): string {
  function cssSourceMappingURL (line 232) | function cssSourceMappingURL(code: string, sourceMappingURL: string) {
  function jsSourceMappingURL (line 237) | function jsSourceMappingURL(code: string, sourceMappingURL: string) {
  function removeLeadingSlash (line 241) | function removeLeadingSlash(path: string) {
  function removeTrailingSlash (line 245) | function removeTrailingSlash(path: string) {
  function addLeadingSlash (line 249) | function addLeadingSlash(path: string) {
  function addTrailingSlash (line 253) | function addTrailingSlash(path: string) {

FILE: snowpack/assets/hmr-client.js
  function log (line 8) | function log(...args) {
  function reload (line 11) | function reload() {
  function clearErrorOverlay (line 18) | function clearErrorOverlay() {
  function createNewErrorOverlay (line 25) | function createNewErrorOverlay(data) {
  constant SOCKET_MESSAGE_QUEUE (line 37) | let SOCKET_MESSAGE_QUEUE = [];
  function _sendSocketMessage (line 38) | function _sendSocketMessage(msg) {
  function sendSocketMessage (line 41) | function sendSocketMessage(msg) {
  constant REGISTERED_MODULES (line 63) | const REGISTERED_MODULES = {};
  class HotModuleState (line 64) | class HotModuleState {
    method constructor (line 65) | constructor(id) {
    method lock (line 74) | lock() {
    method dispose (line 77) | dispose(callback) {
    method invalidate (line 80) | invalidate() {
    method decline (line 83) | decline() {
    method accept (line 86) | accept(_deps, callback = true) {
  function createHotContext (line 116) | function createHotContext(fullUrl) {
  function runCssStyleAccept (line 130) | async function runCssStyleAccept({url: id}) {
  function runJsModuleAccept (line 154) | async function runJsModuleAccept({url: id, bubbled}) {
  function runModuleDispose (line 175) | async function runModuleDispose(id) {

FILE: snowpack/assets/hmr-error-overlay.js
  constant ERROR_OVERLAY_TEMPLATE (line 35) | const ERROR_OVERLAY_TEMPLATE = `
  method constructor (line 896) | constructor({title, errorMessage, fileLoc, errorStackTrace}) {
  method connectedCallback (line 907) | connectedCallback() {
  method disconnectedCallback (line 925) | disconnectedCallback() {
  method close (line 932) | close() {
  method _watchEscape (line 936) | _watchEscape(event) {

FILE: snowpack/assets/require-or-import.js
  constant NATIVE_REQUIRE (line 3) | const NATIVE_REQUIRE = eval('require');

FILE: snowpack/src/build/build-import-proxy.ts
  constant SRI_CLIENT_HMR_SNOWPACK (line 15) | const SRI_CLIENT_HMR_SNOWPACK = generateSRI(Buffer.from(HMR_CLIENT_CODE));
  constant SRI_ERROR_HMR_SNOWPACK (line 16) | const SRI_ERROR_HMR_SNOWPACK = generateSRI(Buffer.from(HMR_OVERLAY_CODE));
  function getMetaUrlPath (line 20) | function getMetaUrlPath(urlPath: string, config: SnowpackConfig): string {
  function wrapImportMeta (line 24) | function wrapImportMeta({
  function wrapHtmlResponse (line 66) | function wrapHtmlResponse({
  function generateJsonImportProxy (line 135) | function generateJsonImportProxy({
  function generateCssImportProxy (line 149) | function generateCssImportProxy({
  function createImportGlobValue (line 179) | function createImportGlobValue(importGlob, i: number): {value: string; i...
  function transformGlobImports (line 206) | async function transformGlobImports({
  function generateCssModuleImportProxy (line 236) | async function generateCssModuleImportProxy({
  function generateDefaultImportProxy (line 277) | function generateDefaultImportProxy(url: string) {
  function wrapImportProxy (line 281) | async function wrapImportProxy({
  function generateEnvModule (line 307) | function generateEnvModule({
  constant PUBLIC_ENV_REGEX (line 331) | const PUBLIC_ENV_REGEX = /^SNOWPACK_PUBLIC_.+/;
  function getSnowpackPublicEnvVariables (line 332) | function getSnowpackPublicEnvVariables() {

FILE: snowpack/src/build/build-pipeline.ts
  type BuildFileOptions (line 10) | interface BuildFileOptions {
  function runPipelineLoadStep (line 27) | async function runPipelineLoadStep(
  function composeSourceMaps (line 129) | async function composeSourceMaps(
  function runPipelineTransformStep (line 155) | async function runPipelineTransformStep(
  function runPipelineOptimizeStep (line 227) | async function runPipelineOptimizeStep(
  function runPipelineCleanupStep (line 254) | async function runPipelineCleanupStep({plugins}: SnowpackConfig) {
  function buildFile (line 264) | async function buildFile(

FILE: snowpack/src/build/file-builder.ts
  class FileBuilder (line 46) | class FileBuilder {
    method constructor (line 60) | constructor({
    method verifyRequestFromBuild (line 88) | private verifyRequestFromBuild(type: string): SnowpackBuiltFile | unde...
    method resolveImports (line 101) | async resolveImports(
    method build (line 259) | async build(isStatic: boolean) {
    method finalizeResult (line 293) | private finalizeResult(type: string, content: string): string {
    method getResult (line 325) | getResult(type: string): string | Buffer | undefined {
    method getSourceMap (line 333) | getSourceMap(type: string): string | undefined {
    method getProxy (line 337) | async getProxy(_url: string, type: string) {
    method writeToDisk (line 343) | async writeToDisk(dir: string, results: SnowpackBuildResultFileManifes...

FILE: snowpack/src/build/file-urls.ts
  function getUrlsForFileMount (line 10) | function getUrlsForFileMount({
  function getBuiltFileUrls (line 32) | function getBuiltFileUrls(filepath: string, config: SnowpackConfig): str...
  function getMountEntryForFile (line 57) | function getMountEntryForFile(
  function getUrlsForFile (line 79) | function getUrlsForFile(fileLoc: string, config: SnowpackConfig): undefi...

FILE: snowpack/src/build/import-css.ts
  function cssModules (line 8) | async function cssModules({
  function cssModuleJSON (line 37) | function cssModuleJSON(url: string): string {
  function needsCSSModules (line 42) | function needsCSSModules(url: string): boolean {

FILE: snowpack/src/build/import-resolver.ts
  function getFsStat (line 17) | function getFsStat(importedFileOnDisk: string): fs.Stats | false {
  function resolveSourceSpecifier (line 27) | function resolveSourceSpecifier(
  function createImportResolver (line 94) | function createImportResolver({fileLoc, config}: {fileLoc: string; confi...
  function toPath (line 126) | function toPath(url: string) {
  function createImportGlobResolver (line 135) | function createImportGlobResolver({

FILE: snowpack/src/build/import-sri.ts
  type SupportedSRIAlgorithm (line 3) | type SupportedSRIAlgorithm = 'sha512' | 'sha384' | 'sha256';
  constant DEFAULT_CRYPTO_HASH (line 4) | const DEFAULT_CRYPTO_HASH = 'sha384';
  constant EMPTY_BUFFER (line 5) | const EMPTY_BUFFER = Buffer.from('');

FILE: snowpack/src/build/optimize.ts
  type ScannedHtmlEntrypoint (line 21) | interface ScannedHtmlEntrypoint {
  type SnowpackMetaManifest (line 30) | type SnowpackMetaManifest = Omit<esbuild.Metafile, 'outputs'> & Partial<...
  constant FAKE_BUILD_DIRECTORY (line 35) | const FAKE_BUILD_DIRECTORY = path.join(process.cwd(), '~~bundle~~');
  constant FAKE_BUILD_DIRECTORY_REGEX (line 36) | const FAKE_BUILD_DIRECTORY_REGEX = /.*\~\~bundle\~\~[\\\/]/;
  function collectDeepImports (line 39) | function collectDeepImports(
  function scanHtmlEntrypoints (line 69) | async function scanHtmlEntrypoints(htmlFiles: string[]): Promise<(Scanne...
  function extractBaseUrl (line 89) | async function extractBaseUrl(htmlData: ScannedHtmlEntrypoint, baseUrl: ...
  function restitchBaseUrl (line 114) | async function restitchBaseUrl(htmlData: ScannedHtmlEntrypoint, baseUrl:...
  function extractInlineScripts (line 134) | async function extractInlineScripts(htmlData: ScannedHtmlEntrypoint): Pr...
  function restitchInlineScripts (line 163) | async function restitchInlineScripts(htmlData: ScannedHtmlEntrypoint): P...
  function addNewBundledCss (line 191) | function addNewBundledCss(
  function preloadEntrypoint (line 233) | function preloadEntrypoint(
  function getEntrypoints (line 261) | async function getEntrypoints(
  function resolveEntrypoints (line 282) | async function resolveEntrypoints(
  function processEntrypoints (line 331) | async function processEntrypoints(
  function runEsbuildOnBuildDirectory (line 390) | async function runEsbuildOnBuildDirectory(
  function runBuiltInOptimize (line 451) | async function runBuiltInOptimize(config: SnowpackConfig) {

FILE: snowpack/src/build/process.ts
  type BuildState (line 27) | interface BuildState {
  function getIsHmrEnabled (line 50) | function getIsHmrEnabled(config: SnowpackConfig) {
  function removeEmptyFolders (line 57) | async function removeEmptyFolders(directoryLoc: string): Promise<boolean> {
  function installOptimizedDependencies (line 77) | async function installOptimizedDependencies(
  function createBuildState (line 107) | async function createBuildState(commandOptions: CommandOptions): Promise...
  function maybeCleanBuildDirectory (line 141) | function maybeCleanBuildDirectory(state: BuildState) {
  function addBuildFiles (line 149) | async function addBuildFiles(state: BuildState, files: string[]) {
  function addBuildFilesFromMountpoints (line 173) | async function addBuildFilesFromMountpoints(state: BuildState): Promise<...
  type FlushLoadOptions (line 194) | type FlushLoadOptions = LoadUrlOptions & {encoding?: undefined};
  function flushFileQueue (line 196) | async function flushFileQueue(
  function buildFiles (line 264) | async function buildFiles(state: BuildState) {
  function buildDependencies (line 278) | async function buildDependencies(state: BuildState) {
  function writeToDisk (line 302) | async function writeToDisk(state: BuildState) {
  function startWatch (line 322) | async function startWatch(state: BuildState) {
  function optimize (line 355) | async function optimize(state: BuildState) {
  function postBuildCleanup (line 373) | async function postBuildCleanup(state: BuildState) {

FILE: snowpack/src/commands/add-rm.ts
  function pkgInfoFromString (line 15) | function pkgInfoFromString(str) {
  function addCommand (line 21) | async function addCommand(addValue: string, commandOptions: CommandOptio...
  function rmCommand (line 65) | async function rmCommand(addValue: string, commandOptions: CommandOption...

FILE: snowpack/src/commands/build.ts
  function build (line 15) | async function build(commandOptions: CommandOptions): Promise<SnowpackBu...
  function command (line 44) | async function command(commandOptions: CommandOptions) {

FILE: snowpack/src/commands/dev.ts
  class OneToManyMap (line 51) | class OneToManyMap {
    method add (line 54) | add(key: string, _value: string | string[]) {
    method delete (line 61) | delete(key: string) {
    method key (line 70) | key(value: string) {
    method value (line 73) | value(key: string) {
  type FoundFile (line 78) | interface FoundFile {
  constant FILE_BUILD_RESULT_ERROR (line 86) | const FILE_BUILD_RESULT_ERROR = `Build Result Error: There was a problem...
  function encodeResponse (line 91) | function encodeResponse(
  class NotFoundError (line 115) | class NotFoundError extends Error {
    method constructor (line 116) | constructor(url: string, lookups?: string[]) {
  function sendResponseFile (line 125) | function sendResponseFile(
  function sendResponseError (line 200) | function sendResponseError(req: http.IncomingMessage, res: http.ServerRe...
  function handleResponseError (line 212) | function handleResponseError(req, res, err: Error | NotFoundError) {
  function getServerRuntime (line 232) | function getServerRuntime(
  function startServer (line 257) | async function startServer(
  function command (line 1041) | async function command(commandOptions: CommandOptions) {

FILE: snowpack/src/commands/init.ts
  function command (line 8) | async function command(commandOptions: CommandOptions) {

FILE: snowpack/src/commands/paint.ts
  function getPort (line 24) | async function getPort(defaultPort: number): Promise<number> {
  function startDashboard (line 56) | function startDashboard(bus: EventEmitter, _config: SnowpackConfig) {

FILE: snowpack/src/commands/prepare.ts
  function command (line 6) | async function command(commandOptions: CommandOptions) {

FILE: snowpack/src/config.ts
  constant CONFIG_NAME (line 34) | const CONFIG_NAME = 'snowpack';
  constant ALWAYS_EXCLUDE (line 35) | const ALWAYS_EXCLUDE = ['**/_*.{sass,scss}', '**.d.ts'];
  constant DEFAULT_PROJECT_CACHE_DIR (line 36) | const DEFAULT_PROJECT_CACHE_DIR =
  constant DEFAULT_ROOT (line 44) | const DEFAULT_ROOT = process.cwd();
  constant DEFAULT_CONFIG (line 45) | const DEFAULT_CONFIG: SnowpackUserConfig = {
  constant DEFAULT_PACKAGES_LOCAL_CONFIG (line 79) | const DEFAULT_PACKAGES_LOCAL_CONFIG: PackageOptionsLocal = {
  constant REMOTE_PACKAGE_ORIGIN (line 86) | const REMOTE_PACKAGE_ORIGIN = 'https://pkg.snowpack.dev';
  constant DEFAULT_PACKAGES_REMOTE_CONFIG (line 88) | const DEFAULT_PACKAGES_REMOTE_CONFIG: PackageOptionsRemote = {
  function expandCliFlags (line 236) | function expandCliFlags(flags: CLIFlags): SnowpackUserConfig {
  function loadPlugins (line 298) | function loadPlugins(config: SnowpackConfig): {
  function normalizeMount (line 375) | function normalizeMount(config: SnowpackConfig) {
  function normalizeRoutes (line 413) | function normalizeRoutes(routes: RouteConfigObject[]): RouteConfigObject...
  function normalizeConfig (line 435) | function normalizeConfig(_config: SnowpackUserConfig): SnowpackConfig {
  function handleConfigError (line 506) | function handleConfigError(msg: string) {
  function handleValidationErrors (line 511) | function handleValidationErrors(filepath: string, err: ConfigValidationE...
  function handleDeprecatedConfigError (line 518) | function handleDeprecatedConfigError(mainMsg: string, ...msgs: string[]) {
  function valdiateDeprecatedConfig (line 524) | function valdiateDeprecatedConfig(rawConfig: any) {
  function validatePlugin (line 603) | function validatePlugin(plugin: SnowpackPlugin) {
  function validatePluginLoadResult (line 623) | function validatePluginLoadResult(
  function getConfigBasePath (line 655) | function getConfigBasePath(configFileLoc: string | undefined, configRoot...
  function resolveRelativeConfigAlias (line 663) | function resolveRelativeConfigAlias(
  function resolveRelativeConfigMount (line 681) | function resolveRelativeConfigMount(
  function resolveRelativeConfig (line 692) | function resolveRelativeConfig(config: SnowpackUserConfig, configBase: s...
  class ConfigValidationError (line 728) | class ConfigValidationError extends Error {
    method constructor (line 729) | constructor(errors: (Error | string)[]) {
  function validateConfig (line 734) | function validateConfig(config: SnowpackConfig) {
  function createConfiguration (line 742) | function createConfiguration(config: SnowpackUserConfig = {}): SnowpackC...
  function loadConfigurationFile (line 779) | async function loadConfigurationFile(
  function loadConfiguration (line 789) | async function loadConfiguration(

FILE: snowpack/src/dev/hmr.ts
  function startHmrEngine (line 10) | function startHmrEngine(

FILE: snowpack/src/hmr-server-engine.ts
  type Dependency (line 7) | interface Dependency {
  type HMRMessage (line 16) | type HMRMessage =
  constant DEFAULT_CONNECT_DELAY (line 27) | const DEFAULT_CONNECT_DELAY = 2000;
  constant DEFAULT_PORT (line 28) | const DEFAULT_PORT = 12321;
  type EsmHmrEngineOptions (line 30) | interface EsmHmrEngineOptions {
  class EsmHmrEngine (line 35) | class EsmHmrEngine {
    method constructor (line 46) | constructor(options: EsmHmrEngineOptions) {
    method registerListener (line 80) | registerListener(client: WebSocket) {
    method createEntry (line 95) | createEntry(sourceUrl: string) {
    method getEntry (line 108) | getEntry(sourceUrl: string, createIfNotFound = false) {
    method setEntry (line 119) | setEntry(sourceUrl: string, imports: string[], isHmrEnabled = false) {
    method removeRelationship (line 132) | removeRelationship(sourceUrl: string, importUrl: string) {
    method addRelationship (line 139) | addRelationship(sourceUrl: string, importUrl: string) {
    method markEntryForReplacement (line 148) | markEntryForReplacement(entry: Dependency, state: boolean) {
    method broadcastMessage (line 157) | broadcastMessage(data: HMRMessage) {
    method dispatchBatch (line 189) | dispatchBatch() {
    method dispatchMessage (line 204) | private dispatchMessage(messageBatch: HMRMessage[], singleClient?: Web...
    method connectClient (line 225) | connectClient(client: WebSocket) {
    method disconnectClient (line 229) | disconnectClient(client: WebSocket) {
    method disconnectAllClients (line 234) | disconnectAllClients() {
    method stop (line 240) | stop(): Promise<void> {

FILE: snowpack/src/index.ts
  function getUrlForFile (line 26) | function getUrlForFile(fileLoc: string, config: SnowpackConfig) {
  function preparePackages (line 30) | function preparePackages({config}: CommandOptions) {
  function startDevServer (line 36) | function startDevServer() {
  function buildProject (line 39) | function buildProject() {
  function loadAndValidateConfig (line 42) | function loadAndValidateConfig() {
  function printHelp (line 48) | function printHelp() {
  function cli (line 77) | async function cli(args: string[]) {

FILE: snowpack/src/lexer-util.ts
  function checkIdent (line 1) | function checkIdent(code: string, pos: number, text: string): boolean {
  function isEOL (line 5) | function isEOL(code: string, pos: number): boolean {
  function isBrOrWsOrPunctuatorNotDot (line 37) | function isBrOrWsOrPunctuatorNotDot(ch: string): boolean {
  function isPunctuator (line 42) | function isPunctuator(ch: string): boolean {
  function keywordStart (line 58) | function keywordStart(source: string, pos: number) {

FILE: snowpack/src/logger.ts
  type LogRecord (line 4) | interface LogRecord {
  class SnowpackLogger (line 18) | class SnowpackLogger {
    method log (line 40) | private log({
    method debug (line 92) | public debug(message: string, options?: LoggerOptions): void {
    method info (line 98) | public info(message: string, options?: LoggerOptions): void {
    method warn (line 104) | public warn(message: string, options?: LoggerOptions): void {
    method error (line 110) | public error(message: string, options?: LoggerOptions): void {
    method getHistory (line 116) | public getHistory(): ReadonlyArray<LogRecord> {
    method on (line 121) | public on(event: LoggerEvent, callback: (message: string) => void) {

FILE: snowpack/src/plugins/plugin-esbuild.ts
  constant IS_PREACT (line 8) | const IS_PREACT = /from\s+['"]preact['"]/;
  function checkIsPreact (line 9) | function checkIsPreact(contents: string) {
  type Loader (line 13) | type Loader = 'js' | 'jsx' | 'ts' | 'tsx';
  function getLoader (line 15) | function getLoader(filePath: string): {loader: Loader; isJSX: boolean} {
  function esbuildPlugin (line 22) | function esbuildPlugin(config: SnowpackConfig, {input}: {input: string[]...

FILE: snowpack/src/rewrite-imports.ts
  constant WEBPACK_MAGIC_COMMENT_REGEX (line 6) | const WEBPACK_MAGIC_COMMENT_REGEX = /\/\*[\s\S]*?\*\//g;
  type RewriteInstruction (line 8) | interface RewriteInstruction {
  function applyRewrites (line 14) | function applyRewrites(source: string, rewrites: RewriteInstruction[]) {
  function scanCodeImportsExports (line 27) | async function scanCodeImportsExports(code: string): Promise<any[]> {
  function transformEsmImports (line 43) | async function transformEsmImports(
  function transformHtmlImports (line 71) | async function transformHtmlImports(
  function transformCssImports (line 105) | async function transformCssImports(
  function transformFileImports (line 126) | async function transformFileImports(
  function transformAddMissingDefaultExport (line 144) | async function transformAddMissingDefaultExport(_code: string) {

FILE: snowpack/src/scan-import-glob.ts
  type ImportGlobStatement (line 3) | interface ImportGlobStatement {
  type ScannerState (line 10) | const enum ScannerState {
  constant IMPORT_META_GLOB_REGEX (line 25) | const IMPORT_META_GLOB_REGEX = /import\s*\.\s*meta\s*\.\s*glob/;
  function scanImportGlob (line 27) | function scanImportGlob(code: string) {
  function isInQuote (line 142) | function isInQuote(state: ScannerState): boolean {
  function isInComment (line 150) | function isInComment(state: ScannerState): boolean {

FILE: snowpack/src/scan-imports.ts
  constant BARE_SPECIFIER_REGEX (line 28) | const BARE_SPECIFIER_REGEX = /^[@\w](?!.*(:\/\/))/;
  constant ESM_IMPORT_REGEX (line 30) | const ESM_IMPORT_REGEX =
  constant ESM_DYNAMIC_IMPORT_REGEX (line 32) | const ESM_DYNAMIC_IMPORT_REGEX = /(?<!\.)\bimport\((?:['"].+['"]|`[^$]+`...
  constant HAS_NAMED_IMPORTS_REGEX (line 33) | const HAS_NAMED_IMPORTS_REGEX = /^[\w\s\,]*\{(.*)\}/s;
  constant STRIP_AS (line 34) | const STRIP_AS = /\s+as\s+.*/;
  constant DEFAULT_IMPORT_REGEX (line 35) | const DEFAULT_IMPORT_REGEX = /import\s+(\w)+(,\s\{[\w\s,]*\})?\s+from/s;
  function getInstallTargets (line 37) | async function getInstallTargets(
  function isFileScannable (line 77) | function isFileScannable(ext: string): boolean {
  function matchDynamicImportValue (line 81) | function matchDynamicImportValue(importStatement: string) {
  function getWebModuleSpecifierFromCode (line 86) | function getWebModuleSpecifierFromCode(code: string, imp: ImportSpecifie...
  function parseWebModuleSpecifier (line 104) | function parseWebModuleSpecifier(specifier: string | null): null | string {
  function parseImportStatement (line 115) | function parseImportStatement(code: string, imp: ImportSpecifier): null ...
  function cleanCodeForParsing (line 144) | function cleanCodeForParsing(code: string): string {
  function parseJsForInstallTargets (line 159) | function parseJsForInstallTargets(contents: string): InstallTarget[] {
  function parseCssForInstallTargets (line 181) | function parseCssForInstallTargets(code: string): InstallTarget[] {
  function parseFileForInstallTargets (line 195) | function parseFileForInstallTargets({
  function extractJsFromHtml (line 253) | function extractJsFromHtml({contents, baseExt}: {contents: string; baseE...
  function extractCssFromHtml (line 273) | function extractCssFromHtml(contents: string): string {
  function extractJsFromAstro (line 288) | function extractJsFromAstro(contents: string): string {
  function scanDepList (line 302) | function scanDepList(depList: string[], cwd: string): InstallTarget[] {
  function scanImports (line 315) | async function scanImports(
  function scanImportsFromFiles (line 368) | async function scanImportsFromFiles(

FILE: snowpack/src/sources/local-install.ts
  type InstallOptions (line 8) | interface InstallOptions {
  type InstallResult (line 16) | interface InstallResult {
  function installPackages (line 21) | async function installPackages({

FILE: snowpack/src/sources/local.ts
  constant CURRENT_META_FILE_CONTENTS (line 34) | const CURRENT_META_FILE_CONTENTS = `.snowpack cache - Do not edit this d...
  constant NEVER_PEER_PACKAGES (line 46) | const NEVER_PEER_PACKAGES: Set<string> = new Set([
  function isPackageCJS (line 59) | function isPackageCJS(manifest: any): boolean {
  function getRootPackageDirectory (line 72) | function getRootPackageDirectory(loc: string) {
  function getNpmConnectionOptions (line 90) | function getNpmConnectionOptions(source: string | object): object {
  type PackageImportData (line 100) | type PackageImportData = {
  class PackageSourceLocal (line 108) | class PackageSourceLocal implements PackageSource {
    method constructor (line 122) | constructor(config: SnowpackConfig) {
    method setupCacheDirectory (line 142) | private async setupCacheDirectory() {
    method setupPackageRootDirectory (line 173) | private async setupPackageRootDirectory(installTargets: InstallTarget[...
    method prepare (line 207) | async prepare() {
    method prepareSingleFile (line 256) | async prepareSingleFile(fileLoc: string) {
    method load (line 276) | async load(id: string, {isSSR}: {isSSR?: boolean} = {}) {
    method modifyBuildInstallOptions (line 352) | async modifyBuildInstallOptions(installOptions, installTargets) {
    method resolveArbNode (line 378) | private async resolveArbNode(packageName: string, source: string): Pro...
    method installPackage (line 407) | private async installPackage(packageName: string, _source?: string): P...
    method buildPackageImport (line 431) | private async buildPackageImport(spec: string, _source?: string, logLi...
    method resolvePackageImport (line 694) | async resolvePackageImport(
    method clearCache (line 777) | clearCache() {
    method getCacheFolder (line 781) | getCacheFolder() {
    method isExternal (line 785) | private isExternal(packageName: string, specifier: string): boolean {

FILE: snowpack/src/sources/remote.ts
  function logFetching (line 18) | function logFetching(origin: string, packageName: string, packageSemver:...
  class PackageSourceRemote (line 38) | class PackageSourceRemote implements PackageSource {
    method constructor (line 43) | constructor(config: SnowpackConfig) {
    method prepare (line 48) | async prepare() {
    method prepareSingleFile (line 79) | async prepareSingleFile() {
    method modifyBuildInstallOptions (line 83) | async modifyBuildInstallOptions(installOptions) {
    method load (line 108) | async load(spec: string) {
    method resolvePackageImport (line 176) | async resolvePackageImport(spec: string) {
    method clearCache (line 180) | static clearCache() {
    method clearCache (line 185) | clearCache() {
    method getCacheFolder (line 189) | getCacheFolder() {

FILE: snowpack/src/sources/util.ts
  constant GLOBAL_CACHE_DIR (line 8) | const GLOBAL_CACHE_DIR = globalCacheDir('snowpack');
  function clearCache (line 10) | async function clearCache() {
  function getPackageSource (line 25) | function getPackageSource(config: SnowpackConfig): PackageSource {

FILE: snowpack/src/ssr-loader/index.ts
  type ModuleInstance (line 8) | interface ModuleInstance {
  type ModuleInitializer (line 13) | type ModuleInitializer = () => Promise<ModuleInstance>;
  function moduleInit (line 15) | function moduleInit(fn: ModuleInitializer) {
  function createLoader (line 23) | function createLoader({config, load}: ServerRuntimeConfig): ServerRuntime {

FILE: snowpack/src/ssr-loader/sourcemaps.ts
  function get_sourcemap_url (line 4) | function get_sourcemap_url(contents) {
  function replace_async (line 13) | async function replace_async(str, regex, asyncFn) {
  function sourcemap_stacktrace (line 25) | async function sourcemap_stacktrace(stack, load_contents) {

FILE: snowpack/src/ssr-loader/transform.ts
  function transform (line 7) | function transform(data) {

FILE: snowpack/src/types.ts
  type RawSourceMap (line 10) | interface RawSourceMap {
  type DeepPartial (line 20) | type DeepPartial<T> = {
  type ServerRuntimeConfig (line 28) | interface ServerRuntimeConfig {
  type ServerRuntime (line 32) | interface ServerRuntime {
  type ServerRuntimeModule (line 37) | interface ServerRuntimeModule<T extends any> {
  type LoadResult (line 42) | interface LoadResult<T = Buffer | string> {
  type OnFileChangeCallback (line 50) | type OnFileChangeCallback = ({filePath: string}) => any;
  type LoadUrlOptions (line 51) | interface LoadUrlOptions {
  type SnowpackDevServer (line 60) | interface SnowpackDevServer {
  type SnowpackBuildResultFileManifest (line 94) | type SnowpackBuildResultFileManifest = Record<
  type SnowpackBuildResult (line 99) | interface SnowpackBuildResult {
  type SnowpackBuiltFile (line 105) | type SnowpackBuiltFile = {
  type SnowpackBuildMap (line 110) | type SnowpackBuildMap = Record<string, SnowpackBuiltFile>;
  type SnowpackSourceFile (line 113) | interface SnowpackSourceFile<Type = string | Buffer> {
  type PluginLoadOptions (line 124) | interface PluginLoadOptions {
  type PluginTransformOptions (line 139) | interface PluginTransformOptions {
  type PluginRunOptions (line 158) | interface PluginRunOptions {
  type PluginLoadResult (line 163) | type PluginLoadResult = SnowpackBuildMap;
  type PluginTransformResult (line 165) | type PluginTransformResult = {contents: string; map: string | RawSourceM...
  type PluginOptimizeOptions (line 167) | interface PluginOptimizeOptions {
  type SnowpackPlugin (line 171) | interface SnowpackPlugin {
  type SnowpackPluginFactory (line 209) | type SnowpackPluginFactory<PluginOptions = object> = (
  type MountEntry (line 214) | type MountEntry = {
  type OptimizeOptions (line 221) | interface OptimizeOptions {
  type RouteConfigObject (line 234) | interface RouteConfigObject {
  type PackageOptionsLocal (line 242) | interface PackageOptionsLocal
  type PackageOptionsRemote (line 252) | interface PackageOptionsRemote {
  type SnowpackConfig (line 262) | interface SnowpackConfig {
  type SnowpackUserConfig (line 316) | type SnowpackUserConfig = {
  type CLIFlags (line 338) | interface CLIFlags {
  type ImportMap (line 352) | interface ImportMap {
  type LockfileManifest (line 356) | interface LockfileManifest {
  type CommandOptions (line 361) | interface CommandOptions {
  type LoggerLevel (line 366) | type LoggerLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
  type LoggerEvent (line 367) | type LoggerEvent = 'debug' | 'info' | 'warn' | 'error';
  type LoggerOptions (line 368) | interface LoggerOptions {
  type PackageSource (line 376) | interface PackageSource {
  type ScannableExt (line 410) | type ScannableExt =

FILE: snowpack/src/util.ts
  constant IS_DOTFILE_REGEX (line 22) | const IS_DOTFILE_REGEX = /\/\.[^\/]+$/;
  constant LOCKFILE_NAME (line 24) | const LOCKFILE_NAME = 'snowpack.deps.json';
  constant NATIVE_REQUIRE (line 27) | const NATIVE_REQUIRE = eval('require');
  constant REQUIRE_OR_IMPORT (line 31) | const REQUIRE_OR_IMPORT: (
  function createRemotePackageSDK (line 36) | function createRemotePackageSDK(config: SnowpackConfig) {
  constant BUILD_CACHE (line 55) | const BUILD_CACHE = path.join(GLOBAL_CACHE_DIR, 'build-cache-2.7');
  constant LOCKFILE_HASH_FILE (line 56) | const LOCKFILE_HASH_FILE = '.hash';
  constant HTML_JS_REGEX (line 59) | const HTML_JS_REGEX = /(<script[^>]*?type="module".*?>)(.*?)<\/script>/g...
  constant HTML_STYLE_REGEX (line 60) | const HTML_STYLE_REGEX = /(<style.*?>)(.*?)<\/style>/gims;
  constant CSS_REGEX (line 61) | const CSS_REGEX = /@import\s*['"](.*?)['"];/gs;
  constant SVELTE_VUE_REGEX (line 62) | const SVELTE_VUE_REGEX = /(<script[^>]*>)(.*?)<\/script>/gims;
  constant ASTRO_REGEX (line 63) | const ASTRO_REGEX = /---(.*?)---/gims;
  function getCacheKey (line 65) | function getCacheKey(fileLoc: string, {isSSR, mode}) {
  type Awaited (line 69) | type Awaited<T> = T extends PromiseLike<infer U> ? Awaited<U> : T;
  function deleteFromBuildSafe (line 74) | function deleteFromBuildSafe(dir: string, config: SnowpackConfig) {
  function readFile (line 89) | async function readFile(filepath: string): Promise<string | Buffer> {
  function readLockfile (line 104) | async function readLockfile(cwd: string): Promise<LockfileManifest | nul...
  function createInstallTarget (line 117) | function createInstallTarget(specifier: string, all = true): InstallTarg...
  function sortObject (line 127) | function sortObject<T>(originalObject: Record<string, T>): Record<string...
  function convertLockfileToSkypackImportMap (line 135) | function convertLockfileToSkypackImportMap(
  function convertSkypackImportMapToLockfile (line 147) | function convertSkypackImportMapToLockfile(
  function writeLockfile (line 161) | async function writeLockfile(loc: string, importMap: LockfileManifest): ...
  function isTruthy (line 167) | function isTruthy<T>(item: T | false | null | undefined): item is T {
  function isFsEventsEnabled (line 175) | function isFsEventsEnabled(): boolean {
  function parsePackageImportSpecifier (line 185) | function parsePackageImportSpecifier(imp: string): [string, string | nul...
  function resolveDependencyManifest (line 203) | function resolveDependencyManifest(dep: string, cwd: string): [string | ...
  constant MISSING_PLUGIN_SUGGESTIONS (line 250) | const MISSING_PLUGIN_SUGGESTIONS: {[ext: string]: string} = {
  function openInExistingChromeBrowser (line 269) | async function openInExistingChromeBrowser(url: string) {
  function openInBrowser (line 300) | async function openInBrowser(
  function checkLockfileHash (line 333) | async function checkLockfileHash(dir: string) {
  function updateLockfileHash (line 344) | async function updateLockfileHash(dir: string) {
  function getAliasType (line 355) | function getAliasType(val: string): 'package' | 'path' | 'url' {
  function findMatchingAliasEntry (line 365) | function findMatchingAliasEntry(
  function getExtensionMatch (line 390) | function getExtensionMatch(
  function isPathImport (line 409) | function isPathImport(spec: string): boolean {
  function isRemoteUrl (line 413) | function isRemoteUrl(val: string): boolean {
  function isImportOfPackage (line 417) | function isImportOfPackage(importUrl: string, packageName: string) {
  function sanitizePackageName (line 426) | function sanitizePackageName(filepath: string): string {
  function cssSourceMappingURL (line 435) | function cssSourceMappingURL(code: string, sourceMappingURL: string) {
  function jsSourceMappingURL (line 440) | function jsSourceMappingURL(code: string, sourceMappingURL: string) {
  function relativeURL (line 445) | function relativeURL(path1: string, path2: string): string {
  constant CLOSING_HEAD_TAG (line 453) | const CLOSING_HEAD_TAG = /<\s*\/\s*head\s*>/gi;
  function appendHtmlToHead (line 456) | function appendHtmlToHead(doc: string, htmlToAdd: string) {
  function isJavaScript (line 469) | function isJavaScript(pathname: string): boolean {
  function getExtension (line 474) | function getExtension(str: string) {
  function hasExtension (line 478) | function hasExtension(str: string, ext: string) {
  function replaceExtension (line 482) | function replaceExtension(fileName: string, oldExt: string, newExt: stri...
  function addExtension (line 487) | function addExtension(fileName: string, newExt: string): string {
  function removeExtension (line 491) | function removeExtension(fileName: string, oldExt: string): string {
  function addLeadingSlash (line 496) | function addLeadingSlash(path: string) {
  function addTrailingSlash (line 501) | function addTrailingSlash(path: string) {
  function removeLeadingSlash (line 506) | function removeLeadingSlash(path: string) {
  function removeTrailingSlash (line 511) | function removeTrailingSlash(path: string) {
  function spliceString (line 516) | function spliceString(source: string, withSlice: string, start: number, ...
  constant HMR_CLIENT_CODE (line 520) | const HMR_CLIENT_CODE = fs.readFileSync(
  constant HMR_OVERLAY_CODE (line 524) | const HMR_OVERLAY_CODE = fs.readFileSync(
  constant INIT_TEMPLATE_FILE (line 528) | const INIT_TEMPLATE_FILE = fs.readFileSync(

FILE: test-dev/dev.test.ts
  function startServer (line 11) | async function startServer (cwd) {

FILE: test/build/entrypoint-ids/entrypoint-ids.test.js
  constant IMPORTS (line 5) | const IMPORTS = ['ansi-styles', 'chalk'];

FILE: test/build/plugin-build-script/src/index.ts
  type stringType (line 1) | type stringType = string;

FILE: test/build/react-lazy-bundle/src/components/App.jsx
  function App (line 3) | function App({children}) {

FILE: test/build/react-lazy-bundle/src/components/Articles.jsx
  function Articles (line 3) | function Articles() {

FILE: test/build/test-workspace-component/index.mjs
  function testComponent (line 3) | function testComponent() {

FILE: test/build/test-workspace-component/works-without-extension.ts
  function testFn (line 1) | function testFn() {

FILE: test/create-snowpack-app/create-snowpack-app.test.js
  constant TEMPLATES_DIR (line 7) | const TEMPLATES_DIR = path.resolve(__dirname, '..', '..', 'create-snowpa...
  constant STRIP_CSS_MODULES (line 9) | const STRIP_CSS_MODULES = /_[\d\w]{5}_[\d]{1,3}/g;

FILE: test/esinstall/esinstall-test-utils.js
  function existsPackageJson (line 16) | function existsPackageJson(cwd) {
  function runTest (line 32) | async function runTest(installTargets, options) {
  function testLockFile (line 50) | async function testLockFile(cwd) {
  function testWebModules (line 65) | async function testWebModules(

FILE: test/esinstall/import-astro/import-astro.test.js
  method load (line 18) | load() {

FILE: test/esinstall/import-missing/packages/@material/animation/dist/mdc.animation.d.ts
  type StandardCssPropertyName (line 83) | type StandardCssPropertyName = 'animation' | 'transform' | 'transition';
  type PrefixedCssPropertyName (line 84) | type PrefixedCssPropertyName = '-webkit-animation' | '-webkit-transform'...
  type StandardJsEventType (line 85) | type StandardJsEventType = 'animationend' | 'animationiteration' | 'anim...
  type PrefixedJsEventType (line 86) | type PrefixedJsEventType = 'webkitAnimationEnd' | 'webkitAnimationIterat...
  type CssVendorProperty (line 87) | interface CssVendorProperty {
  type JsVendorProperty (line 91) | interface JsVendorProperty {
  type CssVendorPropertyMap (line 96) | type CssVendorPropertyMap = {
  type JsVendorPropertyMap (line 99) | type JsVendorPropertyMap = {

FILE: test/esinstall/import-missing/packages/@material/animation/dist/mdc.animation.js
  function __webpack_require__ (line 23) | function __webpack_require__(moduleId) {
  function __export (line 138) | function __export(m) {
  function isWindow (line 227) | function isWindow(windowObj) {
  function getCorrectPropertyName (line 230) | function getCorrectPropertyName(windowObj, cssProperty) {
  function getCorrectEventName (line 242) | function getCorrectEventName(windowObj, eventType) {

FILE: test/esinstall/import-missing/packages/@material/animation/types.d.ts
  type StandardCssPropertyName (line 23) | type StandardCssPropertyName = 'animation' | 'transform' | 'transition';
  type PrefixedCssPropertyName (line 24) | type PrefixedCssPropertyName = '-webkit-animation' | '-webkit-transform'...
  type StandardJsEventType (line 25) | type StandardJsEventType = 'animationend' | 'animationiteration' | 'anim...
  type PrefixedJsEventType (line 26) | type PrefixedJsEventType = 'webkitAnimationEnd' | 'webkitAnimationIterat...
  type CssVendorProperty (line 27) | interface CssVendorProperty {
  type JsVendorProperty (line 31) | interface JsVendorProperty {
  type CssVendorPropertyMap (line 36) | type CssVendorPropertyMap = {
  type JsVendorPropertyMap (line 39) | type JsVendorPropertyMap = {

FILE: test/esinstall/import-missing/packages/@material/animation/util.js
  function isWindow (line 59) | function isWindow(windowObj) {
  function getCorrectPropertyName (line 62) | function getCorrectPropertyName(windowObj, cssProperty) {
  function getCorrectEventName (line 71) | function getCorrectEventName(windowObj, eventType) {

FILE: test/esinstall/import-missing/packages/tslib/tslib.es6.js
  function __extends (line 24) | function __extends(d, b) {
  function __rest (line 41) | function __rest(s, e) {
  function __decorate (line 53) | function __decorate(decorators, target, key, desc) {
  function __param (line 60) | function __param(paramIndex, decorator) {
  function __metadata (line 64) | function __metadata(metadataKey, metadataValue) {
  function __awaiter (line 68) | function __awaiter(thisArg, _arguments, P, generator) {
  function __generator (line 78) | function __generator(thisArg, body) {
  function __createBinding (line 106) | function __createBinding(o, m, k, k2) {
  function __exportStar (line 111) | function __exportStar(m, exports) {
  function __values (line 115) | function __values(o) {
  function __read (line 127) | function __read(o, n) {
  function __spread (line 144) | function __spread() {
  function __spreadArrays (line 150) | function __spreadArrays() {
  function __await (line 158) | function __await(v) {
  function __asyncGenerator (line 162) | function __asyncGenerator(thisArg, _arguments, generator) {
  function __asyncDelegator (line 174) | function __asyncDelegator(o) {
  function __asyncValues (line 180) | function __asyncValues(o) {
  function __makeTemplateObject (line 188) | function __makeTemplateObject(cooked, raw) {
  function __importStar (line 193) | function __importStar(mod) {
  function __importDefault (line 201) | function __importDefault(mod) {
  function __classPrivateFieldGet (line 205) | function __classPrivateFieldGet(receiver, privateMap) {
  function __classPrivateFieldSet (line 212) | function __classPrivateFieldSet(receiver, privateMap, value) {

FILE: test/esinstall/import-missing/packages/tslib/tslib.js
  function createExporter (line 51) | function createExporter(exports, previous) {
  function __ (line 70) | function __() { this.constructor = d; }
  function adopt (line 110) | function adopt(value) { return value instanceof P ? value : new P(functi...
  function fulfilled (line 112) | function fulfilled(value) { try { step(generator.next(value)); } catch (...
  function rejected (line 113) | function rejected(value) { try { step(generator["throw"](value)); } catc...
  function step (line 114) | function step(result) { result.done ? resolve(result.value) : adopt(resu...
  function verb (line 122) | function verb(n) { return function (v) { return step([n, v]); }; }
  function step (line 123) | function step(op) {
  function verb (line 207) | function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(fu...
  function resume (line 208) | function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3...
  function step (line 209) | function step(r) { r.value instanceof __await ? Promise.resolve(r.value....
  function fulfill (line 210) | function fulfill(value) { resume("next", value); }
  function reject (line 211) | function reject(value) { resume("throw", value); }
  function settle (line 212) | function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q...
  function verb (line 218) | function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { v...
  function verb (line 225) | function verb(n) { i[n] = o[n] && function (v) { return new Promise(func...
  function settle (line 226) | function settle(resolve, reject, d, v) { Promise.resolve(v).then(functio...

FILE: test/esinstall/import-named-from-default/package/default-only-esm/index.js
  function EventEmitter (line 1) | function EventEmitter() {}

FILE: test/esinstall/import-node-builtin/packages/bad-node-builtin-pkg/entrypoint.js
  constant FOO (line 1) | const FOO = 42;

FILE: test/esinstall/import-types/packages/type-only-pkg/index.d.ts
  type Foo (line 1) | type Foo = 'i am types only!';

FILE: test/esinstall/named-exports/packages/umd-named-exports/autolayout.js
  function s (line 20) | function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&re...
  function defineProperties (line 23) | function defineProperties(target, props) { for (var i = 0; i < props.len...
  function _classCallCheck (line 25) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
  function peg$subclass (line 83) | function peg$subclass(child, parent) {
  function SyntaxError (line 91) | function SyntaxError(message, expected, found, offset, line, column) {
  function parse (line 104) | function parse(input) {
  function peg$subclass (line 1213) | function peg$subclass(child, parent) {
  function SyntaxError (line 1221) | function SyntaxError(message, expected, found, offset, line, column) {
  function parse (line 1234) | function parse(input) {
  function _processEqualSpacer (line 3886) | function _processEqualSpacer(context, stackView) {
  function _processProportionalSpacer (line 3964) | function _processProportionalSpacer(context, stackView) {
  function _processStackView (line 4013) | function _processStackView(context, name, subView) {
  function _getRange (line 4057) | function _getRange(name, range) {
  function _processCascade (line 4089) | function _processCascade(context, cascade, parentItem) {
  function VisualFormat (line 4233) | function VisualFormat() {
  function SubView (line 4527) | function SubView(options) {
  function _getConst (line 4862) | function _getConst(name, value) {
  function _getSubView (line 4874) | function _getSubView(viewName) {
  function _getSpacing (line 4893) | function _getSpacing(constraint) {
  function _addConstraint (line 4936) | function _addConstraint(constraint) {
  function _compareSpacing (line 5004) | function _compareSpacing(old, newz) {
  function View (line 5049) | function View(options) {
  method description (line 5357) | set description(a){this._description=a}
  method description (line 5357) | get description(){return"("+this._name+") "+this._description}
  method message (line 5357) | get message(){return this.description}
  method required (line 5357) | get required(){return this===a.Strength.required}
  method x (line 5357) | get x(){return this._x}
  method x (line 5357) | set x(b){b instanceof a.Variable?this._x=b:this._x.value=b}
  method y (line 5357) | get y(){return this._y}
  method y (line 5357) | set y(b){b instanceof a.Variable?this._y=b:this._y.value=b}
  method isConstant (line 5357) | get isConstant(){return 0==this.terms.size}
  method required (line 5357) | get required(){return this.strength===a.Strength.required}
  function a (line 5358) | function a(a){return'"'+a.replace(/\\/g,"\\\\").replace(/"/g,'\\"').repl...
  function k (line 5358) | function k(a){g>e||(e>g&&(g=e,h=[]),h.push(a))}
  function l (line 5358) | function l(){var a,b,c,d,f;if(d=e,f=e,a=z(),null!==a){if(c=m(),null!==c)...
  function m (line 5358) | function m(){var a,b,c,d;return c=e,d=e,a=P(),null!==a?(b=s(),null!==b?a...
  function n (line 5358) | function n(){var a;return b.length>e?(a=b.charAt(e),e++):(a=null,0===f&&...
  function o (line 5358) | function o(){var a;return/^[a-zA-Z]/.test(b.charAt(e))?(a=b.charAt(e),e+...
  function p (line 5358) | function p(){var a;return f++,/^[\t\x0B\f \xA0\uFEFF]/.test(b.charAt(e))...
  function q (line 5358) | function q(){var a;return/^[\n\r\u2028\u2029]/.test(b.charAt(e))?(a=b.ch...
  function r (line 5358) | function r(){var a;return f++,10===b.charCodeAt(e)?(a="\n",e++):(a=null,...
  function s (line 5358) | function s(){var a,c,d;return d=e,a=z(),null!==a?(59===b.charCodeAt(e)?(...
  function t (line 5358) | function t(){var a,c;return c=e,f++,b.length>e?(a=b.charAt(e),e++):(a=nu...
  function u (line 5358) | function u(){var a;return f++,a=v(),null===a&&(a=x()),f--,0===f&&null===...
  function v (line 5358) | function v(){var a,c,d,g,h,i,j;if(h=e,"/*"===b.substr(e,2)?(a="/*",e+=2)...
  function w (line 5358) | function w(){var a,c,d,g,h,i,j;if(h=e,"/*"===b.substr(e,2)?(a="/*",e+=2)...
  function x (line 5358) | function x(){var a,c,d,g,h,i,j;if(h=e,"//"===b.substr(e,2)?(a="//",e+=2)...
  function y (line 5358) | function y(){var a,b;for(a=[],b=p(),null===b&&(b=w(),null===b&&(b=x()));...
  function z (line 5358) | function z(){var a,b;for(a=[],b=p(),null===b&&(b=r(),null===b&&(b=u()));...
  function A (line 5358) | function A(){var a,b;return b=e,a=C(),null===a&&(a=B()),null!==a&&(a=fun...
  function B (line 5358) | function B(){var a,c,d;if(d=e,/^[0-9]/.test(b.charAt(e))?(c=b.charAt(e),...
  function C (line 5358) | function C(){var a,c,d,g,h;return g=e,h=e,a=B(),null!==a?(46===b.charCod...
  function D (line 5358) | function D(){var a,c,d,g;if(g=e,/^[\-+]/.test(b.charAt(e))?(a=b.charAt(e...
  function E (line 5358) | function E(){var a,b;return f++,b=e,a=F(),null!==a&&(a=function(a,b){ret...
  function F (line 5358) | function F(){var a,b,c,d,g;if(f++,d=e,g=e,a=o(),null!==a){for(b=[],c=o()...
  function G (line 5358) | function G(){var a,c,d,g,h,i,j;return i=e,a=E(),null!==a&&(a=function(a,...
  function H (line 5358) | function H(){var a,b,c,d,f;return a=G(),null===a&&(d=e,f=e,a=I(),null!==...
  function I (line 5358) | function I(){var a;return 43===b.charCodeAt(e)?(a="+",e++):(a=null,0===f...
  function J (line 5358) | function J(){var a,b,c,d,f,g,h,i,j;if(h=e,i=e,a=H(),null!==a){for(b=[],j...
  function K (line 5358) | function K(){var a;return 42===b.charCodeAt(e)?(a="*",e++):(a=null,0===f...
  function L (line 5358) | function L(){var a,b,c,d,f,g,h,i,j;if(h=e,i=e,a=J(),null!==a){for(b=[],j...
  function M (line 5358) | function M(){var a;return 43===b.charCodeAt(e)?(a="+",e++):(a=null,0===f...
  function N (line 5358) | function N(){var a,b,c,d,f,g,h,i,j;if(h=e,i=e,a=L(),null!==a){for(b=[],j...
  function O (line 5358) | function O(){var a;return"<="===b.substr(e,2)?(a="<=",e+=2):(a=null,0===...
  function P (line 5358) | function P(){var a,c,d,g,h,i,j,l,m;if(j=e,l=e,a=N(),null!==a){for(c=[],m...
  function Q (line 5358) | function Q(a){a.sort();for(var b=null,c=[],d=0;a.length>d;d++)a[d]!==b&&...
  function R (line 5358) | function R(){for(var a=1,c=1,d=!1,f=0;Math.max(e,g)>f;f++){var h=b.charA...
  function g (line 5358) | function g(b,c){var d,e;switch(b.length){case 0:d="end of input";break;c...

FILE: test/esinstall/package-entrypoints/export-map-dot-no-slash/entrypoint.js
  constant FOO (line 1) | const FOO = 42;

FILE: test/esinstall/package-entrypoints/implicit-main/index.d.ts
  type HelloJS (line 1) | interface HelloJS {

FILE: test/esinstall/polyfill-node/packages/node-builtin-pkg/entrypoint.js
  constant FOO (line 1) | const FOO = 42;

FILE: test/fixture-utils.js
  constant IGNORE_EXTS (line 8) | const IGNORE_EXTS = ['.png', '.jpg', '.ico'];
  function runInFixture (line 13) | async function runInFixture(testFiles, {absolute = false, overrides = {}...
  method writeFile (line 130) | async writeFile(fileLoc, fileContents) {
  method readFiles (line 137) | readFiles() {
  method cleanup (line 167) | async cleanup() {

FILE: test/snowpack/config/plugins/instantiatedObject/index.test.js
  class Instantiable (line 4) | class Instantiable {
    method constructor (line 5) | constructor() {
    method method (line 9) | method() {}

FILE: test/snowpack/import-sri.test.ts
  constant EMPTY (line 3) | const EMPTY = Buffer.from('');

FILE: test/snowpack/util.test.ts
  constant EMPTY (line 3) | const EMPTY = Buffer.from('');

FILE: test/test-utils.js
  constant STRIP_CHUNKHASH (line 7) | const STRIP_CHUNKHASH = /([\w\-]+\-)[a-z0-9]{8}(\.js)/g;
  constant STRIP_REV (line 8) | const STRIP_REV = /\?rev=\w+/gm;
  constant STRIP_WHITESPACE (line 9) | const STRIP_WHITESPACE = /((\s+$)|((\\r\\n)|(\\n)))/gm;
  constant UTF8_FRIENDLY_EXTS (line 10) | const UTF8_FRIENDLY_EXTS = [
  function setupBuildTest (line 25) | function setupBuildTest(cwd) {
  function getFile (line 30) | function getFile(results, TEST_OUT, id) {
  function readFiles (line 42) | function readFiles(directory, {ignore} = {}) {
  function stripChunkhash (line 63) | function stripChunkhash(code) {
  function stripRev (line 69) | function stripRev(code) {
  function stripWS (line 75) | function stripWS(code) {
  function stripBenchmark (line 81) | function stripBenchmark(stdout) {
  function stripStats (line 87) | function stripStats(stdout) {
  function stripWhitespace (line 94) | function stripWhitespace(stdout) {
  function stripChunkHash (line 100) | function stripChunkHash(stdout) {
  function stripUrlHash (line 106) | function stripUrlHash(stdout) {
  function stripConfigErrorPath (line 112) | function stripConfigErrorPath(stdout) {
  function stripResolveErrorPath (line 118) | function stripResolveErrorPath(stdout) {
  function stripStacktrace (line 124) | function stripStacktrace(stdout) {
  function stripSvelteComment (line 130) | function stripSvelteComment(stdout) {
  function stripHomePath (line 136) | function stripHomePath(stdout) {
  function stripEverything (line 143) | function stripEverything(output) {
  function stripLockfile (line 155) | function stripLockfile(output) {
  function fmtjson (line 161) | function fmtjson(json) {

FILE: www/public/js/index.js
  function debounce (line 6) | function debounce(fn) {
  function isScrolledIntoView (line 25) | function isScrolledIntoView(el) {
  function setActiveToc (line 32) | function setActiveToc() {

FILE: www/scripts/copy.js
  function copy (line 15) | async function copy() {

FILE: www/src/components/CompanyLogo.jsx
  function CompanyLogo (line 3) | function CompanyLogo({ user }) {

FILE: www/src/components/PluginSearchPage.jsx
  function searchPlugins (line 5) | async function searchPlugins(val) {
  function Card (line 15) | function Card({result}) {
  function PluginSearchPageLive (line 44) | function PluginSearchPageLive() {
  function PluginSearchPage (line 117) | function PluginSearchPage(props) {

FILE: www/src/components/docsearch.js
  method connectedCallback (line 7) | connectedCallback() {
Condensed preview — 903 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (5,031K chars).
[
  {
    "path": ".changeset/README.md",
    "chars": 510,
    "preview": "# Changesets\n\nHello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that wo"
  },
  {
    "path": ".changeset/config.json",
    "chars": 233,
    "preview": "{\n  \"$schema\": \"https://unpkg.com/@changesets/config@1.6.0/schema.json\",\n  \"changelog\": \"@changesets/cli/changelog\",\n  \""
  },
  {
    "path": ".editorconfig",
    "chars": 115,
    "preview": "root = true\n\n[*]\ncharset = utf-8\nend_of_line = lf\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\n"
  },
  {
    "path": ".github/CODEOWNERS",
    "chars": 50,
    "preview": "* @snowpackjs/maintainers\ndocs/* @snowpackjs/docs\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/---bug-report.yml",
    "chars": 1561,
    "preview": "name: \"\\U0001F41B Bug Report\"\ndescription: Report an issue or possible bug\ntitle: \"\\U0001F41B BUG:\"\nlabels: []\nassignees"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/---feature-request.yml",
    "chars": 1888,
    "preview": "name: \"\\U0001F4A1 Feature Request\"\ndescription: 'Submit an RFC or suggest an idea for this project'\ntitle: \"\\U0001F4A1 R"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 188,
    "preview": "blank_issues_enabled: false\ncontact_links:\n  - name: 💬 Everything else\n    about: Ask questions and get help from our co"
  },
  {
    "path": ".github/ISSUE_TEMPLATE.md",
    "chars": 680,
    "preview": "<!--\n---- ⛔ STOP!\n----\n---- This project supports GitHub's new Discussions feature!\n---- Issues are handled a little bit"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "chars": 372,
    "preview": "## Changes\n\n<!-- What does this change, in plain language? -->\n<!-- Before/after screenshots may be helpful.  -->\n\n## Te"
  },
  {
    "path": ".github/workflows/format.yml",
    "chars": 685,
    "preview": "name: 'Format Code'\n\non:\n  push:\n    branches:\n      - main\n\nenv:\n  node_version: 14\n\njobs:\n  format:\n    runs-on: ubunt"
  },
  {
    "path": ".github/workflows/lint.yml",
    "chars": 457,
    "preview": "name: Lint Code\n\non:\n  push:\n    branches:\n      - main\n  pull_request:\n\nenv:\n  node_version: 14\n\njobs:\n  lint:\n    runs"
  },
  {
    "path": ".github/workflows/release.yml",
    "chars": 1226,
    "preview": "# Inspired by https://bret.io/projects/package-automation/\n\nname: Create Release\n\non:\n  workflow_dispatch:\n    inputs:\n "
  },
  {
    "path": ".github/workflows/test.yml",
    "chars": 641,
    "preview": "name: Test Code\n\non:\n  push:\n    branches:\n      - main\n  pull_request:\n\njobs:\n  test:\n    runs-on: ${{ matrix.os }}\n   "
  },
  {
    "path": ".gitignore",
    "chars": 382,
    "preview": ".DS_Store\n.build\n.idea\n.snowpack\n.vercel\nlerna-debug.log\nnode_modules\npackage-lock.json\ncreate-snowpack-app/*/build\ntest"
  },
  {
    "path": ".prettierignore",
    "chars": 149,
    "preview": "vendor\ndist\ntest/build/**/build\ncreate-snowpack-app/**/build\npackages\npkg\nTEST_BUILD_OUT\nweb_modules\ntest/create-snowpac"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 391,
    "preview": "# Changelog\n\n## Version 3.x\n\nThe CHANGELOG.md for the current 3.x version of Snowpack is maintained in the `/snowpack` d"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 3348,
    "preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, w"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 6801,
    "preview": "# Contributions Welcome!\n\nInterested in contributing? We'd love your help!\n\nIf you run into problems or find something c"
  },
  {
    "path": "LICENSE",
    "chars": 1071,
    "preview": "MIT License\n\nCopyright (c) 2019 Fred K. Schott\n\nPermission is hereby granted, free of charge, to any person obtaining a "
  },
  {
    "path": "README.md",
    "chars": 1405,
    "preview": "> **Update (April 20, 2022):** Snowpack is no longer actively maintained and is not recommended for new projects.\n> \n> C"
  },
  {
    "path": "create-snowpack-app/README.md",
    "chars": 36,
    "preview": "## 👉 [`create-snowpack-app`](./cli)\n"
  },
  {
    "path": "create-snowpack-app/app-scripts-lit-element/package.json",
    "chars": 642,
    "preview": "{\n  \"name\": \"@snowpack/app-scripts-lit-element\",\n  \"version\": \"2.0.0\",\n  \"main\": \"snowpack.config.js\",\n  \"publishConfig\""
  },
  {
    "path": "create-snowpack-app/app-scripts-lit-element/snowpack.config.js",
    "chars": 383,
    "preview": "const fs = require('fs');\nconst path = require('path');\nconst url = require('url');\n\nconst isTS = fs.existsSync(url.path"
  },
  {
    "path": "create-snowpack-app/app-scripts-lit-element/tsconfig.base.json",
    "chars": 592,
    "preview": "{\n  \"compilerOptions\": {\n    \"module\": \"esnext\",\n    \"target\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"jsx\": \"pre"
  },
  {
    "path": "create-snowpack-app/app-scripts-preact/babel.config.json",
    "chars": 311,
    "preview": "{\n  \"presets\": [\n    [\n      \"@babel/preset-react\",\n      {\n        \"pragma\": \"h\",\n        \"pragmaFrag\": \"Fragment\"\n    "
  },
  {
    "path": "create-snowpack-app/app-scripts-preact/jest/babelTransform.js",
    "chars": 650,
    "preview": "// @remove-file-on-eject\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the "
  },
  {
    "path": "create-snowpack-app/app-scripts-preact/jest/cssTransform.js",
    "chars": 547,
    "preview": "// @remove-on-eject-begin\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the"
  },
  {
    "path": "create-snowpack-app/app-scripts-preact/jest/fileTransform.js",
    "chars": 263,
    "preview": "'use strict';\nconst path = require('path');\n\nmodule.exports = {\n  process(src, filename) {\n    const assetFilename = pat"
  },
  {
    "path": "create-snowpack-app/app-scripts-preact/jest.config.js",
    "chars": 1129,
    "preview": "const fs = require('fs');\nconst path = require('path');\n\n// Use this instead of `paths.testsSetup` to avoid putting\n// a"
  },
  {
    "path": "create-snowpack-app/app-scripts-preact/package.json",
    "chars": 886,
    "preview": "{\n  \"name\": \"@snowpack/app-scripts-preact\",\n  \"version\": \"2.0.1\",\n  \"main\": \"snowpack.config.js\",\n  \"publishConfig\": {\n "
  },
  {
    "path": "create-snowpack-app/app-scripts-preact/snowpack.config.js",
    "chars": 357,
    "preview": "const fs = require('fs');\nconst path = require('path');\n\nconst cwd = process.cwd();\nconst isTS = fs.existsSync(path.join"
  },
  {
    "path": "create-snowpack-app/app-scripts-preact/tsconfig.base.json",
    "chars": 615,
    "preview": "{\n  \"compilerOptions\": {\n    \"module\": \"esnext\",\n    \"target\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"jsx\": \"pre"
  },
  {
    "path": "create-snowpack-app/app-scripts-react/babel.config.json",
    "chars": 71,
    "preview": "{\n  \"presets\": [[\"@babel/preset-react\"], \"@babel/preset-typescript\"]\n}\n"
  },
  {
    "path": "create-snowpack-app/app-scripts-react/jest/babelTransform.js",
    "chars": 606,
    "preview": "// @remove-file-on-eject\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the "
  },
  {
    "path": "create-snowpack-app/app-scripts-react/jest/cssTransform.js",
    "chars": 547,
    "preview": "// @remove-on-eject-begin\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the"
  },
  {
    "path": "create-snowpack-app/app-scripts-react/jest/esbuildTransform.js",
    "chars": 656,
    "preview": "// NOTE: THIS IS CURRENTLY DISABLED UNTIL ESBUILD SUPPORTS ESM->CJS WITHOUT BUNDLING\n// SEE: https://github.com/evanw/es"
  },
  {
    "path": "create-snowpack-app/app-scripts-react/jest/fileTransform.js",
    "chars": 263,
    "preview": "'use strict';\nconst path = require('path');\n\nmodule.exports = {\n  process(src, filename) {\n    const assetFilename = pat"
  },
  {
    "path": "create-snowpack-app/app-scripts-react/jest/importMetaBabelPlugin.js",
    "chars": 548,
    "preview": "'use strict';\n\nconst template = require('@babel/template').default;\n\n/**\n * Add import.meta.env support\n * Note: import."
  },
  {
    "path": "create-snowpack-app/app-scripts-react/jest.config.js",
    "chars": 1159,
    "preview": "const fs = require('fs');\nconst path = require('path');\n\n// Use this instead of `paths.testsSetup` to avoid putting\n// a"
  },
  {
    "path": "create-snowpack-app/app-scripts-react/package.json",
    "chars": 956,
    "preview": "{\n  \"name\": \"@snowpack/app-scripts-react\",\n  \"version\": \"2.0.1\",\n  \"main\": \"snowpack.config.js\",\n  \"publishConfig\": {\n  "
  },
  {
    "path": "create-snowpack-app/app-scripts-react/snowpack.config.js",
    "chars": 458,
    "preview": "const fs = require('fs');\nconst path = require('path');\n\nconst cwd = process.cwd();\nconst isTS = fs.existsSync(path.join"
  },
  {
    "path": "create-snowpack-app/app-scripts-react/tsconfig.base.json",
    "chars": 592,
    "preview": "{\n  \"compilerOptions\": {\n    \"module\": \"esnext\",\n    \"target\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"jsx\": \"pre"
  },
  {
    "path": "create-snowpack-app/app-scripts-svelte/jest/babelTransform.js",
    "chars": 906,
    "preview": "// @remove-file-on-eject\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the "
  },
  {
    "path": "create-snowpack-app/app-scripts-svelte/jest/importMetaBabelPlugin.js",
    "chars": 548,
    "preview": "'use strict';\n\nconst template = require('@babel/template').default;\n\n/**\n * Add import.meta.env support\n * Note: import."
  },
  {
    "path": "create-snowpack-app/app-scripts-svelte/jest.config.js",
    "chars": 1217,
    "preview": "const fs = require('fs');\nconst path = require('path');\n\n// Use this instead of `paths.testsSetup` to avoid putting\n// a"
  },
  {
    "path": "create-snowpack-app/app-scripts-svelte/package.json",
    "chars": 844,
    "preview": "{\n  \"name\": \"@snowpack/app-scripts-svelte\",\n  \"version\": \"2.0.1\",\n  \"main\": \"snowpack.config.js\",\n  \"publishConfig\": {\n "
  },
  {
    "path": "create-snowpack-app/app-scripts-svelte/snowpack.config.js",
    "chars": 168,
    "preview": "module.exports = {\n  mount: {\n    public: {url: '/', static: true},\n    src: {url: '/dist'},\n  },\n  plugins: ['@snowpack"
  },
  {
    "path": "create-snowpack-app/app-scripts-vue/package.json",
    "chars": 586,
    "preview": "{\n  \"name\": \"@snowpack/app-scripts-vue\",\n  \"version\": \"2.0.0\",\n  \"main\": \"snowpack.config.js\",\n  \"license\": \"MIT\",\n  \"ho"
  },
  {
    "path": "create-snowpack-app/app-scripts-vue/snowpack.config.js",
    "chars": 165,
    "preview": "module.exports = {\n  mount: {\n    public: {url: '/', static: true},\n    src: {url: '/dist'},\n  },\n  plugins: ['@snowpack"
  },
  {
    "path": "create-snowpack-app/app-scripts-vue/tsconfig.base.json",
    "chars": 592,
    "preview": "{\n  \"compilerOptions\": {\n    \"module\": \"esnext\",\n    \"target\": \"es2015\",\n    \"moduleResolution\": \"node\",\n    \"jsx\": \"pre"
  },
  {
    "path": "create-snowpack-app/app-template-11ty/.eleventy.js",
    "chars": 411,
    "preview": "module.exports = function (eleventyConfig) {\n  eleventyConfig.setTemplateFormats([\n    // Templates:\n    'html',\n    'nj"
  },
  {
    "path": "create-snowpack-app/app-template-11ty/.npmignore",
    "chars": 12,
    "preview": ".build\nbuild"
  },
  {
    "path": "create-snowpack-app/app-template-11ty/.prettierrc",
    "chars": 52,
    "preview": "{\n  \"singleQuote\": true,\n  \"trailingComma\": \"all\"\n}\n"
  },
  {
    "path": "create-snowpack-app/app-template-11ty/README.md",
    "chars": 819,
    "preview": "# New Project\n\n> ✨ Bootstrapped with Create Snowpack App (CSA).\n\n## Available Scripts\n\n### npm start\n\nRuns the app in th"
  },
  {
    "path": "create-snowpack-app/app-template-11ty/_includes/layouts/base.njk",
    "chars": 1893,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\" />\n    <link rel=\"icon\" href=\"/static/favicon.png\" /"
  },
  {
    "path": "create-snowpack-app/app-template-11ty/_output/about/index.html",
    "chars": 2035,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\" />\n    <link rel=\"icon\" href=\"/static/favicon.png\" /"
  },
  {
    "path": "create-snowpack-app/app-template-11ty/_output/index.html",
    "chars": 1988,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\" />\n    <link rel=\"icon\" href=\"/static/favicon.png\" /"
  },
  {
    "path": "create-snowpack-app/app-template-11ty/_output/static/index.css",
    "chars": 362,
    "preview": "body {\n  background: #222;\n  color: #eee;\n  font-family: Arial, Helvetica, sans-serif;\n  text-align: center;\n}\na {\n  col"
  },
  {
    "path": "create-snowpack-app/app-template-11ty/_template/about.md",
    "chars": 145,
    "preview": "---\nlayout: layouts/base.njk\n---\n\n# About\n\n[11ty](https://www.11ty.dev/), powered by [Snowpack](http://snowpack.dev/).\n\n"
  },
  {
    "path": "create-snowpack-app/app-template-11ty/_template/index.njk",
    "chars": 148,
    "preview": "---\nlayout: layouts/base.njk\n---\n\n<canvas id=\"canvas\"></canvas>\n<script type=\"module\" src=\"/dist/index.js\"></script>\n<a "
  },
  {
    "path": "create-snowpack-app/app-template-11ty/_template/static/index.css",
    "chars": 362,
    "preview": "body {\n  background: #222;\n  color: #eee;\n  font-family: Arial, Helvetica, sans-serif;\n  text-align: center;\n}\na {\n  col"
  },
  {
    "path": "create-snowpack-app/app-template-11ty/_template/static/robots.txt",
    "chars": 67,
    "preview": "# https://www.robotstxt.org/robotstxt.html\nUser-agent: *\nDisallow:\n"
  },
  {
    "path": "create-snowpack-app/app-template-11ty/package.json",
    "chars": 1051,
    "preview": "{\n  \"name\": \"@snowpack/app-template-11ty\",\n  \"description\": \"A preconfigured template for Snowpack with Eleventy\",\n  \"ve"
  },
  {
    "path": "create-snowpack-app/app-template-11ty/snowpack.config.mjs",
    "chars": 691,
    "preview": "/** @type {import(\"snowpack\").SnowpackUserConfig } */\nexport default {\n  mount: {\n    _output: { url: '/', static: true "
  },
  {
    "path": "create-snowpack-app/app-template-11ty/src/index.js",
    "chars": 335,
    "preview": "/**\n * This file is just a silly example to show everything working in the browser.\n * When you're ready to start on you"
  },
  {
    "path": "create-snowpack-app/app-template-blank/.npmignore",
    "chars": 12,
    "preview": ".build\nbuild"
  },
  {
    "path": "create-snowpack-app/app-template-blank/.prettierrc",
    "chars": 52,
    "preview": "{\n  \"singleQuote\": true,\n  \"trailingComma\": \"all\"\n}\n"
  },
  {
    "path": "create-snowpack-app/app-template-blank/README.md",
    "chars": 819,
    "preview": "# New Project\n\n> ✨ Bootstrapped with Create Snowpack App (CSA).\n\n## Available Scripts\n\n### npm start\n\nRuns the app in th"
  },
  {
    "path": "create-snowpack-app/app-template-blank/package.json",
    "chars": 941,
    "preview": "{\n  \"name\": \"@snowpack/app-template-blank\",\n  \"description\": \"A preconfigured template for Snowpack with Prettier\",\n  \"v"
  },
  {
    "path": "create-snowpack-app/app-template-blank/public/index.html",
    "chars": 1111,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\" />\n    <link rel=\"icon\" href=\"/favicon.ico\" />\n    <"
  },
  {
    "path": "create-snowpack-app/app-template-blank/public/robots.txt",
    "chars": 67,
    "preview": "# https://www.robotstxt.org/robotstxt.html\nUser-agent: *\nDisallow:\n"
  },
  {
    "path": "create-snowpack-app/app-template-blank/snowpack.config.mjs",
    "chars": 516,
    "preview": "/** @type {import(\"snowpack\").SnowpackUserConfig } */\nexport default {\n  mount: {\n    public: { url: '/', static: true }"
  },
  {
    "path": "create-snowpack-app/app-template-blank/src/index.css",
    "chars": 393,
    "preview": "body {\n  font-size: calc(10px + 2vmin);\n  font-family: Arial, Helvetica, sans-serif;\n}\n\n#img {\n  display: block;\n  margi"
  },
  {
    "path": "create-snowpack-app/app-template-blank/src/index.js",
    "chars": 149,
    "preview": "const counter = document.querySelector('#counter');\nlet seconds = 0;\n\nsetInterval(() => {\n  seconds += 1;\n  counter.text"
  },
  {
    "path": "create-snowpack-app/app-template-blank-typescript/.npmignore",
    "chars": 12,
    "preview": ".build\nbuild"
  },
  {
    "path": "create-snowpack-app/app-template-blank-typescript/.prettierrc",
    "chars": 52,
    "preview": "{\n  \"singleQuote\": true,\n  \"trailingComma\": \"all\"\n}\n"
  },
  {
    "path": "create-snowpack-app/app-template-blank-typescript/README.md",
    "chars": 819,
    "preview": "# New Project\n\n> ✨ Bootstrapped with Create Snowpack App (CSA).\n\n## Available Scripts\n\n### npm start\n\nRuns the app in th"
  },
  {
    "path": "create-snowpack-app/app-template-blank-typescript/package.json",
    "chars": 1096,
    "preview": "{\n  \"name\": \"@snowpack/app-template-blank-typescript\",\n  \"description\": \"A preconfigured template for Snowpack with Type"
  },
  {
    "path": "create-snowpack-app/app-template-blank-typescript/public/index.html",
    "chars": 1111,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\" />\n    <link rel=\"icon\" href=\"/favicon.ico\" />\n    <"
  },
  {
    "path": "create-snowpack-app/app-template-blank-typescript/public/robots.txt",
    "chars": 67,
    "preview": "# https://www.robotstxt.org/robotstxt.html\nUser-agent: *\nDisallow:\n"
  },
  {
    "path": "create-snowpack-app/app-template-blank-typescript/snowpack.config.mjs",
    "chars": 735,
    "preview": "/** @type {import(\"snowpack\").SnowpackUserConfig } */\nexport default {\n  mount: {\n    public: { url: '/', static: true }"
  },
  {
    "path": "create-snowpack-app/app-template-blank-typescript/src/index.css",
    "chars": 393,
    "preview": "body {\n  font-size: calc(10px + 2vmin);\n  font-family: Arial, Helvetica, sans-serif;\n}\n\n#img {\n  display: block;\n  margi"
  },
  {
    "path": "create-snowpack-app/app-template-blank-typescript/src/index.ts",
    "chars": 191,
    "preview": "const counter = document.querySelector('#counter') as HTMLSpanElement;\nlet seconds = 0;\n\nsetInterval(() => {\n  seconds +"
  },
  {
    "path": "create-snowpack-app/app-template-blank-typescript/tsconfig.json",
    "chars": 993,
    "preview": "{\n  \"include\": [\"src\", \"types\"],\n  \"compilerOptions\": {\n    \"module\": \"esnext\",\n    \"target\": \"esnext\",\n    \"moduleResol"
  },
  {
    "path": "create-snowpack-app/app-template-blank-typescript/types/static.d.ts",
    "chars": 1291,
    "preview": "/* Use this file to declare any custom file extensions for importing */\n/* Use this folder to also add/extend a package "
  },
  {
    "path": "create-snowpack-app/app-template-lit-element/.npmignore",
    "chars": 12,
    "preview": ".build\nbuild"
  },
  {
    "path": "create-snowpack-app/app-template-lit-element/.prettierrc",
    "chars": 52,
    "preview": "{\n  \"singleQuote\": true,\n  \"trailingComma\": \"all\"\n}\n"
  },
  {
    "path": "create-snowpack-app/app-template-lit-element/README.md",
    "chars": 638,
    "preview": "# New Project\n\n> ✨ Bootstrapped with Create Snowpack App (CSA).\n\n## Available Scripts\n\n### npm start\n\nRuns the app in th"
  },
  {
    "path": "create-snowpack-app/app-template-lit-element/babel.config.json",
    "chars": 169,
    "preview": "{\n  \"plugins\": [\n    [\"@babel/plugin-proposal-decorators\", { \"decoratorsBeforeExport\": true }],\n    [\"@babel/plugin-prop"
  },
  {
    "path": "create-snowpack-app/app-template-lit-element/package.json",
    "chars": 1210,
    "preview": "{\n  \"name\": \"@snowpack/app-template-lit-element\",\n  \"description\": \"A preconfigured template for Snowpack with LitElemen"
  },
  {
    "path": "create-snowpack-app/app-template-lit-element/public/index.css",
    "chars": 214,
    "preview": "body {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sa"
  },
  {
    "path": "create-snowpack-app/app-template-lit-element/public/index.html",
    "chars": 970,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\" />\n    <link rel=\"icon\" href=\"/favicon.ico\" />\n    <"
  },
  {
    "path": "create-snowpack-app/app-template-lit-element/public/robots.txt",
    "chars": 67,
    "preview": "# https://www.robotstxt.org/robotstxt.html\nUser-agent: *\nDisallow:\n"
  },
  {
    "path": "create-snowpack-app/app-template-lit-element/snowpack.config.mjs",
    "chars": 550,
    "preview": "/** @type {import(\"snowpack\").SnowpackUserConfig } */\nexport default {\n  mount: {\n    public: { url: '/', static: true }"
  },
  {
    "path": "create-snowpack-app/app-template-lit-element/src/app-root.js",
    "chars": 1024,
    "preview": "import { customElement, property, LitElement, html, css } from 'lit-element';\n\n@customElement('app-root')\nexport class A"
  },
  {
    "path": "create-snowpack-app/app-template-lit-element/src/index.js",
    "chars": 21,
    "preview": "import './app-root';\n"
  },
  {
    "path": "create-snowpack-app/app-template-lit-element-typescript/.npmignore",
    "chars": 12,
    "preview": ".build\nbuild"
  },
  {
    "path": "create-snowpack-app/app-template-lit-element-typescript/.prettierrc",
    "chars": 52,
    "preview": "{\n  \"singleQuote\": true,\n  \"trailingComma\": \"all\"\n}\n"
  },
  {
    "path": "create-snowpack-app/app-template-lit-element-typescript/README.md",
    "chars": 638,
    "preview": "# New Project\n\n> ✨ Bootstrapped with Create Snowpack App (CSA).\n\n## Available Scripts\n\n### npm start\n\nRuns the app in th"
  },
  {
    "path": "create-snowpack-app/app-template-lit-element-typescript/babel.config.json",
    "chars": 212,
    "preview": "{\n  \"presets\": [\"@babel/preset-typescript\"],\n  \"plugins\": [\n    [\"@babel/plugin-proposal-decorators\", { \"decoratorsBefor"
  },
  {
    "path": "create-snowpack-app/app-template-lit-element-typescript/package.json",
    "chars": 1411,
    "preview": "{\n  \"name\": \"@snowpack/app-template-lit-element-typescript\",\n  \"description\": \"A preconfigured template for Snowpack wit"
  },
  {
    "path": "create-snowpack-app/app-template-lit-element-typescript/public/index.css",
    "chars": 214,
    "preview": "body {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sa"
  },
  {
    "path": "create-snowpack-app/app-template-lit-element-typescript/public/index.html",
    "chars": 970,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\" />\n    <link rel=\"icon\" href=\"/favicon.ico\" />\n    <"
  },
  {
    "path": "create-snowpack-app/app-template-lit-element-typescript/public/robots.txt",
    "chars": 67,
    "preview": "# https://www.robotstxt.org/robotstxt.html\nUser-agent: *\nDisallow:\n"
  },
  {
    "path": "create-snowpack-app/app-template-lit-element-typescript/snowpack.config.mjs",
    "chars": 796,
    "preview": "/** @type {import(\"snowpack\").SnowpackUserConfig } */\nexport default {\n  mount: {\n    public: { url: '/', static: true }"
  },
  {
    "path": "create-snowpack-app/app-template-lit-element-typescript/src/app-root.ts",
    "chars": 1024,
    "preview": "import { customElement, property, LitElement, html, css } from 'lit-element';\n\n@customElement('app-root')\nexport class A"
  },
  {
    "path": "create-snowpack-app/app-template-lit-element-typescript/src/index.ts",
    "chars": 21,
    "preview": "import './app-root';\n"
  },
  {
    "path": "create-snowpack-app/app-template-lit-element-typescript/tsconfig.json",
    "chars": 978,
    "preview": "{\n  \"include\": [\"src\", \"types\"],\n  \"compilerOptions\": {\n    \"module\": \"esnext\",\n    \"target\": \"esnext\",\n    \"moduleResol"
  },
  {
    "path": "create-snowpack-app/app-template-lit-element-typescript/types/static.d.ts",
    "chars": 1291,
    "preview": "/* Use this file to declare any custom file extensions for importing */\n/* Use this folder to also add/extend a package "
  },
  {
    "path": "create-snowpack-app/app-template-minimal/README.md",
    "chars": 819,
    "preview": "# New Project\n\n> ✨ Bootstrapped with Create Snowpack App (CSA).\n\n## Available Scripts\n\n### npm start\n\nRuns the app in th"
  },
  {
    "path": "create-snowpack-app/app-template-minimal/index.css",
    "chars": 63,
    "preview": "/* Add CSS styles here! */\nbody {\n  font-family: sans-serif;\n}\n"
  },
  {
    "path": "create-snowpack-app/app-template-minimal/index.html",
    "chars": 436,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\" />\n    <meta name=\"viewport\" content=\"width=device-w"
  },
  {
    "path": "create-snowpack-app/app-template-minimal/index.js",
    "chars": 96,
    "preview": "/* Add JavaScript code here! */\nconsole.log('Hello World! You did it! Welcome to Snowpack :D');\n"
  },
  {
    "path": "create-snowpack-app/app-template-minimal/package.json",
    "chars": 710,
    "preview": "{\n  \"name\": \"@snowpack/app-template-minimal\",\n  \"description\": \"A preconfigured minimal template for Snowpack\",\n  \"versi"
  },
  {
    "path": "create-snowpack-app/app-template-minimal/snowpack.config.mjs",
    "chars": 463,
    "preview": "/** @type {import(\"snowpack\").SnowpackUserConfig } */\nexport default {\n  mount: {\n    /* ... */\n  },\n  plugins: [\n    /*"
  },
  {
    "path": "create-snowpack-app/app-template-preact/.npmignore",
    "chars": 12,
    "preview": ".build\nbuild"
  },
  {
    "path": "create-snowpack-app/app-template-preact/.prettierrc",
    "chars": 52,
    "preview": "{\n  \"singleQuote\": true,\n  \"trailingComma\": \"all\"\n}\n"
  },
  {
    "path": "create-snowpack-app/app-template-preact/README.md",
    "chars": 693,
    "preview": "# New Project\n\n> ✨ Bootstrapped with Create Snowpack App (CSA).\n\n## Available Scripts\n\n### npm start\n\nRuns the app in th"
  },
  {
    "path": "create-snowpack-app/app-template-preact/package.json",
    "chars": 1169,
    "preview": "{\n  \"name\": \"@snowpack/app-template-preact\",\n  \"description\": \"A preconfigured template for Snowpack with Preact\",\n  \"ve"
  },
  {
    "path": "create-snowpack-app/app-template-preact/public/index.html",
    "chars": 906,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\" />\n    <link rel=\"icon\" href=\"/favicon.ico\" />\n    <"
  },
  {
    "path": "create-snowpack-app/app-template-preact/public/robots.txt",
    "chars": 67,
    "preview": "# https://www.robotstxt.org/robotstxt.html\nUser-agent: *\nDisallow:\n"
  },
  {
    "path": "create-snowpack-app/app-template-preact/snowpack.config.mjs",
    "chars": 577,
    "preview": "/** @type {import(\"snowpack\").SnowpackUserConfig } */\nexport default {\n  mount: {\n    public: { url: '/', static: true }"
  },
  {
    "path": "create-snowpack-app/app-template-preact/src/App.css",
    "chars": 629,
    "preview": ".App {\n  text-align: center;\n}\n.App code {\n  background: #FFF3;\n  padding: 4px 8px;\n  border-radius: 4px;\n}\n.App p {\n  m"
  },
  {
    "path": "create-snowpack-app/app-template-preact/src/App.jsx",
    "chars": 1030,
    "preview": "import { h } from 'preact';\nimport { useState, useEffect } from 'preact/hooks';\nimport logo from './logo.png';\nimport '."
  },
  {
    "path": "create-snowpack-app/app-template-preact/src/App.test.jsx",
    "chars": 356,
    "preview": "import { h } from 'preact';\nimport { render } from '@testing-library/preact';\nimport { expect } from 'chai';\nimport App "
  },
  {
    "path": "create-snowpack-app/app-template-preact/src/index.css",
    "chars": 366,
    "preview": "body {\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n    'Ubuntu', 'Can"
  },
  {
    "path": "create-snowpack-app/app-template-preact/src/index.jsx",
    "chars": 163,
    "preview": "import { h, render } from 'preact';\nimport 'preact/devtools';\nimport App from './App.js';\nimport './index.css';\n\nrender("
  },
  {
    "path": "create-snowpack-app/app-template-preact/web-test-runner.config.js",
    "chars": 114,
    "preview": "process.env.NODE_ENV = 'test';\n\nmodule.exports = {\n  plugins: [require('@snowpack/web-test-runner-plugin')()],\n};\n"
  },
  {
    "path": "create-snowpack-app/app-template-preact-typescript/.npmignore",
    "chars": 12,
    "preview": ".build\nbuild"
  },
  {
    "path": "create-snowpack-app/app-template-preact-typescript/.prettierrc",
    "chars": 52,
    "preview": "{\n  \"singleQuote\": true,\n  \"trailingComma\": \"all\"\n}\n"
  },
  {
    "path": "create-snowpack-app/app-template-preact-typescript/README.md",
    "chars": 693,
    "preview": "# New Project\n\n> ✨ Bootstrapped with Create Snowpack App (CSA).\n\n## Available Scripts\n\n### npm start\n\nRuns the app in th"
  },
  {
    "path": "create-snowpack-app/app-template-preact-typescript/package.json",
    "chars": 1350,
    "preview": "{\n  \"name\": \"@snowpack/app-template-preact-typescript\",\n  \"description\": \"A preconfigured template for Snowpack with Pre"
  },
  {
    "path": "create-snowpack-app/app-template-preact-typescript/public/index.html",
    "chars": 906,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\" />\n    <link rel=\"icon\" href=\"/favicon.ico\" />\n    <"
  },
  {
    "path": "create-snowpack-app/app-template-preact-typescript/public/robots.txt",
    "chars": 67,
    "preview": "# https://www.robotstxt.org/robotstxt.html\nUser-agent: *\nDisallow:\n"
  },
  {
    "path": "create-snowpack-app/app-template-preact-typescript/snowpack.config.mjs",
    "chars": 792,
    "preview": "/** @type {import(\"snowpack\").SnowpackUserConfig } */\nexport default {\n  mount: {\n    public: { url: '/', static: true }"
  },
  {
    "path": "create-snowpack-app/app-template-preact-typescript/src/App.css",
    "chars": 629,
    "preview": ".App {\n  text-align: center;\n}\n.App code {\n  background: #FFF3;\n  padding: 4px 8px;\n  border-radius: 4px;\n}\n.App p {\n  m"
  },
  {
    "path": "create-snowpack-app/app-template-preact-typescript/src/App.test.tsx",
    "chars": 356,
    "preview": "import { h } from 'preact';\nimport { render } from '@testing-library/preact';\nimport { expect } from 'chai';\nimport App "
  },
  {
    "path": "create-snowpack-app/app-template-preact-typescript/src/App.tsx",
    "chars": 1030,
    "preview": "import { h } from 'preact';\nimport { useState, useEffect } from 'preact/hooks';\nimport logo from './logo.png';\nimport '."
  },
  {
    "path": "create-snowpack-app/app-template-preact-typescript/src/index.css",
    "chars": 366,
    "preview": "body {\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n    'Ubuntu', 'Can"
  },
  {
    "path": "create-snowpack-app/app-template-preact-typescript/src/index.tsx",
    "chars": 198,
    "preview": "import { h, render } from 'preact';\nimport 'preact/devtools';\nimport App from './App.js';\nimport './index.css';\n\nconst r"
  },
  {
    "path": "create-snowpack-app/app-template-preact-typescript/tsconfig.json",
    "chars": 893,
    "preview": "{\n  \"include\": [\"src\", \"types\"],\n  \"compilerOptions\": {\n    \"module\": \"esnext\",\n    \"target\": \"esnext\",\n    \"moduleResol"
  },
  {
    "path": "create-snowpack-app/app-template-preact-typescript/types/static.d.ts",
    "chars": 1291,
    "preview": "/* Use this file to declare any custom file extensions for importing */\n/* Use this folder to also add/extend a package "
  },
  {
    "path": "create-snowpack-app/app-template-preact-typescript/web-test-runner.config.js",
    "chars": 114,
    "preview": "process.env.NODE_ENV = 'test';\n\nmodule.exports = {\n  plugins: [require('@snowpack/web-test-runner-plugin')()],\n};\n"
  },
  {
    "path": "create-snowpack-app/app-template-react/.npmignore",
    "chars": 12,
    "preview": ".build\nbuild"
  },
  {
    "path": "create-snowpack-app/app-template-react/.prettierrc",
    "chars": 52,
    "preview": "{\n  \"singleQuote\": true,\n  \"trailingComma\": \"all\"\n}\n"
  },
  {
    "path": "create-snowpack-app/app-template-react/README.md",
    "chars": 680,
    "preview": "# New Project\n\n> ✨ Bootstrapped with Create Snowpack App (CSA).\n\n## Available Scripts\n\n### npm start\n\nRuns the app in th"
  },
  {
    "path": "create-snowpack-app/app-template-react/package.json",
    "chars": 1203,
    "preview": "{\n  \"name\": \"@snowpack/app-template-react\",\n  \"description\": \"A preconfigured template for Snowpack with React\",\n  \"vers"
  },
  {
    "path": "create-snowpack-app/app-template-react/public/index.html",
    "chars": 906,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\" />\n    <link rel=\"icon\" href=\"/favicon.ico\" />\n    <"
  },
  {
    "path": "create-snowpack-app/app-template-react/public/robots.txt",
    "chars": 67,
    "preview": "# https://www.robotstxt.org/robotstxt.html\nUser-agent: *\nDisallow:\n"
  },
  {
    "path": "create-snowpack-app/app-template-react/snowpack.config.mjs",
    "chars": 558,
    "preview": "/** @type {import(\"snowpack\").SnowpackUserConfig } */\nexport default {\n  mount: {\n    public: { url: '/', static: true }"
  },
  {
    "path": "create-snowpack-app/app-template-react/src/App.css",
    "chars": 669,
    "preview": ".App {\n  text-align: center;\n}\n.App code {\n  background: #FFF3;\n  padding: 4px 8px;\n  border-radius: 4px;\n}\n.App p {\n  m"
  },
  {
    "path": "create-snowpack-app/app-template-react/src/App.jsx",
    "chars": 1000,
    "preview": "import React, { useState, useEffect } from 'react';\nimport logo from './logo.svg';\nimport './App.css';\n\nfunction App() {"
  },
  {
    "path": "create-snowpack-app/app-template-react/src/App.test.jsx",
    "chars": 358,
    "preview": "import * as React from 'react';\nimport { render } from '@testing-library/react';\nimport { expect } from 'chai';\nimport A"
  },
  {
    "path": "create-snowpack-app/app-template-react/src/index.css",
    "chars": 366,
    "preview": "body {\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n    'Ubuntu', 'Can"
  },
  {
    "path": "create-snowpack-app/app-template-react/src/index.jsx",
    "chars": 419,
    "preview": "import React from 'react';\nimport ReactDOM from 'react-dom';\nimport App from './App.jsx';\nimport './index.css';\n\nReactDO"
  },
  {
    "path": "create-snowpack-app/app-template-react/web-test-runner.config.js",
    "chars": 114,
    "preview": "process.env.NODE_ENV = 'test';\n\nmodule.exports = {\n  plugins: [require('@snowpack/web-test-runner-plugin')()],\n};\n"
  },
  {
    "path": "create-snowpack-app/app-template-react-typescript/.npmignore",
    "chars": 12,
    "preview": ".build\nbuild"
  },
  {
    "path": "create-snowpack-app/app-template-react-typescript/.prettierrc",
    "chars": 52,
    "preview": "{\n  \"singleQuote\": true,\n  \"trailingComma\": \"all\"\n}\n"
  },
  {
    "path": "create-snowpack-app/app-template-react-typescript/README.md",
    "chars": 680,
    "preview": "# New Project\n\n> ✨ Bootstrapped with Create Snowpack App (CSA).\n\n## Available Scripts\n\n### npm start\n\nRuns the app in th"
  },
  {
    "path": "create-snowpack-app/app-template-react-typescript/package.json",
    "chars": 1501,
    "preview": "{\n  \"name\": \"@snowpack/app-template-react-typescript\",\n  \"description\": \"A preconfigured template for Snowpack with Reac"
  },
  {
    "path": "create-snowpack-app/app-template-react-typescript/public/index.html",
    "chars": 906,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\" />\n    <link rel=\"icon\" href=\"/favicon.ico\" />\n    <"
  },
  {
    "path": "create-snowpack-app/app-template-react-typescript/public/robots.txt",
    "chars": 67,
    "preview": "# https://www.robotstxt.org/robotstxt.html\nUser-agent: *\nDisallow:\n"
  },
  {
    "path": "create-snowpack-app/app-template-react-typescript/snowpack.config.mjs",
    "chars": 804,
    "preview": "/** @type {import(\"snowpack\").SnowpackUserConfig } */\nexport default {\n  mount: {\n    public: { url: '/', static: true }"
  },
  {
    "path": "create-snowpack-app/app-template-react-typescript/src/App.css",
    "chars": 670,
    "preview": ".App {\n  text-align: center;\n}\n.App code {\n  background: #FFF3;\n  padding: 4px 8px;\n  border-radius: 4px;\n}\n.App p {\n  m"
  },
  {
    "path": "create-snowpack-app/app-template-react-typescript/src/App.test.tsx",
    "chars": 358,
    "preview": "import * as React from 'react';\nimport { render } from '@testing-library/react';\nimport { expect } from 'chai';\nimport A"
  },
  {
    "path": "create-snowpack-app/app-template-react-typescript/src/App.tsx",
    "chars": 1035,
    "preview": "import React, { useState, useEffect } from 'react';\nimport logo from './logo.svg';\nimport './App.css';\n\ninterface AppPro"
  },
  {
    "path": "create-snowpack-app/app-template-react-typescript/src/index.css",
    "chars": 366,
    "preview": "body {\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\",\n    \"Ubuntu\", \"Can"
  },
  {
    "path": "create-snowpack-app/app-template-react-typescript/src/index.tsx",
    "chars": 411,
    "preview": "import React from 'react';\nimport ReactDOM from 'react-dom';\nimport App from './App';\nimport './index.css';\n\nReactDOM.re"
  },
  {
    "path": "create-snowpack-app/app-template-react-typescript/tsconfig.json",
    "chars": 870,
    "preview": "{\n  \"include\": [\"src\", \"types\"],\n  \"compilerOptions\": {\n    \"module\": \"esnext\",\n    \"target\": \"esnext\",\n    \"moduleResol"
  },
  {
    "path": "create-snowpack-app/app-template-react-typescript/types/static.d.ts",
    "chars": 1291,
    "preview": "/* Use this file to declare any custom file extensions for importing */\n/* Use this folder to also add/extend a package "
  },
  {
    "path": "create-snowpack-app/app-template-react-typescript/web-test-runner.config.js",
    "chars": 114,
    "preview": "process.env.NODE_ENV = 'test';\n\nmodule.exports = {\n  plugins: [require('@snowpack/web-test-runner-plugin')()],\n};\n"
  },
  {
    "path": "create-snowpack-app/app-template-svelte/.npmignore",
    "chars": 12,
    "preview": ".build\nbuild"
  },
  {
    "path": "create-snowpack-app/app-template-svelte/README.md",
    "chars": 948,
    "preview": "# New Project\n\n> ✨ Bootstrapped with Create Snowpack App (CSA).\n\n## Available Scripts\n\n### npm start\n\nRuns the app in th"
  },
  {
    "path": "create-snowpack-app/app-template-svelte/package.json",
    "chars": 1036,
    "preview": "{\n  \"name\": \"@snowpack/app-template-svelte\",\n  \"description\": \"A preconfigured template for Snowpack with Svelte\",\n  \"ve"
  },
  {
    "path": "create-snowpack-app/app-template-svelte/public/index.html",
    "chars": 880,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\" />\n    <link rel=\"icon\" href=\"/favicon.ico\" />\n    <"
  },
  {
    "path": "create-snowpack-app/app-template-svelte/public/robots.txt",
    "chars": 67,
    "preview": "# https://www.robotstxt.org/robotstxt.html\nUser-agent: *\nDisallow:\n"
  },
  {
    "path": "create-snowpack-app/app-template-svelte/snowpack.config.mjs",
    "chars": 556,
    "preview": "/** @type {import(\"snowpack\").SnowpackUserConfig } */\nexport default {\n  mount: {\n    public: {url: '/', static: true},\n"
  },
  {
    "path": "create-snowpack-app/app-template-svelte/src/App.svelte",
    "chars": 1408,
    "preview": "<script>\n  import {onMount} from 'svelte';\n  let count = 0;\n  onMount(() => {\n    const interval = setInterval(() => cou"
  },
  {
    "path": "create-snowpack-app/app-template-svelte/src/App.test.js",
    "chars": 326,
    "preview": "import {render} from '@testing-library/svelte';\nimport {expect} from 'chai';\nimport App from './App.svelte';\n\ndescribe('"
  },
  {
    "path": "create-snowpack-app/app-template-svelte/src/index.js",
    "chars": 358,
    "preview": "import App from './App.svelte';\n\nlet app = new App({\n  target: document.body,\n});\n\nexport default app;\n\n// Hot Module Re"
  },
  {
    "path": "create-snowpack-app/app-template-svelte/web-test-runner.config.js",
    "chars": 114,
    "preview": "process.env.NODE_ENV = 'test';\n\nmodule.exports = {\n  plugins: [require('@snowpack/web-test-runner-plugin')()],\n};\n"
  },
  {
    "path": "create-snowpack-app/app-template-svelte-typescript/.npmignore",
    "chars": 12,
    "preview": ".build\nbuild"
  },
  {
    "path": "create-snowpack-app/app-template-svelte-typescript/CHANGELOG.md",
    "chars": 142,
    "preview": "# @snowpack/app-template-svelte-typescript\n\n## 2.1.5\n\n### Patch Changes\n\n- fed2c940: Remove default language option as i"
  },
  {
    "path": "create-snowpack-app/app-template-svelte-typescript/README.md",
    "chars": 948,
    "preview": "# New Project\n\n> ✨ Bootstrapped with Create Snowpack App (CSA).\n\n## Available Scripts\n\n### npm start\n\nRuns the app in th"
  },
  {
    "path": "create-snowpack-app/app-template-svelte-typescript/package.json",
    "chars": 1324,
    "preview": "{\n  \"name\": \"@snowpack/app-template-svelte-typescript\",\n  \"description\": \"A preconfigured template for Snowpack with Sve"
  },
  {
    "path": "create-snowpack-app/app-template-svelte-typescript/public/index.html",
    "chars": 880,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\" />\n    <link rel=\"icon\" href=\"/favicon.ico\" />\n    <"
  },
  {
    "path": "create-snowpack-app/app-template-svelte-typescript/public/robots.txt",
    "chars": 67,
    "preview": "# https://www.robotstxt.org/robotstxt.html\nUser-agent: *\nDisallow:\n"
  },
  {
    "path": "create-snowpack-app/app-template-svelte-typescript/snowpack.config.mjs",
    "chars": 791,
    "preview": "/** @type {import(\"snowpack\").SnowpackUserConfig } */\nexport default {\n  mount: {\n    public: {url: '/', static: true},\n"
  },
  {
    "path": "create-snowpack-app/app-template-svelte-typescript/src/App.svelte",
    "chars": 1424,
    "preview": "<script lang=\"ts\">\n  import {onMount} from 'svelte'\n\n  let count: number = 0\n  onMount(() => {\n    const interval = setI"
  },
  {
    "path": "create-snowpack-app/app-template-svelte-typescript/src/App.test.ts",
    "chars": 326,
    "preview": "import {render} from '@testing-library/svelte';\nimport {expect} from 'chai';\nimport App from './App.svelte';\n\ndescribe('"
  },
  {
    "path": "create-snowpack-app/app-template-svelte-typescript/src/index.ts",
    "chars": 358,
    "preview": "import App from './App.svelte';\n\nvar app = new App({\n  target: document.body,\n});\n\nexport default app;\n\n// Hot Module Re"
  },
  {
    "path": "create-snowpack-app/app-template-svelte-typescript/svelte.config.js",
    "chars": 108,
    "preview": "const autoPreprocess = require('svelte-preprocess');\n\nmodule.exports = {\n  preprocess: autoPreprocess(),\n};\n"
  },
  {
    "path": "create-snowpack-app/app-template-svelte-typescript/tsconfig.json",
    "chars": 930,
    "preview": "{\n  \"extends\": \"@tsconfig/svelte/tsconfig.json\",\n  \"include\": [\"src\", \"types\"],\n  \"compilerOptions\": {\n    \"module\": \"es"
  },
  {
    "path": "create-snowpack-app/app-template-svelte-typescript/types/static.d.ts",
    "chars": 1281,
    "preview": "/* Use this file to declare any custom file extensions for importing */\n/* Use this folder to also add/extend a package "
  },
  {
    "path": "create-snowpack-app/app-template-svelte-typescript/web-test-runner.config.js",
    "chars": 114,
    "preview": "process.env.NODE_ENV = 'test';\n\nmodule.exports = {\n  plugins: [require('@snowpack/web-test-runner-plugin')()],\n};\n"
  },
  {
    "path": "create-snowpack-app/app-template-vue/.npmignore",
    "chars": 12,
    "preview": ".build\nbuild"
  },
  {
    "path": "create-snowpack-app/app-template-vue/README.md",
    "chars": 681,
    "preview": "# New Project\n\n> ✨ Bootstrapped with Create Snowpack App (CSA).\n\n## Available Scripts\n\n### npm start\n\nRuns the app in th"
  },
  {
    "path": "create-snowpack-app/app-template-vue/package.json",
    "chars": 909,
    "preview": "{\n  \"name\": \"@snowpack/app-template-vue\",\n  \"description\": \"A preconfigured template for Snowpack with Vue\",\n  \"version\""
  },
  {
    "path": "create-snowpack-app/app-template-vue/public/index.html",
    "chars": 940,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\" />\n    <link rel=\"icon\" type=\"image/png\" sizes=\"32x3"
  },
  {
    "path": "create-snowpack-app/app-template-vue/public/robots.txt",
    "chars": 67,
    "preview": "# https://www.robotstxt.org/robotstxt.html\nUser-agent: *\nDisallow:\n"
  }
]

// ... and 703 more files (download for full content)

About this extraction

This page contains the full source code of the FredKSchott/snowpack GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 903 files (4.6 MB), approximately 1.2M tokens, and a symbol index with 831 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!