├── .github
└── ISSUE_TEMPLATE
│ ├── bug_report.md
│ └── feature_request.md
├── .gitignore
├── .nvmrc
├── .travis.yml
├── .vscode
├── launch.json
└── settings.json
├── API_PLAYGROUND.http
├── CHANGELOG.md
├── LICENSE
├── README.md
├── client
├── App.tsx
├── components
│ ├── app-footer
│ │ ├── __snapshots__
│ │ │ └── index.test.js.snap
│ │ ├── index.test.js
│ │ ├── index.tsx
│ │ └── styles.scss
│ ├── app-header
│ │ ├── __snapshots__
│ │ │ └── index.test.js.snap
│ │ ├── index.test.js
│ │ ├── index.tsx
│ │ └── styles.scss
│ ├── cart
│ │ ├── cart-item
│ │ │ ├── index.tsx
│ │ │ └── styles.scss
│ │ ├── index.tsx
│ │ └── styles.scss
│ ├── grocery-item
│ │ ├── index.tsx
│ │ └── styles.scss
│ ├── orders
│ │ ├── index.tsx
│ │ └── styles.scss
│ └── side-drawer
│ │ ├── __snapshots__
│ │ └── index.test.js.snap
│ │ ├── index.test.js
│ │ ├── index.tsx
│ │ └── styles.scss
├── data
│ ├── cart-store.js
│ ├── grocery-item-store.js
│ ├── listener-support.js
│ └── order-store.js
├── global.d.ts
├── img
│ ├── apple-touch-icon-114x114.png
│ ├── apple-touch-icon-120x120.png
│ ├── apple-touch-icon-144x144.png
│ ├── apple-touch-icon-152x152.png
│ ├── apple-touch-icon-180x180.png
│ ├── apple-touch-icon-57x57.png
│ ├── apple-touch-icon-60x60.png
│ ├── apple-touch-icon-72x72.png
│ ├── apple-touch-icon-76x76.png
│ ├── launcher-icon-1x.png
│ ├── launcher-icon-2x.png
│ ├── launcher-icon-4x.png
│ ├── launcher-icon-512.png
│ └── launcher-icon.psd
├── index.ejs
├── index.scss
├── index.tsx
├── routes
│ └── home
│ │ ├── category-row
│ │ ├── index.tsx
│ │ └── styles.scss
│ │ ├── index.tsx
│ │ └── styles.scss
├── sass
│ ├── _mixins.scss
│ ├── _variables.scss
│ └── content-wrapper.scss
└── utils
│ └── api.js
├── db
└── master.sqlite
├── docs
├── 1_using
│ ├── README.md
│ ├── debugging.md
│ ├── emmet.md
│ ├── markdown.md
│ ├── refactoring.md
│ └── type-checking.md
├── 2_customizing
│ ├── README.md
│ ├── launch-configuration.md
│ ├── tasks.md
│ └── workspace.md
└── README.md
├── exerciseLICENSE
├── package.json
├── public
├── debugging
│ ├── atom.jpg
│ ├── chrome-as-sublime.png
│ ├── netbeans.png
│ └── sublime-as-chrome.png
├── emmet
│ └── click-for-more.png
├── grocer.png
├── tasks
│ ├── problems.png
│ └── redline.png
└── vscode.png
├── renovate.json
├── server
├── api-router.js
├── db.js
├── images
│ ├── 0.jpg
│ ├── 1.jpg
│ ├── 10.jpg
│ ├── 100.jpg
│ ├── 101.jpg
│ ├── 102.jpg
│ ├── 103.jpg
│ ├── 104.jpg
│ ├── 105.jpg
│ ├── 106.jpg
│ ├── 107.jpg
│ ├── 108.jpg
│ ├── 109.jpg
│ ├── 11.jpg
│ ├── 110.jpg
│ ├── 111.jpg
│ ├── 112.jpg
│ ├── 113.jpg
│ ├── 114.jpg
│ ├── 115.jpg
│ ├── 116.jpg
│ ├── 117.jpg
│ ├── 118.jpg
│ ├── 119.jpg
│ ├── 12.jpg
│ ├── 120.jpg
│ ├── 121.jpg
│ ├── 122.jpg
│ ├── 123.jpg
│ ├── 124.jpg
│ ├── 125.jpg
│ ├── 126.jpg
│ ├── 127.jpg
│ ├── 128.jpg
│ ├── 129.jpg
│ ├── 13.jpg
│ ├── 130.jpg
│ ├── 131.jpg
│ ├── 132.jpg
│ ├── 133.jpg
│ ├── 134.jpg
│ ├── 135.jpg
│ ├── 136.jpg
│ ├── 137.jpg
│ ├── 138.jpg
│ ├── 139.jpg
│ ├── 14.jpg
│ ├── 140.jpg
│ ├── 141.jpg
│ ├── 142.jpg
│ ├── 143.jpg
│ ├── 144.jpg
│ ├── 145.jpg
│ ├── 146.jpg
│ ├── 147.jpg
│ ├── 148.jpg
│ ├── 149.jpg
│ ├── 15.jpg
│ ├── 150.jpg
│ ├── 151.jpg
│ ├── 152.jpg
│ ├── 153.jpg
│ ├── 154.jpg
│ ├── 155.jpg
│ ├── 156.jpg
│ ├── 157.jpg
│ ├── 158.jpg
│ ├── 159.jpg
│ ├── 16.jpg
│ ├── 160.jpg
│ ├── 161.jpg
│ ├── 162.jpg
│ ├── 163.jpg
│ ├── 164.jpg
│ ├── 165.jpg
│ ├── 166.jpg
│ ├── 167.jpg
│ ├── 168.jpg
│ ├── 169.jpg
│ ├── 17.jpg
│ ├── 170.jpg
│ ├── 171.jpg
│ ├── 172.jpg
│ ├── 173.jpg
│ ├── 174.jpg
│ ├── 175.jpg
│ ├── 176.jpg
│ ├── 177.jpg
│ ├── 178.jpg
│ ├── 179.jpg
│ ├── 18.jpg
│ ├── 180.jpg
│ ├── 181.jpg
│ ├── 182.jpg
│ ├── 183.jpg
│ ├── 184.jpg
│ ├── 185.jpg
│ ├── 186.jpg
│ ├── 187.jpg
│ ├── 188.jpg
│ ├── 189.jpg
│ ├── 19.jpg
│ ├── 190.jpg
│ ├── 191.jpg
│ ├── 192.jpg
│ ├── 193.jpg
│ ├── 194.jpg
│ ├── 195.jpg
│ ├── 196.jpg
│ ├── 197.jpg
│ ├── 198.jpg
│ ├── 199.jpg
│ ├── 2.jpg
│ ├── 20.jpg
│ ├── 200.jpg
│ ├── 201.jpg
│ ├── 202.jpg
│ ├── 203.jpg
│ ├── 204.jpg
│ ├── 205.jpg
│ ├── 206.jpg
│ ├── 207.jpg
│ ├── 208.jpg
│ ├── 209.jpg
│ ├── 21.jpg
│ ├── 210.jpg
│ ├── 211.jpg
│ ├── 212.jpg
│ ├── 213.jpg
│ ├── 214.jpg
│ ├── 215.jpg
│ ├── 216.jpg
│ ├── 217.jpg
│ ├── 218.jpg
│ ├── 219.jpg
│ ├── 22.jpg
│ ├── 220.jpg
│ ├── 221.jpg
│ ├── 222.jpg
│ ├── 223.jpg
│ ├── 224.jpg
│ ├── 225.jpg
│ ├── 226.jpg
│ ├── 227.jpg
│ ├── 228.jpg
│ ├── 229.jpg
│ ├── 23.jpg
│ ├── 230.jpg
│ ├── 231.jpg
│ ├── 232.jpg
│ ├── 233.jpg
│ ├── 234.jpg
│ ├── 235.jpg
│ ├── 236.jpg
│ ├── 237.jpg
│ ├── 238.jpg
│ ├── 239.jpg
│ ├── 24.jpg
│ ├── 240.jpg
│ ├── 241.jpg
│ ├── 242.jpg
│ ├── 243.jpg
│ ├── 244.jpg
│ ├── 245.jpg
│ ├── 246.jpg
│ ├── 247.jpg
│ ├── 248.jpg
│ ├── 249.jpg
│ ├── 25.jpg
│ ├── 250.jpg
│ ├── 251.jpg
│ ├── 252.jpg
│ ├── 253.jpg
│ ├── 254.jpg
│ ├── 255.jpg
│ ├── 256.jpg
│ ├── 257.jpg
│ ├── 258.jpg
│ ├── 259.jpg
│ ├── 26.jpg
│ ├── 260.jpg
│ ├── 261.jpg
│ ├── 262.jpg
│ ├── 263.jpg
│ ├── 264.jpg
│ ├── 265.jpg
│ ├── 266.jpg
│ ├── 267.jpg
│ ├── 268.jpg
│ ├── 269.jpg
│ ├── 27.jpg
│ ├── 270.jpg
│ ├── 271.jpg
│ ├── 272.jpg
│ ├── 273.jpg
│ ├── 274.jpg
│ ├── 275.jpg
│ ├── 276.jpg
│ ├── 277.jpg
│ ├── 278.jpg
│ ├── 279.jpg
│ ├── 28.jpg
│ ├── 280.jpg
│ ├── 281.jpg
│ ├── 282.jpg
│ ├── 283.jpg
│ ├── 284.jpg
│ ├── 285.jpg
│ ├── 286.jpg
│ ├── 287.jpg
│ ├── 288.jpg
│ ├── 289.jpg
│ ├── 29.jpg
│ ├── 290.jpg
│ ├── 291.jpg
│ ├── 292.jpg
│ ├── 293.jpg
│ ├── 294.jpg
│ ├── 295.jpg
│ ├── 296.jpg
│ ├── 297.jpg
│ ├── 298.jpg
│ ├── 299.jpg
│ ├── 3.jpg
│ ├── 30.jpg
│ ├── 300.jpg
│ ├── 301.jpg
│ ├── 302.jpg
│ ├── 303.jpg
│ ├── 304.jpg
│ ├── 305.jpg
│ ├── 306.jpg
│ ├── 307.jpg
│ ├── 308.jpg
│ ├── 309.jpg
│ ├── 31.jpg
│ ├── 310.jpg
│ ├── 311.jpg
│ ├── 312.jpg
│ ├── 313.jpg
│ ├── 314.jpg
│ ├── 315.jpg
│ ├── 316.jpg
│ ├── 317.jpg
│ ├── 318.jpg
│ ├── 319.jpg
│ ├── 32.jpg
│ ├── 320.jpg
│ ├── 321.jpg
│ ├── 322.jpg
│ ├── 323.jpg
│ ├── 324.jpg
│ ├── 325.jpg
│ ├── 326.jpg
│ ├── 327.jpg
│ ├── 328.jpg
│ ├── 329.jpg
│ ├── 33.jpg
│ ├── 330.jpg
│ ├── 331.jpg
│ ├── 332.jpg
│ ├── 333.jpg
│ ├── 334.jpg
│ ├── 335.jpg
│ ├── 336.jpg
│ ├── 337.jpg
│ ├── 338.jpg
│ ├── 339.jpg
│ ├── 34.jpg
│ ├── 340.jpg
│ ├── 341.jpg
│ ├── 342.jpg
│ ├── 343.jpg
│ ├── 344.jpg
│ ├── 345.jpg
│ ├── 346.jpg
│ ├── 347.jpg
│ ├── 348.jpg
│ ├── 349.jpg
│ ├── 35.jpg
│ ├── 350.jpg
│ ├── 351.jpg
│ ├── 352.jpg
│ ├── 353.jpg
│ ├── 354.jpg
│ ├── 355.jpg
│ ├── 356.jpg
│ ├── 357.jpg
│ ├── 358.jpg
│ ├── 359.jpg
│ ├── 36.jpg
│ ├── 360.jpg
│ ├── 361.jpg
│ ├── 362.jpg
│ ├── 363.jpg
│ ├── 364.jpg
│ ├── 365.jpg
│ ├── 366.jpg
│ ├── 367.jpg
│ ├── 368.jpg
│ ├── 369.jpg
│ ├── 37.jpg
│ ├── 370.jpg
│ ├── 371.jpg
│ ├── 372.jpg
│ ├── 373.jpg
│ ├── 374.jpg
│ ├── 375.jpg
│ ├── 376.jpg
│ ├── 377.jpg
│ ├── 378.jpg
│ ├── 379.jpg
│ ├── 38.jpg
│ ├── 380.jpg
│ ├── 381.jpg
│ ├── 382.jpg
│ ├── 383.jpg
│ ├── 384.jpg
│ ├── 385.jpg
│ ├── 386.jpg
│ ├── 387.jpg
│ ├── 388.jpg
│ ├── 389.jpg
│ ├── 39.jpg
│ ├── 390.jpg
│ ├── 391.jpg
│ ├── 392.jpg
│ ├── 393.jpg
│ ├── 394.jpg
│ ├── 395.jpg
│ ├── 396.jpg
│ ├── 397.jpg
│ ├── 398.jpg
│ ├── 399.jpg
│ ├── 4.jpg
│ ├── 40.jpg
│ ├── 400.jpg
│ ├── 401.jpg
│ ├── 402.jpg
│ ├── 403.jpg
│ ├── 404.jpg
│ ├── 405.jpg
│ ├── 406.jpg
│ ├── 407.jpg
│ ├── 408.jpg
│ ├── 409.jpg
│ ├── 41.jpg
│ ├── 410.jpg
│ ├── 411.jpg
│ ├── 412.jpg
│ ├── 413.jpg
│ ├── 414.jpg
│ ├── 415.jpg
│ ├── 416.jpg
│ ├── 417.jpg
│ ├── 418.jpg
│ ├── 419.jpg
│ ├── 42.jpg
│ ├── 420.jpg
│ ├── 421.jpg
│ ├── 422.jpg
│ ├── 423.jpg
│ ├── 424.jpg
│ ├── 425.jpg
│ ├── 426.jpg
│ ├── 427.jpg
│ ├── 428.jpg
│ ├── 429.jpg
│ ├── 43.jpg
│ ├── 430.jpg
│ ├── 431.jpg
│ ├── 432.jpg
│ ├── 433.jpg
│ ├── 434.jpg
│ ├── 435.jpg
│ ├── 436.jpg
│ ├── 437.jpg
│ ├── 438.jpg
│ ├── 439.jpg
│ ├── 44.jpg
│ ├── 440.jpg
│ ├── 441.jpg
│ ├── 442.jpg
│ ├── 443.jpg
│ ├── 444.jpg
│ ├── 445.jpg
│ ├── 446.jpg
│ ├── 447.jpg
│ ├── 448.jpg
│ ├── 449.jpg
│ ├── 45.jpg
│ ├── 450.jpg
│ ├── 451.jpg
│ ├── 452.jpg
│ ├── 453.jpg
│ ├── 454.jpg
│ ├── 455.jpg
│ ├── 456.jpg
│ ├── 457.jpg
│ ├── 458.jpg
│ ├── 459.jpg
│ ├── 46.jpg
│ ├── 460.jpg
│ ├── 461.jpg
│ ├── 462.jpg
│ ├── 463.jpg
│ ├── 464.jpg
│ ├── 465.jpg
│ ├── 466.jpg
│ ├── 467.jpg
│ ├── 468.jpg
│ ├── 469.jpg
│ ├── 47.jpg
│ ├── 470.jpg
│ ├── 471.jpg
│ ├── 472.jpg
│ ├── 473.jpg
│ ├── 474.jpg
│ ├── 475.jpg
│ ├── 476.jpg
│ ├── 477.jpg
│ ├── 478.jpg
│ ├── 479.jpg
│ ├── 48.jpg
│ ├── 480.jpg
│ ├── 481.jpg
│ ├── 482.jpg
│ ├── 483.jpg
│ ├── 484.jpg
│ ├── 485.jpg
│ ├── 486.jpg
│ ├── 487.jpg
│ ├── 488.jpg
│ ├── 489.jpg
│ ├── 49.jpg
│ ├── 490.jpg
│ ├── 491.jpg
│ ├── 492.jpg
│ ├── 493.jpg
│ ├── 494.jpg
│ ├── 495.jpg
│ ├── 496.jpg
│ ├── 497.jpg
│ ├── 498.jpg
│ ├── 499.jpg
│ ├── 5.jpg
│ ├── 50.jpg
│ ├── 500.jpg
│ ├── 501.jpg
│ ├── 502.jpg
│ ├── 503.jpg
│ ├── 504.jpg
│ ├── 505.jpg
│ ├── 506.jpg
│ ├── 507.jpg
│ ├── 508.jpg
│ ├── 509.jpg
│ ├── 51.jpg
│ ├── 510.jpg
│ ├── 511.jpg
│ ├── 512.jpg
│ ├── 513.jpg
│ ├── 514.jpg
│ ├── 515.jpg
│ ├── 516.jpg
│ ├── 517.jpg
│ ├── 518.jpg
│ ├── 519.jpg
│ ├── 52.jpg
│ ├── 520.jpg
│ ├── 521.jpg
│ ├── 522.jpg
│ ├── 523.jpg
│ ├── 524.jpg
│ ├── 525.jpg
│ ├── 526.jpg
│ ├── 527.jpg
│ ├── 528.jpg
│ ├── 529.jpg
│ ├── 53.jpg
│ ├── 530.jpg
│ ├── 531.jpg
│ ├── 532.jpg
│ ├── 533.jpg
│ ├── 534.jpg
│ ├── 535.jpg
│ ├── 536.jpg
│ ├── 537.jpg
│ ├── 538.jpg
│ ├── 539.jpg
│ ├── 54.jpg
│ ├── 55.jpg
│ ├── 56.jpg
│ ├── 57.jpg
│ ├── 58.jpg
│ ├── 59.jpg
│ ├── 6.jpg
│ ├── 60.jpg
│ ├── 61.jpg
│ ├── 62.jpg
│ ├── 63.jpg
│ ├── 64.jpg
│ ├── 65.jpg
│ ├── 66.jpg
│ ├── 67.jpg
│ ├── 68.jpg
│ ├── 69.jpg
│ ├── 7.jpg
│ ├── 70.jpg
│ ├── 71.jpg
│ ├── 72.jpg
│ ├── 73.jpg
│ ├── 74.jpg
│ ├── 75.jpg
│ ├── 76.jpg
│ ├── 77.jpg
│ ├── 78.jpg
│ ├── 79.jpg
│ ├── 8.jpg
│ ├── 80.jpg
│ ├── 81.jpg
│ ├── 82.jpg
│ ├── 83.jpg
│ ├── 84.jpg
│ ├── 85.jpg
│ ├── 86.jpg
│ ├── 87.jpg
│ ├── 88.jpg
│ ├── 89.jpg
│ ├── 9.jpg
│ ├── 90.jpg
│ ├── 91.jpg
│ ├── 92.jpg
│ ├── 93.jpg
│ ├── 94.jpg
│ ├── 95.jpg
│ ├── 96.jpg
│ ├── 97.jpg
│ ├── 98.jpg
│ ├── 99.jpg
│ ├── fallback-bakery.png
│ ├── fallback-dairy.png
│ ├── fallback-frozen.png
│ ├── fallback-fruit.png
│ ├── fallback-grocery.png
│ ├── fallback-herbs.png
│ ├── fallback-meat.png
│ └── fallback-vegetable.png
├── index.js
├── models
│ ├── cart-item.js
│ ├── grocery-item.js
│ ├── index.js
│ ├── order-item.js
│ └── order.js
├── router.js
├── routes
│ ├── cart.js
│ ├── grocery.js
│ ├── order.js
│ └── orders.js
├── seed.js
├── seeds.csv
├── tsconfig.json
└── webpack-middleware.js
├── tools
└── rebase-exercise-branches.js
├── tsconfig.json
├── tslint.json
├── webpack.config.dev.js
├── webpack
├── extract-sass.js
├── module.js
└── plugins.js
└── yarn.lock
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Something broke while you were progressing through the workshop
4 |
5 | ---
6 |
7 |
8 |
11 |
12 | - [ ] **System Information**
13 | - [ ] Browser type and version
14 | - [ ] OS type and version
15 | - [ ] WINDOWS: be sure to indicate which terminal you're using -- (i.e., cmd.exe, powershell, git- bash, cygwin, Ubuntu via windows subsystem for linux, etc...)
16 | - [ ] Node version
17 | - [ ] Any error messages that may be in the console where you ran npm start
18 | - [ ] Any error messages in the JS console
19 |
20 | - [ ] **Describe the bug**
21 |
22 |
23 | - [ ] **To Reproduce**
24 | Steps to reproduce the behavior:
25 | 1. Go to '...'
26 | 2. Click on '....'
27 | 3. Scroll down to '....'
28 | 4. See error
29 |
30 | - [ ] **Expected behavior**
31 | A clear and concise description of what you expected to happen.
32 |
33 | - [ ] **Screenshots (optional)**
34 | If applicable, add screenshots to help explain your problem.
35 |
36 | - [ ] **Additional context (optional)**
37 | Add any other context about the problem here.
38 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 |
5 | ---
6 |
7 | **Is your feature request related to a problem? Please describe.**
8 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
9 |
10 | **Describe the solution you'd like**
11 | A clear and concise description of what you want to happen.
12 |
13 | **Describe alternatives you've considered**
14 | A clear and concise description of any alternative solutions or features you've considered.
15 |
16 | **Additional context**
17 | Add any other context or screenshots about the feature request here.
18 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | dist
2 | dist-server
3 | node_modules
4 | yarn-error*
5 | db/development.sqlite
6 | tocopy*
7 | package-lock.json
--------------------------------------------------------------------------------
/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.17.0
2 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | cache:
3 | directories:
4 | - ~/.npm
5 | notifications:
6 | email: false
7 | node_js:
8 | - '10'
9 | - '8'
10 | after_success:
11 | - npm run travis-deploy-once "npm run semantic-release"
12 | branches:
13 | except:
14 | - /^v\d+\.\d+\.\d+$/
15 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | // Use IntelliSense to learn about possible Node.js debug attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | "version": "0.2.0",
6 | "configurations": [
7 | {
8 | "type": "node",
9 | "request": "attach",
10 | "name": "Attach",
11 | "sourceMaps": true,
12 | "port": 9229,
13 | "protocol": "inspector"
14 | },
15 | {
16 | "type": "chrome",
17 | "request": "launch",
18 | "name": "Launch Chrome",
19 | "url": "http://localhost:3000",
20 | "webRoot": "${workspaceRoot}"
21 | }
22 | ]
23 | }
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "typescript.tsdk": "node_modules/typescript/lib"
3 | }
--------------------------------------------------------------------------------
/API_PLAYGROUND.http:
--------------------------------------------------------------------------------
1 | ##############################
2 | # GROCERY ITEM CATEGORIES
3 | ##############################
4 |
5 | GET http://localhost:3000/api/grocery/categories
6 |
7 | ##############################
8 | # GROCERY ITEMS
9 | ##############################
10 |
11 | GET http://localhost:3000/api/grocery/items
12 |
13 | ###
14 | # By default this returns 10 items, but we can ask for more with the limit queryparam
15 |
16 | GET http://localhost:3000/api/grocery/items?limit=2
17 |
18 | ###
19 | # Or "offset" the list of results (i.e., for pagination)
20 |
21 | GET http://localhost:3000/api/grocery/items?offset=10
22 |
23 | ###
24 | # We can also filter by category
25 |
26 | GET http://localhost:3000/api/grocery/items?category=fruit
27 |
28 |
29 | ##############################
30 | # CURRENT SHOPPING CART
31 | ##############################
32 |
33 | ###
34 | # You can set the contents of your shopping cart as follows.
35 |
36 | PUT http://localhost:3000/api/cart/items HTTP/1.1
37 | content-type: application/json
38 |
39 | {"data":
40 | [
41 | {"groceryItem": { "id": 132 }, "qty": 9},
42 | {"groceryItem": { "id": 134 }, "qty": 2},
43 | {"groceryItem": { "id": 118 }, "qty": 1}
44 | ]
45 | }
46 |
47 | ##############################
48 | # ORDER
49 | ##############################
50 |
51 | ###
52 | # Get a collection of orders in the system
53 |
54 | GET http://localhost:3000/api/orders HTTP/1.1
55 |
56 | ###
57 | # Get a a single orders in the system by ID
58 | GET http://localhost:3000/api/orders/1 HTTP/1.1
59 |
60 | ###
61 | # Create a new order. This will result in all cart items being removed
62 | # and a new order being created (and returned)
63 |
64 | POST http://localhost:3000/api/order HTTP/1.1
65 | content-type: application/json
66 |
67 | {"data":
68 | [
69 | {"groceryItem": { "id": 132 }, "qty": 9},
70 | {"groceryItem": { "id": 134 }, "qty": 2},
71 | {"groceryItem": { "id": 118 }, "qty": 1}
72 | ]
73 | }
74 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | BSD 3-Clause License
2 |
3 | Copyright (c) 2018, Mike Works, Inc.
4 | All rights reserved.
5 |
6 | Redistribution and use in source and binary forms, with or without
7 | modification, are permitted provided that the following conditions are met:
8 |
9 | * Redistributions of source code must retain the above copyright notice, this
10 | list of conditions and the following disclaimer.
11 |
12 | * Redistributions in binary form must reproduce the above copyright notice,
13 | this list of conditions and the following disclaimer in the documentation
14 | and/or other materials provided with the distribution.
15 |
16 | * Neither the name of the copyright holder nor the names of its
17 | contributors may be used to endorse or promote products derived from
18 | this software without specific prior written permission.
19 |
20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 |
--------------------------------------------------------------------------------
/client/components/app-footer/__snapshots__/index.test.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`AppFooter renders as expected 1`] = `
4 |
21 | `;
22 |
--------------------------------------------------------------------------------
/client/components/app-footer/index.test.js:
--------------------------------------------------------------------------------
1 | // @ts-nocheck
2 | import React from 'react';
3 | import AppFooter from './index';
4 | import renderer from 'react-test-renderer';
5 |
6 | test('AppFooter renders as expected', () => {
7 | const component = renderer.create(
8 |
9 | );
10 | let tree = component.toJSON();
11 | expect(tree).toMatchSnapshot();
12 | });
--------------------------------------------------------------------------------
/client/components/app-footer/index.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | import './styles.scss';
4 |
5 | const AppFooter = () => (
6 |
11 | );
12 |
13 | export default AppFooter;
14 |
--------------------------------------------------------------------------------
/client/components/app-footer/styles.scss:
--------------------------------------------------------------------------------
1 | @import './../../sass/variables';
2 | @import './../../sass/mixins';
3 |
4 | .footer {
5 | background-color: $theme-background;
6 | bottom: 0;
7 | color: #fff;
8 | height: 20px;
9 | left: 0;
10 | position: fixed;
11 | transition: transform 0.2s;
12 | width: 100%;
13 |
14 | a {
15 | color: #fff;
16 | text-decoration: underline;
17 | }
18 |
19 | @include large-screens {
20 | transform: translateX(0);
21 |
22 | .frontend-grocer.show-left-sidedrawer & {
23 | transform: translateX($sidedrawer-width);
24 | }
25 |
26 | .frontend-grocer.show-right-sidedrawer & {
27 | transform: translateX(-$sidedrawer-width);
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/client/components/app-header/index.test.js:
--------------------------------------------------------------------------------
1 | // @ts-nocheck
2 | import React from 'react';
3 | import AppHeader from './index';
4 | import renderer from 'react-test-renderer';
5 |
6 | test('AppHeader renders as expected', () => {
7 | const component = renderer.create(
8 | null}>
9 | );
10 | let tree = component.toJSON();
11 | expect(tree).toMatchSnapshot();
12 | });
--------------------------------------------------------------------------------
/client/components/app-header/styles.scss:
--------------------------------------------------------------------------------
1 | @import './../../sass/variables';
2 | @import './../../sass/mixins';
3 |
4 | .header {
5 | position: fixed;
6 | top: 0;
7 | right: 0;
8 | left: 0;
9 | z-index: 2;
10 | transform: translateX(0);
11 | transition: transform 0.2s;
12 |
13 | .qr-input {
14 | display: none;
15 | }
16 |
17 | a {
18 | color: #fff;
19 | }
20 |
21 | a:hover,
22 | a:focus,
23 | a:visited {
24 | text-decoration: none;
25 | }
26 |
27 | .cart-item-count-badge {
28 | background: red;
29 | position: absolute;
30 | top: 10px;
31 | right: 15px;
32 | display: block;
33 | color: white;
34 | border-radius: 50%;
35 | width: 24px;
36 | height: 24px;
37 | line-height: 24px;
38 | font-size: 2rem;
39 | font-weight: bold;
40 | }
41 |
42 | .appbar-icon {
43 | margin-right: 15px;
44 |
45 | &:last-of-type {
46 | margin-right: 5px;
47 | }
48 |
49 | svg {
50 | position: relative;
51 | top: 2px;
52 |
53 | @include large-screens {
54 | top: 5px;
55 | }
56 | }
57 | }
58 |
59 | .appbar-icon,
60 | .sidedrawer-toggle {
61 | margin-top: 10px;
62 | display: inline-block;
63 | cursor: pointer;
64 | font-size: 20px;
65 | line-height: 43px;
66 | width: 43px;
67 | height: 43px;
68 | border-radius: 50%;
69 | text-align: center;
70 | background-color: transparent;
71 | transition: background-color 0.2s;
72 |
73 | &:hover {
74 | color: #fff;
75 | background-color: rgba(0, 0, 0, 0.1);
76 | text-decoration: none;
77 | }
78 | }
79 |
80 | .logo {
81 | position: relative;
82 | top: 2px;
83 | }
84 |
85 | @include large-screens {
86 | transform: translateX(0);
87 |
88 | .frontend-grocer.show-left-sidedrawer & {
89 | transform: translateX($sidedrawer-width);
90 | }
91 |
92 | .frontend-grocer.show-right-sidedrawer & {
93 | transform: translateX(-$sidedrawer-width);
94 | }
95 | }
96 | }
97 |
--------------------------------------------------------------------------------
/client/components/cart/cart-item/index.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import { endpoint as API_ENDPOINT } from '../../../utils/api';
3 |
4 | import './styles.scss';
5 | import CartStore from 'client/data/cart-store';
6 |
7 | function formatPrice(price: number) {
8 | return `$${price.toFixed(2)}`;
9 | }
10 |
11 | function CartItem({cartItem, cartStore}: { cartItem: ICartItem, cartStore: CartStore}) {
12 | const itemImgUrl = `${API_ENDPOINT}.${cartItem.groceryItem.imageUrl}`;
13 | const totalPrice = cartItem.qty * cartItem.groceryItem.price;
14 | return (
15 |
16 |
17 |
20 | {cartItem.qty}
21 |
24 | |
25 |
26 |
27 | |
28 |
29 | {cartItem.groceryItem.name}
30 | {formatPrice(cartItem.groceryItem.price)} / {cartItem.groceryItem.unit || 'each'}
31 | |
32 |
33 |
34 | {formatPrice(totalPrice)}
35 | |
36 |
37 | );
38 | }
39 |
40 | export default CartItem;
41 |
--------------------------------------------------------------------------------
/client/components/cart/cart-item/styles.scss:
--------------------------------------------------------------------------------
1 | $cart-item-qty-width: 30px;
2 | $cart-item-price-width: 30px;
3 | $cart-item-img-width: 46px;
4 |
5 | .cart-item {
6 | overflow: hidden;
7 | position: relative;
8 | width: 90%;
9 |
10 | .cart-item__qty,
11 | .cart-item__img,
12 | .cart-item__description,
13 | .cart-item__price {
14 | display: table-cell;
15 | padding-bottom: 15px;
16 | }
17 |
18 | .cart-item__img {
19 | width: $cart-item-img-width;
20 | vertical-align: top;
21 |
22 | img {
23 | vertical-align: top;
24 | width: 100%;
25 | }
26 | }
27 |
28 | .cart-item__description {
29 | .cart-item__name {
30 | color: #333;
31 | }
32 |
33 | .cart-item__unit {
34 | color: #999;
35 | }
36 | }
37 |
38 | .cart-item__qty {
39 | vertical-align: top;
40 | width: $cart-item-qty-width;
41 | font-size: 2.5rem;
42 | text-align: center;
43 | line-height: 2.2rem;
44 |
45 | .amt {
46 | position: relative;
47 | top: -12px;
48 | }
49 |
50 | .qty-down,
51 | .qty-up {
52 | position: relative;
53 | font-size: 2rem;
54 | border: none;
55 | background: transparent;
56 | color: lightgray;
57 | }
58 |
59 | .qty-up {
60 | top: -10px;
61 | }
62 | }
63 |
64 | .cart-item__price {
65 | padding-left: 8px;
66 | font-weight: bolder;
67 | vertical-align: top;
68 | font-size: 1.6rem;
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/client/components/cart/styles.scss:
--------------------------------------------------------------------------------
1 | .cart {
2 | .cart-items {
3 | width: 100%;
4 | padding: 10px;
5 | }
6 |
7 | .checkout-btn-container {
8 | margin: 10px;
9 |
10 | .confirm-btn,
11 | .cancel-btn {
12 | width: calc(50% - 5px);
13 | }
14 | }
15 |
16 | .checkout-btn {
17 | background: green;
18 | width: calc(100%);
19 | font-weight: bolder;
20 |
21 | .amt {
22 | padding: 2px 5px;
23 | border-radius: 2px;
24 | border: 1px solid lightgreen;
25 | background: darken(desaturate(green, 20%), 10%);
26 | }
27 | }
28 |
29 | .checkout-confirm {
30 | max-height: 0;
31 | overflow: hidden;
32 |
33 | &.open {
34 | max-height: none;
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/client/components/grocery-item/index.tsx:
--------------------------------------------------------------------------------
1 | // @ts-check
2 |
3 | import * as React from 'react';
4 | import { endpoint as API_ENDPOINT } from '../../utils/api';
5 |
6 | import './styles.scss';
7 | import CartStore from 'client/data/cart-store';
8 |
9 | function formatPrice(rawPrice: number) {
10 | return `$${rawPrice.toFixed(2)}`;
11 | }
12 |
13 | const GroceryItem = ({ item, cartStore }: {item: {imageUrl: string, name: string, price: number, unit: string}, cartStore: CartStore}) => {
14 | const itemUrl = `${API_ENDPOINT}${item.imageUrl.substring(1)}`;
15 | const price = formatPrice(item.price);
16 |
17 | const unit = item.unit;
18 | return (
19 |
20 |
21 | {item.name}
22 |
23 | {price}
24 | {unit ? {unit} : ''}
25 |
26 |
29 |
30 | );
31 | };
32 |
33 | export default GroceryItem;
34 |
--------------------------------------------------------------------------------
/client/components/grocery-item/styles.scss:
--------------------------------------------------------------------------------
1 | @import '../../sass/variables';
2 |
3 | $bottom-tile-height: 36px;
4 |
5 | .GroceryItem {
6 | display: inline-block;
7 | height: $grocery-item-tile-height;
8 | width: $grocery-item-tile-width;
9 | overflow: hidden;
10 | margin: 10px;
11 | position: relative;
12 |
13 | &:first-child {
14 | margin-left: -20px;
15 | }
16 |
17 | .item-image {
18 | position: absolute;
19 | bottom: 5%;
20 | left: 5%;
21 | max-width: 90%;
22 | }
23 |
24 | .bottom-tile {
25 | position: absolute;
26 | bottom: 0;
27 | height: $bottom-tile-height;
28 | line-height: $bottom-tile-height;
29 | opacity: 0.6;
30 | transition: opacity 0.2s;
31 |
32 | &.bottom-tile--right {
33 | right: 0;
34 | border-top-left-radius: 3px;
35 | }
36 |
37 | &.bottom-tile--left {
38 | left: 0;
39 | border-top-right-radius: 3px;
40 | }
41 | }
42 |
43 | &:hover .bottom-tile {
44 | opacity: 1;
45 | }
46 |
47 | .item-price {
48 | background: green;
49 | color: white;
50 | font-weight: bold;
51 | font-size: 1.4rem;
52 | padding: 0 5px;
53 |
54 | .item-unit {
55 | font-size: 1rem;
56 | text-transform: uppercase;
57 | margin-left: 4px;
58 | }
59 | }
60 |
61 | .item-name {
62 | position: absolute;
63 | font-size: 1.8rem;
64 | top: 0;
65 | background: rgba(255, 255, 255, 0.8);
66 | width: 90%;
67 | white-space: normal;
68 | }
69 |
70 | .add-item-to-cart {
71 | margin-bottom: 0;
72 | padding: 0 10px;
73 | font-size: $bottom-tile-height;
74 | }
75 | }
76 |
--------------------------------------------------------------------------------
/client/components/orders/index.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | import './styles.scss';
4 |
5 | function Orders({ orders }: { orders: Array<{id: string, totalPrice: number, name: string, status: string}> }) {
6 | const orderItems = orders.map((o) => {
7 | return (
8 |
9 | {o.name}
10 |
11 |
12 |
13 | {o.status}
14 |
15 |
16 | ${o.totalPrice}
17 |
18 |
19 | );
20 | });
21 | return (
22 |
23 | {orderItems.length > 0
24 | ? orderItems
25 | : - No Orders
}
26 |
27 | );
28 | }
29 |
30 | export default Orders;
31 |
--------------------------------------------------------------------------------
/client/components/orders/styles.scss:
--------------------------------------------------------------------------------
1 | .orders-list {
2 | .orders-list-item.sidedrawer-list__item {
3 | border-bottom: 1px solid #aaa;
4 | padding-bottom: 5px;
5 |
6 | &:hover {
7 | background: lightyellow;
8 | }
9 |
10 | .price {
11 | color: green;
12 | }
13 |
14 | & > a,
15 | & > a:hover {
16 | text-decoration: none;
17 | color: black;
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/client/components/side-drawer/__snapshots__/index.test.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`SideDrawer renders as expected when drawer is hiding 1`] = `
4 |
7 | `;
8 |
9 | exports[`SideDrawer renders as expected when drawer is showing 1`] = `
10 |
13 | `;
14 |
--------------------------------------------------------------------------------
/client/components/side-drawer/index.test.js:
--------------------------------------------------------------------------------
1 | // @ts-nocheck
2 | import React from 'react';
3 | import SideDrawer from './index';
4 | import renderer from 'react-test-renderer';
5 |
6 | test('SideDrawer renders as expected when drawer is showing', () => {
7 |
8 | const component = renderer.create(
9 |
10 | );
11 | let tree = component.toJSON();
12 | expect(tree).toMatchSnapshot();
13 | });
14 |
15 | test('SideDrawer renders as expected when drawer is hiding', () => {
16 |
17 | const component = renderer.create(
18 |
19 | );
20 | let tree = component.toJSON();
21 | expect(tree).toMatchSnapshot();
22 | });
23 |
--------------------------------------------------------------------------------
/client/components/side-drawer/index.tsx:
--------------------------------------------------------------------------------
1 | // @ts-check
2 | import * as React from 'react';
3 |
4 | import './styles.scss';
5 |
6 | function SideDrawer({ drawerShowing, children, side}: {drawerShowing: boolean, children: any[], side: string}) {
7 | const topClasses = ['sidedrawer', 'mui--no-user-select', (side || 'left')];
8 | if (drawerShowing) {
9 | topClasses.push('active');
10 | }
11 | return (
12 |
13 | {children}
14 |
15 | );
16 | }
17 | export default SideDrawer;
18 |
--------------------------------------------------------------------------------
/client/components/side-drawer/styles.scss:
--------------------------------------------------------------------------------
1 | @import './../../sass/_variables';
2 | @import './../../sass/_mixins';
3 |
4 | .sidedrawer {
5 | position: fixed;
6 | top: 0;
7 | bottom: 0;
8 | width: $sidedrawer-width;
9 | overflow: auto;
10 | background-color: #fff;
11 | transition: transform 0.2s;
12 | z-index: 100000000;
13 |
14 | &.left {
15 | transform: translateX(-$sidedrawer-width);
16 |
17 | &.active {
18 | transform: translate(0);
19 | }
20 |
21 | @include large-screens {
22 | transform: translateX(-$sidedrawer-width);
23 | }
24 | }
25 |
26 | &.right {
27 | right: -$sidedrawer-width;
28 |
29 | &.active {
30 | transform: translateX(-$sidedrawer-width);
31 | }
32 | }
33 |
34 | .sidedrawer-list {
35 | list-style: none;
36 | padding-left: 0;
37 |
38 | .sidedrawer-list__item {
39 | padding: 15px 22px;
40 |
41 | &:first-child {
42 | padding-top: 15px;
43 | }
44 | }
45 | }
46 |
47 | .brand {
48 | padding-left: 20px;
49 | }
50 |
51 | @include large-screens {
52 | .frontend-grocer.hide-sidedrawer & {
53 | transform: translate(0);
54 | }
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/client/data/listener-support.js:
--------------------------------------------------------------------------------
1 | /**
2 | * A class for things we can register listeners to and fire events
3 | * @author Mike North
4 | * @public
5 | */
6 | export default class ListenerSupport {
7 | constructor() {
8 | this._listeners = [];
9 | }
10 |
11 | /**
12 | * Register a listener
13 | * @return {void}
14 | */
15 | register(listener) {
16 | this._listeners.push(listener);
17 | }
18 |
19 | /**
20 | * Un-register a listener
21 | * @return {void}
22 | */
23 | unregister(listener) {
24 | let idx = this._listeners.findIndex((x) => x === listener);
25 | this._listeners.splice(idx, 1);
26 | }
27 |
28 | /**
29 | * Fire an event, synchronously invoking all listener callbacks that have been registered
30 | * @see #register
31 | */
32 | fire(payload) {
33 | this._listeners.forEach((x) => x(payload));
34 | }
35 | }
36 |
37 | let invoice = [];
38 | invoice.push({
39 | qty: 2,
40 | item: {
41 | name: 'Apple',
42 | price: 1.32
43 | }
44 | });
45 |
46 | invoice.push({bad: 'thing'});
--------------------------------------------------------------------------------
/client/data/order-store.js:
--------------------------------------------------------------------------------
1 | import ListenerSupport from './listener-support';
2 | import { endpoint as API_ENDPOINT } from '../utils/api';
3 |
4 | /**
5 | * A class for keeping track of order state
6 | * @public
7 | */
8 | export default class OrderStore {
9 | /**
10 | * Create a new OrderStore instance.
11 | * There's usually only one of these per app
12 | * @public
13 | */
14 | constructor() {
15 | this._items = [];
16 | this.refresh();
17 | this.orderListeners = new ListenerSupport();
18 | }
19 |
20 | /**
21 | * Get the list of orders in the store
22 | * This is a read-only array
23 | *
24 | * @public
25 | */
26 | get orders() {
27 | return Object.freeze(this._items);
28 | }
29 |
30 | /**
31 | * Fetch fresh data, and refresh the list of orders in memory.
32 | * This will result in any appropriate listeners being notified
33 | *
34 | * @public
35 | */
36 | refresh() {
37 | return fetch(`${API_ENDPOINT}api/orders?status=pending`)
38 | .then((resp) => resp.json())
39 | .then((jsonData) => {
40 | this._items = [...(jsonData.data || [])];
41 | this._onOrdersUpdated();
42 | return this.orders;
43 | });
44 | }
45 |
46 | /**
47 | * Get an individual order by id
48 | * This will result a new API request being made
49 | *
50 | * @public
51 | */
52 | getOrderById(id) {
53 | return fetch(`${API_ENDPOINT}api/orders/${id}`)
54 | .then((resp) => resp.json())
55 | .then((jsonData) => jsonData.data);
56 | }
57 |
58 | /**
59 | * Notify any appropriate observers that the orders have changed
60 | *
61 | * @private
62 | */
63 | _onOrdersUpdated() {
64 | this.orderListeners.fire(this.orders);
65 | }
66 | }
--------------------------------------------------------------------------------
/client/global.d.ts:
--------------------------------------------------------------------------------
1 | interface IGroceryItem {
2 | id: number;
3 | price: number;
4 | name: string;
5 | unit: string;
6 | imageUrl: string;
7 | }
8 |
9 | interface ICartItem {
10 | groceryItem: IGroceryItem;
11 | qty: number;
12 | }
13 |
14 | declare module 'muicss/lib/react/container';
15 | declare module 'muicss/lib/react/appbar';
--------------------------------------------------------------------------------
/client/img/apple-touch-icon-114x114.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/client/img/apple-touch-icon-114x114.png
--------------------------------------------------------------------------------
/client/img/apple-touch-icon-120x120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/client/img/apple-touch-icon-120x120.png
--------------------------------------------------------------------------------
/client/img/apple-touch-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/client/img/apple-touch-icon-144x144.png
--------------------------------------------------------------------------------
/client/img/apple-touch-icon-152x152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/client/img/apple-touch-icon-152x152.png
--------------------------------------------------------------------------------
/client/img/apple-touch-icon-180x180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/client/img/apple-touch-icon-180x180.png
--------------------------------------------------------------------------------
/client/img/apple-touch-icon-57x57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/client/img/apple-touch-icon-57x57.png
--------------------------------------------------------------------------------
/client/img/apple-touch-icon-60x60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/client/img/apple-touch-icon-60x60.png
--------------------------------------------------------------------------------
/client/img/apple-touch-icon-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/client/img/apple-touch-icon-72x72.png
--------------------------------------------------------------------------------
/client/img/apple-touch-icon-76x76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/client/img/apple-touch-icon-76x76.png
--------------------------------------------------------------------------------
/client/img/launcher-icon-1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/client/img/launcher-icon-1x.png
--------------------------------------------------------------------------------
/client/img/launcher-icon-2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/client/img/launcher-icon-2x.png
--------------------------------------------------------------------------------
/client/img/launcher-icon-4x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/client/img/launcher-icon-4x.png
--------------------------------------------------------------------------------
/client/img/launcher-icon-512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/client/img/launcher-icon-512.png
--------------------------------------------------------------------------------
/client/img/launcher-icon.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/client/img/launcher-icon.psd
--------------------------------------------------------------------------------
/client/index.ejs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | <%= htmlWebpackPlugin.options.title %>
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/client/index.scss:
--------------------------------------------------------------------------------
1 | @import 'mui';
2 | @import 'sass/variables';
3 |
4 | html,
5 | body {
6 | background-color: $offwhite;
7 | height: 100%;
8 | }
9 |
10 | html,
11 | body,
12 | input,
13 | textarea,
14 | button {
15 | -moz-osx-font-smoothing: grayscale;
16 | -webkit-font-smoothing: antialiased;
17 | }
18 |
19 | .pull-right {
20 | float: right;
21 | }
22 |
23 | .pull-left {
24 | float: left;
25 | }
26 |
27 | .badge {
28 | padding: 3px 5px;
29 | background: slategray;
30 | color: white;
31 | font-weight: bolder;
32 | text-transform: uppercase;
33 | border-radius: 3px;
34 | line-height: 0.8rem;
35 | }
36 |
--------------------------------------------------------------------------------
/client/index.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import * as ReactDOM from 'react-dom';
3 | import './index.scss';
4 | import App from './App';
5 |
6 | import 'file-loader?name=./img/launcher-icon-1x.png!./img/launcher-icon-1x.png';
7 | import 'file-loader?name=./img/launcher-icon-2x.png!./img/launcher-icon-2x.png';
8 | import 'file-loader?name=./img/launcher-icon-4x.png!./img/launcher-icon-4x.png';
9 | import 'file-loader?name=./apple-touch-icon-57x57.png!./img/apple-touch-icon-57x57.png';
10 | import 'file-loader?name=./apple-touch-icon-60x60.png!./img/apple-touch-icon-60x60.png';
11 | import 'file-loader?name=./apple-touch-icon-72x72.png!./img/apple-touch-icon-72x72.png';
12 | import 'file-loader?name=./apple-touch-icon-76x76.png!./img/apple-touch-icon-76x76.png';
13 | import 'file-loader?name=./apple-touch-icon-114x114.png!./img/apple-touch-icon-114x114.png';
14 | import 'file-loader?name=./apple-touch-icon-120x120.png!./img/apple-touch-icon-120x120.png';
15 | import 'file-loader?name=./apple-touch-icon-144x144.png!./img/apple-touch-icon-144x144.png';
16 | import 'file-loader?name=./apple-touch-icon-152x152.png!./img/apple-touch-icon-152x152.png';
17 | import 'file-loader?name=./apple-touch-icon-180x180.png!./img/apple-touch-icon-180x180.png';
18 |
19 | ReactDOM.render((), document.getElementById('root'));
20 |
--------------------------------------------------------------------------------
/client/routes/home/category-row/index.tsx:
--------------------------------------------------------------------------------
1 | import './styles.scss';
2 |
3 | import * as React from 'react';
4 | import GroceryItemUI from '../../../components/grocery-item';
5 | import GroceryItemStore from 'client/data/grocery-item-store';
6 | import CartStore from 'client/data/cart-store';
7 |
8 | interface ICategoryRowProps {
9 | groceryItemStore: GroceryItemStore;
10 | cartStore: CartStore;
11 | categoryName: string;
12 | className: string;
13 | }
14 |
15 | interface ICategoryRowState {
16 | groceryItems: IGroceryItem[];
17 | }
18 |
19 | class CategoryRow extends React.Component {
20 | private itemUpdateListener: () => void;
21 | constructor(opts) {
22 | super(opts);
23 | this.state = {
24 | groceryItems: []
25 | };
26 | }
27 | _updateGroceryItems() {
28 | this.props.groceryItemStore
29 | .itemsForCategory(this.props.categoryName)
30 | .then((groceryItems: IGroceryItem[]) => {
31 | this.setState({ groceryItems });
32 | });
33 | }
34 | componentDidMount() {
35 | this._updateGroceryItems();
36 | this.itemUpdateListener = () => {
37 | this._updateGroceryItems();
38 | };
39 | this.props.groceryItemStore.itemListeners.register(this.itemUpdateListener);
40 | this.props.groceryItemStore.updateItemsForCategory(this.props.categoryName, 10);
41 | }
42 |
43 | componentWillUnmount() {
44 | this.props.groceryItemStore.itemListeners.unregister(this.itemUpdateListener);
45 | }
46 |
47 | render() {
48 | const itemComponents = this.state.groceryItems.map((item) => (
49 |
53 | ));
54 | return (
55 |
56 | {this.props.categoryName}
57 |
58 | {itemComponents}
59 | {/* 👇 code for exercise 1 here 👇 */}
60 |
61 |
62 |
63 |
64 |
65 |
66 | );
67 | }
68 | }
69 |
70 | export default CategoryRow;
--------------------------------------------------------------------------------
/client/routes/home/category-row/styles.scss:
--------------------------------------------------------------------------------
1 | @import '../../../sass/variables';
2 |
3 | .CategoryRow {
4 | height: $category-row-height;
5 | margin-right: -15px;
6 | margin-left: -15px;
7 |
8 | .category-name {
9 | line-height: $category-row-header-height;
10 | margin-top: 0;
11 | margin-bottom: 0;
12 | margin-left: 20px;
13 | }
14 |
15 | .grocery-item-list {
16 | padding-left: 40px;
17 | overflow: auto;
18 | white-space: nowrap;
19 | margin-top: 0;
20 | margin-bottom: 0;
21 | }
22 |
23 | .category-details-link a {
24 | line-height: $category-row-header-height;
25 | margin-right: 5px;
26 | display: inline-block;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/client/routes/home/index.tsx:
--------------------------------------------------------------------------------
1 | import './styles.scss';
2 |
3 | import * as React from 'react';
4 | import CategoryRow from './category-row';
5 | import GroceryItemStore from 'client/data/grocery-item-store';
6 | import CartStore from 'client/data/cart-store';
7 |
8 | interface IHomeProps {
9 | groceryItemStore: GroceryItemStore;
10 | cartStore: CartStore;
11 | }
12 | interface IHomeState {
13 | categories: ArrayLike;
14 | }
15 |
16 | class Home extends React.Component {
17 | constructor(opts) {
18 | super(opts);
19 | this.state = { categories: this.props.groceryItemStore.categories };
20 | }
21 | componentDidMount() {
22 | this.props.groceryItemStore.categoryListeners.register((newCategories) => {
23 | this.setState({categories: newCategories});
24 | });
25 | this.props.groceryItemStore.updateCategories();
26 | }
27 |
28 | render() {
29 | const categoryRows = (this.state.categories as any[]).map((c) => (
30 |
36 | ));
37 | return (
38 |
43 | );
44 | }
45 | }
46 |
47 | export default Home;
48 |
--------------------------------------------------------------------------------
/client/routes/home/styles.scss:
--------------------------------------------------------------------------------
1 | .category-list {
2 | list-style: none;
3 | margin: 0;
4 | padding: 0;
5 | }
6 |
--------------------------------------------------------------------------------
/client/sass/_mixins.scss:
--------------------------------------------------------------------------------
1 | @import '_variables';
2 |
3 | @mixin large-screens() {
4 | @media (min-width: $small-screen-width) {
5 | @content;
6 | }
7 | }
8 |
9 | @mixin small-screens() {
10 | @media (max-width: $small-screen-width) {
11 | @content;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/client/sass/_variables.scss:
--------------------------------------------------------------------------------
1 | $offwhite: #eee;
2 | $theme-background: #0288d1;
3 | $small-screen-width: 768px;
4 |
5 | $grocery-item-tile-height: 180px;
6 | $grocery-item-tile-width: 120px;
7 | $grocery-item-tile-padding: 15px;
8 | $grocery-item-tile-margin: 10px;
9 |
10 | $category-row-header-height: 32px;
11 |
12 | $category-row-height: $category-row-header-height + $grocery-item-tile-height + (2 * $grocery-item-tile-margin) + (2 * $grocery-item-tile-padding);
13 |
14 | $sidedrawer-width: 320px;
15 |
--------------------------------------------------------------------------------
/client/sass/content-wrapper.scss:
--------------------------------------------------------------------------------
1 | @import "mixins";
2 |
3 | .content-wrapper {
4 | margin-bottom: -160px;
5 | margin-left: 0;
6 | min-height: 100vh;
7 | overflow-x: hidden;
8 | padding-bottom: 160px;
9 | transition: margin-left 0.2s;
10 |
11 | @include large-screens {
12 | transform: translateX(0);
13 |
14 | .frontend-grocer.show-left-sidedrawer & {
15 | transform: translateX($sidedrawer-width);
16 | }
17 |
18 | .frontend-grocer.show-right-sidedrawer & {
19 | transform: translateX(-$sidedrawer-width);
20 | }
21 | }
22 | }
23 |
24 | .bg-white {
25 | background: #fff;
26 | border: 1px solid #e0e0e0;
27 | }
28 |
--------------------------------------------------------------------------------
/client/utils/api.js:
--------------------------------------------------------------------------------
1 | let metaContents =
2 | /** @type {HTMLMetaElement} */(document.head.querySelector('meta[name="fegrocer-api-endpoint"]')).content;
3 | let apiEndpoint = new URL(window.location.href);
4 | apiEndpoint.protocol = window.location.protocol;
5 |
6 | export const endpoint = apiEndpoint.toString();
--------------------------------------------------------------------------------
/db/master.sqlite:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/db/master.sqlite
--------------------------------------------------------------------------------
/docs/1_using/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # Using Visual Studio Code
4 |
5 | * 📄 [Awesome Documents](./markdown.md)
6 | * ⏩ [Emmet](./emmet.md)
7 | * 🎛 [Refactoring](./refactoring.md)
8 | * ✅ [Type-Checking](./type-checking.md)
9 | * 🐞 [Debugging](./debugging.md)
10 |
11 | ---
12 |
13 | ## The best way to get to know this editor...
14 |
15 | Let's use it to do some stuff!
16 |
17 | Here's the example we will be working with - a grocery app! 
18 | It's a client/server app, built with bleeding edge versions of the following:
19 | - [React 16 (beta)](https://github.com/facebook/react/issues/10294)
20 | - [Webpack 3](https://webpack.js.org/)
21 | - [TypeScript 2.5](https://blogs.msdn.microsoft.com/typescript/2017/08/31/announcing-typescript-2-5/)
22 | - [Koa](http://koajs.com/)
23 |
24 |
25 | This is intended to show you the most modern web tools🔧 available. 95% of this can be done in older versions too!
26 |
27 |
28 |
29 | Take a moment now to ensure you're all set up.
30 | First, make sure you're running a recent version of Node.js
31 | ```sh
32 | node --version # v8.0.0 or newer
33 | ```
34 | And we need a library called sqlite3 for our database. You can check your version by running
35 | ```sh
36 | # If you don't have it yet
37 | brew install sqlite3
38 | # If you already have it
39 | sqlite3 --version # 3.16.0 2016-11-04...
40 | ```
41 | And it's helpful to have a package manager called yarn
42 | ```sh
43 | # If you don't have it yet
44 | brew install yarn
45 | # If you already have it
46 | yarn --version # 0.27.5
47 | ```
48 | ```sh
49 | git clone https://github.com/mike-north/vscode-fundamentals vscode
50 | cd vscode
51 | yarn
52 | npm start
53 | # Open http://localhost:3000
54 | ```
55 |
56 | NEXT: 📄 [Awesome Documents](./markdown.md)
--------------------------------------------------------------------------------
/docs/1_using/refactoring.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # Using Visual Studio Code
4 |
5 | * 📄 [Awesome Documents](./markdown.md)
6 | * ⏩ [Emmet](./emmet.md)
7 | * 🎛 **Refactoring**
8 | * ✅ [Type-Checking](./type-checking.md)
9 | * 🐞 [Debugging](./debugging.md)
10 |
11 | ---
12 |
13 | ## Navigating & Refactoring
14 |
15 | ### Go To
16 |
17 | * ...file
18 | * ...definition
19 | * ...type definition
20 | * ...symbol
21 | * ...in file
22 | * ...in workspace
23 | * ...line (by number)
24 |
25 |
26 |
27 | ### Selection
28 |
29 | * Select All Cmd + A
30 | * Select Next Occurrence Your KB Here
31 | * Select All Occurrences Your KB Here
32 |
33 |
34 |
35 | ### Multi-Cursor
36 |
37 | * Add cursor @ position Opt + Click
38 | * Box select Opt + Shift + Click
39 | * Undo last cursor Cmd + U
40 |
41 |
42 |
43 | ### Line Manipulation
44 |
45 | * Move Line Up Opt + ⬆️
46 | * Move Line Down Opt + ⬇️
47 | * Copy Line Below Opt + Shift + ⬇️
48 |
49 |
50 |
51 |
52 | ### Peek
53 |
54 | * Opens up a split in editor
55 | * Peek at type definition
56 | * Find all References
57 |
58 |
59 |
60 | ### Rename
61 |
62 | * Level 1: Find/Replace
63 | * Level 2: Cmd + D for selection
64 | * Level 3: "Extract into function" and F2 for rename in ALL FILES
65 |
66 |
67 |
68 | # Exercise 2: Refactoring
69 | > * Make the following changes to [/client/data/listener-support.js](/client/data/listener-support.js)
70 | > * `register` and `unregister` should be changed to `registerListener` and `unregisterListener`, respectively
71 | > * `fire` should be passed an object of the structure `{data: object[]}`
72 | > * Ensure that all places in the code that call `fire` are updated to use this new structure
73 | > * No code that registers listeners should need to be altered as a consequence of this change
74 |
75 | ---
76 |
77 | NEXT: ✅ [Type-Checking](./type-checking.md)
--------------------------------------------------------------------------------
/docs/2_customizing/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## Customizing Visual Studio Code
4 |
5 | * 🎨 [Workspace Customization](./workspace.md)
6 | * ☑️ [Tasks](./tasks.md)
7 | * 🚀 [Launch Configuration](./launch-configuration.md)
8 |
9 |
--------------------------------------------------------------------------------
/exerciseLICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2018, Mike Works, Inc. All rights reserved.
2 |
3 | This training material (all exercises and accompanying tests) is licensed to
4 | the individual who purchased it. We don't copy-protect it because that would
5 | limit your ability to use it for your own purposes. Please don't break this
6 | trust - don't allow others to use these exercises without purchasing their own
7 | license. Thanks.
8 |
9 | Redistribution and use in source and binary forms, with or without
10 | modification, are not permitted provided without an individual license. It may
11 | not be used to create training material, courses, books, articles, and the like.
12 | Contact us if you are in doubt. We make no guarantees that this code is
13 | fit for any purpose.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18 | FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
19 | ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/public/debugging/atom.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/public/debugging/atom.jpg
--------------------------------------------------------------------------------
/public/debugging/chrome-as-sublime.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/public/debugging/chrome-as-sublime.png
--------------------------------------------------------------------------------
/public/debugging/netbeans.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/public/debugging/netbeans.png
--------------------------------------------------------------------------------
/public/debugging/sublime-as-chrome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/public/debugging/sublime-as-chrome.png
--------------------------------------------------------------------------------
/public/emmet/click-for-more.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/public/emmet/click-for-more.png
--------------------------------------------------------------------------------
/public/grocer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/public/grocer.png
--------------------------------------------------------------------------------
/public/tasks/problems.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/public/tasks/problems.png
--------------------------------------------------------------------------------
/public/tasks/redline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/public/tasks/redline.png
--------------------------------------------------------------------------------
/public/vscode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/public/vscode.png
--------------------------------------------------------------------------------
/renovate.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["@mike-works/js-lib-renovate-config"]
3 | }
4 |
--------------------------------------------------------------------------------
/server/api-router.js:
--------------------------------------------------------------------------------
1 | const Router = require('koa-router');
2 | const cart = require('./routes/cart');
3 | const orders = require('./routes/orders');
4 | const order = require('./routes/order');
5 | const grocery = require('./routes/grocery');
6 |
7 | let router = new Router();
8 |
9 | router.use('/cart', cart.routes(), cart.allowedMethods());
10 | router.use('/orders', orders.routes(), orders.allowedMethods());
11 | router.use('/order', order.routes(), order.allowedMethods());
12 | router.use('/grocery', grocery.routes(), grocery.allowedMethods());
13 |
14 | module.exports = router;
--------------------------------------------------------------------------------
/server/images/0.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/0.jpg
--------------------------------------------------------------------------------
/server/images/1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/1.jpg
--------------------------------------------------------------------------------
/server/images/10.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/10.jpg
--------------------------------------------------------------------------------
/server/images/100.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/100.jpg
--------------------------------------------------------------------------------
/server/images/101.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/101.jpg
--------------------------------------------------------------------------------
/server/images/102.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/102.jpg
--------------------------------------------------------------------------------
/server/images/103.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/103.jpg
--------------------------------------------------------------------------------
/server/images/104.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/104.jpg
--------------------------------------------------------------------------------
/server/images/105.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/105.jpg
--------------------------------------------------------------------------------
/server/images/106.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/106.jpg
--------------------------------------------------------------------------------
/server/images/107.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/107.jpg
--------------------------------------------------------------------------------
/server/images/108.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/108.jpg
--------------------------------------------------------------------------------
/server/images/109.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/109.jpg
--------------------------------------------------------------------------------
/server/images/11.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/11.jpg
--------------------------------------------------------------------------------
/server/images/110.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/110.jpg
--------------------------------------------------------------------------------
/server/images/111.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/111.jpg
--------------------------------------------------------------------------------
/server/images/112.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/112.jpg
--------------------------------------------------------------------------------
/server/images/113.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/113.jpg
--------------------------------------------------------------------------------
/server/images/114.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/114.jpg
--------------------------------------------------------------------------------
/server/images/115.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/115.jpg
--------------------------------------------------------------------------------
/server/images/116.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/116.jpg
--------------------------------------------------------------------------------
/server/images/117.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/117.jpg
--------------------------------------------------------------------------------
/server/images/118.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/118.jpg
--------------------------------------------------------------------------------
/server/images/119.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/119.jpg
--------------------------------------------------------------------------------
/server/images/12.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/12.jpg
--------------------------------------------------------------------------------
/server/images/120.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/120.jpg
--------------------------------------------------------------------------------
/server/images/121.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/121.jpg
--------------------------------------------------------------------------------
/server/images/122.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/122.jpg
--------------------------------------------------------------------------------
/server/images/123.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/123.jpg
--------------------------------------------------------------------------------
/server/images/124.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/124.jpg
--------------------------------------------------------------------------------
/server/images/125.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/125.jpg
--------------------------------------------------------------------------------
/server/images/126.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/126.jpg
--------------------------------------------------------------------------------
/server/images/127.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/127.jpg
--------------------------------------------------------------------------------
/server/images/128.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/128.jpg
--------------------------------------------------------------------------------
/server/images/129.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/129.jpg
--------------------------------------------------------------------------------
/server/images/13.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/13.jpg
--------------------------------------------------------------------------------
/server/images/130.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/130.jpg
--------------------------------------------------------------------------------
/server/images/131.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/131.jpg
--------------------------------------------------------------------------------
/server/images/132.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/132.jpg
--------------------------------------------------------------------------------
/server/images/133.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/133.jpg
--------------------------------------------------------------------------------
/server/images/134.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/134.jpg
--------------------------------------------------------------------------------
/server/images/135.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/135.jpg
--------------------------------------------------------------------------------
/server/images/136.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/136.jpg
--------------------------------------------------------------------------------
/server/images/137.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/137.jpg
--------------------------------------------------------------------------------
/server/images/138.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/138.jpg
--------------------------------------------------------------------------------
/server/images/139.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/139.jpg
--------------------------------------------------------------------------------
/server/images/14.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/14.jpg
--------------------------------------------------------------------------------
/server/images/140.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/140.jpg
--------------------------------------------------------------------------------
/server/images/141.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/141.jpg
--------------------------------------------------------------------------------
/server/images/142.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/142.jpg
--------------------------------------------------------------------------------
/server/images/143.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/143.jpg
--------------------------------------------------------------------------------
/server/images/144.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/144.jpg
--------------------------------------------------------------------------------
/server/images/145.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/145.jpg
--------------------------------------------------------------------------------
/server/images/146.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/146.jpg
--------------------------------------------------------------------------------
/server/images/147.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/147.jpg
--------------------------------------------------------------------------------
/server/images/148.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/148.jpg
--------------------------------------------------------------------------------
/server/images/149.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/149.jpg
--------------------------------------------------------------------------------
/server/images/15.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/15.jpg
--------------------------------------------------------------------------------
/server/images/150.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/150.jpg
--------------------------------------------------------------------------------
/server/images/151.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/151.jpg
--------------------------------------------------------------------------------
/server/images/152.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/152.jpg
--------------------------------------------------------------------------------
/server/images/153.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/153.jpg
--------------------------------------------------------------------------------
/server/images/154.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/154.jpg
--------------------------------------------------------------------------------
/server/images/155.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/155.jpg
--------------------------------------------------------------------------------
/server/images/156.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/156.jpg
--------------------------------------------------------------------------------
/server/images/157.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/157.jpg
--------------------------------------------------------------------------------
/server/images/158.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/158.jpg
--------------------------------------------------------------------------------
/server/images/159.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/159.jpg
--------------------------------------------------------------------------------
/server/images/16.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/16.jpg
--------------------------------------------------------------------------------
/server/images/160.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/160.jpg
--------------------------------------------------------------------------------
/server/images/161.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/161.jpg
--------------------------------------------------------------------------------
/server/images/162.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/162.jpg
--------------------------------------------------------------------------------
/server/images/163.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/163.jpg
--------------------------------------------------------------------------------
/server/images/164.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/164.jpg
--------------------------------------------------------------------------------
/server/images/165.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/165.jpg
--------------------------------------------------------------------------------
/server/images/166.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/166.jpg
--------------------------------------------------------------------------------
/server/images/167.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/167.jpg
--------------------------------------------------------------------------------
/server/images/168.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/168.jpg
--------------------------------------------------------------------------------
/server/images/169.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/169.jpg
--------------------------------------------------------------------------------
/server/images/17.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/17.jpg
--------------------------------------------------------------------------------
/server/images/170.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/170.jpg
--------------------------------------------------------------------------------
/server/images/171.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/171.jpg
--------------------------------------------------------------------------------
/server/images/172.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/172.jpg
--------------------------------------------------------------------------------
/server/images/173.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/173.jpg
--------------------------------------------------------------------------------
/server/images/174.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/174.jpg
--------------------------------------------------------------------------------
/server/images/175.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/175.jpg
--------------------------------------------------------------------------------
/server/images/176.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/176.jpg
--------------------------------------------------------------------------------
/server/images/177.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/177.jpg
--------------------------------------------------------------------------------
/server/images/178.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/178.jpg
--------------------------------------------------------------------------------
/server/images/179.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/179.jpg
--------------------------------------------------------------------------------
/server/images/18.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/18.jpg
--------------------------------------------------------------------------------
/server/images/180.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/180.jpg
--------------------------------------------------------------------------------
/server/images/181.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/181.jpg
--------------------------------------------------------------------------------
/server/images/182.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/182.jpg
--------------------------------------------------------------------------------
/server/images/183.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/183.jpg
--------------------------------------------------------------------------------
/server/images/184.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/184.jpg
--------------------------------------------------------------------------------
/server/images/185.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/185.jpg
--------------------------------------------------------------------------------
/server/images/186.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/186.jpg
--------------------------------------------------------------------------------
/server/images/187.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/187.jpg
--------------------------------------------------------------------------------
/server/images/188.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/188.jpg
--------------------------------------------------------------------------------
/server/images/189.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/189.jpg
--------------------------------------------------------------------------------
/server/images/19.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/19.jpg
--------------------------------------------------------------------------------
/server/images/190.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/190.jpg
--------------------------------------------------------------------------------
/server/images/191.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/191.jpg
--------------------------------------------------------------------------------
/server/images/192.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/192.jpg
--------------------------------------------------------------------------------
/server/images/193.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/193.jpg
--------------------------------------------------------------------------------
/server/images/194.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/194.jpg
--------------------------------------------------------------------------------
/server/images/195.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/195.jpg
--------------------------------------------------------------------------------
/server/images/196.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/196.jpg
--------------------------------------------------------------------------------
/server/images/197.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/197.jpg
--------------------------------------------------------------------------------
/server/images/198.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/198.jpg
--------------------------------------------------------------------------------
/server/images/199.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/199.jpg
--------------------------------------------------------------------------------
/server/images/2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/2.jpg
--------------------------------------------------------------------------------
/server/images/20.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/20.jpg
--------------------------------------------------------------------------------
/server/images/200.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/200.jpg
--------------------------------------------------------------------------------
/server/images/201.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/201.jpg
--------------------------------------------------------------------------------
/server/images/202.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/202.jpg
--------------------------------------------------------------------------------
/server/images/203.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/203.jpg
--------------------------------------------------------------------------------
/server/images/204.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/204.jpg
--------------------------------------------------------------------------------
/server/images/205.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/205.jpg
--------------------------------------------------------------------------------
/server/images/206.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/206.jpg
--------------------------------------------------------------------------------
/server/images/207.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/207.jpg
--------------------------------------------------------------------------------
/server/images/208.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/208.jpg
--------------------------------------------------------------------------------
/server/images/209.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/209.jpg
--------------------------------------------------------------------------------
/server/images/21.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/21.jpg
--------------------------------------------------------------------------------
/server/images/210.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/210.jpg
--------------------------------------------------------------------------------
/server/images/211.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/211.jpg
--------------------------------------------------------------------------------
/server/images/212.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/212.jpg
--------------------------------------------------------------------------------
/server/images/213.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/213.jpg
--------------------------------------------------------------------------------
/server/images/214.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/214.jpg
--------------------------------------------------------------------------------
/server/images/215.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/215.jpg
--------------------------------------------------------------------------------
/server/images/216.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/216.jpg
--------------------------------------------------------------------------------
/server/images/217.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/217.jpg
--------------------------------------------------------------------------------
/server/images/218.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/218.jpg
--------------------------------------------------------------------------------
/server/images/219.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/219.jpg
--------------------------------------------------------------------------------
/server/images/22.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/22.jpg
--------------------------------------------------------------------------------
/server/images/220.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/220.jpg
--------------------------------------------------------------------------------
/server/images/221.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/221.jpg
--------------------------------------------------------------------------------
/server/images/222.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/222.jpg
--------------------------------------------------------------------------------
/server/images/223.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/223.jpg
--------------------------------------------------------------------------------
/server/images/224.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/224.jpg
--------------------------------------------------------------------------------
/server/images/225.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/225.jpg
--------------------------------------------------------------------------------
/server/images/226.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/226.jpg
--------------------------------------------------------------------------------
/server/images/227.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/227.jpg
--------------------------------------------------------------------------------
/server/images/228.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/228.jpg
--------------------------------------------------------------------------------
/server/images/229.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/229.jpg
--------------------------------------------------------------------------------
/server/images/23.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/23.jpg
--------------------------------------------------------------------------------
/server/images/230.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/230.jpg
--------------------------------------------------------------------------------
/server/images/231.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/231.jpg
--------------------------------------------------------------------------------
/server/images/232.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/232.jpg
--------------------------------------------------------------------------------
/server/images/233.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/233.jpg
--------------------------------------------------------------------------------
/server/images/234.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/234.jpg
--------------------------------------------------------------------------------
/server/images/235.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/235.jpg
--------------------------------------------------------------------------------
/server/images/236.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/236.jpg
--------------------------------------------------------------------------------
/server/images/237.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/237.jpg
--------------------------------------------------------------------------------
/server/images/238.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/238.jpg
--------------------------------------------------------------------------------
/server/images/239.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/239.jpg
--------------------------------------------------------------------------------
/server/images/24.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/24.jpg
--------------------------------------------------------------------------------
/server/images/240.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/240.jpg
--------------------------------------------------------------------------------
/server/images/241.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/241.jpg
--------------------------------------------------------------------------------
/server/images/242.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/242.jpg
--------------------------------------------------------------------------------
/server/images/243.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/243.jpg
--------------------------------------------------------------------------------
/server/images/244.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/244.jpg
--------------------------------------------------------------------------------
/server/images/245.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/245.jpg
--------------------------------------------------------------------------------
/server/images/246.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/246.jpg
--------------------------------------------------------------------------------
/server/images/247.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/247.jpg
--------------------------------------------------------------------------------
/server/images/248.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/248.jpg
--------------------------------------------------------------------------------
/server/images/249.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/249.jpg
--------------------------------------------------------------------------------
/server/images/25.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/25.jpg
--------------------------------------------------------------------------------
/server/images/250.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/250.jpg
--------------------------------------------------------------------------------
/server/images/251.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/251.jpg
--------------------------------------------------------------------------------
/server/images/252.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/252.jpg
--------------------------------------------------------------------------------
/server/images/253.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/253.jpg
--------------------------------------------------------------------------------
/server/images/254.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/254.jpg
--------------------------------------------------------------------------------
/server/images/255.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/255.jpg
--------------------------------------------------------------------------------
/server/images/256.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/256.jpg
--------------------------------------------------------------------------------
/server/images/257.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/257.jpg
--------------------------------------------------------------------------------
/server/images/258.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/258.jpg
--------------------------------------------------------------------------------
/server/images/259.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/259.jpg
--------------------------------------------------------------------------------
/server/images/26.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/26.jpg
--------------------------------------------------------------------------------
/server/images/260.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/260.jpg
--------------------------------------------------------------------------------
/server/images/261.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/261.jpg
--------------------------------------------------------------------------------
/server/images/262.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/262.jpg
--------------------------------------------------------------------------------
/server/images/263.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/263.jpg
--------------------------------------------------------------------------------
/server/images/264.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/264.jpg
--------------------------------------------------------------------------------
/server/images/265.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/265.jpg
--------------------------------------------------------------------------------
/server/images/266.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/266.jpg
--------------------------------------------------------------------------------
/server/images/267.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/267.jpg
--------------------------------------------------------------------------------
/server/images/268.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/268.jpg
--------------------------------------------------------------------------------
/server/images/269.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/269.jpg
--------------------------------------------------------------------------------
/server/images/27.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/27.jpg
--------------------------------------------------------------------------------
/server/images/270.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/270.jpg
--------------------------------------------------------------------------------
/server/images/271.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/271.jpg
--------------------------------------------------------------------------------
/server/images/272.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/272.jpg
--------------------------------------------------------------------------------
/server/images/273.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/273.jpg
--------------------------------------------------------------------------------
/server/images/274.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/274.jpg
--------------------------------------------------------------------------------
/server/images/275.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/275.jpg
--------------------------------------------------------------------------------
/server/images/276.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/276.jpg
--------------------------------------------------------------------------------
/server/images/277.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/277.jpg
--------------------------------------------------------------------------------
/server/images/278.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/278.jpg
--------------------------------------------------------------------------------
/server/images/279.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/279.jpg
--------------------------------------------------------------------------------
/server/images/28.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/28.jpg
--------------------------------------------------------------------------------
/server/images/280.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/280.jpg
--------------------------------------------------------------------------------
/server/images/281.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/281.jpg
--------------------------------------------------------------------------------
/server/images/282.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/282.jpg
--------------------------------------------------------------------------------
/server/images/283.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/283.jpg
--------------------------------------------------------------------------------
/server/images/284.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/284.jpg
--------------------------------------------------------------------------------
/server/images/285.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/285.jpg
--------------------------------------------------------------------------------
/server/images/286.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/286.jpg
--------------------------------------------------------------------------------
/server/images/287.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/287.jpg
--------------------------------------------------------------------------------
/server/images/288.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/288.jpg
--------------------------------------------------------------------------------
/server/images/289.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/289.jpg
--------------------------------------------------------------------------------
/server/images/29.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/29.jpg
--------------------------------------------------------------------------------
/server/images/290.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/290.jpg
--------------------------------------------------------------------------------
/server/images/291.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/291.jpg
--------------------------------------------------------------------------------
/server/images/292.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/292.jpg
--------------------------------------------------------------------------------
/server/images/293.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/293.jpg
--------------------------------------------------------------------------------
/server/images/294.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/294.jpg
--------------------------------------------------------------------------------
/server/images/295.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/295.jpg
--------------------------------------------------------------------------------
/server/images/296.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/296.jpg
--------------------------------------------------------------------------------
/server/images/297.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/297.jpg
--------------------------------------------------------------------------------
/server/images/298.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/298.jpg
--------------------------------------------------------------------------------
/server/images/299.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/299.jpg
--------------------------------------------------------------------------------
/server/images/3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/3.jpg
--------------------------------------------------------------------------------
/server/images/30.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/30.jpg
--------------------------------------------------------------------------------
/server/images/300.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/300.jpg
--------------------------------------------------------------------------------
/server/images/301.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/301.jpg
--------------------------------------------------------------------------------
/server/images/302.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/302.jpg
--------------------------------------------------------------------------------
/server/images/303.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/303.jpg
--------------------------------------------------------------------------------
/server/images/304.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/304.jpg
--------------------------------------------------------------------------------
/server/images/305.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/305.jpg
--------------------------------------------------------------------------------
/server/images/306.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/306.jpg
--------------------------------------------------------------------------------
/server/images/307.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/307.jpg
--------------------------------------------------------------------------------
/server/images/308.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/308.jpg
--------------------------------------------------------------------------------
/server/images/309.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/309.jpg
--------------------------------------------------------------------------------
/server/images/31.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/31.jpg
--------------------------------------------------------------------------------
/server/images/310.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/310.jpg
--------------------------------------------------------------------------------
/server/images/311.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/311.jpg
--------------------------------------------------------------------------------
/server/images/312.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/312.jpg
--------------------------------------------------------------------------------
/server/images/313.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/313.jpg
--------------------------------------------------------------------------------
/server/images/314.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/314.jpg
--------------------------------------------------------------------------------
/server/images/315.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/315.jpg
--------------------------------------------------------------------------------
/server/images/316.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/316.jpg
--------------------------------------------------------------------------------
/server/images/317.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/317.jpg
--------------------------------------------------------------------------------
/server/images/318.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/318.jpg
--------------------------------------------------------------------------------
/server/images/319.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/319.jpg
--------------------------------------------------------------------------------
/server/images/32.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/32.jpg
--------------------------------------------------------------------------------
/server/images/320.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/320.jpg
--------------------------------------------------------------------------------
/server/images/321.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/321.jpg
--------------------------------------------------------------------------------
/server/images/322.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/322.jpg
--------------------------------------------------------------------------------
/server/images/323.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/323.jpg
--------------------------------------------------------------------------------
/server/images/324.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/324.jpg
--------------------------------------------------------------------------------
/server/images/325.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/325.jpg
--------------------------------------------------------------------------------
/server/images/326.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/326.jpg
--------------------------------------------------------------------------------
/server/images/327.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/327.jpg
--------------------------------------------------------------------------------
/server/images/328.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/328.jpg
--------------------------------------------------------------------------------
/server/images/329.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/329.jpg
--------------------------------------------------------------------------------
/server/images/33.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/33.jpg
--------------------------------------------------------------------------------
/server/images/330.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/330.jpg
--------------------------------------------------------------------------------
/server/images/331.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/331.jpg
--------------------------------------------------------------------------------
/server/images/332.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/332.jpg
--------------------------------------------------------------------------------
/server/images/333.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/333.jpg
--------------------------------------------------------------------------------
/server/images/334.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/334.jpg
--------------------------------------------------------------------------------
/server/images/335.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/335.jpg
--------------------------------------------------------------------------------
/server/images/336.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/336.jpg
--------------------------------------------------------------------------------
/server/images/337.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/337.jpg
--------------------------------------------------------------------------------
/server/images/338.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/338.jpg
--------------------------------------------------------------------------------
/server/images/339.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/339.jpg
--------------------------------------------------------------------------------
/server/images/34.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/34.jpg
--------------------------------------------------------------------------------
/server/images/340.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/340.jpg
--------------------------------------------------------------------------------
/server/images/341.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/341.jpg
--------------------------------------------------------------------------------
/server/images/342.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/342.jpg
--------------------------------------------------------------------------------
/server/images/343.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/343.jpg
--------------------------------------------------------------------------------
/server/images/344.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/344.jpg
--------------------------------------------------------------------------------
/server/images/345.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/345.jpg
--------------------------------------------------------------------------------
/server/images/346.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/346.jpg
--------------------------------------------------------------------------------
/server/images/347.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/347.jpg
--------------------------------------------------------------------------------
/server/images/348.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/348.jpg
--------------------------------------------------------------------------------
/server/images/349.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/349.jpg
--------------------------------------------------------------------------------
/server/images/35.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/35.jpg
--------------------------------------------------------------------------------
/server/images/350.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/350.jpg
--------------------------------------------------------------------------------
/server/images/351.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/351.jpg
--------------------------------------------------------------------------------
/server/images/352.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/352.jpg
--------------------------------------------------------------------------------
/server/images/353.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/353.jpg
--------------------------------------------------------------------------------
/server/images/354.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/354.jpg
--------------------------------------------------------------------------------
/server/images/355.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/355.jpg
--------------------------------------------------------------------------------
/server/images/356.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/356.jpg
--------------------------------------------------------------------------------
/server/images/357.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/357.jpg
--------------------------------------------------------------------------------
/server/images/358.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/358.jpg
--------------------------------------------------------------------------------
/server/images/359.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/359.jpg
--------------------------------------------------------------------------------
/server/images/36.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/36.jpg
--------------------------------------------------------------------------------
/server/images/360.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/360.jpg
--------------------------------------------------------------------------------
/server/images/361.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/361.jpg
--------------------------------------------------------------------------------
/server/images/362.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/362.jpg
--------------------------------------------------------------------------------
/server/images/363.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/363.jpg
--------------------------------------------------------------------------------
/server/images/364.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/364.jpg
--------------------------------------------------------------------------------
/server/images/365.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/365.jpg
--------------------------------------------------------------------------------
/server/images/366.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/366.jpg
--------------------------------------------------------------------------------
/server/images/367.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/367.jpg
--------------------------------------------------------------------------------
/server/images/368.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/368.jpg
--------------------------------------------------------------------------------
/server/images/369.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/369.jpg
--------------------------------------------------------------------------------
/server/images/37.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/37.jpg
--------------------------------------------------------------------------------
/server/images/370.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/370.jpg
--------------------------------------------------------------------------------
/server/images/371.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/371.jpg
--------------------------------------------------------------------------------
/server/images/372.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/372.jpg
--------------------------------------------------------------------------------
/server/images/373.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/373.jpg
--------------------------------------------------------------------------------
/server/images/374.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/374.jpg
--------------------------------------------------------------------------------
/server/images/375.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/375.jpg
--------------------------------------------------------------------------------
/server/images/376.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/376.jpg
--------------------------------------------------------------------------------
/server/images/377.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/377.jpg
--------------------------------------------------------------------------------
/server/images/378.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/378.jpg
--------------------------------------------------------------------------------
/server/images/379.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/379.jpg
--------------------------------------------------------------------------------
/server/images/38.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/38.jpg
--------------------------------------------------------------------------------
/server/images/380.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/380.jpg
--------------------------------------------------------------------------------
/server/images/381.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/381.jpg
--------------------------------------------------------------------------------
/server/images/382.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/382.jpg
--------------------------------------------------------------------------------
/server/images/383.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/383.jpg
--------------------------------------------------------------------------------
/server/images/384.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/384.jpg
--------------------------------------------------------------------------------
/server/images/385.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/385.jpg
--------------------------------------------------------------------------------
/server/images/386.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/386.jpg
--------------------------------------------------------------------------------
/server/images/387.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/387.jpg
--------------------------------------------------------------------------------
/server/images/388.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/388.jpg
--------------------------------------------------------------------------------
/server/images/389.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/389.jpg
--------------------------------------------------------------------------------
/server/images/39.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/39.jpg
--------------------------------------------------------------------------------
/server/images/390.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/390.jpg
--------------------------------------------------------------------------------
/server/images/391.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/391.jpg
--------------------------------------------------------------------------------
/server/images/392.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/392.jpg
--------------------------------------------------------------------------------
/server/images/393.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/393.jpg
--------------------------------------------------------------------------------
/server/images/394.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/394.jpg
--------------------------------------------------------------------------------
/server/images/395.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/395.jpg
--------------------------------------------------------------------------------
/server/images/396.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/396.jpg
--------------------------------------------------------------------------------
/server/images/397.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/397.jpg
--------------------------------------------------------------------------------
/server/images/398.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/398.jpg
--------------------------------------------------------------------------------
/server/images/399.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/399.jpg
--------------------------------------------------------------------------------
/server/images/4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/4.jpg
--------------------------------------------------------------------------------
/server/images/40.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/40.jpg
--------------------------------------------------------------------------------
/server/images/400.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/400.jpg
--------------------------------------------------------------------------------
/server/images/401.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/401.jpg
--------------------------------------------------------------------------------
/server/images/402.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/402.jpg
--------------------------------------------------------------------------------
/server/images/403.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/403.jpg
--------------------------------------------------------------------------------
/server/images/404.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/404.jpg
--------------------------------------------------------------------------------
/server/images/405.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/405.jpg
--------------------------------------------------------------------------------
/server/images/406.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/406.jpg
--------------------------------------------------------------------------------
/server/images/407.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/407.jpg
--------------------------------------------------------------------------------
/server/images/408.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/408.jpg
--------------------------------------------------------------------------------
/server/images/409.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/409.jpg
--------------------------------------------------------------------------------
/server/images/41.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/41.jpg
--------------------------------------------------------------------------------
/server/images/410.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/410.jpg
--------------------------------------------------------------------------------
/server/images/411.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/411.jpg
--------------------------------------------------------------------------------
/server/images/412.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/412.jpg
--------------------------------------------------------------------------------
/server/images/413.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/413.jpg
--------------------------------------------------------------------------------
/server/images/414.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/414.jpg
--------------------------------------------------------------------------------
/server/images/415.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/415.jpg
--------------------------------------------------------------------------------
/server/images/416.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/416.jpg
--------------------------------------------------------------------------------
/server/images/417.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/417.jpg
--------------------------------------------------------------------------------
/server/images/418.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/418.jpg
--------------------------------------------------------------------------------
/server/images/419.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/419.jpg
--------------------------------------------------------------------------------
/server/images/42.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/42.jpg
--------------------------------------------------------------------------------
/server/images/420.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/420.jpg
--------------------------------------------------------------------------------
/server/images/421.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/421.jpg
--------------------------------------------------------------------------------
/server/images/422.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/422.jpg
--------------------------------------------------------------------------------
/server/images/423.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/423.jpg
--------------------------------------------------------------------------------
/server/images/424.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/424.jpg
--------------------------------------------------------------------------------
/server/images/425.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/425.jpg
--------------------------------------------------------------------------------
/server/images/426.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/426.jpg
--------------------------------------------------------------------------------
/server/images/427.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/427.jpg
--------------------------------------------------------------------------------
/server/images/428.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/428.jpg
--------------------------------------------------------------------------------
/server/images/429.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/429.jpg
--------------------------------------------------------------------------------
/server/images/43.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/43.jpg
--------------------------------------------------------------------------------
/server/images/430.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/430.jpg
--------------------------------------------------------------------------------
/server/images/431.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/431.jpg
--------------------------------------------------------------------------------
/server/images/432.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/432.jpg
--------------------------------------------------------------------------------
/server/images/433.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/433.jpg
--------------------------------------------------------------------------------
/server/images/434.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/434.jpg
--------------------------------------------------------------------------------
/server/images/435.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/435.jpg
--------------------------------------------------------------------------------
/server/images/436.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/436.jpg
--------------------------------------------------------------------------------
/server/images/437.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/437.jpg
--------------------------------------------------------------------------------
/server/images/438.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/438.jpg
--------------------------------------------------------------------------------
/server/images/439.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/439.jpg
--------------------------------------------------------------------------------
/server/images/44.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/44.jpg
--------------------------------------------------------------------------------
/server/images/440.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/440.jpg
--------------------------------------------------------------------------------
/server/images/441.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/441.jpg
--------------------------------------------------------------------------------
/server/images/442.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/442.jpg
--------------------------------------------------------------------------------
/server/images/443.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/443.jpg
--------------------------------------------------------------------------------
/server/images/444.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/444.jpg
--------------------------------------------------------------------------------
/server/images/445.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/445.jpg
--------------------------------------------------------------------------------
/server/images/446.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/446.jpg
--------------------------------------------------------------------------------
/server/images/447.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/447.jpg
--------------------------------------------------------------------------------
/server/images/448.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/448.jpg
--------------------------------------------------------------------------------
/server/images/449.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/449.jpg
--------------------------------------------------------------------------------
/server/images/45.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/45.jpg
--------------------------------------------------------------------------------
/server/images/450.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/450.jpg
--------------------------------------------------------------------------------
/server/images/451.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/451.jpg
--------------------------------------------------------------------------------
/server/images/452.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/452.jpg
--------------------------------------------------------------------------------
/server/images/453.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/453.jpg
--------------------------------------------------------------------------------
/server/images/454.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/454.jpg
--------------------------------------------------------------------------------
/server/images/455.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/455.jpg
--------------------------------------------------------------------------------
/server/images/456.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/456.jpg
--------------------------------------------------------------------------------
/server/images/457.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/457.jpg
--------------------------------------------------------------------------------
/server/images/458.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/458.jpg
--------------------------------------------------------------------------------
/server/images/459.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/459.jpg
--------------------------------------------------------------------------------
/server/images/46.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/46.jpg
--------------------------------------------------------------------------------
/server/images/460.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/460.jpg
--------------------------------------------------------------------------------
/server/images/461.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/461.jpg
--------------------------------------------------------------------------------
/server/images/462.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/462.jpg
--------------------------------------------------------------------------------
/server/images/463.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/463.jpg
--------------------------------------------------------------------------------
/server/images/464.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/464.jpg
--------------------------------------------------------------------------------
/server/images/465.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/465.jpg
--------------------------------------------------------------------------------
/server/images/466.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/466.jpg
--------------------------------------------------------------------------------
/server/images/467.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/467.jpg
--------------------------------------------------------------------------------
/server/images/468.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/468.jpg
--------------------------------------------------------------------------------
/server/images/469.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/469.jpg
--------------------------------------------------------------------------------
/server/images/47.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/47.jpg
--------------------------------------------------------------------------------
/server/images/470.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/470.jpg
--------------------------------------------------------------------------------
/server/images/471.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/471.jpg
--------------------------------------------------------------------------------
/server/images/472.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/472.jpg
--------------------------------------------------------------------------------
/server/images/473.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/473.jpg
--------------------------------------------------------------------------------
/server/images/474.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/474.jpg
--------------------------------------------------------------------------------
/server/images/475.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/475.jpg
--------------------------------------------------------------------------------
/server/images/476.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/476.jpg
--------------------------------------------------------------------------------
/server/images/477.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/477.jpg
--------------------------------------------------------------------------------
/server/images/478.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/478.jpg
--------------------------------------------------------------------------------
/server/images/479.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/479.jpg
--------------------------------------------------------------------------------
/server/images/48.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/48.jpg
--------------------------------------------------------------------------------
/server/images/480.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/480.jpg
--------------------------------------------------------------------------------
/server/images/481.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/481.jpg
--------------------------------------------------------------------------------
/server/images/482.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/482.jpg
--------------------------------------------------------------------------------
/server/images/483.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/483.jpg
--------------------------------------------------------------------------------
/server/images/484.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/484.jpg
--------------------------------------------------------------------------------
/server/images/485.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/485.jpg
--------------------------------------------------------------------------------
/server/images/486.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/486.jpg
--------------------------------------------------------------------------------
/server/images/487.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/487.jpg
--------------------------------------------------------------------------------
/server/images/488.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/488.jpg
--------------------------------------------------------------------------------
/server/images/489.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/489.jpg
--------------------------------------------------------------------------------
/server/images/49.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/49.jpg
--------------------------------------------------------------------------------
/server/images/490.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/490.jpg
--------------------------------------------------------------------------------
/server/images/491.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/491.jpg
--------------------------------------------------------------------------------
/server/images/492.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/492.jpg
--------------------------------------------------------------------------------
/server/images/493.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/493.jpg
--------------------------------------------------------------------------------
/server/images/494.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/494.jpg
--------------------------------------------------------------------------------
/server/images/495.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/495.jpg
--------------------------------------------------------------------------------
/server/images/496.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/496.jpg
--------------------------------------------------------------------------------
/server/images/497.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/497.jpg
--------------------------------------------------------------------------------
/server/images/498.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/498.jpg
--------------------------------------------------------------------------------
/server/images/499.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/499.jpg
--------------------------------------------------------------------------------
/server/images/5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/5.jpg
--------------------------------------------------------------------------------
/server/images/50.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/50.jpg
--------------------------------------------------------------------------------
/server/images/500.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/500.jpg
--------------------------------------------------------------------------------
/server/images/501.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/501.jpg
--------------------------------------------------------------------------------
/server/images/502.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/502.jpg
--------------------------------------------------------------------------------
/server/images/503.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/503.jpg
--------------------------------------------------------------------------------
/server/images/504.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/504.jpg
--------------------------------------------------------------------------------
/server/images/505.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/505.jpg
--------------------------------------------------------------------------------
/server/images/506.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/506.jpg
--------------------------------------------------------------------------------
/server/images/507.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/507.jpg
--------------------------------------------------------------------------------
/server/images/508.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/508.jpg
--------------------------------------------------------------------------------
/server/images/509.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/509.jpg
--------------------------------------------------------------------------------
/server/images/51.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/51.jpg
--------------------------------------------------------------------------------
/server/images/510.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/510.jpg
--------------------------------------------------------------------------------
/server/images/511.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/511.jpg
--------------------------------------------------------------------------------
/server/images/512.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/512.jpg
--------------------------------------------------------------------------------
/server/images/513.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/513.jpg
--------------------------------------------------------------------------------
/server/images/514.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/514.jpg
--------------------------------------------------------------------------------
/server/images/515.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/515.jpg
--------------------------------------------------------------------------------
/server/images/516.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/516.jpg
--------------------------------------------------------------------------------
/server/images/517.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/517.jpg
--------------------------------------------------------------------------------
/server/images/518.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/518.jpg
--------------------------------------------------------------------------------
/server/images/519.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/519.jpg
--------------------------------------------------------------------------------
/server/images/52.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/52.jpg
--------------------------------------------------------------------------------
/server/images/520.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/520.jpg
--------------------------------------------------------------------------------
/server/images/521.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/521.jpg
--------------------------------------------------------------------------------
/server/images/522.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/522.jpg
--------------------------------------------------------------------------------
/server/images/523.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/523.jpg
--------------------------------------------------------------------------------
/server/images/524.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/524.jpg
--------------------------------------------------------------------------------
/server/images/525.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/525.jpg
--------------------------------------------------------------------------------
/server/images/526.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/526.jpg
--------------------------------------------------------------------------------
/server/images/527.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/527.jpg
--------------------------------------------------------------------------------
/server/images/528.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/528.jpg
--------------------------------------------------------------------------------
/server/images/529.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/529.jpg
--------------------------------------------------------------------------------
/server/images/53.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/53.jpg
--------------------------------------------------------------------------------
/server/images/530.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/530.jpg
--------------------------------------------------------------------------------
/server/images/531.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/531.jpg
--------------------------------------------------------------------------------
/server/images/532.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/532.jpg
--------------------------------------------------------------------------------
/server/images/533.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/533.jpg
--------------------------------------------------------------------------------
/server/images/534.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/534.jpg
--------------------------------------------------------------------------------
/server/images/535.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/535.jpg
--------------------------------------------------------------------------------
/server/images/536.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/536.jpg
--------------------------------------------------------------------------------
/server/images/537.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/537.jpg
--------------------------------------------------------------------------------
/server/images/538.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/538.jpg
--------------------------------------------------------------------------------
/server/images/539.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/539.jpg
--------------------------------------------------------------------------------
/server/images/54.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/54.jpg
--------------------------------------------------------------------------------
/server/images/55.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/55.jpg
--------------------------------------------------------------------------------
/server/images/56.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/56.jpg
--------------------------------------------------------------------------------
/server/images/57.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/57.jpg
--------------------------------------------------------------------------------
/server/images/58.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/58.jpg
--------------------------------------------------------------------------------
/server/images/59.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/59.jpg
--------------------------------------------------------------------------------
/server/images/6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/6.jpg
--------------------------------------------------------------------------------
/server/images/60.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/60.jpg
--------------------------------------------------------------------------------
/server/images/61.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/61.jpg
--------------------------------------------------------------------------------
/server/images/62.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/62.jpg
--------------------------------------------------------------------------------
/server/images/63.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/63.jpg
--------------------------------------------------------------------------------
/server/images/64.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/64.jpg
--------------------------------------------------------------------------------
/server/images/65.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/65.jpg
--------------------------------------------------------------------------------
/server/images/66.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/66.jpg
--------------------------------------------------------------------------------
/server/images/67.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/67.jpg
--------------------------------------------------------------------------------
/server/images/68.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/68.jpg
--------------------------------------------------------------------------------
/server/images/69.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/69.jpg
--------------------------------------------------------------------------------
/server/images/7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/7.jpg
--------------------------------------------------------------------------------
/server/images/70.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/70.jpg
--------------------------------------------------------------------------------
/server/images/71.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/71.jpg
--------------------------------------------------------------------------------
/server/images/72.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/72.jpg
--------------------------------------------------------------------------------
/server/images/73.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/73.jpg
--------------------------------------------------------------------------------
/server/images/74.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/74.jpg
--------------------------------------------------------------------------------
/server/images/75.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/75.jpg
--------------------------------------------------------------------------------
/server/images/76.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/76.jpg
--------------------------------------------------------------------------------
/server/images/77.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/77.jpg
--------------------------------------------------------------------------------
/server/images/78.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/78.jpg
--------------------------------------------------------------------------------
/server/images/79.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/79.jpg
--------------------------------------------------------------------------------
/server/images/8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/8.jpg
--------------------------------------------------------------------------------
/server/images/80.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/80.jpg
--------------------------------------------------------------------------------
/server/images/81.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/81.jpg
--------------------------------------------------------------------------------
/server/images/82.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/82.jpg
--------------------------------------------------------------------------------
/server/images/83.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/83.jpg
--------------------------------------------------------------------------------
/server/images/84.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/84.jpg
--------------------------------------------------------------------------------
/server/images/85.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/85.jpg
--------------------------------------------------------------------------------
/server/images/86.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/86.jpg
--------------------------------------------------------------------------------
/server/images/87.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/87.jpg
--------------------------------------------------------------------------------
/server/images/88.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/88.jpg
--------------------------------------------------------------------------------
/server/images/89.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/89.jpg
--------------------------------------------------------------------------------
/server/images/9.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/9.jpg
--------------------------------------------------------------------------------
/server/images/90.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/90.jpg
--------------------------------------------------------------------------------
/server/images/91.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/91.jpg
--------------------------------------------------------------------------------
/server/images/92.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/92.jpg
--------------------------------------------------------------------------------
/server/images/93.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/93.jpg
--------------------------------------------------------------------------------
/server/images/94.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/94.jpg
--------------------------------------------------------------------------------
/server/images/95.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/95.jpg
--------------------------------------------------------------------------------
/server/images/96.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/96.jpg
--------------------------------------------------------------------------------
/server/images/97.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/97.jpg
--------------------------------------------------------------------------------
/server/images/98.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/98.jpg
--------------------------------------------------------------------------------
/server/images/99.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/99.jpg
--------------------------------------------------------------------------------
/server/images/fallback-bakery.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/fallback-bakery.png
--------------------------------------------------------------------------------
/server/images/fallback-dairy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/fallback-dairy.png
--------------------------------------------------------------------------------
/server/images/fallback-frozen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/fallback-frozen.png
--------------------------------------------------------------------------------
/server/images/fallback-fruit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/fallback-fruit.png
--------------------------------------------------------------------------------
/server/images/fallback-grocery.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/fallback-grocery.png
--------------------------------------------------------------------------------
/server/images/fallback-herbs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/fallback-herbs.png
--------------------------------------------------------------------------------
/server/images/fallback-meat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/fallback-meat.png
--------------------------------------------------------------------------------
/server/images/fallback-vegetable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mike-works/vscode-fundamentals/1e1b3d8daff61d2f58b389ad165392632cf2a404/server/images/fallback-vegetable.png
--------------------------------------------------------------------------------
/server/index.js:
--------------------------------------------------------------------------------
1 | const Koa = require('koa');
2 | const {dev : devMiddleware} = require('./webpack-middleware');
3 | const mount = require('koa-mount');
4 | const router = require('./router');
5 | const Db = require('./db');
6 | const koaStatic = require('koa-static');
7 | const bodyParser = require('koa-bodyparser');
8 |
9 | const path = require('path');
10 |
11 | const IMAGES_ROOT = 'server/images';
12 |
13 | let app = new Koa();
14 |
15 | Db.instance.start().then(() => {
16 | app
17 | .use(bodyParser())
18 | .use(mount('/images', koaStatic(IMAGES_ROOT)))
19 | .use(mount('/api', router.routes()))
20 | .use(mount('/api', router.allowedMethods()))
21 | .use(devMiddleware())
22 | .listen(process.env.PORT || 3000);
23 | });
24 |
--------------------------------------------------------------------------------
/server/models/cart-item.js:
--------------------------------------------------------------------------------
1 | module.exports = function(sequelize, DataTypes) {
2 | const GroceryItem = require('./grocery-item')(sequelize, DataTypes);
3 |
4 | const CartItem = sequelize.define('cart-item', {
5 | qty: {
6 | type: DataTypes.INTEGER,
7 | allowNull: true,
8 | defaultValue: 1,
9 | validate: { min: 1, max: 999 }
10 | }
11 | }, {
12 | indexes: [{
13 | unique: true,
14 | fields: ['groceryItemId']
15 | }]
16 | });
17 | CartItem.belongsTo(GroceryItem, { as: 'groceryItem'});
18 | return CartItem;
19 | };
20 |
--------------------------------------------------------------------------------
/server/models/grocery-item.js:
--------------------------------------------------------------------------------
1 | let _model = null;
2 | module.exports = function(sequelize, DataTypes) {
3 | if (!_model) {
4 | _model = sequelize.define('grocery-item', {
5 | name: { type: DataTypes.STRING },
6 | category: { type: DataTypes.STRING },
7 | imageUrl: { type: DataTypes.STRING },
8 | price: { type: DataTypes.DOUBLE },
9 | unit: { type: DataTypes.STRING }
10 | }, {
11 | indexes: [{
12 | fields: ['category']
13 | }]
14 | });
15 | }
16 | return _model;
17 | };
18 |
--------------------------------------------------------------------------------
/server/models/index.js:
--------------------------------------------------------------------------------
1 | let fs = require('fs');
2 | let path = require('path');
3 | let Sequelize = require('sequelize');
4 |
5 | module.exports = function(sequelize) {
6 |
7 | let db = {};
8 |
9 | let modelFiles = fs.readdirSync(__dirname)
10 | .filter(function(file) {
11 | return (file.indexOf('.') !== 0) && (file !== 'index.js');
12 | });
13 |
14 | modelFiles.forEach((file) => {
15 | let model = sequelize.import(path.join(__dirname, file));
16 | db[model.name] = model;
17 | });
18 |
19 | Object.keys(db).forEach((modelName) => {
20 | if ('associate' in db[modelName]) {
21 | db[modelName].associate(db);
22 | }
23 | });
24 |
25 | db.sequelize = sequelize;
26 | db.Sequelize = Sequelize;
27 | return db;
28 | };
--------------------------------------------------------------------------------
/server/models/order-item.js:
--------------------------------------------------------------------------------
1 | let OrderItem = null;
2 | module.exports = function(sequelize, DataTypes) {
3 | if (!OrderItem) {
4 | const GroceryItem = require('./grocery-item')(sequelize, DataTypes);
5 | const Order = require('./order')(sequelize, DataTypes);
6 |
7 | OrderItem = sequelize.define('order-item', {
8 | qty: {
9 | type: DataTypes.INTEGER,
10 | allowNull: true,
11 | validate: { min: 1, max: 999 }
12 | },
13 | retrieved: {
14 | type: DataTypes.BOOLEAN,
15 | allowNull: false,
16 | defaultValue: false
17 | }
18 | }, {
19 | indexes: [{
20 | fields: ['orderId']
21 | }, {
22 | unique: true,
23 | fields: ['orderId', 'groceryItemId']
24 | }]
25 | });
26 | OrderItem.belongsTo(GroceryItem, {as: 'groceryItem', allowNull: false });
27 | OrderItem.belongsTo(Order, {as: 'order', allowNull: false });
28 | Order.hasMany(OrderItem, {as: 'orderItems'});
29 | return OrderItem;
30 | }
31 | return OrderItem;
32 | };
33 |
--------------------------------------------------------------------------------
/server/models/order.js:
--------------------------------------------------------------------------------
1 | let Order = null;
2 | module.exports = function(sequelize, DataTypes) {
3 | if (!Order) {
4 | Order = sequelize.define('order', {
5 | name: {
6 | type: DataTypes.STRING,
7 | allowNull: false
8 | },
9 | totalPrice: {
10 | type: DataTypes.DOUBLE,
11 | allowNull: false,
12 | validate: { min: 0, max: 1000000.00 }
13 | },
14 | status: {
15 | type: DataTypes.STRING,
16 | allowNull: false,
17 | defaultValue: 'pending'
18 | }
19 | }, {
20 | indexes: [{
21 | fields: ['status']
22 | }]
23 | });
24 | }
25 | return Order;
26 | };
27 |
--------------------------------------------------------------------------------
/server/router.js:
--------------------------------------------------------------------------------
1 | const Router = require('koa-router');
2 | const api = require('./api-router');
3 |
4 | module.exports = api;
--------------------------------------------------------------------------------
/server/routes/grocery.js:
--------------------------------------------------------------------------------
1 | const Router = require('koa-router');
2 | const Db = require('../db');
3 |
4 | let router = new Router();
5 | let _cachedCategories = null;
6 |
7 | const QUERY_DEFAULTS = Object.freeze({ limit: 10, offset: 0 });
8 |
9 | function capitalize(str) {
10 | return `${str[0].toUpperCase()}${str.substring(1)}`;
11 | }
12 |
13 | function toTitleCase(rawStr) {
14 | return rawStr
15 | .split(/[\s-]+/g)
16 | .map((s) => capitalize(s))
17 | .join(' ');
18 | }
19 |
20 | function prepareQuery(rawQuery) {
21 | let queryParams = Object.assign(Object.assign({}, QUERY_DEFAULTS), rawQuery);
22 | let { limit, offset, category } = queryParams;
23 | let safeQuery = { limit, offset };
24 | if (category) {
25 | safeQuery.where = {
26 | category: toTitleCase(category)
27 | };
28 | }
29 | return safeQuery;
30 | }
31 |
32 | router
33 | .get('/categories', async function(ctx, next) {
34 | const GroceryItem = Db.instance.models['grocery-item'];
35 |
36 | if (_cachedCategories) {
37 | ctx.body = { data: _cachedCategories };
38 | }
39 | try {
40 | let results = await GroceryItem.count({ attributes: ['category'], group: 'category' });
41 | _cachedCategories = results;
42 | ctx.body = { data: results };
43 | } catch (err) {
44 | ctx.body = { error: `Problem fetching data: ${err}` };
45 | }
46 | })
47 | .get('/items', async function (ctx, next) {
48 | const GroceryItem = Db.instance.models['grocery-item'];
49 | let queryOptions = prepareQuery(ctx.query || {});
50 |
51 | try {
52 | let results = await GroceryItem.findAll(queryOptions);
53 | let plainResults = results.map((x) => x.get({plain: true}));
54 | ctx.body = {data: plainResults};
55 | } catch (err) {
56 | ctx.body = { error: `Problem fetching data: ${err}` };
57 | }
58 | });
59 |
60 | module.exports = router;
--------------------------------------------------------------------------------
/server/seed.js:
--------------------------------------------------------------------------------
1 | const Db = require('./db');
2 | const csvParse = require('csv-parse');
3 | const fs = require('fs');
4 | const path = require('path');
5 | const https = require('https');
6 |
7 | const db = new Db();
8 |
9 | const PRICE_REGEX = /\$([0-9]+.[0-9]{0,2})/;
10 |
11 | function processPrice(rawPrice) {
12 | let [, unitPrice] = PRICE_REGEX.exec(rawPrice);
13 | let unit = rawPrice.replace(unitPrice, '').replace(/[^A-Za-z]/g, '').trim();
14 | return { unitPrice: parseFloat(unitPrice), unit };
15 | }
16 |
17 | async function seedDb() {
18 | await db.start();
19 |
20 | let contents = fs.readFileSync(path.join(__dirname, 'seeds.csv'));
21 |
22 | const GroceryItem = db.models['grocery-item'];
23 | await GroceryItem.sync({ force: false });
24 |
25 | csvParse(contents, (err, items) => {
26 | items.forEach((item, idx) => {
27 | let [name, category, price, imageUrl] = item;
28 | https.get(imageUrl, (response) => {
29 | var file = fs.createWriteStream(path.join(__dirname, '..', 'images', `${ idx + 1 }.jpg`));
30 | response.pipe(file);
31 | let {unit, unitPrice} = processPrice(price);
32 | return GroceryItem.create({
33 | name,
34 | category,
35 | price: unitPrice,
36 | unit,
37 | imageUrl: `/images/${ idx + 1 }.jpg`
38 | });
39 | });
40 | });
41 | });
42 | }
43 |
44 | seedDb();
--------------------------------------------------------------------------------
/server/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "commonjs",
4 | "target": "es2015",
5 | "noImplicitAny": true,
6 | "moduleResolution": "node",
7 | "sourceMap": true,
8 | "outDir": "../dist-server",
9 | "baseUrl": ".",
10 | "rootDirs": [
11 | ".."
12 | ],
13 | "allowJs": true,
14 | "paths": {
15 | "koa-webpack-middleware": [
16 | "node_modules/koa-webpack-middleware/middleware/index"
17 | ]
18 | }
19 | },
20 | "include": ["./**/*"],
21 | "exclude": [
22 | "../node_modules"
23 | ]
24 | }
25 |
--------------------------------------------------------------------------------
/server/webpack-middleware.js:
--------------------------------------------------------------------------------
1 | const webpack = require('webpack');
2 | // @ts-ignore
3 | const { devMiddleware, hotMiddleware } = require('koa-webpack-middleware');
4 | const devConfig = require('../webpack.config.dev');
5 | // @ts-ignore
6 | const compiler = webpack(devConfig);
7 |
8 | function dev() {
9 | return devMiddleware(compiler, {
10 | // display no info to console (only warnings and errors)
11 | // noInfo: true,
12 |
13 | // display nothing to the console
14 | // quiet: true,
15 |
16 | // switch into lazy mode
17 | // that means no watching, but recompilation on every request
18 | // lazy: true,
19 | hot: true,
20 | // watch options (only lazy: false)
21 | // watchOptions: {
22 | // aggregateTimeout: 300,
23 | // poll: true
24 | // },
25 |
26 | // public path to bind the middleware to
27 | // use the same as in webpack
28 | publicPath: '/',
29 |
30 | // custom headers
31 | headers: { 'X-Custom-Header': 'yes' },
32 |
33 | // options for formating the statistics
34 | stats: 'minimal',
35 | });
36 | }
37 |
38 | function hot() {
39 | return hotMiddleware(compiler, {
40 | log: console.log,
41 | path: '/__webpack_hmr',
42 | // heartbeat: 10 * 1000
43 | });
44 | }
45 |
46 | module.exports = { dev, hot };
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es2017",
4 | "jsx": "react",
5 | "module": "commonjs",
6 | "sourceMap": true,
7 | "noImplicitReturns": true,
8 | "experimentalDecorators": true,
9 | "baseUrl": ".",
10 | "allowJs": true,
11 | "paths": {
12 | "muicss": ["node_modules/muicss/lib/react/*"]
13 | }
14 | },
15 | "exclude": ["node_modules", "server"]
16 | }
17 |
--------------------------------------------------------------------------------
/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "tslint:recommended",
3 | "jsRules": {
4 | "quotemark": [false, "single", "avoid-escape", "avoid-template"],
5 | "ordered-imports": false,
6 | "member-access": false,
7 | "object-literal-sort-keys": false,
8 | "trailing-comma": false,
9 | "curly": false,
10 | "prefer-const": false,
11 | "max-line-length": [false],
12 | "no-consecutive-blank-lines": false,
13 | "eofline": false,
14 | "no-trailing-whitespace": [
15 | false
16 | ],
17 | "no-console": false,
18 | "variable-name": [
19 | false
20 | ],
21 | "space-before-function-paren": false
22 | },
23 | "rules": {
24 | "prefer-const": false,
25 | "quotemark": [false, "single", "avoid-escape", "avoid-template"],
26 | "ordered-imports": false,
27 | "member-access": false,
28 | "object-literal-sort-keys": false,
29 | "trailing-comma": false,
30 | "curly": false,
31 | "max-line-length": [false],
32 | "eofline": false,
33 | "no-trailing-whitespace": [
34 | false
35 | ],
36 | "no-console": false,
37 | "space-before-function-paren": false
38 | }
39 | }
--------------------------------------------------------------------------------
/webpack.config.dev.js:
--------------------------------------------------------------------------------
1 | const plugins = require('./webpack/plugins');
2 | const mod = require('./webpack/module');
3 | const webpack = require('webpack');
4 |
5 | module.exports = {
6 | entry: './client/index.tsx',
7 | output: {
8 | filename: 'bundle.js',
9 | path: __dirname + '/dist',
10 | publicPath: '/'
11 | },
12 | mode: 'development',
13 | devtool: 'source-map',
14 | resolve: {
15 | // Add '.ts' and '.tsx' as resolvable extensions.
16 | extensions: ['.ts', '.tsx', '.js', '.json', '.scss']
17 | },
18 |
19 | devServer: {
20 | stats: 'minimal',
21 | },
22 | stats: 'minimal',
23 | module: mod,
24 | plugins
25 | };
26 |
--------------------------------------------------------------------------------
/webpack/extract-sass.js:
--------------------------------------------------------------------------------
1 | const ExtractTextPlugin = require('extract-text-webpack-plugin');
2 |
3 | module.exports = new ExtractTextPlugin({
4 | filename: '[name]-[contenthash].css'
5 | });
--------------------------------------------------------------------------------
/webpack/module.js:
--------------------------------------------------------------------------------
1 | // const ExtractTextPlugin = require('extract-text-webpack-plugin');
2 |
3 |
4 | module.exports = {
5 | rules: [
6 | // All files with a '.ts' or '.tsx' extension will be handled by 'awesome-typescript-loader'.
7 | { test: /\.tsx?$/, loader: 'awesome-typescript-loader'},
8 |
9 | // All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'.
10 | { enforce: 'pre', test: /\.js$/, loader: 'source-map-loader'},
11 | {
12 | test: /\.scss$/,
13 | use: [
14 | { loader: 'style-loader' },
15 | { loader: 'css-loader' },
16 | { loader: 'sass-loader',
17 | options: {
18 | includePaths: ['node_modules/muicss/lib/sass']
19 | }
20 | }
21 | ]
22 | }
23 | ]
24 | };
25 |
--------------------------------------------------------------------------------
/webpack/plugins.js:
--------------------------------------------------------------------------------
1 | const HtmlWebpackPlugin = require('html-webpack-plugin');
2 | const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
3 | const extractSass = require('./extract-sass');
4 | const webpack = require('webpack');
5 |
6 | let plugins = [
7 | new HtmlWebpackPlugin({
8 | template: './client/index.ejs',
9 | title: "Frontend Grocer",
10 | apiEndpoint: process.env.API_ENDPOINT || 'https://localhost:3000'
11 | }),
12 | new webpack.optimize.OccurrenceOrderPlugin(false),
13 | new webpack.HotModuleReplacementPlugin(),
14 | new webpack.NoEmitOnErrorsPlugin(),
15 | ];
16 |
17 | if (process.env.ANALYZE) {
18 | plugins.push(new BundleAnalyzerPlugin());
19 | }
20 |
21 | module.exports = plugins;
--------------------------------------------------------------------------------