├── .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 | {cartItem.groceryItem.name}/ 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 | {item.name} 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 | 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 |
    39 |
      40 | {categoryRows} 41 |
    42 |
    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! ![Frontend Grocer](../../public/grocer.png) 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; --------------------------------------------------------------------------------