Full Code of johnpapa/hello-worlds for AI

main 70ce5406169b cached
393 files
333.9 KB
104.7k tokens
153 symbols
1 requests
Download .txt
Showing preview only (413K chars total). Download the full file or copy to clipboard to get everything.
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?

<!-- Name of the framework folder (e.g., react, angular, vue) -->

## Describe the bug

<!-- A clear and concise description of what the bug is -->

## Steps to reproduce

1. `cd <project-folder>`
2. `npm install`
3. `npm start`
4. See error...

## Expected behavior

<!-- What you expected to happen -->

## Environment

- **OS:** <!-- e.g., macOS 14, Ubuntu 22.04, Windows 11 -->
- **Node.js version:** <!-- e.g., 20.11.0 -->
- **npm version:** <!-- e.g., 10.2.4 -->
- **Browser:** <!-- e.g., Chrome 122 -->

## Additional context

<!-- Add any other context, screenshots, or error logs -->


================================================
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 `<tech-name>`
- [ ] 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 <your-folder-to-serve>` 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 `<tech-name>`
- [ ] 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 <your-folder-to-serve>` 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 `<!DOCTYPE html>` 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 <project-folder>
npm install
npm start        # or npm run dev
```

To build for production:

```bash
cd <project-folder>
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 <project-folder>
npm install
npm run build           # if applicable
npx http-server <serve-folder>
```

## 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 <folder>`
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 `<framework-name>` (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.
# <meta name="keywords" content="my SEO keywords"/>
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.
# <meta name="keywords" content="my SEO keywords"/>
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)

## <a name="coc" > </a> Code of Conduct

Help us keep this project open and inclusive.Please read and follow our [Code of Conduct](./code_of_conduct).

## <a name="issue" > </a> 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.

## <a name="feature" > </a> 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).

## <a name="submit" > </a> Submission Guidelines

### <a name="submit-issue" > </a> 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).

### <a name="submit-pr" > </a> 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-BADGE:START - Do not remove or modify this section -->
[![All Contributors](https://img.shields.io/badge/all_contributors-29-blue.svg?style=flat-square)](#contributors)
<!-- ALL-CONTRIBUTORS-BADGE:END -->

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 `<tech-name>`
- [ ] add yourself using the all-contributors bot `@allcontributors please add @<your-github-account> 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 <your-folder-to-serve>` 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)):

<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
  <tr>
    <td align="center"><a href="http://johnpapa.net"><img src="https://avatars2.githubusercontent.com/u/1202528?v=4?s=100" width="100px;" alt=""/><br /><sub><b>John Papa</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=johnpapa" title="Code">💻</a></td>
    <td align="center"><a href="https://github.com/laurieontech"><img src="https://avatars3.githubusercontent.com/u/15000607?v=4?s=100" width="100px;" alt=""/><br /><sub><b>LB</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=laurieontech" title="Code">💻</a></td>
    <td align="center"><a href="https://simicode.me"><img src="https://avatars1.githubusercontent.com/u/25581792?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Simeon Udoh</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=simeon4real" title="Code">💻</a></td>
    <td align="center"><a href="https://twitter.com/ksivamuthu"><img src="https://avatars0.githubusercontent.com/u/4029525?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Sivamuthu Kumar</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=ksivamuthu" title="Code">💻</a></td>
    <td align="center"><a href="https://github.com/matiaskm"><img src="https://avatars3.githubusercontent.com/u/18614906?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Matias Kohan</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=matiaskm" title="Code">💻</a></td>
    <td align="center"><a href="https://github.com/Duraimurugan"><img src="https://avatars3.githubusercontent.com/u/7348388?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Duraimurugan</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=Duraimurugan" title="Code">💻</a></td>
    <td align="center"><a href="https://twitter.com/sinedied"><img src="https://avatars0.githubusercontent.com/u/593151?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Yohan Lasorsa</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=sinedied" title="Code">💻</a></td>
  </tr>
  <tr>
    <td align="center"><a href="https://wassim.dev"><img src="https://avatars2.githubusercontent.com/u/1699357?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Wassim Chegham</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=manekinekko" title="Code">💻</a></td>
    <td align="center"><a href="https://github.com/sandydoo"><img src="https://avatars3.githubusercontent.com/u/7572407?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Sander Melnikov</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=sandydoo" title="Code">💻</a></td>
    <td align="center"><a href="https://angularhive.com"><img src="https://avatars0.githubusercontent.com/u/29446574?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Udhayakumar Govindarajan</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=askudhay" title="Documentation">📖</a></td>
    <td align="center"><a href="https://behance.net/afifalfiano"><img src="https://avatars1.githubusercontent.com/u/47497276?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Afif Alfiano</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=afifalfiano" title="Code">💻</a></td>
    <td align="center"><a href="http://gilcreque.com"><img src="https://avatars2.githubusercontent.com/u/243234?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Gil Creque</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=gilcreque" title="Code">💻</a></td>
    <td align="center"><a href="https://github.com/afflexux"><img src="https://avatars0.githubusercontent.com/u/35804265?v=4?s=100" width="100px;" alt=""/><br /><sub><b>afflexux</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=afflexux" title="Code">💻</a></td>
    <td align="center"><a href="https://github.com/apps/allcontributors"><img src="https://avatars0.githubusercontent.com/in/23186?v=4?s=100" width="100px;" alt=""/><br /><sub><b>allcontributors[bot]</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=allcontributors[bot]" title="Documentation">📖</a></td>
  </tr>
  <tr>
    <td align="center"><a href="https://github.com/btchoum"><img src="https://avatars0.githubusercontent.com/u/9422996?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Bertrand Tchoumkeu</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=btchoum" title="Code">💻</a></td>
    <td align="center"><a href="https://medium.com/@webmaxru"><img src="https://avatars1.githubusercontent.com/u/1560278?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Maxim Salnikov</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=webmaxru" title="Code">💻</a></td>
    <td align="center"><a href="https://github.com/rgolea"><img src="https://avatars0.githubusercontent.com/u/8843202?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Rares Golea</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=rgolea" title="Code">💻</a></td>
    <td align="center"><a href="https://swank.dev/"><img src="https://avatars0.githubusercontent.com/u/18602728?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Brian Swank</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=bswank" title="Code">💻</a></td>
    <td align="center"><a href="https://codewithhugo.com"><img src="https://avatars1.githubusercontent.com/u/6459679?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Hugo</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=hugodf" title="Code">💻</a></td>
    <td align="center"><a href="https://noelmace.com"><img src="https://avatars3.githubusercontent.com/u/7578400?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Noël Macé</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=noelmace" title="Code">💻</a></td>
    <td align="center"><a href="https://github.com/wolfhoundjesse"><img src="https://avatars1.githubusercontent.com/u/13468509?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jesse M. Holmes</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=wolfhoundjesse" title="Code">💻</a></td>
  </tr>
  <tr>
    <td align="center"><a href="https://github.com/carlosroec"><img src="https://avatars0.githubusercontent.com/u/1981518?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Carlos G. Rodriguez</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=carlosroec" title="Code">💻</a></td>
    <td align="center"><a href="http://zaceno.github.io"><img src="https://avatars3.githubusercontent.com/u/2061445?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Zacharias Enochsson</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=zaceno" title="Code">💻</a></td>
    <td align="center"><a href="https://moemoe89.github.io"><img src="https://avatars0.githubusercontent.com/u/7221739?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Bismo Baruno</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=moemoe89" title="Code">💻</a></td>
    <td align="center"><a href="https://github.com/Filini"><img src="https://avatars1.githubusercontent.com/u/10072578?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Filippo Gualandi</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=Filini" title="Code">💻</a></td>
    <td align="center"><a href="https://twitter.com/mhartington"><img src="https://avatars3.githubusercontent.com/u/2835826?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mike Hartington</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=mhartington" title="Code">💻</a></td>
    <td align="center"><a href="https://github.com/aelgasser"><img src="https://avatars2.githubusercontent.com/u/3692722?v=4?s=100" width="100px;" alt=""/><br /><sub><b>aelgasser</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=aelgasser" title="Code">💻</a></td>
    <td align="center"><a href="http://www.sarbull.ro"><img src="https://avatars.githubusercontent.com/u/1864112?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Cezar Sîrbu</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=sarbull" title="Code">💻</a></td>
  </tr>
  <tr>
    <td align="center"><a href="https://github.com/Nicoss54"><img src="https://avatars.githubusercontent.com/u/24563545?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Nicoss54</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=Nicoss54" title="Code">💻</a></td>
    <td align="center"><a href="https://github.com/Yonet"><img src="https://avatars.githubusercontent.com/u/3523671?v=4" width="100px;" alt=""/><br /><sub><b>Yonet</b></sub></a><br /><a href="https://github.com/johnpapa/hello-worlds/commits?author=Yonet" title="Code">💻</a></td>
  </tr>
</table>

<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->

<!-- ALL-CONTRIBUTORS-LIST:END -->

This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!


================================================
FILE: alpine/index.html
================================================
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Hello World</title>
    <script type="module" src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js"></script>
    <!-- for IE11 support -->
    <script nomodule src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine-ie11.min.js" defer></script>
  </head>
  <body>
    <div x-data="{ value: 'World' }">
      <h1>Hello <span x-text="value"></span></h1>
    </div>
  </body>
</html>


================================================
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: `<div>Hello {{ value }}</div>`,
})
export class App {
  value = 'World';
}


================================================
FILE: angular/src/assets/.gitkeep
================================================


================================================
FILE: angular/src/index.html
================================================
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Hello</title>
  <base href="/">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
  <app-root></app-root>
</body>
</html>


================================================
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: `<div>Hello {{value}}</div>`,
})
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
================================================
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Hello</title>
  <base href="/">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
  <app-root></app-root>
</body>
</html>


================================================
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
================================================
<!DOCTYPE html>
<html>
	<head>
		<title>Hello World | angular.js</title>
		<script src="angular.min.js"></script>
	</head>
	<body ng-app="helloWorldApp" ng-controller="helloWorldCtrl">
	  <h1>{{::helloWorld}}</h1>
	</body>
	<script>
	var app = angular.module('helloWorldApp', []);
	app.controller('helloWorldCtrl', function($scope) {
		$scope.helloWorld= "Hello World";
	});
	</script>
</html>

================================================
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 `<template>
  <h1>\${message}</h1>
</template>
`
  }
}


================================================
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 `<template>
  <h1>\${value}</h1>
</template>
`;
  }
}


================================================
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
================================================
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title><%- htmlWebpackPlugin.options.metadata.title %></title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <base href="<%- htmlWebpackPlugin.options.metadata.baseUrl %>">
    <!-- imported CSS are concatenated and added automatically -->
  </head>
  <body aurelia-app="main">
  </body>
</html>


================================================
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
================================================
<template>
  <h1>${message}</h1>
</template>


================================================
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<any>;
    import(name: 'aurelia-framework'): Promise<typeof Aurelia>;
    import(name: 'isomorphic-fetch'): Promise<typeof fetch>;
  }

  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
================================================
<html>

    <head>
        <script src="https://cdn.babylonjs.com/babylon.js"></script>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Hello Babylon.js</title>
        <meta name="author" content="Ayşegül Yönet">
        <style>
            body,
            #renderCanvas {
                width: 100%;
                height: 100%;
                margin: 0;
            }
        </style>
    </head>

    <body>
        <canvas id="renderCanvas"></canvas>
        <script>
            const canvas = document.getElementById( "renderCanvas" );
            const engine = new BABYLON.Engine( canvas, true );

            const createScene = function () {
                const scene = new BABYLON.Scene( engine );

                const camera = new BABYLON.ArcRotateCamera( "camera", -Math.PI / 2, Math.PI / 2.5, 3, new BABYLON
                    .Vector3( 0, 0, 0 ) );

                camera.attachControl( canvas, true );

                const light = new BABYLON.HemisphericLight( "light", new BABYLON.Vector3( 0, 1, 0 ) );

                const box = BABYLON.MeshBuilder.CreateBox( "box", {} );

                return scene;
            };

            const sceneToRender = createScene();
            engine.runRenderLoop( function () {
                sceneToRender.render();
            } );
        </script>
    </body>

</html>

================================================
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
================================================
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Backbone.js - Hello World</title>
</head>
<body>
    <div id="app"></div>

    <script src="libs/jquery-3.5.1.min.js"></script>
    <script src="libs/underscore-min.js"></script>
    <script src="libs/backbone-min.js"></script>
    <script src="index.js"></script>
</body>
</html>

================================================
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);a<h.length;a++){e=u(t,e,h[a],n[h[a]],s)}}else if(n&&o.test(n)){for(h=n.split(o);a<h.length;a++){e=t(e,h[a],r,s)}}else{e=t(e,n,r,s)}return e};a.on=function(t,e,i){this._events=u(l,this._events||{},t,e,{context:i,ctx:this,listening:h});if(h){var n=this._listeners||(this._listeners={});n[h.id]=h;h.interop=false}return this};a.listenTo=function(t,e,n){if(!t)return this;var r=t._listenId||(t._listenId=i.uniqueId("l"));var s=this._listeningTo||(this._listeningTo={});var a=h=s[r];if(!a){this._listenId||(this._listenId=i.uniqueId("l"));a=h=s[r]=new g(this,t)}var o=c(t,e,n,this);h=void 0;if(o)throw o;if(a.interop)a.on(e,n);return this};var l=function(t,e,i,n){if(i){var r=t[e]||(t[e]=[]);var s=n.context,a=n.ctx,o=n.listening;if(o)o.count++;r.push({callback:i,context:s,ctx:s||a,listening:o})}return t};var c=function(t,e,i,n){try{t.on(e,i,n)}catch(r){return r}};a.off=function(t,e,i){if(!this._events)return this;this._events=u(f,this._events,t,e,{context:i,listeners:this._listeners});return this};a.stopListening=function(t,e,n){var r=this._listeningTo;if(!r)return this;var s=t?[t._listenId]:i.keys(r);for(var a=0;a<s.length;a++){var o=r[s[a]];if(!o)break;o.obj.off(e,n,this);if(o.interop)o.off(e,n)}if(i.isEmpty(r))this._listeningTo=void 0;return this};var f=function(t,e,n,r){if(!t)return;var s=r.context,a=r.listeners;var o=0,h;if(!e&&!s&&!n){for(h=i.keys(a);o<h.length;o++){a[h[o]].cleanup()}return}h=e?[e]:i.keys(t);for(;o<h.length;o++){e=h[o];var u=t[e];if(!u)break;var l=[];for(var c=0;c<u.length;c++){var f=u[c];if(n&&n!==f.callback&&n!==f.callback._callback||s&&s!==f.context){l.push(f)}else{var d=f.listening;if(d)d.off(e,n)}}if(l.length){t[e]=l}else{delete t[e]}}return t};a.once=function(t,e,i){var n=u(d,{},t,e,this.off.bind(this));if(typeof t==="string"&&i==null)e=void 0;return this.on(n,e,i)};a.listenToOnce=function(t,e,i){var n=u(d,{},e,i,this.stopListening.bind(this,t));return this.listenTo(t,n)};var d=function(t,e,n,r){if(n){var s=t[e]=i.once(function(){r(e,s);n.apply(this,arguments)});s._callback=n}return t};a.trigger=function(t){if(!this._events)return this;var e=Math.max(0,arguments.length-1);var i=Array(e);for(var n=0;n<e;n++)i[n]=arguments[n+1];u(v,this._events,t,void 0,i);return this};var v=function(t,e,i,n){if(t){var r=t[e];var s=t.all;if(r&&s)s=s.slice();if(r)p(r,n);if(s)p(s,[e].concat(n))}return t};var p=function(t,e){var i,n=-1,r=t.length,s=e[0],a=e[1],o=e[2];switch(e.length){case 0:while(++n<r)(i=t[n]).callback.call(i.ctx);return;case 1:while(++n<r)(i=t[n]).callback.call(i.ctx,s);return;case 2:while(++n<r)(i=t[n]).callback.call(i.ctx,s,a);return;case 3:while(++n<r)(i=t[n]).callback.call(i.ctx,s,a,o);return;default:while(++n<r)(i=t[n]).callback.apply(i.ctx,e);return}};var g=function(t,e){this.id=t._listenId;this.listener=t;this.obj=e;this.interop=true;this.count=0;this._events=void 0};g.prototype.on=a.on;g.prototype.off=function(t,e){var i;if(this.interop){this._events=u(f,this._events,t,e,{context:void 0,listeners:void 0});i=!this._events}else{this.count--;i=this.count===0}if(i)this.cleanup()};g.prototype.cleanup=function(){delete this.listener._listeningTo[this.obj._listenId];if(!this.interop)delete this.obj._listeners[this.id]};a.bind=a.on;a.unbind=a.off;i.extend(e,a);var m=e.Model=function(t,e){var n=t||{};e||(e={});this.preinitialize.apply(this,arguments);this.cid=i.uniqueId(this.cidPrefix);this.attributes={};if(e.collection)this.collection=e.collection;if(e.parse)n=this.parse(n,e)||{};var r=i.result(this,"defaults");n=i.defaults(i.extend({},r,n),r);this.set(n,e);this.changed={};this.initialize.apply(this,arguments)};i.extend(m.prototype,a,{changed:null,validationError:null,idAttribute:"id",cidPrefix:"c",preinitialize:function(){},initialize:function(){},toJSON:function(t){return i.clone(this.attributes)},sync:function(){return e.sync.apply(this,arguments)},get:function(t){return this.attributes[t]},escape:function(t){return i.escape(this.get(t))},has:function(t){return this.get(t)!=null},matches:function(t){return!!i.iteratee(t,this)(this.attributes)},set:function(t,e,n){if(t==null)return this;var r;if(typeof t==="object"){r=t;n=e}else{(r={})[t]=e}n||(n={});if(!this._validate(r,n))return false;var s=n.unset;var a=n.silent;var o=[];var h=this._changing;this._changing=true;if(!h){this._previousAttributes=i.clone(this.attributes);this.changed={}}var u=this.attributes;var l=this.changed;var c=this._previousAttributes;for(var f in r){e=r[f];if(!i.isEqual(u[f],e))o.push(f);if(!i.isEqual(c[f],e)){l[f]=e}else{delete l[f]}s?delete u[f]:u[f]=e}if(this.idAttribute in r)this.id=this.get(this.idAttribute);if(!a){if(o.length)this._pending=n;for(var d=0;d<o.length;d++){this.trigger("change:"+o[d],this,u[o[d]],n)}}if(h)return this;if(!a){while(this._pending){n=this._pending;this._pending=false;this.trigger("change",this,n)}}this._pending=false;this._changing=false;return this},unset:function(t,e){return this.set(t,void 0,i.extend({},e,{unset:true}))},clear:function(t){var e={};for(var n in this.attributes)e[n]=void 0;return this.set(e,i.extend({},t,{unset:true}))},hasChanged:function(t){if(t==null)return!i.isEmpty(this.changed);return i.has(this.changed,t)},changedAttributes:function(t){if(!t)return this.hasChanged()?i.clone(this.changed):false;var e=this._changing?this._previousAttributes:this.attributes;var n={};var r;for(var s in t){var a=t[s];if(i.isEqual(e[s],a))continue;n[s]=a;r=true}return r?n:false},previous:function(t){if(t==null||!this._previousAttributes)return null;return this._previousAttributes[t]},previousAttributes:function(){return i.clone(this._previousAttributes)},fetch:function(t){t=i.extend({parse:true},t);var e=this;var n=t.success;t.success=function(i){var r=t.parse?e.parse(i,t):i;if(!e.set(r,t))return false;if(n)n.call(t.context,e,i,t);e.trigger("sync",e,i,t)};G(this,t);return this.sync("read",this,t)},save:function(t,e,n){var r;if(t==null||typeof t==="object"){r=t;n=e}else{(r={})[t]=e}n=i.extend({validate:true,parse:true},n);var s=n.wait;if(r&&!s){if(!this.set(r,n))return false}else if(!this._validate(r,n)){return false}var a=this;var o=n.success;var h=this.attributes;n.success=function(t){a.attributes=h;var e=n.parse?a.parse(t,n):t;if(s)e=i.extend({},r,e);if(e&&!a.set(e,n))return false;if(o)o.call(n.context,a,t,n);a.trigger("sync",a,t,n)};G(this,n);if(r&&s)this.attributes=i.extend({},h,r);var u=this.isNew()?"create":n.patch?"patch":"update";if(u==="patch"&&!n.attrs)n.attrs=r;var l=this.sync(u,this,n);this.attributes=h;return l},destroy:function(t){t=t?i.clone(t):{};var e=this;var n=t.success;var r=t.wait;var s=function(){e.stopListening();e.trigger("destroy",e,e.collection,t)};t.success=function(i){if(r)s();if(n)n.call(t.context,e,i,t);if(!e.isNew())e.trigger("sync",e,i,t)};var a=false;if(this.isNew()){i.defer(t.success)}else{G(this,t);a=this.sync("delete",this,t)}if(!r)s();return a},url:function(){var t=i.result(this,"urlRoot")||i.result(this.collection,"url")||V();if(this.isNew())return t;var e=this.get(this.idAttribute);return t.replace(/[^\/]$/,"$&/")+encodeURIComponent(e)},parse:function(t,e){return t},clone:function(){return new this.constructor(this.attributes)},isNew:function(){return!this.has(this.idAttribute)},isValid:function(t){return this._validate({},i.extend({},t,{validate:true}))},_validate:function(t,e){if(!e.validate||!this.validate)return true;t=i.extend({},this.attributes,t);var n=this.validationError=this.validate(t,e)||null;if(!n)return true;this.trigger("invalid",this,n,i.extend(e,{validationError:n}));return false}});var _=e.Collection=function(t,e){e||(e={});this.preinitialize.apply(this,arguments);if(e.model)this.model=e.model;if(e.comparator!==void 0)this.comparator=e.comparator;this._reset();this.initialize.apply(this,arguments);if(t)this.reset(t,i.extend({silent:true},e))};var y={add:true,remove:true,merge:true};var b={add:true,remove:false};var x=function(t,e,i){i=Math.min(Math.max(i,0),t.length);var n=Array(t.length-i);var r=e.length;var s;for(s=0;s<n.length;s++)n[s]=t[s+i];for(s=0;s<r;s++)t[s+i]=e[s];for(s=0;s<n.length;s++)t[s+r+i]=n[s]};i.extend(_.prototype,a,{model:m,preinitialize:function(){},initialize:function(){},toJSON:function(t){return this.map(function(e){return e.toJSON(t)})},sync:function(){return e.sync.apply(this,arguments)},add:function(t,e){return this.set(t,i.extend({merge:false},e,b))},remove:function(t,e){e=i.extend({},e);var n=!i.isArray(t);t=n?[t]:t.slice();var r=this._removeModels(t,e);if(!e.silent&&r.length){e.changes={added:[],merged:[],removed:r};this.trigger("update",this,e)}return n?r[0]:r},set:function(t,e){if(t==null)return;e=i.extend({},y,e);if(e.parse&&!this._isModel(t)){t=this.parse(t,e)||[]}var n=!i.isArray(t);t=n?[t]:t.slice();var r=e.at;if(r!=null)r=+r;if(r>this.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;m<t.length;m++){g=t[m];var _=this.get(g);if(_){if(c&&g!==_){var b=this._isModel(g)?g.attributes:g;if(e.parse)b=_.parse(b,e);_.set(b,e);o.push(_);if(v&&!d)d=_.hasChanged(p)}if(!u[_.cid]){u[_.cid]=true;s.push(_)}t[m]=_}else if(l){g=t[m]=this._prepareModel(g,e);if(g){a.push(g);this._addReference(g,e);u[g.cid]=true;s.push(g)}}}if(f){for(m=0;m<this.length;m++){g=this.models[m];if(!u[g.cid])h.push(g)}if(h.length)this._removeModels(h,e)}var w=false;var E=!v&&l&&f;if(s.length&&E){w=this.length!==s.length||i.some(this.models,function(t,e){return t!==s[e]});this.models.length=0;x(this.models,s,0);this.length=this.models.length}else if(a.length){if(v)d=true;x(this.models,a,r==null?this.length:r);this.length=this.models.length}if(d)this.sort({silent:true});if(!e.silent){for(m=0;m<a.length;m++){if(r!=null)e.index=r+m;g=a[m];g.trigger("add",g,this,e)}if(d||w)this.trigger("sort",this,e);if(a.length||h.length||o.length){e.changes={added:a,removed:h,merged:o};this.trigger("update",this,e)}}return n?t[0]:t},reset:function(t,e){e=e?i.clone(e):{};for(var n=0;n<this.models.length;n++){this._removeReference(this.models[n],e)}e.previousModels=this.models;this._reset();t=this.add(t,i.extend({silent:true},e));if(!e.silent)this.trigger("reset",this,e);return t},push:function(t,e){return this.add(t,i.extend({at:this.length},e))},pop:function(t){var e=this.at(this.length-1);return this.remove(e,t)},unshift:function(t,e){return this.add(t,i.extend({at:0},e))},shift:function(t){var e=this.at(0);return this.remove(e,t)},slice:function(){return s.apply(this.models,arguments)},get:function(t){if(t==null)return void 0;return this._byId[t]||this._byId[this.modelId(this._isModel(t)?t.attributes:t)]||t.cid&&this._byId[t.cid]},has:function(t){return this.get(t)!=null},at:function(t){if(t<0)t+=this.length;return this.models[t]},where:function(t,e){return this[e?"find":"filter"](t)},findWhere:function(t){return this.where(t,true)},sort:function(t){var e=this.comparator;if(!e)throw new Error("Cannot sort a set without a comparator");t||(t={});var n=e.length;if(i.isFunction(e))e=e.bind(this);if(n===1||i.isString(e)){this.models=this.sortBy(e)}else{this.models.sort(e)}if(!t.silent)this.trigger("sort",this,t);return this},pluck:function(t){return this.map(t+"")},fetch:function(t){t=i.extend({parse:true},t);var e=t.success;var n=this;t.success=function(i){var r=t.reset?"reset":"set";n[r](i,t);if(e)e.call(t.context,n,i,t);n.trigger("sync",n,i,t)};G(this,t);return this.sync("read",this,t)},create:function(t,e){e=e?i.clone(e):{};var n=e.wait;t=this._prepareModel(t,e);if(!t)return false;if(!n)this.add(t,e);var r=this;var s=e.success;e.success=function(t,e,i){if(n)r.add(t,i);if(s)s.call(i.context,t,e,i)};t.save(null,e);return t},parse:function(t,e){return t},clone:function(){return new this.constructor(this.models,{model:this.model,comparator:this.comparator})},modelId:function(t){return t[this.model.prototype.idAttribute||"id"]},values:function(){return new E(this,k)},keys:function(){return new E(this,I)},entries:function(){return new E(this,S)},_reset:function(){this.length=0;this.models=[];this._byId={}},_prepareModel:function(t,e){if(this._isModel(t)){if(!t.collection)t.collection=this;return t}e=e?i.clone(e):{};e.collection=this;var n=new this.model(t,e);if(!n.validationError)return n;this.trigger("invalid",this,n.validationError,e);return false},_removeModels:function(t,e){var i=[];for(var n=0;n<t.length;n++){var r=this.get(t[n]);if(!r)continue;var s=this.indexOf(r);this.models.splice(s,1);this.length--;delete this._byId[r.cid];var a=this.modelId(r.attributes);if(a!=null)delete this._byId[a];if(!e.silent){e.index=s;r.trigger("remove",r,this,e)}i.push(r);this._removeReference(r,e)}return i},_isModel:function(t){return t instanceof m},_addReference:function(t,e){this._byId[t.cid]=t;var i=this.modelId(t.attributes);if(i!=null)this._byId[i]=t;t.on("all",this._onModelEvent,this)},_removeReference:function(t,e){delete this._byId[t.cid];var i=this.modelId(t.attributes);if(i!=null)delete this._byId[i];if(this===t.collection)delete t.collection;t.off("all",this._onModelEvent,this)},_onModelEvent:function(t,e,i,n){if(e){if((t==="add"||t==="remove")&&i!==this)return;if(t==="destroy")this.remove(e,n);if(t==="change"){var r=this.modelId(e.previousAttributes());var s=this.modelId(e.attributes);if(r!==s){if(r!=null)delete this._byId[r];if(s!=null)this._byId[s]=e}}}this.trigger.apply(this,arguments)}});var w=typeof Symbol==="function"&&Symbol.iterator;if(w){_.prototype[w]=_.prototype.values}var E=function(t,e){this._collection=t;this._kind=e;this._index=0};var k=1;var I=2;var S=3;if(w){E.prototype[w]=function(){return this}}E.prototype.next=function(){if(this._collection){if(this._index<this._collection.length){var t=this._collection.at(this._index);this._index++;var e;if(this._kind===k){e=t}else{var i=this._collection.modelId(t.attributes);if(this._kind===I){e=i}else{e=[i,t]}}return{value:e,done:false}}this._collection=void 0}return{value:void 0,done:true}};var T=e.View=function(t){this.cid=i.uniqueId("view");this.preinitialize.apply(this,arguments);i.extend(this,i.pick(t,H));this._ensureElement();this.initialize.apply(this,arguments)};var P=/^(\S+)\s*(.*)$/;var H=["model","collection","el","id","attributes","className","tagName","events"];i.extend(T.prototype,a,{tagName:"div",$:function(t){return this.$el.find(t)},preinitialize:function(){},initialize:function(){},render:function(){return this},remove:function(){this._removeElement();this.stopListening();return this},_removeElement:function(){this.$el.remove()},setElement:function(t){this.undelegateEvents();this._setElement(t);this.delegateEvents();return this},_setElement:function(t){this.$el=t instanceof e.$?t:e.$(t);this.el=this.$el[0]},delegateEvents:function(t){t||(t=i.result(this,"events"));if(!t)return this;this.undelegateEvents();for(var e in t){var n=t[e];if(!i.isFunction(n))n=this[n];if(!n)continue;var r=e.match(P);this.delegate(r[1],r[2],n.bind(this))}return this},delegate:function(t,e,i){this.$el.on(t+".delegateEvents"+this.cid,e,i);return this},undelegateEvents:function(){if(this.$el)this.$el.off(".delegateEvents"+this.cid);return this},undelegate:function(t,e,i){this.$el.off(t+".delegateEvents"+this.cid,e,i);return this},_createElement:function(t){return document.createElement(t)},_ensureElement:function(){if(!this.el){var t=i.extend({},i.result(this,"attributes"));if(this.id)t.id=i.result(this,"id");if(this.className)t["class"]=i.result(this,"className");this.setElement(this._createElement(i.result(this,"tagName")));this._setAttributes(t)}else{this.setElement(i.result(this,"el"))}},_setAttributes:function(t){this.$el.attr(t)}});var $=function(t,e,i,n){switch(e){case 1:return function(){return t[i](this[n])};case 2:return function(e){return t[i](this[n],e)};case 3:return function(e,r){return t[i](this[n],C(e,this),r)};case 4:return function(e,r,s){return t[i](this[n],C(e,this),r,s)};default:return function(){var e=s.call(arguments);e.unshift(this[n]);return t[i].apply(t,e)}}};var A=function(t,e,n,r){i.each(n,function(i,n){if(e[n])t.prototype[n]=$(e,i,n,r)})};var C=function(t,e){if(i.isFunction(t))return t;if(i.isObject(t)&&!e._isModel(t))return R(t);if(i.isString(t))return function(e){return e.get(t)};return t};var R=function(t){var e=i.matches(t);return function(t){return e(t.attributes)}};var M={forEach:3,each:3,map:3,collect:3,reduce:0,foldl:0,inject:0,reduceRight:0,foldr:0,find:3,detect:3,filter:3,select:3,reject:3,every:3,all:3,some:3,any:3,include:3,includes:3,contains:3,invoke:0,max:3,min:3,toArray:1,size:1,first:3,head:3,take:3,initial:3,rest:3,tail:3,drop:3,last:3,without:0,difference:0,indexOf:3,shuffle:1,lastIndexOf:3,isEmpty:1,chain:1,sample:3,partition:3,groupBy:3,countBy:3,sortBy:3,indexBy:3,findIndex:3,findLastIndex:3};var N={keys:1,values:1,pairs:1,invert:1,pick:0,omit:0,chain:1,isEmpty:1};i.each([[_,M,"models"],[m,N,"attributes"]],function(t){var e=t[0],n=t[1],r=t[2];e.mixin=function(t){var n=i.reduce(i.functions(t),function(t,e){t[e]=0;return t},{});A(e,t,n,r)};A(e,i,n,r)});e.sync=function(t,n,r){var s=j[t];i.defaults(r||(r={}),{emulateHTTP:e.emulateHTTP,emulateJSON:e.emulateJSON});var a={type:s,dataType:"json"};if(!r.url){a.url=i.result(n,"url")||V()}if(r.data==null&&n&&(t==="create"||t==="update"||t==="patch")){a.contentType="application/json";a.data=JSON.stringify(r.attrs||n.toJSON(r))}if(r.emulateJSON){a.contentType="application/x-www-form-urlencoded";a.data=a.data?{model:a.data}:{}}if(r.emulateHTTP&&(s==="PUT"||s==="DELETE"||s==="PATCH")){a.type="POST";if(r.emulateJSON)a.data._method=s;var o=r.beforeSend;r.beforeSend=function(t){t.setRequestHeader("X-HTTP-Method-Override",s);if(o)return o.apply(this,arguments)}}if(a.type!=="GET"&&!r.emulateJSON){a.processData=false}var h=r.error;r.error=function(t,e,i){r.textStatus=e;r.errorThrown=i;if(h)h.call(r.context,t,e,i)};var u=r.xhr=e.ajax(i.extend(a,r));n.trigger("request",n,u,r);return u};var j={create:"POST",update:"PUT",patch:"PATCH","delete":"DELETE",read:"GET"};e.ajax=function(){return e.$.ajax.apply(e.$,arguments)};var O=e.Router=function(t){t||(t={});this.preinitialize.apply(this,arguments);if(t.routes)this.routes=t.routes;this._bindRoutes();this.initialize.apply(this,arguments)};var U=/\((.*?)\)/g;var z=/(\(\?)?:\w+/g;var q=/\*\w+/g;var F=/[\-{}\[\]+?.,\\\^$|#\s]/g;i.extend(O.prototype,a,{preinitialize:function(){},initialize:function(){},route:function(t,n,r){if(!i.isRegExp(t))t=this._routeToRegExp(t);if(i.isFunction(n)){r=n;n=""}if(!r)r=this[n];var s=this;e.history.route(t,function(i){var a=s._extractParameters(t,i);if(s.execute(r,a,n)!==false){s.trigger.apply(s,["route:"+n].concat(a));s.trigger("route",n,a);e.history.trigger("route",s,n,a)}});return this},execute:function(t,e,i){if(t)t.apply(this,e)},navigate:function(t,i){e.history.navigate(t,i);return this},_bindRoutes:function(){if(!this.routes)return;this.routes=i.result(this,"routes");var t,e=i.keys(this.routes);while((t=e.pop())!=null){this.route(t,this.routes[t])}},_routeToRegExp:function(t){t=t.replace(F,"\\$&").replace(U,"(?:$1)?").replace(z,function(t,e){return e?t:"([^/?]+)"}).replace(q,"([^?]*?)");return new RegExp("^"+t+"(?:\\?([\\s\\S]*))?$")},_extractParameters:function(t,e){var n=t.exec(e).slice(1);return i.map(n,function(t,e){if(e===n.length-1)return t||null;return t?decodeURIComponent(t):null})}});var B=e.History=function(){this.handlers=[];this.checkUrl=this.checkUrl.bind(this);if(typeof window!=="undefined"){this.location=window.location;this.history=window.history}};var J=/^[#\/]|\s+$/g;var L=/^\/+|\/+$/g;var W=/#.*$/;B.started=false;i.extend(B.prototype,a,{interval:50,atRoot:function(){var t=this.location.pathname.replace(/[^\/]$/,"$&/");return t===this.root&&!this.getSearch()},matchRoot:function(){var t=this.decodeFragment(this.location.pathname);var e=t.slice(0,this.root.length-1)+"/";return e===this.root},decodeFragment:function(t){return decodeURI(t.replace(/%25/g,"%2525"))},getSearch:function(){var t=this.location.href.replace(/#.*/,"").match(/\?.+/);return t?t[0]:""},getHash:function(t){var e=(t||this).location.href.match(/#(.*)$/);return e?e[1]:""},getPath:function(){var t=this.decodeFragment(this.location.pathname+this.getSearch()).slice(this.root.length-1);return t.charAt(0)==="/"?t.slice(1):t},getFragment:function(t){if(t==null){if(this._usePushState||!this._wantsHashChange){t=this.getPath()}else{t=this.getHash()}}return t.replace(J,"")},start:function(t){if(B.started)throw new Error("Backbone.history has already been started");B.started=true;this.options=i.extend({root:"/"},this.options,t);this.root=this.options.root;this._wantsHashChange=this.options.hashChange!==false;this._hasHashChange="onhashchange"in window&&(document.documentMode===void 0||document.documentMode>7);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<n;t++)r[t]=arguments[t+o];switch(o){case 0:return u.call(this,r);case 1:return u.call(this,arguments[0],r);case 2:return u.call(this,arguments[0],arguments[1],r)}var e=Array(o+1);for(t=0;t<o;t++)e[t]=arguments[t];return e[o]=r,u.apply(this,e)}}function _(n){if(!Ln(n))return{};if(t)return t(n);v.prototype=n;var r=new v;return v.prototype=null,r}function w(r){return function(n){return null==n?void 0:n[r]}}function x(n,r){return null!=n&&o.call(n,r)}function S(n,r){for(var t=r.length,e=0;e<t;e++){if(null==n)return;n=n[r[e]]}return t?n:void 0}h.iteratee=m;var A=Math.pow(2,53)-1,O=w("length");function M(n){var r=O(n);return"number"==typeof r&&0<=r&&r<=A}function E(n,r,t){var e,u;if(r=y(r,t),M(n))for(e=0,u=n.length;e<u;e++)r(n[e],e,n);else{var o=Sn(n);for(e=0,u=o.length;e<u;e++)r(n[o[e]],o[e],n)}return n}function N(n,r,t){r=b(r,t);for(var e=!M(n)&&Sn(n),u=(e||n).length,o=Array(u),i=0;i<u;i++){var a=e?e[i]:i;o[i]=r(n[a],a,n)}return o}function k(f){return function(n,r,t,e){var u=3<=arguments.length;return function(n,r,t,e){var u=!M(n)&&Sn(n),o=(u||n).length,i=0<f?0:o-1;for(e||(t=n[u?u[i]:i],i+=f);0<=i&&i<o;i+=f){var a=u?u[i]:i;t=r(t,n[a],a,n)}return t}(n,y(r,e,4),t,u)}}var I=k(1),T=k(-1);function B(n,r,t){var e=(M(n)?on:Tn)(n,r,t);if(void 0!==e&&-1!==e)return n[e]}function R(n,e,r){var u=[];return e=b(e,r),E(n,function(n,r,t){e(n,r,t)&&u.push(n)}),u}function F(n,r,t){r=b(r,t);for(var e=!M(n)&&Sn(n),u=(e||n).length,o=0;o<u;o++){var i=e?e[o]:o;if(!r(n[i],i,n))return!1}return!0}function q(n,r,t){r=b(r,t);for(var e=!M(n)&&Sn(n),u=(e||n).length,o=0;o<u;o++){var i=e?e[o]:o;if(r(n[i],i,n))return!0}return!1}function D(n,r,t,e){return M(n)||(n=On(n)),("number"!=typeof t||e)&&(t=0),0<=ln(n,r,t)}var W=j(function(n,t,e){var u,o;return Cn(t)?o=t:Kn(t)&&(u=t.slice(0,-1),t=t[t.length-1]),N(n,function(n){var r=o;if(!r){if(u&&u.length&&(n=S(n,u)),null==n)return;r=n[t]}return null==r?r:r.apply(n,e)})});function z(n,r){return N(n,or(r))}function P(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;a<f;a++)null!=(t=n[a])&&o<t&&(o=t);else e=b(e,r),E(n,function(n,r,t){u=e(n,r,t),(i<u||u===-1/0&&o===-1/0)&&(o=n,i=u)});return o}function K(n,r,t){if(null==r||t)return M(n)||(n=On(n)),n[ar(n.length-1)];var e=M(n)?Dn(n):On(n),u=O(e);r=Math.max(Math.min(r,u),0);for(var o=u-1,i=0;i<r;i++){var a=ar(i,o),f=e[i];e[i]=e[a],e[a]=f}return e.slice(0,r)}function L(i,r){return function(e,u,n){var o=r?[[],[]]:{};return u=b(u,n),E(e,function(n,r){var t=u(n,r,e);i(o,n,t)}),o}}var V=L(function(n,r,t){x(n,t)?n[t].push(r):n[t]=[r]}),C=L(function(n,r,t){n[t]=r}),J=L(function(n,r,t){x(n,t)?n[t]++:n[t]=1}),U=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;var $=L(function(n,r,t){n[t?0:1].push(r)},!0);function G(n,r,t){return null==n||n.length<1?null==r?void 0:[]:null==r||t?n[0]:H(n,n.length-r)}function H(n,r,t){return f.call(n,0,Math.max(0,n.length-(null==r||t?1:r)))}function Q(n,r,t){return f.call(n,null==r||t?1:r)}function X(n,r,t,e){for(var u=(e=e||[]).length,o=0,i=O(n);o<i;o++){var a=n[o];if(M(a)&&(Kn(a)||Vn(a)))if(r)for(var f=0,c=a.length;f<c;)e[u++]=a[f++];else X(a,r,t,e),u=e.length;else t||(e[u++]=a)}return e}var Y=j(function(n,r){return rn(n,r)});function Z(n,r,t,e){er(r)||(e=t,t=r,r=!1),null!=t&&(t=b(t,e));for(var u=[],o=[],i=0,a=O(n);i<a;i++){var f=n[i],c=t?t(f,i,n):f;r&&!t?(i&&o===c||u.push(f),o=c):t?D(o,c)||(o.push(c),u.push(f)):D(u,f)||u.push(f)}return u}var nn=j(function(n){return Z(X(n,!0,!0))});var rn=j(function(n,r){return r=X(r,!0,!0),R(n,function(n){return!D(r,n)})});function tn(n){for(var r=n&&P(n,O).length||0,t=Array(r),e=0;e<r;e++)t[e]=z(n,e);return t}var en=j(tn);function un(o){return function(n,r,t){r=b(r,t);for(var e=O(n),u=0<o?0:e-1;0<=u&&u<e;u+=o)if(r(n[u],u,n))return u;return-1}}var on=un(1),an=un(-1);function fn(n,r,t,e){for(var u=(t=b(t,e,1))(r),o=0,i=O(n);o<i;){var a=Math.floor((o+i)/2);t(n[a])<u?o=a+1:i=a}return o}function cn(o,i,a){return function(n,r,t){var e=0,u=O(n);if("number"==typeof t)0<o?e=0<=t?t:Math.max(t+u,e):u=0<=t?Math.min(t+1,u):t+u+1;else if(a&&t&&u)return n[t=a(n,r)]===r?t:-1;if(r!=r)return 0<=(t=i(f.call(n,e,u),tr))?t+e:-1;for(t=0<o?e:u-1;0<=t&&t<u;t+=o)if(n[t]===r)return t;return-1}}var ln=cn(1,on,fn),pn=cn(-1,an);function sn(n,r,t,e,u){if(!(e instanceof r))return n.apply(t,u);var o=_(n.prototype),i=n.apply(o,u);return Ln(i)?i:o}var vn=j(function(r,t,e){if(!Cn(r))throw new TypeError("Bind must be called on a function");var u=j(function(n){return sn(r,u,t,this,e.concat(n))});return u}),hn=j(function(u,o){var i=hn.placeholder,a=function(){for(var n=0,r=o.length,t=Array(r),e=0;e<r;e++)t[e]=o[e]===i?arguments[n++]:o[e];for(;n<arguments.length;)t.push(arguments[n++]);return sn(u,a,this,this,t)};return a});hn.placeholder=h;var gn=j(function(n,r){var t=(r=X(r,!1,!1)).length;if(t<1)throw new Error("bindAll must be passed function names");for(;t--;){var e=r[t];n[e]=vn(n[e],n)}});var yn=j(function(n,r,t){return setTimeout(function(){return n.apply(null,t)},r)}),dn=hn(yn,h,1);function mn(n){return function(){return!n.apply(this,arguments)}}function bn(n,r){var t;return function(){return 0<--n&&(t=r.apply(this,arguments)),n<=1&&(r=null),t}}var jn=hn(bn,2),_n=!{toString:null}.propertyIsEnumerable("toString"),wn=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];function xn(n,r){var t=wn.length,e=n.constructor,u=Cn(e)&&e.prototype||i,o="constructor";for(x(n,o)&&!D(r,o)&&r.push(o);t--;)(o=wn[t])in n&&n[o]!==u[o]&&!D(r,o)&&r.push(o)}function Sn(n){if(!Ln(n))return[];if(a)return a(n);var r=[];for(var t in n)x(n,t)&&r.push(t);return _n&&xn(n,r),r}function An(n){if(!Ln(n))return[];var r=[];for(var t in n)r.push(t);return _n&&xn(n,r),r}function On(n){for(var r=Sn(n),t=r.length,e=Array(t),u=0;u<t;u++)e[u]=n[r[u]];return e}function Mn(n){for(var r={},t=Sn(n),e=0,u=t.length;e<u;e++)r[n[t[e]]]=t[e];return r}function En(n){var r=[];for(var t in n)Cn(n[t])&&r.push(t);return r.sort()}function Nn(f,c){return function(n){var r=arguments.length;if(c&&(n=Object(n)),r<2||null==n)return n;for(var t=1;t<r;t++)for(var e=arguments[t],u=f(e),o=u.length,i=0;i<o;i++){var a=u[i];c&&void 0!==n[a]||(n[a]=e[a])}return n}}var kn=Nn(An),In=Nn(Sn);function Tn(n,r,t){r=b(r,t);for(var e,u=Sn(n),o=0,i=u.length;o<i;o++)if(r(n[e=u[o]],e,n))return e}function Bn(n,r,t){return r in t}var Rn=j(function(n,r){var t={},e=r[0];if(null==n)return t;Cn(e)?(1<r.length&&(e=y(e,r[1])),r=An(n)):(e=Bn,r=X(r,!1,!1),n=Object(n));for(var u=0,o=r.length;u<o;u++){var i=r[u],a=n[i];e(a,i,n)&&(t[i]=a)}return t}),Fn=j(function(n,t){var r,e=t[0];return Cn(e)?(e=mn(e),1<t.length&&(r=t[1])):(t=N(X(t,!1,!1),String),e=function(n,r){return!D(t,r)}),Rn(n,e,r)}),qn=Nn(An,!0);function Dn(n){return Ln(n)?Kn(n)?n.slice():kn({},n):n}function Wn(n,r){var t=Sn(r),e=t.length;if(null==n)return!e;for(var u=Object(n),o=0;o<e;o++){var i=t[o];if(r[i]!==u[i]||!(i in u))return!1}return!0}function zn(n,r,t,e){if(n===r)return 0!==n||1/n==1/r;if(null==n||null==r)return!1;if(n!=n)return r!=r;var u=typeof n;return("function"===u||"object"===u||"object"==typeof r)&&function(n,r,t,e){n instanceof h&&(n=n._wrapped);r instanceof h&&(r=r._wrapped);var u=s.call(n);if(u!==s.call(r))return!1;switch(u){case"[object RegExp]":case"[object String]":return""+n==""+r;case"[object Number]":return+n!=+n?+r!=+r:0==+n?1/+n==1/r:+n==+r;case"[object Date]":case"[object Boolean]":return+n==+r;case"[object Symbol]":return p.valueOf.call(n)===p.valueOf.call(r)}var o="[object Array]"===u;if(!o){if("object"!=typeof n||"object"!=typeof r)return!1;var i=n.constructor,a=r.constructor;if(i!==a&&!(Cn(i)&&i instanceof i&&Cn(a)&&a instanceof a)&&"constructor"in n&&"constructor"in r)return!1}e=e||[];var f=(t=t||[]).length;for(;f--;)if(t[f]===n)return e[f]===r;if(t.push(n),e.push(r),o){if((f=n.length)!==r.length)return!1;for(;f--;)if(!zn(n[f],r[f],t,e))return!1}else{var c,l=Sn(n);if(f=l.length,Sn(r).length!==f)return!1;for(;f--;)if(c=l[f],!x(r,c)||!zn(n[c],r[c],t,e))return!1}return t.pop(),e.pop(),!0}(n,r,t,e)}function Pn(r){return function(n){return s.call(n)==="[object "+r+"]"}}var Kn=r||Pn("Array");function Ln(n){var r=typeof n;return"function"===r||"object"===r&&!!n}var Vn=Pn("Arguments"),Cn=Pn("Function"),Jn=Pn("String"),Un=Pn("Number"),$n=Pn("Date"),Gn=Pn("RegExp"),Hn=Pn("Error"),Qn=Pn("Symbol"),Xn=Pn("Map"),Yn=Pn("WeakMap"),Zn=Pn("Set"),nr=Pn("WeakSet");!function(){Vn(arguments)||(Vn=function(n){return x(n,"callee")})}();var rr=n.document&&n.document.childNodes;function tr(n){return Un(n)&&c(n)}function er(n){return!0===n||!1===n||"[object Boolean]"===s.call(n)}function ur(n){return n}function or(r){return Kn(r)?function(n){return S(n,r)}:w(r)}function ir(r){return r=In({},r),function(n){return Wn(n,r)}}function ar(n,r){return null==r&&(r=n,n=0),n+Math.floor(Math.random()*(r-n+1))}"function"!=typeof/./&&"object"!=typeof Int8Array&&"function"!=typeof rr&&(Cn=function(n){return"function"==typeof n||!1});var fr=Date.now||function(){return(new Date).getTime()},cr={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},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;a<f;a++)null!=(t=n[a])&&t<o&&(o=t);else e=b(e,r),E(n,function(n,r,t){((u=e(n,r,t))<i||u===1/0&&o===1/0)&&(o=n,i=u)});return o},shuffle:function(n){return K(n,1/0)},sample:K,sortBy:function(n,e,r){var u=0;return e=b(e,r),z(N(n,function(n,r,t){return{value:n,index:u++,criteria:e(n,r,t)}}).sort(function(n,r){var t=n.criteria,e=r.criteria;if(t!==e){if(e<t||void 0===t)return 1;if(t<e||void 0===e)return-1}return n.index-r.index}),"value")},groupBy:V,indexBy:C,countBy:J,toArray:function(n){return n?Kn(n)?f.call(n):Jn(n)?n.match(U):M(n)?N(n,ur):On(n):[]},size:function(n){return null==n?0:M(n)?n.length:Sn(n).length},partition:$,first:G,head:G,take:G,initial:H,last:function(n,r,t){return null==n||n.length<1?null==r?void 0:[]:null==r||t?n[n.length-1]:Q(n,Math.max(0,n.length-r))},rest:Q,tail:Q,drop:Q,compact:function(n){return R(n,Boolean)},flatten:function(n,r){return X(n,r,!1)},without:Y,uniq:Z,unique:Z,union:nn,intersection:function(n){for(var r=[],t=arguments.length,e=0,u=O(n);e<u;e++){var o=n[e];if(!D(r,o)){var i;for(i=1;i<t&&D(arguments[i],o);i++);i===t&&r.push(o)}}return r},difference:rn,unzip:tn,zip:en,object:function(n,r){for(var t={},e=0,u=O(n);e<u;e++)r?t[n[e]]=r[e]:t[n[e][0]]=n[e][1];return t},findIndex:on,findLastIndex:an,sortedIndex:fn,indexOf:ln,lastIndexOf:pn,range:function(n,r,t){null==r&&(r=n||0,n=0),t||(t=r<n?-1:1);for(var e=Math.max(Math.ceil((r-n)/t),0),u=Array(e),o=0;o<e;o++,n+=t)u[o]=n;return u},chunk:function(n,r){if(null==r||r<1)return[];for(var t=[],e=0,u=n.length;e<u;)t.push(f.call(n,e,e+=r));return t},bind:vn,partial:hn,bindAll:gn,memoize:function(e,u){var o=function(n){var r=o.cache,t=""+(u?u.apply(this,arguments):n);return x(r,t)||(r[t]=e.apply(this,arguments)),r[t]};return o.cache={},o},delay:yn,defer:dn,throttle:function(t,e,u){var o,i,a,f,c=0;u||(u={});var l=function(){c=!1===u.leading?0:fr(),o=null,f=t.apply(i,a),o||(i=a=null)},n=function(){var n=fr();c||!1!==u.leading||(c=n);var r=e-(n-c);return i=this,a=arguments,r<=0||e<r?(o&&(clearTimeout(o),o=null),c=n,f=t.apply(i,a),o||(i=a=null)):o||!1===u.trailing||(o=setTimeout(l,r)),f};return n.cancel=function(){clearTimeout(o),c=0,o=i=a=null},n},debounce:function(t,e,u){var o,i,a=function(n,r){o=null,r&&(i=t.apply(n,r))},n=j(function(n){if(o&&clearTimeout(o),u){var r=!o;o=setTimeout(a,e),r&&(i=t.apply(this,n))}else o=yn(a,e,this,n);return i});return n.cancel=function(){clearTimeout(o),o=null},n},wrap:function(n,r){return hn(r,n)},negate:mn,compose:function(){var t=arguments,e=t.length-1;return function(){for(var n=e,r=t[e].apply(this,arguments);n--;)r=t[n].call(this,r);return r}},after:function(n,r){return function(){if(--n<1)return r.apply(this,arguments)}},before:bn,once:jn,keys:Sn,allKeys:An,values:On,mapObject:function(n,r,t){r=b(r,t);for(var e=Sn(n),u=e.length,o={},i=0;i<u;i++){var a=e[i];o[a]=r(n[a],a,n)}return o},pairs:function(n){for(var r=Sn(n),t=r.length,e=Array(t),u=0;u<t;u++)e[u]=[r[u],n[r[u]]];return e},invert:Mn,functions:En,methods:En,extend:kn,extendOwn:In,assign:In,findKey:Tn,pick:Rn,omit:Fn,defaults:qn,create:function(n,r){var t=_(n);return r&&In(t,r),t},clone:Dn,tap:function(n,r){return r(n),n},isMatch:Wn,isEqual:function(n,r){return zn(n,r)},isEmpty:function(n){return null==n||(M(n)&&(Kn(n)||Jn(n)||Vn(n))?0===n.length:0===Sn(n).length)},isElement:function(n){return!(!n||1!==n.nodeType)},isArray:Kn,isObject:Ln,isArguments:Vn,isFunction:Cn,isString:Jn,isNumber:Un,isDate:$n,isRegExp:Gn,isError:Hn,isSymbol:Qn,isMap:Xn,isWeakMap:Yn,isSet:Zn,isWeakSet:nr,isFinite:function(n){return!Qn(n)&&l(n)&&!c(parseFloat(n))},isNaN:tr,isBoolean:er,isNull:function(n){return null===n},isUndefined:function(n){return void 0===n},has:function(n,r){if(!Kn(r))return x(n,r);for(var t=r.length,e=0;e<t;e++){var u=r[e];if(null==n||!o.call(n,u))return!1;n=n[u]}return!!t},identity:ur,constant:function(n){return function(){return n}},noop:function(){},property:or,propertyOf:function(r){return null==r?function(){}:function(n){return Kn(n)?S(r,n):r[n]}},matcher:ir,matches:ir,times:function(n,r,t){var e=Array(Math.max(0,n));r=y(r,t,1);for(var u=0;u<n;u++)e[u]=r(u);return e},random:ar,now:fr,escape:sr,unescape:vr,result:function(n,r,t){Kn(r)||(r=[r]);var e=r.length;if(!e)return Cn(t)?t.call(n):t;for(var u=0;u<e;u++){var o=null==n?void 0:n[r[u]];void 0===o&&(o=t,u=e),n=Cn(o)?o.call(n):o}return n},uniqueId:function(n){var r=++hr+"";return n?n+r:r},templateSettings:gr,template:function(o,n,r){!n&&r&&(n=r),n=qn({},n,h.templateSettings);var t,e=RegExp([(n.escape||yr).source,(n.interpolate||yr).source,(n.evaluate||yr).source].join("|")+"|$","g"),i=0,a="__p+='";o.replace(e,function(n,r,t,e,u){return a+=o.slice(i,u).replace(mr,br),i=u+n.length,r?a+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":t?a+="'+\n((__t=("+t+"))==null?'':__t)+\n'":e&&(a+="';\n"+e+"\n__p+='"),n}),a+="';\n",n.variable||(a="with(obj||{}){\n"+a+"}\n"),a="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{t=new Function(n.variable||"obj","_",a)}catch(n){throw n.source=a,n}var u=function(n){return t.call(this,n,h)},f=n.variable||"obj";return u.source="function("+f+"){\n"+a+"}",u},chain:function(n){var r=h(n);return r._chain=!0,r},mixin:_r});return wr._=wr});

================================================
FILE: blazor/.gitignore
================================================
.vscode/
.vs
[Bb]in
[Oo]bj

================================================
FILE: blazor/App.razor
================================================
<div>Hello World!</div>

================================================
FILE: blazor/HelloWorld.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netstandard2.1</TargetFramework>
    <RazorLangVersion>3.0</RazorLangVersion>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="3.2.1" />
    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Build" Version="3.2.1" PrivateAssets="all" />
    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="3.2.1" PrivateAssets="all" />
  </ItemGroup>
</Project>

================================================
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>("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
================================================
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
        <title>
           Hello World Blazor
        </title>
        <base href="/" />
    </head>
    <body>
        <app>
            <span class="sr-only">Loading...</span>
        </app>
        <script src="_framework/blazor.webassembly.js"></script>
    </body>
</html>

================================================
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
================================================
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hello World From Elm</title>
</head>
<body>
    <div id="elm-root"></div>

    <script src="elm.min.js"></script>
    <script>
        var app = Elm.Main.init({
            node: document.getElementById("elm-root")
        });
    </script>
</body>
</html>

================================================
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
================================================
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>HelloEmber</title>
    <meta name="description" content="">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    {{content-for "head"}}

    <link integrity="" rel="stylesheet" href="{{rootURL}}assets/vendor.css">
    <link integrity="" rel="stylesheet" href="{{rootURL}}assets/hello-ember.css">

    {{content-for "head-footer"}}
  </head>
  <body>
    {{content-for "body"}}

    <script src="{{rootURL}}assets/vendor.js"></script>
    <script src="{{rootURL}}assets/hello-ember.js"></script>

    {{content-for "body-footer"}}
  </body>
</html>


================================================
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
================================================
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.hello_flutter">
    <!-- Flutter needs it to communicate with the running application
         to allow setting breakpoints, to provide hot reload, etc.
    -->
    <uses-permission android:name="android.permission.INTERNET"/>
</manifest>


================================================
FILE: flutter/android/app/src/main/AndroidManifest.xml
================================================
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.hello_flutter">
    <!-- io.flutter.app.FlutterApplication is an android.app.Application that
         calls FlutterMain.startInitialization(this); in its onCreate method.
         In most cases you can leave this as-is, but you if you want to provide
         additional functionality it is fine to subclass or reimplement
         FlutterApplication and put your custom class here. -->
    <application
        android:name="io.flutter.app.FlutterApplication"
        android:label="hello_flutter"
        android:icon="@mipmap/ic_launcher">
        <activity
            android:name=".MainActivity"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize">
            <!-- Specifies an Android theme to apply to this Activity as soon as
                 the Android process has started. This theme is visible to the user
                 while the Flutter UI initializes. After that, this theme continues
                 to determine the Window background behind the Flutter UI. -->
            <meta-data
              android:name="io.flutter.embedding.android.NormalTheme"
              android:resource="@style/NormalTheme"
              />
            <!-- Displays an Android View that continues showing the launch screen
                 Drawable until Flutter paints its first frame, then this splash
                 screen fades out. A splash screen is useful to avoid any visual
                 gap between the end of Android's launch screen and the painting of
                 Flutter's first frame. -->
            <meta-data
              android:name="io.flutter.embedding.android.SplashScreenDrawable"
              android:resource="@drawable/launch_background"
              />
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <!-- Don't delete the meta-data below.
             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
    </application>
</manifest>


================================================
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
================================================
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@android:color/white" />

    <!-- You can insert your own image assets here -->
    <!-- <item>
        <bitmap
            android:gravity="center"
            android:src="@mipmap/launch_image" />
    </item> -->
</layer-list>


================================================
FILE: flutter/android/app/src/main/res/values/styles.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- Theme applied to the Android Window while the process is starting -->
    <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
        <!-- Show a splash screen on the activity. Automatically removed when
             Flutter draws its first frame -->
        <item name="android:windowBackground">@drawable/launch_background</item>
    </style>
    <!-- Theme applied to the Android Window as soon as the process has started.
         This theme determines the color of the Android Window while your
         Flutter UI initializes, as well as behind your Flutter UI while its
         running.
         
         This Theme is only used starting with V2 of Flutter's Android embedding. -->
    <style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
        <item name="android:windowBackground">@android:color/white</item>
    </style>
</resources>


================================================
FILE: flutter/android/app/src/profile/AndroidManifest.xml
================================================
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.hello_flutter">
    <!-- Flutter needs it to communicate with the running application
         to allow setting breakpoints, to provide hot reload, etc.
    -->
    <uses-permission android:name="android.permission.INTERNET"/>
</manifest>


================================================
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
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>CFBundleDevelopmentRegion</key>
  <string>$(DEVELOPMENT_LANGUAGE)</string>
  <key>CFBundleExecutable</key>
  <string>App</string>
  <key>CFBundleIdentifier</key>
  <string>io.flutter.flutter.app</string>
  <key>CFBundleInfoDictionaryVersion</key>
  <string>6.0</string>
  <key>CFBundleName</key>
  <string>App</string>
  <key>CFBundlePackageType</key>
  <string>FMWK</string>
  <key>CFBundleShortVersionString</key>
  <string>1.0</string>
  <key>CFBundleSignature</key>
  <string>????</string>
  <key>CFBundleVersion</key>
  <string>1.0</string>
  <key>MinimumOSVersion</key>
  <string>8.0</string>
</dict>
</plist>


================================================
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"
  }
}


==========================
Download .txt
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
Download .txt
SYMBOL INDEX (153 symbols across 41 files)

FILE: angular-universal/server.ts
  function app (line 12) | function app() {
  function run (line 40) | function run() {

FILE: angular-universal/src/app/app.component.ts
  class AppComponent (line 7) | class AppComponent {

FILE: angular-universal/src/app/app.module.ts
  class AppModule (line 16) | class AppModule { }

FILE: angular-universal/src/app/app.server.module.ts
  class AppServerModule (line 14) | class AppServerModule {}

FILE: angular/src/app/app.ts
  class App (line 7) | class App {

FILE: aurelia/aurelia_project/generators/attribute.ts
  class AttributeGenerator (line 5) | class AttributeGenerator {
    method constructor (line 6) | constructor(private project: Project, private options: CLIOptions, pri...
    method execute (line 8) | async execute() {
    method generateSource (line 25) | generateSource(className) {

FILE: aurelia/aurelia_project/generators/binding-behavior.ts
  class BindingBehaviorGenerator (line 5) | class BindingBehaviorGenerator {
    method constructor (line 6) | constructor(private project: Project, private options: CLIOptions, pri...
    method execute (line 8) | async execute() {
    method generateSource (line 25) | generateSource(className) {

FILE: aurelia/aurelia_project/generators/component.ts
  class ElementGenerator (line 6) | class ElementGenerator {
    method constructor (line 7) | constructor(private project: Project, private options: CLIOptions, pri...
    method execute (line 9) | async execute() {
    method generateJSSource (line 32) | generateJSSource(className) {
    method generateHTMLSource (line 43) | generateHTMLSource(className) {

FILE: aurelia/aurelia_project/generators/element.ts
  class ElementGenerator (line 5) | class ElementGenerator {
    method constructor (line 6) | constructor(private project: Project, private options: CLIOptions, pri...
    method execute (line 8) | async execute() {
    method generateJSSource (line 26) | generateJSSource(className) {
    method generateHTMLSource (line 39) | generateHTMLSource(className) {

FILE: aurelia/aurelia_project/generators/generator.ts
  class GeneratorGenerator (line 5) | class GeneratorGenerator {
    method constructor (line 6) | constructor(private project: Project, private options: CLIOptions, pri...
    method execute (line 8) | async execute() {
    method generateSource (line 25) | generateSource(className) {

FILE: aurelia/aurelia_project/generators/task.ts
  class TaskGenerator (line 5) | class TaskGenerator {
    method constructor (line 6) | constructor(private project: Project, private options: CLIOptions, pri...
    method execute (line 8) | async execute() {
    method generateSource (line 25) | generateSource(functionName) {

FILE: aurelia/aurelia_project/generators/value-converter.ts
  class ValueConverterGenerator (line 5) | class ValueConverterGenerator {
    method constructor (line 6) | constructor(private project: Project, private options: CLIOptions, pri...
    method execute (line 8) | async execute() {
    method generateSource (line 25) | generateSource(className) {

FILE: aurelia/aurelia_project/tasks/build.ts
  function cleanArgs (line 11) | function cleanArgs(args) {

FILE: aurelia/aurelia_project/tasks/run.ts
  function run (line 7) | function run() {
  function cleanArgs (line 15) | function cleanArgs(args) {

FILE: aurelia/src/app.ts
  class App (line 1) | class App {

FILE: aurelia/src/main.ts
  function configure (line 5) | function configure(aurelia: Aurelia) {

FILE: aurelia/src/resources/index.ts
  function configure (line 3) | function configure(config: FrameworkConfiguration) {

FILE: aurelia/types/system.d.ts
  type System (line 8) | interface System {

FILE: backbone/libs/underscore-min.js
  function h (line 6) | function h(n){return n instanceof h?n:this instanceof h?void(this._wrapp...
  function y (line 6) | function y(u,o,n){if(void 0===o)return u;switch(null==n?3:n){case 1:retu...
  function d (line 6) | function d(n,r,t){return null==n?ur:Cn(n)?y(n,r,t):Ln(n)&&!Kn(n)?ir(n):o...
  function m (line 6) | function m(n,r){return d(n,r,1/0)}
  function b (line 6) | function b(n,r,t){return h.iteratee!==m?h.iteratee(n,r):d(n,r,t)}
  function j (line 6) | function j(u,o){return o=null==o?u.length-1:+o,function(){for(var n=Math...
  function _ (line 6) | function _(n){if(!Ln(n))return{};if(t)return t(n);v.prototype=n;var r=ne...
  function w (line 6) | function w(r){return function(n){return null==n?void 0:n[r]}}
  function x (line 6) | function x(n,r){return null!=n&&o.call(n,r)}
  function S (line 6) | function S(n,r){for(var t=r.length,e=0;e<t;e++){if(null==n)return;n=n[r[...
  function M (line 6) | function M(n){var r=O(n);return"number"==typeof r&&0<=r&&r<=A}
  function E (line 6) | function E(n,r,t){var e,u;if(r=y(r,t),M(n))for(e=0,u=n.length;e<u;e++)r(...
  function N (line 6) | function N(n,r,t){r=b(r,t);for(var e=!M(n)&&Sn(n),u=(e||n).length,o=Arra...
  function k (line 6) | function k(f){return function(n,r,t,e){var u=3<=arguments.length;return ...
  function B (line 6) | function B(n,r,t){var e=(M(n)?on:Tn)(n,r,t);if(void 0!==e&&-1!==e)return...
  function R (line 6) | function R(n,e,r){var u=[];return e=b(e,r),E(n,function(n,r,t){e(n,r,t)&...
  function F (line 6) | function F(n,r,t){r=b(r,t);for(var e=!M(n)&&Sn(n),u=(e||n).length,o=0;o<...
  function q (line 6) | function q(n,r,t){r=b(r,t);for(var e=!M(n)&&Sn(n),u=(e||n).length,o=0;o<...
  function D (line 6) | function D(n,r,t,e){return M(n)||(n=On(n)),("number"!=typeof t||e)&&(t=0...
  function z (line 6) | function z(n,r){return N(n,or(r))}
  function P (line 6) | function P(n,e,r){var t,u,o=-1/0,i=-1/0;if(null==e||"number"==typeof e&&...
  function K (line 6) | function K(n,r,t){if(null==r||t)return M(n)||(n=On(n)),n[ar(n.length-1)]...
  function L (line 6) | function L(i,r){return function(e,u,n){var o=r?[[],[]]:{};return u=b(u,n...
  function G (line 6) | function G(n,r,t){return null==n||n.length<1?null==r?void 0:[]:null==r||...
  function H (line 6) | function H(n,r,t){return f.call(n,0,Math.max(0,n.length-(null==r||t?1:r)))}
  function Q (line 6) | function Q(n,r,t){return f.call(n,null==r||t?1:r)}
  function X (line 6) | function X(n,r,t,e){for(var u=(e=e||[]).length,o=0,i=O(n);o<i;o++){var a...
  function Z (line 6) | function Z(n,r,t,e){er(r)||(e=t,t=r,r=!1),null!=t&&(t=b(t,e));for(var u=...
  function tn (line 6) | function tn(n){for(var r=n&&P(n,O).length||0,t=Array(r),e=0;e<r;e++)t[e]...
  function un (line 6) | function un(o){return function(n,r,t){r=b(r,t);for(var e=O(n),u=0<o?0:e-...
  function fn (line 6) | function fn(n,r,t,e){for(var u=(t=b(t,e,1))(r),o=0,i=O(n);o<i;){var a=Ma...
  function cn (line 6) | function cn(o,i,a){return function(n,r,t){var e=0,u=O(n);if("number"==ty...
  function sn (line 6) | function sn(n,r,t,e,u){if(!(e instanceof r))return n.apply(t,u);var o=_(...
  function mn (line 6) | function mn(n){return function(){return!n.apply(this,arguments)}}
  function bn (line 6) | function bn(n,r){var t;return function(){return 0<--n&&(t=r.apply(this,a...
  function xn (line 6) | function xn(n,r){var t=wn.length,e=n.constructor,u=Cn(e)&&e.prototype||i...
  function Sn (line 6) | function Sn(n){if(!Ln(n))return[];if(a)return a(n);var r=[];for(var t in...
  function An (line 6) | function An(n){if(!Ln(n))return[];var r=[];for(var t in n)r.push(t);retu...
  function On (line 6) | function On(n){for(var r=Sn(n),t=r.length,e=Array(t),u=0;u<t;u++)e[u]=n[...
  function Mn (line 6) | function Mn(n){for(var r={},t=Sn(n),e=0,u=t.length;e<u;e++)r[n[t[e]]]=t[...
  function En (line 6) | function En(n){var r=[];for(var t in n)Cn(n[t])&&r.push(t);return r.sort()}
  function Nn (line 6) | function Nn(f,c){return function(n){var r=arguments.length;if(c&&(n=Obje...
  function Tn (line 6) | function Tn(n,r,t){r=b(r,t);for(var e,u=Sn(n),o=0,i=u.length;o<i;o++)if(...
  function Bn (line 6) | function Bn(n,r,t){return r in t}
  function Dn (line 6) | function Dn(n){return Ln(n)?Kn(n)?n.slice():kn({},n):n}
  function Wn (line 6) | function Wn(n,r){var t=Sn(r),e=t.length;if(null==n)return!e;for(var u=Ob...
  function zn (line 6) | function zn(n,r,t,e){if(n===r)return 0!==n||1/n==1/r;if(null==n||null==r...
  function Pn (line 6) | function Pn(r){return function(n){return s.call(n)==="[object "+r+"]"}}
  function Ln (line 6) | function Ln(n){var r=typeof n;return"function"===r||"object"===r&&!!n}
  function tr (line 6) | function tr(n){return Un(n)&&c(n)}
  function er (line 6) | function er(n){return!0===n||!1===n||"[object Boolean]"===s.call(n)}
  function ur (line 6) | function ur(n){return n}
  function or (line 6) | function or(r){return Kn(r)?function(n){return S(n,r)}:w(r)}
  function ir (line 6) | function ir(r){return r=In({},r),function(n){return Wn(n,r)}}
  function ar (line 6) | function ar(n,r){return null==r&&(r=n,n=0),n+Math.floor(Math.random()*(r...
  function pr (line 6) | function pr(r){var t=function(n){return r[n]},n="(?:"+Sn(r).join("|")+")...
  function jr (line 6) | function jr(n,r){return n._chain?h(r).chain():r}
  function _r (line 6) | function _r(t){return E(En(t),function(n){var r=h[n]=t[n];h.prototype[n]...

FILE: blazor/Program.cs
  class Program (line 6) | public class Program
    method Main (line 8) | public static async Task Main(string[] args)

FILE: ember/app/app.js
  class App (line 6) | class App extends Application {

FILE: flutter/lib/main.dart
  function main (line 3) | void main()
  class MyApp (line 5) | class MyApp extends StatelessWidget {
    method build (line 7) | Widget build(BuildContext context)

FILE: flutter/test/widget_test.dart
  function main (line 13) | void main()

FILE: glimmer/src/App.js
  class App (line 4) | class App extends Component {

FILE: ionic-angular/src/app/app.component.ts
  class AppComponent (line 7) | class AppComponent {}

FILE: ionic-angular/src/app/app.module.ts
  class AppModule (line 11) | class AppModule {}

FILE: ionic-react/src/serviceWorker.ts
  type Config (line 23) | type Config = {
  function register (line 28) | function register(config?: Config) {
  function registerValidSW (line 65) | function registerValidSW(swUrl: string, config?: Config) {
  function checkValidServiceWorker (line 109) | function checkValidServiceWorker(swUrl: string, config?: Config) {
  function unregister (line 139) | function unregister() {

FILE: javascript/hello-world.js
  class HelloWorldComponent (line 1) | class HelloWorldComponent extends HTMLElement {
    method connectedCallback (line 2) | connectedCallback() {

FILE: knockoutjs/src/app.js
  class HelloWorldViewModel (line 3) | class HelloWorldViewModel {
    method constructor (line 4) | constructor() {

FILE: lit-element/src/HelloWorld.js
  class HelloWorld (line 3) | class HelloWorld extends LitElement {
    method properties (line 4) | static get properties() {
    method constructor (line 10) | constructor() {
    method render (line 16) | render() {

FILE: nextjs/pages/index.js
  function Home (line 3) | function Home() {

FILE: nuxtjs/nuxt.config.js
  method extend (line 49) | extend (config, ctx) {

FILE: polymer/src/_element/_element.js
  class HelloWorld (line 7) | class HelloWorld extends PolymerElement {
    method template (line 8) | static get template() {
    method properties (line 18) | static get properties() {

FILE: polymer/src/hello-world/hello-world.js
  class HelloWorld (line 7) | class HelloWorld extends PolymerElement {
    method template (line 8) | static get template() {
    method properties (line 18) | static get properties() {

FILE: react/src/App.jsx
  function App (line 1) | function App() {

FILE: scully/src/app/app-routing.module.ts
  class AppRoutingModule (line 15) | class AppRoutingModule {}

FILE: scully/src/app/app.component.ts
  class AppComponent (line 7) | class AppComponent {

FILE: scully/src/app/app.module.ts
  class AppModule (line 12) | class AppModule {}

FILE: stencil/src/components.d.ts
  type AppRoot (line 9) | interface AppRoot {
  type HTMLAppRootElement (line 13) | interface HTMLAppRootElement extends Components.AppRoot, HTMLStencilElem...
  type HTMLElementTagNameMap (line 19) | interface HTMLElementTagNameMap {
  type AppRoot (line 24) | interface AppRoot {
  type IntrinsicElements (line 26) | interface IntrinsicElements {
  type IntrinsicElements (line 33) | interface IntrinsicElements {

FILE: stencil/src/components/app-root/app-root.tsx
  class AppRoot (line 7) | class AppRoot {
    method render (line 10) | render() {

FILE: web-component/script.js
  class HelloWorld (line 1) | class HelloWorld extends HTMLElement {
    method constructor (line 2) | constructor() {
    method is (line 10) | static is() {
    method observedAttributes (line 14) | static get observedAttributes() {
    method style (line 20) | style() {
    method render (line 41) | render() {
    method attributeChangedCallback (line 59) | attributeChangedCallback(name, oldValue, newValue) {
    method connectedCallback (line 67) | connectedCallback() {
    method disconnectedCallback (line 71) | disconnectedCallback() {
Condensed preview — 393 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (385K chars).
[
  {
    "path": ".all-contributorsrc",
    "chars": 7743,
    "preview": "{\n  \"files\": [\n    \"README.md\"\n  ],\n  \"imageSize\": 100,\n  \"commit\": false,\n  \"contributors\": [\n    {\n      \"login\": \"joh"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug-report.md",
    "chars": 735,
    "preview": "---\nname: Bug Report\nabout: Report a bug in one of the hello world projects\ntitle: \"[Bug] \"\nlabels: bug\nassignees: \"\"\n--"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/new-hello-world-project.md",
    "chars": 1061,
    "preview": "---\nname: New Hello World Project\nabout: Suggest an idea for this project\ntitle: ''\nlabels: ''\nassignees: ''\n---\n\nBy mak"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "chars": 947,
    "preview": "By making a PR you are agreeing to that contributing a hello world project allows the repo/project owner to use the hell"
  },
  {
    "path": ".github/copilot-instructions.md",
    "chars": 2659,
    "preview": "# Copilot Instructions — hello-worlds\n\n## Project Type\n\nThis is a **multi-app collection** of 41+ minimal \"Hello World\" "
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 178,
    "preview": "# Dependabot configuration\n# Keep GitHub Actions up to date\nversion: 2\nupdates:\n  - package-ecosystem: \"github-actions\"\n"
  },
  {
    "path": ".github/workflows/ci.yml",
    "chars": 1600,
    "preview": "name: CI\n\non:\n  pull_request:\n    branches: [main]\n  push:\n    branches: [main]\n\npermissions:\n  contents: read\n\njobs:\n  "
  },
  {
    "path": ".github/workflows/copilot-setup-steps.yml",
    "chars": 696,
    "preview": "# Copilot Cloud Agent — Setup Steps\n# Configures the environment for the Copilot coding agent.\n# This is a multi-app col"
  },
  {
    "path": ".gitignore",
    "chars": 218,
    "preview": ".DS_Store\nnode_modules\n**/dist\n\n# local env files\n.env.local\n.env.*.local\n\n# Log files\nnpm-debug.log*\nyarn-debug.log*\nya"
  },
  {
    "path": ".prettier.js",
    "chars": 139,
    "preview": "module.exports = {\n  semi: true,\n  trailingComma: 'all',\n  singleQuote: true,\n  printWidth: 100,\n  tabWidth: 2,\n  arrowP"
  },
  {
    "path": ".vscode/settings.json",
    "chars": 794,
    "preview": "{\n  \"workbench.colorCustomizations\": {\n    \"activityBar.background\": \"#6b25d7\",\n    \"activityBar.activeBackground\": \"#6b"
  },
  {
    "path": "AGENTS.md",
    "chars": 6668,
    "preview": "# AI-Ready Repo — Agent Guide\n\nThis is a **multi-app collection** of 41 minimal \"Hello World\" demos across JavaScript/Ty"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 627,
    "preview": "# Changelog\n\nAll notable changes to this project will be documented in this file.\n\n## [Unreleased]\n\n### Added\n\n- `AGENTS"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 3606,
    "preview": "---\ntitle: Code of Conduct\n# We can even add meta tags to the page! This sets the keywords meta tag.\n# <meta name=\"keywo"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 3405,
    "preview": "---\ntitle: Contributing\n# We can even add meta tags to the page! This sets the keywords meta tag.\n# <meta name=\"keywords"
  },
  {
    "path": "LICENSE",
    "chars": 1150,
    "preview": "    MIT License\r\n\r\n    Copyright (c) John Papa.\r\n\r\n    Permission is hereby granted, free of charge, to any person obtai"
  },
  {
    "path": "README.md",
    "chars": 18872,
    "preview": "# hello-worlds\n\n[![AI-Ready](https://img.shields.io/badge/AI--Ready-✓-brightgreen?style=flat-square)](./AGENTS.md)\n\n\n<!-"
  },
  {
    "path": "alpine/index.html",
    "chars": 575,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <meta name=\"viewport\" content=\"width=device-w"
  },
  {
    "path": "angular/.editorconfig",
    "chars": 246,
    "preview": "# Editor configuration, see https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size ="
  },
  {
    "path": "angular/.gitignore",
    "chars": 641,
    "preview": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n# Only "
  },
  {
    "path": "angular/README.md",
    "chars": 1022,
    "preview": "# Hello\n\nThis project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.0.1.\n\n## Develo"
  },
  {
    "path": "angular/angular.json",
    "chars": 1680,
    "preview": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"cli\": {\n    \"packageManager\": \"n"
  },
  {
    "path": "angular/package.json",
    "chars": 591,
    "preview": "{\n  \"name\": \"hello-angular\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": "
  },
  {
    "path": "angular/src/app/app.ts",
    "chars": 168,
    "preview": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'app-root',\n  template: `<div>Hello {{ value }}</di"
  },
  {
    "path": "angular/src/assets/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "angular/src/index.html",
    "chars": 291,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Hello</title>\n  <base href=\"/\">\n  <meta name=\""
  },
  {
    "path": "angular/src/main.ts",
    "chars": 165,
    "preview": "import { bootstrapApplication } from '@angular/platform-browser';\nimport { App } from './app/app';\n\nbootstrapApplication"
  },
  {
    "path": "angular/src/styles.css",
    "chars": 20,
    "preview": "/* Global styles */\n"
  },
  {
    "path": "angular/tsconfig.app.json",
    "chars": 148,
    "preview": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"include\""
  },
  {
    "path": "angular/tsconfig.json",
    "chars": 621,
    "preview": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"strict\": true,\n    \"noImplicitOverride\": true,\n    \"noImplicitRe"
  },
  {
    "path": "angular-universal/.browserslistrc",
    "chars": 648,
    "preview": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For addit"
  },
  {
    "path": "angular-universal/.gitignore",
    "chars": 631,
    "preview": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n/out-tsc\n# Only "
  },
  {
    "path": "angular-universal/README.md",
    "chars": 1028,
    "preview": "# Hello\n\nThis project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 10.0.0-rc.0.\n\n## "
  },
  {
    "path": "angular-universal/angular.json",
    "chars": 4513,
    "preview": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \""
  },
  {
    "path": "angular-universal/package.json",
    "chars": 1336,
    "preview": "{\n  \"name\": \"hello\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng buil"
  },
  {
    "path": "angular-universal/server.ts",
    "chars": 2008,
    "preview": "import 'zone.js/dist/zone-node';\n\nimport { ngExpressEngine } from '@nguniversal/express-engine';\nimport * as express fro"
  },
  {
    "path": "angular-universal/src/app/app.component.ts",
    "chars": 175,
    "preview": "import { Component } from '@angular/core';\n\n@Component({\n  selector: 'app-root',\n  template: `<div>Hello {{value}}</div>"
  },
  {
    "path": "angular-universal/src/app/app.module.ts",
    "chars": 359,
    "preview": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n\nimport { AppCompon"
  },
  {
    "path": "angular-universal/src/app/app.server.module.ts",
    "chars": 318,
    "preview": "import { NgModule } from '@angular/core';\nimport { ServerModule } from '@angular/platform-server';\n\nimport { AppModule }"
  },
  {
    "path": "angular-universal/src/app/package.json",
    "chars": 671,
    "preview": "{\n  \"name\": \"hello\",\n  \"private\": true,\n  \"description\": \"This is a special package.json file that is not used by packag"
  },
  {
    "path": "angular-universal/src/assets/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "angular-universal/src/environments/environment.prod.ts",
    "chars": 51,
    "preview": "export const environment = {\n  production: true\n};\n"
  },
  {
    "path": "angular-universal/src/environments/environment.ts",
    "chars": 662,
    "preview": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environm"
  },
  {
    "path": "angular-universal/src/index.html",
    "chars": 291,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>Hello</title>\n  <base href=\"/\">\n  <meta name=\""
  },
  {
    "path": "angular-universal/src/main.server.ts",
    "chars": 298,
    "preview": "import { enableProdMode } from '@angular/core';\n\nimport { environment } from './environments/environment';\n\nif (environm"
  },
  {
    "path": "angular-universal/src/main.ts",
    "chars": 432,
    "preview": "import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynami"
  },
  {
    "path": "angular-universal/src/polyfills.ts",
    "chars": 2835,
    "preview": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfi"
  },
  {
    "path": "angular-universal/src/styles.css",
    "chars": 80,
    "preview": "/* You can add global styles to this file, and also import other style files */\n"
  },
  {
    "path": "angular-universal/tsconfig.app.json",
    "chars": 215,
    "preview": "{\n  \"extends\": \"./tsconfig.base.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"fil"
  },
  {
    "path": "angular-universal/tsconfig.base.json",
    "chars": 381,
    "preview": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\":"
  },
  {
    "path": "angular-universal/tsconfig.json",
    "chars": 389,
    "preview": "// This is a \"Solution Style\" tsconfig.json file, and is used by editors and TypeScript’s language server to improve dev"
  },
  {
    "path": "angular-universal/tsconfig.server.json",
    "chars": 295,
    "preview": "{\n  \"extends\": \"./tsconfig.app.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/server\",\n    \"types\": [\n      \"nod"
  },
  {
    "path": "angularjs/index.html",
    "chars": 393,
    "preview": "<!DOCTYPE html>\n<html>\n\t<head>\n\t\t<title>Hello World | angular.js</title>\n\t\t<script src=\"angular.min.js\"></script>\n\t</hea"
  },
  {
    "path": "aurelia/.editorconfig",
    "chars": 257,
    "preview": "# EditorConfig is awesome: http://EditorConfig.org\n\n# top-most EditorConfig file\nroot = true\n\n# Unix-style newlines with"
  },
  {
    "path": "aurelia/.gitignore",
    "chars": 1038,
    "preview": "\n# You may want to customise this file depending on your Operating System\n# and the editor that you use.\n#\n# We recommen"
  },
  {
    "path": "aurelia/README.md",
    "chars": 1199,
    "preview": "# `aurelia`\n\nThis project is bootstrapped by [aurelia-cli](https://github.com/aurelia/cli).\n\nFor more information, go to"
  },
  {
    "path": "aurelia/aurelia_project/aurelia.json",
    "chars": 649,
    "preview": "{\n  \"name\": \"aurelia\",\n  \"type\": \"project:application\",\n  \"paths\": {\n    \"root\": \"src\",\n    \"resources\": \"resources\",\n  "
  },
  {
    "path": "aurelia/aurelia_project/generators/attribute.json",
    "chars": 118,
    "preview": "{\n  \"name\": \"attribute\",\n  \"description\": \"Creates a custom attribute class and places it in the project resources.\"\n}"
  },
  {
    "path": "aurelia/aurelia_project/generators/attribute.ts",
    "chars": 1007,
    "preview": "import {inject} from 'aurelia-dependency-injection';\nimport {Project, ProjectItem, CLIOptions, UI} from 'aurelia-cli';\n\n"
  },
  {
    "path": "aurelia/aurelia_project/generators/binding-behavior.json",
    "chars": 125,
    "preview": "{\n  \"name\": \"binding-behavior\",\n  \"description\": \"Creates a binding behavior class and places it in the project resource"
  },
  {
    "path": "aurelia/aurelia_project/generators/binding-behavior.ts",
    "chars": 941,
    "preview": "import {inject} from 'aurelia-dependency-injection';\nimport {Project, ProjectItem, CLIOptions, UI} from 'aurelia-cli';\n\n"
  },
  {
    "path": "aurelia/aurelia_project/generators/component.json",
    "chars": 188,
    "preview": "{\n  \"name\": \"component\",\n  \"description\": \"Creates a custom component class and template (view model and view), placing "
  },
  {
    "path": "aurelia/aurelia_project/generators/component.ts",
    "chars": 1462,
    "preview": "import { inject } from 'aurelia-dependency-injection';\nimport { Project, ProjectItem, CLIOptions, UI } from 'aurelia-cli"
  },
  {
    "path": "aurelia/aurelia_project/generators/element.json",
    "chars": 127,
    "preview": "{\n  \"name\": \"element\",\n  \"description\": \"Creates a custom element class and template, placing them in the project resour"
  },
  {
    "path": "aurelia/aurelia_project/generators/element.ts",
    "chars": 1127,
    "preview": "import {inject} from 'aurelia-dependency-injection';\nimport {Project, ProjectItem, CLIOptions, UI} from 'aurelia-cli';\n\n"
  },
  {
    "path": "aurelia/aurelia_project/generators/generator.json",
    "chars": 119,
    "preview": "{\n  \"name\": \"generator\",\n  \"description\": \"Creates a generator class and places it in the project generators folder.\"\n}"
  },
  {
    "path": "aurelia/aurelia_project/generators/generator.ts",
    "chars": 1813,
    "preview": "import {inject} from 'aurelia-dependency-injection';\nimport {Project, ProjectItem, CLIOptions, UI} from 'aurelia-cli';\n\n"
  },
  {
    "path": "aurelia/aurelia_project/generators/task.json",
    "chars": 98,
    "preview": "{\n  \"name\": \"task\",\n  \"description\": \"Creates a task and places it in the project tasks folder.\"\n}"
  },
  {
    "path": "aurelia/aurelia_project/generators/task.ts",
    "chars": 1001,
    "preview": "import {inject} from 'aurelia-dependency-injection';\nimport {Project, ProjectItem, CLIOptions, UI} from 'aurelia-cli';\n\n"
  },
  {
    "path": "aurelia/aurelia_project/generators/value-converter.json",
    "chars": 123,
    "preview": "{\n  \"name\": \"value-converter\",\n  \"description\": \"Creates a value converter class and places it in the project resources."
  },
  {
    "path": "aurelia/aurelia_project/generators/value-converter.ts",
    "chars": 922,
    "preview": "import {inject} from 'aurelia-dependency-injection';\nimport {Project, ProjectItem, CLIOptions, UI} from 'aurelia-cli';\n\n"
  },
  {
    "path": "aurelia/aurelia_project/tasks/build.json",
    "chars": 622,
    "preview": "{\n  \"name\": \"build\",\n  \"description\": \"Builds and processes all application assets. It is an alias of the `npm run build"
  },
  {
    "path": "aurelia/aurelia_project/tasks/build.ts",
    "chars": 802,
    "preview": "import { NPM } from 'aurelia-cli';\n\nexport default function() {\n  console.log('`au build` is an alias of the `npm run bu"
  },
  {
    "path": "aurelia/aurelia_project/tasks/jest.json",
    "chars": 244,
    "preview": "{\n  \"name\": \"jest\",\n  \"description\": \"Runs Jest and reports the results.\",\n  \"flags\": [\n    {\n      \"name\": \"watch\",\n   "
  },
  {
    "path": "aurelia/aurelia_project/tasks/jest.ts",
    "chars": 32,
    "preview": "export {default} from './test';\n"
  },
  {
    "path": "aurelia/aurelia_project/tasks/run.json",
    "chars": 1018,
    "preview": "{\n  \"name\": \"run\",\n  \"description\": \"Builds the application and serves up the assets via a local web server, watching fi"
  },
  {
    "path": "aurelia/aurelia_project/tasks/run.ts",
    "chars": 1375,
    "preview": "import { NPM } from 'aurelia-cli';\nimport * as kill from 'tree-kill';\nimport { platform } from '../aurelia.json';\n\nconst"
  },
  {
    "path": "aurelia/aurelia_project/tasks/test.json",
    "chars": 244,
    "preview": "{\n  \"name\": \"test\",\n  \"description\": \"Runs Jest and reports the results.\",\n  \"flags\": [\n    {\n      \"name\": \"watch\",\n   "
  },
  {
    "path": "aurelia/aurelia_project/tasks/test.ts",
    "chars": 522,
    "preview": "import { runCLI } from '@jest/core';\nimport * as path from 'path';\nimport * as packageJson from '../../package.json';\n\ni"
  },
  {
    "path": "aurelia/config/environment.json",
    "chars": 38,
    "preview": "{\n  \"debug\": true,\n  \"testing\": true\n}"
  },
  {
    "path": "aurelia/config/environment.production.json",
    "chars": 40,
    "preview": "{\n  \"debug\": false,\n  \"testing\": false\n}"
  },
  {
    "path": "aurelia/index.ejs",
    "chars": 390,
    "preview": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <title><%- htmlWebpackPlugin.options.metadata.title %></t"
  },
  {
    "path": "aurelia/package.json",
    "chars": 1629,
    "preview": "{\n  \"name\": \"aurelia\",\n  \"description\": \"An Aurelia client application.\",\n  \"version\": \"0.1.0\",\n  \"repository\": {\n    \"t"
  },
  {
    "path": "aurelia/src/app.html",
    "chars": 45,
    "preview": "<template>\n  <h1>${message}</h1>\n</template>\n"
  },
  {
    "path": "aurelia/src/app.ts",
    "chars": 64,
    "preview": "export class App {\n  public message: string = 'Hello World!';\n}\n"
  },
  {
    "path": "aurelia/src/main.ts",
    "chars": 435,
    "preview": "import {Aurelia} from 'aurelia-framework';\nimport * as environment from '../config/environment.json';\nimport {PLATFORM} "
  },
  {
    "path": "aurelia/src/resources/index.ts",
    "chars": 153,
    "preview": "import {FrameworkConfiguration} from 'aurelia-framework';\n\nexport function configure(config: FrameworkConfiguration) {\n "
  },
  {
    "path": "aurelia/tsconfig.json",
    "chars": 591,
    "preview": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"module\": \"esnext\",\n    \"skipLibCheck\": true,\n    \"typeRoots\": [\n"
  },
  {
    "path": "aurelia/tslint.json",
    "chars": 41,
    "preview": "{\n  \"rules\": {\n    \"no-empty\": true\n  }\n}"
  },
  {
    "path": "aurelia/types/fetch.d.ts",
    "chars": 56,
    "preview": "declare module \"isomorphic-fetch\" {\n  export = fetch;\n}\n"
  },
  {
    "path": "aurelia/types/system.d.ts",
    "chars": 430,
    "preview": "declare module 'system' {\n  import fetch = require('isomorphic-fetch');\n  import * as Aurelia from 'aurelia-framework';\n"
  },
  {
    "path": "aurelia/webpack.config.js",
    "chars": 8994,
    "preview": "const path = require('path');\nconst HtmlWebpackPlugin = require('html-webpack-plugin');\nconst CopyWebpackPlugin = requir"
  },
  {
    "path": "babylonjs/index.html",
    "chars": 1427,
    "preview": "<html>\n\n    <head>\n        <script src=\"https://cdn.babylonjs.com/babylon.js\"></script>\n        <meta charset=\"UTF-8\" />"
  },
  {
    "path": "backbone/README.md",
    "chars": 113,
    "preview": "# Project\n\nHello World app for Backbone.js\n\n## Getting Started\n\nOpen the index.html to see Hello World in action\n"
  },
  {
    "path": "backbone/index.html",
    "chars": 433,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width"
  },
  {
    "path": "backbone/index.js",
    "chars": 432,
    "preview": "(function ($) {\n    var WorldModel = Backbone.Model.extend({\n        defaults: {\n            name: '',\n        }\n    });"
  },
  {
    "path": "backbone/libs/backbone-min.js",
    "chars": 25006,
    "preview": "(function(t){var e=typeof self==\"object\"&&self.self===self&&self||typeof global==\"object\"&&global.global===global&&globa"
  },
  {
    "path": "backbone/libs/underscore-min.js",
    "chars": 17547,
    "preview": "!function(n,r){var t,e;\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=r():\"function\"==typeof define"
  },
  {
    "path": "blazor/.gitignore",
    "chars": 26,
    "preview": ".vscode/\n.vs\n[Bb]in\n[Oo]bj"
  },
  {
    "path": "blazor/App.razor",
    "chars": 23,
    "preview": "<div>Hello World!</div>"
  },
  {
    "path": "blazor/HelloWorld.csproj",
    "chars": 554,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk.Web\">\n  <PropertyGroup>\n    <TargetFramework>netstandard2.1</TargetFramework>\n    <Razor"
  },
  {
    "path": "blazor/Program.cs",
    "chars": 392,
    "preview": "using System.Threading.Tasks;\nusing Microsoft.AspNetCore.Components.WebAssembly.Hosting;\n\nnamespace HelloWorld\n{\n    pub"
  },
  {
    "path": "blazor/Properties/launchSettings.json",
    "chars": 305,
    "preview": "{\n    \"profiles\": {\n        \"Web\": {\n            \"commandName\": \"Project\",\n            \"launchBrowser\": true,\n          "
  },
  {
    "path": "blazor/README.md",
    "chars": 881,
    "preview": "# A Blazor Web Assembly Hello World project\n\n## Getting Started\n\nYou need to have the .NET SDK installed on your compute"
  },
  {
    "path": "blazor/wwwroot/index.html",
    "chars": 462,
    "preview": "<!DOCTYPE html>\n<html>\n    <head>\n        <meta charset=\"utf-8\" />\n        <meta name=\"viewport\" content=\"width=device-w"
  },
  {
    "path": "eleventy/.gitignore",
    "chars": 34,
    "preview": "# /.gitignore\n\n_site\nnode_modules\n"
  },
  {
    "path": "eleventy/index.md",
    "chars": 14,
    "preview": "# Hello world!"
  },
  {
    "path": "eleventy/package.json",
    "chars": 303,
    "preview": "{\n  \"name\": \"hello-eleventy\",\n  \"private\": true,\n  \"description\": \"Eleventy hello world\",\n  \"version\": \"1.0.0\",\n  \"licen"
  },
  {
    "path": "elm/.gitignore",
    "chars": 23,
    "preview": "elm-stuff\npublic/elm.js"
  },
  {
    "path": "elm/README.md",
    "chars": 392,
    "preview": "# Intro\r\n\r\nBare minimum hello world in Elm in a [sandboxed](https://package.elm-lang.org/packages/elm/browser/latest/Bro"
  },
  {
    "path": "elm/elm.json",
    "chars": 517,
    "preview": "{\n    \"type\": \"application\",\n    \"source-directories\": [\n        \"src\"\n    ],\n    \"elm-version\": \"0.19.1\",\n    \"dependen"
  },
  {
    "path": "elm/package.json",
    "chars": 702,
    "preview": "{\n  \"name\": \"elm-helloworld\",\n  \"version\": \"1.0.0\",\n  \"description\": \"Hello World in Elm\",\n  \"main\": \"index.html\",\n  \"sc"
  },
  {
    "path": "elm/public/index.html",
    "chars": 426,
    "preview": "<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <meta name=\"viewport\" content=\"width=device-w"
  },
  {
    "path": "elm/src/Main.elm",
    "chars": 544,
    "preview": "module Main exposing (..)\r\n\r\nimport Browser\r\nimport Html exposing (Html, div, text)\r\nimport Platform.Cmd exposing (none)"
  },
  {
    "path": "ember/.editorconfig",
    "chars": 367,
    "preview": "# EditorConfig helps developers define and maintain consistent\n# coding styles between different editors and IDEs\n# edit"
  },
  {
    "path": "ember/.ember-cli",
    "chars": 280,
    "preview": "{\n  /**\n    Ember CLI sends analytics information by default. The data is completely\n    anonymous, but there are times "
  },
  {
    "path": "ember/.eslintignore",
    "chars": 240,
    "preview": "# unconventional js\n/blueprints/*/files/\n/vendor/\n\n# compiled output\n/dist/\n/tmp/\n\n# dependencies\n/bower_components/\n/no"
  },
  {
    "path": "ember/.eslintrc.js",
    "chars": 1170,
    "preview": "'use strict';\n\nmodule.exports = {\n  root: true,\n  parser: 'babel-eslint',\n  parserOptions: {\n    ecmaVersion: 2018,\n    "
  },
  {
    "path": "ember/.gitignore",
    "chars": 369,
    "preview": "# See https://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist/\n/tmp/\n\n# dependenci"
  },
  {
    "path": "ember/.template-lintrc.js",
    "chars": 57,
    "preview": "'use strict';\n\nmodule.exports = {\n  extends: 'octane'\n};\n"
  },
  {
    "path": "ember/.watchmanconfig",
    "chars": 37,
    "preview": "{\n  \"ignore_dirs\": [\"tmp\", \"dist\"]\n}\n"
  },
  {
    "path": "ember/README.md",
    "chars": 1241,
    "preview": "# hello-ember\n\nA minimal hello world example in Ember.\n\n## Prerequisites\n\nYou will need the following things properly in"
  },
  {
    "path": "ember/app/app.js",
    "chars": 384,
    "preview": "import Application from '@ember/application';\nimport Resolver from 'ember-resolver';\nimport loadInitializers from 'ember"
  },
  {
    "path": "ember/app/index.html",
    "chars": 701,
    "preview": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n   "
  },
  {
    "path": "ember/app/styles/app.css",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "ember/app/templates/application.hbs",
    "chars": 12,
    "preview": "Hello world!"
  },
  {
    "path": "ember/config/environment.js",
    "chars": 597,
    "preview": "'use strict';\n\nmodule.exports = function(environment) {\n  let ENV = {\n    modulePrefix: 'hello-ember',\n    environment,\n"
  },
  {
    "path": "ember/config/optional-features.json",
    "chars": 154,
    "preview": "{\n  \"application-template-wrapper\": false,\n  \"default-async-observers\": true,\n  \"jquery-integration\": false,\n  \"template"
  },
  {
    "path": "ember/config/targets.js",
    "chars": 305,
    "preview": "'use strict';\n\nconst browsers = [\n  'last 1 Chrome versions',\n  'last 1 Firefox versions',\n  'last 1 Safari versions'\n];"
  },
  {
    "path": "ember/ember-cli-build.js",
    "chars": 793,
    "preview": "'use strict';\n\nconst EmberApp = require('ember-cli/lib/broccoli/ember-app');\n\nmodule.exports = function(defaults) {\n  le"
  },
  {
    "path": "ember/package.json",
    "chars": 1447,
    "preview": "{\n  \"name\": \"hello-ember\",\n  \"version\": \"0.0.0\",\n  \"private\": true,\n  \"description\": \"A minimal hello world example in E"
  },
  {
    "path": "ember/public/robots.txt",
    "chars": 51,
    "preview": "# http://www.robotstxt.org\nUser-agent: *\nDisallow:\n"
  },
  {
    "path": "flutter/.gitignore",
    "chars": 722,
    "preview": "# Miscellaneous\n*.class\n*.log\n*.pyc\n*.swp\n.DS_Store\n.atom/\n.buildlog/\n.history\n.svn/\n\n# IntelliJ related\n*.iml\n*.ipr\n*.i"
  },
  {
    "path": "flutter/.metadata",
    "chars": 303,
    "preview": "# This file tracks properties of this Flutter project.\n# Used by Flutter tool to assess capabilities and perform upgrade"
  },
  {
    "path": "flutter/README.md",
    "chars": 890,
    "preview": "# A Hello World Flutter project\n\n## Getting Started\n\nYou need to have Flutter SDK installed on your computer in order to"
  },
  {
    "path": "flutter/android/.gitignore",
    "chars": 110,
    "preview": "gradle-wrapper.jar\n/.gradle\n/captures/\n/gradlew\n/gradlew.bat\n/local.properties\nGeneratedPluginRegistrant.java\n"
  },
  {
    "path": "flutter/android/app/build.gradle",
    "chars": 1772,
    "preview": "def localProperties = new Properties()\ndef localPropertiesFile = rootProject.file('local.properties')\nif (localPropertie"
  },
  {
    "path": "flutter/android/app/src/debug/AndroidManifest.xml",
    "chars": 333,
    "preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    package=\"com.example.hello_flutter\">\n    <!-- F"
  },
  {
    "path": "flutter/android/app/src/main/AndroidManifest.xml",
    "chars": 2584,
    "preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    package=\"com.example.hello_flutter\">\n    <!-- i"
  },
  {
    "path": "flutter/android/app/src/main/kotlin/com/example/hello_flutter/MainActivity.kt",
    "chars": 130,
    "preview": "package com.example.hello_flutter\n\nimport io.flutter.embedding.android.FlutterActivity\n\nclass MainActivity: FlutterActiv"
  },
  {
    "path": "flutter/android/app/src/main/res/drawable/launch_background.xml",
    "chars": 434,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- Modify this file to customize your launch splash screen -->\n<layer-list xmln"
  },
  {
    "path": "flutter/android/app/src/main/res/values/styles.xml",
    "chars": 951,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <!-- Theme applied to the Android Window while the process is sta"
  },
  {
    "path": "flutter/android/app/src/profile/AndroidManifest.xml",
    "chars": 333,
    "preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    package=\"com.example.hello_flutter\">\n    <!-- F"
  },
  {
    "path": "flutter/android/build.gradle",
    "chars": 582,
    "preview": "buildscript {\n    ext.kotlin_version = '1.3.50'\n    repositories {\n        google()\n        jcenter()\n    }\n\n    depende"
  },
  {
    "path": "flutter/android/gradle/wrapper/gradle-wrapper.properties",
    "chars": 233,
    "preview": "#Fri Jun 23 08:50:38 CEST 2017\ndistributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\nzipStoreBase=GRADLE_USER"
  },
  {
    "path": "flutter/android/gradle.properties",
    "chars": 104,
    "preview": "org.gradle.jvmargs=-Xmx1536M\nandroid.enableR8=true\nandroid.useAndroidX=true\nandroid.enableJetifier=true\n"
  },
  {
    "path": "flutter/android/settings.gradle",
    "chars": 627,
    "preview": "// Copyright 2014 The Flutter Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style licens"
  },
  {
    "path": "flutter/ios/.gitignore",
    "chars": 542,
    "preview": "*.mode1v3\n*.mode2v3\n*.moved-aside\n*.pbxuser\n*.perspectivev3\n**/*sync/\n.sconsign.dblite\n.tags*\n**/.vagrant/\n**/DerivedDat"
  },
  {
    "path": "flutter/ios/Flutter/AppFrameworkInfo.plist",
    "chars": 794,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "flutter/ios/Flutter/Debug.xcconfig",
    "chars": 30,
    "preview": "#include \"Generated.xcconfig\"\n"
  },
  {
    "path": "flutter/ios/Flutter/Release.xcconfig",
    "chars": 30,
    "preview": "#include \"Generated.xcconfig\"\n"
  },
  {
    "path": "flutter/ios/Runner/AppDelegate.swift",
    "chars": 404,
    "preview": "import UIKit\nimport Flutter\n\n@UIApplicationMain\n@objc class AppDelegate: FlutterAppDelegate {\n  override func applicatio"
  },
  {
    "path": "flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "chars": 2519,
    "preview": "{\n  \"images\" : [\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"Icon-App-20x20@2x.png\",\n   "
  },
  {
    "path": "flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json",
    "chars": 391,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"LaunchImage.png\",\n      \"scale\" : \"1x\"\n    },\n  "
  },
  {
    "path": "flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md",
    "chars": 336,
    "preview": "# Launch Screen Assets\n\nYou can customize the launch screen with your own desired assets by replacing the image files in"
  },
  {
    "path": "flutter/ios/Runner/Base.lproj/LaunchScreen.storyboard",
    "chars": 2377,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard"
  },
  {
    "path": "flutter/ios/Runner/Base.lproj/Main.storyboard",
    "chars": 1605,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard"
  },
  {
    "path": "flutter/ios/Runner/Info.plist",
    "chars": 1532,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "flutter/ios/Runner/Runner-Bridging-Header.h",
    "chars": 38,
    "preview": "#import \"GeneratedPluginRegistrant.h\"\n"
  },
  {
    "path": "flutter/ios/Runner.xcodeproj/project.pbxproj",
    "chars": 19188,
    "preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
  },
  {
    "path": "flutter/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "chars": 152,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"group:Runner.xcodepr"
  },
  {
    "path": "flutter/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "chars": 238,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "flutter/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings",
    "chars": 226,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "flutter/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme",
    "chars": 3291,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1020\"\n   version = \"1.3\">\n   <BuildAction\n      "
  },
  {
    "path": "flutter/ios/Runner.xcworkspace/contents.xcworkspacedata",
    "chars": 152,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"group:Runner.xcodepr"
  },
  {
    "path": "flutter/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "chars": 238,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "flutter/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings",
    "chars": 226,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "flutter/lib/main.dart",
    "chars": 402,
    "preview": "import 'package:flutter/material.dart';\n\nvoid main() => runApp(MyApp());\n\nclass MyApp extends StatelessWidget {\n  @overr"
  },
  {
    "path": "flutter/pubspec.yaml",
    "chars": 2890,
    "preview": "name: hello_flutter\ndescription: A new Flutter project.\n\n# The following line prevents the package from being accidental"
  },
  {
    "path": "flutter/test/widget_test.dart",
    "chars": 1052,
    "preview": "// This is a basic Flutter widget test.\n//\n// To perform an interaction with a widget in your test, use the WidgetTester"
  },
  {
    "path": "flutter/web/index.html",
    "chars": 1132,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"UTF-8\">\n  <meta content=\"IE=Edge\" http-equiv=\"X-UA-Compatible\">\n  <meta n"
  },
  {
    "path": "flutter/web/manifest.json",
    "chars": 582,
    "preview": "{\n    \"name\": \"hello_flutter\",\n    \"short_name\": \"hello_flutter\",\n    \"start_url\": \".\",\n    \"display\": \"standalone\",\n   "
  },
  {
    "path": "gatsby/.gitignore",
    "chars": 974,
    "preview": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n\n# Runtime data\npids\n*.pid\n*.seed\n*.pid.lock\n\n# Directo"
  },
  {
    "path": "gatsby/LICENSE",
    "chars": 1065,
    "preview": "MIT License\n\nCopyright (c) 2018 gatsbyjs\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\no"
  },
  {
    "path": "gatsby/README.md",
    "chars": 5401,
    "preview": "<!-- AUTO-GENERATED-CONTENT:START (STARTER) -->\n<p align=\"center\">\n  <a href=\"https://www.gatsbyjs.org\">\n    <img alt=\"G"
  },
  {
    "path": "gatsby/gatsby-config.js",
    "chars": 177,
    "preview": "/**\n * Configure your Gatsby site with this file.\n *\n * See: https://www.gatsbyjs.org/docs/gatsby-config/\n */\n\nmodule.ex"
  },
  {
    "path": "gatsby/package.json",
    "chars": 804,
    "preview": "{\n  \"name\": \"hello-gatsby\",\n  \"private\": true,\n  \"description\": \"A simplified bare-bones starter for Gatsby\",\n  \"version"
  },
  {
    "path": "gatsby/src/pages/index.js",
    "chars": 72,
    "preview": "import React from \"react\"\n\nexport default () => <div>Hello world!</div>\n"
  },
  {
    "path": "glimmer/.babelrc.js",
    "chars": 389,
    "preview": "module.exports = function (api) {\n  return {\n    plugins: [\n      ['@glimmer/babel-plugin-glimmer-env', { DEBUG: !api.en"
  },
  {
    "path": "glimmer/.editorconfig",
    "chars": 389,
    "preview": "# EditorConfig helps developers define and maintain consistent\n# coding styles between different editors and IDEs\n# edit"
  },
  {
    "path": "glimmer/.gitignore",
    "chars": 69,
    "preview": "node_modules\ntmp/*\ndist\n\nyarn-error.log\n/npm-debug.log*\n.eslintcache\n"
  },
  {
    "path": "glimmer/README.md",
    "chars": 675,
    "preview": "# hello-glimmer\n\nA minimal hello world example in Glimmer.\n\n## Prerequisites\n\nYou will need the following things properl"
  },
  {
    "path": "glimmer/index.html",
    "chars": 506,
    "preview": "<!doctype html>\n<html>\n  <head>\n    <title>hello-glimmer</title>\n\n    <link rel=\"icon\" href=\"./public/favicon.png\" />\n  "
  },
  {
    "path": "glimmer/package.json",
    "chars": 2793,
    "preview": "{\n  \"name\": \"hello-glimmer\",\n  \"version\": \"0.0.0\",\n  \"description\": \"A minimal hello world example in Glimmer.\",\n  \"dire"
  },
  {
    "path": "glimmer/public/manifest.json",
    "chars": 514,
    "preview": "{\n  \"short_name\": \"hello-glimmer\",\n  \"name\": \"A minimal hello world example in Glimmer.\",\n  \"icons\": [\n    {\n      \"src\""
  },
  {
    "path": "glimmer/src/App.js",
    "chars": 264,
    "preview": "import Component from '@glimmer/component';\nimport { setComponentTemplate, createTemplate } from '@glimmer/core';\n\nexpor"
  },
  {
    "path": "glimmer/src/index.js",
    "chars": 173,
    "preview": "import { renderComponent } from '@glimmer/core';\nimport App from './App';\n\nconst containerElement = document.getElementB"
  },
  {
    "path": "glimmer/tsconfig.json",
    "chars": 261,
    "preview": "{\n  \"compilerOptions\": {\n    \"target\": \"es6\",\n    \"module\": \"es2015\",\n    \"inlineSourceMap\": true,\n    \"inlineSources\": "
  },
  {
    "path": "glimmer/webpack.config.js",
    "chars": 1275,
    "preview": "const path = require('path');\nconst HtmlWebpackPlugin = require('html-webpack-plugin');\nconst CopyPlugin = require('copy"
  },
  {
    "path": "gridsome/.gitignore",
    "chars": 63,
    "preview": "*.log\n.cache\n.DS_Store\nsrc/.temp\nnode_modules\ndist\n.env\n.env.*\n"
  },
  {
    "path": "gridsome/README.md",
    "chars": 434,
    "preview": "# Default starter for Gridsome\n\nThis is the project you get when you run `gridsome create new-project`.\n\n### 1. Install "
  },
  {
    "path": "gridsome/gridsome.config.js",
    "chars": 292,
    "preview": "// This is where project configuration and plugin options are located.\n// Learn more: https://gridsome.org/docs/config\n\n"
  },
  {
    "path": "gridsome/package.json",
    "chars": 214,
    "preview": "{\n  \"name\": \"Gridsome\",\n  \"private\": true,\n  \"scripts\": {\n    \"build\": \"gridsome build\",\n    \"develop\": \"gridsome develo"
  },
  {
    "path": "gridsome/src/layouts/Default.vue",
    "chars": 68,
    "preview": "<template>\n  <div class=\"layout\">\n    <slot />\n  </div>\n</template>\n"
  },
  {
    "path": "gridsome/src/main.js",
    "chars": 345,
    "preview": "// This is the main.js file. Import global CSS and scripts here.\n// The Client API can be used here. Learn more: gridsom"
  },
  {
    "path": "gridsome/src/pages/Index.vue",
    "chars": 224,
    "preview": "<template>\n  <Layout>\n    <div>Hello {{ value }}</div>\n  </Layout>\n</template>\n\n<script>\nexport default {\n  metaInfo: {\n"
  },
  {
    "path": "html/index.html",
    "chars": 229,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width"
  },
  {
    "path": "hugo/.gitignore",
    "chars": 33,
    "preview": "public/\nnode_modules/\n/resources/"
  },
  {
    "path": "hugo/archetypes/default.md",
    "chars": 84,
    "preview": "---\ntitle: \"{{ replace .Name \"-\" \" \" | title }}\"\ndate: {{ .Date }}\ndraft: true\n---\n\n"
  },
  {
    "path": "hugo/config.toml",
    "chars": 81,
    "preview": "baseURL = \"/\"\nlanguageCode = \"en-us\"\ntitle = \"Hello World\"\n\ntheme = \"hello-world\""
  }
]

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

About this extraction

This page contains the full source code of the johnpapa/hello-worlds GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 393 files (333.9 KB), approximately 104.7k tokens, and a symbol index with 153 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

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

Copied to clipboard!