Repository: johnpapa/hello-worlds Branch: main Commit: 70ce5406169b Files: 393 Total size: 333.9 KB Directory structure: gitextract_fqly1mie/ ├── .all-contributorsrc ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug-report.md │ │ └── new-hello-world-project.md │ ├── PULL_REQUEST_TEMPLATE.md │ ├── copilot-instructions.md │ ├── dependabot.yml │ └── workflows/ │ ├── ci.yml │ └── copilot-setup-steps.yml ├── .gitignore ├── .prettier.js ├── .vscode/ │ └── settings.json ├── AGENTS.md ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── alpine/ │ └── index.html ├── angular/ │ ├── .editorconfig │ ├── .gitignore │ ├── README.md │ ├── angular.json │ ├── package.json │ ├── src/ │ │ ├── app/ │ │ │ └── app.ts │ │ ├── assets/ │ │ │ └── .gitkeep │ │ ├── index.html │ │ ├── main.ts │ │ └── styles.css │ ├── tsconfig.app.json │ └── tsconfig.json ├── angular-universal/ │ ├── .browserslistrc │ ├── .gitignore │ ├── README.md │ ├── angular.json │ ├── package.json │ ├── server.ts │ ├── src/ │ │ ├── app/ │ │ │ ├── app.component.ts │ │ │ ├── app.module.ts │ │ │ ├── app.server.module.ts │ │ │ └── package.json │ │ ├── assets/ │ │ │ └── .gitkeep │ │ ├── environments/ │ │ │ ├── environment.prod.ts │ │ │ └── environment.ts │ │ ├── index.html │ │ ├── main.server.ts │ │ ├── main.ts │ │ ├── polyfills.ts │ │ └── styles.css │ ├── tsconfig.app.json │ ├── tsconfig.base.json │ ├── tsconfig.json │ └── tsconfig.server.json ├── angularjs/ │ └── index.html ├── aurelia/ │ ├── .editorconfig │ ├── .gitignore │ ├── README.md │ ├── aurelia_project/ │ │ ├── aurelia.json │ │ ├── generators/ │ │ │ ├── attribute.json │ │ │ ├── attribute.ts │ │ │ ├── binding-behavior.json │ │ │ ├── binding-behavior.ts │ │ │ ├── component.json │ │ │ ├── component.ts │ │ │ ├── element.json │ │ │ ├── element.ts │ │ │ ├── generator.json │ │ │ ├── generator.ts │ │ │ ├── task.json │ │ │ ├── task.ts │ │ │ ├── value-converter.json │ │ │ └── value-converter.ts │ │ └── tasks/ │ │ ├── build.json │ │ ├── build.ts │ │ ├── jest.json │ │ ├── jest.ts │ │ ├── run.json │ │ ├── run.ts │ │ ├── test.json │ │ └── test.ts │ ├── config/ │ │ ├── environment.json │ │ └── environment.production.json │ ├── index.ejs │ ├── package.json │ ├── src/ │ │ ├── app.html │ │ ├── app.ts │ │ ├── main.ts │ │ └── resources/ │ │ └── index.ts │ ├── tsconfig.json │ ├── tslint.json │ ├── types/ │ │ ├── fetch.d.ts │ │ └── system.d.ts │ └── webpack.config.js ├── babylonjs/ │ └── index.html ├── backbone/ │ ├── README.md │ ├── index.html │ ├── index.js │ └── libs/ │ ├── backbone-min.js │ └── underscore-min.js ├── blazor/ │ ├── .gitignore │ ├── App.razor │ ├── HelloWorld.csproj │ ├── Program.cs │ ├── Properties/ │ │ └── launchSettings.json │ ├── README.md │ └── wwwroot/ │ └── index.html ├── eleventy/ │ ├── .gitignore │ ├── index.md │ └── package.json ├── elm/ │ ├── .gitignore │ ├── README.md │ ├── elm.json │ ├── package.json │ ├── public/ │ │ └── index.html │ └── src/ │ └── Main.elm ├── ember/ │ ├── .editorconfig │ ├── .ember-cli │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .gitignore │ ├── .template-lintrc.js │ ├── .watchmanconfig │ ├── README.md │ ├── app/ │ │ ├── app.js │ │ ├── index.html │ │ ├── styles/ │ │ │ └── app.css │ │ └── templates/ │ │ └── application.hbs │ ├── config/ │ │ ├── environment.js │ │ ├── optional-features.json │ │ └── targets.js │ ├── ember-cli-build.js │ ├── package.json │ └── public/ │ └── robots.txt ├── flutter/ │ ├── .gitignore │ ├── .metadata │ ├── README.md │ ├── android/ │ │ ├── .gitignore │ │ ├── app/ │ │ │ ├── build.gradle │ │ │ └── src/ │ │ │ ├── debug/ │ │ │ │ └── AndroidManifest.xml │ │ │ ├── main/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── kotlin/ │ │ │ │ │ └── com/ │ │ │ │ │ └── example/ │ │ │ │ │ └── hello_flutter/ │ │ │ │ │ └── MainActivity.kt │ │ │ │ └── res/ │ │ │ │ ├── drawable/ │ │ │ │ │ └── launch_background.xml │ │ │ │ └── values/ │ │ │ │ └── styles.xml │ │ │ └── profile/ │ │ │ └── AndroidManifest.xml │ │ ├── build.gradle │ │ ├── gradle/ │ │ │ └── wrapper/ │ │ │ └── gradle-wrapper.properties │ │ ├── gradle.properties │ │ └── settings.gradle │ ├── ios/ │ │ ├── .gitignore │ │ ├── Flutter/ │ │ │ ├── AppFrameworkInfo.plist │ │ │ ├── Debug.xcconfig │ │ │ └── Release.xcconfig │ │ ├── Runner/ │ │ │ ├── AppDelegate.swift │ │ │ ├── Assets.xcassets/ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ └── Contents.json │ │ │ │ └── LaunchImage.imageset/ │ │ │ │ ├── Contents.json │ │ │ │ └── README.md │ │ │ ├── Base.lproj/ │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ └── Main.storyboard │ │ │ ├── Info.plist │ │ │ └── Runner-Bridging-Header.h │ │ ├── Runner.xcodeproj/ │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ └── WorkspaceSettings.xcsettings │ │ │ └── xcshareddata/ │ │ │ └── xcschemes/ │ │ │ └── Runner.xcscheme │ │ └── Runner.xcworkspace/ │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata/ │ │ ├── IDEWorkspaceChecks.plist │ │ └── WorkspaceSettings.xcsettings │ ├── lib/ │ │ └── main.dart │ ├── pubspec.yaml │ ├── test/ │ │ └── widget_test.dart │ └── web/ │ ├── index.html │ └── manifest.json ├── gatsby/ │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── gatsby-config.js │ ├── package.json │ └── src/ │ └── pages/ │ └── index.js ├── glimmer/ │ ├── .babelrc.js │ ├── .editorconfig │ ├── .gitignore │ ├── README.md │ ├── index.html │ ├── package.json │ ├── public/ │ │ └── manifest.json │ ├── src/ │ │ ├── App.js │ │ └── index.js │ ├── tsconfig.json │ └── webpack.config.js ├── gridsome/ │ ├── .gitignore │ ├── README.md │ ├── gridsome.config.js │ ├── package.json │ └── src/ │ ├── layouts/ │ │ └── Default.vue │ ├── main.js │ └── pages/ │ └── Index.vue ├── html/ │ └── index.html ├── hugo/ │ ├── .gitignore │ ├── archetypes/ │ │ └── default.md │ ├── config.toml │ ├── content/ │ │ └── _index.md │ ├── package.json │ └── themes/ │ └── hello-world/ │ ├── LICENSE │ ├── archetypes/ │ │ └── default.md │ ├── layouts/ │ │ ├── 404.html │ │ ├── _default/ │ │ │ ├── baseof.html │ │ │ ├── list.html │ │ │ └── single.html │ │ ├── index.html │ │ └── partials/ │ │ ├── footer.html │ │ ├── head.html │ │ └── header.html │ └── theme.toml ├── hyperapp/ │ ├── hello-world.js │ └── index.html ├── ionic-angular/ │ ├── .gitignore │ ├── angular.json │ ├── browserslist │ ├── ionic.config.json │ ├── karma.conf.js │ ├── package.json │ ├── src/ │ │ ├── app/ │ │ │ ├── app.component.html │ │ │ ├── app.component.ts │ │ │ └── app.module.ts │ │ ├── environments/ │ │ │ ├── environment.prod.ts │ │ │ └── environment.ts │ │ ├── global.scss │ │ ├── index.html │ │ ├── main.ts │ │ ├── polyfills.ts │ │ ├── theme/ │ │ │ └── variables.scss │ │ └── zone-flags.ts │ ├── tsconfig.app.json │ ├── tsconfig.json │ └── tslint.json ├── ionic-react/ │ ├── .gitignore │ ├── capacitor.config.json │ ├── ionic.config.json │ ├── package.json │ ├── public/ │ │ ├── index.html │ │ └── manifest.json │ ├── src/ │ │ ├── App.tsx │ │ ├── index.tsx │ │ ├── react-app-env.d.ts │ │ ├── serviceWorker.ts │ │ └── theme/ │ │ └── variables.css │ └── tsconfig.json ├── javascript/ │ ├── README.md │ ├── hello-world.js │ └── index.html ├── jquery/ │ └── index.html ├── knockoutjs/ │ ├── .gitignore │ ├── index.html │ ├── package.json │ ├── src/ │ │ └── app.js │ └── webpack.config.js ├── lit-element/ │ ├── .editorconfig │ ├── .gitignore │ ├── README.md │ ├── custom-elements.json │ ├── index.html │ ├── package.json │ ├── rollup.config.js │ └── src/ │ ├── HelloWorld.js │ └── hello-world.js ├── marko/ │ ├── .gitignore │ ├── README.md │ ├── package.json │ ├── public/ │ │ └── index.html │ ├── src/ │ │ ├── app.js │ │ └── app.marko │ └── webpack.config.js ├── meteor/ │ ├── .gitignore │ ├── .meteor/ │ │ ├── .finished-upgraders │ │ ├── .gitignore │ │ ├── .id │ │ ├── packages │ │ ├── platforms │ │ ├── release │ │ └── versions │ ├── README.md │ ├── client/ │ │ ├── main.css │ │ ├── main.html │ │ └── main.js │ ├── package.json │ └── server/ │ └── main.js ├── mithril/ │ ├── package.json │ └── src/ │ ├── README.md │ ├── index.html │ └── index.js ├── nextjs/ │ ├── .gitignore │ ├── README.md │ ├── package.json │ └── pages/ │ └── index.js ├── nuxtjs/ │ ├── .gitignore │ ├── README.md │ ├── layouts/ │ │ └── default.vue │ ├── nuxt.config.js │ ├── package.json │ └── pages/ │ └── index.vue ├── polymer/ │ ├── .gitignore │ ├── README.md │ ├── index.html │ ├── manifest.json │ ├── package.json │ ├── polymer.json │ └── src/ │ ├── _element/ │ │ └── _element.js │ └── hello-world/ │ └── hello-world.js ├── preact/ │ ├── index.html │ ├── package.json │ ├── src/ │ │ └── app.js │ └── webpack.config.js ├── react/ │ ├── .gitignore │ ├── README.md │ ├── index.html │ ├── package.json │ ├── public/ │ │ ├── index.html │ │ └── robots.txt │ ├── src/ │ │ ├── App.jsx │ │ ├── index.css │ │ └── index.jsx │ └── vite.config.js ├── riot/ │ ├── index.html │ ├── package.json │ ├── readme.md │ ├── src/ │ │ ├── app.riot │ │ └── index.js │ └── webpack.config.js ├── scully/ │ ├── .editorconfig │ ├── .gitignore │ ├── .prettierrc │ ├── README.md │ ├── angular.json │ ├── browserslist │ ├── karma.conf.js │ ├── package.json │ ├── scully.hello.config.js │ ├── scully.hello.config.ts │ ├── src/ │ │ ├── app/ │ │ │ ├── app-routing.module.ts │ │ │ ├── app.component.ts │ │ │ └── app.module.ts │ │ ├── assets/ │ │ │ ├── .gitkeep │ │ │ └── scully-routes.json │ │ ├── environments/ │ │ │ ├── environment.prod.ts │ │ │ └── environment.ts │ │ ├── index.html │ │ ├── main.ts │ │ ├── polyfills.ts │ │ ├── styles.css │ │ └── test.ts │ ├── tsconfig.app.json │ ├── tsconfig.json │ ├── tsconfig.spec.json │ └── tslint.json ├── stencil/ │ ├── .editorconfig │ ├── .gitignore │ ├── LICENSE │ ├── package.json │ ├── readme.md │ ├── src/ │ │ ├── components/ │ │ │ └── app-root/ │ │ │ ├── app-root.css │ │ │ └── app-root.tsx │ │ ├── components.d.ts │ │ ├── index.html │ │ ├── index.ts │ │ └── manifest.json │ ├── stencil.config.ts │ └── tsconfig.json ├── svelte/ │ ├── .gitignore │ ├── README.md │ ├── index.html │ ├── package.json │ ├── src/ │ │ ├── App.svelte │ │ └── main.js │ ├── svelte.config.js │ └── vite.config.js ├── threejs/ │ └── index.html ├── typescript/ │ ├── copy-index.js │ ├── index.html │ ├── package.json │ ├── src/ │ │ └── app.ts │ └── tsconfig.json ├── vue/ │ ├── .gitignore │ ├── README.md │ ├── index.html │ ├── package.json │ ├── src/ │ │ ├── App.vue │ │ └── main.js │ └── vite.config.js ├── vuepress/ │ ├── .gitignore │ ├── docs/ │ │ └── README.md │ └── package.json └── web-component/ ├── index.html └── script.js ================================================ FILE CONTENTS ================================================ ================================================ FILE: .all-contributorsrc ================================================ { "files": [ "README.md" ], "imageSize": 100, "commit": false, "contributors": [ { "login": "johnpapa", "name": "John Papa", "avatar_url": "https://avatars2.githubusercontent.com/u/1202528?v=4", "profile": "http://johnpapa.net", "contributions": [ "code" ] }, { "login": "laurieontech", "name": "LB", "avatar_url": "https://avatars3.githubusercontent.com/u/15000607?v=4", "profile": "https://github.com/laurieontech", "contributions": [ "code" ] }, { "login": "simeon4real", "name": "Simeon Udoh", "avatar_url": "https://avatars1.githubusercontent.com/u/25581792?v=4", "profile": "https://simicode.me", "contributions": [ "code" ] }, { "login": "ksivamuthu", "name": "Sivamuthu Kumar", "avatar_url": "https://avatars0.githubusercontent.com/u/4029525?v=4", "profile": "https://twitter.com/ksivamuthu", "contributions": [ "code" ] }, { "login": "matiaskm", "name": "Matias Kohan", "avatar_url": "https://avatars3.githubusercontent.com/u/18614906?v=4", "profile": "https://github.com/matiaskm", "contributions": [ "code" ] }, { "login": "Duraimurugan", "name": "Duraimurugan", "avatar_url": "https://avatars3.githubusercontent.com/u/7348388?v=4", "profile": "https://github.com/Duraimurugan", "contributions": [ "code" ] }, { "login": "sinedied", "name": "Yohan Lasorsa", "avatar_url": "https://avatars0.githubusercontent.com/u/593151?v=4", "profile": "https://twitter.com/sinedied", "contributions": [ "code" ] }, { "login": "manekinekko", "name": "Wassim Chegham", "avatar_url": "https://avatars2.githubusercontent.com/u/1699357?v=4", "profile": "https://wassim.dev", "contributions": [ "code" ] }, { "login": "sandydoo", "name": "Sander Melnikov", "avatar_url": "https://avatars3.githubusercontent.com/u/7572407?v=4", "profile": "https://github.com/sandydoo", "contributions": [ "code" ] }, { "login": "askudhay", "name": "Udhayakumar Govindarajan", "avatar_url": "https://avatars0.githubusercontent.com/u/29446574?v=4", "profile": "https://angularhive.com", "contributions": [ "doc" ] }, { "login": "afifalfiano", "name": "Afif Alfiano", "avatar_url": "https://avatars1.githubusercontent.com/u/47497276?v=4", "profile": "https://behance.net/afifalfiano", "contributions": [ "code" ] }, { "login": "gilcreque", "name": "Gil Creque", "avatar_url": "https://avatars2.githubusercontent.com/u/243234?v=4", "profile": "http://gilcreque.com", "contributions": [ "code" ] }, { "login": "afflexux", "name": "afflexux", "avatar_url": "https://avatars0.githubusercontent.com/u/35804265?v=4", "profile": "https://github.com/afflexux", "contributions": [ "code" ] }, { "login": "allcontributors[bot]", "name": "allcontributors[bot]", "avatar_url": "https://avatars0.githubusercontent.com/in/23186?v=4", "profile": "https://github.com/apps/allcontributors", "contributions": [ "doc" ] }, { "login": "btchoum", "name": "Bertrand Tchoumkeu", "avatar_url": "https://avatars0.githubusercontent.com/u/9422996?v=4", "profile": "https://github.com/btchoum", "contributions": [ "code" ] }, { "login": "webmaxru", "name": "Maxim Salnikov", "avatar_url": "https://avatars1.githubusercontent.com/u/1560278?v=4", "profile": "https://medium.com/@webmaxru", "contributions": [ "code" ] }, { "login": "rgolea", "name": "Rares Golea", "avatar_url": "https://avatars0.githubusercontent.com/u/8843202?v=4", "profile": "https://github.com/rgolea", "contributions": [ "code" ] }, { "login": "bswank", "name": "Brian Swank", "avatar_url": "https://avatars0.githubusercontent.com/u/18602728?v=4", "profile": "https://swank.dev/", "contributions": [ "code" ] }, { "login": "hugodf", "name": "Hugo", "avatar_url": "https://avatars1.githubusercontent.com/u/6459679?v=4", "profile": "https://codewithhugo.com", "contributions": [ "code" ] }, { "login": "noelmace", "name": "Noël Macé", "avatar_url": "https://avatars3.githubusercontent.com/u/7578400?v=4", "profile": "https://noelmace.com", "contributions": [ "code" ] }, { "login": "wolfhoundjesse", "name": "Jesse M. Holmes", "avatar_url": "https://avatars1.githubusercontent.com/u/13468509?v=4", "profile": "https://github.com/wolfhoundjesse", "contributions": [ "code" ] }, { "login": "carlosroec", "name": "Carlos G. Rodriguez", "avatar_url": "https://avatars0.githubusercontent.com/u/1981518?v=4", "profile": "https://github.com/carlosroec", "contributions": [ "code" ] }, { "login": "zaceno", "name": "Zacharias Enochsson", "avatar_url": "https://avatars3.githubusercontent.com/u/2061445?v=4", "profile": "http://zaceno.github.io", "contributions": [ "code" ] }, { "login": "moemoe89", "name": "Bismo Baruno", "avatar_url": "https://avatars0.githubusercontent.com/u/7221739?v=4", "profile": "https://moemoe89.github.io", "contributions": [ "code" ] }, { "login": "Filini", "name": "Filippo Gualandi", "avatar_url": "https://avatars1.githubusercontent.com/u/10072578?v=4", "profile": "https://github.com/Filini", "contributions": [ "code" ] }, { "login": "mhartington", "name": "Mike Hartington", "avatar_url": "https://avatars3.githubusercontent.com/u/2835826?v=4", "profile": "https://twitter.com/mhartington", "contributions": [ "code" ] }, { "login": "aelgasser", "name": "aelgasser", "avatar_url": "https://avatars2.githubusercontent.com/u/3692722?v=4", "profile": "https://github.com/aelgasser", "contributions": [ "code" ] }, { "login": "sarbull", "name": "Cezar Sîrbu", "avatar_url": "https://avatars.githubusercontent.com/u/1864112?v=4", "profile": "http://www.sarbull.ro", "contributions": [ "code" ] }, { "login": "Nicoss54", "name": "Nicoss54", "avatar_url": "https://avatars.githubusercontent.com/u/24563545?v=4", "profile": "https://github.com/Nicoss54", "contributions": [ "code" ] }, { "login": "Yonet", "name": "Ayşegül Yönet", "avatar_url": "https://avatars.githubusercontent.com/u/3523671?v=4", "profile": "https://github.com/Yonet", "contributions": [ "code" ] } ], "contributorsPerLine": 7, "projectName": "hello-worlds", "projectOwner": "johnpapa", "repoType": "github", "repoHost": "https://github.com", "skipCi": true, "commitConvention": "none", "badgeTemplate": "[![All Contributors](https://img.shields.io/badge/all_contributors-<%= contributors.length %>-blue.svg?style=flat-square)](#contributors)" } ================================================ FILE: .github/ISSUE_TEMPLATE/bug-report.md ================================================ --- name: Bug Report about: Report a bug in one of the hello world projects title: "[Bug] " labels: bug assignees: "" --- ## Which project? ## Describe the bug ## Steps to reproduce 1. `cd ` 2. `npm install` 3. `npm start` 4. See error... ## Expected behavior ## Environment - **OS:** - **Node.js version:** - **npm version:** - **Browser:** ## Additional context ================================================ FILE: .github/ISSUE_TEMPLATE/new-hello-world-project.md ================================================ --- name: New Hello World Project about: Suggest an idea for this project title: '' labels: '' assignees: '' --- By making a PR you are agreeing to that contributing a hello world project allows the repo/project owner to use the hello world app in examples for their own use. - [ ] only the most simple basic hello world app - [ ] remove all tests and commands for tests and dependencies for tests - [ ] must say "Hello World" on the main component - [ ] only include the minimal components (1 ideally) - [ ] no routing, not extras whatsoever - [ ] no styling - [ ] nothing else ! - [ ] must work by running `npm install` and `npm start` (or equivalent) - [ ] must be in the folder named `` - [ ] add build steps and which folder to serve in the README.md in the root folder - [ ] verify that the app once built can be served from whatever folder the built assets are placed in - [ ] verify that running `npx http-server ` works - [ ] verify that a Pull Request doesnt already exist. If it does, feel free to contribue to it. ================================================ FILE: .github/PULL_REQUEST_TEMPLATE.md ================================================ By making a PR you are agreeing to that contributing a hello world project allows the repo/project owner to use the hello world app in examples for their own use. - [ ] only the most simple basic hello world app - [ ] remove all tests and commands for tests and dependencies for tests - [ ] must say "Hello World" on the main component - [ ] only include the minimal components (1 ideally) - [ ] no routing, not extras whatsoever - [ ] no styling - [ ] nothing else ! - [ ] must work by running `npm install` and `npm start` (or equivalent) - [ ] must be in the folder named `` - [ ] add build steps and which folder to serve in the README.md in the root folder - [ ] verify that the app once built can be served from whatever folder the built assets are placed in - [ ] verify that running `npx http-server ` works - [ ] verify that a Pull Request doesnt already exist. If it does, feel free to contribue to it. ================================================ FILE: .github/copilot-instructions.md ================================================ # Copilot Instructions — hello-worlds ## Project Type This is a **multi-app collection** of 41+ minimal "Hello World" demos across JavaScript/TypeScript frameworks. Each subfolder is an independent project. **There is no centralized build, test, or lint system.** Each project stands alone. ## Writing Conventions ### General - Each demo must display "Hello World" on the main component - Keep demos minimal — no routing, no styling, no extras - Remove all tests, test dependencies, and test scripts - Each project must work with `npm install && npm start` (or documented equivalent) ### Folder Structure - One folder per framework, named in lowercase with hyphens (e.g., `lit-element`, `ionic-react`) - Each folder contains its own `package.json`, source files, and any framework-specific config ### JavaScript / TypeScript - Use the framework's default/recommended coding style - Prefer the simplest possible component structure - No unnecessary dependencies beyond the framework itself ### HTML - Use semantic HTML5 elements - Include a proper `` declaration - Reference CDN scripts where applicable (jQuery, Hyperapp, etc.) ## Project-Specific Build Commands Each project may have different build steps. Always check the project's `package.json` for available scripts. Common patterns: | Framework Type | Start Command | Build Command | |---|---|---| | CLI-based (Angular, React, Vue, etc.) | `npm start` | `npm run build` | | Static (HTML, jQuery, Alpine, etc.) | `npx http-server .` | N/A | | Blazor | `dotnet run` | `dotnet build` | | Flutter | `flutter run` | `flutter build web` | ## Maintenance Matrix | When this changes... | Also update... | |---|---| | New project folder added | `README.md` (build matrix table), `AGENTS.md` (structure section) | | Project removed | `README.md` (build matrix table), `AGENTS.md` (structure section) | | Build steps for a project change | `README.md` (build matrix table) | | `README.md` table format changes | Verify all projects are still listed | | Contributing guidelines change | `CONTRIBUTING.md`, `.github/PULL_REQUEST_TEMPLATE.md` | | New issue template added | `.github/ISSUE_TEMPLATE/` directory | | CI workflow modified | `.github/workflows/ci.yml`, `AGENTS.md` (if build steps affected) | | `AGENTS.md` structure section | Verify consistency with actual directory listing | ## Do NOT - Add centralized build/test tooling at the root level - Modify multiple projects in a single PR (unless it's a cross-cutting concern like LICENSE) - Add complex features, routing, state management, or styling to demos - Use `latest` for dependency versions — pin specific versions ================================================ FILE: .github/dependabot.yml ================================================ # Dependabot configuration # Keep GitHub Actions up to date version: 2 updates: - package-ecosystem: "github-actions" directory: "/" schedule: interval: "weekly" ================================================ FILE: .github/workflows/ci.yml ================================================ name: CI on: pull_request: branches: [main] push: branches: [main] permissions: contents: read jobs: validate: name: Validate Repository Structure runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Check all project folders are in README run: | echo "Checking that all project folders are referenced in README.md..." errors=0 for dir in */; do dir_name="${dir%/}" # Skip hidden dirs and common non-project files case "$dir_name" in .*|node_modules|docs) continue ;; esac if ! grep -q "$dir_name" README.md; then echo "::warning::Project folder '$dir_name' is not listed in README.md" errors=$((errors + 1)) fi done if [ $errors -gt 0 ]; then echo "::warning::$errors project folder(s) not found in README.md" fi echo "Validation complete." - name: Verify package.json files are valid JSON run: | echo "Validating package.json files..." errors=0 for pkg in */package.json; do if ! python3 -c "import json; json.load(open('$pkg'))" 2>/dev/null; then echo "::error::Invalid JSON in $pkg" errors=$((errors + 1)) fi done if [ $errors -gt 0 ]; then echo "::error::$errors invalid package.json file(s) found" exit 1 fi echo "All package.json files are valid." ================================================ FILE: .github/workflows/copilot-setup-steps.yml ================================================ # Copilot Cloud Agent — Setup Steps # Configures the environment for the Copilot coding agent. # This is a multi-app collection with no centralized build system. # Each subfolder is independent — the agent should cd into the relevant project. name: "Copilot Setup Steps" on: workflow_dispatch jobs: copilot-setup: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: "20" # No root-level install — each project has its own dependencies. # The agent should run `npm install` in the specific project folder it's working on. ================================================ FILE: .gitignore ================================================ .DS_Store node_modules **/dist # local env files .env.local .env.*.local # Log files npm-debug.log* yarn-debug.log* yarn-error.log* # Editor directories and files .idea # .vscode *.suo *.ntvs* *.njsproj *.sln *.sw? ================================================ FILE: .prettier.js ================================================ module.exports = { semi: true, trailingComma: 'all', singleQuote: true, printWidth: 100, tabWidth: 2, arrowParens: 'avoid', }; ================================================ FILE: .vscode/settings.json ================================================ { "workbench.colorCustomizations": { "activityBar.background": "#6b25d7", "activityBar.activeBackground": "#6b25d7", "activityBar.activeBorder": "#da6c25", "activityBar.foreground": "#e7e7e7", "activityBar.inactiveForeground": "#e7e7e799", "activityBarBadge.background": "#da6c25", "activityBarBadge.foreground": "#15202b", "titleBar.activeBackground": "#6b25d7", "titleBar.inactiveBackground": "#6b25d799", "titleBar.activeForeground": "#e7e7e7", "titleBar.inactiveForeground": "#e7e7e799", "statusBar.background": "#6b25d7", "statusBarItem.hoverBackground": "#884ee1", "statusBar.foreground": "#e7e7e7", "statusBar.debuggingBackground": "#91d725", "statusBar.debuggingForeground": "#15202b" }, "peacock.color": "#6b25d7" } ================================================ FILE: AGENTS.md ================================================ # AI-Ready Repo — Agent Guide This is a **multi-app collection** of 41 minimal "Hello World" demos across JavaScript/TypeScript frameworks and libraries. Each subfolder is an independent project with its own `package.json` (or equivalent). ## Repository Structure ``` hello-worlds/ ├── .github/ │ ├── copilot-instructions.md # AI coding conventions for this repo │ ├── dependabot.yml # GitHub Actions dependency updates │ ├── workflows/ │ │ ├── ci.yml # PR validation (checks new projects build) │ │ └── copilot-setup-steps.yml # Cloud agent setup │ ├── ISSUE_TEMPLATE/ │ │ ├── new-hello-world-project.md # Template for proposing new frameworks │ │ └── bug-report.md # Bug report template │ └── PULL_REQUEST_TEMPLATE.md # PR checklist ├── alpine/ # Alpine.js hello world ├── angular/ # Angular hello world ├── angular-universal/ # Angular Universal hello world ├── angularjs/ # AngularJS hello world ├── aurelia/ # Aurelia hello world ├── babylonjs/ # Babylon.js hello world ├── backbone/ # Backbone.js hello world ├── blazor/ # Blazor hello world (.NET) ├── eleventy/ # Eleventy hello world ├── elm/ # Elm hello world ├── ember/ # Ember.js hello world ├── flutter/ # Flutter hello world (Dart) ├── gatsby/ # Gatsby hello world ├── glimmer/ # Glimmer.js hello world ├── gridsome/ # Gridsome hello world ├── html/ # Plain HTML hello world ├── hugo/ # Hugo hello world (Go) ├── hyperapp/ # Hyperapp hello world ├── ionic-angular/ # Ionic Angular hello world ├── ionic-react/ # Ionic React hello world ├── javascript/ # Plain JavaScript hello world ├── jquery/ # jQuery hello world ├── knockoutjs/ # Knockout.js hello world ├── lit-element/ # LitElement hello world ├── marko/ # Marko hello world ├── meteor/ # Meteor hello world ├── mithril/ # Mithril hello world ├── nextjs/ # Next.js hello world ├── nuxtjs/ # Nuxt.js hello world ├── polymer/ # Polymer hello world ├── preact/ # Preact hello world ├── react/ # React hello world ├── riot/ # Riot.js hello world ├── scully/ # Scully hello world ├── stencil/ # Stencil hello world ├── svelte/ # Svelte hello world ├── threejs/ # Three.js hello world ├── typescript/ # TypeScript hello world ├── vue/ # Vue.js hello world ├── vuepress/ # VuePress hello world ├── web-component/ # Web Component hello world ├── AGENTS.md # This file ├── CHANGELOG.md # Version history ├── CODE_OF_CONDUCT.md # Community guidelines ├── CONTRIBUTING.md # Contribution guide ├── LICENSE # MIT └── README.md # Project overview with build matrix ``` ## Tech Stack - **Languages:** JavaScript, TypeScript, HTML, CSS - **Non-JS projects:** Blazor (.NET/C#), Flutter (Dart), Hugo (Go), Elm - **Build tools:** Varies per project — webpack, rollup, Angular CLI, Create React App, Gatsby CLI, etc. - **Package manager:** npm (each project has its own `package.json`) - **No centralized build or test system** — each subfolder is independent ## Build & Run There is no root-level build. Each project builds independently: ```bash cd npm install npm start # or npm run dev ``` To build for production: ```bash cd npm run build # output folder varies per framework ``` Refer to the build matrix in `README.md` for each project's build command and output folder. ### Exceptions - **Blazor**: Requires .NET SDK → `dotnet build` - **Flutter**: Requires Flutter SDK → `flutter build web` - **Hugo**: Requires Hugo binary (installed via npm) - **Static projects** (alpine, angularjs, babylonjs, backbone, html, hyperapp, javascript, jquery, threejs, web-component): No build step — serve directly ## Testing There is no centralized test suite. Individual projects may have tests, but the repo convention is to **remove all tests** and keep demos minimal. To verify a project works: ```bash cd npm install npm run build # if applicable npx http-server ``` ## Key Patterns and Conventions 1. **One folder per framework** — folder name matches the framework/library name in lowercase 2. **Minimal demos only** — each project must display "Hello World" with minimal code, no routing, no styling, no extras 3. **Must work with `npm install && npm start`** (or documented equivalent) 4. **Built assets must be servable** via `npx http-server ` 5. **README.md build matrix** — every project must be listed in the root `README.md` table with build steps and serve folder ## Adding a New Hello World Project 1. Create a folder named `` (lowercase, hyphenated) 2. Initialize the minimal project with `npm init` or framework CLI 3. Ensure it displays "Hello World" on the main component 4. Remove all tests, test dependencies, and test scripts 5. Verify `npm install && npm start` works 6. Verify `npm run build` produces servable output 7. Add a row to the build matrix table in `README.md` 8. Submit a PR using the PR template checklist ## Common Pitfalls - **Don't add tests** — this repo intentionally excludes tests to keep demos minimal - **Don't add styling or routing** — keep it bare-bones - **Don't forget the README table** — every project must be listed in the root README.md - **Check for existing PRs** — someone may already be working on the same framework - **Version pinning** — use specific versions, not `latest`, for reproducibility ================================================ FILE: CHANGELOG.md ================================================ # Changelog All notable changes to this project will be documented in this file. ## [Unreleased] ### Added - `AGENTS.md` — AI agent guide for contributing to this repo - `.github/copilot-instructions.md` — Copilot coding conventions with maintenance matrix - `.github/workflows/copilot-setup-steps.yml` — Cloud agent environment setup - `.github/workflows/ci.yml` — PR validation workflow (structure checks, JSON validation) - `.github/ISSUE_TEMPLATE/bug-report.md` — Bug report issue template - `.github/dependabot.yml` — GitHub Actions dependency updates - `CHANGELOG.md` — This changelog - AI-Ready badge in `README.md` ================================================ FILE: CODE_OF_CONDUCT.md ================================================ --- title: Code of Conduct # We can even add meta tags to the page! This sets the keywords meta tag. # description: Code of Conduct guide meta: - name: keywords - content: Code of Conduct --- # Contributor Covenant Code of Conduct ## Our Pledge In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. ## Our Standards Examples of behavior that contributes to creating a positive environment include: - Using welcoming and inclusive language - Being respectful of differing viewpoints and experiences - Gracefully accepting constructive criticism - Focusing on what is best for the community - Showing empathy towards other community members Examples of unacceptable behavior by participants include: - The use of sexualized language or imagery and unwelcome sexual attention or advances - Trolling, insulting/derogatory comments, and personal or political attacks - Public or private harassment - Publishing others' private information, such as a physical or electronic address, without explicit permission - Other conduct which could reasonably be considered inappropriate in a professional setting ## Our Responsibilities Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. ## Scope This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at john+github@johnpapa.net. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. ## Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html [homepage]: https://www.contributor-covenant.org For answers to common questions about this code of conduct, see https://www.contributor-covenant.org/faq ================================================ FILE: CONTRIBUTING.md ================================================ --- title: Contributing # We can even add meta tags to the page! This sets the keywords meta tag. # description: Conributions guide meta: - name: keywords - content: contributions --- # Contributing We would love for you to contribute and help make it even better than it is today! As a contributor, here are the guidelines we would like you to follow: -[Code of Conduct](#coc) - [Issues and Bugs](#issue) - [Feature Requests](#feature) - [Submission Guidelines](#submit) ## Code of Conduct Help us keep this project open and inclusive.Please read and follow our [Code of Conduct](./code_of_conduct). ## Found an Issue? If you find a bug in the source code or a mistake in the documentation, you can help us by [submitting an issue](#submit-issue) to our [GitHub Repository](https://github.com/johnpapa/hello-worlds). Even better, you can [submit a Pull Request](#submit-pr) with a fix. ## Want a Feature? You can _request_ a new feature by [submitting an issue](#submit-issue) to our [GitHub Repository](https://github.com/johnpapa/hello-worlds).If you would like to _implement_ a new feature, please submit an issue with a proposal for your work first, to be sure that we can use it. - **Small Features** can be crafted and directly [submitted as a Pull Request](#submit-pr). ## Submission Guidelines ### Submitting an Issue Before you submit an issue, search the archive, maybe your question was already answered. If your issue appears to be a bug, and hasn't been reported, open a new issue. Help us to maximize the effort we can spend fixing issues and adding new features, by not reporting duplicate issues.Providing the following information will increase the chances of your issue being dealt with quickly: - **Overview of the Issue** - if an error is being thrown a non- minified stack trace helps - **Version** - what version is affected (e.g. 0.1.2) - **Motivation for or Use Case** - explain what are you trying to do and why the current behavior is a bug for you - **Browsers and Operating System** - is this a problem with all browsers? - **Reproduce the Error** - provide a live example or a unambiguous set of steps - **Related Issues** - has a similar issue been reported before? - **Suggest a Fix** - if you can't fix the bug yourself, perhaps you can point to what might be causing the problem (line of code or commit) You can file new issues by providing the above information [here](https://github.com/johnpapa/hello-worlds/issues/new). ### Submitting a Pull Request (PR) Before you submit your Pull Request (PR) consider the following guidelines: - Search [GitHub](https://github.com/johnpapa/hello-worlds/pulls) for an open or closed PR that relates to your submission.You don't want to duplicate effort. - Make your changes in a new git fork: - Commit your changes using a descriptive commit message - Push your fork to GitHub: - In GitHub, send a pull request - If we suggest changes then: - Make the required updates. - Rebase your fork and force push to your GitHub repository (this will update your Pull Request): ```shell git rebase master -i git push -f ``` That's it! Thank you for your contribution! ================================================ FILE: LICENSE ================================================ MIT License Copyright (c) John Papa. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE ================================================ FILE: README.md ================================================ # hello-worlds [![AI-Ready](https://img.shields.io/badge/AI--Ready-✓-brightgreen?style=flat-square)](./AGENTS.md) [![All Contributors](https://img.shields.io/badge/all_contributors-29-blue.svg?style=flat-square)](#contributors) Hello World apps for JavaScript/HTML/CSS libraries/frameworks! Assumptions: - [ ] only the most simple basic hello world app - [ ] remove all tests and commands for tests and dependencies for tests - [ ] must say "Hello World" on the main component - [ ] only include the minimal components (1 ideally) - [ ] no routing, not extras whatsoever - [ ] no styling - [ ] nothing else ! - [ ] must work by running `npm install` and `npm start` (or equivalent) - [ ] must be in the folder named `` - [ ] add yourself using the all-contributors bot `@allcontributors please add @ for code` - [ ] add build steps and which folder to serve in the README.md - [ ] verify that the app once built can be served from whatever folder the built assets are placed in - [ ] verify that running `npx http-server ` works - [ ] verify that a Pull Request doesnt already exist. If it does, feel free to contribue to it. See existing samples for the idea ... [![Deploy to Azure button](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/?feature.customportal=false&WT.mc_id=javascript-0000-jopapa#create/Microsoft.StaticApp) Projects are listed alphabetically. | Project | Build steps | Serve this folder | Folder | | ------------------------------------------------------------------ | --------------------------------------------- | -------------------- | ----------------- | | [Alpine.js](https://github.com/alpinejs/alpine/) | | `/` | alpine | | [Angular.js](https://angularjs.org/) | | `/` | angularjs | | [Angular](https://angular.io/) | `npm run build -- --prod` | `dist/hello` | angular | | [Angular Universal](https://angular.io/guide/universal) | `npm run prerender` | `dist/hello/browser` | angular-universal | | [Aurelia](https://aurelia.io/) | `npm run build` | `dist` | aurelia | | [Babylon.js](https://www.babylonjs.com/) | | `/` | babylonjs | | [Backbone.js](https://backbonejs.org/) | | `/` | backbone | | [Blazor](https://blazor.net/) | Install .NET SDK then `dotnet build` | `/` | blazor | | [Elm](https://elm-lang.org/) | `npm run build` | `public` | elm | | [Ember](https://emberjs.com/) | `npm run build` | `dist` | ember | | [Flutter](https://flutter.dev/) | Install Flutter SDK then `flutter build web` | `build/web` | flutter | | [Gatsby](https://www.gatsbyjs.org/) | `npm run build` | `public` | gatsby | | [Glimmer](https://glimmerjs.com/) | `npm run build` | `dist` | glimmer | | [Gridsome](https://gridsome.org/) | `npm run build` | `dist` | gridsome | | [HTML](https://developer.mozilla.org/docs/Web/HTML) | | `/` | html | | [Hugo](https://gohugo.io/) | `npm run build` | `public` | hugo | | [Hyperapp](https://hyperapp.dev/) | (uses CDN) | `/` | hyperapp | | [Ionic Angular](https://ionicframework.com/docs/angular/overview) | `npm run build -- --prod` | `www` | ionic-angular | | [Ionic React](https://ionicframework.com/docs/react) | `npm run build` | `build` | ionic-react | | [JavaScript](https://developer.mozilla.org/docs/Web/javascript) | | `/` | javascript | | [jQuery](https://jquery.com/) | (uses CDN) | `/` | jquery | | [KnockoutJS](https://knockoutjs.com/) | `npm run build` | `dist` | knockoutjs | | [LitElement](https://lit-element.polymer-project.org/) | `npm run build` | `dist` | lit-element | | [Marko](https://markojs.com/) | `npm run build` | `public` | marko | | [Meteor](https://www.meteor.com/) | `npm run build` | `bundle` | meteor | | [Mithril](https://mithril.js.org/) | `npm run build` | `dist` | mithril | | [Next.js](https://nextjs.org/) | `npm run build` | `out` | nextjs | | [Nuxt.js](https://nuxtjs.org/) | `npm run generate` | `dist` | nuxtjs | | [Polymer](https://www.polymer-project.org/) | `npm run build` | `build/default` | polymer | | [Preact](https://preactjs.com/) | `npm run build` | `build` | preact | | [React](https://reactjs.org/) | `npm run build` | `build` | react | | [Riot](https://riot.js.org/) | `npm run build` | `dist` | riot | | [Scully](https://github.com/scullyio/scully) | `npm run build -- --prod` | `dist/hello` | scully | | [Stencil](https://stenciljs.com/) | `npm run build` | `www` | stencil | | [Svelte](https://svelte.dev/) | `npm run build` | `public` | svelte | | [Three.js](https://threejs.org/) | | `/` | threejs | | [TypeScript](https://www.typescriptlang.org/) | `npm run build` | `dist` | typescript | | [Vue](http://vuejs.com/) | `npm run build` | `dist` | vue | | [VuePress](https://vuepress.vuejs.org/) | `npm run build` | `dist` | vuepress | ## Resources - [Azure Free Trial](https://azure.microsoft.com/free/?WT.mc_id=javascript-0000-jopapa) - [VS Code](https://code.visualstudio.com/?WT.mc_id=javascript-0000-jopapa) ### Azure Static Web Apps - Learn how to [Publish an Angular, React, Svelte, or Vue JavaScript app and API with Azure Static Web Apps](https://docs.microsoft.com/learn/modules/publish-app-service-static-web-app-api?WT.mc_id=javascript-0000-jopapa) - [API support in Azure Static Web Apps](https://docs.microsoft.com/azure/static-web-apps/apis?WT.mc_id=javascript-0000-jopapa) - [Add an API to Azure Static Web Apps](https://docs.microsoft.com/azure/static-web-apps/add-api?WT.mc_id=javascript-0000-jopapa) - [Authentication and authorization](https://docs.microsoft.com/azure/static-web-apps/authentication-authorization?WT.mc_id=javascript-0000-jopapa) - [Routes](https://docs.microsoft.com/azure/static-web-apps/routes?WT.mc_id=javascript-0000-jopapa) - [Review pre-production environments](https://docs.microsoft.com/azure/static-web-apps/review-publish-pull-requests?WT.mc_id=javascript-0000-jopapa) ## Contributors ✨ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):

John Papa

💻

LB

💻

Simeon Udoh

💻

Sivamuthu Kumar

💻

Matias Kohan

💻

Duraimurugan

💻

Yohan Lasorsa

💻

Wassim Chegham

💻

Sander Melnikov

💻

Udhayakumar Govindarajan

📖

Afif Alfiano

💻

Gil Creque

💻

afflexux

💻

allcontributors[bot]

📖

Bertrand Tchoumkeu

💻

Maxim Salnikov

💻

Rares Golea

💻

Brian Swank

💻

Hugo

💻

Noël Macé

💻

Jesse M. Holmes

💻

Carlos G. Rodriguez

💻

Zacharias Enochsson

💻

Bismo Baruno

💻

Filippo Gualandi

💻

Mike Hartington

💻

aelgasser

💻

Cezar Sîrbu

💻

Nicoss54

💻

Yonet

💻
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! ================================================ FILE: alpine/index.html ================================================ Hello World

Hello

================================================ FILE: angular/.editorconfig ================================================ # Editor configuration, see https://editorconfig.org root = true [*] charset = utf-8 indent_style = space indent_size = 2 insert_final_newline = true trim_trailing_whitespace = true [*.md] max_line_length = off trim_trailing_whitespace = false ================================================ FILE: angular/.gitignore ================================================ # See http://help.github.com/ignore-files/ for more about ignoring files. # compiled output /dist /tmp /out-tsc # Only exists if Bazel was run /bazel-out # dependencies /node_modules # profiling files chrome-profiler-events*.json speed-measure-plugin*.json # IDEs and editors /.idea .project .classpath .c9/ *.launch .settings/ *.sublime-workspace # IDE - VSCode .vscode/* !.vscode/settings.json !.vscode/tasks.json !.vscode/launch.json !.vscode/extensions.json .history/* # misc /.sass-cache /connect.lock /coverage /libpeerconnection.log npm-debug.log yarn-error.log testem.log /typings # System Files .DS_Store Thumbs.db .angular/ ================================================ FILE: angular/README.md ================================================ # Hello This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.0.1. ## Development server Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. ## Code scaffolding Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. ## Build Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build. ## Running unit tests Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). ## Running end-to-end tests Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/). ## Further help To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). ================================================ FILE: angular/angular.json ================================================ { "$schema": "./node_modules/@angular/cli/lib/config/schema.json", "version": 1, "cli": { "packageManager": "npm", "analytics": false }, "newProjectRoot": "projects", "projects": { "hello-angular": { "projectType": "application", "root": "", "sourceRoot": "src", "prefix": "app", "architect": { "build": { "builder": "@angular/build:application", "options": { "browser": "src/main.ts", "tsConfig": "tsconfig.app.json", "assets": [ { "glob": "**/*", "input": "public" } ], "styles": [ "src/styles.css" ] }, "configurations": { "production": { "budgets": [ { "type": "initial", "maximumWarning": "500kB", "maximumError": "1MB" } ], "outputHashing": "all" }, "development": { "optimization": false, "extractLicenses": false, "sourceMap": true } }, "defaultConfiguration": "production" }, "serve": { "builder": "@angular/build:dev-server", "configurations": { "production": { "buildTarget": "hello-angular:build:production" }, "development": { "buildTarget": "hello-angular:build:development" } }, "defaultConfiguration": "development" } } } } } ================================================ FILE: angular/package.json ================================================ { "name": "hello-angular", "version": "0.0.0", "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "watch": "ng build --watch --configuration development" }, "private": true, "dependencies": { "@angular/common": "^21.2.0", "@angular/compiler": "^21.2.0", "@angular/core": "^21.2.0", "@angular/platform-browser": "^21.2.0", "rxjs": "~7.8.0", "tslib": "^2.3.0" }, "devDependencies": { "@angular/build": "^21.2.9", "@angular/cli": "^21.2.9", "@angular/compiler-cli": "^21.2.0", "typescript": "~5.9.2" } } ================================================ FILE: angular/src/app/app.ts ================================================ import { Component } from '@angular/core'; @Component({ selector: 'app-root', template: `
Hello {{ value }}
`, }) export class App { value = 'World'; } ================================================ FILE: angular/src/assets/.gitkeep ================================================ ================================================ FILE: angular/src/index.html ================================================ Hello ================================================ FILE: angular/src/main.ts ================================================ import { bootstrapApplication } from '@angular/platform-browser'; import { App } from './app/app'; bootstrapApplication(App) .catch((err) => console.error(err)); ================================================ FILE: angular/src/styles.css ================================================ /* Global styles */ ================================================ FILE: angular/tsconfig.app.json ================================================ { "extends": "./tsconfig.json", "compilerOptions": { "outDir": "./out-tsc/app", "types": [] }, "include": [ "src/**/*.ts" ] } ================================================ FILE: angular/tsconfig.json ================================================ { "compileOnSave": false, "compilerOptions": { "strict": true, "noImplicitOverride": true, "noImplicitReturns": true, "noFallthroughCasesInSwitch": true, "skipLibCheck": true, "isolatedModules": true, "experimentalDecorators": true, "importHelpers": true, "target": "ES2022", "module": "preserve" }, "angularCompilerOptions": { "enableI18nLegacyMessageIdFormat": false, "strictInjectionParameters": true, "strictInputAccessModifiers": true, "strictTemplates": true }, "files": [], "references": [ { "path": "./tsconfig.app.json" } ] } ================================================ FILE: angular-universal/.browserslistrc ================================================ # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. # For additional information regarding the format and rule options, please see: # https://github.com/browserslist/browserslist#queries # For the full list of supported browsers by the Angular framework, please see: # https://angular.io/guide/browser-support # You can see what browsers were selected by your queries by running: # npx browserslist last 1 Chrome version last 1 Firefox version last 2 Edge major versions last 2 Safari major version last 2 iOS major versions Firefox ESR not IE 9-11 # For IE 9-11 support, remove 'not'. ================================================ FILE: angular-universal/.gitignore ================================================ # See http://help.github.com/ignore-files/ for more about ignoring files. # compiled output /dist /tmp /out-tsc # Only exists if Bazel was run /bazel-out # dependencies /node_modules # profiling files chrome-profiler-events*.json speed-measure-plugin*.json # IDEs and editors /.idea .project .classpath .c9/ *.launch .settings/ *.sublime-workspace # IDE - VSCode .vscode/* !.vscode/settings.json !.vscode/tasks.json !.vscode/launch.json !.vscode/extensions.json .history/* # misc /.sass-cache /connect.lock /coverage /libpeerconnection.log npm-debug.log yarn-error.log testem.log /typings # System Files .DS_Store Thumbs.db ================================================ FILE: angular-universal/README.md ================================================ # Hello This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 10.0.0-rc.0. ## Development server Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. ## Code scaffolding Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. ## Build Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build. ## Running unit tests Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). ## Running end-to-end tests Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/). ## Further help To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). ================================================ FILE: angular-universal/angular.json ================================================ { "$schema": "./node_modules/@angular/cli/lib/config/schema.json", "version": 1, "newProjectRoot": "projects", "projects": { "hello": { "projectType": "application", "schematics": { "@schematics/angular:component": { "inlineTemplate": true, "inlineStyle": true, "skipTests": true }, "@schematics/angular:class": { "skipTests": true }, "@schematics/angular:directive": { "skipTests": true }, "@schematics/angular:guard": { "skipTests": true }, "@schematics/angular:interceptor": { "skipTests": true }, "@schematics/angular:module": { "skipTests": true }, "@schematics/angular:pipe": { "skipTests": true }, "@schematics/angular:service": { "skipTests": true } }, "root": "", "sourceRoot": "src", "prefix": "app", "architect": { "build": { "builder": "@angular-devkit/build-angular:browser", "options": { "outputPath": "dist/hello/browser", "index": "src/index.html", "main": "src/main.ts", "polyfills": "src/polyfills.ts", "tsConfig": "tsconfig.app.json", "aot": true, "assets": [ "src/favicon.ico", "src/assets" ], "styles": [ "src/styles.css" ], "scripts": [] }, "configurations": { "production": { "fileReplacements": [ { "replace": "src/environments/environment.ts", "with": "src/environments/environment.prod.ts" } ], "optimization": true, "outputHashing": "all", "sourceMap": false, "extractCss": true, "namedChunks": false, "extractLicenses": true, "vendorChunk": false, "buildOptimizer": true, "budgets": [ { "type": "initial", "maximumWarning": "2mb", "maximumError": "5mb" }, { "type": "anyComponentStyle", "maximumWarning": "6kb", "maximumError": "10kb" } ] } } }, "serve": { "builder": "@angular-devkit/build-angular:dev-server", "options": { "browserTarget": "hello:build" }, "configurations": { "production": { "browserTarget": "hello:build:production" } } }, "extract-i18n": { "builder": "@angular-devkit/build-angular:extract-i18n", "options": { "browserTarget": "hello:build" } }, "server": { "builder": "@angular-devkit/build-angular:server", "options": { "outputPath": "dist/hello/server", "main": "server.ts", "tsConfig": "tsconfig.server.json" }, "configurations": { "production": { "outputHashing": "media", "fileReplacements": [ { "replace": "src/environments/environment.ts", "with": "src/environments/environment.prod.ts" } ], "sourceMap": false, "optimization": true } } }, "serve-ssr": { "builder": "@nguniversal/builders:ssr-dev-server", "options": { "browserTarget": "hello:build", "serverTarget": "hello:server" }, "configurations": { "production": { "browserTarget": "hello:build:production", "serverTarget": "hello:server:production" } } }, "prerender": { "builder": "@nguniversal/builders:prerender", "options": { "browserTarget": "hello:build:production", "serverTarget": "hello:server:production", "routes": [ "/" ] }, "configurations": { "production": {} } } } }}, "defaultProject": "hello" } ================================================ FILE: angular-universal/package.json ================================================ { "name": "hello", "version": "0.0.0", "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e", "dev:ssr": "ng run hello:serve-ssr", "serve:ssr": "node dist/hello/server/main.js", "build:ssr": "ng build --prod && ng run hello:server:production", "prerender": "ng run hello:prerender" }, "private": true, "dependencies": { "@angular/animations": "~10.0.0-rc.0", "@angular/common": "~10.0.0-rc.0", "@angular/compiler": "~10.0.0-rc.0", "@angular/core": "~10.0.0-rc.0", "@angular/forms": "~10.0.0-rc.0", "@angular/platform-browser": "~10.0.0-rc.0", "@angular/platform-browser-dynamic": "~10.0.0-rc.0", "@angular/platform-server": "~10.0.0-rc.0", "@angular/router": "~10.0.0-rc.0", "@nguniversal/express-engine": "^10.0.0-next.0", "express": "^4.15.2", "rxjs": "~6.5.4", "tslib": "^2.0.0", "zone.js": "~0.10.2" }, "devDependencies": { "@angular-devkit/build-angular": "~0.1000.0-rc.0", "@angular/cli": "~10.0.0-rc.0", "@angular/compiler-cli": "~10.0.0-rc.0", "@nguniversal/builders": "^10.0.0-next.0", "@types/express": "^4.17.0", "@types/node": "^12.11.1", "ts-node": "~8.3.0", "tslint": "~6.1.0", "typescript": "~3.9.2" } } ================================================ FILE: angular-universal/server.ts ================================================ import 'zone.js/dist/zone-node'; import { ngExpressEngine } from '@nguniversal/express-engine'; import * as express from 'express'; import { join } from 'path'; import { AppServerModule } from './src/main.server'; import { APP_BASE_HREF } from '@angular/common'; import { existsSync } from 'fs'; // The Express app is exported so that it can be used by serverless Functions. export function app() { const server = express(); const distFolder = join(process.cwd(), 'dist/hello/browser'); const indexHtml = existsSync(join(distFolder, 'index.original.html')) ? 'index.original.html' : 'index'; // Our Universal express-engine (found @ https://github.com/angular/universal/tree/master/modules/express-engine) server.engine('html', ngExpressEngine({ bootstrap: AppServerModule, })); server.set('view engine', 'html'); server.set('views', distFolder); // Example Express Rest API endpoints // server.get('/api/**', (req, res) => { }); // Serve static files from /browser server.get('*.*', express.static(distFolder, { maxAge: '1y' })); // All regular routes use the Universal engine server.get('*', (req, res) => { res.render(indexHtml, { req, providers: [{ provide: APP_BASE_HREF, useValue: req.baseUrl }] }); }); return server; } function run() { const port = process.env.PORT || 4000; // Start up the Node server const server = app(); server.listen(port, () => { console.log(`Node Express server listening on http://localhost:${port}`); }); } // Webpack will replace 'require' with '__webpack_require__' // '__non_webpack_require__' is a proxy to Node 'require' // The below code is to ensure that the server is run only when not requiring the bundle. declare const __non_webpack_require__: NodeRequire; const mainModule = __non_webpack_require__.main; const moduleFilename = mainModule && mainModule.filename || ''; if (moduleFilename === __filename || moduleFilename.includes('iisnode')) { run(); } export * from './src/main.server'; ================================================ FILE: angular-universal/src/app/app.component.ts ================================================ import { Component } from '@angular/core'; @Component({ selector: 'app-root', template: `
Hello {{value}}
`, }) export class AppComponent { value = 'World'; } ================================================ FILE: angular-universal/src/app/app.module.ts ================================================ import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule.withServerTransition({ appId: 'serverApp' }) ], providers: [], bootstrap: [AppComponent] }) export class AppModule { } ================================================ FILE: angular-universal/src/app/app.server.module.ts ================================================ import { NgModule } from '@angular/core'; import { ServerModule } from '@angular/platform-server'; import { AppModule } from './app.module'; import { AppComponent } from './app.component'; @NgModule({ imports: [ AppModule, ServerModule, ], bootstrap: [AppComponent], }) export class AppServerModule {} ================================================ FILE: angular-universal/src/app/package.json ================================================ { "name": "hello", "private": true, "description": "This is a special package.json file that is not used by package managers. It is however used to tell the tools and bundlers whether the code under this directory is free of code with non-local side-effect. Any code that does have non-local side-effects can't be well optimized (tree-shaken) and will result in unnecessary increased payload size. It should be safe to set this option to 'false' for new applications, but existing code bases could be broken when built with the production config if the application code does contain non-local side-effects that the application depends on.", "sideEffects": true } ================================================ FILE: angular-universal/src/assets/.gitkeep ================================================ ================================================ FILE: angular-universal/src/environments/environment.prod.ts ================================================ export const environment = { production: true }; ================================================ FILE: angular-universal/src/environments/environment.ts ================================================ // This file can be replaced during build by using the `fileReplacements` array. // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. // The list of file replacements can be found in `angular.json`. export const environment = { production: false }; /* * For easier debugging in development mode, you can import the following file * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. * * This import should be commented out in production mode because it will have a negative impact * on performance if an error is thrown. */ // import 'zone.js/dist/zone-error'; // Included with Angular CLI. ================================================ FILE: angular-universal/src/index.html ================================================ Hello ================================================ FILE: angular-universal/src/main.server.ts ================================================ import { enableProdMode } from '@angular/core'; import { environment } from './environments/environment'; if (environment.production) { enableProdMode(); } export { AppServerModule } from './app/app.server.module'; export { renderModule, renderModuleFactory } from '@angular/platform-server'; ================================================ FILE: angular-universal/src/main.ts ================================================ import { enableProdMode } from '@angular/core'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { AppModule } from './app/app.module'; import { environment } from './environments/environment'; if (environment.production) { enableProdMode(); } document.addEventListener('DOMContentLoaded', () => { platformBrowserDynamic().bootstrapModule(AppModule) .catch(err => console.error(err)); }); ================================================ FILE: angular-universal/src/polyfills.ts ================================================ /** * This file includes polyfills needed by Angular and is loaded before the app. * You can add your own extra polyfills to this file. * * This file is divided into 2 sections: * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. * 2. Application imports. Files imported after ZoneJS that should be loaded before your main * file. * * The current setup is for so-called "evergreen" browsers; the last versions of browsers that * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. * * Learn more in https://angular.io/guide/browser-support */ /*************************************************************************************************** * BROWSER POLYFILLS */ /** IE10 and IE11 requires the following for NgClass support on SVG elements */ // import 'classlist.js'; // Run `npm install --save classlist.js`. /** * Web Animations `@angular/platform-browser/animations` * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). */ // import 'web-animations-js'; // Run `npm install --save web-animations-js`. /** * By default, zone.js will patch all possible macroTask and DomEvents * user can disable parts of macroTask/DomEvents patch by setting following flags * because those flags need to be set before `zone.js` being loaded, and webpack * will put import in the top of bundle, so user need to create a separate file * in this directory (for example: zone-flags.ts), and put the following flags * into that file, and then add the following code before importing zone.js. * import './zone-flags'; * * The flags allowed in zone-flags.ts are listed here. * * The following flags will work for all browsers. * * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames * * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js * with the following flag, it will bypass `zone.js` patch for IE/Edge * * (window as any).__Zone_enable_cross_context_check = true; * */ /*************************************************************************************************** * Zone JS is required by default for Angular itself. */ import 'zone.js/dist/zone'; // Included with Angular CLI. /*************************************************************************************************** * APPLICATION IMPORTS */ ================================================ FILE: angular-universal/src/styles.css ================================================ /* You can add global styles to this file, and also import other style files */ ================================================ FILE: angular-universal/tsconfig.app.json ================================================ { "extends": "./tsconfig.base.json", "compilerOptions": { "outDir": "./out-tsc/app", "types": [] }, "files": [ "src/main.ts", "src/polyfills.ts" ], "include": [ "src/**/*.d.ts" ] } ================================================ FILE: angular-universal/tsconfig.base.json ================================================ { "compileOnSave": false, "compilerOptions": { "baseUrl": "./", "outDir": "./dist/out-tsc", "sourceMap": true, "declaration": false, "downlevelIteration": true, "experimentalDecorators": true, "moduleResolution": "node", "importHelpers": true, "target": "es2015", "module": "es2020", "lib": [ "es2018", "dom" ] } } ================================================ FILE: angular-universal/tsconfig.json ================================================ // This is a "Solution Style" tsconfig.json file, and is used by editors and TypeScript’s language server to improve development experience. // It is not intended to be used to perform a compilation. { "files": [], "references": [ { "path": "./tsconfig.app.json" }, { "path": "./tsconfig.spec.json" }, { "path": "./tsconfig.server.json" } ] } ================================================ FILE: angular-universal/tsconfig.server.json ================================================ { "extends": "./tsconfig.app.json", "compilerOptions": { "outDir": "./out-tsc/server", "types": [ "node" ] }, "files": [ "src/main.server.ts", "server.ts" ], "angularCompilerOptions": { "entryModule": "./src/app/app.server.module#AppServerModule" } } ================================================ FILE: angularjs/index.html ================================================ Hello World | angular.js

{{::helloWorld}}

================================================ FILE: aurelia/.editorconfig ================================================ # EditorConfig is awesome: http://EditorConfig.org # top-most EditorConfig file root = true # Unix-style newlines with a newline ending every file [*] end_of_line = lf insert_final_newline = true # 2 space indentation indent_style = space indent_size = 2 ================================================ FILE: aurelia/.gitignore ================================================ # You may want to customise this file depending on your Operating System # and the editor that you use. # # We recommend that you use a Global Gitignore for files that are not related # to the project. (https://help.github.com/articles/ignoring-files/#create-a-global-gitignore) # OS # # Ref: https://github.com/github/gitignore/blob/master/Global/macOS.gitignore # Ref: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore # Ref: https://github.com/github/gitignore/blob/master/Global/Linux.gitignore .DS_STORE Thumbs.db # Editors # # Ref: https://github.com/github/gitignore/blob/master/Global # Ref: https://github.com/github/gitignore/blob/master/Global/JetBrains.gitignore # Ref: https://github.com/github/gitignore/blob/master/Global/VisualStudioCode.gitignore .idea .vscode/* !.vscode/settings.json !.vscode/tasks.json !.vscode/launch.json !.vscode/extensions.json # Dependencies node_modules # Compiled files /scripts /src/environment.js /src/environment.ts /dist /test/coverage-jest /test/coverage-karma ================================================ FILE: aurelia/README.md ================================================ # `aurelia` This project is bootstrapped by [aurelia-cli](https://github.com/aurelia/cli). For more information, go to https://aurelia.io/docs/cli/webpack ## Run dev app Run `npm start`, then open `http://localhost:8080` You can change the standard webpack configurations from CLI easily with something like this: `npm start -- --open --port 8888`. However, it is better to change the respective npm scripts or `webpack.config.js` with these options, as per your need. To enable Webpack Bundle Analyzer, do `npm run analyze` (production build). To enable hot module reload, do `npm start -- --hmr`. To change dev server port, do `npm start -- --port 8888`. To change dev server host, do `npm start -- --host 127.0.0.1` **PS:** You could mix all the flags as well, `npm start -- --host 127.0.0.1 --port 7070 --open --hmr` For long time aurelia-cli user, you can still use `au run` with those arguments like `au run --env prod --open --hmr`. But `au run` now simply executes `npm start` command. ## Build for production Run `npm run build`, or the old way `au build --env prod`. ## Unit tests Run `au test` (or `au jest`). To run in watch mode, `au test --watch` or `au jest --watch`. ================================================ FILE: aurelia/aurelia_project/aurelia.json ================================================ { "name": "aurelia", "type": "project:application", "paths": { "root": "src", "resources": "resources", "elements": "resources/elements", "attributes": "resources/attributes", "valueConverters": "resources/value-converters", "bindingBehaviors": "resources/binding-behaviors" }, "transpiler": { "id": "typescript", "fileExtension": ".ts" }, "build": { "options": { "server": "dev", "extractCss": "prod", "coverage": false } }, "platform": { "hmr": false, "open": false, "port": 8080, "host": "localhost", "output": "dist" }, "packageManager": "npm" } ================================================ FILE: aurelia/aurelia_project/generators/attribute.json ================================================ { "name": "attribute", "description": "Creates a custom attribute class and places it in the project resources." } ================================================ FILE: aurelia/aurelia_project/generators/attribute.ts ================================================ import {inject} from 'aurelia-dependency-injection'; import {Project, ProjectItem, CLIOptions, UI} from 'aurelia-cli'; @inject(Project, CLIOptions, UI) export default class AttributeGenerator { constructor(private project: Project, private options: CLIOptions, private ui: UI) { } async execute() { const name = await this.ui.ensureAnswer( this.options.args[0], 'What would you like to call the custom attribute?' ); let fileName = this.project.makeFileName(name); let className = this.project.makeClassName(name); this.project.attributes.add( ProjectItem.text(`${fileName}.ts`, this.generateSource(className)) ); await this.project.commitChanges(); await this.ui.log(`Created ${fileName}.`); } generateSource(className) { return `import {autoinject} from 'aurelia-framework'; @autoinject() export class ${className}CustomAttribute { constructor(private element: Element) { } valueChanged(newValue, oldValue) { // } } `; } } ================================================ FILE: aurelia/aurelia_project/generators/binding-behavior.json ================================================ { "name": "binding-behavior", "description": "Creates a binding behavior class and places it in the project resources." } ================================================ FILE: aurelia/aurelia_project/generators/binding-behavior.ts ================================================ import {inject} from 'aurelia-dependency-injection'; import {Project, ProjectItem, CLIOptions, UI} from 'aurelia-cli'; @inject(Project, CLIOptions, UI) export default class BindingBehaviorGenerator { constructor(private project: Project, private options: CLIOptions, private ui: UI) { } async execute() { const name = await this.ui.ensureAnswer( this.options.args[0], 'What would you like to call the binding behavior?' ); let fileName = this.project.makeFileName(name); let className = this.project.makeClassName(name); this.project.bindingBehaviors.add( ProjectItem.text(`${fileName}.ts`, this.generateSource(className)) ); await this.project.commitChanges(); await this.ui.log(`Created ${fileName}.`); } generateSource(className) { return `export class ${className}BindingBehavior { bind(binding, source) { // } unbind(binding, source) { // } } ` } } ================================================ FILE: aurelia/aurelia_project/generators/component.json ================================================ { "name": "component", "description": "Creates a custom component class and template (view model and view), placing them in the project source folder (or optionally in sub folders)." } ================================================ FILE: aurelia/aurelia_project/generators/component.ts ================================================ import { inject } from 'aurelia-dependency-injection'; import { Project, ProjectItem, CLIOptions, UI } from 'aurelia-cli'; import * as path from 'path'; @inject(Project, CLIOptions, UI) export default class ElementGenerator { constructor(private project: Project, private options: CLIOptions, private ui: UI) { } async execute() { const name = await this.ui.ensureAnswer( this.options.args[0], 'What would you like to call the component?' ); const subFolders = await this.ui.ensureAnswer( this.options.args[1], 'What sub-folder would you like to add it to?\nIf it doesn\'t exist it will be created for you.\n\nDefault folder is the source folder (src).', "." ); let fileName = this.project.makeFileName(name); let className = this.project.makeClassName(name); this.project.root.add( ProjectItem.text(path.join(subFolders, fileName + '.ts'), this.generateJSSource(className)), ProjectItem.text(path.join(subFolders, fileName + '.html'), this.generateHTMLSource(className)) ); await this.project.commitChanges(); await this.ui.log(`Created ${name} in the '${path.join(this.project.root.name, subFolders)}' folder`); } generateJSSource(className) { return `export class ${className} { message: string; constructor() { this.message = 'Hello world'; } } ` } generateHTMLSource(className) { return ` ` } } ================================================ FILE: aurelia/aurelia_project/generators/element.json ================================================ { "name": "element", "description": "Creates a custom element class and template, placing them in the project resources." } ================================================ FILE: aurelia/aurelia_project/generators/element.ts ================================================ import {inject} from 'aurelia-dependency-injection'; import {Project, ProjectItem, CLIOptions, UI} from 'aurelia-cli'; @inject(Project, CLIOptions, UI) export default class ElementGenerator { constructor(private project: Project, private options: CLIOptions, private ui: UI) { } async execute() { const name = await this.ui.ensureAnswer( this.options.args[0], 'What would you like to call the custom element?' ); let fileName = this.project.makeFileName(name); let className = this.project.makeClassName(name); this.project.elements.add( ProjectItem.text(`${fileName}.ts`, this.generateJSSource(className)), ProjectItem.text(`${fileName}.html`, this.generateHTMLSource(className)) ); await this.project.commitChanges(); await this.ui.log(`Created ${fileName}.`); } generateJSSource(className) { return `import {bindable} from 'aurelia-framework'; export class ${className} { @bindable value; valueChanged(newValue, oldValue) { // } } `; } generateHTMLSource(className) { return ` `; } } ================================================ FILE: aurelia/aurelia_project/generators/generator.json ================================================ { "name": "generator", "description": "Creates a generator class and places it in the project generators folder." } ================================================ FILE: aurelia/aurelia_project/generators/generator.ts ================================================ import {inject} from 'aurelia-dependency-injection'; import {Project, ProjectItem, CLIOptions, UI} from 'aurelia-cli'; @inject(Project, CLIOptions, UI) export default class GeneratorGenerator { constructor(private project: Project, private options: CLIOptions, private ui: UI) { } async execute() { const name = await this.ui.ensureAnswer( this.options.args[0], 'What would you like to call the generator?' ); let fileName = this.project.makeFileName(name); let className = this.project.makeClassName(name); this.project.generators.add( ProjectItem.text(`${fileName}.ts`, this.generateSource(className)) ); await this.project.commitChanges() await this.ui.log(`Created ${fileName}.`); } generateSource(className) { return `import {inject} from 'aurelia-dependency-injection'; import {Project, ProjectItem, CLIOptions, UI} from 'aurelia-cli'; @inject(Project, CLIOptions, UI) export default class ${className}Generator { constructor(project, options, ui) { this.project = project; this.options = options; this.ui = ui; } execute() { return this.ui .ensureAnswer(this.options.args[0], 'What would you like to call the new item?') .then(name => { let fileName = this.project.makeFileName(name); let className = this.project.makeClassName(name); this.project.elements.add( ProjectItem.text(\`\${fileName}.ts\`, this.generateSource(className)) ); return this.project.commitChanges() .then(() => this.ui.log(\`Created \${fileName}.\`)); }); } generateSource(className) { return \`import {bindable} from 'aurelia-framework'; export class \${className} { @bindable value; valueChanged(newValue, oldValue) { // } } \` } } `; } } ================================================ FILE: aurelia/aurelia_project/generators/task.json ================================================ { "name": "task", "description": "Creates a task and places it in the project tasks folder." } ================================================ FILE: aurelia/aurelia_project/generators/task.ts ================================================ import {inject} from 'aurelia-dependency-injection'; import {Project, ProjectItem, CLIOptions, UI} from 'aurelia-cli'; @inject(Project, CLIOptions, UI) export default class TaskGenerator { constructor(private project: Project, private options: CLIOptions, private ui: UI) { } async execute() { const name = await this.ui.ensureAnswer( this.options.args[0], 'What would you like to call the task?' ); let fileName = this.project.makeFileName(name); let functionName = this.project.makeFunctionName(name); this.project.tasks.add( ProjectItem.text(`${fileName}.ts`, this.generateSource(functionName)) ); await this.project.commitChanges(); await this.ui.log(`Created ${fileName}.`); } generateSource(functionName) { return `import * as gulp from 'gulp'; import * as project from '../aurelia.json'; export default function ${functionName}() { return gulp.src(project.paths.???) .pipe(gulp.dest(project.paths.output)); } `; } } ================================================ FILE: aurelia/aurelia_project/generators/value-converter.json ================================================ { "name": "value-converter", "description": "Creates a value converter class and places it in the project resources." } ================================================ FILE: aurelia/aurelia_project/generators/value-converter.ts ================================================ import {inject} from 'aurelia-dependency-injection'; import {Project, ProjectItem, CLIOptions, UI} from 'aurelia-cli'; @inject(Project, CLIOptions, UI) export default class ValueConverterGenerator { constructor(private project: Project, private options: CLIOptions, private ui: UI) { } async execute() { const name = await this.ui.ensureAnswer( this.options.args[0], 'What would you like to call the value converter?' ); let fileName = this.project.makeFileName(name); let className = this.project.makeClassName(name); this.project.valueConverters.add( ProjectItem.text(`${fileName}.ts`, this.generateSource(className)) ); await this.project.commitChanges(); await this.ui.log(`Created ${fileName}.`); } generateSource(className) { return `export class ${className}ValueConverter { toView(value) { // } fromView(value) { // } } `; } } ================================================ FILE: aurelia/aurelia_project/tasks/build.json ================================================ { "name": "build", "description": "Builds and processes all application assets. It is an alias of the `npm run build:dev`, you may use either of those; see README for more details.", "flags": [ { "name": "analyze", "description": "Enable Webpack Bundle Analyzer. Typically paired with --env prod", "type": "boolean" }, { "name": "env", "description": "Sets the build environment.", "type": "string" }, { "name": "watch", "description": "Watches source files for changes and refreshes the bundles automatically.", "type": "boolean" } ] } ================================================ FILE: aurelia/aurelia_project/tasks/build.ts ================================================ import { NPM } from 'aurelia-cli'; export default function() { console.log('`au build` is an alias of the `npm run build:dev`, you may use either of those; see README for more details.'); const args = process.argv.slice(3); return (new NPM()).run('run', ['build:dev', '--', ... cleanArgs(args)]); } // Cleanup --env prod to --env.production // for backwards compatibility function cleanArgs(args) { const cleaned = []; for (let i = 0, ii = args.length; i < ii; i++) { if (args[i] === '--env' && i < ii - 1) { const env = args[++i].toLowerCase(); if (env.startsWith('prod')) { cleaned.push('--env.production'); } else if (env.startsWith('test')) { cleaned.push('--tests'); } } else { cleaned.push(args[i]); } } return cleaned; } ================================================ FILE: aurelia/aurelia_project/tasks/jest.json ================================================ { "name": "jest", "description": "Runs Jest and reports the results.", "flags": [ { "name": "watch", "description": "Watches test files for changes and re-runs the tests automatically.", "type": "boolean" } ] } ================================================ FILE: aurelia/aurelia_project/tasks/jest.ts ================================================ export {default} from './test'; ================================================ FILE: aurelia/aurelia_project/tasks/run.json ================================================ { "name": "run", "description": "Builds the application and serves up the assets via a local web server, watching files for changes as you work. It is an alias of the `npm start`, you may use either of those; see README for more details.", "flags": [ { "name": "analyze", "description": "Enable Webpack Bundle Analyzer. Typically paired with --env prod", "type": "boolean" }, { "name": "env", "description": "Sets the build environment.", "type": "string" }, { "name": "hmr", "description": "Enable Hot Module Reload", "type": "boolean" }, { "name": "port", "description": "Set port number of the dev server", "type": "string" }, { "name": "host", "description": "Set host address of the dev server, the accessible URL", "type": "string" }, { "name": "open", "description": "Open the default browser at the application location.", "type": "boolean" } ] } ================================================ FILE: aurelia/aurelia_project/tasks/run.ts ================================================ import { NPM } from 'aurelia-cli'; import * as kill from 'tree-kill'; import { platform } from '../aurelia.json'; const npm = new NPM(); function run() { console.log('`au run` is an alias of the `npm start`, you may use either of those; see README for more details.'); const args = process.argv.slice(3); return npm.run('start', ['--', ... cleanArgs(args)]); } // Cleanup --env prod to --env.production // for backwards compatibility function cleanArgs(args) { let host; const cleaned = []; for (let i = 0, ii = args.length; i < ii; i++) { if (args[i] === '--env' && i < ii - 1) { const env = args[++i].toLowerCase(); if (env.startsWith('prod')) { cleaned.push('--env.production'); } else if (env.startsWith('test')) { cleaned.push('--tests'); } } else if (args[i] === '--host' && i < ii -1) { host = args[++i]; } else { cleaned.push(args[i]); } } // Deal with --host before webpack-dev-server calls webpack config. // Because of https://discourse.aurelia.io/t/changing-platform-host-in-aurelia-json-doesnt-change-the-host-ip/3043/10?u=huochunpeng if (!host) host = platform.host; if (host) cleaned.push('--host', host); return cleaned; } const shutdownAppServer = () => { if (npm && npm.proc) { kill(npm.proc.pid); } }; export { run as default, shutdownAppServer }; ================================================ FILE: aurelia/aurelia_project/tasks/test.json ================================================ { "name": "test", "description": "Runs Jest and reports the results.", "flags": [ { "name": "watch", "description": "Watches test files for changes and re-runs the tests automatically.", "type": "boolean" } ] } ================================================ FILE: aurelia/aurelia_project/tasks/test.ts ================================================ import { runCLI } from '@jest/core'; import * as path from 'path'; import * as packageJson from '../../package.json'; import { CLIOptions } from 'aurelia-cli'; export default (cb) => { let options = packageJson.jest; if (CLIOptions.hasFlag('watch')) { Object.assign(options, { watchAll: true}); } runCLI(options, [path.resolve(__dirname, '../../')]).then(({ results }) => { if (results.numFailedTests || results.numFailedTestSuites) { cb('Tests Failed'); } else { cb(); } }); }; ================================================ FILE: aurelia/config/environment.json ================================================ { "debug": true, "testing": true } ================================================ FILE: aurelia/config/environment.production.json ================================================ { "debug": false, "testing": false } ================================================ FILE: aurelia/index.ejs ================================================ <%- htmlWebpackPlugin.options.metadata.title %> ================================================ FILE: aurelia/package.json ================================================ { "name": "aurelia", "description": "An Aurelia client application.", "version": "0.1.0", "repository": { "type": "???", "url": "???" }, "license": "MIT", "dependencies": { "aurelia-bootstrapper": "^2.3.3", "aurelia-animator-css": "^1.0.4" }, "devDependencies": { "aurelia-cli": "^1.3.1", "gulp": "^4.0.0", "minimatch": "^3.0.4", "through2": "^3.0.1", "vinyl-fs": "^3.0.3", "promise-polyfill": "^8.1.3", "ts-loader": "^6.2.1", "ts-node": "^8.6.2", "@types/node": "^13.7.6", "@types/lodash": "^4.14.149", "@types/webpack": "^4.41.6", "typescript": "^3.8.2", "html-webpack-plugin": "^3.2.0", "copy-webpack-plugin": "^5.1.1", "mini-css-extract-plugin": "^0.9.0", "aurelia-webpack-plugin": "^4.0.0", "duplicate-package-checker-webpack-plugin": "^3.0.0", "clean-webpack-plugin": "^3.0.0", "webpack": "^4.41.6", "webpack-cli": "^3.3.11", "webpack-dev-server": "^3.10.3", "expose-loader": "^0.7.5", "style-loader": "^1.1.3", "url-loader": "^3.0.0", "css-loader": "^3.4.2", "file-loader": "^5.1.0", "app-settings-loader": "^1.0.3", "json-loader": "^0.5.7", "html-loader": "^0.5.5", "webpack-bundle-analyzer": "^3.6.0", "tree-kill": "^1.2.1", "aurelia-loader-nodejs": "^1.1.0", "aurelia-pal-nodejs": "^2.0.0" }, "scripts": { "build": "webpack --env.production --extractCss", "start": "webpack-dev-server --extractCss", "build:dev": "webpack --extractCss", "analyze": "webpack --env.production --analyze" }, "engines": { "node": ">=8.9.0" } } ================================================ FILE: aurelia/src/app.html ================================================ ================================================ FILE: aurelia/src/app.ts ================================================ export class App { public message: string = 'Hello World!'; } ================================================ FILE: aurelia/src/main.ts ================================================ import {Aurelia} from 'aurelia-framework'; import * as environment from '../config/environment.json'; import {PLATFORM} from 'aurelia-pal'; export function configure(aurelia: Aurelia) { aurelia.use .standardConfiguration() .feature(PLATFORM.moduleName('resources/index')); aurelia.use.developmentLogging(environment.debug ? 'debug' : 'warn'); aurelia.start().then(() => aurelia.setRoot(PLATFORM.moduleName('app'))); } ================================================ FILE: aurelia/src/resources/index.ts ================================================ import {FrameworkConfiguration} from 'aurelia-framework'; export function configure(config: FrameworkConfiguration) { //config.globalResources([]); } ================================================ FILE: aurelia/tsconfig.json ================================================ { "compileOnSave": false, "compilerOptions": { "module": "esnext", "skipLibCheck": true, "typeRoots": [ "./node_modules/@types" ], "removeComments": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "sourceMap": true, "target": "es5", "lib": [ "es2015", "dom" ], "moduleResolution": "node", "baseUrl": "src", "resolveJsonModule": true, "allowJs": true }, "include": [ "./src/**/*.ts", "./test/**/*.ts", "./types/**/*.d.ts" ], "atom": { "rewriteTsconfig": false } } ================================================ FILE: aurelia/tslint.json ================================================ { "rules": { "no-empty": true } } ================================================ FILE: aurelia/types/fetch.d.ts ================================================ declare module "isomorphic-fetch" { export = fetch; } ================================================ FILE: aurelia/types/system.d.ts ================================================ declare module 'system' { import fetch = require('isomorphic-fetch'); import * as Aurelia from 'aurelia-framework'; /* * List your dynamically imported modules to get typing support */ interface System { import(name: string): Promise; import(name: 'aurelia-framework'): Promise; import(name: 'isomorphic-fetch'): Promise; } global { var System: System; } } ================================================ FILE: aurelia/webpack.config.js ================================================ const path = require('path'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const CopyWebpackPlugin = require('copy-webpack-plugin'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const DuplicatePackageCheckerPlugin = require('duplicate-package-checker-webpack-plugin'); const project = require('./aurelia_project/aurelia.json'); const { AureliaPlugin, ModuleDependenciesPlugin } = require('aurelia-webpack-plugin'); const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer'); const { CleanWebpackPlugin } = require('clean-webpack-plugin'); // config helpers: const ensureArray = (config) => config && (Array.isArray(config) ? config : [config]) || []; const when = (condition, config, negativeConfig) => condition ? ensureArray(config) : ensureArray(negativeConfig); // primary config: const title = 'Aurelia Navigation Skeleton'; const outDir = path.resolve(__dirname, project.platform.output); const srcDir = path.resolve(__dirname, 'src'); const nodeModulesDir = path.resolve(__dirname, 'node_modules'); const baseUrl = '/'; const cssRules = [ { loader: 'css-loader' }, ]; module.exports = ({ production } = {}, {extractCss, analyze, tests, hmr, port, host } = {}) => ({ resolve: { extensions: ['.ts', '.js'], modules: [srcDir, 'node_modules'], alias: { // https://github.com/aurelia/dialog/issues/387 // Uncomment next line if you had trouble to run aurelia-dialog on IE11 // 'aurelia-dialog': path.resolve(__dirname, 'node_modules/aurelia-dialog/dist/umd/aurelia-dialog.js'), // https://github.com/aurelia/binding/issues/702 // Enforce single aurelia-binding, to avoid v1/v2 duplication due to // out-of-date dependencies on 3rd party aurelia plugins 'aurelia-binding': path.resolve(__dirname, 'node_modules/aurelia-binding') } }, entry: { app: [ // Uncomment next line if you need to support IE11 // 'promise-polyfill/src/polyfill', 'aurelia-bootstrapper' ] }, mode: production ? 'production' : 'development', output: { path: outDir, publicPath: baseUrl, filename: production ? '[name].[chunkhash].bundle.js' : '[name].[hash].bundle.js', sourceMapFilename: production ? '[name].[chunkhash].bundle.map' : '[name].[hash].bundle.map', chunkFilename: production ? '[name].[chunkhash].chunk.js' : '[name].[hash].chunk.js' }, optimization: { runtimeChunk: true, // separates the runtime chunk, required for long term cacheability // moduleIds is the replacement for HashedModuleIdsPlugin and NamedModulesPlugin deprecated in https://github.com/webpack/webpack/releases/tag/v4.16.0 // changes module id's to use hashes be based on the relative path of the module, required for long term cacheability moduleIds: 'hashed', // Use splitChunks to breakdown the App/Aurelia bundle down into smaller chunks // https://webpack.js.org/plugins/split-chunks-plugin/ splitChunks: { hidePathInfo: true, // prevents the path from being used in the filename when using maxSize chunks: "initial", // sizes are compared against source before minification maxSize: 200000, // splits chunks if bigger than 200k, adjust as required (maxSize added in webpack v4.15) cacheGroups: { default: false, // Disable the built-in groups default & vendors (vendors is redefined below) // You can insert additional cacheGroup entries here if you want to split out specific modules // This is required in order to split out vendor css from the app css when using --extractCss // For example to separate font-awesome and bootstrap: // fontawesome: { // separates font-awesome css from the app css (font-awesome is only css/fonts) // name: 'vendor.font-awesome', // test: /[\\/]node_modules[\\/]font-awesome[\\/]/, // priority: 100, // enforce: true // }, // bootstrap: { // separates bootstrap js from vendors and also bootstrap css from app css // name: 'vendor.font-awesome', // test: /[\\/]node_modules[\\/]bootstrap[\\/]/, // priority: 90, // enforce: true // }, // This is the HTTP/1.1 optimised cacheGroup configuration vendors: { // picks up everything from node_modules as long as the sum of node modules is larger than minSize test: /[\\/]node_modules[\\/]/, name: 'vendors', priority: 19, enforce: true, // causes maxInitialRequests to be ignored, minSize still respected if specified in cacheGroup minSize: 30000 // use the default minSize }, vendorsAsync: { // vendors async chunk, remaining asynchronously used node modules as single chunk file test: /[\\/]node_modules[\\/]/, name: 'vendors.async', chunks: 'async', priority: 9, reuseExistingChunk: true, minSize: 10000 // use smaller minSize to avoid too much potential bundle bloat due to module duplication. }, commonsAsync: { // commons async chunk, remaining asynchronously used modules as single chunk file name: 'commons.async', minChunks: 2, // Minimum number of chunks that must share a module before splitting chunks: 'async', priority: 0, reuseExistingChunk: true, minSize: 10000 // use smaller minSize to avoid too much potential bundle bloat due to module duplication. } } } }, performance: { hints: false }, devServer: { contentBase: outDir, // serve index.html for all 404 (required for push-state) historyApiFallback: true, hot: hmr || project.platform.hmr, port: port || project.platform.port, host: host }, devtool: production ? 'nosources-source-map' : 'cheap-module-eval-source-map', module: { rules: [ // CSS required in JS/TS files should use the style-loader that auto-injects it into the website // only when the issuer is a .js/.ts file, so the loaders are not applied inside html templates { test: /\.css$/i, issuer: [{ not: [{ test: /\.html$/i }] }], use: extractCss ? [{ loader: MiniCssExtractPlugin.loader }, ...cssRules ] : ['style-loader', ...cssRules] }, { test: /\.css$/i, issuer: [{ test: /\.html$/i }], // CSS required in templates cannot be extracted safely // because Aurelia would try to require it again in runtime use: cssRules }, { test: /\.html$/i, loader: 'html-loader' }, { test: /\.ts$/, loader: "ts-loader" }, // embed small images and fonts as Data Urls and larger ones as files: { test: /\.(png|gif|jpg|cur)$/i, loader: 'url-loader', options: { limit: 8192 } }, { test: /\.woff2(\?v=[0-9]\.[0-9]\.[0-9])?$/i, loader: 'url-loader', options: { limit: 10000, mimetype: 'application/font-woff2' } }, { test: /\.woff(\?v=[0-9]\.[0-9]\.[0-9])?$/i, loader: 'url-loader', options: { limit: 10000, mimetype: 'application/font-woff' } }, // load these fonts normally, as files: { test: /\.(ttf|eot|svg|otf)(\?v=[0-9]\.[0-9]\.[0-9])?$/i, loader: 'file-loader' }, { test: /environment\.json$/i, use: [ {loader: "app-settings-loader", options: {env: production ? 'production' : 'development' }}, ]}, ...when(tests, { test: /\.[jt]s$/i, loader: 'istanbul-instrumenter-loader', include: srcDir, exclude: [/\.(spec|test)\.[jt]s$/i], enforce: 'post', options: { esModules: true }, }) ] }, plugins: [ ...when(!tests, new DuplicatePackageCheckerPlugin()), new AureliaPlugin(), new ModuleDependenciesPlugin({ }), new HtmlWebpackPlugin({ template: 'index.ejs', metadata: { // available in index.ejs // title, baseUrl } }), // ref: https://webpack.js.org/plugins/mini-css-extract-plugin/ ...when(extractCss, new MiniCssExtractPlugin({ // updated to match the naming conventions for the js files filename: production ? 'css/[name].[contenthash].bundle.css' : 'css/[name].[hash].bundle.css', chunkFilename: production ? 'css/[name].[contenthash].chunk.css' : 'css/[name].[hash].chunk.css' })), ...when(!tests, new CopyWebpackPlugin([ { from: 'static', to: outDir, ignore: ['.*'] }])), // ignore dot (hidden) files ...when(analyze, new BundleAnalyzerPlugin()), /** * Note that the usage of following plugin cleans the webpack output directory before build. * In case you want to generate any file in the output path as a part of pre-build step, this plugin will likely * remove those before the webpack build. In that case consider disabling the plugin, and instead use something like * `del` (https://www.npmjs.com/package/del), or `rimraf` (https://www.npmjs.com/package/rimraf). */ new CleanWebpackPlugin() ] }); ================================================ FILE: babylonjs/index.html ================================================ Hello Babylon.js ================================================ FILE: backbone/README.md ================================================ # Project Hello World app for Backbone.js ## Getting Started Open the index.html to see Hello World in action ================================================ FILE: backbone/index.html ================================================ Backbone.js - Hello World
================================================ FILE: backbone/index.js ================================================ (function ($) { var WorldModel = Backbone.Model.extend({ defaults: { name: '', } }); var world = new WorldModel({ name: 'World.' }); var Hello = Backbone.View.extend({ el: '#app', render: function () { $(this.el).html(`Hello ${this.model.get('name')}`); } }); var view = new Hello({model: world}); view.render(); })(jQuery); ================================================ FILE: backbone/libs/backbone-min.js ================================================ (function(t){var e=typeof self=="object"&&self.self===self&&self||typeof global=="object"&&global.global===global&&global;if(typeof define==="function"&&define.amd){define(["underscore","jquery","exports"],function(i,n,r){e.Backbone=t(e,r,i,n)})}else if(typeof exports!=="undefined"){var i=require("underscore"),n;try{n=require("jquery")}catch(r){}t(e,exports,i,n)}else{e.Backbone=t(e,{},e._,e.jQuery||e.Zepto||e.ender||e.$)}})(function(t,e,i,n){var r=t.Backbone;var s=Array.prototype.slice;e.VERSION="1.4.0";e.$=n;e.noConflict=function(){t.Backbone=r;return this};e.emulateHTTP=false;e.emulateJSON=false;var a=e.Events={};var o=/\s+/;var h;var u=function(t,e,n,r,s){var a=0,h;if(n&&typeof n==="object"){if(r!==void 0&&"context"in s&&s.context===void 0)s.context=r;for(h=i.keys(n);athis.length)r=this.length;if(r<0)r+=this.length+1;var s=[];var a=[];var o=[];var h=[];var u={};var l=e.add;var c=e.merge;var f=e.remove;var d=false;var v=this.comparator&&r==null&&e.sort!==false;var p=i.isString(this.comparator)?this.comparator:null;var g,m;for(m=0;m7);this._useHashChange=this._wantsHashChange&&this._hasHashChange;this._wantsPushState=!!this.options.pushState;this._hasPushState=!!(this.history&&this.history.pushState);this._usePushState=this._wantsPushState&&this._hasPushState;this.fragment=this.getFragment();this.root=("/"+this.root+"/").replace(L,"/");if(this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){var e=this.root.slice(0,-1)||"/";this.location.replace(e+"#"+this.getPath());return true}else if(this._hasPushState&&this.atRoot()){this.navigate(this.getHash(),{replace:true})}}if(!this._hasHashChange&&this._wantsHashChange&&!this._usePushState){this.iframe=document.createElement("iframe");this.iframe.src="javascript:0";this.iframe.style.display="none";this.iframe.tabIndex=-1;var n=document.body;var r=n.insertBefore(this.iframe,n.firstChild).contentWindow;r.document.open();r.document.close();r.location.hash="#"+this.fragment}var s=window.addEventListener||function(t,e){return attachEvent("on"+t,e)};if(this._usePushState){s("popstate",this.checkUrl,false)}else if(this._useHashChange&&!this.iframe){s("hashchange",this.checkUrl,false)}else if(this._wantsHashChange){this._checkUrlInterval=setInterval(this.checkUrl,this.interval)}if(!this.options.silent)return this.loadUrl()},stop:function(){var t=window.removeEventListener||function(t,e){return detachEvent("on"+t,e)};if(this._usePushState){t("popstate",this.checkUrl,false)}else if(this._useHashChange&&!this.iframe){t("hashchange",this.checkUrl,false)}if(this.iframe){document.body.removeChild(this.iframe);this.iframe=null}if(this._checkUrlInterval)clearInterval(this._checkUrlInterval);B.started=false},route:function(t,e){this.handlers.unshift({route:t,callback:e})},checkUrl:function(t){var e=this.getFragment();if(e===this.fragment&&this.iframe){e=this.getHash(this.iframe.contentWindow)}if(e===this.fragment)return false;if(this.iframe)this.navigate(e);this.loadUrl()},loadUrl:function(t){if(!this.matchRoot())return false;t=this.fragment=this.getFragment(t);return i.some(this.handlers,function(e){if(e.route.test(t)){e.callback(t);return true}})},navigate:function(t,e){if(!B.started)return false;if(!e||e===true)e={trigger:!!e};t=this.getFragment(t||"");var i=this.root;if(t===""||t.charAt(0)==="?"){i=i.slice(0,-1)||"/"}var n=i+t;t=t.replace(W,"");var r=this.decodeFragment(t);if(this.fragment===r)return;this.fragment=r;if(this._usePushState){this.history[e.replace?"replaceState":"pushState"]({},document.title,n)}else if(this._wantsHashChange){this._updateHash(this.location,t,e.replace);if(this.iframe&&t!==this.getHash(this.iframe.contentWindow)){var s=this.iframe.contentWindow;if(!e.replace){s.document.open();s.document.close()}this._updateHash(s.location,t,e.replace)}}else{return this.location.assign(n)}if(e.trigger)return this.loadUrl(t)},_updateHash:function(t,e,i){if(i){var n=t.href.replace(/(javascript:|#).*$/,"");t.replace(n+"#"+e)}else{t.hash="#"+e}}});e.history=new B;var D=function(t,e){var n=this;var r;if(t&&i.has(t,"constructor")){r=t.constructor}else{r=function(){return n.apply(this,arguments)}}i.extend(r,n,e);r.prototype=i.create(n.prototype,t);r.prototype.constructor=r;r.__super__=n.prototype;return r};m.extend=_.extend=O.extend=T.extend=B.extend=D;var V=function(){throw new Error('A "url" property or function must be specified')};var G=function(t,e){var i=e.error;e.error=function(n){if(i)i.call(e.context,t,n,e);t.trigger("error",t,n,e)}};return e}); //# sourceMappingURL=backbone-min.map ================================================ FILE: backbone/libs/underscore-min.js ================================================ !function(n,r){var t,e;"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define("underscore",r):(t=n._,e=r(),(n._=e).noConflict=function(){return n._=t,e})}(this,function(){ // Underscore.js 1.10.2 // https://underscorejs.org // (c) 2009-2020 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors // Underscore may be freely distributed under the MIT license. var n="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||Function("return this")()||{},e=Array.prototype,i=Object.prototype,p="undefined"!=typeof Symbol?Symbol.prototype:null,u=e.push,f=e.slice,s=i.toString,o=i.hasOwnProperty,r=Array.isArray,a=Object.keys,t=Object.create,c=n.isNaN,l=n.isFinite,v=function(){};function h(n){return n instanceof h?n:this instanceof h?void(this._wrapped=n):new h(n)}var g=h.VERSION="1.10.2";function y(u,o,n){if(void 0===o)return u;switch(null==n?3:n){case 1:return function(n){return u.call(o,n)};case 3:return function(n,r,t){return u.call(o,n,r,t)};case 4:return function(n,r,t,e){return u.call(o,n,r,t,e)}}return function(){return u.apply(o,arguments)}}function d(n,r,t){return null==n?ur:Cn(n)?y(n,r,t):Ln(n)&&!Kn(n)?ir(n):or(n)}function m(n,r){return d(n,r,1/0)}function b(n,r,t){return h.iteratee!==m?h.iteratee(n,r):d(n,r,t)}function j(u,o){return o=null==o?u.length-1:+o,function(){for(var n=Math.max(arguments.length-o,0),r=Array(n),t=0;t":">",'"':""","'":"'","`":"`"},lr=Mn(cr);function pr(r){var t=function(n){return r[n]},n="(?:"+Sn(r).join("|")+")",e=RegExp(n),u=RegExp(n,"g");return function(n){return n=null==n?"":""+n,e.test(n)?n.replace(u,t):n}}var sr=pr(cr),vr=pr(lr);var hr=0;var gr=h.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},yr=/(.)^/,dr={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},mr=/\\|'|\r|\n|\u2028|\u2029/g,br=function(n){return"\\"+dr[n]};function jr(n,r){return n._chain?h(r).chain():r}function _r(t){return E(En(t),function(n){var r=h[n]=t[n];h.prototype[n]=function(){var n=[this._wrapped];return u.apply(n,arguments),jr(this,r.apply(h,n))}}),h}E(["pop","push","reverse","shift","sort","splice","unshift"],function(r){var t=e[r];h.prototype[r]=function(){var n=this._wrapped;return t.apply(n,arguments),"shift"!==r&&"splice"!==r||0!==n.length||delete n[0],jr(this,n)}}),E(["concat","join","slice"],function(n){var r=e[n];h.prototype[n]=function(){return jr(this,r.apply(this._wrapped,arguments))}}),h.prototype.valueOf=h.prototype.toJSON=h.prototype.value=function(){return this._wrapped},h.prototype.toString=function(){return String(this._wrapped)};var wr=_r({default:h,VERSION:g,iteratee:m,restArguments:j,each:E,forEach:E,map:N,collect:N,reduce:I,foldl:I,inject:I,reduceRight:T,foldr:T,find:B,detect:B,filter:R,select:R,reject:function(n,r,t){return R(n,mn(b(r)),t)},every:F,all:F,some:q,any:q,contains:D,includes:D,include:D,invoke:W,pluck:z,where:function(n,r){return R(n,ir(r))},findWhere:function(n,r){return B(n,ir(r))},max:P,min:function(n,e,r){var t,u,o=1/0,i=1/0;if(null==e||"number"==typeof e&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=M(n)?n:On(n)).length;aHello World! ================================================ FILE: blazor/HelloWorld.csproj ================================================ netstandard2.1 3.0 ================================================ FILE: blazor/Program.cs ================================================ using System.Threading.Tasks; using Microsoft.AspNetCore.Components.WebAssembly.Hosting; namespace HelloWorld { public class Program { public static async Task Main(string[] args) { var builder = WebAssemblyHostBuilder.CreateDefault(args); builder.RootComponents.Add("app"); await builder.Build().RunAsync(); } } } ================================================ FILE: blazor/Properties/launchSettings.json ================================================ { "profiles": { "Web": { "commandName": "Project", "launchBrowser": true, "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "applicationUrl": "http://localhost:5001" } } } ================================================ FILE: blazor/README.md ================================================ # A Blazor Web Assembly Hello World project ## Getting Started You need to have the .NET SDK installed on your computer in order to build and run this project. Follow the steps: - [.NET SDK installation](https://dotnet.microsoft.com/download?WT.mc_id=helloworlds-github-shboyer). - For Deployment and other docs on Blazor - [Client Apps in C#](https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor?WT.mc_id=helloworld-github-shboyer) - [Official Docs on Blazor](https://docs.microsoft.com/aspnet/core/blazor/?view=aspnetcore-3.1&WT.mc_id=helloworld-github-shboyer) ```bash dotnet restore dotnet run ``` View your web app using the URL configured in Properties/launchSettings.json. For this example, http://localhost:5001. ```javascript { "profiles": { "Web": { ... "applicationUrl": "http://localhost:5001" } } } ``` ================================================ FILE: blazor/wwwroot/index.html ================================================ Hello World Blazor Loading... ================================================ FILE: eleventy/.gitignore ================================================ # /.gitignore _site node_modules ================================================ FILE: eleventy/index.md ================================================ # Hello world! ================================================ FILE: eleventy/package.json ================================================ { "name": "hello-eleventy", "private": true, "description": "Eleventy hello world", "version": "1.0.0", "license": "MIT", "scripts": { "watch": "eleventy --watch", "serve": "eleventy --serve", "build": "eleventy" }, "devDependencies": { "@11ty/eleventy": "^0.11.0" } } ================================================ FILE: elm/.gitignore ================================================ elm-stuff public/elm.js ================================================ FILE: elm/README.md ================================================ # Intro Bare minimum hello world in Elm in a [sandboxed](https://package.elm-lang.org/packages/elm/browser/latest/Browser#sandbox) program ## Build Run `npm install` to install the Elm compiler Run `npm run build` It should deploy an elm.js file to the public folder ## Run Run `npm run start` It should build and start `http-server` pointing to the public folder. ================================================ FILE: elm/elm.json ================================================ { "type": "application", "source-directories": [ "src" ], "elm-version": "0.19.1", "dependencies": { "direct": { "elm/browser": "1.0.2", "elm/core": "1.0.5", "elm/html": "1.0.0" }, "indirect": { "elm/json": "1.1.3", "elm/time": "1.0.0", "elm/url": "1.0.0", "elm/virtual-dom": "1.0.2" } }, "test-dependencies": { "direct": {}, "indirect": {} } } ================================================ FILE: elm/package.json ================================================ { "name": "elm-helloworld", "version": "1.0.0", "description": "Hello World in Elm", "main": "index.html", "scripts": { "build": "elm make src/Main.elm --optimize --output public/elm.js && npm run uglify", "uglify": "uglifyjs public/elm.js --compress \"pure_funcs=[F2,F3,F4,F5,F6,F7,F8,F9,A2,A3,A4,A5,A6,A7,A8,A9],pure_getters,keep_fargs=false,unsafe_comps,unsafe\" | uglifyjs --mangle -o public/elm.min.js", "start": "npm run build && npx http-server -c-1 -o /" }, "keywords": [ "hello-world", "elm" ], "author": "Abderraouf El Gasser", "license": "MIT", "devDependencies": { "elm": "^0.19.1-3", "elm-format": "^0.8.3", "uglify-js": "3.10.0" } } ================================================ FILE: elm/public/index.html ================================================ Hello World From Elm
================================================ FILE: elm/src/Main.elm ================================================ module Main exposing (..) import Browser import Html exposing (Html, div, text) import Platform.Cmd exposing (none) -- MAIN main = Browser.sandbox { init = init, update = update, view = view } -- MODEL type alias Model = Int init : Model init = 0 -- UPDATE type Msg = NoOp update : Msg -> Model -> Model update msg model = case msg of NoOp -> model -- VIEW view : Model -> Html Msg view model = div [] [ text "Hello World" ] ================================================ FILE: ember/.editorconfig ================================================ # EditorConfig helps developers define and maintain consistent # coding styles between different editors and IDEs # editorconfig.org root = true [*] end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true indent_style = space indent_size = 2 [*.hbs] insert_final_newline = false [*.{diff,md}] trim_trailing_whitespace = false ================================================ FILE: ember/.ember-cli ================================================ { /** Ember CLI sends analytics information by default. The data is completely anonymous, but there are times when you might want to disable this behavior. Setting `disableAnalytics` to true will prevent any data from being sent. */ "disableAnalytics": false } ================================================ FILE: ember/.eslintignore ================================================ # unconventional js /blueprints/*/files/ /vendor/ # compiled output /dist/ /tmp/ # dependencies /bower_components/ /node_modules/ # misc /coverage/ !.* # ember-try /.node_modules.ember-try/ /bower.json.ember-try /package.json.ember-try ================================================ FILE: ember/.eslintrc.js ================================================ 'use strict'; module.exports = { root: true, parser: 'babel-eslint', parserOptions: { ecmaVersion: 2018, sourceType: 'module', ecmaFeatures: { legacyDecorators: true } }, plugins: [ 'ember' ], extends: [ 'eslint:recommended', 'plugin:ember/recommended' ], env: { browser: true }, rules: { 'ember/no-jquery': 'error' }, overrides: [ // node files { files: [ '.eslintrc.js', '.template-lintrc.js', 'ember-cli-build.js', 'testem.js', 'blueprints/*/index.js', 'config/**/*.js', 'lib/*/index.js', 'server/**/*.js' ], parserOptions: { sourceType: 'script' }, env: { browser: false, node: true }, plugins: ['node'], rules: Object.assign({}, require('eslint-plugin-node').configs.recommended.rules, { // add your custom rules and overrides for node files here // this can be removed once the following is fixed // https://github.com/mysticatea/eslint-plugin-node/issues/77 'node/no-unpublished-require': 'off' }) } ] }; ================================================ FILE: ember/.gitignore ================================================ # See https://help.github.com/ignore-files/ for more about ignoring files. # compiled output /dist/ /tmp/ # dependencies /bower_components/ /node_modules/ # misc /.env* /.pnp* /.sass-cache /connect.lock /coverage/ /libpeerconnection.log /npm-debug.log* /testem.log /yarn-error.log # ember-try /.node_modules.ember-try/ /bower.json.ember-try /package.json.ember-try ================================================ FILE: ember/.template-lintrc.js ================================================ 'use strict'; module.exports = { extends: 'octane' }; ================================================ FILE: ember/.watchmanconfig ================================================ { "ignore_dirs": ["tmp", "dist"] } ================================================ FILE: ember/README.md ================================================ # hello-ember A minimal hello world example in Ember. ## Prerequisites You will need the following things properly installed on your computer. * [Git](https://git-scm.com/) * [Node.js](https://nodejs.org/) (with npm) * [Ember CLI](https://ember-cli.com/) * [Google Chrome](https://google.com/chrome/) ## Installation * `git clone https://github.com/johnpapa/hello-worlds` this repository * `cd hello-worlds/ember` * `npm install` ## Running / Development * `ember serve` or `npm run start` * Visit your app at [http://localhost:4200](http://localhost:4200). ### Code Generators Make use of the many generators for code, try `ember help generate` for more details ### Linting * `npm run lint:hbs` * `npm run lint:js` * `npm run lint:js -- --fix` ### Building * `ember build` (development) * `ember build --environment production` (production) or `npm run build` ## Further Reading / Useful Links * [ember.js](https://emberjs.com/) * [ember-cli](https://ember-cli.com/) * Development Browser Extensions * [ember inspector for chrome](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi) * [ember inspector for firefox](https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/) ================================================ FILE: ember/app/app.js ================================================ import Application from '@ember/application'; import Resolver from 'ember-resolver'; import loadInitializers from 'ember-load-initializers'; import config from './config/environment'; export default class App extends Application { modulePrefix = config.modulePrefix; podModulePrefix = config.podModulePrefix; Resolver = Resolver; } loadInitializers(App, config.modulePrefix); ================================================ FILE: ember/app/index.html ================================================ HelloEmber {{content-for "head"}} {{content-for "head-footer"}} {{content-for "body"}} {{content-for "body-footer"}} ================================================ FILE: ember/app/styles/app.css ================================================ ================================================ FILE: ember/app/templates/application.hbs ================================================ Hello world! ================================================ FILE: ember/config/environment.js ================================================ 'use strict'; module.exports = function(environment) { let ENV = { modulePrefix: 'hello-ember', environment, rootURL: '/', locationType: 'none', EmberENV: { FEATURES: { // Here you can enable experimental features on an ember canary build // e.g. EMBER_NATIVE_DECORATOR_SUPPORT: true }, EXTEND_PROTOTYPES: { // Prevent Ember Data from overriding Date.parse. Date: false } }, APP: { // Here you can pass flags/options to your application instance // when it is created } }; return ENV; }; ================================================ FILE: ember/config/optional-features.json ================================================ { "application-template-wrapper": false, "default-async-observers": true, "jquery-integration": false, "template-only-glimmer-components": true } ================================================ FILE: ember/config/targets.js ================================================ 'use strict'; const browsers = [ 'last 1 Chrome versions', 'last 1 Firefox versions', 'last 1 Safari versions' ]; const isCI = !!process.env.CI; const isProduction = process.env.EMBER_ENV === 'production'; if (isCI || isProduction) { browsers.push('ie 11'); } module.exports = { browsers }; ================================================ FILE: ember/ember-cli-build.js ================================================ 'use strict'; const EmberApp = require('ember-cli/lib/broccoli/ember-app'); module.exports = function(defaults) { let app = new EmberApp(defaults, { // Add options here }); // Use `app.import` to add additional libraries to the generated // output files. // // If you need to use different assets in different // environments, specify an object as the first parameter. That // object's keys should be the environment name and the values // should be the asset to use in that environment. // // If the library that you are including contains AMD or ES6 // modules that you would like to import into your application // please specify an object with the list of modules as keys // along with the exports of each module as its value. return app.toTree(); }; ================================================ FILE: ember/package.json ================================================ { "name": "hello-ember", "version": "0.0.0", "private": true, "description": "A minimal hello world example in Ember", "license": "MIT", "scripts": { "build": "ember build --environment=production", "lint": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*", "lint:hbs": "ember-template-lint .", "lint:js": "eslint .", "start": "ember serve" }, "devDependencies": { "@ember/optional-features": "^1.3.0", "@glimmer/component": "^1.0.0", "@glimmer/tracking": "^1.0.0", "babel-eslint": "^10.1.0", "broccoli-asset-rev": "^3.0.0", "ember-auto-import": "^1.5.3", "ember-cli": "~3.18.0", "ember-cli-app-version": "^3.2.0", "ember-cli-babel": "^7.19.0", "ember-cli-dependency-checker": "^3.2.0", "ember-cli-htmlbars": "^4.3.1", "ember-cli-inject-live-reload": "^2.0.2", "ember-cli-sri": "^2.1.1", "ember-cli-uglify": "^3.0.0", "ember-export-application-global": "^2.0.1", "ember-fetch": "^8.0.1", "ember-load-initializers": "^2.1.1", "ember-maybe-import-regenerator": "^0.1.6", "ember-resolver": "^8.0.0", "ember-source": "~3.18.0", "ember-template-lint": "^2.6.0", "eslint": "^6.8.0", "eslint-plugin-ember": "^8.4.0", "eslint-plugin-node": "^11.1.0", "loader.js": "^4.7.0", "npm-run-all": "^4.1.5" }, "engines": { "node": "10.* || >= 12" }, "ember": { "edition": "octane" } } ================================================ FILE: ember/public/robots.txt ================================================ # http://www.robotstxt.org User-agent: * Disallow: ================================================ FILE: flutter/.gitignore ================================================ # Miscellaneous *.class *.log *.pyc *.swp .DS_Store .atom/ .buildlog/ .history .svn/ # IntelliJ related *.iml *.ipr *.iws .idea/ # The .vscode folder contains launch configuration and tasks you configure in # VS Code which you may wish to be included in version control, so this line # is commented out by default. #.vscode/ # Flutter/Dart/Pub related **/doc/api/ **/ios/Flutter/.last_build_id .dart_tool/ .flutter-plugins .flutter-plugins-dependencies .packages .pub-cache/ .pub/ /build/ # Web related lib/generated_plugin_registrant.dart # Symbolication related app.*.symbols # Obfuscation related app.*.map.json # Exceptions to above rules. !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages ================================================ FILE: flutter/.metadata ================================================ # This file tracks properties of this Flutter project. # Used by Flutter tool to assess capabilities and perform upgrades etc. # # This file should be version controlled and should not be manually edited. version: revision: 2738a1148ba6c9a6114df62358109407c3ef2553 channel: beta project_type: app ================================================ FILE: flutter/README.md ================================================ # A Hello World Flutter project ## Getting Started You need to have Flutter SDK installed on your computer in order to build and run this project. Follow the steps: - [Flutter SDK installation](https://flutter.dev/docs/get-started/install). There is no need to install Android Studio if you only plan to build a web app. Then, to enable [Flutter for web](https://flutter.dev/docs/get-started/web) run: ``` flutter channel beta flutter upgrade flutter config --enable-web ``` Run your web app ``` flutter run -d chrome ``` Build your wed app to build/web folder: ``` flutter build web ``` To deploy Flutter Web app to [Azure Static Web Apps](https://docs.microsoft.com/learn/modules/publish-app-service-static-web-app-api) service use this [GitHub Action](https://github.com/webmaxru/hello-flutter/blob/master/.github/workflows/azure-static-web-apps-gentle-sky-0b647711e.yml) ================================================ FILE: flutter/android/.gitignore ================================================ gradle-wrapper.jar /.gradle /captures/ /gradlew /gradlew.bat /local.properties GeneratedPluginRegistrant.java ================================================ FILE: flutter/android/app/build.gradle ================================================ def localProperties = new Properties() def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { localPropertiesFile.withReader('UTF-8') { reader -> localProperties.load(reader) } } def flutterRoot = localProperties.getProperty('flutter.sdk') if (flutterRoot == null) { throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") } def flutterVersionCode = localProperties.getProperty('flutter.versionCode') if (flutterVersionCode == null) { flutterVersionCode = '1' } def flutterVersionName = localProperties.getProperty('flutter.versionName') if (flutterVersionName == null) { flutterVersionName = '1.0' } apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { compileSdkVersion 28 sourceSets { main.java.srcDirs += 'src/main/kotlin' } lintOptions { disable 'InvalidPackage' } defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.example.hello_flutter" minSdkVersion 16 targetSdkVersion 28 versionCode flutterVersionCode.toInteger() versionName flutterVersionName } buildTypes { release { // TODO: Add your own signing config for the release build. // Signing with the debug keys for now, so `flutter run --release` works. signingConfig signingConfigs.debug } } } flutter { source '../..' } dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" } ================================================ FILE: flutter/android/app/src/debug/AndroidManifest.xml ================================================ ================================================ FILE: flutter/android/app/src/main/AndroidManifest.xml ================================================ ================================================ FILE: flutter/android/app/src/main/kotlin/com/example/hello_flutter/MainActivity.kt ================================================ package com.example.hello_flutter import io.flutter.embedding.android.FlutterActivity class MainActivity: FlutterActivity() { } ================================================ FILE: flutter/android/app/src/main/res/drawable/launch_background.xml ================================================ ================================================ FILE: flutter/android/app/src/main/res/values/styles.xml ================================================ ================================================ FILE: flutter/android/app/src/profile/AndroidManifest.xml ================================================ ================================================ FILE: flutter/android/build.gradle ================================================ buildscript { ext.kotlin_version = '1.3.50' repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.5.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } allprojects { repositories { google() jcenter() } } rootProject.buildDir = '../build' subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" } subprojects { project.evaluationDependsOn(':app') } task clean(type: Delete) { delete rootProject.buildDir } ================================================ FILE: flutter/android/gradle/wrapper/gradle-wrapper.properties ================================================ #Fri Jun 23 08:50:38 CEST 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip ================================================ FILE: flutter/android/gradle.properties ================================================ org.gradle.jvmargs=-Xmx1536M android.enableR8=true android.useAndroidX=true android.enableJetifier=true ================================================ FILE: flutter/android/settings.gradle ================================================ // Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. include ':app' def localPropertiesFile = new File(rootProject.projectDir, "local.properties") def properties = new Properties() assert localPropertiesFile.exists() localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } def flutterSdkPath = properties.getProperty("flutter.sdk") assert flutterSdkPath != null, "flutter.sdk not set in local.properties" apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" ================================================ FILE: flutter/ios/.gitignore ================================================ *.mode1v3 *.mode2v3 *.moved-aside *.pbxuser *.perspectivev3 **/*sync/ .sconsign.dblite .tags* **/.vagrant/ **/DerivedData/ Icon? **/Pods/ **/.symlinks/ profile xcuserdata **/.generated/ Flutter/App.framework Flutter/Flutter.framework Flutter/Flutter.podspec Flutter/Generated.xcconfig Flutter/app.flx Flutter/app.zip Flutter/flutter_assets/ Flutter/flutter_export_environment.sh ServiceDefinitions.json Runner/GeneratedPluginRegistrant.* # Exceptions to above rules. !default.mode1v3 !default.mode2v3 !default.pbxuser !default.perspectivev3 ================================================ FILE: flutter/ios/Flutter/AppFrameworkInfo.plist ================================================ CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleExecutable App CFBundleIdentifier io.flutter.flutter.app CFBundleInfoDictionaryVersion 6.0 CFBundleName App CFBundlePackageType FMWK CFBundleShortVersionString 1.0 CFBundleSignature ???? CFBundleVersion 1.0 MinimumOSVersion 8.0 ================================================ FILE: flutter/ios/Flutter/Debug.xcconfig ================================================ #include "Generated.xcconfig" ================================================ FILE: flutter/ios/Flutter/Release.xcconfig ================================================ #include "Generated.xcconfig" ================================================ FILE: flutter/ios/Runner/AppDelegate.swift ================================================ import UIKit import Flutter @UIApplicationMain @objc class AppDelegate: FlutterAppDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } } ================================================ FILE: flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json ================================================ { "images" : [ { "size" : "20x20", "idiom" : "iphone", "filename" : "Icon-App-20x20@2x.png", "scale" : "2x" }, { "size" : "20x20", "idiom" : "iphone", "filename" : "Icon-App-20x20@3x.png", "scale" : "3x" }, { "size" : "29x29", "idiom" : "iphone", "filename" : "Icon-App-29x29@1x.png", "scale" : "1x" }, { "size" : "29x29", "idiom" : "iphone", "filename" : "Icon-App-29x29@2x.png", "scale" : "2x" }, { "size" : "29x29", "idiom" : "iphone", "filename" : "Icon-App-29x29@3x.png", "scale" : "3x" }, { "size" : "40x40", "idiom" : "iphone", "filename" : "Icon-App-40x40@2x.png", "scale" : "2x" }, { "size" : "40x40", "idiom" : "iphone", "filename" : "Icon-App-40x40@3x.png", "scale" : "3x" }, { "size" : "60x60", "idiom" : "iphone", "filename" : "Icon-App-60x60@2x.png", "scale" : "2x" }, { "size" : "60x60", "idiom" : "iphone", "filename" : "Icon-App-60x60@3x.png", "scale" : "3x" }, { "size" : "20x20", "idiom" : "ipad", "filename" : "Icon-App-20x20@1x.png", "scale" : "1x" }, { "size" : "20x20", "idiom" : "ipad", "filename" : "Icon-App-20x20@2x.png", "scale" : "2x" }, { "size" : "29x29", "idiom" : "ipad", "filename" : "Icon-App-29x29@1x.png", "scale" : "1x" }, { "size" : "29x29", "idiom" : "ipad", "filename" : "Icon-App-29x29@2x.png", "scale" : "2x" }, { "size" : "40x40", "idiom" : "ipad", "filename" : "Icon-App-40x40@1x.png", "scale" : "1x" }, { "size" : "40x40", "idiom" : "ipad", "filename" : "Icon-App-40x40@2x.png", "scale" : "2x" }, { "size" : "76x76", "idiom" : "ipad", "filename" : "Icon-App-76x76@1x.png", "scale" : "1x" }, { "size" : "76x76", "idiom" : "ipad", "filename" : "Icon-App-76x76@2x.png", "scale" : "2x" }, { "size" : "83.5x83.5", "idiom" : "ipad", "filename" : "Icon-App-83.5x83.5@2x.png", "scale" : "2x" }, { "size" : "1024x1024", "idiom" : "ios-marketing", "filename" : "Icon-App-1024x1024@1x.png", "scale" : "1x" } ], "info" : { "version" : 1, "author" : "xcode" } } ================================================ FILE: flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json ================================================ { "images" : [ { "idiom" : "universal", "filename" : "LaunchImage.png", "scale" : "1x" }, { "idiom" : "universal", "filename" : "LaunchImage@2x.png", "scale" : "2x" }, { "idiom" : "universal", "filename" : "LaunchImage@3x.png", "scale" : "3x" } ], "info" : { "version" : 1, "author" : "xcode" } } ================================================ FILE: flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md ================================================ # Launch Screen Assets You can customize the launch screen with your own desired assets by replacing the image files in this directory. You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. ================================================ FILE: flutter/ios/Runner/Base.lproj/LaunchScreen.storyboard ================================================ ================================================ FILE: flutter/ios/Runner/Base.lproj/Main.storyboard ================================================ ================================================ FILE: flutter/ios/Runner/Info.plist ================================================ CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName hello_flutter CFBundlePackageType APPL CFBundleShortVersionString $(FLUTTER_BUILD_NAME) CFBundleSignature ???? CFBundleVersion $(FLUTTER_BUILD_NUMBER) LSRequiresIPhoneOS UILaunchStoryboardName LaunchScreen UIMainStoryboardFile Main UISupportedInterfaceOrientations UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UISupportedInterfaceOrientations~ipad UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIViewControllerBasedStatusBarAppearance ================================================ FILE: flutter/ios/Runner/Runner-Bridging-Header.h ================================================ #import "GeneratedPluginRegistrant.h" ================================================ FILE: flutter/ios/Runner.xcodeproj/project.pbxproj ================================================ // !$*UTF8*$! { archiveVersion = 1; classes = { }; objectVersion = 46; objects = { /* Begin PBXBuildFile section */ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ 9705A1C41CF9048500538489 /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = ""; dstSubfolderSpec = 10; files = ( ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ 97C146EB1CF9000F007C117D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, 9740EEB31CF90195004384FC /* Generated.xcconfig */, ); name = Flutter; sourceTree = ""; }; 97C146E51CF9000F007C117D = { isa = PBXGroup; children = ( 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, ); sourceTree = ""; }; 97C146EF1CF9000F007C117D /* Products */ = { isa = PBXGroup; children = ( 97C146EE1CF9000F007C117D /* Runner.app */, ); name = Products; sourceTree = ""; }; 97C146F01CF9000F007C117D /* Runner */ = { isa = PBXGroup; children = ( 97C146FA1CF9000F007C117D /* Main.storyboard */, 97C146FD1CF9000F007C117D /* Assets.xcassets */, 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, 97C147021CF9000F007C117D /* Info.plist */, 97C146F11CF9000F007C117D /* Supporting Files */, 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, ); path = Runner; sourceTree = ""; }; 97C146F11CF9000F007C117D /* Supporting Files */ = { isa = PBXGroup; children = ( ); name = "Supporting Files"; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ 97C146ED1CF9000F007C117D /* Runner */ = { isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, ); buildRules = ( ); dependencies = ( ); name = Runner; productName = Runner; productReference = 97C146EE1CF9000F007C117D /* Runner.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { LastUpgradeCheck = 1020; ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { CreatedOnToolsVersion = 7.3.1; LastSwiftMigration = 1100; }; }; }; buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; compatibilityVersion = "Xcode 9.3"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, Base, ); mainGroup = 97C146E51CF9000F007C117D; productRefGroup = 97C146EF1CF9000F007C117D /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( 97C146ED1CF9000F007C117D /* Runner */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ 97C146EC1CF9000F007C117D /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); name = "Thin Binary"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); name = "Run Script"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ 97C146EA1CF9000F007C117D /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXVariantGroup section */ 97C146FA1CF9000F007C117D /* Main.storyboard */ = { isa = PBXVariantGroup; children = ( 97C146FB1CF9000F007C117D /* Base */, ); name = Main.storyboard; sourceTree = ""; }; 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { isa = PBXVariantGroup; children = ( 97C147001CF9000F007C117D /* Base */, ); name = LaunchScreen.storyboard; sourceTree = ""; }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ 249021D3217E4FDB00AE95B9 /* Profile */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; name = Profile; }; 249021D4217E4FDB00AE95B9 /* Profile */ = { isa = XCBuildConfiguration; baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", ); PRODUCT_BUNDLE_IDENTIFIER = com.example.helloFlutter; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; }; name = Profile; }; 97C147031CF9000F007C117D /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; 97C147041CF9000F007C117D /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; name = Release; }; 97C147061CF9000F007C117D /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", ); PRODUCT_BUNDLE_IDENTIFIER = com.example.helloFlutter; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; }; name = Debug; }; 97C147071CF9000F007C117D /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", ); PRODUCT_BUNDLE_IDENTIFIER = com.example.helloFlutter; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { isa = XCConfigurationList; buildConfigurations = ( 97C147031CF9000F007C117D /* Debug */, 97C147041CF9000F007C117D /* Release */, 249021D3217E4FDB00AE95B9 /* Profile */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { isa = XCConfigurationList; buildConfigurations = ( 97C147061CF9000F007C117D /* Debug */, 97C147071CF9000F007C117D /* Release */, 249021D4217E4FDB00AE95B9 /* Profile */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; rootObject = 97C146E61CF9000F007C117D /* Project object */; } ================================================ FILE: flutter/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata ================================================ ================================================ FILE: flutter/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist ================================================ IDEDidComputeMac32BitWarning ================================================ FILE: flutter/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings ================================================ PreviewsEnabled ================================================ FILE: flutter/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme ================================================ ================================================ FILE: flutter/ios/Runner.xcworkspace/contents.xcworkspacedata ================================================ ================================================ FILE: flutter/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist ================================================ IDEDidComputeMac32BitWarning ================================================ FILE: flutter/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings ================================================ PreviewsEnabled ================================================ FILE: flutter/lib/main.dart ================================================ import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Hello World', home: Scaffold( appBar: AppBar( title: Text('Hello World'), ), body: Center( child: Text('Hello World'), ), ), ); } } ================================================ FILE: flutter/pubspec.yaml ================================================ name: hello_flutter description: A new Flutter project. # The following line prevents the package from being accidentally published to # pub.dev using `pub publish`. This is preferred for private packages. publish_to: 'none' # Remove this line if you wish to publish to pub.dev # The following defines the version and build number for your application. # A version number is three numbers separated by dots, like 1.2.43 # followed by an optional build number separated by a +. # Both the version and the builder number may be overridden in flutter # build by specifying --build-name and --build-number, respectively. # In Android, build-name is used as versionName while build-number used as versionCode. # Read more about Android versioning at https://developer.android.com/studio/publish/versioning # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html version: 1.0.0+1 environment: sdk: ">=2.7.0 <3.0.0" dependencies: flutter: sdk: flutter # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^0.1.3 dev_dependencies: flutter_test: sdk: flutter # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec # The following section is specific to Flutter. flutter: # The following line ensures that the Material Icons font is # included with your application, so that you can use the icons in # the material Icons class. uses-material-design: true # To add assets to your application, add an assets section, like this: # assets: # - images/a_dot_burr.jpeg # - images/a_dot_ham.jpeg # An image asset can refer to one or more resolution-specific "variants", see # https://flutter.dev/assets-and-images/#resolution-aware. # For details regarding adding assets from package dependencies, see # https://flutter.dev/assets-and-images/#from-packages # To add custom fonts to your application, add a fonts section here, # in this "flutter" section. Each entry in this list should have a # "family" key with the font family name, and a "fonts" key with a # list giving the asset and other descriptors for the font. For # example: # fonts: # - family: Schyler # fonts: # - asset: fonts/Schyler-Regular.ttf # - asset: fonts/Schyler-Italic.ttf # style: italic # - family: Trajan Pro # fonts: # - asset: fonts/TrajanPro.ttf # - asset: fonts/TrajanPro_Bold.ttf # weight: 700 # # For details regarding fonts from package dependencies, # see https://flutter.dev/custom-fonts/#from-packages ================================================ FILE: flutter/test/widget_test.dart ================================================ // This is a basic Flutter widget test. // // To perform an interaction with a widget in your test, use the WidgetTester // utility that Flutter provides. For example, you can send tap and scroll // gestures. You can also use WidgetTester to find child widgets in the widget // tree, read text, and verify that the values of widget properties are correct. import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:hello_flutter/main.dart'; void main() { testWidgets('Counter increments smoke test', (WidgetTester tester) async { // Build our app and trigger a frame. await tester.pumpWidget(MyApp()); // Verify that our counter starts at 0. expect(find.text('0'), findsOneWidget); expect(find.text('1'), findsNothing); // Tap the '+' icon and trigger a frame. await tester.tap(find.byIcon(Icons.add)); await tester.pump(); // Verify that our counter has incremented. expect(find.text('0'), findsNothing); expect(find.text('1'), findsOneWidget); }); } ================================================ FILE: flutter/web/index.html ================================================ hello_flutter ================================================ FILE: flutter/web/manifest.json ================================================ { "name": "hello_flutter", "short_name": "hello_flutter", "start_url": ".", "display": "standalone", "background_color": "#0175C2", "theme_color": "#0175C2", "description": "A new Flutter project.", "orientation": "portrait-primary", "prefer_related_applications": false, "icons": [ { "src": "icons/Icon-192.png", "sizes": "192x192", "type": "image/png" }, { "src": "icons/Icon-512.png", "sizes": "512x512", "type": "image/png" } ] } ================================================ FILE: gatsby/.gitignore ================================================ # Logs logs *.log npm-debug.log* yarn-debug.log* yarn-error.log* # Runtime data pids *.pid *.seed *.pid.lock # Directory for instrumented libs generated by jscoverage/JSCover lib-cov # Coverage directory used by tools like istanbul coverage # nyc test coverage .nyc_output # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) .grunt # Bower dependency directory (https://bower.io/) bower_components # node-waf configuration .lock-wscript # Compiled binary addons (http://nodejs.org/api/addons.html) build/Release # Dependency directories node_modules/ jspm_packages/ # Typescript v1 declaration files typings/ # Optional npm cache directory .npm # Optional eslint cache .eslintcache # Optional REPL history .node_repl_history # Output of 'npm pack' *.tgz # dotenv environment variable files .env* # gatsby files .cache/ public # Mac files .DS_Store # Yarn yarn-error.log .pnp/ .pnp.js # Yarn Integrity file .yarn-integrity ================================================ FILE: gatsby/LICENSE ================================================ MIT License Copyright (c) 2018 gatsbyjs Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: gatsby/README.md ================================================

Gatsby

Gatsby's hello-world starter

Kick off your project with this hello-world boilerplate. This starter ships with the main Gatsby configuration files you might need to get up and running blazing fast with the blazing fast app generator for React. _Have another more specific idea? You may want to check out our vibrant collection of [official and community-created starters](https://www.gatsbyjs.org/docs/gatsby-starters/)._ ## 🚀 Quick start 1. **Create a Gatsby site.** Use the Gatsby CLI to create a new site, specifying the hello-world starter. ```shell # create a new Gatsby site using the hello-world starter gatsby new my-hello-world-starter https://github.com/gatsbyjs/gatsby-starter-hello-world ``` 1. **Start developing.** Navigate into your new site’s directory and start it up. ```shell cd my-hello-world-starter/ gatsby develop ``` 1. **Open the source code and start editing!** Your site is now running at `http://localhost:8000`! _Note: You'll also see a second link: _`http://localhost:8000/___graphql`_. This is a tool you can use to experiment with querying your data. Learn more about using this tool in the [Gatsby tutorial](https://www.gatsbyjs.org/tutorial/part-five/#introducing-graphiql)._ Open the `my-hello-world-starter` directory in your code editor of choice and edit `src/pages/index.js`. Save your changes and the browser will update in real time! ## 🧐 What's inside? A quick look at the top-level files and directories you'll see in a Gatsby project. . ├── node_modules ├── src ├── .gitignore ├── .prettierrc ├── gatsby-browser.js ├── gatsby-config.js ├── gatsby-node.js ├── gatsby-ssr.js ├── LICENSE ├── package-lock.json ├── package.json └── README.md 1. **`/node_modules`**: This directory contains all of the modules of code that your project depends on (npm packages) are automatically installed. 2. **`/src`**: This directory will contain all of the code related to what you will see on the front-end of your site (what you see in the browser) such as your site header or a page template. `src` is a convention for “source code”. 3. **`.gitignore`**: This file tells git which files it should not track / not maintain a version history for. 4. **`.prettierrc`**: This is a configuration file for [Prettier](https://prettier.io/). Prettier is a tool to help keep the formatting of your code consistent. 5. **`gatsby-browser.js`**: This file is where Gatsby expects to find any usage of the [Gatsby browser APIs](https://www.gatsbyjs.org/docs/browser-apis/) (if any). These allow customization/extension of default Gatsby settings affecting the browser. 6. **`gatsby-config.js`**: This is the main configuration file for a Gatsby site. This is where you can specify information about your site (metadata) like the site title and description, which Gatsby plugins you’d like to include, etc. (Check out the [config docs](https://www.gatsbyjs.org/docs/gatsby-config/) for more detail). 7. **`gatsby-node.js`**: This file is where Gatsby expects to find any usage of the [Gatsby Node APIs](https://www.gatsbyjs.org/docs/node-apis/) (if any). These allow customization/extension of default Gatsby settings affecting pieces of the site build process. 8. **`gatsby-ssr.js`**: This file is where Gatsby expects to find any usage of the [Gatsby server-side rendering APIs](https://www.gatsbyjs.org/docs/ssr-apis/) (if any). These allow customization of default Gatsby settings affecting server-side rendering. 9. **`LICENSE`**: Gatsby is licensed under the MIT license. 10. **`package-lock.json`** (See `package.json` below, first). This is an automatically generated file based on the exact versions of your npm dependencies that were installed for your project. **(You won’t change this file directly).** 11. **`package.json`**: A manifest file for Node.js projects, which includes things like metadata (the project’s name, author, etc). This manifest is how npm knows which packages to install for your project. 12. **`README.md`**: A text file containing useful reference information about your project. ## 🎓 Learning Gatsby Looking for more guidance? Full documentation for Gatsby lives [on the website](https://www.gatsbyjs.org/). Here are some places to start: - **For most developers, we recommend starting with our [in-depth tutorial for creating a site with Gatsby](https://www.gatsbyjs.org/tutorial/).** It starts with zero assumptions about your level of ability and walks through every step of the process. - **To dive straight into code samples, head [to our documentation](https://www.gatsbyjs.org/docs/).** In particular, check out the _Guides_, _API Reference_, and _Advanced Tutorials_ sections in the sidebar. ## 💫 Deploy [![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/gatsbyjs/gatsby-starter-hello-world) [![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/import/project?template=https://github.com/gatsbyjs/gatsby-starter-hello-world) ================================================ FILE: gatsby/gatsby-config.js ================================================ /** * Configure your Gatsby site with this file. * * See: https://www.gatsbyjs.org/docs/gatsby-config/ */ module.exports = { /* Your site config here */ plugins: [], } ================================================ FILE: gatsby/package.json ================================================ { "name": "hello-gatsby", "private": true, "description": "A simplified bare-bones starter for Gatsby", "version": "0.1.0", "license": "MIT", "scripts": { "build": "gatsby build", "develop": "gatsby develop", "format": "prettier --write \"**/*.{js,jsx,json,md}\"", "start": "npm run develop", "serve": "gatsby serve", "clean": "gatsby clean", "test": "echo \"Write tests! -> https://gatsby.dev/unit-testing\" && exit 1" }, "dependencies": { "gatsby": "^2.21.37", "react": "^16.12.0", "react-dom": "^16.12.0" }, "devDependencies": { "prettier": "2.0.5" }, "repository": { "type": "git", "url": "https://github.com/gatsbyjs/gatsby-starter-hello-world" }, "bugs": { "url": "https://github.com/gatsbyjs/gatsby/issues" } } ================================================ FILE: gatsby/src/pages/index.js ================================================ import React from "react" export default () =>
Hello world!
================================================ FILE: glimmer/.babelrc.js ================================================ module.exports = function (api) { return { plugins: [ ['@glimmer/babel-plugin-glimmer-env', { DEBUG: !api.env('production') }], '@glimmer/babel-plugin-strict-template-precompile', ['@babel/plugin-proposal-decorators', { legacy: true }], '@babel/plugin-proposal-class-properties', ], presets: ['@babel/preset-env', '@babel/preset-typescript'], }; }; ================================================ FILE: glimmer/.editorconfig ================================================ # EditorConfig helps developers define and maintain consistent # coding styles between different editors and IDEs # editorconfig.org root = true [*] end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true indent_style = space indent_size = 2 max_line_length = 100 [*.hbs] insert_final_newline = false [*.{diff,md}] trim_trailing_whitespace = false ================================================ FILE: glimmer/.gitignore ================================================ node_modules tmp/* dist yarn-error.log /npm-debug.log* .eslintcache ================================================ FILE: glimmer/README.md ================================================ # hello-glimmer A minimal hello world example in Glimmer. ## Prerequisites You will need the following things properly installed on your computer. * [Git](https://git-scm.com/) * [Node.js](https://nodejs.org/) (with NPM) ## Installation * `git clone https://github.com/johnpapa/hello-worlds.git` this repository * `cd glimmer` * `npm install` ## Running / Development * `npm run start` * Visit your app at [http://localhost:8080](http://localhost:8080). ### Building * `npm run build` ## Further Reading / Useful Links * [glimmerjs](http://github.com/glimmerjs/glimmer.js/) * [webpack](https://webpack.js.org/) * [babel](https://babeljs.io/docs/en/configuration) ================================================ FILE: glimmer/index.html ================================================ hello-glimmer
================================================ FILE: glimmer/package.json ================================================ { "name": "hello-glimmer", "version": "0.0.0", "description": "A minimal hello world example in Glimmer.", "directories": { "doc": "doc" }, "scripts": { "build": "NODE_ENV=production webpack", "lint": "eslint . --ext=js,ts --cache", "start": "webpack-dev-server" }, "devDependencies": { "@babel/core": "^7.9.0", "@babel/plugin-proposal-class-properties": "^7.8.3", "@babel/plugin-proposal-decorators": "^7.8.3", "@babel/preset-env": "^7.9.0", "@babel/preset-typescript": "^7.9.0", "@glimmer/babel-plugin-glimmer-env": "~2.0.0-beta.7", "@glimmer/babel-plugin-strict-template-precompile": "~2.0.0-beta.7", "@glimmer/blueprint": "~2.0.0-beta.7", "@glimmer/component": "~2.0.0-beta.7", "@glimmer/core": "~2.0.0-beta.7", "@glimmer/env": "^0.1.7", "@glimmer/helper": "~2.0.0-beta.7", "@glimmer/modifier": "~2.0.0-beta.7", "@typescript-eslint/eslint-plugin": "^2.26.0", "@typescript-eslint/parser": "^2.26.0", "babel-loader": "^8.1.0", "clean-webpack-plugin": "^3.0.0", "copy-webpack-plugin": "^5.1.1", "css-loader": "^3.4.2", "eslint": "^6.8.0", "eslint-config-prettier": "^6.10.1", "eslint-plugin-prettier": "^3.1.2", "file-loader": "^6.0.0", "html-webpack-plugin": "^4.0.4", "prettier": "^2.0.2", "style-loader": "^1.1.3", "typescript": "~3.8.3", "webpack": "^4.42.1", "webpack-cli": "^3.3.11", "webpack-dev-server": "^3.10.3" }, "eslintConfig": { "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaVersion": 2019, "sourceType": "module" }, "env": { "browser": true }, "plugins": [ "@typescript-eslint", "prettier" ], "extends": [ "eslint:recommended", "plugin:prettier/recommended" ], "ignorePatterns": [ "dist/", "node_modules/", "!.*" ], "overrides": [ { "files": [ "**/*.ts" ], "extends": [ "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended", "prettier/@typescript-eslint" ] }, { "files": [ ".babelrc.js", "testem.js", "webpack.config.js" ], "env": { "node": true } } ] }, "prettier": { "singleQuote": true, "trailingComma": "es5" }, "browserslist": { "production": [ "last 2 Edge versions", "last 2 Chrome versions", "last 2 Firefox versions", "last 2 Safari versions" ], "development": [ "last 1 Chrome version", "last 1 Firefox version", "last 1 Safari version" ] }, "engines": { "node": ">= 12.0" }, "private": true } ================================================ FILE: glimmer/public/manifest.json ================================================ { "short_name": "hello-glimmer", "name": "A minimal hello world example in Glimmer.", "icons": [ { "src": "favicon.png", "sizes": "64x64 32x32 24x24 16x16", "type": "image/x-icon" }, { "src": "logo192.png", "type": "image/png", "sizes": "192x192" }, { "src": "logo512.png", "type": "image/png", "sizes": "512x512" } ], "start_url": ".", "display": "standalone", "theme_color": "#000000", "background_color": "#ffffff" } ================================================ FILE: glimmer/src/App.js ================================================ import Component from '@glimmer/component'; import { setComponentTemplate, createTemplate } from '@glimmer/core'; export default class App extends Component { world = 'World'; } setComponentTemplate( createTemplate(` Hello {{this.world}}! `), App ); ================================================ FILE: glimmer/src/index.js ================================================ import { renderComponent } from '@glimmer/core'; import App from './App'; const containerElement = document.getElementById('app'); renderComponent(App, containerElement); ================================================ FILE: glimmer/tsconfig.json ================================================ { "compilerOptions": { "target": "es6", "module": "es2015", "inlineSourceMap": true, "inlineSources": true, "moduleResolution": "node", "experimentalDecorators": true }, "exclude": [ "node_modules", "tmp", "dist" ] } ================================================ FILE: glimmer/webpack.config.js ================================================ const path = require('path'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const CopyPlugin = require('copy-webpack-plugin'); const { CleanWebpackPlugin } = require('clean-webpack-plugin'); module.exports = () => { const IS_PRODUCTION = process.env.NODE_ENV === 'production'; const entry = { app: './src/index.js', }; const plugins = [ new CleanWebpackPlugin(), new HtmlWebpackPlugin({ template: './index.html' }), new CopyPlugin([{ from: 'public', to: 'public' }]), ]; return { mode: IS_PRODUCTION ? 'production' : 'development', entry, plugins, module: { rules: [ { test: /\.(js|mjs|ts)$/, use: 'babel-loader', }, { test: /\.css$/, use: ['style-loader', 'css-loader'], }, { test: /\.(png|svg|jpg|gif)$/, loader: 'file-loader', options: { outputPath: 'images', }, }, ], }, resolve: { extensions: ['.ts', '.js', '.json'], }, output: { filename: '[name].bundle.js', path: path.resolve(__dirname, 'dist'), publicPath: '/', }, devServer: { contentBase: path.resolve(__dirname, 'dist'), }, }; }; ================================================ FILE: gridsome/.gitignore ================================================ *.log .cache .DS_Store src/.temp node_modules dist .env .env.* ================================================ FILE: gridsome/README.md ================================================ # Default starter for Gridsome This is the project you get when you run `gridsome create new-project`. ### 1. Install Gridsome CLI tool if you don't have `npm install --global @gridsome/cli` ### 2. Create a Gridsome project 1. `gridsome create my-gridsome-site` to install default starter 2. `cd my-gridsome-site` to open the folder 3. `gridsome develop` to start a local dev server at `http://localhost:8080` 4. Happy coding 🎉🙌 ================================================ FILE: gridsome/gridsome.config.js ================================================ // This is where project configuration and plugin options are located. // Learn more: https://gridsome.org/docs/config // Changes here require a server restart. // To restart press CTRL + C in terminal and run `gridsome develop` module.exports = { siteName: 'Gridsome', plugins: [], }; ================================================ FILE: gridsome/package.json ================================================ { "name": "Gridsome", "private": true, "scripts": { "build": "gridsome build", "develop": "gridsome develop", "explore": "gridsome explore" }, "dependencies": { "gridsome": "^0.7.0" } } ================================================ FILE: gridsome/src/layouts/Default.vue ================================================ ================================================ FILE: gridsome/src/main.js ================================================ // This is the main.js file. Import global CSS and scripts here. // The Client API can be used here. Learn more: gridsome.org/docs/client-api import DefaultLayout from '~/layouts/Default.vue'; export default function (Vue, { router, head, isClient }) { // Set default layout as a global component Vue.component('Layout', DefaultLayout); } ================================================ FILE: gridsome/src/pages/Index.vue ================================================ ================================================ FILE: html/index.html ================================================ Hello World

Hello World!

================================================ FILE: hugo/.gitignore ================================================ public/ node_modules/ /resources/ ================================================ FILE: hugo/archetypes/default.md ================================================ --- title: "{{ replace .Name "-" " " | title }}" date: {{ .Date }} draft: true --- ================================================ FILE: hugo/config.toml ================================================ baseURL = "/" languageCode = "en-us" title = "Hello World" theme = "hello-world" ================================================ FILE: hugo/content/_index.md ================================================ Hello World! ================================================ FILE: hugo/package.json ================================================ { "name": "hello-hugo", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "build": "npx hugo-cli", "serve": "npx hugo-cli server" }, "author": "", "license": "ISC", "devDependencies": { "hugo-cli": "^0.11.0" } } ================================================ FILE: hugo/themes/hello-world/LICENSE ================================================ The MIT License (MIT) Copyright (c) 2020 YOUR_NAME_HERE Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: hugo/themes/hello-world/archetypes/default.md ================================================ +++ +++ ================================================ FILE: hugo/themes/hello-world/layouts/404.html ================================================ ================================================ FILE: hugo/themes/hello-world/layouts/_default/baseof.html ================================================ {{- partial "head.html" . -}} {{- partial "header.html" . -}}
{{- block "main" . }}{{- end }}
{{- partial "footer.html" . -}} ================================================ FILE: hugo/themes/hello-world/layouts/_default/list.html ================================================ ================================================ FILE: hugo/themes/hello-world/layouts/_default/single.html ================================================ ================================================ FILE: hugo/themes/hello-world/layouts/index.html ================================================ {{ .Content }} ================================================ FILE: hugo/themes/hello-world/layouts/partials/footer.html ================================================ ================================================ FILE: hugo/themes/hello-world/layouts/partials/head.html ================================================ ================================================ FILE: hugo/themes/hello-world/layouts/partials/header.html ================================================ ================================================ FILE: hugo/themes/hello-world/theme.toml ================================================ # theme.toml template for a Hugo theme # See https://github.com/gohugoio/hugoThemes#themetoml for an example name = "Hello World" license = "MIT" licenselink = "https://github.com/yourname/yourtheme/blob/master/LICENSE" description = "" homepage = "http://example.com/" tags = [] features = [] min_version = "0.41.0" [author] name = "" homepage = "" # If porting an existing theme [original] name = "" homepage = "" repo = "" ================================================ FILE: hyperapp/hello-world.js ================================================ import {app} from 'https://unpkg.com/hyperapp@2.0.4' app({ view: () => 'hello world', node: document.getElementById('app') }) ================================================ FILE: hyperapp/index.html ================================================ Hyperapp – Hello World ================================================ FILE: ionic-angular/.gitignore ================================================ # Specifies intentionally untracked files to ignore when using Git # http://git-scm.com/docs/gitignore *~ *.sw[mnpcod] .tmp *.tmp *.tmp.* *.sublime-project *.sublime-workspace .DS_Store Thumbs.db UserInterfaceState.xcuserstate $RECYCLE.BIN/ *.log log.txt npm-debug.log* /.idea /.ionic /.sass-cache /.sourcemaps /.versions /.vscode /coverage /dist /node_modules /platforms /plugins /www ================================================ FILE: ionic-angular/angular.json ================================================ { "$schema": "./node_modules/@angular/cli/lib/config/schema.json", "version": 1, "defaultProject": "app", "newProjectRoot": "projects", "projects": { "app": { "root": "", "sourceRoot": "src", "projectType": "application", "prefix": "app", "schematics": {}, "architect": { "build": { "builder": "@angular-devkit/build-angular:browser", "options": { "outputPath": "www", "index": "src/index.html", "main": "src/main.ts", "polyfills": "src/polyfills.ts", "tsConfig": "tsconfig.app.json", "assets": [ { "glob": "**/*", "input": "src/assets", "output": "assets" }, { "glob": "**/*.svg", "input": "node_modules/ionicons/dist/ionicons/svg", "output": "./svg" } ], "styles": [ { "input": "src/theme/variables.scss" }, { "input": "src/global.scss" } ], "scripts": [] }, "configurations": { "production": { "fileReplacements": [ { "replace": "src/environments/environment.ts", "with": "src/environments/environment.prod.ts" } ], "optimization": true, "outputHashing": "all", "sourceMap": false, "extractCss": true, "namedChunks": false, "aot": true, "extractLicenses": true, "vendorChunk": false, "buildOptimizer": true, "budgets": [ { "type": "initial", "maximumWarning": "2mb", "maximumError": "5mb" } ] }, "ci": { "progress": false } } }, "serve": { "builder": "@angular-devkit/build-angular:dev-server", "options": { "browserTarget": "app:build" }, "configurations": { "production": { "browserTarget": "app:build:production" }, "ci": { "progress": false } } }, "extract-i18n": { "builder": "@angular-devkit/build-angular:extract-i18n", "options": { "browserTarget": "app:build" } }, "lint": { "builder": "@angular-devkit/build-angular:tslint", "options": { "tsConfig": [ "tsconfig.app.json", "tsconfig.spec.json", "e2e/tsconfig.json" ], "exclude": ["**/node_modules/**"] } } } } }, "cli": { "defaultCollection": "@ionic/angular-toolkit" }, "schematics": { "@ionic/angular-toolkit:component": { "styleext": "scss" }, "@ionic/angular-toolkit:page": { "styleext": "scss" } } } ================================================ FILE: ionic-angular/browserslist ================================================ # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. # For additional information regarding the format and rule options, please see: # https://github.com/browserslist/browserslist#queries # You can see what browsers were selected by your queries by running: # npx browserslist > 0.5% last 2 versions Firefox ESR not dead not IE 9-11 # For IE 9-11 support, remove 'not'. ================================================ FILE: ionic-angular/ionic.config.json ================================================ { "name": "tmp-ng", "integrations": {}, "type": "angular" } ================================================ FILE: ionic-angular/karma.conf.js ================================================ // Karma configuration file, see link for more information // https://karma-runner.github.io/1.0/config/configuration-file.html module.exports = function (config) { config.set({ basePath: '', frameworks: ['jasmine', '@angular-devkit/build-angular'], plugins: [ require('karma-jasmine'), require('karma-chrome-launcher'), require('karma-jasmine-html-reporter'), require('karma-coverage-istanbul-reporter'), require('@angular-devkit/build-angular/plugins/karma') ], client: { clearContext: false // leave Jasmine Spec Runner output visible in browser }, coverageIstanbulReporter: { dir: require('path').join(__dirname, '../coverage'), reports: ['html', 'lcovonly', 'text-summary'], fixWebpackSourcePaths: true }, reporters: ['progress', 'kjhtml'], port: 9876, colors: true, logLevel: config.LOG_INFO, autoWatch: true, browsers: ['Chrome'], singleRun: false }); }; ================================================ FILE: ionic-angular/package.json ================================================ { "name": "hello-ionic-angular", "version": "0.0.1", "author": "Ionic Framework", "homepage": "https://ionicframework.com/", "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "lint": "ng lint" }, "private": true, "dependencies": { "@angular/common": "~9.1.6", "@angular/core": "~9.1.6", "@angular/forms": "~9.1.6", "@angular/platform-browser": "~9.1.6", "@angular/platform-browser-dynamic": "~9.1.6", "@angular/router": "~9.1.6", "@ionic/angular": "^5.0.0", "rxjs": "~6.5.1", "tslib": "^1.10.0", "zone.js": "~0.10.2" }, "devDependencies": { "@angular-devkit/build-angular": "~0.901.5", "@angular/cli": "~9.1.5", "@angular/compiler": "~9.1.6", "@angular/compiler-cli": "~9.1.6", "@angular/language-service": "~9.1.6", "@ionic/angular-toolkit": "^2.1.1", "@types/node": "^12.11.1", "codelyzer": "^5.1.2", "ts-node": "~8.3.0", "tslint": "~6.1.0", "typescript": "~3.8.3" }, "description": "An Ionic project" } ================================================ FILE: ionic-angular/src/app/app.component.html ================================================
Hello World
================================================ FILE: ionic-angular/src/app/app.component.ts ================================================ import { Component } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: 'app.component.html', }) export class AppComponent {} ================================================ FILE: ionic-angular/src/app/app.module.ts ================================================ import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { IonicModule } from '@ionic/angular'; import { AppComponent } from './app.component'; @NgModule({ declarations: [AppComponent], imports: [BrowserModule, IonicModule.forRoot()], bootstrap: [AppComponent], }) export class AppModule {} ================================================ FILE: ionic-angular/src/environments/environment.prod.ts ================================================ export const environment = { production: true }; ================================================ FILE: ionic-angular/src/environments/environment.ts ================================================ // This file can be replaced during build by using the `fileReplacements` array. // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. // The list of file replacements can be found in `angular.json`. export const environment = { production: false }; /* * For easier debugging in development mode, you can import the following file * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. * * This import should be commented out in production mode because it will have a negative impact * on performance if an error is thrown. */ // import 'zone.js/dist/zone-error'; // Included with Angular CLI. ================================================ FILE: ionic-angular/src/global.scss ================================================ @import "~@ionic/angular/css/ionic.bundle.css"; ================================================ FILE: ionic-angular/src/index.html ================================================ Ionic App ================================================ FILE: ionic-angular/src/main.ts ================================================ import { enableProdMode } from '@angular/core'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { AppModule } from './app/app.module'; import { environment } from './environments/environment'; if (environment.production) { enableProdMode(); } platformBrowserDynamic().bootstrapModule(AppModule) .catch(err => console.log(err)); ================================================ FILE: ionic-angular/src/polyfills.ts ================================================ /** * This file includes polyfills needed by Angular and is loaded before the app. * You can add your own extra polyfills to this file. * * This file is divided into 2 sections: * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. * 2. Application imports. Files imported after ZoneJS that should be loaded before your main * file. * * The current setup is for so-called "evergreen" browsers; the last versions of browsers that * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. * * Learn more in https://angular.io/guide/browser-support */ /*************************************************************************************************** * BROWSER POLYFILLS */ /** IE10 and IE11 requires the following for NgClass support on SVG elements */ // import 'classlist.js'; // Run `npm install --save classlist.js`. /** * Web Animations `@angular/platform-browser/animations` * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). */ // import 'web-animations-js'; // Run `npm install --save web-animations-js`. /** * By default, zone.js will patch all possible macroTask and DomEvents * user can disable parts of macroTask/DomEvents patch by setting following flags * because those flags need to be set before `zone.js` being loaded, and webpack * will put import in the top of bundle, so user need to create a separate file * in this directory (for example: zone-flags.ts), and put the following flags * into that file, and then add the following code before importing zone.js. * import './zone-flags.ts'; * * The flags allowed in zone-flags.ts are listed here. * * The following flags will work for all browsers. * * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick * (window as any).__zone_symbol__BLACK_LISTED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames * * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js * with the following flag, it will bypass `zone.js` patch for IE/Edge * * (window as any).__Zone_enable_cross_context_check = true; * */ import './zone-flags'; /*************************************************************************************************** * Zone JS is required by default for Angular itself. */ import 'zone.js/dist/zone'; // Included with Angular CLI. /*************************************************************************************************** * APPLICATION IMPORTS */ ================================================ FILE: ionic-angular/src/theme/variables.scss ================================================ // Ionic Variables and Theming. For more info, please see: // http://ionicframework.com/docs/theming/ /** Ionic CSS Variables **/ :root { /** primary **/ --ion-color-primary: #3880ff; --ion-color-primary-rgb: 56, 128, 255; --ion-color-primary-contrast: #ffffff; --ion-color-primary-contrast-rgb: 255, 255, 255; --ion-color-primary-shade: #3171e0; --ion-color-primary-tint: #4c8dff; /** secondary **/ --ion-color-secondary: #3dc2ff; --ion-color-secondary-rgb: 61, 194, 255; --ion-color-secondary-contrast: #ffffff; --ion-color-secondary-contrast-rgb: 255, 255, 255; --ion-color-secondary-shade: #36abe0; --ion-color-secondary-tint: #50c8ff; /** tertiary **/ --ion-color-tertiary: #5260ff; --ion-color-tertiary-rgb: 82, 96, 255; --ion-color-tertiary-contrast: #ffffff; --ion-color-tertiary-contrast-rgb: 255, 255, 255; --ion-color-tertiary-shade: #4854e0; --ion-color-tertiary-tint: #6370ff; /** success **/ --ion-color-success: #2dd36f; --ion-color-success-rgb: 45, 211, 111; --ion-color-success-contrast: #ffffff; --ion-color-success-contrast-rgb: 255, 255, 255; --ion-color-success-shade: #28ba62; --ion-color-success-tint: #42d77d; /** warning **/ --ion-color-warning: #ffc409; --ion-color-warning-rgb: 255, 196, 9; --ion-color-warning-contrast: #000000; --ion-color-warning-contrast-rgb: 0, 0, 0; --ion-color-warning-shade: #e0ac08; --ion-color-warning-tint: #ffca22; /** danger **/ --ion-color-danger: #eb445a; --ion-color-danger-rgb: 235, 68, 90; --ion-color-danger-contrast: #ffffff; --ion-color-danger-contrast-rgb: 255, 255, 255; --ion-color-danger-shade: #cf3c4f; --ion-color-danger-tint: #ed576b; /** dark **/ --ion-color-dark: #222428; --ion-color-dark-rgb: 34, 36, 40; --ion-color-dark-contrast: #ffffff; --ion-color-dark-contrast-rgb: 255, 255, 255; --ion-color-dark-shade: #1e2023; --ion-color-dark-tint: #383a3e; /** medium **/ --ion-color-medium: #92949c; --ion-color-medium-rgb: 146, 148, 156; --ion-color-medium-contrast: #ffffff; --ion-color-medium-contrast-rgb: 255, 255, 255; --ion-color-medium-shade: #808289; --ion-color-medium-tint: #9d9fa6; /** light **/ --ion-color-light: #f4f5f8; --ion-color-light-rgb: 244, 245, 248; --ion-color-light-contrast: #000000; --ion-color-light-contrast-rgb: 0, 0, 0; --ion-color-light-shade: #d7d8da; --ion-color-light-tint: #f5f6f9; } @media (prefers-color-scheme: dark) { /* * Dark Colors * ------------------------------------------- */ body { --ion-color-primary: #428cff; --ion-color-primary-rgb: 66,140,255; --ion-color-primary-contrast: #ffffff; --ion-color-primary-contrast-rgb: 255,255,255; --ion-color-primary-shade: #3a7be0; --ion-color-primary-tint: #5598ff; --ion-color-secondary: #50c8ff; --ion-color-secondary-rgb: 80,200,255; --ion-color-secondary-contrast: #ffffff; --ion-color-secondary-contrast-rgb: 255,255,255; --ion-color-secondary-shade: #46b0e0; --ion-color-secondary-tint: #62ceff; --ion-color-tertiary: #6a64ff; --ion-color-tertiary-rgb: 106,100,255; --ion-color-tertiary-contrast: #ffffff; --ion-color-tertiary-contrast-rgb: 255,255,255; --ion-color-tertiary-shade: #5d58e0; --ion-color-tertiary-tint: #7974ff; --ion-color-success: #2fdf75; --ion-color-success-rgb: 47,223,117; --ion-color-success-contrast: #000000; --ion-color-success-contrast-rgb: 0,0,0; --ion-color-success-shade: #29c467; --ion-color-success-tint: #44e283; --ion-color-warning: #ffd534; --ion-color-warning-rgb: 255,213,52; --ion-color-warning-contrast: #000000; --ion-color-warning-contrast-rgb: 0,0,0; --ion-color-warning-shade: #e0bb2e; --ion-color-warning-tint: #ffd948; --ion-color-danger: #ff4961; --ion-color-danger-rgb: 255,73,97; --ion-color-danger-contrast: #ffffff; --ion-color-danger-contrast-rgb: 255,255,255; --ion-color-danger-shade: #e04055; --ion-color-danger-tint: #ff5b71; --ion-color-dark: #f4f5f8; --ion-color-dark-rgb: 244,245,248; --ion-color-dark-contrast: #000000; --ion-color-dark-contrast-rgb: 0,0,0; --ion-color-dark-shade: #d7d8da; --ion-color-dark-tint: #f5f6f9; --ion-color-medium: #989aa2; --ion-color-medium-rgb: 152,154,162; --ion-color-medium-contrast: #000000; --ion-color-medium-contrast-rgb: 0,0,0; --ion-color-medium-shade: #86888f; --ion-color-medium-tint: #a2a4ab; --ion-color-light: #222428; --ion-color-light-rgb: 34,36,40; --ion-color-light-contrast: #ffffff; --ion-color-light-contrast-rgb: 255,255,255; --ion-color-light-shade: #1e2023; --ion-color-light-tint: #383a3e; } /* * iOS Dark Theme * ------------------------------------------- */ .ios body { --ion-background-color: #000000; --ion-background-color-rgb: 0,0,0; --ion-text-color: #ffffff; --ion-text-color-rgb: 255,255,255; --ion-color-step-50: #0d0d0d; --ion-color-step-100: #1a1a1a; --ion-color-step-150: #262626; --ion-color-step-200: #333333; --ion-color-step-250: #404040; --ion-color-step-300: #4d4d4d; --ion-color-step-350: #595959; --ion-color-step-400: #666666; --ion-color-step-450: #737373; --ion-color-step-500: #808080; --ion-color-step-550: #8c8c8c; --ion-color-step-600: #999999; --ion-color-step-650: #a6a6a6; --ion-color-step-700: #b3b3b3; --ion-color-step-750: #bfbfbf; --ion-color-step-800: #cccccc; --ion-color-step-850: #d9d9d9; --ion-color-step-900: #e6e6e6; --ion-color-step-950: #f2f2f2; --ion-toolbar-background: #0d0d0d; --ion-item-background: #000000; } /* * Material Design Dark Theme * ------------------------------------------- */ .md body { --ion-background-color: #121212; --ion-background-color-rgb: 18,18,18; --ion-text-color: #ffffff; --ion-text-color-rgb: 255,255,255; --ion-border-color: #222222; --ion-color-step-50: #1e1e1e; --ion-color-step-100: #2a2a2a; --ion-color-step-150: #363636; --ion-color-step-200: #414141; --ion-color-step-250: #4d4d4d; --ion-color-step-300: #595959; --ion-color-step-350: #656565; --ion-color-step-400: #717171; --ion-color-step-450: #7d7d7d; --ion-color-step-500: #898989; --ion-color-step-550: #949494; --ion-color-step-600: #a0a0a0; --ion-color-step-650: #acacac; --ion-color-step-700: #b8b8b8; --ion-color-step-750: #c4c4c4; --ion-color-step-800: #d0d0d0; --ion-color-step-850: #dbdbdb; --ion-color-step-900: #e7e7e7; --ion-color-step-950: #f3f3f3; --ion-item-background: #1e1e1e; --ion-toolbar-background: #1f1f1f; --ion-tab-bar-background: #1f1f1f; } } ================================================ FILE: ionic-angular/src/zone-flags.ts ================================================ /** * Prevents Angular change detection from * running with certain Web Component callbacks */ (window as any).__Zone_disable_customElements = true; ================================================ FILE: ionic-angular/tsconfig.app.json ================================================ { "extends": "./tsconfig.json", "compilerOptions": { "outDir": "./out-tsc/app", "types": [] }, "files": [ "src/main.ts", "src/polyfills.ts" ], "include": [ "src/**/*.ts", "src/**/*.d.ts" ], "exclude": [ "src/**/*.spec.ts" ] } ================================================ FILE: ionic-angular/tsconfig.json ================================================ { "compileOnSave": false, "compilerOptions": { "baseUrl": "./", "outDir": "./dist/out-tsc", "sourceMap": true, "declaration": false, "downlevelIteration": true, "experimentalDecorators": true, "module": "esnext", "moduleResolution": "node", "importHelpers": true, "target": "es2015", "lib": [ "es2018", "dom" ] }, "angularCompilerOptions": { "fullTemplateTypeCheck": true, "strictInjectionParameters": true } } ================================================ FILE: ionic-angular/tslint.json ================================================ { "extends": "tslint:recommended", "rules": { "align": { "options": [ "parameters", "statements" ] }, "array-type": false, "arrow-return-shorthand": true, "curly": true, "deprecation": { "severity": "warning" }, "component-class-suffix": [true, "Page", "Component"], "contextual-lifecycle": true, "directive-class-suffix": true, "directive-selector": [ true, "attribute", "app", "camelCase" ], "component-selector": [ true, "element", "app", "kebab-case" ], "eofline": true, "import-blacklist": [ true, "rxjs/Rx" ], "import-spacing": true, "indent": { "options": [ "spaces" ] }, "max-classes-per-file": false, "max-line-length": [ true, 140 ], "member-ordering": [ true, { "order": [ "static-field", "instance-field", "static-method", "instance-method" ] } ], "no-console": [ true, "debug", "info", "time", "timeEnd", "trace" ], "no-empty": false, "no-inferrable-types": [ true, "ignore-params" ], "no-non-null-assertion": true, "no-redundant-jsdoc": true, "no-switch-case-fall-through": true, "no-var-requires": false, "object-literal-key-quotes": [ true, "as-needed" ], "quotemark": [ true, "single" ], "semicolon": { "options": [ "always" ] }, "space-before-function-paren": { "options": { "anonymous": "never", "asyncArrow": "always", "constructor": "never", "method": "never", "named": "never" } }, "typedef-whitespace": { "options": [ { "call-signature": "nospace", "index-signature": "nospace", "parameter": "nospace", "property-declaration": "nospace", "variable-declaration": "nospace" }, { "call-signature": "onespace", "index-signature": "onespace", "parameter": "onespace", "property-declaration": "onespace", "variable-declaration": "onespace" } ] }, "variable-name": { "options": [ "ban-keywords", "check-format", "allow-pascal-case" ] }, "whitespace": { "options": [ "check-branch", "check-decl", "check-operator", "check-separator", "check-type", "check-typecast" ] }, "no-conflicting-lifecycle": true, "no-host-metadata-property": true, "no-input-rename": true, "no-inputs-metadata-property": true, "no-output-native": true, "no-output-on-prefix": true, "no-output-rename": true, "no-outputs-metadata-property": true, "template-banana-in-box": true, "template-no-negated-async": true, "use-lifecycle-interface": true, "use-pipe-transform-interface": true, "object-literal-sort-keys": false }, "rulesDirectory": [ "codelyzer" ] } ================================================ FILE: ionic-react/.gitignore ================================================ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. # dependencies /node_modules /.pnp .pnp.js # testing /coverage # production /build # misc .DS_Store .env.local .env.development.local .env.test.local .env.production.local .vscode npm-debug.log* yarn-debug.log* yarn-error.log* ================================================ FILE: ionic-react/capacitor.config.json ================================================ { "appId": "io.ionic.starter", "appName": "tmp-react", "bundledWebRuntime": false, "npmClient": "npm", "webDir": "build", "plugins": { "SplashScreen": { "launchShowDuration": 0 } }, "cordova": {} } ================================================ FILE: ionic-react/ionic.config.json ================================================ { "name": "ionic-react", "integrations": { }, "type": "react" } ================================================ FILE: ionic-react/package.json ================================================ { "name": "hello-ionic-react", "version": "0.0.1", "private": true, "dependencies": { "@ionic/react": "^5.0.7", "@types/node": "^12.12.24", "@types/react": "^16.9.17", "@types/react-dom": "^16.9.4", "ionicons": "^5.0.0", "react": "^16.13.0", "react-dom": "^16.13.0", "react-scripts": "3.4.1", "typescript": "3.8.3" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", "eject": "react-scripts eject" }, "eslintConfig": { "extends": "react-app" }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] }, "devDependencies": {}, "description": "An Ionic project" } ================================================ FILE: ionic-react/public/index.html ================================================ Ionic App
================================================ FILE: ionic-react/public/manifest.json ================================================ { "short_name": "Ionic App", "name": "My Ionic App", "icons": [ { "src": "assets/icon/favicon.png", "sizes": "64x64 32x32 24x24 16x16", "type": "image/x-icon" }, { "src": "assets/icon/icon.png", "type": "image/png", "sizes": "512x512", "purpose": "maskable" } ], "start_url": ".", "display": "standalone", "theme_color": "#ffffff", "background_color": "#ffffff" } ================================================ FILE: ionic-react/src/App.tsx ================================================ import React from 'react'; import { IonApp, IonContent, IonPage } from '@ionic/react'; import '@ionic/react/css/ionic.bundle.css'; import './theme/variables.css'; const App: React.FC = () => ( Hello World ); export default App; ================================================ FILE: ionic-react/src/index.tsx ================================================ import React from 'react'; import ReactDOM from 'react-dom'; import App from './App'; import * as serviceWorker from './serviceWorker'; ReactDOM.render(, document.getElementById('root')); // If you want your app to work offline and load faster, you can change // unregister() to register() below. Note this comes with some pitfalls. // Learn more about service workers: https://bit.ly/CRA-PWA serviceWorker.unregister(); ================================================ FILE: ionic-react/src/react-app-env.d.ts ================================================ /// ================================================ FILE: ionic-react/src/serviceWorker.ts ================================================ // This optional code is used to register a service worker. // register() is not called by default. // This lets the app load faster on subsequent visits in production, and gives // it offline capabilities. However, it also means that developers (and users) // will only see deployed updates on subsequent visits to a page, after all the // existing tabs open on the page have been closed, since previously cached // resources are updated in the background. // To learn more about the benefits of this model and instructions on how to // opt-in, read https://bit.ly/CRA-PWA const isLocalhost = Boolean( window.location.hostname === 'localhost' || // [::1] is the IPv6 localhost address. window.location.hostname === '[::1]' || // 127.0.0.0/8 are considered localhost for IPv4. window.location.hostname.match( /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ ) ); type Config = { onSuccess?: (registration: ServiceWorkerRegistration) => void; onUpdate?: (registration: ServiceWorkerRegistration) => void; }; export function register(config?: Config) { if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { // The URL constructor is available in all browsers that support SW. const publicUrl = new URL( process.env.PUBLIC_URL, window.location.href ); if (publicUrl.origin !== window.location.origin) { // Our service worker won't work if PUBLIC_URL is on a different origin // from what our page is served on. This might happen if a CDN is used to // serve assets; see https://github.com/facebook/create-react-app/issues/2374 return; } window.addEventListener('load', () => { const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`; if (isLocalhost) { // This is running on localhost. Let's check if a service worker still exists or not. checkValidServiceWorker(swUrl, config); // Add some additional logging to localhost, pointing developers to the // service worker/PWA documentation. navigator.serviceWorker.ready.then(() => { console.log( 'This web app is being served cache-first by a service ' + 'worker. To learn more, visit https://bit.ly/CRA-PWA' ); }); } else { // Is not localhost. Just register service worker registerValidSW(swUrl, config); } }); } } function registerValidSW(swUrl: string, config?: Config) { navigator.serviceWorker .register(swUrl) .then(registration => { registration.onupdatefound = () => { const installingWorker = registration.installing; if (installingWorker == null) { return; } installingWorker.onstatechange = () => { if (installingWorker.state === 'installed') { if (navigator.serviceWorker.controller) { // At this point, the updated precached content has been fetched, // but the previous service worker will still serve the older // content until all client tabs are closed. console.log( 'New content is available and will be used when all ' + 'tabs for this page are closed. See https://bit.ly/CRA-PWA.' ); // Execute callback if (config && config.onUpdate) { config.onUpdate(registration); } } else { // At this point, everything has been precached. // It's the perfect time to display a // "Content is cached for offline use." message. console.log('Content is cached for offline use.'); // Execute callback if (config && config.onSuccess) { config.onSuccess(registration); } } } }; }; }) .catch(error => { console.error('Error during service worker registration:', error); }); } function checkValidServiceWorker(swUrl: string, config?: Config) { // Check if the service worker can be found. If it can't reload the page. fetch(swUrl, { headers: { 'Service-Worker': 'script' } }) .then(response => { // Ensure service worker exists, and that we really are getting a JS file. const contentType = response.headers.get('content-type'); if ( response.status === 404 || (contentType != null && contentType.indexOf('javascript') === -1) ) { // No service worker found. Probably a different app. Reload the page. navigator.serviceWorker.ready.then(registration => { registration.unregister().then(() => { window.location.reload(); }); }); } else { // Service worker found. Proceed as normal. registerValidSW(swUrl, config); } }) .catch(() => { console.log( 'No internet connection found. App is running in offline mode.' ); }); } export function unregister() { if ('serviceWorker' in navigator) { navigator.serviceWorker.ready.then(registration => { registration.unregister(); }); } } ================================================ FILE: ionic-react/src/theme/variables.css ================================================ :root { /** primary **/ --ion-color-primary: #3880ff; --ion-color-primary-rgb: 56, 128, 255; --ion-color-primary-contrast: #ffffff; --ion-color-primary-contrast-rgb: 255, 255, 255; --ion-color-primary-shade: #3171e0; --ion-color-primary-tint: #4c8dff; /** secondary **/ --ion-color-secondary: #3dc2ff; --ion-color-secondary-rgb: 61, 194, 255; --ion-color-secondary-contrast: #ffffff; --ion-color-secondary-contrast-rgb: 255, 255, 255; --ion-color-secondary-shade: #36abe0; --ion-color-secondary-tint: #50c8ff; /** tertiary **/ --ion-color-tertiary: #5260ff; --ion-color-tertiary-rgb: 82, 96, 255; --ion-color-tertiary-contrast: #ffffff; --ion-color-tertiary-contrast-rgb: 255, 255, 255; --ion-color-tertiary-shade: #4854e0; --ion-color-tertiary-tint: #6370ff; /** success **/ --ion-color-success: #2dd36f; --ion-color-success-rgb: 45, 211, 111; --ion-color-success-contrast: #ffffff; --ion-color-success-contrast-rgb: 255, 255, 255; --ion-color-success-shade: #28ba62; --ion-color-success-tint: #42d77d; /** warning **/ --ion-color-warning: #ffc409; --ion-color-warning-rgb: 255, 196, 9; --ion-color-warning-contrast: #000000; --ion-color-warning-contrast-rgb: 0, 0, 0; --ion-color-warning-shade: #e0ac08; --ion-color-warning-tint: #ffca22; /** danger **/ --ion-color-danger: #eb445a; --ion-color-danger-rgb: 235, 68, 90; --ion-color-danger-contrast: #ffffff; --ion-color-danger-contrast-rgb: 255, 255, 255; --ion-color-danger-shade: #cf3c4f; --ion-color-danger-tint: #ed576b; /** dark **/ --ion-color-dark: #222428; --ion-color-dark-rgb: 34, 36, 40; --ion-color-dark-contrast: #ffffff; --ion-color-dark-contrast-rgb: 255, 255, 255; --ion-color-dark-shade: #1e2023; --ion-color-dark-tint: #383a3e; /** medium **/ --ion-color-medium: #92949c; --ion-color-medium-rgb: 146, 148, 156; --ion-color-medium-contrast: #ffffff; --ion-color-medium-contrast-rgb: 255, 255, 255; --ion-color-medium-shade: #808289; --ion-color-medium-tint: #9d9fa6; /** light **/ --ion-color-light: #f4f5f8; --ion-color-light-rgb: 244, 245, 248; --ion-color-light-contrast: #000000; --ion-color-light-contrast-rgb: 0, 0, 0; --ion-color-light-shade: #d7d8da; --ion-color-light-tint: #f5f6f9; } @media (prefers-color-scheme: dark) { /* * Dark Colors * ------------------------------------------- */ body { --ion-color-primary: #428cff; --ion-color-primary-rgb: 66,140,255; --ion-color-primary-contrast: #ffffff; --ion-color-primary-contrast-rgb: 255,255,255; --ion-color-primary-shade: #3a7be0; --ion-color-primary-tint: #5598ff; --ion-color-secondary: #50c8ff; --ion-color-secondary-rgb: 80,200,255; --ion-color-secondary-contrast: #ffffff; --ion-color-secondary-contrast-rgb: 255,255,255; --ion-color-secondary-shade: #46b0e0; --ion-color-secondary-tint: #62ceff; --ion-color-tertiary: #6a64ff; --ion-color-tertiary-rgb: 106,100,255; --ion-color-tertiary-contrast: #ffffff; --ion-color-tertiary-contrast-rgb: 255,255,255; --ion-color-tertiary-shade: #5d58e0; --ion-color-tertiary-tint: #7974ff; --ion-color-success: #2fdf75; --ion-color-success-rgb: 47,223,117; --ion-color-success-contrast: #000000; --ion-color-success-contrast-rgb: 0,0,0; --ion-color-success-shade: #29c467; --ion-color-success-tint: #44e283; --ion-color-warning: #ffd534; --ion-color-warning-rgb: 255,213,52; --ion-color-warning-contrast: #000000; --ion-color-warning-contrast-rgb: 0,0,0; --ion-color-warning-shade: #e0bb2e; --ion-color-warning-tint: #ffd948; --ion-color-danger: #ff4961; --ion-color-danger-rgb: 255,73,97; --ion-color-danger-contrast: #ffffff; --ion-color-danger-contrast-rgb: 255,255,255; --ion-color-danger-shade: #e04055; --ion-color-danger-tint: #ff5b71; --ion-color-dark: #f4f5f8; --ion-color-dark-rgb: 244,245,248; --ion-color-dark-contrast: #000000; --ion-color-dark-contrast-rgb: 0,0,0; --ion-color-dark-shade: #d7d8da; --ion-color-dark-tint: #f5f6f9; --ion-color-medium: #989aa2; --ion-color-medium-rgb: 152,154,162; --ion-color-medium-contrast: #000000; --ion-color-medium-contrast-rgb: 0,0,0; --ion-color-medium-shade: #86888f; --ion-color-medium-tint: #a2a4ab; --ion-color-light: #222428; --ion-color-light-rgb: 34,36,40; --ion-color-light-contrast: #ffffff; --ion-color-light-contrast-rgb: 255,255,255; --ion-color-light-shade: #1e2023; --ion-color-light-tint: #383a3e; } /* * iOS Dark Theme * ------------------------------------------- */ .ios body { --ion-background-color: #000000; --ion-background-color-rgb: 0,0,0; --ion-text-color: #ffffff; --ion-text-color-rgb: 255,255,255; --ion-color-step-50: #0d0d0d; --ion-color-step-100: #1a1a1a; --ion-color-step-150: #262626; --ion-color-step-200: #333333; --ion-color-step-250: #404040; --ion-color-step-300: #4d4d4d; --ion-color-step-350: #595959; --ion-color-step-400: #666666; --ion-color-step-450: #737373; --ion-color-step-500: #808080; --ion-color-step-550: #8c8c8c; --ion-color-step-600: #999999; --ion-color-step-650: #a6a6a6; --ion-color-step-700: #b3b3b3; --ion-color-step-750: #bfbfbf; --ion-color-step-800: #cccccc; --ion-color-step-850: #d9d9d9; --ion-color-step-900: #e6e6e6; --ion-color-step-950: #f2f2f2; --ion-toolbar-background: #0d0d0d; --ion-item-background: #000000; } /* * Material Design Dark Theme * ------------------------------------------- */ .md body { --ion-background-color: #121212; --ion-background-color-rgb: 18,18,18; --ion-text-color: #ffffff; --ion-text-color-rgb: 255,255,255; --ion-border-color: #222222; --ion-color-step-50: #1e1e1e; --ion-color-step-100: #2a2a2a; --ion-color-step-150: #363636; --ion-color-step-200: #414141; --ion-color-step-250: #4d4d4d; --ion-color-step-300: #595959; --ion-color-step-350: #656565; --ion-color-step-400: #717171; --ion-color-step-450: #7d7d7d; --ion-color-step-500: #898989; --ion-color-step-550: #949494; --ion-color-step-600: #a0a0a0; --ion-color-step-650: #acacac; --ion-color-step-700: #b8b8b8; --ion-color-step-750: #c4c4c4; --ion-color-step-800: #d0d0d0; --ion-color-step-850: #dbdbdb; --ion-color-step-900: #e7e7e7; --ion-color-step-950: #f3f3f3; --ion-item-background: #1e1e1e; --ion-toolbar-background: #1f1f1f; --ion-tab-bar-background: #1f1f1f; } } ================================================ FILE: ionic-react/tsconfig.json ================================================ { "compilerOptions": { "target": "es5", "lib": [ "dom", "dom.iterable", "esnext" ], "allowJs": true, "skipLibCheck": true, "esModuleInterop": true, "allowSyntheticDefaultImports": true, "strict": true, "forceConsistentCasingInFileNames": true, "module": "esnext", "moduleResolution": "node", "resolveJsonModule": true, "isolatedModules": true, "noEmit": true, "jsx": "react" }, "include": [ "src" ] } ================================================ FILE: javascript/README.md ================================================ # Project Title Hello World app for JavaScript/HTML ## Getting Started Open the index.html to see Hello World in action ### Prerequisites Any browser like Google Chrome, IE, Edge, Safari, Firefox, etc ## Authors * **Duraimurugan Rajendran** - *Initial work* - (https://github.com/Duraimurugan/) ## Acknowledgments * John Papa ================================================ FILE: javascript/hello-world.js ================================================ class HelloWorldComponent extends HTMLElement { connectedCallback() { /* called when the element is connected to the page */ this.innerHTML = 'Hello World'; } } customElements.define('hello-world-component', HelloWorldComponent); ================================================ FILE: javascript/index.html ================================================ ================================================ FILE: jquery/index.html ================================================ Hello
Hello
================================================ FILE: knockoutjs/.gitignore ================================================ dist/ ================================================ FILE: knockoutjs/index.html ================================================ Hello Knockout JS ================================================ FILE: knockoutjs/package.json ================================================ { "name": "knockoutjs", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start": "webpack-dev-server --watch", "build": "webpack" }, "keywords": [], "license": "MIT", "devDependencies": { "clean-webpack-plugin": "^3.0.0", "html-webpack-plugin": "^4.3.0", "webpack": "^4.43.0", "webpack-cli": "^3.3.11", "webpack-dev-server": "^3.11.0" }, "dependencies": { "knockout": "^3.5.1" } } ================================================ FILE: knockoutjs/src/app.js ================================================ import ko from "knockout"; class HelloWorldViewModel { constructor() { this.message = "Hello World"; } } ko.components.register("hello-world", { viewModel: HelloWorldViewModel, template: `
` }); ko.applyBindings(); ================================================ FILE: knockoutjs/webpack.config.js ================================================ "use strict"; const path = require("path"); const HtmlWebpackPlugin = require("html-webpack-plugin"); const { CleanWebpackPlugin } = require("clean-webpack-plugin"); module.exports = { entry: "./src/app.js", output: { filename: "bundle.[hash].js", path: path.resolve(__dirname, "dist") }, plugins: [ new CleanWebpackPlugin(), new HtmlWebpackPlugin({ title: "Hello Angular", template: "index.html" }) ] }; ================================================ FILE: lit-element/.editorconfig ================================================ # EditorConfig helps developers define and maintain consistent # coding styles between different editors and IDEs # editorconfig.org root = true [*] # Change these settings to your own preference indent_style = space indent_size = 2 # We recommend you to keep these unchanged end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true [*.md] trim_trailing_whitespace = false [*.json] indent_size = 2 [*.{html,js,md}] block_comment_start = /** block_comment = * block_comment_end = */ ================================================ FILE: lit-element/.gitignore ================================================ ## editors /.idea /.vscode ## system files .DS_Store ## npm /node_modules/ /npm-debug.log ## testing /coverage/ ## temp folders /.tmp/ # build /_site/ /dist/ /out-tsc/ ================================================ FILE: lit-element/README.md ================================================

## Lit-element Hello World App [![Built with open-wc recommendations](https://img.shields.io/badge/built%20with-open--wc-blue.svg)](https://github.com/open-wc) ## Quickstart To get started: ```bash npm init @open-wc # requires node 10 & npm 6 or higher ``` ## Scripts - `start` runs your app for development, reloading on file changes - `start:build` runs your app after it has been built using the build command - `build` builds your app and outputs it in your `dist` directory ## Tooling configs For most of the tools, the configuration is in the `package.json` to reduce the amount of files in your project. If you customize the configuration a lot, you can consider moving them to individual files. ================================================ FILE: lit-element/custom-elements.json ================================================ { "version": 2, "tags": [ { "name": "hello-world", "description": "An Hello-World application using lit-element and open-wc", "properties": [ { "name": "value", "type": "String", "description": "who to say hello to", "default": "World" } ], "events": [], "slots": [], "cssProperties": [] } ] } ================================================ FILE: lit-element/index.html ================================================ hello-world ================================================ FILE: lit-element/package.json ================================================ { "scripts": { "build": "rimraf dist && rollup -c rollup.config.js", "start:build": "npm run build && es-dev-server --root-dir dist --app-index index.html --open --compatibility none", "start": "es-dev-server --app-index index.html --node-resolve --open --watch" }, "devDependencies": { "@open-wc/building-rollup": "^1.0.0", "rimraf": "^2.6.3", "rollup": "^2.3.4", "es-dev-server": "^1.5.0" }, "name": "hello-world", "version": "0.0.0", "description": "Webcomponent hello-world following open-wc recommendations", "dependencies": { "lit-html": "^1.0.0", "lit-element": "^2.0.1" } } ================================================ FILE: lit-element/rollup.config.js ================================================ import merge from "deepmerge"; // use createSpaConfig for bundling a Single Page App import { createSpaConfig } from "@open-wc/building-rollup"; // use createBasicConfig to do regular JS to JS bundling // import { createBasicConfig } from '@open-wc/building-rollup'; const baseConfig = createSpaConfig({ // use the outputdir option to modify where files are output // outputDir: 'dist', // if you need to support older browsers, such as IE11, set the legacyBuild // option to generate an additional build just for this browser // legacyBuild: true, // development mode creates a non-minified build for debugging or development developmentMode: process.env.ROLLUP_WATCH === "true", // set to true to inject the service worker registration into your index.html injectServiceWorker: false, }); export default merge(baseConfig, { // if you use createSpaConfig, you can use your index.html as entrypoint, // any ================================================ FILE: marko/src/app.js ================================================ import AppTemplate from "./app.marko"; AppTemplate.renderSync({ value: "World" }).appendTo(document.body); ================================================ FILE: marko/src/app.marko ================================================
Hello ${input.value}
================================================ FILE: marko/webpack.config.js ================================================ module.exports = { entry: "./src/app.js", output: { path: __dirname, filename: "public/static/bundle.js" }, resolve: { extensions: [".js", ".marko"] }, module: { rules: [ { test: /\.marko$/, loader: "@marko/webpack/loader" } ] } }; ================================================ FILE: meteor/.gitignore ================================================ node_modules/ ================================================ FILE: meteor/.meteor/.finished-upgraders ================================================ # This file contains information which helps Meteor properly upgrade your # app when you run 'meteor update'. You should check it into version control # with your project. notices-for-0.9.0 notices-for-0.9.1 0.9.4-platform-file notices-for-facebook-graph-api-2 1.2.0-standard-minifiers-package 1.2.0-meteor-platform-split 1.2.0-cordova-changes 1.2.0-breaking-changes 1.3.0-split-minifiers-package 1.4.0-remove-old-dev-bundle-link 1.4.1-add-shell-server-package 1.4.3-split-account-service-packages 1.5-add-dynamic-import-package 1.7-split-underscore-from-meteor-base 1.8.3-split-jquery-from-blaze ================================================ FILE: meteor/.meteor/.gitignore ================================================ local ================================================ FILE: meteor/.meteor/.id ================================================ # This file contains a token that is unique to your project. # Check it into your repository along with the rest of this directory. # It can be used for purposes such as: # - ensuring you don't accidentally deploy one app on top of another # - providing package authors with aggregated statistics ik62hvyntwuq.kh35ipb4tls ================================================ FILE: meteor/.meteor/packages ================================================ # Meteor packages used by this project, one per line. # Check this file (and the other files in this directory) into your repository. # # 'meteor add' and 'meteor remove' will edit this file for you, # but you can also edit it by hand. meteor-base@1.4.0 # Packages every Meteor app needs to have mobile-experience@1.1.0 # Packages for a great mobile UX mongo@1.10.0 # The database Meteor supports right now blaze-html-templates # Compile .html files into Meteor Blaze views jquery # Wrapper package for npm-installed jquery reactive-var@1.0.11 # Reactive variable for tracker tracker@1.2.0 # Meteor's client-side reactive programming library standard-minifier-css@1.6.0 # CSS minifier run for production mode standard-minifier-js@2.6.0 # JS minifier run for production mode es5-shim@4.8.0 # ECMAScript 5 compatibility for older browsers ecmascript@0.14.3 # Enable ECMAScript2015+ syntax in app code typescript@3.7.6 # Enable TypeScript syntax in .ts and .tsx modules shell-server@0.5.0 # Server-side component of the `meteor shell` command autopublish@1.0.7 # Publish all data to the clients (for prototyping) insecure@1.0.7 # Allow all DB writes from clients (for prototyping) ================================================ FILE: meteor/.meteor/platforms ================================================ server browser ================================================ FILE: meteor/.meteor/release ================================================ METEOR@1.10.2 ================================================ FILE: meteor/.meteor/versions ================================================ allow-deny@1.1.0 autopublish@1.0.7 autoupdate@1.6.0 babel-compiler@7.5.3 babel-runtime@1.5.0 base64@1.0.12 binary-heap@1.0.11 blaze@2.3.4 blaze-html-templates@1.1.2 blaze-tools@1.0.10 boilerplate-generator@1.7.0 caching-compiler@1.2.2 caching-html-compiler@1.1.3 callback-hook@1.3.0 check@1.3.1 ddp@1.4.0 ddp-client@2.3.3 ddp-common@1.4.0 ddp-server@2.3.1 deps@1.0.12 diff-sequence@1.1.1 dynamic-import@0.5.2 ecmascript@0.14.3 ecmascript-runtime@0.7.0 ecmascript-runtime-client@0.10.0 ecmascript-runtime-server@0.9.0 ejson@1.1.1 es5-shim@4.8.0 fetch@0.1.1 geojson-utils@1.0.10 hot-code-push@1.0.4 html-tools@1.0.11 htmljs@1.0.11 id-map@1.1.0 insecure@1.0.7 inter-process-messaging@0.1.1 jquery@3.0.0 launch-screen@1.2.0 livedata@1.0.18 logging@1.1.20 meteor@1.9.3 meteor-base@1.4.0 minifier-css@1.5.0 minifier-js@2.6.0 minimongo@1.6.0 mobile-experience@1.1.0 mobile-status-bar@1.1.0 modern-browsers@0.1.5 modules@0.15.0 modules-runtime@0.12.0 mongo@1.10.0 mongo-decimal@0.1.1 mongo-dev-server@1.1.0 mongo-id@1.0.7 npm-mongo@3.7.0 observe-sequence@1.0.16 ordered-dict@1.1.0 promise@0.11.2 random@1.2.0 reactive-var@1.0.11 reload@1.3.0 retry@1.1.0 routepolicy@1.1.0 shell-server@0.5.0 socket-stream-client@0.3.0 spacebars@1.0.15 spacebars-compiler@1.1.3 standard-minifier-css@1.6.0 standard-minifier-js@2.6.0 templating@1.3.2 templating-compiler@1.3.3 templating-runtime@1.3.2 templating-tools@1.1.2 tracker@1.2.0 typescript@3.7.6 ui@1.0.13 underscore@1.0.10 webapp@1.9.1 webapp-hashing@1.0.9 ================================================ FILE: meteor/README.md ================================================ # Install Meteor ## Windows choco install meteor ## OSX/Linux curl https://install.meteor.com/ | sh ## Create meteor project meteor create projectname ## User windows If you get some error like 'Errors prevented isopacket load:' While loading isopacket `combined`:, I think for to solve this problem this source is the best way solution https://stackoverflow.com/questions/60333092/meteor-update-isopacket-giving-combined-error-sourcemapconsumer-destroy-is-n ## Run If you want to run meteor project run the simply command *npm run start* or *meteor run* ## Build To bundle this project you can use run *meteor build --directory * WARNING: The output directory is under your source tree. Your generated files may get interpreted as source code! Consider building into a different directory instead. meteor build ../output -> This is suggestion from meteor or if you want show visualization after build just run *npm run visualize* ================================================ FILE: meteor/client/main.css ================================================ body { padding: 10px; font-family: sans-serif; } ================================================ FILE: meteor/client/main.html ================================================ hello

Hello {{> myWord}}

================================================ FILE: meteor/client/main.js ================================================ import { Template } from 'meteor/templating'; import './main.html'; if (Meteor.isClient) { Template.myWord.helpers({ text: 'World', }); } ================================================ FILE: meteor/package.json ================================================ { "name": "hello", "private": true, "scripts": { "start": "meteor run", "visualize": "meteor --production --extra-packages bundle-visualizer", "build": "meteor build --directory ./" }, "dependencies": { "@babel/runtime": "^7.8.3", "jquery": "^3.4.1", "meteor-node-stubs": "^1.0.0" }, "meteor": { "mainModule": { "client": "client/main.js", "server": "server/main.js" }, "testModule": "tests/main.js" } } ================================================ FILE: meteor/server/main.js ================================================ import { Meteor } from 'meteor/meteor'; Meteor.startup(() => { // code to run on server at startup }); ================================================ FILE: mithril/package.json ================================================ { "name": "hello-mithril", "version": "0.0.0", "private": true, "main": "index.js", "scripts": { "start": "parcel src/index.html", "build": "parcel build src/index.js", "postbuild": "ncp src/index.html dist/index.html" }, "dependencies": { "mithril": "^2.0.4" }, "devDependencies": { "ncp": "^2.0.0", "parcel-bundler": "^1.12.4" } } ================================================ FILE: mithril/src/README.md ================================================ # Hello, Mitrhil! A minimal hello world example in [mithril](https://mithril.js.org/). ## Installation ``` git clone https://github.com/johnpapa/hello-worlds cd hello-worlds/mithril npm install ``` ## Running / Development ``` npm start ``` Visit your app at http://localhost:1234. ## Building for production Create an optimized version of the app to be served from a `dist` folder. ``` npm run build ``` ================================================ FILE: mithril/src/index.html ================================================ ================================================ FILE: mithril/src/index.js ================================================ import m from 'mithril' m.render(document.body, 'Hello, World!') ================================================ FILE: nextjs/.gitignore ================================================ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. # dependencies /node_modules /.pnp .pnp.js # testing /coverage # next.js /.next/ /out/ # production /build # misc .DS_Store # debug npm-debug.log* yarn-debug.log* yarn-error.log* # local env files .env.local .env.development.local .env.test.local .env.production.local ================================================ FILE: nextjs/README.md ================================================ This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/zeit/next.js/tree/canary/packages/create-next-app). ## Getting Started First, run the development server: ```bash npm run dev # or yarn dev ``` Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. You can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file. ## Learn More To learn more about Next.js, take a look at the following resources: - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. You can check out [the Next.js GitHub repository](https://github.com/zeit/next.js/) - your feedback and contributions are welcome! ## Deploy on Vercel The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/import?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. ================================================ FILE: nextjs/package.json ================================================ { "name": "nextjs", "version": "0.1.0", "private": true, "scripts": { "dev": "next dev", "build": "next build && next export", "start": "next start" }, "dependencies": { "next": "9.4.2", "react": "16.13.1", "react-dom": "16.13.1" } } ================================================ FILE: nextjs/pages/index.js ================================================ import Head from 'next/head' export default function Home() { return (
Next Hello World

Hello World!

) } ================================================ FILE: nuxtjs/.gitignore ================================================ # Logs logs *.log npm-debug.log* yarn-debug.log* yarn-error.log* # Dependency directories node_modules/ # dotenv environment variables file .env # nuxt.js build output .nuxt # Nuxt generate dist # General .DS_Store ================================================ FILE: nuxtjs/README.md ================================================ # hello-nuxt > Hello World NuxtJS barebones example ## Build Setup ```bash # install dependencies $ npm install # serve with hot reload at localhost:3000 $ npm run dev # build for production and launch server $ npm run build $ npm run start # generate static project $ npm run generate ``` For detailed explanation on how things work, check out [Nuxt.js docs](https://nuxtjs.org). ================================================ FILE: nuxtjs/layouts/default.vue ================================================ ================================================ FILE: nuxtjs/nuxt.config.js ================================================ export default { mode: 'universal', /* ** Headers of the page */ head: { title: process.env.npm_package_name || '', meta: [ { charset: 'utf-8' }, { name: 'viewport', content: 'width=device-width, initial-scale=1' }, { hid: 'description', name: 'description', content: process.env.npm_package_description || '' } ], link: [ { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' } ] }, /* ** Customize the progress-bar color */ loading: { color: '#fff' }, /* ** Global CSS */ css: [ ], /* ** Plugins to load before mounting the App */ plugins: [ ], /* ** Nuxt.js dev-modules */ buildModules: [ ], /* ** Nuxt.js modules */ modules: [ ], /* ** Build configuration */ build: { /* ** You can extend webpack config here */ extend (config, ctx) { } } } ================================================ FILE: nuxtjs/package.json ================================================ { "name": "hello-nuxt", "version": "1.0.0", "description": "Hello World NuxtJS barebones example", "scripts": { "dev": "nuxt", "build": "nuxt build", "start": "nuxt start", "generate": "nuxt generate" }, "dependencies": { "nuxt": "^2.0.0" }, "devDependencies": {} } ================================================ FILE: nuxtjs/pages/index.vue ================================================ ================================================ FILE: polymer/.gitignore ================================================ /node_modules build ================================================ FILE: polymer/README.md ================================================ # Polymer Hello World Polymer App Hello World ## Install the Polymer-CLI First, make sure you have the [Polymer CLI](https://www.npmjs.com/package/polymer-cli) installed. Then run `polymer serve` to serve your application locally. ## Viewing Your Application ``` $ polymer serve ``` ## Building Your Application ``` $ polymer build ``` This will create builds of your application in the `build/` directory, optimized to be served in production. You can then serve the built versions by giving `polymer serve` a folder to serve from: ``` $ polymer serve build/default ``` ## Running Tests ``` $ polymer test ``` Your application is already set up to be tested via [web-component-tester](https://github.com/Polymer/web-component-tester). Run `polymer test` to run your application's test suite locally. [Java SE Development Kit 8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) is required. Note that if you do not have the `javac` command installed, you will be promted to install Java 10. To uninstall Java, see the direction [here](https://www.java.com/en/download/help/mac_uninstall_java.xml). See [issue #405 for the status of Java 10 support](https://github.com/Polymer/tools/issues/405). ================================================ FILE: polymer/index.html ================================================ polymer-app ================================================ FILE: polymer/manifest.json ================================================ { "name": "polymer-app", "short_name": "polymer-app", "description": "Polymer App Hello World", "start_url": "/", "display": "standalone" } ================================================ FILE: polymer/package.json ================================================ { "name": "polymer-app", "description": "Polymer App Hello World", "scripts": { "build": "polymer build" }, "dependencies": { "@polymer/polymer": "^3.0.0" }, "devDependencies": { "@polymer/test-fixture": "^4.0.2", "@webcomponents/webcomponentsjs": "^2.0.0", "chai": "^4.2.0", "mocha": "^6.1.4", "polymer-cli": "^1.9.11", "wct-mocha": "^1.0.1" } } ================================================ FILE: polymer/polymer.json ================================================ { "npm": true, "lint": { "rules": [ "polymer-3" ] }, "builds": [{ "bundle": true, "js": {"minify": true, "compile": "es2015"}, "css": {"minify": true}, "html": {"minify": true} }] } ================================================ FILE: polymer/src/_element/_element.js ================================================ import {html, PolymerElement} from '@polymer/polymer/polymer-element.js'; /** * @customElement * @polymer */ class HelloWorld extends PolymerElement { static get template() { return html`

Hello [[prop1]]!

`; } static get properties() { return { prop1: { type: String, value: 'hello-world' } }; } } window.customElements.define('hello-world', HelloWorld); ================================================ FILE: polymer/src/hello-world/hello-world.js ================================================ import { html, PolymerElement } from '@polymer/polymer/polymer-element.js'; /** * @customElement * @polymer */ class HelloWorld extends PolymerElement { static get template() { return html`

Hello [[prop1]]!

`; } static get properties() { return { prop1: { type: String, value: 'World' } }; } } window.customElements.define('hello-world', HelloWorld); ================================================ FILE: preact/index.html ================================================ Hello Preact ================================================ FILE: preact/package.json ================================================ { "name": "preact-app", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start": "webpack-dev-server --watch", "build": "webpack" }, "author": "Bertrand Tchoumkeu", "license": "MIT", "devDependencies": { "clean-webpack-plugin": "^3.0.0", "html-webpack-plugin": "^4.3.0", "webpack": "^4.43.0", "webpack-cli": "^3.3.11", "webpack-dev-server": "^3.11.0" }, "dependencies": { "preact": "^10.4.4" } } ================================================ FILE: preact/src/app.js ================================================ import { h, render } from 'preact'; const app = h('div', null, 'Hello World'); render(app, document.body); ================================================ FILE: preact/webpack.config.js ================================================ "use strict"; const path = require("path"); const HtmlWebpackPlugin = require("html-webpack-plugin"); const { CleanWebpackPlugin } = require("clean-webpack-plugin"); module.exports = { entry: "./src/app.js", output: { filename: "bundle.[hash].js", path: path.resolve(__dirname, "dist") }, plugins: [ new CleanWebpackPlugin(), new HtmlWebpackPlugin({ template: "index.html" }) ] }; ================================================ FILE: react/.gitignore ================================================ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. # dependencies /node_modules /.pnp .pnp.js # testing /coverage # production /build # misc .DS_Store .env.local .env.development.local .env.test.local .env.production.local npm-debug.log* yarn-debug.log* yarn-error.log* ================================================ FILE: react/README.md ================================================ This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). ## Available Scripts In the project directory, you can run: ### `yarn start` Runs the app in the development mode.
Open [http://localhost:3000](http://localhost:3000) to view it in the browser. The page will reload if you make edits.
You will also see any lint errors in the console. ### `yarn test` Launches the test runner in the interactive watch mode.
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. ### `yarn build` Builds the app for production to the `build` folder.
It correctly bundles React in production mode and optimizes the build for the best performance. The build is minified and the filenames include the hashes.
Your app is ready to be deployed! See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. ### `yarn eject` **Note: this is a one-way operation. Once you `eject`, you can’t go back!** If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. ## Learn More You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). To learn React, check out the [React documentation](https://reactjs.org/). ### Code Splitting This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting ### Analyzing the Bundle Size This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size ### Making a Progressive Web App This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app ### Advanced Configuration This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration ### Deployment This section has moved here: https://facebook.github.io/create-react-app/docs/deployment ### `yarn build` fails to minify This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify ================================================ FILE: react/index.html ================================================ Hello React
================================================ FILE: react/package.json ================================================ { "name": "hello-react", "version": "0.1.0", "private": true, "type": "module", "scripts": { "dev": "vite", "build": "vite build", "preview": "vite preview" }, "dependencies": { "react": "^19.1.0", "react-dom": "^19.1.0" }, "devDependencies": { "@vitejs/plugin-react": "^4.5.2", "vite": "^6.3.5" } } ================================================ FILE: react/public/index.html ================================================ React App
================================================ FILE: react/public/robots.txt ================================================ # https://www.robotstxt.org/robotstxt.html User-agent: * Disallow: ================================================ FILE: react/src/App.jsx ================================================ function App() { const value = 'World'; return
Hello {value}
; } export default App; ================================================ FILE: react/src/index.css ================================================ ================================================ FILE: react/src/index.jsx ================================================ import { createRoot } from 'react-dom/client'; import './index.css'; import App from './App'; createRoot(document.getElementById('root')).render(); ================================================ FILE: react/vite.config.js ================================================ import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; export default defineConfig({ plugins: [react()], }); ================================================ FILE: riot/index.html ================================================ Riot Hello World App
================================================ FILE: riot/package.json ================================================ { "name": "riot-hello-world", "version": "1.0.0", "description": "hello world application using riot library", "main": "index.js", "scripts": { "build": "webpack -c --mode production", "start": "webpack-dev-server --inline --watch --hot --colors -d --port 3000" }, "keywords": [ "riot", "hello-world" ], "author": "Nicolas Frizzarin", "license": "ISC", "devDependencies": { "@riotjs/compiler": "^4.9.2", "@riotjs/ssr": "^4.2.1", "@riotjs/webpack-loader": "^4.0.3", "esm": "^3.2.25", "html-webpack-plugin": "^4.4.1", "jsdom": "^16.2.2", "jsdom-global": "^3.0.2", "webpack": "^4.43.0", "webpack-cli": "^3.3.12", "webpack-dev-server": "^3.11.0" }, "dependencies": { "@riotjs/hot-reload": "^4.0.1", "riot": "^4.13.2" } } ================================================ FILE: riot/readme.md ================================================ # riot-hello-world hello world application using riot library ## Start ``` npm start ``` ## Build ``` npm run build ``` ================================================ FILE: riot/src/app.riot ================================================

Hello World

================================================ FILE: riot/src/index.js ================================================ import '@riotjs/hot-reload' import { component } from 'riot' import App from './app.riot' // mount the root tag component(App)(document.getElementById('root')) ================================================ FILE: riot/webpack.config.js ================================================ const path = require('path'); const webpack = require('webpack'); const HtmlWebpackPlugin = require('html-webpack-plugin'); module.exports = { entry: { app: './src/index.js', }, output: { path: path.resolve(__dirname, 'dist'), filename: 'bundle.js', chunkFilename: 'chunks/[name]/index.[chunkhash].js', devtoolModuleFilenameTemplate: 'source-webpack:///[resourcePath]', devtoolFallbackModuleFilenameTemplate: 'source-webpack:///[resourcePath]?[hash]' }, devtool: '#source-map', devServer: { open: true, contentBase: path.join(__dirname, 'dist'), }, optimization: { splitChunks: { chunks: 'async', minSize: 30000, maxSize: 0, minChunks: 1, maxAsyncRequests: 6, maxInitialRequests: 4, automaticNameDelimiter: '~', cacheGroups: { defaultVendors: { test: /[\\/]node_modules[\\/]/, priority: -10 }, default: { minChunks: 2, priority: -20, reuseExistingChunk: true } } } }, plugins: [ new HtmlWebpackPlugin({ template: 'index.html'}) ], module: { rules: [ { test: /\.riot$/, exclude: /node_modules/, use: [{ loader: '@riotjs/webpack-loader', options: { hot: true } }] } ] } } ================================================ FILE: scully/.editorconfig ================================================ # Editor configuration, see https://editorconfig.org root = true [*] charset = utf-8 indent_style = space indent_size = 2 insert_final_newline = true trim_trailing_whitespace = true [*.md] max_line_length = off trim_trailing_whitespace = false ================================================ FILE: scully/.gitignore ================================================ # See http://help.github.com/ignore-files/ for more about ignoring files. # compiled output /dist /tmp /out-tsc # Only exists if Bazel was run /bazel-out # dependencies /node_modules # profiling files chrome-profiler-events*.json speed-measure-plugin*.json # IDEs and editors /.idea .project .classpath .c9/ *.launch .settings/ *.sublime-workspace # IDE - VSCode .vscode/* !.vscode/settings.json !.vscode/tasks.json !.vscode/launch.json !.vscode/extensions.json .history/* # misc /.sass-cache /connect.lock /coverage /libpeerconnection.log npm-debug.log yarn-error.log testem.log /typings # System Files .DS_Store Thumbs.db ================================================ FILE: scully/.prettierrc ================================================ { "tabWidth": 2, "useTabs": false, "singleQuote": true } ================================================ FILE: scully/README.md ================================================ # Hello This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.0.1. ## Development server Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. ## Code scaffolding Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. ## Build Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build. Run `npm run scully` to build the static site. The build artifacts will be stored in the `dist/static` directory. ## Running unit tests Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). ## Running end-to-end tests Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/). ## Further help To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). ================================================ FILE: scully/angular.json ================================================ { "$schema": "./node_modules/@angular/cli/lib/config/schema.json", "version": 1, "newProjectRoot": "projects", "projects": { "hello": { "projectType": "application", "schematics": {}, "root": "", "sourceRoot": "src", "prefix": "app", "architect": { "build": { "builder": "@angular-devkit/build-angular:browser", "options": { "outputPath": "dist/hello", "index": "src/index.html", "main": "src/main.ts", "polyfills": "src/polyfills.ts", "tsConfig": "tsconfig.app.json", "aot": true, "assets": [ "src/favicon.ico", "src/assets" ], "styles": [ "src/styles.css" ], "scripts": [] }, "configurations": { "production": { "fileReplacements": [ { "replace": "src/environments/environment.ts", "with": "src/environments/environment.prod.ts" } ], "optimization": true, "outputHashing": "all", "sourceMap": false, "extractCss": true, "namedChunks": false, "extractLicenses": true, "vendorChunk": false, "buildOptimizer": true, "budgets": [ { "type": "initial", "maximumWarning": "2mb", "maximumError": "5mb" }, { "type": "anyComponentStyle", "maximumWarning": "6kb", "maximumError": "10kb" } ] } } }, "serve": { "builder": "@angular-devkit/build-angular:dev-server", "options": { "browserTarget": "hello:build" }, "configurations": { "production": { "browserTarget": "hello:build:production" } } }, "extract-i18n": { "builder": "@angular-devkit/build-angular:extract-i18n", "options": { "browserTarget": "hello:build" } }, "test": { "builder": "@angular-devkit/build-angular:karma", "options": { "main": "src/test.ts", "polyfills": "src/polyfills.ts", "tsConfig": "tsconfig.spec.json", "karmaConfig": "karma.conf.js", "assets": [ "src/favicon.ico", "src/assets" ], "styles": [ "src/styles.css" ], "scripts": [] } }, "lint": { "builder": "@angular-devkit/build-angular:tslint", "options": { "tsConfig": [ "tsconfig.app.json", "tsconfig.spec.json", "e2e/tsconfig.json" ], "exclude": [ "**/node_modules/**" ] } }, "e2e": { "builder": "@angular-devkit/build-angular:protractor", "options": { "protractorConfig": "e2e/protractor.conf.js", "devServerTarget": "hello:serve" }, "configurations": { "production": { "devServerTarget": "hello:serve:production" } } } } }}, "defaultProject": "hello" } ================================================ FILE: scully/browserslist ================================================ # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. # For additional information regarding the format and rule options, please see: # https://github.com/browserslist/browserslist#queries # You can see what browsers were selected by your queries by running: # npx browserslist > 0.5% last 2 versions Firefox ESR not dead not IE 9-11 # For IE 9-11 support, remove 'not'. ================================================ FILE: scully/karma.conf.js ================================================ // Karma configuration file, see link for more information // https://karma-runner.github.io/1.0/config/configuration-file.html module.exports = function (config) { config.set({ basePath: '', frameworks: ['jasmine', '@angular-devkit/build-angular'], plugins: [ require('karma-jasmine'), require('karma-chrome-launcher'), require('karma-jasmine-html-reporter'), require('karma-coverage-istanbul-reporter'), require('@angular-devkit/build-angular/plugins/karma') ], client: { clearContext: false // leave Jasmine Spec Runner output visible in browser }, coverageIstanbulReporter: { dir: require('path').join(__dirname, './coverage/hello'), reports: ['html', 'lcovonly', 'text-summary'], fixWebpackSourcePaths: true }, reporters: ['progress', 'kjhtml'], port: 9876, colors: true, logLevel: config.LOG_INFO, autoWatch: true, browsers: ['Chrome'], singleRun: false, restartOnFileChange: true }); }; ================================================ FILE: scully/package.json ================================================ { "name": "hello-angular", "version": "0.0.0", "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "test": "ng test", "lint": "ng lint", "scully": "scully", "scully:serve": "scully serve" }, "private": true, "dependencies": { "@angular/animations": "~9.0.0", "@angular/common": "~9.0.0", "@angular/compiler": "~9.0.0", "@angular/core": "~9.0.0", "@angular/forms": "~9.0.0", "@angular/platform-browser": "~9.0.0", "@angular/platform-browser-dynamic": "~9.0.0", "@angular/router": "~9.0.0", "@scullyio/init": "0.0.28", "@scullyio/ng-lib": "latest", "@scullyio/scully": "latest", "rxjs": "~6.5.4", "tslib": "^1.10.0", "zone.js": "~0.10.2" }, "devDependencies": { "@angular-devkit/build-angular": "~0.900.1", "@angular/cli": "~9.0.1", "@angular/compiler-cli": "~9.0.0", "@angular/language-service": "~9.0.0", "@types/node": "^12.11.1", "@types/jasmine": "~3.5.0", "@types/jasminewd2": "~2.0.3", "codelyzer": "^5.1.2", "jasmine-core": "~3.5.0", "jasmine-spec-reporter": "~4.2.1", "karma": "~4.3.0", "karma-chrome-launcher": "~3.1.0", "karma-coverage-istanbul-reporter": "~2.1.0", "karma-jasmine": "~2.0.1", "karma-jasmine-html-reporter": "^1.4.2", "ts-node": "~8.3.0", "tslint": "~5.18.0", "typescript": "~3.7.5" } } ================================================ FILE: scully/scully.hello.config.js ================================================ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.config = { projectRoot: "./src", projectName: "hello", outDir: './dist/static', routes: {} }; ================================================ FILE: scully/scully.hello.config.ts ================================================ import { ScullyConfig } from '@scullyio/scully'; export const config: ScullyConfig = { projectRoot: "./src", projectName: "hello", outDir: './dist/static', routes: { } }; ================================================ FILE: scully/src/app/app-routing.module.ts ================================================ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; const routes: Routes = [ { path: '', loadChildren: () => import('./app.module').then((m) => m.AppModule), }, ]; @NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule], }) export class AppRoutingModule {} ================================================ FILE: scully/src/app/app.component.ts ================================================ import { Component } from '@angular/core'; @Component({ selector: 'app-root', template: `
Hello {{ value }}
`, }) export class AppComponent { value = 'World'; } ================================================ FILE: scully/src/app/app.module.ts ================================================ import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { ScullyLibModule } from '@scullyio/ng-lib'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; @NgModule({ declarations: [AppComponent], imports: [AppRoutingModule, BrowserModule, ScullyLibModule], bootstrap: [AppComponent], }) export class AppModule {} ================================================ FILE: scully/src/assets/.gitkeep ================================================ ================================================ FILE: scully/src/assets/scully-routes.json ================================================ [{"route":"/"}] ================================================ FILE: scully/src/environments/environment.prod.ts ================================================ export const environment = { production: true }; ================================================ FILE: scully/src/environments/environment.ts ================================================ // This file can be replaced during build by using the `fileReplacements` array. // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. // The list of file replacements can be found in `angular.json`. export const environment = { production: false }; /* * For easier debugging in development mode, you can import the following file * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. * * This import should be commented out in production mode because it will have a negative impact * on performance if an error is thrown. */ // import 'zone.js/dist/zone-error'; // Included with Angular CLI. ================================================ FILE: scully/src/index.html ================================================ Hello ================================================ FILE: scully/src/main.ts ================================================ import { enableProdMode } from '@angular/core'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { AppModule } from './app/app.module'; import { environment } from './environments/environment'; if (environment.production) { enableProdMode(); } platformBrowserDynamic().bootstrapModule(AppModule) .catch(err => console.error(err)); ================================================ FILE: scully/src/polyfills.ts ================================================ /** * This file includes polyfills needed by Angular and is loaded before the app. * You can add your own extra polyfills to this file. * * This file is divided into 2 sections: * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. * 2. Application imports. Files imported after ZoneJS that should be loaded before your main * file. * * The current setup is for so-called "evergreen" browsers; the last versions of browsers that * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. * * Learn more in https://angular.io/guide/browser-support */ /*************************************************************************************************** * BROWSER POLYFILLS */ /** IE10 and IE11 requires the following for NgClass support on SVG elements */ // import 'classlist.js'; // Run `npm install --save classlist.js`. /** * Web Animations `@angular/platform-browser/animations` * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). */ // import 'web-animations-js'; // Run `npm install --save web-animations-js`. /** * By default, zone.js will patch all possible macroTask and DomEvents * user can disable parts of macroTask/DomEvents patch by setting following flags * because those flags need to be set before `zone.js` being loaded, and webpack * will put import in the top of bundle, so user need to create a separate file * in this directory (for example: zone-flags.ts), and put the following flags * into that file, and then add the following code before importing zone.js. * import './zone-flags.ts'; * * The flags allowed in zone-flags.ts are listed here. * * The following flags will work for all browsers. * * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames * * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js * with the following flag, it will bypass `zone.js` patch for IE/Edge * * (window as any).__Zone_enable_cross_context_check = true; * */ /*************************************************************************************************** * Zone JS is required by default for Angular itself. */ import 'zone.js/dist/zone'; // Included with Angular CLI. /*************************************************************************************************** * APPLICATION IMPORTS */ /*************************************************************************************************** * SCULLY IMPORTS */ // tslint:disable-next-line: align import 'zone.js/dist/task-tracking'; ================================================ FILE: scully/src/styles.css ================================================ ================================================ FILE: scully/src/test.ts ================================================ // This file is required by karma.conf.js and loads recursively all the .spec and framework files import 'zone.js/dist/zone-testing'; import { getTestBed } from '@angular/core/testing'; import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing'; declare const require: { context(path: string, deep?: boolean, filter?: RegExp): { keys(): string[]; (id: string): T; }; }; // First, initialize the Angular testing environment. getTestBed().initTestEnvironment( BrowserDynamicTestingModule, platformBrowserDynamicTesting() ); // Then we find all the tests. const context = require.context('./', true, /\.spec\.ts$/); // And load the modules. context.keys().map(context); ================================================ FILE: scully/tsconfig.app.json ================================================ { "extends": "./tsconfig.json", "compilerOptions": { "outDir": "./out-tsc/app", "types": [] }, "files": [ "src/main.ts", "src/polyfills.ts" ], "include": [ "src/**/*.d.ts" ] } ================================================ FILE: scully/tsconfig.json ================================================ { "compileOnSave": false, "compilerOptions": { "baseUrl": "./", "outDir": "./dist/out-tsc", "sourceMap": true, "declaration": false, "downlevelIteration": true, "experimentalDecorators": true, "module": "esnext", "moduleResolution": "node", "importHelpers": true, "target": "es2015", "typeRoots": [ "node_modules/@types" ], "lib": [ "es2018", "dom" ] }, "angularCompilerOptions": { "fullTemplateTypeCheck": true, "strictInjectionParameters": true } } ================================================ FILE: scully/tsconfig.spec.json ================================================ { "extends": "./tsconfig.json", "compilerOptions": { "outDir": "./out-tsc/spec", "types": [ "jasmine", "node" ] }, "files": [ "src/test.ts", "src/polyfills.ts" ], "include": [ "src/**/*.spec.ts", "src/**/*.d.ts" ] } ================================================ FILE: scully/tslint.json ================================================ { "extends": "tslint:recommended", "rules": { "array-type": false, "arrow-parens": false, "deprecation": { "severity": "warning" }, "component-class-suffix": true, "contextual-lifecycle": true, "directive-class-suffix": true, "directive-selector": [ true, "attribute", "app", "camelCase" ], "component-selector": [ true, "element", "app", "kebab-case" ], "import-blacklist": [ true, "rxjs/Rx" ], "interface-name": false, "max-classes-per-file": false, "max-line-length": [ true, 140 ], "member-access": false, "member-ordering": [ true, { "order": [ "static-field", "instance-field", "static-method", "instance-method" ] } ], "no-consecutive-blank-lines": false, "no-console": [ true, "debug", "info", "time", "timeEnd", "trace" ], "no-empty": false, "no-inferrable-types": [ true, "ignore-params" ], "no-non-null-assertion": true, "no-redundant-jsdoc": true, "no-switch-case-fall-through": true, "no-var-requires": false, "object-literal-key-quotes": [ true, "as-needed" ], "object-literal-sort-keys": false, "ordered-imports": false, "quotemark": [ true, "single" ], "trailing-comma": false, "no-conflicting-lifecycle": true, "no-host-metadata-property": true, "no-input-rename": true, "no-inputs-metadata-property": true, "no-output-native": true, "no-output-on-prefix": true, "no-output-rename": true, "no-outputs-metadata-property": true, "template-banana-in-box": true, "template-no-negated-async": true, "use-lifecycle-interface": true, "use-pipe-transform-interface": true }, "rulesDirectory": [ "codelyzer" ] } ================================================ FILE: stencil/.editorconfig ================================================ # http://editorconfig.org root = true [*] charset = utf-8 indent_style = space indent_size = 2 end_of_line = lf insert_final_newline = true trim_trailing_whitespace = true [*.md] insert_final_newline = false trim_trailing_whitespace = false ================================================ FILE: stencil/.gitignore ================================================ dist/ !www/favicon.ico www/ *~ *.sw[mnpcod] *.log *.lock *.tmp *.tmp.* log.txt *.sublime-project *.sublime-workspace .stencil/ .idea/ .vscode/ .sass-cache/ .versions/ node_modules/ $RECYCLE.BIN/ .DS_Store Thumbs.db UserInterfaceState.xcuserstate .env ================================================ FILE: stencil/LICENSE ================================================ MIT License Copyright (c) 2019 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: stencil/package.json ================================================ { "name": "hello-stencil", "private": true, "version": "0.0.1", "description": "Stencil App Starter", "scripts": { "build": "stencil build", "start": "stencil build --dev --watch --serve", "generate": "stencil generate" }, "devDependencies": { "@stencil/core": "^1.12.2", "@stencil/router": "^1.0.1" }, "license": "MIT" } ================================================ FILE: stencil/readme.md ================================================ # Stencil App Starter Stencil is a compiler for building fast web apps using Web Components. Stencil combines the best concepts of the most popular frontend frameworks into a compile-time rather than run-time tool. Stencil takes TypeScript, JSX, a tiny virtual DOM layer, efficient one-way data binding, an asynchronous rendering pipeline (similar to React Fiber), and lazy-loading out of the box, and generates 100% standards-based Web Components that run in any browser supporting the Custom Elements v1 spec. Stencil components are just Web Components, so they work in any major framework or with no framework at all. In many cases, Stencil can be used as a drop in replacement for traditional frontend frameworks given the capabilities now available in the browser, though using it as such is certainly not required. Stencil also enables a number of key capabilities on top of Web Components, in particular Server Side Rendering (SSR) without the need to run a headless browser, pre-rendering, and objects-as-properties (instead of just strings). ## Getting Started To start a new project using Stencil, clone this repo to a new directory: ```bash npm init stencil app ``` and run: ```bash npm start ``` To build the app for production, run: ```bash npm run build ``` To run the unit tests once, run: ``` npm test ``` To run the unit tests and watch for file changes during development, run: ``` npm run test.watch ``` ================================================ FILE: stencil/src/components/app-root/app-root.css ================================================ ================================================ FILE: stencil/src/components/app-root/app-root.tsx ================================================ import { Component, h } from "@stencil/core"; @Component({ tag: "app-root", shadow: true, }) export class AppRoot { name = "World"; render() { return
Hello {this.name}
; } } ================================================ FILE: stencil/src/components.d.ts ================================================ /* eslint-disable */ /* tslint:disable */ /** * This is an autogenerated file created by the Stencil compiler. * It contains typing information for all components that exist in this project. */ import { HTMLStencilElement, JSXBase } from "@stencil/core/internal"; export namespace Components { interface AppRoot { } } declare global { interface HTMLAppRootElement extends Components.AppRoot, HTMLStencilElement { } var HTMLAppRootElement: { prototype: HTMLAppRootElement; new (): HTMLAppRootElement; }; interface HTMLElementTagNameMap { "app-root": HTMLAppRootElement; } } declare namespace LocalJSX { interface AppRoot { } interface IntrinsicElements { "app-root": AppRoot; } } export { LocalJSX as JSX }; declare module "@stencil/core" { export namespace JSX { interface IntrinsicElements { "app-root": LocalJSX.AppRoot & JSXBase.HTMLAttributes; } } } ================================================ FILE: stencil/src/index.html ================================================ Stencil Starter App ================================================ FILE: stencil/src/index.ts ================================================ export * from "./components"; import "@stencil/router"; ================================================ FILE: stencil/src/manifest.json ================================================ { "name": "Stencil Starter", "short_name": "Stencil", "start_url": "/", "display": "standalone", "icons": [{ "src": "assets/icon/icon.png", "sizes": "512x512", "type": "image/png" }], "background_color": "#16161d", "theme_color": "#16161d" } ================================================ FILE: stencil/stencil.config.ts ================================================ import { Config } from '@stencil/core'; // https://stenciljs.com/docs/config export const config: Config = { taskQueue: 'async', outputTargets: [ { type: 'www', // comment the following line to disable service workers in production serviceWorker: null, baseUrl: 'https://myapp.local/' } ] }; ================================================ FILE: stencil/tsconfig.json ================================================ { "compilerOptions": { "allowSyntheticDefaultImports": true, "allowUnreachableCode": false, "declaration": false, "experimentalDecorators": true, "lib": [ "dom", "es2015" ], "moduleResolution": "node", "module": "esnext", "target": "es2017", "noUnusedLocals": true, "noUnusedParameters": true, "jsx": "react", "jsxFactory": "h" }, "include": [ "src" ], "exclude": [ "node_modules" ] } ================================================ FILE: svelte/.gitignore ================================================ /node_modules/ /public/build/ .DS_Store ================================================ FILE: svelte/README.md ================================================ *Looking for a shareable component template? Go here --> [sveltejs/component-template](https://github.com/sveltejs/component-template)* --- # svelte app This is a project template for [Svelte](https://svelte.dev) apps. It lives at https://github.com/sveltejs/template. To create a new project based on this template using [degit](https://github.com/Rich-Harris/degit): ```bash npx degit sveltejs/template svelte-app cd svelte-app ``` *Note that you will need to have [Node.js](https://nodejs.org) installed.* ## Get started Install the dependencies... ```bash cd svelte-app npm install ``` ...then start [Rollup](https://rollupjs.org): ```bash npm run dev ``` Navigate to [localhost:5000](http://localhost:5000). You should see your app running. Edit a component file in `src`, save it, and reload the page to see your changes. By default, the server will only respond to requests from localhost. To allow connections from other computers, edit the `sirv` commands in package.json to include the option `--host 0.0.0.0`. ## Building and running in production mode To create an optimised version of the app: ```bash npm run build ``` You can run the newly built app with `npm run start`. This uses [sirv](https://github.com/lukeed/sirv), which is included in your package.json's `dependencies` so that the app will work when you deploy to platforms like [Heroku](https://heroku.com). ## Single-page app mode By default, sirv will only respond to requests that match files in `public`. This is to maximise compatibility with static fileservers, allowing you to deploy your app anywhere. If you're building a single-page app (SPA) with multiple routes, sirv needs to be able to respond to requests for *any* path. You can make it so by editing the `"start"` command in package.json: ```js "start": "sirv public --single" ``` ## Deploying to the web ### With [now](https://zeit.co/now) Install `now` if you haven't already: ```bash npm install -g now ``` Then, from within your project folder: ```bash cd public now deploy --name my-project ``` As an alternative, use the [Now desktop client](https://zeit.co/download) and simply drag the unzipped project folder to the taskbar icon. ### With [surge](https://surge.sh/) Install `surge` if you haven't already: ```bash npm install -g surge ``` Then, from within your project folder: ```bash npm run build surge public my-project.surge.sh ``` ================================================ FILE: svelte/index.html ================================================ Hello Svelte
================================================ FILE: svelte/package.json ================================================ { "name": "hello-svelte", "version": "1.0.0", "private": true, "type": "module", "scripts": { "dev": "vite dev", "build": "vite build", "preview": "vite preview" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", "svelte": "^5.33.0", "vite": "^6.3.5" } } ================================================ FILE: svelte/src/App.svelte ================================================
Hello {value}
================================================ FILE: svelte/src/main.js ================================================ import App from './App.svelte'; import { mount } from 'svelte'; const app = mount(App, { target: document.getElementById('app'), }); export default app; ================================================ FILE: svelte/svelte.config.js ================================================ import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; export default { preprocess: vitePreprocess(), }; ================================================ FILE: svelte/vite.config.js ================================================ import { defineConfig } from 'vite'; import { svelte } from '@sveltejs/vite-plugin-svelte'; export default defineConfig({ plugins: [svelte()], }); ================================================ FILE: threejs/index.html ================================================ ================================================ FILE: typescript/copy-index.js ================================================ const fs = require('fs'); fs.createReadStream("./index.html").pipe(fs.createWriteStream("./dist/index.html")); ================================================ FILE: typescript/index.html ================================================ Hello Typescript
================================================ FILE: typescript/package.json ================================================ { "name": "hello-typescript", "version": "1.0.0", "description": "Hello World app in TypeScript", "main": "index.js", "scripts": { "build": "tsc && node ./copy-index.js", "start": "tsc --watch" }, "keywords": [], "author": "Bertrand Tchoumkeu", "license": "MIT", "devDependencies": { "typescript": "^3.9.3" } } ================================================ FILE: typescript/src/app.ts ================================================ const hello$ = document.querySelector("#hello"); if (hello$) { hello$.textContent = "Hello World"; } ================================================ FILE: typescript/tsconfig.json ================================================ { "compilerOptions": { "target": "es5", "outDir": "./dist", "strict": true }, "include": ["src/**/*"] } ================================================ FILE: vue/.gitignore ================================================ .DS_Store node_modules /dist # local env files .env.local .env.*.local # Log files npm-debug.log* yarn-debug.log* yarn-error.log* # Editor directories and files .idea .vscode *.suo *.ntvs* *.njsproj *.sln *.sw? ================================================ FILE: vue/README.md ================================================ # hello ## Project setup ``` npm install ``` ### Compiles and hot-reloads for development ``` npm run serve ``` ### Compiles and minifies for production ``` npm run build ``` ### Lints and fixes files ``` npm run lint ``` ### Customize configuration See [Configuration Reference](https://cli.vuejs.org/config/). ================================================ FILE: vue/index.html ================================================ Hello Vue
================================================ FILE: vue/package.json ================================================ { "name": "hello-vue", "version": "0.1.0", "private": true, "type": "module", "scripts": { "dev": "vite", "build": "vite build", "preview": "vite preview" }, "dependencies": { "vue": "^3.5.13" }, "devDependencies": { "@vitejs/plugin-vue": "^5.2.4", "vite": "^6.3.5" } } ================================================ FILE: vue/src/App.vue ================================================ ================================================ FILE: vue/src/main.js ================================================ import { createApp } from 'vue'; import App from './App.vue'; createApp(App).mount('#app'); ================================================ FILE: vue/vite.config.js ================================================ import { defineConfig } from 'vite'; import vue from '@vitejs/plugin-vue'; export default defineConfig({ plugins: [vue()], }); ================================================ FILE: vuepress/.gitignore ================================================ /node_modules /dist ================================================ FILE: vuepress/docs/README.md ================================================ # Hello World ================================================ FILE: vuepress/package.json ================================================ { "name": "hello-vuepress", "version": "0.0.0", "scripts": { "start": "vuepress dev docs", "build": "vuepress build docs -d dist" }, "devDependencies": { "vuepress": "^1.5.0" } } ================================================ FILE: web-component/index.html ================================================ Web Component - Hello World ================================================ FILE: web-component/script.js ================================================ class HelloWorld extends HTMLElement { constructor() { super(); console.log('constructor()'); const shadowRoot = this.attachShadow({ mode: 'open' }).appendChild(this.render()); } static is() { return 'hello-world'; } static get observedAttributes() { return [ 'name' ]; } style() { let style = document.createElement('style'); style.innerHTML = ` div { border: 2px solid var(--red); padding: 5px; } p { color: var(--red); } span.my-green { color: var(--my-green); } `; return style; } render() { let name = this.attributes.name ? this.attributes.name.value : 'World'; let template = document.createElement('div'); let content = document.createElement('p'); content.innerHTML = `Hello ${name}`; template.appendChild(this.style()); template.appendChild(content); this.shadowRoot.innerHTML = ''; return template; } attributeChangedCallback(name, oldValue, newValue) { console.log(arguments); if (name === 'name') { this.shadowRoot.appendChild(this.render()); } } connectedCallback() { console.log('connectedCallback()'); } disconnectedCallback() { console.log('disconnectedCallback()'); } } window.customElements.define(HelloWorld.is(), HelloWorld);