├── .DS_Store ├── .gitignore ├── Class1 ├── .gitignore ├── .vscode │ └── extensions.json ├── README.md ├── index.html ├── package.json ├── public │ └── favicon.ico ├── src │ ├── App.vue │ ├── assets │ │ ├── base.css │ │ ├── logo.svg │ │ └── main.css │ ├── components │ │ ├── Bookings.vue │ │ ├── Color.vue │ │ ├── ColorPickerGame.vue │ │ ├── CustomFetch.vue │ │ ├── Nav.vue │ │ ├── Recap_01_02_2023.vue │ │ └── WelcomeBox.vue │ ├── composables │ │ └── book-manager.js │ ├── layouts │ │ ├── Auth.vue │ │ └── Dashboard.vue │ ├── main.js │ ├── pages │ │ ├── About.vue │ │ ├── Home.vue │ │ ├── Login.vue │ │ ├── Notfound.vue │ │ ├── Post.vue │ │ └── Posts.vue │ └── router │ │ └── index.js ├── vite.config.js └── yarn.lock └── Class2 ├── .gitignore ├── README.md ├── index.html ├── node_modules ├── .bin │ ├── esbuild │ ├── nanoid │ ├── parser │ ├── rollup │ └── vite ├── .vite │ └── deps │ │ ├── _metadata.json │ │ ├── package.json │ │ ├── vue.js │ │ └── vue.js.map ├── @babel │ └── parser │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bin │ │ └── babel-parser.js │ │ ├── index.cjs │ │ ├── lib │ │ ├── index.js │ │ └── index.js.map │ │ ├── package.json │ │ └── typings │ │ └── babel-parser.d.ts ├── @esbuild │ └── darwin-x64 │ │ ├── README.md │ │ ├── bin │ │ └── esbuild │ │ └── package.json ├── @jridgewell │ └── sourcemap-codec │ │ ├── LICENSE │ │ ├── README.md │ │ ├── dist │ │ ├── sourcemap-codec.mjs │ │ ├── sourcemap-codec.mjs.map │ │ ├── sourcemap-codec.umd.js │ │ ├── sourcemap-codec.umd.js.map │ │ └── types │ │ │ └── sourcemap-codec.d.ts │ │ └── package.json ├── @vitejs │ └── plugin-vue │ │ ├── LICENSE │ │ ├── README.md │ │ ├── dist │ │ ├── index.cjs │ │ ├── index.d.cts │ │ ├── index.d.mts │ │ ├── index.d.ts │ │ └── index.mjs │ │ └── package.json ├── @vue │ ├── compiler-core │ │ ├── LICENSE │ │ ├── README.md │ │ ├── dist │ │ │ ├── compiler-core.cjs.js │ │ │ ├── compiler-core.cjs.prod.js │ │ │ ├── compiler-core.d.ts │ │ │ └── compiler-core.esm-bundler.js │ │ ├── index.js │ │ └── package.json │ ├── compiler-dom │ │ ├── LICENSE │ │ ├── README.md │ │ ├── dist │ │ │ ├── compiler-dom.cjs.js │ │ │ ├── compiler-dom.cjs.prod.js │ │ │ ├── compiler-dom.d.ts │ │ │ ├── compiler-dom.esm-browser.js │ │ │ ├── compiler-dom.esm-browser.prod.js │ │ │ ├── compiler-dom.esm-bundler.js │ │ │ ├── compiler-dom.global.js │ │ │ └── compiler-dom.global.prod.js │ │ ├── index.js │ │ └── package.json │ ├── compiler-sfc │ │ ├── LICENSE │ │ ├── README.md │ │ ├── dist │ │ │ ├── compiler-sfc.cjs.js │ │ │ ├── compiler-sfc.d.ts │ │ │ └── compiler-sfc.esm-browser.js │ │ └── package.json │ ├── compiler-ssr │ │ ├── LICENSE │ │ ├── README.md │ │ ├── dist │ │ │ ├── compiler-ssr.cjs.js │ │ │ └── compiler-ssr.d.ts │ │ └── package.json │ ├── reactivity-transform │ │ ├── LICENSE │ │ ├── README.md │ │ ├── dist │ │ │ ├── reactivity-transform.cjs.js │ │ │ └── reactivity-transform.d.ts │ │ └── package.json │ ├── reactivity │ │ ├── LICENSE │ │ ├── README.md │ │ ├── dist │ │ │ ├── reactivity.cjs.js │ │ │ ├── reactivity.cjs.prod.js │ │ │ ├── reactivity.d.ts │ │ │ ├── reactivity.esm-browser.js │ │ │ ├── reactivity.esm-browser.prod.js │ │ │ ├── reactivity.esm-bundler.js │ │ │ ├── reactivity.global.js │ │ │ └── reactivity.global.prod.js │ │ ├── index.js │ │ └── package.json │ ├── runtime-core │ │ ├── LICENSE │ │ ├── README.md │ │ ├── dist │ │ │ ├── runtime-core.cjs.js │ │ │ ├── runtime-core.cjs.prod.js │ │ │ ├── runtime-core.d.ts │ │ │ └── runtime-core.esm-bundler.js │ │ ├── index.js │ │ └── package.json │ ├── runtime-dom │ │ ├── LICENSE │ │ ├── README.md │ │ ├── dist │ │ │ ├── runtime-dom.cjs.js │ │ │ ├── runtime-dom.cjs.prod.js │ │ │ ├── runtime-dom.d.ts │ │ │ ├── runtime-dom.esm-browser.js │ │ │ ├── runtime-dom.esm-browser.prod.js │ │ │ ├── runtime-dom.esm-bundler.js │ │ │ ├── runtime-dom.global.js │ │ │ └── runtime-dom.global.prod.js │ │ ├── index.js │ │ └── package.json │ ├── server-renderer │ │ ├── LICENSE │ │ ├── README.md │ │ ├── dist │ │ │ ├── server-renderer.cjs.js │ │ │ ├── server-renderer.cjs.prod.js │ │ │ ├── server-renderer.d.ts │ │ │ ├── server-renderer.esm-browser.js │ │ │ ├── server-renderer.esm-browser.prod.js │ │ │ └── server-renderer.esm-bundler.js │ │ ├── index.js │ │ └── package.json │ └── shared │ │ ├── LICENSE │ │ ├── README.md │ │ ├── dist │ │ ├── shared.cjs.js │ │ ├── shared.cjs.prod.js │ │ ├── shared.d.ts │ │ └── shared.esm-bundler.js │ │ ├── index.js │ │ └── package.json ├── csstype │ ├── LICENSE │ ├── README.md │ ├── index.d.ts │ ├── index.js.flow │ └── package.json ├── esbuild │ ├── LICENSE.md │ ├── README.md │ ├── bin │ │ └── esbuild │ ├── install.js │ ├── lib │ │ ├── main.d.ts │ │ └── main.js │ └── package.json ├── estree-walker │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── dist │ │ ├── esm │ │ │ ├── estree-walker.js │ │ │ └── package.json │ │ └── umd │ │ │ └── estree-walker.js │ ├── package.json │ ├── src │ │ ├── async.js │ │ ├── index.js │ │ ├── package.json │ │ ├── sync.js │ │ └── walker.js │ └── types │ │ ├── async.d.ts │ │ ├── index.d.ts │ │ ├── sync.d.ts │ │ ├── tsconfig.tsbuildinfo │ │ └── walker.d.ts ├── fsevents │ ├── LICENSE │ ├── README.md │ ├── fsevents.d.ts │ ├── fsevents.js │ ├── fsevents.node │ └── package.json ├── magic-string │ ├── LICENSE │ ├── README.md │ ├── dist │ │ ├── magic-string.cjs.d.ts │ │ ├── magic-string.cjs.js │ │ ├── magic-string.cjs.js.map │ │ ├── magic-string.es.d.mts │ │ ├── magic-string.es.mjs │ │ ├── magic-string.es.mjs.map │ │ ├── magic-string.umd.js │ │ └── magic-string.umd.js.map │ └── package.json ├── nanoid │ ├── LICENSE │ ├── README.md │ ├── async │ │ ├── index.browser.cjs │ │ ├── index.browser.js │ │ ├── index.cjs │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.native.js │ │ └── package.json │ ├── bin │ │ └── nanoid.cjs │ ├── index.browser.cjs │ ├── index.browser.js │ ├── index.cjs │ ├── index.d.cts │ ├── index.d.ts │ ├── index.js │ ├── nanoid.js │ ├── non-secure │ │ ├── index.cjs │ │ ├── index.d.ts │ │ ├── index.js │ │ └── package.json │ ├── package.json │ └── url-alphabet │ │ ├── index.cjs │ │ ├── index.js │ │ └── package.json ├── picocolors │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── picocolors.browser.js │ ├── picocolors.d.ts │ ├── picocolors.js │ └── types.ts ├── postcss │ ├── LICENSE │ ├── README.md │ ├── lib │ │ ├── at-rule.d.ts │ │ ├── at-rule.js │ │ ├── comment.d.ts │ │ ├── comment.js │ │ ├── container.d.ts │ │ ├── container.js │ │ ├── css-syntax-error.d.ts │ │ ├── css-syntax-error.js │ │ ├── declaration.d.ts │ │ ├── declaration.js │ │ ├── document.d.ts │ │ ├── document.js │ │ ├── fromJSON.d.ts │ │ ├── fromJSON.js │ │ ├── input.d.ts │ │ ├── input.js │ │ ├── lazy-result.d.ts │ │ ├── lazy-result.js │ │ ├── list.d.ts │ │ ├── list.js │ │ ├── map-generator.js │ │ ├── no-work-result.d.ts │ │ ├── no-work-result.js │ │ ├── node.d.ts │ │ ├── node.js │ │ ├── parse.d.ts │ │ ├── parse.js │ │ ├── parser.js │ │ ├── postcss.d.mts │ │ ├── postcss.d.ts │ │ ├── postcss.js │ │ ├── postcss.mjs │ │ ├── previous-map.d.ts │ │ ├── previous-map.js │ │ ├── processor.d.ts │ │ ├── processor.js │ │ ├── result.d.ts │ │ ├── result.js │ │ ├── root.d.ts │ │ ├── root.js │ │ ├── rule.d.ts │ │ ├── rule.js │ │ ├── stringifier.d.ts │ │ ├── stringifier.js │ │ ├── stringify.d.ts │ │ ├── stringify.js │ │ ├── symbols.js │ │ ├── terminal-highlight.js │ │ ├── tokenize.js │ │ ├── warn-once.js │ │ ├── warning.d.ts │ │ └── warning.js │ └── package.json ├── rollup │ ├── LICENSE.md │ ├── README.md │ ├── dist │ │ ├── bin │ │ │ └── rollup │ │ ├── es │ │ │ ├── getLogFilter.js │ │ │ ├── package.json │ │ │ ├── rollup.js │ │ │ └── shared │ │ │ │ ├── node-entry.js │ │ │ │ └── watch.js │ │ ├── getLogFilter.d.ts │ │ ├── getLogFilter.js │ │ ├── loadConfigFile.d.ts │ │ ├── loadConfigFile.js │ │ ├── rollup.d.ts │ │ ├── rollup.js │ │ └── shared │ │ │ ├── fsevents-importer.js │ │ │ ├── index.js │ │ │ ├── loadConfigFile.js │ │ │ ├── rollup.js │ │ │ ├── watch-cli.js │ │ │ ├── watch-proxy.js │ │ │ └── watch.js │ └── package.json ├── source-map-js │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── lib │ │ ├── array-set.js │ │ ├── base64-vlq.js │ │ ├── base64.js │ │ ├── binary-search.js │ │ ├── mapping-list.js │ │ ├── quick-sort.js │ │ ├── source-map-consumer.js │ │ ├── source-map-generator.js │ │ ├── source-node.js │ │ └── util.js │ ├── package.json │ ├── source-map.d.ts │ └── source-map.js ├── vite │ ├── LICENSE.md │ ├── README.md │ ├── bin │ │ ├── openChrome.applescript │ │ └── vite.js │ ├── client.d.ts │ ├── dist │ │ ├── client │ │ │ ├── client.mjs │ │ │ ├── client.mjs.map │ │ │ ├── env.mjs │ │ │ └── env.mjs.map │ │ ├── node-cjs │ │ │ └── publicUtils.cjs │ │ └── node │ │ │ ├── chunks │ │ │ ├── dep-98d4beff.js │ │ │ ├── dep-bb8a8339.js │ │ │ ├── dep-c423598f.js │ │ │ ├── dep-e4a495ce.js │ │ │ └── dep-f0c7dae0.js │ │ │ ├── cli.js │ │ │ ├── constants.js │ │ │ ├── index.d.ts │ │ │ └── index.js │ ├── index.cjs │ ├── package.json │ └── types │ │ ├── customEvent.d.ts │ │ ├── hmrPayload.d.ts │ │ ├── hot.d.ts │ │ ├── importGlob.d.ts │ │ ├── importMeta.d.ts │ │ ├── metadata.d.ts │ │ └── package.json └── vue │ ├── LICENSE │ ├── README.md │ ├── compiler-sfc │ ├── index.browser.js │ ├── index.browser.mjs │ ├── index.d.mts │ ├── index.d.ts │ ├── index.js │ ├── index.mjs │ ├── package.json │ └── register-ts.js │ ├── dist │ ├── vue.cjs.js │ ├── vue.cjs.prod.js │ ├── vue.d.mts │ ├── vue.d.ts │ ├── vue.esm-browser.js │ ├── vue.esm-browser.prod.js │ ├── vue.esm-bundler.js │ ├── vue.global.js │ ├── vue.global.prod.js │ ├── vue.runtime.esm-browser.js │ ├── vue.runtime.esm-browser.prod.js │ ├── vue.runtime.esm-bundler.js │ ├── vue.runtime.global.js │ └── vue.runtime.global.prod.js │ ├── index.js │ ├── index.mjs │ ├── jsx-runtime │ ├── index.d.ts │ ├── index.js │ ├── index.mjs │ └── package.json │ ├── jsx.d.ts │ ├── macros-global.d.ts │ ├── macros.d.ts │ ├── package.json │ ├── ref-macros.d.ts │ └── server-renderer │ ├── index.d.mts │ ├── index.d.ts │ ├── index.js │ ├── index.mjs │ └── package.json ├── package-lock.json ├── package.json ├── postcss.config.js ├── public └── vite.svg ├── src ├── App.vue ├── assets │ ├── main.css │ └── vue.svg ├── components │ ├── AnimalCard.vue │ ├── Child.vue │ ├── Counter.vue │ ├── Emits │ │ ├── Child.vue │ │ └── Parent.vue │ ├── GrandParent.vue │ ├── Inputs.vue │ ├── Parent.vue │ ├── Projects │ │ └── PokemonApiExample │ │ │ ├── composables │ │ │ ├── usePokemon.js │ │ │ └── useTodos.js │ │ │ └── index.vue │ ├── TwoWayBinding.vue │ ├── VueDirectives.vue │ ├── VueInstanceHooks.vue │ └── VueSlots.vue ├── main.js ├── pages │ ├── About.vue │ ├── Home.vue │ ├── NotFound.vue │ ├── User.vue │ ├── UserGeneric.vue │ └── Users.vue └── router │ └── index.js ├── tailwind.config.js ├── vite.config.js └── yarn.lock /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iykeevans/altschool-class-of-vue/fc9b71d650a6d898f1e0b36b5fed970d4c77bea2/.DS_Store -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /Class1/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | .DS_Store 12 | dist 13 | dist-ssr 14 | coverage 15 | *.local 16 | 17 | /cypress/videos/ 18 | /cypress/screenshots/ 19 | 20 | # Editor directories and files 21 | .vscode/* 22 | !.vscode/extensions.json 23 | .idea 24 | *.suo 25 | *.ntvs* 26 | *.njsproj 27 | *.sln 28 | *.sw? 29 | -------------------------------------------------------------------------------- /Class1/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] 3 | } 4 | -------------------------------------------------------------------------------- /Class1/README.md: -------------------------------------------------------------------------------- 1 | # alt-school-vue3 2 | 3 | This template should help get you started developing with Vue 3 in Vite. 4 | 5 | ## Recommended IDE Setup 6 | 7 | [VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin). 8 | 9 | ## Customize configuration 10 | 11 | See [Vite Configuration Reference](https://vitejs.dev/config/). 12 | 13 | ## Project Setup 14 | 15 | ```sh 16 | npm install 17 | ``` 18 | 19 | ### Compile and Hot-Reload for Development 20 | 21 | ```sh 22 | npm run dev 23 | ``` 24 | 25 | ### Compile and Minify for Production 26 | 27 | ```sh 28 | npm run build 29 | ``` 30 | -------------------------------------------------------------------------------- /Class1/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite App 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Class1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "alt-school-vue3", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "vite", 7 | "build": "vite build", 8 | "preview": "vite preview" 9 | }, 10 | "dependencies": { 11 | "vue": "^3.2.45", 12 | "vue-router": "4" 13 | }, 14 | "devDependencies": { 15 | "@vitejs/plugin-vue": "^4.0.0", 16 | "vite": "^4.0.0" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Class1/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iykeevans/altschool-class-of-vue/fc9b71d650a6d898f1e0b36b5fed970d4c77bea2/Class1/public/favicon.ico -------------------------------------------------------------------------------- /Class1/src/App.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 18 | 19 | 31 | -------------------------------------------------------------------------------- /Class1/src/assets/base.css: -------------------------------------------------------------------------------- 1 | /* color palette from */ 2 | :root { 3 | --vt-c-white: #ffffff; 4 | --vt-c-white-soft: #f8f8f8; 5 | --vt-c-white-mute: #f2f2f2; 6 | 7 | --vt-c-black: #181818; 8 | --vt-c-black-soft: #222222; 9 | --vt-c-black-mute: #282828; 10 | 11 | --vt-c-indigo: #2c3e50; 12 | 13 | --vt-c-divider-light-1: rgba(60, 60, 60, 0.29); 14 | --vt-c-divider-light-2: rgba(60, 60, 60, 0.12); 15 | --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65); 16 | --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48); 17 | 18 | --vt-c-text-light-1: var(--vt-c-indigo); 19 | --vt-c-text-light-2: rgba(60, 60, 60, 0.66); 20 | --vt-c-text-dark-1: var(--vt-c-white); 21 | --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); 22 | } 23 | 24 | /* semantic color variables for this project */ 25 | :root { 26 | --color-background: var(--vt-c-white); 27 | --color-background-soft: var(--vt-c-white-soft); 28 | --color-background-mute: var(--vt-c-white-mute); 29 | 30 | --color-border: var(--vt-c-divider-light-2); 31 | --color-border-hover: var(--vt-c-divider-light-1); 32 | 33 | --color-heading: var(--vt-c-text-light-1); 34 | --color-text: var(--vt-c-text-light-1); 35 | 36 | --section-gap: 160px; 37 | } 38 | 39 | @media (prefers-color-scheme: dark) { 40 | :root { 41 | --color-background: var(--vt-c-black); 42 | --color-background-soft: var(--vt-c-black-soft); 43 | --color-background-mute: var(--vt-c-black-mute); 44 | 45 | --color-border: var(--vt-c-divider-dark-2); 46 | --color-border-hover: var(--vt-c-divider-dark-1); 47 | 48 | --color-heading: var(--vt-c-text-dark-1); 49 | --color-text: var(--vt-c-text-dark-2); 50 | } 51 | } 52 | 53 | *, 54 | *::before, 55 | *::after { 56 | box-sizing: border-box; 57 | margin: 0; 58 | position: relative; 59 | font-weight: normal; 60 | } 61 | 62 | body { 63 | min-height: 100vh; 64 | color: var(--color-text); 65 | background: var(--color-background); 66 | transition: color 0.5s, background-color 0.5s; 67 | line-height: 1.6; 68 | font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, 69 | Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; 70 | font-size: 15px; 71 | text-rendering: optimizeLegibility; 72 | -webkit-font-smoothing: antialiased; 73 | -moz-osx-font-smoothing: grayscale; 74 | } 75 | -------------------------------------------------------------------------------- /Class1/src/assets/logo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Class1/src/assets/main.css: -------------------------------------------------------------------------------- 1 | @import './base.css'; 2 | 3 | #app { 4 | max-width: 1280px; 5 | margin: 0 auto; 6 | padding: 2rem; 7 | 8 | font-weight: normal; 9 | } 10 | 11 | a, 12 | .green { 13 | text-decoration: none; 14 | color: hsla(160, 100%, 37%, 1); 15 | transition: 0.4s; 16 | } 17 | 18 | @media (hover: hover) { 19 | a:hover { 20 | background-color: hsla(160, 100%, 37%, 0.2); 21 | } 22 | } 23 | 24 | @media (min-width: 1024px) { 25 | body { 26 | display: flex; 27 | place-items: center; 28 | } 29 | 30 | #app { 31 | display: grid; 32 | grid-template-columns: 1fr 1fr; 33 | padding: 0 2rem; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Class1/src/components/Bookings.vue: -------------------------------------------------------------------------------- 1 | 25 | 26 | 66 | 67 | 72 | -------------------------------------------------------------------------------- /Class1/src/components/Color.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Class1/src/components/ColorPickerGame.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /Class1/src/components/CustomFetch.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Class1/src/components/Nav.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /Class1/src/components/WelcomeBox.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Class1/src/composables/book-manager.js: -------------------------------------------------------------------------------- 1 | import { ref, reactive } from "@vue/reactivity"; 2 | import { onBeforeMount, onMounted, watch, watchEffect } from "vue"; 3 | 4 | const bookManager = () => { 5 | const lastName = ref(""); 6 | const book = reactive({ 7 | name: "", 8 | author: "Random Author", 9 | }); 10 | 11 | let books = ref([]); 12 | 13 | const addBook = (book) => { 14 | // books.value.push(book); 15 | books.value = [...books.value, book]; 16 | }; 17 | 18 | const removeBook = () => {}; 19 | 20 | const fetchBooks = () => { 21 | const defaultBooks = [ 22 | { name: "GooseBumps", author: "R.L Stine" }, 23 | { name: "Harry Potter", author: "J. K. Rowlings" }, 24 | ]; 25 | // get books in localStorage 26 | const storedBooks = localStorage.getItem("books"); 27 | console.log("storedBooks", storedBooks); 28 | 29 | if (storedBooks) { 30 | return (books.value = JSON.parse(storedBooks)); 31 | } 32 | 33 | books.value = defaultBooks; 34 | }; 35 | 36 | onMounted(() => { 37 | fetchBooks(); 38 | }); 39 | 40 | watch(books, (val) => { 41 | localStorage.setItem("books", JSON.stringify(books.value)); 42 | }); 43 | 44 | // watchEffect(() => { 45 | // console.log("==--===>", books); 46 | // }); 47 | 48 | return { 49 | books, 50 | book, 51 | addBook, 52 | }; 53 | }; 54 | 55 | export default bookManager; 56 | -------------------------------------------------------------------------------- /Class1/src/layouts/Auth.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Class1/src/layouts/Dashboard.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Class1/src/main.js: -------------------------------------------------------------------------------- 1 | import { createApp } from "vue"; 2 | import { createRouter, createWebHistory } from "vue-router"; 3 | import App from "./App.vue"; 4 | import router from "./router"; 5 | 6 | import "./assets/main.css"; 7 | 8 | const app = createApp(App); 9 | 10 | app.use(router); 11 | 12 | app.mount("#app"); 13 | -------------------------------------------------------------------------------- /Class1/src/pages/About.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 22 | 23 | 28 | -------------------------------------------------------------------------------- /Class1/src/pages/Home.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Class1/src/pages/Login.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /Class1/src/pages/Notfound.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Class1/src/pages/Post.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /Class1/src/pages/Posts.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /Class1/src/router/index.js: -------------------------------------------------------------------------------- 1 | //import createRouter And createWebHistory here 2 | import { createRouter, createWebHistory } from "vue-router"; 3 | 4 | //import pages here 5 | import Dashboard from "../layouts/Dashboard.vue"; 6 | import Home from "@/pages/Home.vue"; // @ --> alias references src ---> src/pages 7 | import Posts from "@/pages/Posts.vue"; 8 | import Post from "@/pages/Post.vue"; 9 | 10 | // do routes here 11 | const routes = [ 12 | { 13 | name: "Dashboard", 14 | path: "/", 15 | component: Dashboard, 16 | children: [ 17 | { 18 | name: "Home", 19 | path: "/", 20 | component: Home, 21 | }, 22 | { 23 | name: "Posts", 24 | path: "/posts", 25 | component: Posts, 26 | meta: { 27 | authIsRequired: true, 28 | }, 29 | }, 30 | { 31 | name: "Post", 32 | path: "/posts/:postId", 33 | component: Post, 34 | meta: { 35 | authIsRequired: true, 36 | }, 37 | }, 38 | ], 39 | }, 40 | { 41 | name: "Login", 42 | path: "/login", 43 | component: () => import("@/pages/Login.vue"), 44 | }, 45 | ]; 46 | 47 | // create our router 48 | const router = createRouter({ history: createWebHistory(), routes }); 49 | 50 | const isAuthenticated = () => !!localStorage.getItem("token"); 51 | 52 | const canUserAccess = (to) => { 53 | if (!isAuthenticated() && to.meta.authIsRequired && to.name !== "Login") { 54 | return false; 55 | } 56 | 57 | return true; 58 | }; 59 | 60 | router.beforeEach(async (to, from) => { 61 | const canAccess = await canUserAccess(to); 62 | 63 | if (isAuthenticated() && to.name === "Login") { 64 | return { 65 | name: "Home", 66 | }; 67 | } 68 | 69 | if (!canAccess) { 70 | return { 71 | name: "Login", 72 | }; 73 | } 74 | }); 75 | 76 | export default router; 77 | -------------------------------------------------------------------------------- /Class1/vite.config.js: -------------------------------------------------------------------------------- 1 | import { fileURLToPath, URL } from 'node:url' 2 | 3 | import { defineConfig } from 'vite' 4 | import vue from '@vitejs/plugin-vue' 5 | 6 | // https://vitejs.dev/config/ 7 | export default defineConfig({ 8 | plugins: [vue()], 9 | resolve: { 10 | alias: { 11 | '@': fileURLToPath(new URL('./src', import.meta.url)) 12 | } 13 | } 14 | }) 15 | -------------------------------------------------------------------------------- /Class2/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /Class2/README.md: -------------------------------------------------------------------------------- 1 | # Vue 3 + Vite 2 | 3 | This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 ` 12 | 13 | 14 | -------------------------------------------------------------------------------- /Class2/node_modules/.bin/esbuild: -------------------------------------------------------------------------------- 1 | ../esbuild/bin/esbuild -------------------------------------------------------------------------------- /Class2/node_modules/.bin/nanoid: -------------------------------------------------------------------------------- 1 | ../nanoid/bin/nanoid.cjs -------------------------------------------------------------------------------- /Class2/node_modules/.bin/parser: -------------------------------------------------------------------------------- 1 | ../@babel/parser/bin/babel-parser.js -------------------------------------------------------------------------------- /Class2/node_modules/.bin/rollup: -------------------------------------------------------------------------------- 1 | ../rollup/dist/bin/rollup -------------------------------------------------------------------------------- /Class2/node_modules/.bin/vite: -------------------------------------------------------------------------------- 1 | ../vite/bin/vite.js -------------------------------------------------------------------------------- /Class2/node_modules/.vite/deps/_metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "hash": "1a5db64a", 3 | "browserHash": "615aa3dc", 4 | "optimized": { 5 | "axios": { 6 | "src": "../../axios/index.js", 7 | "file": "axios.js", 8 | "fileHash": "dd1e04cd", 9 | "needsInterop": false 10 | }, 11 | "vue": { 12 | "src": "../../vue/dist/vue.runtime.esm-bundler.js", 13 | "file": "vue.js", 14 | "fileHash": "b0f4641c", 15 | "needsInterop": false 16 | }, 17 | "vue-router": { 18 | "src": "../../vue-router/dist/vue-router.mjs", 19 | "file": "vue-router.js", 20 | "fileHash": "bdcc1c90", 21 | "needsInterop": false 22 | } 23 | }, 24 | "chunks": { 25 | "chunk-FVTSMHLH": { 26 | "file": "chunk-FVTSMHLH.js" 27 | }, 28 | "chunk-SSYGV25P": { 29 | "file": "chunk-SSYGV25P.js" 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /Class2/node_modules/.vite/deps/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "module" 3 | } 4 | -------------------------------------------------------------------------------- /Class2/node_modules/.vite/deps/vue.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": [], 4 | "sourcesContent": [], 5 | "mappings": "", 6 | "names": [] 7 | } 8 | -------------------------------------------------------------------------------- /Class2/node_modules/@babel/parser/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2012-2014 by various contributors (see AUTHORS) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Class2/node_modules/@babel/parser/README.md: -------------------------------------------------------------------------------- 1 | # @babel/parser 2 | 3 | > A JavaScript parser 4 | 5 | See our website [@babel/parser](https://babeljs.io/docs/babel-parser) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20parser%22+is%3Aopen) associated with this package. 6 | 7 | ## Install 8 | 9 | Using npm: 10 | 11 | ```sh 12 | npm install --save-dev @babel/parser 13 | ``` 14 | 15 | or using yarn: 16 | 17 | ```sh 18 | yarn add @babel/parser --dev 19 | ``` 20 | -------------------------------------------------------------------------------- /Class2/node_modules/@babel/parser/bin/babel-parser.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | /* eslint no-var: 0 */ 3 | 4 | var parser = require(".."); 5 | var fs = require("fs"); 6 | 7 | var filename = process.argv[2]; 8 | if (!filename) { 9 | console.error("no filename specified"); 10 | } else { 11 | var file = fs.readFileSync(filename, "utf8"); 12 | var ast = parser.parse(file); 13 | 14 | console.log(JSON.stringify(ast, null, " ")); 15 | } 16 | -------------------------------------------------------------------------------- /Class2/node_modules/@babel/parser/index.cjs: -------------------------------------------------------------------------------- 1 | try { 2 | module.exports = require("./lib/index.cjs"); 3 | } catch { 4 | module.exports = require("./lib/index.js"); 5 | } 6 | -------------------------------------------------------------------------------- /Class2/node_modules/@babel/parser/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@babel/parser", 3 | "version": "7.23.5", 4 | "description": "A JavaScript parser", 5 | "author": "The Babel Team (https://babel.dev/team)", 6 | "homepage": "https://babel.dev/docs/en/next/babel-parser", 7 | "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A+parser+%28babylon%29%22+is%3Aopen", 8 | "license": "MIT", 9 | "publishConfig": { 10 | "access": "public" 11 | }, 12 | "keywords": [ 13 | "babel", 14 | "javascript", 15 | "parser", 16 | "tc39", 17 | "ecmascript", 18 | "@babel/parser" 19 | ], 20 | "repository": { 21 | "type": "git", 22 | "url": "https://github.com/babel/babel.git", 23 | "directory": "packages/babel-parser" 24 | }, 25 | "main": "./lib/index.js", 26 | "types": "./typings/babel-parser.d.ts", 27 | "files": [ 28 | "bin", 29 | "lib", 30 | "typings/babel-parser.d.ts", 31 | "index.cjs" 32 | ], 33 | "engines": { 34 | "node": ">=6.0.0" 35 | }, 36 | "devDependencies": { 37 | "@babel/code-frame": "^7.23.5", 38 | "@babel/helper-check-duplicate-nodes": "^7.22.5", 39 | "@babel/helper-fixtures": "^7.23.4", 40 | "@babel/helper-string-parser": "^7.23.4", 41 | "@babel/helper-validator-identifier": "^7.22.20", 42 | "charcodes": "^0.2.0" 43 | }, 44 | "bin": "./bin/babel-parser.js", 45 | "type": "commonjs" 46 | } -------------------------------------------------------------------------------- /Class2/node_modules/@esbuild/darwin-x64/README.md: -------------------------------------------------------------------------------- 1 | # esbuild 2 | 3 | This is the macOS 64-bit binary for esbuild, a JavaScript bundler and minifier. See https://github.com/evanw/esbuild for details. 4 | -------------------------------------------------------------------------------- /Class2/node_modules/@esbuild/darwin-x64/bin/esbuild: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iykeevans/altschool-class-of-vue/fc9b71d650a6d898f1e0b36b5fed970d4c77bea2/Class2/node_modules/@esbuild/darwin-x64/bin/esbuild -------------------------------------------------------------------------------- /Class2/node_modules/@esbuild/darwin-x64/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@esbuild/darwin-x64", 3 | "version": "0.18.20", 4 | "description": "The macOS 64-bit binary for esbuild, a JavaScript bundler.", 5 | "repository": "https://github.com/evanw/esbuild", 6 | "license": "MIT", 7 | "preferUnplugged": true, 8 | "engines": { 9 | "node": ">=12" 10 | }, 11 | "os": [ 12 | "darwin" 13 | ], 14 | "cpu": [ 15 | "x64" 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /Class2/node_modules/@jridgewell/sourcemap-codec/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2015 Rich Harris 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /Class2/node_modules/@jridgewell/sourcemap-codec/dist/types/sourcemap-codec.d.ts: -------------------------------------------------------------------------------- 1 | export declare type SourceMapSegment = [number] | [number, number, number, number] | [number, number, number, number, number]; 2 | export declare type SourceMapLine = SourceMapSegment[]; 3 | export declare type SourceMapMappings = SourceMapLine[]; 4 | export declare function decode(mappings: string): SourceMapMappings; 5 | export declare function encode(decoded: SourceMapMappings): string; 6 | export declare function encode(decoded: Readonly): string; 7 | -------------------------------------------------------------------------------- /Class2/node_modules/@vitejs/plugin-vue/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019-present, Yuxi (Evan) You and Vite contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Class2/node_modules/@vitejs/plugin-vue/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@vitejs/plugin-vue", 3 | "version": "4.5.0", 4 | "license": "MIT", 5 | "author": "Evan You", 6 | "files": [ 7 | "dist" 8 | ], 9 | "main": "./dist/index.cjs", 10 | "module": "./dist/index.mjs", 11 | "types": "./dist/index.d.ts", 12 | "exports": { 13 | ".": { 14 | "import": "./dist/index.mjs", 15 | "require": "./dist/index.cjs" 16 | } 17 | }, 18 | "engines": { 19 | "node": "^14.18.0 || >=16.0.0" 20 | }, 21 | "repository": { 22 | "type": "git", 23 | "url": "git+https://github.com/vitejs/vite-plugin-vue.git", 24 | "directory": "packages/plugin-vue" 25 | }, 26 | "bugs": { 27 | "url": "https://github.com/vitejs/vite-plugin-vue/issues" 28 | }, 29 | "homepage": "https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#readme", 30 | "peerDependencies": { 31 | "vite": "^4.0.0 || ^5.0.0", 32 | "vue": "^3.2.25" 33 | }, 34 | "devDependencies": { 35 | "@jridgewell/gen-mapping": "^0.3.3", 36 | "@jridgewell/trace-mapping": "^0.3.20", 37 | "debug": "^4.3.4", 38 | "rollup": "^3.29.4", 39 | "slash": "^5.1.0", 40 | "source-map-js": "^1.0.2", 41 | "vite": "^4.5.0", 42 | "vue": "^3.3.8" 43 | }, 44 | "scripts": { 45 | "dev": "unbuild --stub", 46 | "build": "unbuild && pnpm run patch-cjs", 47 | "patch-cjs": "tsx ../../scripts/patchCJS.ts" 48 | } 49 | } -------------------------------------------------------------------------------- /Class2/node_modules/@vue/compiler-core/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2018-present, Yuxi (Evan) You 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /Class2/node_modules/@vue/compiler-core/README.md: -------------------------------------------------------------------------------- 1 | # @vue/compiler-core 2 | -------------------------------------------------------------------------------- /Class2/node_modules/@vue/compiler-core/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./dist/compiler-core.cjs.prod.js') 5 | } else { 6 | module.exports = require('./dist/compiler-core.cjs.js') 7 | } 8 | -------------------------------------------------------------------------------- /Class2/node_modules/@vue/compiler-core/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@vue/compiler-core", 3 | "version": "3.3.9", 4 | "description": "@vue/compiler-core", 5 | "main": "index.js", 6 | "module": "dist/compiler-core.esm-bundler.js", 7 | "types": "dist/compiler-core.d.ts", 8 | "files": [ 9 | "index.js", 10 | "dist" 11 | ], 12 | "buildOptions": { 13 | "name": "VueCompilerCore", 14 | "compat": true, 15 | "formats": [ 16 | "esm-bundler", 17 | "cjs" 18 | ] 19 | }, 20 | "repository": { 21 | "type": "git", 22 | "url": "git+https://github.com/vuejs/core.git", 23 | "directory": "packages/compiler-core" 24 | }, 25 | "keywords": [ 26 | "vue" 27 | ], 28 | "author": "Evan You", 29 | "license": "MIT", 30 | "bugs": { 31 | "url": "https://github.com/vuejs/core/issues" 32 | }, 33 | "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-core#readme", 34 | "dependencies": { 35 | "@babel/parser": "^7.23.3", 36 | "estree-walker": "^2.0.2", 37 | "source-map-js": "^1.0.2", 38 | "@vue/shared": "3.3.9" 39 | }, 40 | "devDependencies": { 41 | "@babel/types": "^7.23.3" 42 | } 43 | } -------------------------------------------------------------------------------- /Class2/node_modules/@vue/compiler-dom/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2018-present, Yuxi (Evan) You 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /Class2/node_modules/@vue/compiler-dom/README.md: -------------------------------------------------------------------------------- 1 | # @vue/compiler-dom -------------------------------------------------------------------------------- /Class2/node_modules/@vue/compiler-dom/dist/compiler-dom.d.ts: -------------------------------------------------------------------------------- 1 | import { ParserOptions, NodeTransform, SourceLocation, CompilerError, DirectiveTransform, CompilerOptions, CodegenResult, RootNode } from '@vue/compiler-core'; 2 | export * from '@vue/compiler-core'; 3 | 4 | export declare const parserOptions: ParserOptions; 5 | 6 | export declare const V_MODEL_RADIO: unique symbol; 7 | export declare const V_MODEL_CHECKBOX: unique symbol; 8 | export declare const V_MODEL_TEXT: unique symbol; 9 | export declare const V_MODEL_SELECT: unique symbol; 10 | export declare const V_MODEL_DYNAMIC: unique symbol; 11 | export declare const V_ON_WITH_MODIFIERS: unique symbol; 12 | export declare const V_ON_WITH_KEYS: unique symbol; 13 | export declare const V_SHOW: unique symbol; 14 | export declare const TRANSITION: unique symbol; 15 | export declare const TRANSITION_GROUP: unique symbol; 16 | 17 | export declare const transformStyle: NodeTransform; 18 | 19 | interface DOMCompilerError extends CompilerError { 20 | code: DOMErrorCodes; 21 | } 22 | export declare function createDOMCompilerError(code: DOMErrorCodes, loc?: SourceLocation): DOMCompilerError; 23 | export declare const enum DOMErrorCodes { 24 | X_V_HTML_NO_EXPRESSION = 53, 25 | X_V_HTML_WITH_CHILDREN = 54, 26 | X_V_TEXT_NO_EXPRESSION = 55, 27 | X_V_TEXT_WITH_CHILDREN = 56, 28 | X_V_MODEL_ON_INVALID_ELEMENT = 57, 29 | X_V_MODEL_ARG_ON_ELEMENT = 58, 30 | X_V_MODEL_ON_FILE_INPUT_ELEMENT = 59, 31 | X_V_MODEL_UNNECESSARY_VALUE = 60, 32 | X_V_SHOW_NO_EXPRESSION = 61, 33 | X_TRANSITION_INVALID_CHILDREN = 62, 34 | X_IGNORED_SIDE_EFFECT_TAG = 63, 35 | __EXTEND_POINT__ = 64 36 | } 37 | 38 | export declare const DOMNodeTransforms: NodeTransform[]; 39 | export declare const DOMDirectiveTransforms: Record; 40 | export declare function compile(template: string, options?: CompilerOptions): CodegenResult; 41 | export declare function parse(template: string, options?: ParserOptions): RootNode; 42 | 43 | -------------------------------------------------------------------------------- /Class2/node_modules/@vue/compiler-dom/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./dist/compiler-dom.cjs.prod.js') 5 | } else { 6 | module.exports = require('./dist/compiler-dom.cjs.js') 7 | } 8 | -------------------------------------------------------------------------------- /Class2/node_modules/@vue/compiler-dom/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@vue/compiler-dom", 3 | "version": "3.3.9", 4 | "description": "@vue/compiler-dom", 5 | "main": "index.js", 6 | "module": "dist/compiler-dom.esm-bundler.js", 7 | "types": "dist/compiler-dom.d.ts", 8 | "unpkg": "dist/compiler-dom.global.js", 9 | "jsdelivr": "dist/compiler-dom.global.js", 10 | "files": [ 11 | "index.js", 12 | "dist" 13 | ], 14 | "sideEffects": false, 15 | "buildOptions": { 16 | "name": "VueCompilerDOM", 17 | "compat": true, 18 | "formats": [ 19 | "esm-bundler", 20 | "esm-browser", 21 | "cjs", 22 | "global" 23 | ] 24 | }, 25 | "repository": { 26 | "type": "git", 27 | "url": "git+https://github.com/vuejs/core.git", 28 | "directory": "packages/compiler-dom" 29 | }, 30 | "keywords": [ 31 | "vue" 32 | ], 33 | "author": "Evan You", 34 | "license": "MIT", 35 | "bugs": { 36 | "url": "https://github.com/vuejs/core/issues" 37 | }, 38 | "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-dom#readme", 39 | "dependencies": { 40 | "@vue/shared": "3.3.9", 41 | "@vue/compiler-core": "3.3.9" 42 | } 43 | } -------------------------------------------------------------------------------- /Class2/node_modules/@vue/compiler-sfc/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2018-present, Yuxi (Evan) You 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /Class2/node_modules/@vue/compiler-sfc/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@vue/compiler-sfc", 3 | "version": "3.3.9", 4 | "description": "@vue/compiler-sfc", 5 | "main": "dist/compiler-sfc.cjs.js", 6 | "module": "dist/compiler-sfc.esm-browser.js", 7 | "types": "dist/compiler-sfc.d.ts", 8 | "files": [ 9 | "dist" 10 | ], 11 | "buildOptions": { 12 | "name": "VueCompilerSFC", 13 | "formats": [ 14 | "cjs", 15 | "esm-browser" 16 | ], 17 | "prod": false, 18 | "enableNonBrowserBranches": true 19 | }, 20 | "repository": { 21 | "type": "git", 22 | "url": "git+https://github.com/vuejs/core.git", 23 | "directory": "packages/compiler-sfc" 24 | }, 25 | "keywords": [ 26 | "vue" 27 | ], 28 | "author": "Evan You", 29 | "license": "MIT", 30 | "bugs": { 31 | "url": "https://github.com/vuejs/core/issues" 32 | }, 33 | "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-sfc#readme", 34 | "dependencies": { 35 | "@babel/parser": "^7.23.3", 36 | "estree-walker": "^2.0.2", 37 | "magic-string": "^0.30.5", 38 | "postcss": "^8.4.31", 39 | "source-map-js": "^1.0.2", 40 | "@vue/compiler-core": "3.3.9", 41 | "@vue/compiler-dom": "3.3.9", 42 | "@vue/reactivity-transform": "3.3.9", 43 | "@vue/shared": "3.3.9", 44 | "@vue/compiler-ssr": "3.3.9" 45 | }, 46 | "devDependencies": { 47 | "@babel/types": "^7.23.3", 48 | "@vue/consolidate": "^0.17.3", 49 | "hash-sum": "^2.0.0", 50 | "lru-cache": "^10.0.3", 51 | "merge-source-map": "^1.1.0", 52 | "minimatch": "^9.0.3", 53 | "postcss-modules": "^4.3.1", 54 | "postcss-selector-parser": "^6.0.13", 55 | "pug": "^3.0.2", 56 | "sass": "^1.69.5" 57 | } 58 | } -------------------------------------------------------------------------------- /Class2/node_modules/@vue/compiler-ssr/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2018-present, Yuxi (Evan) You 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /Class2/node_modules/@vue/compiler-ssr/README.md: -------------------------------------------------------------------------------- 1 | # @vue/compiler-ssr -------------------------------------------------------------------------------- /Class2/node_modules/@vue/compiler-ssr/dist/compiler-ssr.d.ts: -------------------------------------------------------------------------------- 1 | import { CompilerOptions, CodegenResult } from '@vue/compiler-dom'; 2 | 3 | export declare function compile(template: string, options?: CompilerOptions): CodegenResult; 4 | 5 | -------------------------------------------------------------------------------- /Class2/node_modules/@vue/compiler-ssr/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@vue/compiler-ssr", 3 | "version": "3.3.9", 4 | "description": "@vue/compiler-ssr", 5 | "main": "dist/compiler-ssr.cjs.js", 6 | "types": "dist/compiler-ssr.d.ts", 7 | "files": [ 8 | "dist" 9 | ], 10 | "buildOptions": { 11 | "prod": false, 12 | "formats": [ 13 | "cjs" 14 | ] 15 | }, 16 | "repository": { 17 | "type": "git", 18 | "url": "git+https://github.com/vuejs/core.git", 19 | "directory": "packages/compiler-ssr" 20 | }, 21 | "keywords": [ 22 | "vue" 23 | ], 24 | "author": "Evan You", 25 | "license": "MIT", 26 | "bugs": { 27 | "url": "https://github.com/vuejs/core/issues" 28 | }, 29 | "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-ssr#readme", 30 | "dependencies": { 31 | "@vue/shared": "3.3.9", 32 | "@vue/compiler-dom": "3.3.9" 33 | } 34 | } -------------------------------------------------------------------------------- /Class2/node_modules/@vue/reactivity-transform/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2018-present, Yuxi (Evan) You 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /Class2/node_modules/@vue/reactivity-transform/dist/reactivity-transform.d.ts: -------------------------------------------------------------------------------- 1 | import { ImportSpecifier, ImportDefaultSpecifier, ImportNamespaceSpecifier, Program } from '@babel/types'; 2 | import MagicString, { SourceMap } from 'magic-string'; 3 | import { ParserPlugin } from '@babel/parser'; 4 | 5 | /** 6 | * @deprecated will be removed in 3.4 7 | */ 8 | export declare function shouldTransform(src: string): boolean; 9 | export interface RefTransformOptions { 10 | filename?: string; 11 | sourceMap?: boolean; 12 | parserPlugins?: ParserPlugin[]; 13 | importHelpersFrom?: string; 14 | } 15 | export interface RefTransformResults { 16 | code: string; 17 | map: SourceMap | null; 18 | rootRefs: string[]; 19 | importedHelpers: string[]; 20 | } 21 | export interface ImportBinding { 22 | local: string; 23 | imported: string; 24 | source: string; 25 | specifier: ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier; 26 | } 27 | /** 28 | * @deprecated will be removed in 3.4 29 | */ 30 | export declare function transform(src: string, { filename, sourceMap, parserPlugins, importHelpersFrom }?: RefTransformOptions): RefTransformResults; 31 | /** 32 | * @deprecated will be removed in 3.4 33 | */ 34 | export declare function transformAST(ast: Program, s: MagicString, offset?: number, knownRefs?: string[], knownProps?: Record): { 40 | rootRefs: string[]; 41 | importedHelpers: string[]; 42 | }; 43 | 44 | -------------------------------------------------------------------------------- /Class2/node_modules/@vue/reactivity-transform/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@vue/reactivity-transform", 3 | "version": "3.3.9", 4 | "description": "@vue/reactivity-transform", 5 | "main": "dist/reactivity-transform.cjs.js", 6 | "files": [ 7 | "dist" 8 | ], 9 | "buildOptions": { 10 | "formats": [ 11 | "cjs" 12 | ], 13 | "prod": false 14 | }, 15 | "types": "dist/reactivity-transform.d.ts", 16 | "repository": { 17 | "type": "git", 18 | "url": "git+https://github.com/vuejs/core.git", 19 | "directory": "packages/reactivity-transform" 20 | }, 21 | "keywords": [ 22 | "vue" 23 | ], 24 | "author": "Evan You", 25 | "license": "MIT", 26 | "bugs": { 27 | "url": "https://github.com/vuejs/core/issues" 28 | }, 29 | "homepage": "https://github.com/vuejs/core/tree/dev/packages/reactivity-transform#readme", 30 | "dependencies": { 31 | "@babel/parser": "^7.23.3", 32 | "estree-walker": "^2.0.2", 33 | "magic-string": "^0.30.5", 34 | "@vue/compiler-core": "3.3.9", 35 | "@vue/shared": "3.3.9" 36 | }, 37 | "devDependencies": { 38 | "@babel/core": "^7.23.3", 39 | "@babel/types": "^7.23.3" 40 | } 41 | } -------------------------------------------------------------------------------- /Class2/node_modules/@vue/reactivity/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2018-present, Yuxi (Evan) You 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /Class2/node_modules/@vue/reactivity/README.md: -------------------------------------------------------------------------------- 1 | # @vue/reactivity 2 | 3 | ## Usage Note 4 | 5 | This package is inlined into Global & Browser ESM builds of user-facing renderers (e.g. `@vue/runtime-dom`), but also published as a package that can be used standalone. The standalone build should not be used alongside a pre-bundled build of a user-facing renderer, as they will have different internal storage for reactivity connections. A user-facing renderer should re-export all APIs from this package. 6 | 7 | For full exposed APIs, see `src/index.ts`. 8 | 9 | ## Credits 10 | 11 | The implementation of this module is inspired by the following prior art in the JavaScript ecosystem: 12 | 13 | - [Meteor Tracker](https://docs.meteor.com/api/tracker.html) 14 | - [nx-js/observer-util](https://github.com/nx-js/observer-util) 15 | - [salesforce/observable-membrane](https://github.com/salesforce/observable-membrane) 16 | 17 | ## Caveats 18 | 19 | - Built-in objects are not observed except for `Array`, `Map`, `WeakMap`, `Set` and `WeakSet`. 20 | -------------------------------------------------------------------------------- /Class2/node_modules/@vue/reactivity/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./dist/reactivity.cjs.prod.js') 5 | } else { 6 | module.exports = require('./dist/reactivity.cjs.js') 7 | } 8 | -------------------------------------------------------------------------------- /Class2/node_modules/@vue/reactivity/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@vue/reactivity", 3 | "version": "3.3.9", 4 | "description": "@vue/reactivity", 5 | "main": "index.js", 6 | "module": "dist/reactivity.esm-bundler.js", 7 | "types": "dist/reactivity.d.ts", 8 | "unpkg": "dist/reactivity.global.js", 9 | "jsdelivr": "dist/reactivity.global.js", 10 | "files": [ 11 | "index.js", 12 | "dist" 13 | ], 14 | "sideEffects": false, 15 | "repository": { 16 | "type": "git", 17 | "url": "git+https://github.com/vuejs/core.git", 18 | "directory": "packages/reactivity" 19 | }, 20 | "buildOptions": { 21 | "name": "VueReactivity", 22 | "formats": [ 23 | "esm-bundler", 24 | "esm-browser", 25 | "cjs", 26 | "global" 27 | ] 28 | }, 29 | "keywords": [ 30 | "vue" 31 | ], 32 | "author": "Evan You", 33 | "license": "MIT", 34 | "bugs": { 35 | "url": "https://github.com/vuejs/core/issues" 36 | }, 37 | "homepage": "https://github.com/vuejs/core/tree/main/packages/reactivity#readme", 38 | "dependencies": { 39 | "@vue/shared": "3.3.9" 40 | } 41 | } -------------------------------------------------------------------------------- /Class2/node_modules/@vue/runtime-core/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2018-present, Yuxi (Evan) You 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /Class2/node_modules/@vue/runtime-core/README.md: -------------------------------------------------------------------------------- 1 | # @vue/runtime-core 2 | 3 | > This package is published only for typing and building custom renderers. It is NOT meant to be used in applications. 4 | 5 | For full exposed APIs, see `src/index.ts`. 6 | 7 | ## Building a Custom Renderer 8 | 9 | ```ts 10 | import { createRenderer } from '@vue/runtime-core' 11 | 12 | const { render, createApp } = createRenderer({ 13 | patchProp, 14 | insert, 15 | remove, 16 | createElement 17 | // ... 18 | }) 19 | 20 | // `render` is the low-level API 21 | // `createApp` returns an app instance with configurable context shared 22 | // by the entire app tree. 23 | export { render, createApp } 24 | 25 | export * from '@vue/runtime-core' 26 | ``` 27 | 28 | See `@vue/runtime-dom` for how a DOM-targeting renderer is implemented. 29 | -------------------------------------------------------------------------------- /Class2/node_modules/@vue/runtime-core/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./dist/runtime-core.cjs.prod.js') 5 | } else { 6 | module.exports = require('./dist/runtime-core.cjs.js') 7 | } 8 | -------------------------------------------------------------------------------- /Class2/node_modules/@vue/runtime-core/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@vue/runtime-core", 3 | "version": "3.3.9", 4 | "description": "@vue/runtime-core", 5 | "main": "index.js", 6 | "module": "dist/runtime-core.esm-bundler.js", 7 | "types": "dist/runtime-core.d.ts", 8 | "files": [ 9 | "index.js", 10 | "dist" 11 | ], 12 | "buildOptions": { 13 | "name": "VueRuntimeCore", 14 | "formats": [ 15 | "esm-bundler", 16 | "cjs" 17 | ] 18 | }, 19 | "sideEffects": false, 20 | "repository": { 21 | "type": "git", 22 | "url": "git+https://github.com/vuejs/core.git", 23 | "directory": "packages/runtime-core" 24 | }, 25 | "keywords": [ 26 | "vue" 27 | ], 28 | "author": "Evan You", 29 | "license": "MIT", 30 | "bugs": { 31 | "url": "https://github.com/vuejs/core/issues" 32 | }, 33 | "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-core#readme", 34 | "dependencies": { 35 | "@vue/shared": "3.3.9", 36 | "@vue/reactivity": "3.3.9" 37 | } 38 | } -------------------------------------------------------------------------------- /Class2/node_modules/@vue/runtime-dom/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2018-present, Yuxi (Evan) You 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /Class2/node_modules/@vue/runtime-dom/README.md: -------------------------------------------------------------------------------- 1 | # @vue/runtime-dom 2 | 3 | ``` js 4 | import { h, createApp } from '@vue/runtime-dom' 5 | 6 | const RootComponent = { 7 | render() { 8 | return h('div', 'hello world') 9 | } 10 | } 11 | 12 | createApp(RootComponent).mount('#app') 13 | ``` 14 | -------------------------------------------------------------------------------- /Class2/node_modules/@vue/runtime-dom/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./dist/runtime-dom.cjs.prod.js') 5 | } else { 6 | module.exports = require('./dist/runtime-dom.cjs.js') 7 | } 8 | -------------------------------------------------------------------------------- /Class2/node_modules/@vue/runtime-dom/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@vue/runtime-dom", 3 | "version": "3.3.9", 4 | "description": "@vue/runtime-dom", 5 | "main": "index.js", 6 | "module": "dist/runtime-dom.esm-bundler.js", 7 | "types": "dist/runtime-dom.d.ts", 8 | "unpkg": "dist/runtime-dom.global.js", 9 | "files": [ 10 | "index.js", 11 | "dist" 12 | ], 13 | "sideEffects": false, 14 | "buildOptions": { 15 | "name": "VueRuntimeDOM", 16 | "formats": [ 17 | "esm-bundler", 18 | "esm-browser", 19 | "cjs", 20 | "global" 21 | ] 22 | }, 23 | "repository": { 24 | "type": "git", 25 | "url": "git+https://github.com/vuejs/core.git", 26 | "directory": "packages/runtime-dom" 27 | }, 28 | "keywords": [ 29 | "vue" 30 | ], 31 | "author": "Evan You", 32 | "license": "MIT", 33 | "bugs": { 34 | "url": "https://github.com/vuejs/core/issues" 35 | }, 36 | "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-dom#readme", 37 | "dependencies": { 38 | "csstype": "^3.1.2", 39 | "@vue/shared": "3.3.9", 40 | "@vue/runtime-core": "3.3.9" 41 | } 42 | } -------------------------------------------------------------------------------- /Class2/node_modules/@vue/server-renderer/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2018-present, Yuxi (Evan) You 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /Class2/node_modules/@vue/server-renderer/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./dist/server-renderer.cjs.prod.js') 5 | } else { 6 | module.exports = require('./dist/server-renderer.cjs.js') 7 | } 8 | -------------------------------------------------------------------------------- /Class2/node_modules/@vue/server-renderer/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@vue/server-renderer", 3 | "version": "3.3.9", 4 | "description": "@vue/server-renderer", 5 | "main": "index.js", 6 | "module": "dist/server-renderer.esm-bundler.js", 7 | "types": "dist/server-renderer.d.ts", 8 | "files": [ 9 | "index.js", 10 | "dist" 11 | ], 12 | "buildOptions": { 13 | "name": "VueServerRenderer", 14 | "formats": [ 15 | "esm-bundler", 16 | "esm-browser", 17 | "cjs" 18 | ] 19 | }, 20 | "repository": { 21 | "type": "git", 22 | "url": "git+https://github.com/vuejs/core.git", 23 | "directory": "packages/server-renderer" 24 | }, 25 | "keywords": [ 26 | "vue" 27 | ], 28 | "author": "Evan You", 29 | "license": "MIT", 30 | "bugs": { 31 | "url": "https://github.com/vuejs/core/issues" 32 | }, 33 | "homepage": "https://github.com/vuejs/core/tree/main/packages/server-renderer#readme", 34 | "peerDependencies": { 35 | "vue": "3.3.9" 36 | }, 37 | "dependencies": { 38 | "@vue/compiler-ssr": "3.3.9", 39 | "@vue/shared": "3.3.9" 40 | } 41 | } -------------------------------------------------------------------------------- /Class2/node_modules/@vue/shared/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2018-present, Yuxi (Evan) You 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /Class2/node_modules/@vue/shared/README.md: -------------------------------------------------------------------------------- 1 | # @vue/shared 2 | 3 | Internal utility functions and constants shared across `@vue` packages. 4 | -------------------------------------------------------------------------------- /Class2/node_modules/@vue/shared/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./dist/shared.cjs.prod.js') 5 | } else { 6 | module.exports = require('./dist/shared.cjs.js') 7 | } 8 | -------------------------------------------------------------------------------- /Class2/node_modules/@vue/shared/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@vue/shared", 3 | "version": "3.3.9", 4 | "description": "internal utils shared across @vue packages", 5 | "main": "index.js", 6 | "module": "dist/shared.esm-bundler.js", 7 | "types": "dist/shared.d.ts", 8 | "files": [ 9 | "index.js", 10 | "dist" 11 | ], 12 | "sideEffects": false, 13 | "buildOptions": { 14 | "formats": [ 15 | "esm-bundler", 16 | "cjs" 17 | ] 18 | }, 19 | "repository": { 20 | "type": "git", 21 | "url": "git+https://github.com/vuejs/core.git", 22 | "directory": "packages/shared" 23 | }, 24 | "keywords": [ 25 | "vue" 26 | ], 27 | "author": "Evan You", 28 | "license": "MIT", 29 | "bugs": { 30 | "url": "https://github.com/vuejs/core/issues" 31 | }, 32 | "homepage": "https://github.com/vuejs/core/tree/main/packages/shared#readme" 33 | } -------------------------------------------------------------------------------- /Class2/node_modules/csstype/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2017-2018 Fredrik Nicol 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | -------------------------------------------------------------------------------- /Class2/node_modules/esbuild/LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Evan Wallace 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Class2/node_modules/esbuild/README.md: -------------------------------------------------------------------------------- 1 | # esbuild 2 | 3 | This is a JavaScript bundler and minifier. See https://github.com/evanw/esbuild and the [JavaScript API documentation](https://esbuild.github.io/api/) for details. 4 | -------------------------------------------------------------------------------- /Class2/node_modules/esbuild/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "esbuild", 3 | "version": "0.18.20", 4 | "description": "An extremely fast JavaScript and CSS bundler and minifier.", 5 | "repository": "https://github.com/evanw/esbuild", 6 | "scripts": { 7 | "postinstall": "node install.js" 8 | }, 9 | "main": "lib/main.js", 10 | "types": "lib/main.d.ts", 11 | "engines": { 12 | "node": ">=12" 13 | }, 14 | "bin": { 15 | "esbuild": "bin/esbuild" 16 | }, 17 | "optionalDependencies": { 18 | "@esbuild/android-arm": "0.18.20", 19 | "@esbuild/android-arm64": "0.18.20", 20 | "@esbuild/android-x64": "0.18.20", 21 | "@esbuild/darwin-arm64": "0.18.20", 22 | "@esbuild/darwin-x64": "0.18.20", 23 | "@esbuild/freebsd-arm64": "0.18.20", 24 | "@esbuild/freebsd-x64": "0.18.20", 25 | "@esbuild/linux-arm": "0.18.20", 26 | "@esbuild/linux-arm64": "0.18.20", 27 | "@esbuild/linux-ia32": "0.18.20", 28 | "@esbuild/linux-loong64": "0.18.20", 29 | "@esbuild/linux-mips64el": "0.18.20", 30 | "@esbuild/linux-ppc64": "0.18.20", 31 | "@esbuild/linux-riscv64": "0.18.20", 32 | "@esbuild/linux-s390x": "0.18.20", 33 | "@esbuild/linux-x64": "0.18.20", 34 | "@esbuild/netbsd-x64": "0.18.20", 35 | "@esbuild/openbsd-x64": "0.18.20", 36 | "@esbuild/sunos-x64": "0.18.20", 37 | "@esbuild/win32-arm64": "0.18.20", 38 | "@esbuild/win32-ia32": "0.18.20", 39 | "@esbuild/win32-x64": "0.18.20" 40 | }, 41 | "license": "MIT" 42 | } 43 | -------------------------------------------------------------------------------- /Class2/node_modules/estree-walker/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # changelog 2 | 3 | ## 2.0.2 4 | 5 | * Internal tidying up (change test runner, convert to JS) 6 | 7 | ## 2.0.1 8 | 9 | * Robustify `this.remove()`, pass current index to walker functions ([#18](https://github.com/Rich-Harris/estree-walker/pull/18)) 10 | 11 | ## 2.0.0 12 | 13 | * Add an `asyncWalk` export ([#20](https://github.com/Rich-Harris/estree-walker/pull/20)) 14 | * Internal rewrite 15 | 16 | ## 1.0.1 17 | 18 | * Relax node type to `BaseNode` ([#17](https://github.com/Rich-Harris/estree-walker/pull/17)) 19 | 20 | ## 1.0.0 21 | 22 | * Don't cache child keys 23 | 24 | ## 0.9.0 25 | 26 | * Add `this.remove()` method 27 | 28 | ## 0.8.1 29 | 30 | * Fix pkg.files 31 | 32 | ## 0.8.0 33 | 34 | * Adopt `estree` types 35 | 36 | ## 0.7.0 37 | 38 | * Add a `this.replace(node)` method 39 | 40 | ## 0.6.1 41 | 42 | * Only traverse nodes that exist and have a type ([#9](https://github.com/Rich-Harris/estree-walker/pull/9)) 43 | * Only cache keys for nodes with a type ([#8](https://github.com/Rich-Harris/estree-walker/pull/8)) 44 | 45 | ## 0.6.0 46 | 47 | * Fix walker context type 48 | * Update deps, remove unncessary Bublé transformation 49 | 50 | ## 0.5.2 51 | 52 | * Add types to package 53 | 54 | ## 0.5.1 55 | 56 | * Prevent context corruption when `walk()` is called during a walk 57 | 58 | ## 0.5.0 59 | 60 | * Export `childKeys`, for manually fixing in case of malformed ASTs 61 | 62 | ## 0.4.0 63 | 64 | * Add TypeScript typings ([#3](https://github.com/Rich-Harris/estree-walker/pull/3)) 65 | 66 | ## 0.3.1 67 | 68 | * Include `pkg.repository` ([#2](https://github.com/Rich-Harris/estree-walker/pull/2)) 69 | 70 | ## 0.3.0 71 | 72 | * More predictable ordering 73 | 74 | ## 0.2.1 75 | 76 | * Keep `context` shape 77 | 78 | ## 0.2.0 79 | 80 | * Add ES6 build 81 | 82 | ## 0.1.3 83 | 84 | * npm snafu 85 | 86 | ## 0.1.2 87 | 88 | * Pass current prop and index to `enter`/`leave` callbacks 89 | 90 | ## 0.1.1 91 | 92 | * First release 93 | -------------------------------------------------------------------------------- /Class2/node_modules/estree-walker/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015-20 [these people](https://github.com/Rich-Harris/estree-walker/graphs/contributors) 2 | 3 | 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: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | 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. -------------------------------------------------------------------------------- /Class2/node_modules/estree-walker/README.md: -------------------------------------------------------------------------------- 1 | # estree-walker 2 | 3 | Simple utility for walking an [ESTree](https://github.com/estree/estree)-compliant AST, such as one generated by [acorn](https://github.com/marijnh/acorn). 4 | 5 | 6 | ## Installation 7 | 8 | ```bash 9 | npm i estree-walker 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | var walk = require( 'estree-walker' ).walk; 17 | var acorn = require( 'acorn' ); 18 | 19 | ast = acorn.parse( sourceCode, options ); // https://github.com/acornjs/acorn 20 | 21 | walk( ast, { 22 | enter: function ( node, parent, prop, index ) { 23 | // some code happens 24 | }, 25 | leave: function ( node, parent, prop, index ) { 26 | // some code happens 27 | } 28 | }); 29 | ``` 30 | 31 | Inside the `enter` function, calling `this.skip()` will prevent the node's children being walked, or the `leave` function (which is optional) being called. 32 | 33 | Call `this.replace(new_node)` in either `enter` or `leave` to replace the current node with a new one. 34 | 35 | Call `this.remove()` in either `enter` or `leave` to remove the current node. 36 | 37 | ## Why not use estraverse? 38 | 39 | The ESTree spec is evolving to accommodate ES6/7. I've had a couple of experiences where [estraverse](https://github.com/estools/estraverse) was unable to handle an AST generated by recent versions of acorn, because it hard-codes visitor keys. 40 | 41 | estree-walker, by contrast, simply enumerates a node's properties to find child nodes (and child lists of nodes), and is therefore resistant to spec changes. It's also much smaller. (The performance, if you're wondering, is basically identical.) 42 | 43 | None of which should be taken as criticism of estraverse, which has more features and has been battle-tested in many more situations, and for which I'm very grateful. 44 | 45 | 46 | ## License 47 | 48 | MIT 49 | -------------------------------------------------------------------------------- /Class2/node_modules/estree-walker/dist/esm/package.json: -------------------------------------------------------------------------------- 1 | {"type":"module"} -------------------------------------------------------------------------------- /Class2/node_modules/estree-walker/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "estree-walker", 3 | "description": "Traverse an ESTree-compliant AST", 4 | "version": "2.0.2", 5 | "private": false, 6 | "author": "Rich Harris", 7 | "license": "MIT", 8 | "repository": { 9 | "type": "git", 10 | "url": "https://github.com/Rich-Harris/estree-walker" 11 | }, 12 | "type": "commonjs", 13 | "main": "./dist/umd/estree-walker.js", 14 | "module": "./dist/esm/estree-walker.js", 15 | "exports": { 16 | "require": "./dist/umd/estree-walker.js", 17 | "import": "./dist/esm/estree-walker.js" 18 | }, 19 | "types": "types/index.d.ts", 20 | "scripts": { 21 | "prepublishOnly": "npm run build && npm test", 22 | "build": "tsc && rollup -c", 23 | "test": "uvu test" 24 | }, 25 | "devDependencies": { 26 | "@types/estree": "0.0.42", 27 | "rollup": "^2.10.9", 28 | "typescript": "^3.7.5", 29 | "uvu": "^0.5.1" 30 | }, 31 | "files": [ 32 | "src", 33 | "dist", 34 | "types", 35 | "README.md" 36 | ] 37 | } 38 | -------------------------------------------------------------------------------- /Class2/node_modules/estree-walker/src/index.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | import { SyncWalker } from './sync.js'; 3 | import { AsyncWalker } from './async.js'; 4 | 5 | /** @typedef { import('estree').BaseNode} BaseNode */ 6 | /** @typedef { import('./sync.js').SyncHandler} SyncHandler */ 7 | /** @typedef { import('./async.js').AsyncHandler} AsyncHandler */ 8 | 9 | /** 10 | * 11 | * @param {BaseNode} ast 12 | * @param {{ 13 | * enter?: SyncHandler 14 | * leave?: SyncHandler 15 | * }} walker 16 | * @returns {BaseNode} 17 | */ 18 | export function walk(ast, { enter, leave }) { 19 | const instance = new SyncWalker(enter, leave); 20 | return instance.visit(ast, null); 21 | } 22 | 23 | /** 24 | * 25 | * @param {BaseNode} ast 26 | * @param {{ 27 | * enter?: AsyncHandler 28 | * leave?: AsyncHandler 29 | * }} walker 30 | * @returns {Promise} 31 | */ 32 | export async function asyncWalk(ast, { enter, leave }) { 33 | const instance = new AsyncWalker(enter, leave); 34 | return await instance.visit(ast, null); 35 | } 36 | -------------------------------------------------------------------------------- /Class2/node_modules/estree-walker/src/package.json: -------------------------------------------------------------------------------- 1 | {"type": "module"} -------------------------------------------------------------------------------- /Class2/node_modules/estree-walker/src/walker.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | /** @typedef { import('estree').BaseNode} BaseNode */ 3 | 4 | /** @typedef {{ 5 | skip: () => void; 6 | remove: () => void; 7 | replace: (node: BaseNode) => void; 8 | }} WalkerContext */ 9 | 10 | export class WalkerBase { 11 | constructor() { 12 | /** @type {boolean} */ 13 | this.should_skip = false; 14 | 15 | /** @type {boolean} */ 16 | this.should_remove = false; 17 | 18 | /** @type {BaseNode | null} */ 19 | this.replacement = null; 20 | 21 | /** @type {WalkerContext} */ 22 | this.context = { 23 | skip: () => (this.should_skip = true), 24 | remove: () => (this.should_remove = true), 25 | replace: (node) => (this.replacement = node) 26 | }; 27 | } 28 | 29 | /** 30 | * 31 | * @param {any} parent 32 | * @param {string} prop 33 | * @param {number} index 34 | * @param {BaseNode} node 35 | */ 36 | replace(parent, prop, index, node) { 37 | if (parent) { 38 | if (index !== null) { 39 | parent[prop][index] = node; 40 | } else { 41 | parent[prop] = node; 42 | } 43 | } 44 | } 45 | 46 | /** 47 | * 48 | * @param {any} parent 49 | * @param {string} prop 50 | * @param {number} index 51 | */ 52 | remove(parent, prop, index) { 53 | if (parent) { 54 | if (index !== null) { 55 | parent[prop].splice(index, 1); 56 | } else { 57 | delete parent[prop]; 58 | } 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /Class2/node_modules/estree-walker/types/async.d.ts: -------------------------------------------------------------------------------- 1 | /** @typedef { import('estree').BaseNode} BaseNode */ 2 | /** @typedef { import('./walker').WalkerContext} WalkerContext */ 3 | /** @typedef {( 4 | * this: WalkerContext, 5 | * node: BaseNode, 6 | * parent: BaseNode, 7 | * key: string, 8 | * index: number 9 | * ) => Promise} AsyncHandler */ 10 | export class AsyncWalker extends WalkerBase { 11 | /** 12 | * 13 | * @param {AsyncHandler} enter 14 | * @param {AsyncHandler} leave 15 | */ 16 | constructor(enter: (this: { 17 | skip: () => void; 18 | remove: () => void; 19 | replace: (node: import("estree").BaseNode) => void; 20 | }, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => Promise, leave: (this: { 21 | skip: () => void; 22 | remove: () => void; 23 | replace: (node: import("estree").BaseNode) => void; 24 | }, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => Promise); 25 | /** @type {AsyncHandler} */ 26 | enter: AsyncHandler; 27 | /** @type {AsyncHandler} */ 28 | leave: AsyncHandler; 29 | /** 30 | * 31 | * @param {BaseNode} node 32 | * @param {BaseNode} parent 33 | * @param {string} [prop] 34 | * @param {number} [index] 35 | * @returns {Promise} 36 | */ 37 | visit(node: import("estree").BaseNode, parent: import("estree").BaseNode, prop?: string, index?: number): Promise; 38 | should_skip: any; 39 | should_remove: any; 40 | replacement: any; 41 | } 42 | export type BaseNode = import("estree").BaseNode; 43 | export type WalkerContext = { 44 | skip: () => void; 45 | remove: () => void; 46 | replace: (node: import("estree").BaseNode) => void; 47 | }; 48 | export type AsyncHandler = (this: { 49 | skip: () => void; 50 | remove: () => void; 51 | replace: (node: import("estree").BaseNode) => void; 52 | }, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => Promise; 53 | import { WalkerBase } from "./walker.js"; 54 | -------------------------------------------------------------------------------- /Class2/node_modules/estree-walker/types/sync.d.ts: -------------------------------------------------------------------------------- 1 | /** @typedef { import('estree').BaseNode} BaseNode */ 2 | /** @typedef { import('./walker.js').WalkerContext} WalkerContext */ 3 | /** @typedef {( 4 | * this: WalkerContext, 5 | * node: BaseNode, 6 | * parent: BaseNode, 7 | * key: string, 8 | * index: number 9 | * ) => void} SyncHandler */ 10 | export class SyncWalker extends WalkerBase { 11 | /** 12 | * 13 | * @param {SyncHandler} enter 14 | * @param {SyncHandler} leave 15 | */ 16 | constructor(enter: (this: { 17 | skip: () => void; 18 | remove: () => void; 19 | replace: (node: import("estree").BaseNode) => void; 20 | }, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => void, leave: (this: { 21 | skip: () => void; 22 | remove: () => void; 23 | replace: (node: import("estree").BaseNode) => void; 24 | }, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => void); 25 | /** @type {SyncHandler} */ 26 | enter: SyncHandler; 27 | /** @type {SyncHandler} */ 28 | leave: SyncHandler; 29 | /** 30 | * 31 | * @param {BaseNode} node 32 | * @param {BaseNode} parent 33 | * @param {string} [prop] 34 | * @param {number} [index] 35 | * @returns {BaseNode} 36 | */ 37 | visit(node: import("estree").BaseNode, parent: import("estree").BaseNode, prop?: string, index?: number): import("estree").BaseNode; 38 | should_skip: any; 39 | should_remove: any; 40 | replacement: any; 41 | } 42 | export type BaseNode = import("estree").BaseNode; 43 | export type WalkerContext = { 44 | skip: () => void; 45 | remove: () => void; 46 | replace: (node: import("estree").BaseNode) => void; 47 | }; 48 | export type SyncHandler = (this: { 49 | skip: () => void; 50 | remove: () => void; 51 | replace: (node: import("estree").BaseNode) => void; 52 | }, node: import("estree").BaseNode, parent: import("estree").BaseNode, key: string, index: number) => void; 53 | import { WalkerBase } from "./walker.js"; 54 | -------------------------------------------------------------------------------- /Class2/node_modules/estree-walker/types/walker.d.ts: -------------------------------------------------------------------------------- 1 | /** @typedef { import('estree').BaseNode} BaseNode */ 2 | /** @typedef {{ 3 | skip: () => void; 4 | remove: () => void; 5 | replace: (node: BaseNode) => void; 6 | }} WalkerContext */ 7 | export class WalkerBase { 8 | /** @type {boolean} */ 9 | should_skip: boolean; 10 | /** @type {boolean} */ 11 | should_remove: boolean; 12 | /** @type {BaseNode | null} */ 13 | replacement: BaseNode | null; 14 | /** @type {WalkerContext} */ 15 | context: WalkerContext; 16 | /** 17 | * 18 | * @param {any} parent 19 | * @param {string} prop 20 | * @param {number} index 21 | * @param {BaseNode} node 22 | */ 23 | replace(parent: any, prop: string, index: number, node: import("estree").BaseNode): void; 24 | /** 25 | * 26 | * @param {any} parent 27 | * @param {string} prop 28 | * @param {number} index 29 | */ 30 | remove(parent: any, prop: string, index: number): void; 31 | } 32 | export type BaseNode = import("estree").BaseNode; 33 | export type WalkerContext = { 34 | skip: () => void; 35 | remove: () => void; 36 | replace: (node: import("estree").BaseNode) => void; 37 | }; 38 | -------------------------------------------------------------------------------- /Class2/node_modules/fsevents/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | ----------- 3 | 4 | Copyright (C) 2010-2020 by Philipp Dunkel, Ben Noordhuis, Elan Shankar, Paul Miller 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /Class2/node_modules/fsevents/fsevents.d.ts: -------------------------------------------------------------------------------- 1 | declare type Event = "created" | "cloned" | "modified" | "deleted" | "moved" | "root-changed" | "unknown"; 2 | declare type Type = "file" | "directory" | "symlink"; 3 | declare type FileChanges = { 4 | inode: boolean; 5 | finder: boolean; 6 | access: boolean; 7 | xattrs: boolean; 8 | }; 9 | declare type Info = { 10 | event: Event; 11 | path: string; 12 | type: Type; 13 | changes: FileChanges; 14 | flags: number; 15 | }; 16 | declare type WatchHandler = (path: string, flags: number, id: string) => void; 17 | export declare function watch(path: string, handler: WatchHandler): () => Promise; 18 | export declare function watch(path: string, since: number, handler: WatchHandler): () => Promise; 19 | export declare function getInfo(path: string, flags: number): Info; 20 | export declare const constants: { 21 | None: 0x00000000; 22 | MustScanSubDirs: 0x00000001; 23 | UserDropped: 0x00000002; 24 | KernelDropped: 0x00000004; 25 | EventIdsWrapped: 0x00000008; 26 | HistoryDone: 0x00000010; 27 | RootChanged: 0x00000020; 28 | Mount: 0x00000040; 29 | Unmount: 0x00000080; 30 | ItemCreated: 0x00000100; 31 | ItemRemoved: 0x00000200; 32 | ItemInodeMetaMod: 0x00000400; 33 | ItemRenamed: 0x00000800; 34 | ItemModified: 0x00001000; 35 | ItemFinderInfoMod: 0x00002000; 36 | ItemChangeOwner: 0x00004000; 37 | ItemXattrMod: 0x00008000; 38 | ItemIsFile: 0x00010000; 39 | ItemIsDir: 0x00020000; 40 | ItemIsSymlink: 0x00040000; 41 | ItemIsHardlink: 0x00100000; 42 | ItemIsLastHardlink: 0x00200000; 43 | OwnEvent: 0x00080000; 44 | ItemCloned: 0x00400000; 45 | }; 46 | export {}; 47 | -------------------------------------------------------------------------------- /Class2/node_modules/fsevents/fsevents.node: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iykeevans/altschool-class-of-vue/fc9b71d650a6d898f1e0b36b5fed970d4c77bea2/Class2/node_modules/fsevents/fsevents.node -------------------------------------------------------------------------------- /Class2/node_modules/fsevents/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fsevents", 3 | "version": "2.3.3", 4 | "description": "Native Access to MacOS FSEvents", 5 | "main": "fsevents.js", 6 | "types": "fsevents.d.ts", 7 | "os": [ 8 | "darwin" 9 | ], 10 | "files": [ 11 | "fsevents.d.ts", 12 | "fsevents.js", 13 | "fsevents.node" 14 | ], 15 | "engines": { 16 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 17 | }, 18 | "scripts": { 19 | "clean": "node-gyp clean && rm -f fsevents.node", 20 | "build": "node-gyp clean && rm -f fsevents.node && node-gyp rebuild && node-gyp clean", 21 | "test": "/bin/bash ./test.sh 2>/dev/null", 22 | "prepublishOnly": "npm run build" 23 | }, 24 | "repository": { 25 | "type": "git", 26 | "url": "https://github.com/fsevents/fsevents.git" 27 | }, 28 | "keywords": [ 29 | "fsevents", 30 | "mac" 31 | ], 32 | "contributors": [ 33 | { 34 | "name": "Philipp Dunkel", 35 | "email": "pip@pipobscure.com" 36 | }, 37 | { 38 | "name": "Ben Noordhuis", 39 | "email": "info@bnoordhuis.nl" 40 | }, 41 | { 42 | "name": "Elan Shankar", 43 | "email": "elan.shanker@gmail.com" 44 | }, 45 | { 46 | "name": "Miroslav Bajtoš", 47 | "email": "mbajtoss@gmail.com" 48 | }, 49 | { 50 | "name": "Paul Miller", 51 | "url": "https://paulmillr.com" 52 | } 53 | ], 54 | "license": "MIT", 55 | "bugs": { 56 | "url": "https://github.com/fsevents/fsevents/issues" 57 | }, 58 | "homepage": "https://github.com/fsevents/fsevents", 59 | "devDependencies": { 60 | "node-gyp": "^9.4.0" 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /Class2/node_modules/magic-string/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2018 Rich Harris 2 | 3 | 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: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | 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. 8 | -------------------------------------------------------------------------------- /Class2/node_modules/magic-string/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "magic-string", 3 | "version": "0.30.5", 4 | "description": "Modify strings, generate sourcemaps", 5 | "keywords": [ 6 | "string", 7 | "string manipulation", 8 | "sourcemap", 9 | "templating", 10 | "transpilation" 11 | ], 12 | "repository": "https://github.com/rich-harris/magic-string", 13 | "license": "MIT", 14 | "author": "Rich Harris", 15 | "main": "./dist/magic-string.cjs.js", 16 | "module": "./dist/magic-string.es.mjs", 17 | "jsnext:main": "./dist/magic-string.es.mjs", 18 | "types": "./dist/magic-string.cjs.d.ts", 19 | "exports": { 20 | "./package.json": "./package.json", 21 | ".": { 22 | "import": "./dist/magic-string.es.mjs", 23 | "require": "./dist/magic-string.cjs.js" 24 | } 25 | }, 26 | "files": [ 27 | "dist/*", 28 | "index.d.ts", 29 | "README.md" 30 | ], 31 | "scripts": { 32 | "build": "rollup -c && cp ./src/index.d.ts ./dist/magic-string.es.d.mts && cp ./src/index.d.ts ./dist/magic-string.cjs.d.ts", 33 | "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s", 34 | "format": "prettier --single-quote --print-width 100 --use-tabs --write src/*.js src/**/*.js", 35 | "lint": "eslint src test && publint", 36 | "prepare": "npm run build", 37 | "prepublishOnly": "npm run lint && rm -rf dist && npm test", 38 | "release": "bumpp -x \"npm run changelog\" --all --commit --tag --push && npm publish", 39 | "pretest": "npm run build", 40 | "test": "mocha", 41 | "bench": "npm run build && node benchmark/index.mjs", 42 | "watch": "rollup -cw" 43 | }, 44 | "devDependencies": { 45 | "@rollup/plugin-node-resolve": "^15.2.0", 46 | "@rollup/plugin-replace": "^5.0.2", 47 | "benchmark": "^2.1.4", 48 | "bumpp": "^9.2.0", 49 | "conventional-changelog-cli": "^3.0.0", 50 | "eslint": "^8.47.0", 51 | "mocha": "^10.2.0", 52 | "prettier": "^3.0.2", 53 | "publint": "^0.2.1", 54 | "rollup": "^3.28.0", 55 | "source-map-js": "^1.0.2", 56 | "source-map-support": "^0.5.21" 57 | }, 58 | "engines": { 59 | "node": ">=12" 60 | }, 61 | "dependencies": { 62 | "@jridgewell/sourcemap-codec": "^1.4.15" 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /Class2/node_modules/nanoid/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright 2017 Andrey Sitnik 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /Class2/node_modules/nanoid/README.md: -------------------------------------------------------------------------------- 1 | # Nano ID 2 | 3 | Nano ID logo by Anton Lovchikov 5 | 6 | **English** | [Русский](./README.ru.md) | [简体中文](./README.zh-CN.md) | [Bahasa Indonesia](./README.id-ID.md) 7 | 8 | A tiny, secure, URL-friendly, unique string ID generator for JavaScript. 9 | 10 | > “An amazing level of senseless perfectionism, 11 | > which is simply impossible not to respect.” 12 | 13 | * **Small.** 130 bytes (minified and gzipped). No dependencies. 14 | [Size Limit] controls the size. 15 | * **Fast.** It is 2 times faster than UUID. 16 | * **Safe.** It uses hardware random generator. Can be used in clusters. 17 | * **Short IDs.** It uses a larger alphabet than UUID (`A-Za-z0-9_-`). 18 | So ID size was reduced from 36 to 21 symbols. 19 | * **Portable.** Nano ID was ported 20 | to [20 programming languages](#other-programming-languages). 21 | 22 | ```js 23 | import { nanoid } from 'nanoid' 24 | model.id = nanoid() //=> "V1StGXR8_Z5jdHi6B-myT" 25 | ``` 26 | 27 | Supports modern browsers, IE [with Babel], Node.js and React Native. 28 | 29 | [online tool]: https://gitpod.io/#https://github.com/ai/nanoid/ 30 | [with Babel]: https://developer.epages.com/blog/coding/how-to-transpile-node-modules-with-babel-and-webpack-in-a-monorepo/ 31 | [Size Limit]: https://github.com/ai/size-limit 32 | 33 | 34 | Sponsored by Evil Martians 36 | 37 | 38 | ## Docs 39 | Read full docs **[here](https://github.com/ai/nanoid#readme)**. 40 | -------------------------------------------------------------------------------- /Class2/node_modules/nanoid/async/index.browser.cjs: -------------------------------------------------------------------------------- 1 | let random = async bytes => crypto.getRandomValues(new Uint8Array(bytes)) 2 | let customAlphabet = (alphabet, defaultSize = 21) => { 3 | let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1 4 | let step = -~((1.6 * mask * defaultSize) / alphabet.length) 5 | return async (size = defaultSize) => { 6 | let id = '' 7 | while (true) { 8 | let bytes = crypto.getRandomValues(new Uint8Array(step)) 9 | let i = step 10 | while (i--) { 11 | id += alphabet[bytes[i] & mask] || '' 12 | if (id.length === size) return id 13 | } 14 | } 15 | } 16 | } 17 | let nanoid = async (size = 21) => { 18 | let id = '' 19 | let bytes = crypto.getRandomValues(new Uint8Array(size)) 20 | while (size--) { 21 | let byte = bytes[size] & 63 22 | if (byte < 36) { 23 | id += byte.toString(36) 24 | } else if (byte < 62) { 25 | id += (byte - 26).toString(36).toUpperCase() 26 | } else if (byte < 63) { 27 | id += '_' 28 | } else { 29 | id += '-' 30 | } 31 | } 32 | return id 33 | } 34 | module.exports = { nanoid, customAlphabet, random } 35 | -------------------------------------------------------------------------------- /Class2/node_modules/nanoid/async/index.browser.js: -------------------------------------------------------------------------------- 1 | let random = async bytes => crypto.getRandomValues(new Uint8Array(bytes)) 2 | let customAlphabet = (alphabet, defaultSize = 21) => { 3 | let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1 4 | let step = -~((1.6 * mask * defaultSize) / alphabet.length) 5 | return async (size = defaultSize) => { 6 | let id = '' 7 | while (true) { 8 | let bytes = crypto.getRandomValues(new Uint8Array(step)) 9 | let i = step 10 | while (i--) { 11 | id += alphabet[bytes[i] & mask] || '' 12 | if (id.length === size) return id 13 | } 14 | } 15 | } 16 | } 17 | let nanoid = async (size = 21) => { 18 | let id = '' 19 | let bytes = crypto.getRandomValues(new Uint8Array(size)) 20 | while (size--) { 21 | let byte = bytes[size] & 63 22 | if (byte < 36) { 23 | id += byte.toString(36) 24 | } else if (byte < 62) { 25 | id += (byte - 26).toString(36).toUpperCase() 26 | } else if (byte < 63) { 27 | id += '_' 28 | } else { 29 | id += '-' 30 | } 31 | } 32 | return id 33 | } 34 | export { nanoid, customAlphabet, random } 35 | -------------------------------------------------------------------------------- /Class2/node_modules/nanoid/async/index.cjs: -------------------------------------------------------------------------------- 1 | let crypto = require('crypto') 2 | let { urlAlphabet } = require('../url-alphabet/index.cjs') 3 | let random = bytes => 4 | new Promise((resolve, reject) => { 5 | crypto.randomFill(Buffer.allocUnsafe(bytes), (err, buf) => { 6 | if (err) { 7 | reject(err) 8 | } else { 9 | resolve(buf) 10 | } 11 | }) 12 | }) 13 | let customAlphabet = (alphabet, defaultSize = 21) => { 14 | let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1 15 | let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length) 16 | let tick = (id, size = defaultSize) => 17 | random(step).then(bytes => { 18 | let i = step 19 | while (i--) { 20 | id += alphabet[bytes[i] & mask] || '' 21 | if (id.length === size) return id 22 | } 23 | return tick(id, size) 24 | }) 25 | return size => tick('', size) 26 | } 27 | let nanoid = (size = 21) => 28 | random(size).then(bytes => { 29 | let id = '' 30 | while (size--) { 31 | id += urlAlphabet[bytes[size] & 63] 32 | } 33 | return id 34 | }) 35 | module.exports = { nanoid, customAlphabet, random } 36 | -------------------------------------------------------------------------------- /Class2/node_modules/nanoid/async/index.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Generate secure URL-friendly unique ID. The non-blocking version. 3 | * 4 | * By default, the ID will have 21 symbols to have a collision probability 5 | * similar to UUID v4. 6 | * 7 | * ```js 8 | * import { nanoid } from 'nanoid/async' 9 | * nanoid().then(id => { 10 | * model.id = id 11 | * }) 12 | * ``` 13 | * 14 | * @param size Size of the ID. The default size is 21. 15 | * @returns A promise with a random string. 16 | */ 17 | export function nanoid(size?: number): Promise 18 | 19 | /** 20 | * A low-level function. 21 | * Generate secure unique ID with custom alphabet. The non-blocking version. 22 | * 23 | * Alphabet must contain 256 symbols or less. Otherwise, the generator 24 | * will not be secure. 25 | * 26 | * @param alphabet Alphabet used to generate the ID. 27 | * @param defaultSize Size of the ID. The default size is 21. 28 | * @returns A function that returns a promise with a random string. 29 | * 30 | * ```js 31 | * import { customAlphabet } from 'nanoid/async' 32 | * const nanoid = customAlphabet('0123456789абвгдеё', 5) 33 | * nanoid().then(id => { 34 | * model.id = id //=> "8ё56а" 35 | * }) 36 | * ``` 37 | */ 38 | export function customAlphabet( 39 | alphabet: string, 40 | defaultSize?: number 41 | ): (size?: number) => Promise 42 | 43 | /** 44 | * Generate an array of random bytes collected from hardware noise. 45 | * 46 | * ```js 47 | * import { random } from 'nanoid/async' 48 | * random(5).then(bytes => { 49 | * bytes //=> [10, 67, 212, 67, 89] 50 | * }) 51 | * ``` 52 | * 53 | * @param bytes Size of the array. 54 | * @returns A promise with a random bytes array. 55 | */ 56 | export function random(bytes: number): Promise 57 | -------------------------------------------------------------------------------- /Class2/node_modules/nanoid/async/index.js: -------------------------------------------------------------------------------- 1 | import crypto from 'crypto' 2 | import { urlAlphabet } from '../url-alphabet/index.js' 3 | let random = bytes => 4 | new Promise((resolve, reject) => { 5 | crypto.randomFill(Buffer.allocUnsafe(bytes), (err, buf) => { 6 | if (err) { 7 | reject(err) 8 | } else { 9 | resolve(buf) 10 | } 11 | }) 12 | }) 13 | let customAlphabet = (alphabet, defaultSize = 21) => { 14 | let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1 15 | let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length) 16 | let tick = (id, size = defaultSize) => 17 | random(step).then(bytes => { 18 | let i = step 19 | while (i--) { 20 | id += alphabet[bytes[i] & mask] || '' 21 | if (id.length === size) return id 22 | } 23 | return tick(id, size) 24 | }) 25 | return size => tick('', size) 26 | } 27 | let nanoid = (size = 21) => 28 | random(size).then(bytes => { 29 | let id = '' 30 | while (size--) { 31 | id += urlAlphabet[bytes[size] & 63] 32 | } 33 | return id 34 | }) 35 | export { nanoid, customAlphabet, random } 36 | -------------------------------------------------------------------------------- /Class2/node_modules/nanoid/async/index.native.js: -------------------------------------------------------------------------------- 1 | import { getRandomBytesAsync } from 'expo-random' 2 | import { urlAlphabet } from '../url-alphabet/index.js' 3 | let random = getRandomBytesAsync 4 | let customAlphabet = (alphabet, defaultSize = 21) => { 5 | let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1 6 | let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length) 7 | let tick = (id, size = defaultSize) => 8 | random(step).then(bytes => { 9 | let i = step 10 | while (i--) { 11 | id += alphabet[bytes[i] & mask] || '' 12 | if (id.length === size) return id 13 | } 14 | return tick(id, size) 15 | }) 16 | return size => tick('', size) 17 | } 18 | let nanoid = (size = 21) => 19 | random(size).then(bytes => { 20 | let id = '' 21 | while (size--) { 22 | id += urlAlphabet[bytes[size] & 63] 23 | } 24 | return id 25 | }) 26 | export { nanoid, customAlphabet, random } 27 | -------------------------------------------------------------------------------- /Class2/node_modules/nanoid/async/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "module", 3 | "main": "index.cjs", 4 | "module": "index.js", 5 | "react-native": { 6 | "./index.js": "./index.native.js" 7 | }, 8 | "browser": { 9 | "./index.js": "./index.browser.js", 10 | "./index.cjs": "./index.browser.cjs" 11 | } 12 | } -------------------------------------------------------------------------------- /Class2/node_modules/nanoid/bin/nanoid.cjs: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | let { nanoid, customAlphabet } = require('..') 4 | 5 | function print(msg) { 6 | process.stdout.write(msg + '\n') 7 | } 8 | 9 | function error(msg) { 10 | process.stderr.write(msg + '\n') 11 | process.exit(1) 12 | } 13 | 14 | if (process.argv.includes('--help') || process.argv.includes('-h')) { 15 | print(` 16 | Usage 17 | $ nanoid [options] 18 | 19 | Options 20 | -s, --size Generated ID size 21 | -a, --alphabet Alphabet to use 22 | -h, --help Show this help 23 | 24 | Examples 25 | $ nanoid --s 15 26 | S9sBF77U6sDB8Yg 27 | 28 | $ nanoid --size 10 --alphabet abc 29 | bcabababca`) 30 | process.exit() 31 | } 32 | 33 | let alphabet, size 34 | for (let i = 2; i < process.argv.length; i++) { 35 | let arg = process.argv[i] 36 | if (arg === '--size' || arg === '-s') { 37 | size = Number(process.argv[i + 1]) 38 | i += 1 39 | if (Number.isNaN(size) || size <= 0) { 40 | error('Size must be positive integer') 41 | } 42 | } else if (arg === '--alphabet' || arg === '-a') { 43 | alphabet = process.argv[i + 1] 44 | i += 1 45 | } else { 46 | error('Unknown argument ' + arg) 47 | } 48 | } 49 | 50 | if (alphabet) { 51 | let customNanoid = customAlphabet(alphabet, size) 52 | print(customNanoid()) 53 | } else { 54 | print(nanoid(size)) 55 | } 56 | -------------------------------------------------------------------------------- /Class2/node_modules/nanoid/index.browser.cjs: -------------------------------------------------------------------------------- 1 | let { urlAlphabet } = require('./url-alphabet/index.cjs') 2 | let random = bytes => crypto.getRandomValues(new Uint8Array(bytes)) 3 | let customRandom = (alphabet, defaultSize, getRandom) => { 4 | let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1 5 | let step = -~((1.6 * mask * defaultSize) / alphabet.length) 6 | return (size = defaultSize) => { 7 | let id = '' 8 | while (true) { 9 | let bytes = getRandom(step) 10 | let j = step 11 | while (j--) { 12 | id += alphabet[bytes[j] & mask] || '' 13 | if (id.length === size) return id 14 | } 15 | } 16 | } 17 | } 18 | let customAlphabet = (alphabet, size = 21) => 19 | customRandom(alphabet, size, random) 20 | let nanoid = (size = 21) => 21 | crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => { 22 | byte &= 63 23 | if (byte < 36) { 24 | id += byte.toString(36) 25 | } else if (byte < 62) { 26 | id += (byte - 26).toString(36).toUpperCase() 27 | } else if (byte > 62) { 28 | id += '-' 29 | } else { 30 | id += '_' 31 | } 32 | return id 33 | }, '') 34 | module.exports = { nanoid, customAlphabet, customRandom, urlAlphabet, random } 35 | -------------------------------------------------------------------------------- /Class2/node_modules/nanoid/index.browser.js: -------------------------------------------------------------------------------- 1 | import { urlAlphabet } from './url-alphabet/index.js' 2 | let random = bytes => crypto.getRandomValues(new Uint8Array(bytes)) 3 | let customRandom = (alphabet, defaultSize, getRandom) => { 4 | let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1 5 | let step = -~((1.6 * mask * defaultSize) / alphabet.length) 6 | return (size = defaultSize) => { 7 | let id = '' 8 | while (true) { 9 | let bytes = getRandom(step) 10 | let j = step 11 | while (j--) { 12 | id += alphabet[bytes[j] & mask] || '' 13 | if (id.length === size) return id 14 | } 15 | } 16 | } 17 | } 18 | let customAlphabet = (alphabet, size = 21) => 19 | customRandom(alphabet, size, random) 20 | let nanoid = (size = 21) => 21 | crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => { 22 | byte &= 63 23 | if (byte < 36) { 24 | id += byte.toString(36) 25 | } else if (byte < 62) { 26 | id += (byte - 26).toString(36).toUpperCase() 27 | } else if (byte > 62) { 28 | id += '-' 29 | } else { 30 | id += '_' 31 | } 32 | return id 33 | }, '') 34 | export { nanoid, customAlphabet, customRandom, urlAlphabet, random } 35 | -------------------------------------------------------------------------------- /Class2/node_modules/nanoid/index.cjs: -------------------------------------------------------------------------------- 1 | let crypto = require('crypto') 2 | let { urlAlphabet } = require('./url-alphabet/index.cjs') 3 | const POOL_SIZE_MULTIPLIER = 128 4 | let pool, poolOffset 5 | let fillPool = bytes => { 6 | if (!pool || pool.length < bytes) { 7 | pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER) 8 | crypto.randomFillSync(pool) 9 | poolOffset = 0 10 | } else if (poolOffset + bytes > pool.length) { 11 | crypto.randomFillSync(pool) 12 | poolOffset = 0 13 | } 14 | poolOffset += bytes 15 | } 16 | let random = bytes => { 17 | fillPool((bytes -= 0)) 18 | return pool.subarray(poolOffset - bytes, poolOffset) 19 | } 20 | let customRandom = (alphabet, defaultSize, getRandom) => { 21 | let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1 22 | let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length) 23 | return (size = defaultSize) => { 24 | let id = '' 25 | while (true) { 26 | let bytes = getRandom(step) 27 | let i = step 28 | while (i--) { 29 | id += alphabet[bytes[i] & mask] || '' 30 | if (id.length === size) return id 31 | } 32 | } 33 | } 34 | } 35 | let customAlphabet = (alphabet, size = 21) => 36 | customRandom(alphabet, size, random) 37 | let nanoid = (size = 21) => { 38 | fillPool((size -= 0)) 39 | let id = '' 40 | for (let i = poolOffset - size; i < poolOffset; i++) { 41 | id += urlAlphabet[pool[i] & 63] 42 | } 43 | return id 44 | } 45 | module.exports = { nanoid, customAlphabet, customRandom, urlAlphabet, random } 46 | -------------------------------------------------------------------------------- /Class2/node_modules/nanoid/index.js: -------------------------------------------------------------------------------- 1 | import crypto from 'crypto' 2 | import { urlAlphabet } from './url-alphabet/index.js' 3 | const POOL_SIZE_MULTIPLIER = 128 4 | let pool, poolOffset 5 | let fillPool = bytes => { 6 | if (!pool || pool.length < bytes) { 7 | pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER) 8 | crypto.randomFillSync(pool) 9 | poolOffset = 0 10 | } else if (poolOffset + bytes > pool.length) { 11 | crypto.randomFillSync(pool) 12 | poolOffset = 0 13 | } 14 | poolOffset += bytes 15 | } 16 | let random = bytes => { 17 | fillPool((bytes -= 0)) 18 | return pool.subarray(poolOffset - bytes, poolOffset) 19 | } 20 | let customRandom = (alphabet, defaultSize, getRandom) => { 21 | let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1 22 | let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length) 23 | return (size = defaultSize) => { 24 | let id = '' 25 | while (true) { 26 | let bytes = getRandom(step) 27 | let i = step 28 | while (i--) { 29 | id += alphabet[bytes[i] & mask] || '' 30 | if (id.length === size) return id 31 | } 32 | } 33 | } 34 | } 35 | let customAlphabet = (alphabet, size = 21) => 36 | customRandom(alphabet, size, random) 37 | let nanoid = (size = 21) => { 38 | fillPool((size -= 0)) 39 | let id = '' 40 | for (let i = poolOffset - size; i < poolOffset; i++) { 41 | id += urlAlphabet[pool[i] & 63] 42 | } 43 | return id 44 | } 45 | export { nanoid, customAlphabet, customRandom, urlAlphabet, random } 46 | -------------------------------------------------------------------------------- /Class2/node_modules/nanoid/nanoid.js: -------------------------------------------------------------------------------- 1 | export let nanoid=(t=21)=>crypto.getRandomValues(new Uint8Array(t)).reduce(((t,e)=>t+=(e&=63)<36?e.toString(36):e<62?(e-26).toString(36).toUpperCase():e<63?"_":"-"),""); -------------------------------------------------------------------------------- /Class2/node_modules/nanoid/non-secure/index.cjs: -------------------------------------------------------------------------------- 1 | let urlAlphabet = 2 | 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict' 3 | let customAlphabet = (alphabet, defaultSize = 21) => { 4 | return (size = defaultSize) => { 5 | let id = '' 6 | let i = size 7 | while (i--) { 8 | id += alphabet[(Math.random() * alphabet.length) | 0] 9 | } 10 | return id 11 | } 12 | } 13 | let nanoid = (size = 21) => { 14 | let id = '' 15 | let i = size 16 | while (i--) { 17 | id += urlAlphabet[(Math.random() * 64) | 0] 18 | } 19 | return id 20 | } 21 | module.exports = { nanoid, customAlphabet } 22 | -------------------------------------------------------------------------------- /Class2/node_modules/nanoid/non-secure/index.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Generate URL-friendly unique ID. This method uses the non-secure 3 | * predictable random generator with bigger collision probability. 4 | * 5 | * ```js 6 | * import { nanoid } from 'nanoid/non-secure' 7 | * model.id = nanoid() //=> "Uakgb_J5m9g-0JDMbcJqL" 8 | * ``` 9 | * 10 | * @param size Size of the ID. The default size is 21. 11 | * @returns A random string. 12 | */ 13 | export function nanoid(size?: number): string 14 | 15 | /** 16 | * Generate a unique ID based on a custom alphabet. 17 | * This method uses the non-secure predictable random generator 18 | * with bigger collision probability. 19 | * 20 | * @param alphabet Alphabet used to generate the ID. 21 | * @param defaultSize Size of the ID. The default size is 21. 22 | * @returns A random string generator. 23 | * 24 | * ```js 25 | * import { customAlphabet } from 'nanoid/non-secure' 26 | * const nanoid = customAlphabet('0123456789абвгдеё', 5) 27 | * model.id = //=> "8ё56а" 28 | * ``` 29 | */ 30 | export function customAlphabet( 31 | alphabet: string, 32 | defaultSize?: number 33 | ): (size?: number) => string 34 | -------------------------------------------------------------------------------- /Class2/node_modules/nanoid/non-secure/index.js: -------------------------------------------------------------------------------- 1 | let urlAlphabet = 2 | 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict' 3 | let customAlphabet = (alphabet, defaultSize = 21) => { 4 | return (size = defaultSize) => { 5 | let id = '' 6 | let i = size 7 | while (i--) { 8 | id += alphabet[(Math.random() * alphabet.length) | 0] 9 | } 10 | return id 11 | } 12 | } 13 | let nanoid = (size = 21) => { 14 | let id = '' 15 | let i = size 16 | while (i--) { 17 | id += urlAlphabet[(Math.random() * 64) | 0] 18 | } 19 | return id 20 | } 21 | export { nanoid, customAlphabet } 22 | -------------------------------------------------------------------------------- /Class2/node_modules/nanoid/non-secure/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "module", 3 | "main": "index.cjs", 4 | "module": "index.js", 5 | "react-native": "index.js" 6 | } -------------------------------------------------------------------------------- /Class2/node_modules/nanoid/url-alphabet/index.cjs: -------------------------------------------------------------------------------- 1 | let urlAlphabet = 2 | 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict' 3 | module.exports = { urlAlphabet } 4 | -------------------------------------------------------------------------------- /Class2/node_modules/nanoid/url-alphabet/index.js: -------------------------------------------------------------------------------- 1 | let urlAlphabet = 2 | 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict' 3 | export { urlAlphabet } 4 | -------------------------------------------------------------------------------- /Class2/node_modules/nanoid/url-alphabet/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "module", 3 | "main": "index.cjs", 4 | "module": "index.js", 5 | "react-native": "index.js" 6 | } -------------------------------------------------------------------------------- /Class2/node_modules/picocolors/LICENSE: -------------------------------------------------------------------------------- 1 | ISC License 2 | 3 | Copyright (c) 2021 Alexey Raspopov, Kostiantyn Denysov, Anton Verinov 4 | 5 | Permission to use, copy, modify, and/or distribute this software for any 6 | purpose with or without fee is hereby granted, provided that the above 7 | copyright notice and this permission notice appear in all copies. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /Class2/node_modules/picocolors/README.md: -------------------------------------------------------------------------------- 1 | # picocolors 2 | 3 | The tiniest and the fastest library for terminal output formatting with ANSI colors. 4 | 5 | ```javascript 6 | import pc from "picocolors" 7 | 8 | console.log( 9 | pc.green(`How are ${pc.italic(`you`)} doing?`) 10 | ) 11 | ``` 12 | 13 | - **No dependencies.** 14 | - **14 times** smaller and **2 times** faster than chalk. 15 | - Used by popular tools like PostCSS, SVGO, Stylelint, and Browserslist. 16 | - Node.js v6+ & browsers support. Support for both CJS and ESM projects. 17 | - TypeScript type declarations included. 18 | - [`NO_COLOR`](https://no-color.org/) friendly. 19 | 20 | ## Docs 21 | Read **[full docs](https://github.com/alexeyraspopov/picocolors#readme)** on GitHub. 22 | -------------------------------------------------------------------------------- /Class2/node_modules/picocolors/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "picocolors", 3 | "version": "1.0.0", 4 | "main": "./picocolors.js", 5 | "types": "./picocolors.d.ts", 6 | "browser": { 7 | "./picocolors.js": "./picocolors.browser.js" 8 | }, 9 | "sideEffects": false, 10 | "description": "The tiniest and the fastest library for terminal output formatting with ANSI colors", 11 | "files": [ 12 | "picocolors.*", 13 | "types.ts" 14 | ], 15 | "keywords": [ 16 | "terminal", 17 | "colors", 18 | "formatting", 19 | "cli", 20 | "console" 21 | ], 22 | "author": "Alexey Raspopov", 23 | "repository": "alexeyraspopov/picocolors", 24 | "license": "ISC" 25 | } 26 | -------------------------------------------------------------------------------- /Class2/node_modules/picocolors/picocolors.browser.js: -------------------------------------------------------------------------------- 1 | var x=String; 2 | var create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x}}; 3 | module.exports=create(); 4 | module.exports.createColors = create; 5 | -------------------------------------------------------------------------------- /Class2/node_modules/picocolors/picocolors.d.ts: -------------------------------------------------------------------------------- 1 | import { Colors } from "./types" 2 | 3 | declare const picocolors: Colors & { createColors: (enabled?: boolean) => Colors } 4 | 5 | export = picocolors 6 | -------------------------------------------------------------------------------- /Class2/node_modules/picocolors/types.ts: -------------------------------------------------------------------------------- 1 | export type Formatter = (input: string | number | null | undefined) => string 2 | 3 | export interface Colors { 4 | isColorSupported: boolean 5 | reset: Formatter 6 | bold: Formatter 7 | dim: Formatter 8 | italic: Formatter 9 | underline: Formatter 10 | inverse: Formatter 11 | hidden: Formatter 12 | strikethrough: Formatter 13 | black: Formatter 14 | red: Formatter 15 | green: Formatter 16 | yellow: Formatter 17 | blue: Formatter 18 | magenta: Formatter 19 | cyan: Formatter 20 | white: Formatter 21 | gray: Formatter 22 | bgBlack: Formatter 23 | bgRed: Formatter 24 | bgGreen: Formatter 25 | bgYellow: Formatter 26 | bgBlue: Formatter 27 | bgMagenta: Formatter 28 | bgCyan: Formatter 29 | bgWhite: Formatter 30 | } 31 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright 2013 Andrey Sitnik 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/README.md: -------------------------------------------------------------------------------- 1 | # PostCSS 2 | 3 | Philosopher’s stone, logo of PostCSS 6 | 7 | PostCSS is a tool for transforming styles with JS plugins. 8 | These plugins can lint your CSS, support variables and mixins, 9 | transpile future CSS syntax, inline images, and more. 10 | 11 | PostCSS is used by industry leaders including Wikipedia, Twitter, Alibaba, 12 | and JetBrains. The [Autoprefixer] and [Stylelint] PostCSS plugins is one of the most popular CSS tools. 13 | 14 | --- 15 | 16 |   Made in Evil Martians, product consulting for developer tools. 17 | 18 | --- 19 | 20 | [Abstract Syntax Tree]: https://en.wikipedia.org/wiki/Abstract_syntax_tree 21 | [Evil Martians]: https://evilmartians.com/?utm_source=postcss 22 | [Autoprefixer]: https://github.com/postcss/autoprefixer 23 | [Stylelint]: https://stylelint.io/ 24 | [plugins]: https://github.com/postcss/postcss#plugins 25 | 26 | 27 | ## Docs 28 | Read full docs **[here](https://postcss.org/)**. 29 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/at-rule.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | let Container = require('./container') 4 | 5 | class AtRule extends Container { 6 | constructor(defaults) { 7 | super(defaults) 8 | this.type = 'atrule' 9 | } 10 | 11 | append(...children) { 12 | if (!this.proxyOf.nodes) this.nodes = [] 13 | return super.append(...children) 14 | } 15 | 16 | prepend(...children) { 17 | if (!this.proxyOf.nodes) this.nodes = [] 18 | return super.prepend(...children) 19 | } 20 | } 21 | 22 | module.exports = AtRule 23 | AtRule.default = AtRule 24 | 25 | Container.registerAtRule(AtRule) 26 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/comment.d.ts: -------------------------------------------------------------------------------- 1 | import Container from './container.js' 2 | import Node, { NodeProps } from './node.js' 3 | 4 | declare namespace Comment { 5 | export interface CommentRaws extends Record { 6 | /** 7 | * The space symbols before the node. 8 | */ 9 | before?: string 10 | 11 | /** 12 | * The space symbols between `/*` and the comment’s text. 13 | */ 14 | left?: string 15 | 16 | /** 17 | * The space symbols between the comment’s text. 18 | */ 19 | right?: string 20 | } 21 | 22 | export interface CommentProps extends NodeProps { 23 | /** Information used to generate byte-to-byte equal node string as it was in the origin input. */ 24 | raws?: CommentRaws 25 | /** Content of the comment. */ 26 | text: string 27 | } 28 | 29 | // eslint-disable-next-line @typescript-eslint/no-use-before-define 30 | export { Comment_ as default } 31 | } 32 | 33 | /** 34 | * It represents a class that handles 35 | * [CSS comments](https://developer.mozilla.org/en-US/docs/Web/CSS/Comments) 36 | * 37 | * ```js 38 | * Once (root, { Comment }) { 39 | * const note = new Comment({ text: 'Note: …' }) 40 | * root.append(note) 41 | * } 42 | * ``` 43 | * 44 | * Remember that CSS comments inside selectors, at-rule parameters, 45 | * or declaration values will be stored in the `raws` properties 46 | * explained above. 47 | */ 48 | declare class Comment_ extends Node { 49 | parent: Container | undefined 50 | raws: Comment.CommentRaws 51 | /** 52 | * The comment's text. 53 | */ 54 | text: string 55 | 56 | type: 'comment' 57 | 58 | constructor(defaults?: Comment.CommentProps) 59 | assign(overrides: Comment.CommentProps | object): this 60 | clone(overrides?: Partial): Comment 61 | cloneAfter(overrides?: Partial): Comment 62 | cloneBefore(overrides?: Partial): Comment 63 | } 64 | 65 | declare class Comment extends Comment_ {} 66 | 67 | export = Comment 68 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/comment.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | let Node = require('./node') 4 | 5 | class Comment extends Node { 6 | constructor(defaults) { 7 | super(defaults) 8 | this.type = 'comment' 9 | } 10 | } 11 | 12 | module.exports = Comment 13 | Comment.default = Comment 14 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/declaration.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | let Node = require('./node') 4 | 5 | class Declaration extends Node { 6 | constructor(defaults) { 7 | if ( 8 | defaults && 9 | typeof defaults.value !== 'undefined' && 10 | typeof defaults.value !== 'string' 11 | ) { 12 | defaults = { ...defaults, value: String(defaults.value) } 13 | } 14 | super(defaults) 15 | this.type = 'decl' 16 | } 17 | 18 | get variable() { 19 | return this.prop.startsWith('--') || this.prop[0] === '$' 20 | } 21 | } 22 | 23 | module.exports = Declaration 24 | Declaration.default = Declaration 25 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/document.d.ts: -------------------------------------------------------------------------------- 1 | import Container, { ContainerProps } from './container.js' 2 | import { ProcessOptions } from './postcss.js' 3 | import Result from './result.js' 4 | import Root from './root.js' 5 | 6 | declare namespace Document { 7 | export interface DocumentProps extends ContainerProps { 8 | nodes?: Root[] 9 | 10 | /** 11 | * Information to generate byte-to-byte equal node string as it was 12 | * in the origin input. 13 | * 14 | * Every parser saves its own properties. 15 | */ 16 | raws?: Record 17 | } 18 | 19 | // eslint-disable-next-line @typescript-eslint/no-use-before-define 20 | export { Document_ as default } 21 | } 22 | 23 | /** 24 | * Represents a file and contains all its parsed nodes. 25 | * 26 | * **Experimental:** some aspects of this node could change within minor 27 | * or patch version releases. 28 | * 29 | * ```js 30 | * const document = htmlParser( 31 | * '' 32 | * ) 33 | * document.type //=> 'document' 34 | * document.nodes.length //=> 2 35 | * ``` 36 | */ 37 | declare class Document_ extends Container { 38 | parent: undefined 39 | type: 'document' 40 | 41 | constructor(defaults?: Document.DocumentProps) 42 | 43 | assign(overrides: Document.DocumentProps | object): this 44 | clone(overrides?: Partial): Document 45 | cloneAfter(overrides?: Partial): Document 46 | cloneBefore(overrides?: Partial): Document 47 | 48 | /** 49 | * Returns a `Result` instance representing the document’s CSS roots. 50 | * 51 | * ```js 52 | * const root1 = postcss.parse(css1, { from: 'a.css' }) 53 | * const root2 = postcss.parse(css2, { from: 'b.css' }) 54 | * const document = postcss.document() 55 | * document.append(root1) 56 | * document.append(root2) 57 | * const result = document.toResult({ to: 'all.css', map: true }) 58 | * ``` 59 | * 60 | * @param opts Options. 61 | * @return Result with current document’s CSS. 62 | */ 63 | toResult(options?: ProcessOptions): Result 64 | } 65 | 66 | declare class Document extends Document_ {} 67 | 68 | export = Document 69 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/document.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | let Container = require('./container') 4 | 5 | let LazyResult, Processor 6 | 7 | class Document extends Container { 8 | constructor(defaults) { 9 | // type needs to be passed to super, otherwise child roots won't be normalized correctly 10 | super({ type: 'document', ...defaults }) 11 | 12 | if (!this.nodes) { 13 | this.nodes = [] 14 | } 15 | } 16 | 17 | toResult(opts = {}) { 18 | let lazy = new LazyResult(new Processor(), this, opts) 19 | 20 | return lazy.stringify() 21 | } 22 | } 23 | 24 | Document.registerLazyResult = dependant => { 25 | LazyResult = dependant 26 | } 27 | 28 | Document.registerProcessor = dependant => { 29 | Processor = dependant 30 | } 31 | 32 | module.exports = Document 33 | Document.default = Document 34 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/fromJSON.d.ts: -------------------------------------------------------------------------------- 1 | import { JSONHydrator } from './postcss.js' 2 | 3 | interface FromJSON extends JSONHydrator { 4 | default: FromJSON 5 | } 6 | 7 | declare const fromJSON: FromJSON 8 | 9 | export = fromJSON 10 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/fromJSON.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | let Declaration = require('./declaration') 4 | let PreviousMap = require('./previous-map') 5 | let Comment = require('./comment') 6 | let AtRule = require('./at-rule') 7 | let Input = require('./input') 8 | let Root = require('./root') 9 | let Rule = require('./rule') 10 | 11 | function fromJSON(json, inputs) { 12 | if (Array.isArray(json)) return json.map(n => fromJSON(n)) 13 | 14 | let { inputs: ownInputs, ...defaults } = json 15 | if (ownInputs) { 16 | inputs = [] 17 | for (let input of ownInputs) { 18 | let inputHydrated = { ...input, __proto__: Input.prototype } 19 | if (inputHydrated.map) { 20 | inputHydrated.map = { 21 | ...inputHydrated.map, 22 | __proto__: PreviousMap.prototype 23 | } 24 | } 25 | inputs.push(inputHydrated) 26 | } 27 | } 28 | if (defaults.nodes) { 29 | defaults.nodes = json.nodes.map(n => fromJSON(n, inputs)) 30 | } 31 | if (defaults.source) { 32 | let { inputId, ...source } = defaults.source 33 | defaults.source = source 34 | if (inputId != null) { 35 | defaults.source.input = inputs[inputId] 36 | } 37 | } 38 | if (defaults.type === 'root') { 39 | return new Root(defaults) 40 | } else if (defaults.type === 'decl') { 41 | return new Declaration(defaults) 42 | } else if (defaults.type === 'rule') { 43 | return new Rule(defaults) 44 | } else if (defaults.type === 'comment') { 45 | return new Comment(defaults) 46 | } else if (defaults.type === 'atrule') { 47 | return new AtRule(defaults) 48 | } else { 49 | throw new Error('Unknown node type: ' + json.type) 50 | } 51 | } 52 | 53 | module.exports = fromJSON 54 | fromJSON.default = fromJSON 55 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/list.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace list { 2 | type List = { 3 | /** 4 | * Safely splits comma-separated values (such as those for `transition-*` 5 | * and `background` properties). 6 | * 7 | * ```js 8 | * Once (root, { list }) { 9 | * list.comma('black, linear-gradient(white, black)') 10 | * //=> ['black', 'linear-gradient(white, black)'] 11 | * } 12 | * ``` 13 | * 14 | * @param str Comma-separated values. 15 | * @return Split values. 16 | */ 17 | comma(str: string): string[] 18 | 19 | default: List 20 | 21 | /** 22 | * Safely splits space-separated values (such as those for `background`, 23 | * `border-radius`, and other shorthand properties). 24 | * 25 | * ```js 26 | * Once (root, { list }) { 27 | * list.space('1px calc(10% + 1px)') //=> ['1px', 'calc(10% + 1px)'] 28 | * } 29 | * ``` 30 | * 31 | * @param str Space-separated values. 32 | * @return Split values. 33 | */ 34 | space(str: string): string[] 35 | 36 | /** 37 | * Safely splits values. 38 | * 39 | * ```js 40 | * Once (root, { list }) { 41 | * list.split('1px calc(10% + 1px)', [' ', '\n', '\t']) //=> ['1px', 'calc(10% + 1px)'] 42 | * } 43 | * ``` 44 | * 45 | * @param string separated values. 46 | * @param separators array of separators. 47 | * @param last boolean indicator. 48 | * @return Split values. 49 | */ 50 | split(string: string, separators: string[], last: boolean): string[] 51 | } 52 | } 53 | 54 | // eslint-disable-next-line @typescript-eslint/no-redeclare 55 | declare const list: list.List 56 | 57 | export = list 58 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/list.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | let list = { 4 | comma(string) { 5 | return list.split(string, [','], true) 6 | }, 7 | 8 | space(string) { 9 | let spaces = [' ', '\n', '\t'] 10 | return list.split(string, spaces) 11 | }, 12 | 13 | split(string, separators, last) { 14 | let array = [] 15 | let current = '' 16 | let split = false 17 | 18 | let func = 0 19 | let inQuote = false 20 | let prevQuote = '' 21 | let escape = false 22 | 23 | for (let letter of string) { 24 | if (escape) { 25 | escape = false 26 | } else if (letter === '\\') { 27 | escape = true 28 | } else if (inQuote) { 29 | if (letter === prevQuote) { 30 | inQuote = false 31 | } 32 | } else if (letter === '"' || letter === "'") { 33 | inQuote = true 34 | prevQuote = letter 35 | } else if (letter === '(') { 36 | func += 1 37 | } else if (letter === ')') { 38 | if (func > 0) func -= 1 39 | } else if (func === 0) { 40 | if (separators.includes(letter)) split = true 41 | } 42 | 43 | if (split) { 44 | if (current !== '') array.push(current.trim()) 45 | current = '' 46 | split = false 47 | } else { 48 | current += letter 49 | } 50 | } 51 | 52 | if (last || current !== '') array.push(current.trim()) 53 | return array 54 | } 55 | } 56 | 57 | module.exports = list 58 | list.default = list 59 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/no-work-result.d.ts: -------------------------------------------------------------------------------- 1 | import LazyResult from './lazy-result.js' 2 | import { SourceMap } from './postcss.js' 3 | import Processor from './processor.js' 4 | import Result, { Message, ResultOptions } from './result.js' 5 | import Root from './root.js' 6 | import Warning from './warning.js' 7 | 8 | declare namespace NoWorkResult { 9 | // eslint-disable-next-line @typescript-eslint/no-use-before-define 10 | export { NoWorkResult_ as default } 11 | } 12 | 13 | /** 14 | * A Promise proxy for the result of PostCSS transformations. 15 | * This lazy result instance doesn't parse css unless `NoWorkResult#root` or `Result#root` 16 | * are accessed. See the example below for details. 17 | * A `NoWork` instance is returned by `Processor#process` ONLY when no plugins defined. 18 | * 19 | * ```js 20 | * const noWorkResult = postcss().process(css) // No plugins are defined. 21 | * // CSS is not parsed 22 | * let root = noWorkResult.root // now css is parsed because we accessed the root 23 | * ``` 24 | */ 25 | declare class NoWorkResult_ implements LazyResult { 26 | catch: Promise>['catch'] 27 | finally: Promise>['finally'] 28 | then: Promise>['then'] 29 | constructor(processor: Processor, css: string, opts: ResultOptions) 30 | async(): Promise> 31 | sync(): Result 32 | toString(): string 33 | warnings(): Warning[] 34 | get content(): string 35 | get css(): string 36 | get map(): SourceMap 37 | get messages(): Message[] 38 | get opts(): ResultOptions 39 | get processor(): Processor 40 | get root(): Root 41 | get [Symbol.toStringTag](): string 42 | } 43 | 44 | declare class NoWorkResult extends NoWorkResult_ {} 45 | 46 | export = NoWorkResult 47 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/parse.d.ts: -------------------------------------------------------------------------------- 1 | import { Parser } from './postcss.js' 2 | 3 | interface Parse extends Parser { 4 | default: Parse 5 | } 6 | 7 | declare const parse: Parse 8 | 9 | export = parse 10 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/parse.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | let Container = require('./container') 4 | let Parser = require('./parser') 5 | let Input = require('./input') 6 | 7 | function parse(css, opts) { 8 | let input = new Input(css, opts) 9 | let parser = new Parser(input) 10 | try { 11 | parser.parse() 12 | } catch (e) { 13 | if (process.env.NODE_ENV !== 'production') { 14 | if (e.name === 'CssSyntaxError' && opts && opts.from) { 15 | if (/\.scss$/i.test(opts.from)) { 16 | e.message += 17 | '\nYou tried to parse SCSS with ' + 18 | 'the standard CSS parser; ' + 19 | 'try again with the postcss-scss parser' 20 | } else if (/\.sass/i.test(opts.from)) { 21 | e.message += 22 | '\nYou tried to parse Sass with ' + 23 | 'the standard CSS parser; ' + 24 | 'try again with the postcss-sass parser' 25 | } else if (/\.less$/i.test(opts.from)) { 26 | e.message += 27 | '\nYou tried to parse Less with ' + 28 | 'the standard CSS parser; ' + 29 | 'try again with the postcss-less parser' 30 | } 31 | } 32 | } 33 | throw e 34 | } 35 | 36 | return parser.root 37 | } 38 | 39 | module.exports = parse 40 | parse.default = parse 41 | 42 | Container.registerParse(parse) 43 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/postcss.d.mts: -------------------------------------------------------------------------------- 1 | export { 2 | // postcss function / namespace 3 | default, 4 | 5 | // Value exports from postcss.mjs 6 | stringify, 7 | fromJSON, 8 | // @ts-expect-error This value exists, but it’s untyped. 9 | plugin, 10 | parse, 11 | list, 12 | 13 | document, 14 | comment, 15 | atRule, 16 | rule, 17 | decl, 18 | root, 19 | 20 | CssSyntaxError, 21 | Declaration, 22 | Container, 23 | Processor, 24 | Document, 25 | Comment, 26 | Warning, 27 | AtRule, 28 | Result, 29 | Input, 30 | Rule, 31 | Root, 32 | Node, 33 | 34 | // Type-only exports 35 | AcceptedPlugin, 36 | AnyNode, 37 | AtRuleProps, 38 | Builder, 39 | ChildNode, 40 | ChildProps, 41 | CommentProps, 42 | ContainerProps, 43 | DeclarationProps, 44 | DocumentProps, 45 | FilePosition, 46 | Helpers, 47 | JSONHydrator, 48 | Message, 49 | NodeErrorOptions, 50 | NodeProps, 51 | OldPlugin, 52 | Parser, 53 | Plugin, 54 | PluginCreator, 55 | Position, 56 | Postcss, 57 | ProcessOptions, 58 | RootProps, 59 | RuleProps, 60 | Source, 61 | SourceMap, 62 | SourceMapOptions, 63 | Stringifier, 64 | Syntax, 65 | TransformCallback, 66 | Transformer, 67 | WarningOptions, 68 | 69 | // This is a class, but it’s not re-exported. That’s why it’s exported as type-only here. 70 | type LazyResult, 71 | 72 | } from './postcss.js' 73 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/postcss.mjs: -------------------------------------------------------------------------------- 1 | import postcss from './postcss.js' 2 | 3 | export default postcss 4 | 5 | export const stringify = postcss.stringify 6 | export const fromJSON = postcss.fromJSON 7 | export const plugin = postcss.plugin 8 | export const parse = postcss.parse 9 | export const list = postcss.list 10 | 11 | export const document = postcss.document 12 | export const comment = postcss.comment 13 | export const atRule = postcss.atRule 14 | export const rule = postcss.rule 15 | export const decl = postcss.decl 16 | export const root = postcss.root 17 | 18 | export const CssSyntaxError = postcss.CssSyntaxError 19 | export const Declaration = postcss.Declaration 20 | export const Container = postcss.Container 21 | export const Processor = postcss.Processor 22 | export const Document = postcss.Document 23 | export const Comment = postcss.Comment 24 | export const Warning = postcss.Warning 25 | export const AtRule = postcss.AtRule 26 | export const Result = postcss.Result 27 | export const Input = postcss.Input 28 | export const Rule = postcss.Rule 29 | export const Root = postcss.Root 30 | export const Node = postcss.Node 31 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/previous-map.d.ts: -------------------------------------------------------------------------------- 1 | import { SourceMapConsumer } from 'source-map-js' 2 | 3 | import { ProcessOptions } from './postcss.js' 4 | 5 | declare namespace PreviousMap { 6 | // eslint-disable-next-line @typescript-eslint/no-use-before-define 7 | export { PreviousMap_ as default } 8 | } 9 | 10 | /** 11 | * Source map information from input CSS. 12 | * For example, source map after Sass compiler. 13 | * 14 | * This class will automatically find source map in input CSS or in file system 15 | * near input file (according `from` option). 16 | * 17 | * ```js 18 | * const root = parse(css, { from: 'a.sass.css' }) 19 | * root.input.map //=> PreviousMap 20 | * ``` 21 | */ 22 | declare class PreviousMap_ { 23 | /** 24 | * `sourceMappingURL` content. 25 | */ 26 | annotation?: string 27 | 28 | /** 29 | * The CSS source identifier. Contains `Input#file` if the user 30 | * set the `from` option, or `Input#id` if they did not. 31 | */ 32 | file?: string 33 | 34 | /** 35 | * Was source map inlined by data-uri to input CSS. 36 | */ 37 | inline: boolean 38 | 39 | /** 40 | * Path to source map file. 41 | */ 42 | mapFile?: string 43 | 44 | /** 45 | * The directory with source map file, if source map is in separated file. 46 | */ 47 | root?: string 48 | 49 | /** 50 | * Source map file content. 51 | */ 52 | text?: string 53 | 54 | /** 55 | * @param css Input CSS source. 56 | * @param opts Process options. 57 | */ 58 | constructor(css: string, opts?: ProcessOptions) 59 | 60 | /** 61 | * Create a instance of `SourceMapGenerator` class 62 | * from the `source-map` library to work with source map information. 63 | * 64 | * It is lazy method, so it will create object only on first call 65 | * and then it will use cache. 66 | * 67 | * @return Object with source map information. 68 | */ 69 | consumer(): SourceMapConsumer 70 | 71 | /** 72 | * Does source map contains `sourcesContent` with input source text. 73 | * 74 | * @return Is `sourcesContent` present. 75 | */ 76 | withContent(): boolean 77 | } 78 | 79 | declare class PreviousMap extends PreviousMap_ {} 80 | 81 | export = PreviousMap 82 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/processor.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | let NoWorkResult = require('./no-work-result') 4 | let LazyResult = require('./lazy-result') 5 | let Document = require('./document') 6 | let Root = require('./root') 7 | 8 | class Processor { 9 | constructor(plugins = []) { 10 | this.version = '8.4.31' 11 | this.plugins = this.normalize(plugins) 12 | } 13 | 14 | normalize(plugins) { 15 | let normalized = [] 16 | for (let i of plugins) { 17 | if (i.postcss === true) { 18 | i = i() 19 | } else if (i.postcss) { 20 | i = i.postcss 21 | } 22 | 23 | if (typeof i === 'object' && Array.isArray(i.plugins)) { 24 | normalized = normalized.concat(i.plugins) 25 | } else if (typeof i === 'object' && i.postcssPlugin) { 26 | normalized.push(i) 27 | } else if (typeof i === 'function') { 28 | normalized.push(i) 29 | } else if (typeof i === 'object' && (i.parse || i.stringify)) { 30 | if (process.env.NODE_ENV !== 'production') { 31 | throw new Error( 32 | 'PostCSS syntaxes cannot be used as plugins. Instead, please use ' + 33 | 'one of the syntax/parser/stringifier options as outlined ' + 34 | 'in your PostCSS runner documentation.' 35 | ) 36 | } 37 | } else { 38 | throw new Error(i + ' is not a PostCSS plugin') 39 | } 40 | } 41 | return normalized 42 | } 43 | 44 | process(css, opts = {}) { 45 | if ( 46 | this.plugins.length === 0 && 47 | typeof opts.parser === 'undefined' && 48 | typeof opts.stringifier === 'undefined' && 49 | typeof opts.syntax === 'undefined' 50 | ) { 51 | return new NoWorkResult(this, css, opts) 52 | } else { 53 | return new LazyResult(this, css, opts) 54 | } 55 | } 56 | 57 | use(plugin) { 58 | this.plugins = this.plugins.concat(this.normalize([plugin])) 59 | return this 60 | } 61 | } 62 | 63 | module.exports = Processor 64 | Processor.default = Processor 65 | 66 | Root.registerProcessor(Processor) 67 | Document.registerProcessor(Processor) 68 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/result.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | let Warning = require('./warning') 4 | 5 | class Result { 6 | constructor(processor, root, opts) { 7 | this.processor = processor 8 | this.messages = [] 9 | this.root = root 10 | this.opts = opts 11 | this.css = undefined 12 | this.map = undefined 13 | } 14 | 15 | toString() { 16 | return this.css 17 | } 18 | 19 | warn(text, opts = {}) { 20 | if (!opts.plugin) { 21 | if (this.lastPlugin && this.lastPlugin.postcssPlugin) { 22 | opts.plugin = this.lastPlugin.postcssPlugin 23 | } 24 | } 25 | 26 | let warning = new Warning(text, opts) 27 | this.messages.push(warning) 28 | 29 | return warning 30 | } 31 | 32 | warnings() { 33 | return this.messages.filter(i => i.type === 'warning') 34 | } 35 | 36 | get content() { 37 | return this.css 38 | } 39 | } 40 | 41 | module.exports = Result 42 | Result.default = Result 43 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/root.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | let Container = require('./container') 4 | 5 | let LazyResult, Processor 6 | 7 | class Root extends Container { 8 | constructor(defaults) { 9 | super(defaults) 10 | this.type = 'root' 11 | if (!this.nodes) this.nodes = [] 12 | } 13 | 14 | normalize(child, sample, type) { 15 | let nodes = super.normalize(child) 16 | 17 | if (sample) { 18 | if (type === 'prepend') { 19 | if (this.nodes.length > 1) { 20 | sample.raws.before = this.nodes[1].raws.before 21 | } else { 22 | delete sample.raws.before 23 | } 24 | } else if (this.first !== sample) { 25 | for (let node of nodes) { 26 | node.raws.before = sample.raws.before 27 | } 28 | } 29 | } 30 | 31 | return nodes 32 | } 33 | 34 | removeChild(child, ignore) { 35 | let index = this.index(child) 36 | 37 | if (!ignore && index === 0 && this.nodes.length > 1) { 38 | this.nodes[1].raws.before = this.nodes[index].raws.before 39 | } 40 | 41 | return super.removeChild(child) 42 | } 43 | 44 | toResult(opts = {}) { 45 | let lazy = new LazyResult(new Processor(), this, opts) 46 | return lazy.stringify() 47 | } 48 | } 49 | 50 | Root.registerLazyResult = dependant => { 51 | LazyResult = dependant 52 | } 53 | 54 | Root.registerProcessor = dependant => { 55 | Processor = dependant 56 | } 57 | 58 | module.exports = Root 59 | Root.default = Root 60 | 61 | Container.registerRoot(Root) 62 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/rule.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | let Container = require('./container') 4 | let list = require('./list') 5 | 6 | class Rule extends Container { 7 | constructor(defaults) { 8 | super(defaults) 9 | this.type = 'rule' 10 | if (!this.nodes) this.nodes = [] 11 | } 12 | 13 | get selectors() { 14 | return list.comma(this.selector) 15 | } 16 | 17 | set selectors(values) { 18 | let match = this.selector ? this.selector.match(/,\s*/) : null 19 | let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen') 20 | this.selector = values.join(sep) 21 | } 22 | } 23 | 24 | module.exports = Rule 25 | Rule.default = Rule 26 | 27 | Container.registerRule(Rule) 28 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/stringifier.d.ts: -------------------------------------------------------------------------------- 1 | import { 2 | AnyNode, 3 | AtRule, 4 | Builder, 5 | Comment, 6 | Container, 7 | Declaration, 8 | Document, 9 | Root, 10 | Rule 11 | } from './postcss.js' 12 | 13 | declare namespace Stringifier { 14 | // eslint-disable-next-line @typescript-eslint/no-use-before-define 15 | export { Stringifier_ as default } 16 | } 17 | 18 | declare class Stringifier_ { 19 | builder: Builder 20 | constructor(builder: Builder) 21 | atrule(node: AtRule, semicolon?: boolean): void 22 | beforeAfter(node: AnyNode, detect: 'after' | 'before'): string 23 | block(node: AnyNode, start: string): void 24 | body(node: Container): void 25 | comment(node: Comment): void 26 | decl(node: Declaration, semicolon?: boolean): void 27 | document(node: Document): void 28 | raw(node: AnyNode, own: null | string, detect?: string): string 29 | rawBeforeClose(root: Root): string | undefined 30 | rawBeforeComment(root: Root, node: Comment): string | undefined 31 | rawBeforeDecl(root: Root, node: Declaration): string | undefined 32 | rawBeforeOpen(root: Root): string | undefined 33 | rawBeforeRule(root: Root): string | undefined 34 | rawColon(root: Root): string | undefined 35 | rawEmptyBody(root: Root): string | undefined 36 | rawIndent(root: Root): string | undefined 37 | rawSemicolon(root: Root): boolean | undefined 38 | rawValue(node: AnyNode, prop: string): string 39 | root(node: Root): void 40 | rule(node: Rule): void 41 | stringify(node: AnyNode, semicolon?: boolean): void 42 | } 43 | 44 | declare class Stringifier extends Stringifier_ {} 45 | 46 | export = Stringifier 47 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/stringify.d.ts: -------------------------------------------------------------------------------- 1 | import { Stringifier } from './postcss.js' 2 | 3 | interface Stringify extends Stringifier { 4 | default: Stringify 5 | } 6 | 7 | declare const stringify: Stringify 8 | 9 | export = stringify 10 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/stringify.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | let Stringifier = require('./stringifier') 4 | 5 | function stringify(node, builder) { 6 | let str = new Stringifier(builder) 7 | str.stringify(node) 8 | } 9 | 10 | module.exports = stringify 11 | stringify.default = stringify 12 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/symbols.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | module.exports.isClean = Symbol('isClean') 4 | 5 | module.exports.my = Symbol('my') 6 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/terminal-highlight.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | let pico = require('picocolors') 4 | 5 | let tokenizer = require('./tokenize') 6 | 7 | let Input 8 | 9 | function registerInput(dependant) { 10 | Input = dependant 11 | } 12 | 13 | const HIGHLIGHT_THEME = { 14 | ';': pico.yellow, 15 | ':': pico.yellow, 16 | '(': pico.cyan, 17 | ')': pico.cyan, 18 | '[': pico.yellow, 19 | ']': pico.yellow, 20 | '{': pico.yellow, 21 | '}': pico.yellow, 22 | 'at-word': pico.cyan, 23 | 'brackets': pico.cyan, 24 | 'call': pico.cyan, 25 | 'class': pico.yellow, 26 | 'comment': pico.gray, 27 | 'hash': pico.magenta, 28 | 'string': pico.green 29 | } 30 | 31 | function getTokenType([type, value], processor) { 32 | if (type === 'word') { 33 | if (value[0] === '.') { 34 | return 'class' 35 | } 36 | if (value[0] === '#') { 37 | return 'hash' 38 | } 39 | } 40 | 41 | if (!processor.endOfFile()) { 42 | let next = processor.nextToken() 43 | processor.back(next) 44 | if (next[0] === 'brackets' || next[0] === '(') return 'call' 45 | } 46 | 47 | return type 48 | } 49 | 50 | function terminalHighlight(css) { 51 | let processor = tokenizer(new Input(css), { ignoreErrors: true }) 52 | let result = '' 53 | while (!processor.endOfFile()) { 54 | let token = processor.nextToken() 55 | let color = HIGHLIGHT_THEME[getTokenType(token, processor)] 56 | if (color) { 57 | result += token[1] 58 | .split(/\r?\n/) 59 | .map(i => color(i)) 60 | .join('\n') 61 | } else { 62 | result += token[1] 63 | } 64 | } 65 | return result 66 | } 67 | 68 | terminalHighlight.registerInput = registerInput 69 | 70 | module.exports = terminalHighlight 71 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/warn-once.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable no-console */ 2 | 'use strict' 3 | 4 | let printed = {} 5 | 6 | module.exports = function warnOnce(message) { 7 | if (printed[message]) return 8 | printed[message] = true 9 | 10 | if (typeof console !== 'undefined' && console.warn) { 11 | console.warn(message) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Class2/node_modules/postcss/lib/warning.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | class Warning { 4 | constructor(text, opts = {}) { 5 | this.type = 'warning' 6 | this.text = text 7 | 8 | if (opts.node && opts.node.source) { 9 | let range = opts.node.rangeBy(opts) 10 | this.line = range.start.line 11 | this.column = range.start.column 12 | this.endLine = range.end.line 13 | this.endColumn = range.end.column 14 | } 15 | 16 | for (let opt in opts) this[opt] = opts[opt] 17 | } 18 | 19 | toString() { 20 | if (this.node) { 21 | return this.node.error(this.text, { 22 | index: this.index, 23 | plugin: this.plugin, 24 | word: this.word 25 | }).message 26 | } 27 | 28 | if (this.plugin) { 29 | return this.plugin + ': ' + this.text 30 | } 31 | 32 | return this.text 33 | } 34 | } 35 | 36 | module.exports = Warning 37 | Warning.default = Warning 38 | -------------------------------------------------------------------------------- /Class2/node_modules/rollup/dist/es/getLogFilter.js: -------------------------------------------------------------------------------- 1 | /* 2 | @license 3 | Rollup.js v3.29.4 4 | Thu, 28 Sep 2023 04:54:30 GMT - commit 4e92d60fa90cead39481e3703d26e5d812f43bd1 5 | 6 | https://github.com/rollup/rollup 7 | 8 | Released under the MIT License. 9 | */ 10 | const getLogFilter = filters => { 11 | if (filters.length === 0) 12 | return () => true; 13 | const normalizedFilters = filters.map(filter => filter.split('&').map(subFilter => { 14 | const inverted = subFilter.startsWith('!'); 15 | if (inverted) 16 | subFilter = subFilter.slice(1); 17 | const [key, ...value] = subFilter.split(':'); 18 | return { inverted, key: key.split('.'), parts: value.join(':').split('*') }; 19 | })); 20 | return (log) => { 21 | nextIntersectedFilter: for (const intersectedFilters of normalizedFilters) { 22 | for (const { inverted, key, parts } of intersectedFilters) { 23 | const isFilterSatisfied = testFilter(log, key, parts); 24 | if (inverted ? isFilterSatisfied : !isFilterSatisfied) { 25 | continue nextIntersectedFilter; 26 | } 27 | } 28 | return true; 29 | } 30 | return false; 31 | }; 32 | }; 33 | const testFilter = (log, key, parts) => { 34 | let rawValue = log; 35 | for (let index = 0; index < key.length; index++) { 36 | if (!rawValue) { 37 | return false; 38 | } 39 | const part = key[index]; 40 | if (!(part in rawValue)) { 41 | return false; 42 | } 43 | rawValue = rawValue[part]; 44 | } 45 | let value = typeof rawValue === 'object' ? JSON.stringify(rawValue) : String(rawValue); 46 | if (parts.length === 1) { 47 | return value === parts[0]; 48 | } 49 | if (!value.startsWith(parts[0])) { 50 | return false; 51 | } 52 | const lastPartIndex = parts.length - 1; 53 | for (let index = 1; index < lastPartIndex; index++) { 54 | const part = parts[index]; 55 | const position = value.indexOf(part); 56 | if (position === -1) { 57 | return false; 58 | } 59 | value = value.slice(position + part.length); 60 | } 61 | return value.endsWith(parts[lastPartIndex]); 62 | }; 63 | 64 | export { getLogFilter }; 65 | -------------------------------------------------------------------------------- /Class2/node_modules/rollup/dist/es/package.json: -------------------------------------------------------------------------------- 1 | {"type":"module"} -------------------------------------------------------------------------------- /Class2/node_modules/rollup/dist/es/rollup.js: -------------------------------------------------------------------------------- 1 | /* 2 | @license 3 | Rollup.js v3.29.4 4 | Thu, 28 Sep 2023 04:54:30 GMT - commit 4e92d60fa90cead39481e3703d26e5d812f43bd1 5 | 6 | https://github.com/rollup/rollup 7 | 8 | Released under the MIT License. 9 | */ 10 | export { version as VERSION, defineConfig, rollup, watch } from './shared/node-entry.js'; 11 | import 'node:path'; 12 | import 'path'; 13 | import 'node:process'; 14 | import 'node:perf_hooks'; 15 | import 'node:crypto'; 16 | import 'node:fs/promises'; 17 | import 'tty'; 18 | -------------------------------------------------------------------------------- /Class2/node_modules/rollup/dist/getLogFilter.d.ts: -------------------------------------------------------------------------------- 1 | import type { RollupLog } from './rollup'; 2 | 3 | export type GetLogFilter = typeof getLogFilter; 4 | 5 | export function getLogFilter(filters: string[]): (log: RollupLog) => boolean; 6 | -------------------------------------------------------------------------------- /Class2/node_modules/rollup/dist/loadConfigFile.d.ts: -------------------------------------------------------------------------------- 1 | import type { LogHandler, MergedRollupOptions, RollupLog } from './rollup'; 2 | 3 | export interface BatchWarnings { 4 | add: (warning: RollupLog) => void; 5 | readonly count: number; 6 | flush: () => void; 7 | log: LogHandler; 8 | readonly warningOccurred: boolean; 9 | } 10 | 11 | export type LoadConfigFile = typeof loadConfigFile; 12 | 13 | export function loadConfigFile( 14 | fileName: string, 15 | commandOptions: any, 16 | watchMode?: boolean 17 | ): Promise<{ 18 | options: MergedRollupOptions[]; 19 | warnings: BatchWarnings; 20 | }>; 21 | -------------------------------------------------------------------------------- /Class2/node_modules/rollup/dist/loadConfigFile.js: -------------------------------------------------------------------------------- 1 | /* 2 | @license 3 | Rollup.js v3.29.4 4 | Thu, 28 Sep 2023 04:54:30 GMT - commit 4e92d60fa90cead39481e3703d26e5d812f43bd1 5 | 6 | https://github.com/rollup/rollup 7 | 8 | Released under the MIT License. 9 | */ 10 | 'use strict'; 11 | 12 | Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 13 | 14 | require('node:fs/promises'); 15 | require('node:path'); 16 | require('node:process'); 17 | require('node:url'); 18 | require('./shared/rollup.js'); 19 | const loadConfigFile_js = require('./shared/loadConfigFile.js'); 20 | require('tty'); 21 | require('path'); 22 | require('node:perf_hooks'); 23 | require('node:crypto'); 24 | require('./getLogFilter.js'); 25 | 26 | 27 | 28 | exports.loadConfigFile = loadConfigFile_js.loadConfigFile; 29 | //# sourceMappingURL=loadConfigFile.js.map 30 | -------------------------------------------------------------------------------- /Class2/node_modules/rollup/dist/rollup.js: -------------------------------------------------------------------------------- 1 | /* 2 | @license 3 | Rollup.js v3.29.4 4 | Thu, 28 Sep 2023 04:54:30 GMT - commit 4e92d60fa90cead39481e3703d26e5d812f43bd1 5 | 6 | https://github.com/rollup/rollup 7 | 8 | Released under the MIT License. 9 | */ 10 | 'use strict'; 11 | 12 | Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 13 | 14 | const rollup = require('./shared/rollup.js'); 15 | const watchProxy = require('./shared/watch-proxy.js'); 16 | require('node:process'); 17 | require('tty'); 18 | require('node:path'); 19 | require('path'); 20 | require('node:perf_hooks'); 21 | require('node:crypto'); 22 | require('node:fs/promises'); 23 | require('./shared/fsevents-importer.js'); 24 | 25 | 26 | 27 | exports.VERSION = rollup.version; 28 | exports.defineConfig = rollup.defineConfig; 29 | exports.rollup = rollup.rollup; 30 | exports.watch = watchProxy.watch; 31 | //# sourceMappingURL=rollup.js.map 32 | -------------------------------------------------------------------------------- /Class2/node_modules/rollup/dist/shared/fsevents-importer.js: -------------------------------------------------------------------------------- 1 | /* 2 | @license 3 | Rollup.js v3.29.4 4 | Thu, 28 Sep 2023 04:54:30 GMT - commit 4e92d60fa90cead39481e3703d26e5d812f43bd1 5 | 6 | https://github.com/rollup/rollup 7 | 8 | Released under the MIT License. 9 | */ 10 | 'use strict'; 11 | 12 | let fsEvents; 13 | let fsEventsImportError; 14 | async function loadFsEvents() { 15 | try { 16 | ({ default: fsEvents } = await import('fsevents')); 17 | } 18 | catch (error) { 19 | fsEventsImportError = error; 20 | } 21 | } 22 | // A call to this function will be injected into the chokidar code 23 | function getFsEvents() { 24 | if (fsEventsImportError) 25 | throw fsEventsImportError; 26 | return fsEvents; 27 | } 28 | 29 | const fseventsImporter = /*#__PURE__*/Object.defineProperty({ 30 | __proto__: null, 31 | getFsEvents, 32 | loadFsEvents 33 | }, Symbol.toStringTag, { value: 'Module' }); 34 | 35 | exports.fseventsImporter = fseventsImporter; 36 | exports.loadFsEvents = loadFsEvents; 37 | //# sourceMappingURL=fsevents-importer.js.map 38 | -------------------------------------------------------------------------------- /Class2/node_modules/source-map-js/LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Copyright (c) 2009-2011, Mozilla Foundation and contributors 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | 8 | * Redistributions of source code must retain the above copyright notice, this 9 | list of conditions and the following disclaimer. 10 | 11 | * Redistributions in binary form must reproduce the above copyright notice, 12 | this list of conditions and the following disclaimer in the documentation 13 | and/or other materials provided with the distribution. 14 | 15 | * Neither the names of the Mozilla Foundation nor the names of project 16 | contributors may be used to endorse or promote products derived from this 17 | software without specific prior written permission. 18 | 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 20 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 21 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 23 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 27 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | -------------------------------------------------------------------------------- /Class2/node_modules/source-map-js/lib/base64.js: -------------------------------------------------------------------------------- 1 | /* -*- Mode: js; js-indent-level: 2; -*- */ 2 | /* 3 | * Copyright 2011 Mozilla Foundation and contributors 4 | * Licensed under the New BSD license. See LICENSE or: 5 | * http://opensource.org/licenses/BSD-3-Clause 6 | */ 7 | 8 | var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); 9 | 10 | /** 11 | * Encode an integer in the range of 0 to 63 to a single base 64 digit. 12 | */ 13 | exports.encode = function (number) { 14 | if (0 <= number && number < intToCharMap.length) { 15 | return intToCharMap[number]; 16 | } 17 | throw new TypeError("Must be between 0 and 63: " + number); 18 | }; 19 | 20 | /** 21 | * Decode a single base 64 character code digit to an integer. Returns -1 on 22 | * failure. 23 | */ 24 | exports.decode = function (charCode) { 25 | var bigA = 65; // 'A' 26 | var bigZ = 90; // 'Z' 27 | 28 | var littleA = 97; // 'a' 29 | var littleZ = 122; // 'z' 30 | 31 | var zero = 48; // '0' 32 | var nine = 57; // '9' 33 | 34 | var plus = 43; // '+' 35 | var slash = 47; // '/' 36 | 37 | var littleOffset = 26; 38 | var numberOffset = 52; 39 | 40 | // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ 41 | if (bigA <= charCode && charCode <= bigZ) { 42 | return (charCode - bigA); 43 | } 44 | 45 | // 26 - 51: abcdefghijklmnopqrstuvwxyz 46 | if (littleA <= charCode && charCode <= littleZ) { 47 | return (charCode - littleA + littleOffset); 48 | } 49 | 50 | // 52 - 61: 0123456789 51 | if (zero <= charCode && charCode <= nine) { 52 | return (charCode - zero + numberOffset); 53 | } 54 | 55 | // 62: + 56 | if (charCode == plus) { 57 | return 62; 58 | } 59 | 60 | // 63: / 61 | if (charCode == slash) { 62 | return 63; 63 | } 64 | 65 | // Invalid base64 digit. 66 | return -1; 67 | }; 68 | -------------------------------------------------------------------------------- /Class2/node_modules/source-map-js/source-map.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2009-2011 Mozilla Foundation and contributors 3 | * Licensed under the New BSD license. See LICENSE.txt or: 4 | * http://opensource.org/licenses/BSD-3-Clause 5 | */ 6 | exports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator; 7 | exports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer; 8 | exports.SourceNode = require('./lib/source-node').SourceNode; 9 | -------------------------------------------------------------------------------- /Class2/node_modules/vite/README.md: -------------------------------------------------------------------------------- 1 | # vite ⚡ 2 | 3 | > Next Generation Frontend Tooling 4 | 5 | - 💡 Instant Server Start 6 | - ⚡️ Lightning Fast HMR 7 | - 🛠️ Rich Features 8 | - 📦 Optimized Build 9 | - 🔩 Universal Plugin Interface 10 | - 🔑 Fully Typed APIs 11 | 12 | Vite (French word for "fast", pronounced `/vit/`) is a new breed of frontend build tool that significantly improves the frontend development experience. It consists of two major parts: 13 | 14 | - A dev server that serves your source files over [native ES modules](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules), with [rich built-in features](https://vitejs.dev/guide/features.html) and astonishingly fast [Hot Module Replacement (HMR)](https://vitejs.dev/guide/features.html#hot-module-replacement). 15 | 16 | - A [build command](https://vitejs.dev/guide/build.html) that bundles your code with [Rollup](https://rollupjs.org), pre-configured to output highly optimized static assets for production. 17 | 18 | In addition, Vite is highly extensible via its [Plugin API](https://vitejs.dev/guide/api-plugin.html) and [JavaScript API](https://vitejs.dev/guide/api-javascript.html) with full typing support. 19 | 20 | [Read the Docs to Learn More](https://vitejs.dev). 21 | -------------------------------------------------------------------------------- /Class2/node_modules/vite/bin/vite.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | import { performance } from 'node:perf_hooks' 3 | 4 | if (!import.meta.url.includes('node_modules')) { 5 | try { 6 | // only available as dev dependency 7 | await import('source-map-support').then((r) => r.default.install()) 8 | } catch (e) {} 9 | } 10 | 11 | global.__vite_start_time = performance.now() 12 | 13 | // check debug mode first before requiring the CLI. 14 | const debugIndex = process.argv.findIndex((arg) => /^(?:-d|--debug)$/.test(arg)) 15 | const filterIndex = process.argv.findIndex((arg) => 16 | /^(?:-f|--filter)$/.test(arg), 17 | ) 18 | const profileIndex = process.argv.indexOf('--profile') 19 | 20 | if (debugIndex > 0) { 21 | let value = process.argv[debugIndex + 1] 22 | if (!value || value.startsWith('-')) { 23 | value = 'vite:*' 24 | } else { 25 | // support debugging multiple flags with comma-separated list 26 | value = value 27 | .split(',') 28 | .map((v) => `vite:${v}`) 29 | .join(',') 30 | } 31 | process.env.DEBUG = `${ 32 | process.env.DEBUG ? process.env.DEBUG + ',' : '' 33 | }${value}` 34 | 35 | if (filterIndex > 0) { 36 | const filter = process.argv[filterIndex + 1] 37 | if (filter && !filter.startsWith('-')) { 38 | process.env.VITE_DEBUG_FILTER = filter 39 | } 40 | } 41 | } 42 | 43 | function start() { 44 | return import('../dist/node/cli.js') 45 | } 46 | 47 | if (profileIndex > 0) { 48 | process.argv.splice(profileIndex, 1) 49 | const next = process.argv[profileIndex] 50 | if (next && !next.startsWith('-')) { 51 | process.argv.splice(profileIndex, 1) 52 | } 53 | const inspector = await import('node:inspector').then((r) => r.default) 54 | const session = (global.__vite_profile_session = new inspector.Session()) 55 | session.connect() 56 | session.post('Profiler.enable', () => { 57 | session.post('Profiler.start', start) 58 | }) 59 | } else { 60 | start() 61 | } 62 | -------------------------------------------------------------------------------- /Class2/node_modules/vite/dist/client/env.mjs: -------------------------------------------------------------------------------- 1 | const context = (() => { 2 | if (typeof globalThis !== 'undefined') { 3 | return globalThis; 4 | } 5 | else if (typeof self !== 'undefined') { 6 | return self; 7 | } 8 | else if (typeof window !== 'undefined') { 9 | return window; 10 | } 11 | else { 12 | return Function('return this')(); 13 | } 14 | })(); 15 | // assign defines 16 | const defines = __DEFINES__; 17 | Object.keys(defines).forEach((key) => { 18 | const segments = key.split('.'); 19 | let target = context; 20 | for (let i = 0; i < segments.length; i++) { 21 | const segment = segments[i]; 22 | if (i === segments.length - 1) { 23 | target[segment] = defines[key]; 24 | } 25 | else { 26 | target = target[segment] || (target[segment] = {}); 27 | } 28 | } 29 | }); 30 | //# sourceMappingURL=env.mjs.map 31 | -------------------------------------------------------------------------------- /Class2/node_modules/vite/dist/client/env.mjs.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"env.mjs","sources":["env.ts"],"sourcesContent":["declare const __MODE__: string\ndeclare const __DEFINES__: Record\n\nconst context = (() => {\n if (typeof globalThis !== 'undefined') {\n return globalThis\n } else if (typeof self !== 'undefined') {\n return self\n } else if (typeof window !== 'undefined') {\n return window\n } else {\n return Function('return this')()\n }\n})()\n\n// assign defines\nconst defines = __DEFINES__\nObject.keys(defines).forEach((key) => {\n const segments = key.split('.')\n let target = context\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i]\n if (i === segments.length - 1) {\n target[segment] = defines[key]\n } else {\n target = target[segment] || (target[segment] = {})\n }\n }\n})\n"],"names":[],"mappings":"AAGA,MAAM,OAAO,GAAG,CAAC,MAAK;AACpB,IAAA,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE;AACrC,QAAA,OAAO,UAAU,CAAA;AAClB,KAAA;AAAM,SAAA,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;AACtC,QAAA,OAAO,IAAI,CAAA;AACZ,KAAA;AAAM,SAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACxC,QAAA,OAAO,MAAM,CAAA;AACd,KAAA;AAAM,SAAA;AACL,QAAA,OAAO,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAA;AACjC,KAAA;AACH,CAAC,GAAG,CAAA;AAEJ;AACA,MAAM,OAAO,GAAG,WAAW,CAAA;AAC3B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;IACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC/B,IAAI,MAAM,GAAG,OAAO,CAAA;AACpB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;AAC3B,QAAA,IAAI,CAAC,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;AAC/B,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;AACnD,SAAA;AACF,KAAA;AACH,CAAC,CAAC","x_google_ignoreList":[0]} -------------------------------------------------------------------------------- /Class2/node_modules/vite/index.cjs: -------------------------------------------------------------------------------- 1 | /* eslint-disable no-restricted-globals */ 2 | 3 | // type utils 4 | module.exports.defineConfig = (config) => config 5 | 6 | // proxy cjs utils (sync functions) 7 | Object.assign(module.exports, require('./dist/node-cjs/publicUtils.cjs')) 8 | 9 | // async functions, can be redirect from ESM build 10 | const asyncFunctions = [ 11 | 'build', 12 | 'createServer', 13 | 'preview', 14 | 'transformWithEsbuild', 15 | 'resolveConfig', 16 | 'optimizeDeps', 17 | 'formatPostcssSourceMap', 18 | 'loadConfigFromFile', 19 | 'preprocessCSS', 20 | ] 21 | asyncFunctions.forEach((name) => { 22 | module.exports[name] = (...args) => 23 | import('./dist/node/index.js').then((i) => i[name](...args)) 24 | }) 25 | 26 | // some sync functions are marked not supported due to their complexity and uncommon usage 27 | const unsupportedCJS = ['resolvePackageEntry', 'resolvePackageData'] 28 | unsupportedCJS.forEach((name) => { 29 | module.exports[name] = () => { 30 | throw new Error( 31 | `"${name}" is not supported in CJS build of Vite 4.\nPlease use ESM or dynamic imports \`const { ${name} } = await import('vite')\`.`, 32 | ) 33 | } 34 | }) 35 | -------------------------------------------------------------------------------- /Class2/node_modules/vite/types/customEvent.d.ts: -------------------------------------------------------------------------------- 1 | import type { 2 | ErrorPayload, 3 | FullReloadPayload, 4 | PrunePayload, 5 | UpdatePayload, 6 | } from './hmrPayload' 7 | 8 | export interface CustomEventMap { 9 | 'vite:beforeUpdate': UpdatePayload 10 | 'vite:afterUpdate': UpdatePayload 11 | 'vite:beforePrune': PrunePayload 12 | 'vite:beforeFullReload': FullReloadPayload 13 | 'vite:error': ErrorPayload 14 | 'vite:invalidate': InvalidatePayload 15 | 'vite:ws:connect': WebSocketConnectionPayload 16 | 'vite:ws:disconnect': WebSocketConnectionPayload 17 | } 18 | 19 | export interface WebSocketConnectionPayload { 20 | /** 21 | * @experimental 22 | * We expose this instance experimentally to see potential usage. 23 | * This might be removed in the future if we didn't find reasonable use cases. 24 | * If you find this useful, please open an issue with details so we can discuss and make it stable API. 25 | */ 26 | webSocket: WebSocket 27 | } 28 | 29 | export interface InvalidatePayload { 30 | path: string 31 | message: string | undefined 32 | } 33 | 34 | export type InferCustomEventPayload = 35 | T extends keyof CustomEventMap ? CustomEventMap[T] : any 36 | -------------------------------------------------------------------------------- /Class2/node_modules/vite/types/hmrPayload.d.ts: -------------------------------------------------------------------------------- 1 | export type HMRPayload = 2 | | ConnectedPayload 3 | | UpdatePayload 4 | | FullReloadPayload 5 | | CustomPayload 6 | | ErrorPayload 7 | | PrunePayload 8 | 9 | export interface ConnectedPayload { 10 | type: 'connected' 11 | } 12 | 13 | export interface UpdatePayload { 14 | type: 'update' 15 | updates: Update[] 16 | } 17 | 18 | export interface Update { 19 | type: 'js-update' | 'css-update' 20 | path: string 21 | acceptedPath: string 22 | timestamp: number 23 | /** 24 | * @experimental internal 25 | */ 26 | explicitImportRequired?: boolean | undefined 27 | } 28 | 29 | export interface PrunePayload { 30 | type: 'prune' 31 | paths: string[] 32 | } 33 | 34 | export interface FullReloadPayload { 35 | type: 'full-reload' 36 | path?: string 37 | } 38 | 39 | export interface CustomPayload { 40 | type: 'custom' 41 | event: string 42 | data?: any 43 | } 44 | 45 | export interface ErrorPayload { 46 | type: 'error' 47 | err: { 48 | [name: string]: any 49 | message: string 50 | stack: string 51 | id?: string 52 | frame?: string 53 | plugin?: string 54 | pluginCode?: string 55 | loc?: { 56 | file?: string 57 | line: number 58 | column: number 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /Class2/node_modules/vite/types/hot.d.ts: -------------------------------------------------------------------------------- 1 | import type { InferCustomEventPayload } from './customEvent' 2 | 3 | export type ModuleNamespace = Record & { 4 | [Symbol.toStringTag]: 'Module' 5 | } 6 | 7 | export interface ViteHotContext { 8 | readonly data: any 9 | 10 | accept(): void 11 | accept(cb: (mod: ModuleNamespace | undefined) => void): void 12 | accept(dep: string, cb: (mod: ModuleNamespace | undefined) => void): void 13 | accept( 14 | deps: readonly string[], 15 | cb: (mods: Array) => void, 16 | ): void 17 | 18 | acceptExports( 19 | exportNames: string | readonly string[], 20 | cb?: (mod: ModuleNamespace | undefined) => void, 21 | ): void 22 | 23 | dispose(cb: (data: any) => void): void 24 | prune(cb: (data: any) => void): void 25 | invalidate(message?: string): void 26 | 27 | on( 28 | event: T, 29 | cb: (payload: InferCustomEventPayload) => void, 30 | ): void 31 | send(event: T, data?: InferCustomEventPayload): void 32 | } 33 | -------------------------------------------------------------------------------- /Class2/node_modules/vite/types/importMeta.d.ts: -------------------------------------------------------------------------------- 1 | // This file is an augmentation to the built-in ImportMeta interface 2 | // Thus cannot contain any top-level imports 3 | // 4 | 5 | interface ImportMetaEnv { 6 | [key: string]: any 7 | BASE_URL: string 8 | MODE: string 9 | DEV: boolean 10 | PROD: boolean 11 | SSR: boolean 12 | } 13 | 14 | interface ImportMeta { 15 | url: string 16 | 17 | readonly hot?: import('./hot').ViteHotContext 18 | 19 | readonly env: ImportMetaEnv 20 | 21 | glob: import('./importGlob').ImportGlobFunction 22 | /** 23 | * @deprecated Use `import.meta.glob('*', { eager: true })` instead 24 | */ 25 | globEager: import('./importGlob').ImportGlobEagerFunction 26 | } 27 | -------------------------------------------------------------------------------- /Class2/node_modules/vite/types/metadata.d.ts: -------------------------------------------------------------------------------- 1 | export interface ChunkMetadata { 2 | importedAssets: Set 3 | importedCss: Set 4 | } 5 | 6 | declare module 'rollup' { 7 | export interface RenderedChunk { 8 | viteMetadata?: ChunkMetadata 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Class2/node_modules/vite/types/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "//": "this file is here to make typescript happy when moduleResolution=node16+", 3 | "version": "0.0.0" 4 | } 5 | -------------------------------------------------------------------------------- /Class2/node_modules/vue/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2018-present, Yuxi (Evan) You 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /Class2/node_modules/vue/compiler-sfc/index.browser.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@vue/compiler-sfc') 2 | -------------------------------------------------------------------------------- /Class2/node_modules/vue/compiler-sfc/index.browser.mjs: -------------------------------------------------------------------------------- 1 | export * from '@vue/compiler-sfc' 2 | -------------------------------------------------------------------------------- /Class2/node_modules/vue/compiler-sfc/index.d.mts: -------------------------------------------------------------------------------- 1 | export * from '@vue/compiler-sfc' 2 | -------------------------------------------------------------------------------- /Class2/node_modules/vue/compiler-sfc/index.d.ts: -------------------------------------------------------------------------------- 1 | export * from '@vue/compiler-sfc' 2 | -------------------------------------------------------------------------------- /Class2/node_modules/vue/compiler-sfc/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@vue/compiler-sfc') 2 | 3 | require('./register-ts.js') 4 | -------------------------------------------------------------------------------- /Class2/node_modules/vue/compiler-sfc/index.mjs: -------------------------------------------------------------------------------- 1 | export * from '@vue/compiler-sfc' 2 | 3 | import './register-ts.js' 4 | -------------------------------------------------------------------------------- /Class2/node_modules/vue/compiler-sfc/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "index.js", 3 | "module": "index.mjs" 4 | } 5 | -------------------------------------------------------------------------------- /Class2/node_modules/vue/compiler-sfc/register-ts.js: -------------------------------------------------------------------------------- 1 | if (typeof require !== 'undefined') { 2 | try { 3 | require('@vue/compiler-sfc').registerTS(() => require('typescript')) 4 | } catch (e) {} 5 | } 6 | -------------------------------------------------------------------------------- /Class2/node_modules/vue/dist/vue.cjs.prod.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | Object.defineProperty(exports, '__esModule', { value: true }); 4 | 5 | var compilerDom = require('@vue/compiler-dom'); 6 | var runtimeDom = require('@vue/runtime-dom'); 7 | var shared = require('@vue/shared'); 8 | 9 | function _interopNamespaceDefault(e) { 10 | var n = Object.create(null); 11 | if (e) { 12 | for (var k in e) { 13 | n[k] = e[k]; 14 | } 15 | } 16 | n.default = e; 17 | return Object.freeze(n); 18 | } 19 | 20 | var runtimeDom__namespace = /*#__PURE__*/_interopNamespaceDefault(runtimeDom); 21 | 22 | const compileCache = /* @__PURE__ */ Object.create(null); 23 | function compileToFunction(template, options) { 24 | if (!shared.isString(template)) { 25 | if (template.nodeType) { 26 | template = template.innerHTML; 27 | } else { 28 | return shared.NOOP; 29 | } 30 | } 31 | const key = template; 32 | const cached = compileCache[key]; 33 | if (cached) { 34 | return cached; 35 | } 36 | if (template[0] === "#") { 37 | const el = document.querySelector(template); 38 | template = el ? el.innerHTML : ``; 39 | } 40 | const opts = shared.extend( 41 | { 42 | hoistStatic: true, 43 | onError: void 0, 44 | onWarn: shared.NOOP 45 | }, 46 | options 47 | ); 48 | if (!opts.isCustomElement && typeof customElements !== "undefined") { 49 | opts.isCustomElement = (tag) => !!customElements.get(tag); 50 | } 51 | const { code } = compilerDom.compile(template, opts); 52 | const render = new Function("Vue", code)(runtimeDom__namespace); 53 | render._rc = true; 54 | return compileCache[key] = render; 55 | } 56 | runtimeDom.registerRuntimeCompiler(compileToFunction); 57 | 58 | exports.compile = compileToFunction; 59 | Object.keys(runtimeDom).forEach(function (k) { 60 | if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = runtimeDom[k]; 61 | }); 62 | -------------------------------------------------------------------------------- /Class2/node_modules/vue/dist/vue.d.mts: -------------------------------------------------------------------------------- 1 | import { CompilerOptions } from '@vue/compiler-dom'; 2 | import { RenderFunction } from '@vue/runtime-dom'; 3 | export * from '@vue/runtime-dom'; 4 | 5 | export declare function compileToFunction(template: string | HTMLElement, options?: CompilerOptions): RenderFunction; 6 | 7 | export { compileToFunction as compile }; 8 | // this is appended to the end of ../dist/vue.d.ts during build. 9 | // imports the global JSX namespace registration for compat. 10 | // TODO: remove in 3.4 11 | import '../jsx' 12 | -------------------------------------------------------------------------------- /Class2/node_modules/vue/dist/vue.d.ts: -------------------------------------------------------------------------------- 1 | import { CompilerOptions } from '@vue/compiler-dom'; 2 | import { RenderFunction } from '@vue/runtime-dom'; 3 | export * from '@vue/runtime-dom'; 4 | 5 | export declare function compileToFunction(template: string | HTMLElement, options?: CompilerOptions): RenderFunction; 6 | 7 | export { compileToFunction as compile }; 8 | // this is appended to the end of ../dist/vue.d.ts during build. 9 | // imports the global JSX namespace registration for compat. 10 | // TODO: remove in 3.4 11 | import '../jsx' 12 | -------------------------------------------------------------------------------- /Class2/node_modules/vue/dist/vue.runtime.esm-bundler.js: -------------------------------------------------------------------------------- 1 | import { initCustomFormatter, warn } from '@vue/runtime-dom'; 2 | export * from '@vue/runtime-dom'; 3 | 4 | function initDev() { 5 | { 6 | initCustomFormatter(); 7 | } 8 | } 9 | 10 | if (!!(process.env.NODE_ENV !== "production")) { 11 | initDev(); 12 | } 13 | const compile = () => { 14 | if (!!(process.env.NODE_ENV !== "production")) { 15 | warn( 16 | `Runtime compilation is not supported in this build of Vue.` + (` Configure your bundler to alias "vue" to "vue/dist/vue.esm-bundler.js".` ) 17 | /* should not happen */ 18 | ); 19 | } 20 | }; 21 | 22 | export { compile }; 23 | -------------------------------------------------------------------------------- /Class2/node_modules/vue/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | if (process.env.NODE_ENV === 'production') { 4 | module.exports = require('./dist/vue.cjs.prod.js') 5 | } else { 6 | module.exports = require('./dist/vue.cjs.js') 7 | } 8 | -------------------------------------------------------------------------------- /Class2/node_modules/vue/index.mjs: -------------------------------------------------------------------------------- 1 | export * from './index.js' -------------------------------------------------------------------------------- /Class2/node_modules/vue/jsx-runtime/index.d.ts: -------------------------------------------------------------------------------- 1 | import type { VNode, ReservedProps, NativeElements } from '@vue/runtime-dom' 2 | 3 | /** 4 | * JSX namespace for usage with @jsxImportsSource directive 5 | * when ts compilerOptions.jsx is 'react-jsx' or 'react-jsxdev' 6 | * https://www.typescriptlang.org/tsconfig#jsxImportSource 7 | */ 8 | export { h as jsx, h as jsxDEV, Fragment } from '@vue/runtime-dom' 9 | 10 | export namespace JSX { 11 | export interface Element extends VNode {} 12 | export interface ElementClass { 13 | $props: {} 14 | } 15 | export interface ElementAttributesProperty { 16 | $props: {} 17 | } 18 | export interface IntrinsicElements extends NativeElements { 19 | // allow arbitrary elements 20 | // @ts-ignore suppress ts:2374 = Duplicate string index signature. 21 | [name: string]: any 22 | } 23 | export interface IntrinsicAttributes extends ReservedProps {} 24 | } 25 | -------------------------------------------------------------------------------- /Class2/node_modules/vue/jsx-runtime/index.js: -------------------------------------------------------------------------------- 1 | const { h, Fragment } = require('vue') 2 | 3 | function jsx(type, props, key) { 4 | const { children } = props 5 | delete props.children 6 | if (arguments.length > 2) { 7 | props.key = key 8 | } 9 | return h(type, props, children) 10 | } 11 | 12 | exports.jsx = jsx 13 | exports.jsxs = jsx 14 | exports.jsxDEV = jsx 15 | exports.Fragment = Fragment 16 | -------------------------------------------------------------------------------- /Class2/node_modules/vue/jsx-runtime/index.mjs: -------------------------------------------------------------------------------- 1 | import { h, Fragment } from 'vue' 2 | 3 | function jsx(type, props, key) { 4 | const { children } = props 5 | delete props.children 6 | if (arguments.length > 2) { 7 | props.key = key 8 | } 9 | return h(type, props, children) 10 | } 11 | 12 | export { 13 | Fragment, 14 | jsx, 15 | jsx as jsxs, 16 | jsx as jsxDEV 17 | } 18 | -------------------------------------------------------------------------------- /Class2/node_modules/vue/jsx-runtime/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "index.js", 3 | "module": "index.mjs", 4 | "types": "index.d.ts" 5 | } 6 | -------------------------------------------------------------------------------- /Class2/node_modules/vue/jsx.d.ts: -------------------------------------------------------------------------------- 1 | // global JSX namespace registration 2 | // somehow we have to copy=pase the jsx-runtime types here to make TypeScript happy 3 | import type { VNode, ReservedProps, NativeElements } from '@vue/runtime-dom' 4 | 5 | declare global { 6 | namespace JSX { 7 | export interface Element extends VNode {} 8 | export interface ElementClass { 9 | $props: {} 10 | } 11 | export interface ElementAttributesProperty { 12 | $props: {} 13 | } 14 | export interface IntrinsicElements extends NativeElements { 15 | // allow arbitrary elements 16 | // @ts-ignore suppress ts:2374 = Duplicate string index signature. 17 | [name: string]: any 18 | } 19 | export interface IntrinsicAttributes extends ReservedProps {} 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Class2/node_modules/vue/macros-global.d.ts: -------------------------------------------------------------------------------- 1 | import { 2 | $ as _$, 3 | $$ as _$$, 4 | $ref as _$ref, 5 | $shallowRef as _$shallowRef, 6 | $computed as _$computed, 7 | $customRef as _$customRef, 8 | $toRef as _$toRef 9 | } from './macros' 10 | 11 | declare global { 12 | const $: typeof _$ 13 | const $$: typeof _$$ 14 | const $ref: typeof _$ref 15 | const $shallowRef: typeof _$shallowRef 16 | const $computed: typeof _$computed 17 | const $customRef: typeof _$customRef 18 | const $toRef: typeof _$toRef 19 | } 20 | -------------------------------------------------------------------------------- /Class2/node_modules/vue/ref-macros.d.ts: -------------------------------------------------------------------------------- 1 | // TODO remove in 3.4 2 | import './macros-global' 3 | -------------------------------------------------------------------------------- /Class2/node_modules/vue/server-renderer/index.d.mts: -------------------------------------------------------------------------------- 1 | export * from '@vue/server-renderer' 2 | -------------------------------------------------------------------------------- /Class2/node_modules/vue/server-renderer/index.d.ts: -------------------------------------------------------------------------------- 1 | export * from '@vue/server-renderer' 2 | -------------------------------------------------------------------------------- /Class2/node_modules/vue/server-renderer/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@vue/server-renderer') 2 | -------------------------------------------------------------------------------- /Class2/node_modules/vue/server-renderer/index.mjs: -------------------------------------------------------------------------------- 1 | export * from '@vue/server-renderer' -------------------------------------------------------------------------------- /Class2/node_modules/vue/server-renderer/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "index.js", 3 | "module": "index.mjs" 4 | } 5 | -------------------------------------------------------------------------------- /Class2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "altschool.class.of.vue", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "vite build", 9 | "preview": "vite preview" 10 | }, 11 | "dependencies": { 12 | "axios": "^1.6.2", 13 | "vue": "^3.3.4", 14 | "vue-router": "4" 15 | }, 16 | "devDependencies": { 17 | "@vitejs/plugin-vue": "^4.2.3", 18 | "autoprefixer": "^10.4.16", 19 | "postcss": "^8.4.31", 20 | "tailwindcss": "^3.3.5", 21 | "vite": "^4.4.5" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Class2/postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /Class2/public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Class2/src/App.vue: -------------------------------------------------------------------------------- 1 | 34 | 35 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /Class2/src/assets/main.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; -------------------------------------------------------------------------------- /Class2/src/assets/vue.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Class2/src/components/AnimalCard.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /Class2/src/components/Child.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Class2/src/components/Counter.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 27 | 28 | 33 | -------------------------------------------------------------------------------- /Class2/src/components/Emits/Child.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Class2/src/components/Emits/Parent.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Class2/src/components/GrandParent.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Class2/src/components/Inputs.vue: -------------------------------------------------------------------------------- 1 |