From 0f48d74b754b9052f5d8264c8e1131a4967e9801 Mon Sep 17 00:00:00 2001 From: cheeks <134818917+leftovertoast@users.noreply.github.com> Date: Wed, 1 Jan 2025 17:03:09 -0500 Subject: [PATCH] added Murach exercies --- book_apps/ch01/die_roller/index.html | 22 + book_apps/ch01/die_roller/main.css | 12 + book_apps/ch01/email_list/add.html | 12 + book_apps/ch01/email_list/email_list.js | 40 + book_apps/ch01/email_list/index.html | 32 + book_apps/ch01/email_list/main.css | 26 + book_apps/ch01/welcome/index.html | 13 + book_apps/ch01/welcome/main.css | 11 + book_apps/ch02/miles_to_kms/index.html | 9 + book_apps/ch02/miles_to_kms/miles_to_kms.js | 13 + book_apps/ch02/test_scores/index.html | 9 + book_apps/ch02/test_scores/test_scores.js | 25 + book_apps/ch03/future_value/future_value.js | 32 + book_apps/ch03/future_value/index.html | 11 + book_apps/ch03/guess_number/guess_number.js | 35 + book_apps/ch03/guess_number/index.html | 13 + book_apps/ch03/magic_eight_ball/index.html | 13 + .../ch03/magic_eight_ball/magic_eight_ball.js | 48 + book_apps/ch04/bio/bio.js | 29 + book_apps/ch04/bio/index.html | 10 + book_apps/ch04/email_check/email_check.js | 18 + book_apps/ch04/email_check/index.html | 10 + book_apps/ch04/test_scores/index.html | 13 + book_apps/ch04/test_scores/test_scores.js | 34 + book_apps/ch04/test_scores2/index.html | 13 + book_apps/ch04/test_scores2/test_scores.js | 39 + book_apps/ch05/bio/bio.js | 46 + book_apps/ch05/bio/index.html | 9 + book_apps/ch05/future_value/future_value.js | 30 + book_apps/ch05/future_value/index.html | 12 + book_apps/ch05/guess_number/guess.js | 51 + book_apps/ch05/guess_number/index.html | 20 + book_apps/ch05/guess_number/main.css | 15 + book_apps/ch05/typewriter/index.html | 14 + book_apps/ch05/typewriter/typewriter.css | 9 + book_apps/ch05/typewriter/typewriter.js | 23 + book_apps/ch06/faqs/faqs.css | 41 + book_apps/ch06/faqs/faqs.js | 24 + book_apps/ch06/faqs/images/minus.png | Bin 0 -> 48780 bytes book_apps/ch06/faqs/images/plus.png | Bin 0 -> 49264 bytes book_apps/ch06/faqs/index.html | 35 + book_apps/ch06/image_swap/image_swap.css | 16 + book_apps/ch06/image_swap/image_swap.js | 32 + book_apps/ch06/image_swap/images/bison.jpg | Bin 0 -> 88319 bytes book_apps/ch06/image_swap/images/deer.jpg | Bin 0 -> 105300 bytes book_apps/ch06/image_swap/images/hero.jpg | Bin 0 -> 83787 bytes book_apps/ch06/image_swap/images/release.jpg | Bin 0 -> 74621 bytes book_apps/ch06/image_swap/index.html | 30 + .../ch06/image_swap/thumbnails/bison.jpg | Bin 0 -> 3430 bytes book_apps/ch06/image_swap/thumbnails/deer.jpg | Bin 0 -> 4487 bytes book_apps/ch06/image_swap/thumbnails/hero.jpg | Bin 0 -> 3623 bytes .../ch06/image_swap/thumbnails/release.jpg | Bin 0 -> 3403 bytes book_apps/ch06/register/confirm.html | 17 + book_apps/ch06/register/index.html | 59 + book_apps/ch06/register/register.css | 33 + book_apps/ch06/register/register.js | 61 + book_apps/ch06/register_2.0/confirm.html | 17 + book_apps/ch06/register_2.0/index.html | 59 + book_apps/ch06/register_2.0/register.css | 39 + book_apps/ch06/register_2.0/register.js | 79 + book_apps/ch07/future_value/future_value.css | 24 + book_apps/ch07/future_value/future_value.js | 68 + book_apps/ch07/future_value/index.html | 33 + .../future_value.css | 25 + .../future_value.js | 58 + .../index.html | 33 + book_apps/ch08/clock/clock.js | 22 + book_apps/ch08/clock/index.html | 15 + book_apps/ch08/clock/main.css | 17 + book_apps/ch08/countdown/countdown.css | 36 + book_apps/ch08/countdown/countdown.js | 47 + book_apps/ch08/countdown/index.html | 28 + book_apps/ch08/slide_show/images/bison.jpg | Bin 0 -> 88319 bytes book_apps/ch08/slide_show/images/deer.jpg | Bin 0 -> 105300 bytes book_apps/ch08/slide_show/images/hero.jpg | Bin 0 -> 83787 bytes book_apps/ch08/slide_show/images/release.jpg | Bin 0 -> 74621 bytes book_apps/ch08/slide_show/index.html | 21 + book_apps/ch08/slide_show/slide_show.css | 16 + book_apps/ch08/slide_show/slide_show.js | 46 + book_apps/ch08/timer/index.html | 15 + book_apps/ch08/timer/main.css | 22 + book_apps/ch08/timer/timer.js | 41 + book_apps/ch08/trivia/index.html | 53 + book_apps/ch08/trivia/main.css | 12 + .../ch09/future_value/calc_future_value.js | 38 + book_apps/ch09/future_value/future_value.css | 31 + book_apps/ch09/future_value/future_value.js | 48 + book_apps/ch09/future_value/index.html | 35 + book_apps/ch09/register/confirm.html | 17 + book_apps/ch09/register/index.html | 59 + book_apps/ch09/register/register.css | 29 + book_apps/ch09/register_2.0/confirm.html | 17 + book_apps/ch09/register_2.0/index.html | 62 + book_apps/ch09/register_2.0/register.css | 29 + book_apps/ch09/register_2.0/register.js | 52 + book_apps/ch10/future_value/future_value.css | 25 + book_apps/ch10/future_value/future_value.js | 74 + book_apps/ch10/future_value/index.html | 33 + book_apps/ch10/hit_counter/hit_counter.js | 24 + book_apps/ch10/hit_counter/index.html | 15 + book_apps/ch10/hit_counter/main.css | 15 + book_apps/ch10/hit_counter/test.html | 27 + book_apps/ch10/task_list/index.html | 25 + book_apps/ch10/task_list/task_list.css | 24 + book_apps/ch10/task_list/task_list.js | 46 + book_apps/ch11/task_list/index.html | 32 + book_apps/ch11/task_list/task_list.css | 31 + book_apps/ch11/task_list/task_list.js | 55 + book_apps/ch11/test_scores/index.html | 34 + book_apps/ch11/test_scores/test_scores.css | 31 + book_apps/ch11/test_scores/test_scores.js | 54 + book_apps/ch12/invoice/index.html | 30 + book_apps/ch12/invoice/invoice.js | 15 + book_apps/ch12/invoice/lib_invoice.js | 14 + book_apps/ch12/invoice/main.css | 25 + book_apps/ch12/task_list/index.html | 37 + book_apps/ch12/task_list/lib_storage.js | 21 + book_apps/ch12/task_list/lib_task.js | 20 + book_apps/ch12/task_list/lib_task_list.js | 39 + book_apps/ch12/task_list/main.css | 45 + book_apps/ch12/task_list/task_list.js | 72 + book_apps/ch12/trips/index.html | 36 + book_apps/ch12/trips/lib_trips.js | 52 + book_apps/ch12/trips/trips.css | 29 + book_apps/ch12/trips/trips.js | 40 + book_apps/ch13/clock/clock.js | 14 + book_apps/ch13/clock/index.html | 23 + book_apps/ch13/clock/main.css | 16 + book_apps/ch13/general_modules/DOM.js | 40 + book_apps/ch13/general_modules/storage.js | 18 + book_apps/ch13/slide_show/images/bison.jpg | Bin 0 -> 88319 bytes book_apps/ch13/slide_show/images/deer.jpg | Bin 0 -> 105300 bytes book_apps/ch13/slide_show/images/hero.jpg | Bin 0 -> 83787 bytes book_apps/ch13/slide_show/images/release.jpg | Bin 0 -> 74621 bytes book_apps/ch13/slide_show/index.html | 19 + book_apps/ch13/slide_show/lib_DOM.js | 3 + book_apps/ch13/slide_show/lib_slide_show.js | 59 + book_apps/ch13/slide_show/main.css | 13 + book_apps/ch13/slide_show/slide_show.js | 21 + book_apps/ch13/task_list/index.html | 45 + book_apps/ch13/task_list/modules/task.js | 20 + book_apps/ch13/task_list/modules/task_list.js | 39 + .../ch13/task_list/modules/task_storage.js | 23 + book_apps/ch13/task_list/task_list.css | 45 + book_apps/ch13/task_list/task_list.js | 68 + book_apps/ch14/astronomy_pod/apod.css | 28 + book_apps/ch14/astronomy_pod/apod.js | 87 + .../astronomy_pod/images/notavailable.png | Bin 0 -> 4387 bytes book_apps/ch14/astronomy_pod/index.html | 25 + book_apps/ch14/user_directory/index.html | 24 + book_apps/ch14/user_directory/main.css | 15 + book_apps/ch14/user_directory/mod_users.js | 6 + .../ch14/user_directory/user_directory.js | 20 + book_apps/ch15/cors_proxy/index.html | 26 + book_apps/ch15/cors_proxy/main.css | 12 + .../ch15/cors_proxy/node_modules/.bin/mime | 12 + .../cors_proxy/node_modules/.bin/mime.cmd | 17 + .../cors_proxy/node_modules/.bin/mime.ps1 | 28 + .../node_modules/.package-lock.json | 787 ++ .../node_modules/@types/http-proxy/LICENSE | 21 + .../node_modules/@types/http-proxy/README.md | 16 + .../node_modules/@types/http-proxy/index.d.ts | 237 + .../@types/http-proxy/package.json | 47 + .../node_modules/@types/node/LICENSE | 21 + .../node_modules/@types/node/README.md | 16 + .../node_modules/@types/node/assert.d.ts | 972 ++ .../@types/node/assert/strict.d.ts | 8 + .../node_modules/@types/node/async_hooks.d.ts | 532 + .../node_modules/@types/node/buffer.d.ts | 2354 +++++ .../@types/node/child_process.d.ts | 1400 +++ .../node_modules/@types/node/cluster.d.ts | 414 + .../node_modules/@types/node/console.d.ts | 412 + .../node_modules/@types/node/constants.d.ts | 18 + .../node_modules/@types/node/crypto.d.ts | 3978 ++++++++ .../node_modules/@types/node/dgram.d.ts | 550 ++ .../@types/node/diagnostics_channel.d.ts | 191 + .../node_modules/@types/node/dns.d.ts | 668 ++ .../@types/node/dns/promises.d.ts | 414 + .../node_modules/@types/node/dom-events.d.ts | 126 + .../node_modules/@types/node/domain.d.ts | 170 + .../node_modules/@types/node/events.d.ts | 788 ++ .../node_modules/@types/node/fs.d.ts | 4087 ++++++++ .../node_modules/@types/node/fs/promises.d.ts | 1202 +++ .../node_modules/@types/node/globals.d.ts | 325 + .../@types/node/globals.global.d.ts | 1 + .../node_modules/@types/node/http.d.ts | 1756 ++++ .../node_modules/@types/node/http2.d.ts | 2129 ++++ .../node_modules/@types/node/https.d.ts | 441 + .../node_modules/@types/node/index.d.ts | 133 + .../node_modules/@types/node/inspector.d.ts | 2748 ++++++ .../node_modules/@types/node/module.d.ts | 257 + .../node_modules/@types/node/net.d.ts | 893 ++ .../node_modules/@types/node/os.d.ts | 477 + .../node_modules/@types/node/package.json | 232 + .../node_modules/@types/node/path.d.ts | 191 + .../node_modules/@types/node/perf_hooks.d.ts | 638 ++ .../node_modules/@types/node/process.d.ts | 1495 +++ .../node_modules/@types/node/punycode.d.ts | 117 + .../node_modules/@types/node/querystring.d.ts | 131 + .../node_modules/@types/node/readline.d.ts | 526 + .../@types/node/readline/promises.d.ts | 145 + .../node_modules/@types/node/repl.d.ts | 424 + .../node_modules/@types/node/stream.d.ts | 1568 +++ .../@types/node/stream/consumers.d.ts | 12 + .../@types/node/stream/promises.d.ts | 42 + .../node_modules/@types/node/stream/web.d.ts | 330 + .../@types/node/string_decoder.d.ts | 67 + .../node_modules/@types/node/test.d.ts | 1461 +++ .../node_modules/@types/node/timers.d.ts | 225 + .../@types/node/timers/promises.d.ts | 93 + .../node_modules/@types/node/tls.d.ts | 1130 +++ .../@types/node/trace_events.d.ts | 182 + .../@types/node/ts4.8/assert.d.ts | 972 ++ .../@types/node/ts4.8/assert/strict.d.ts | 8 + .../@types/node/ts4.8/async_hooks.d.ts | 532 + .../@types/node/ts4.8/buffer.d.ts | 2354 +++++ .../@types/node/ts4.8/child_process.d.ts | 1400 +++ .../@types/node/ts4.8/cluster.d.ts | 414 + .../@types/node/ts4.8/console.d.ts | 412 + .../@types/node/ts4.8/constants.d.ts | 18 + .../@types/node/ts4.8/crypto.d.ts | 3977 ++++++++ .../node_modules/@types/node/ts4.8/dgram.d.ts | 550 ++ .../node/ts4.8/diagnostics_channel.d.ts | 191 + .../node_modules/@types/node/ts4.8/dns.d.ts | 668 ++ .../@types/node/ts4.8/dns/promises.d.ts | 414 + .../@types/node/ts4.8/dom-events.d.ts | 126 + .../@types/node/ts4.8/domain.d.ts | 170 + .../@types/node/ts4.8/events.d.ts | 788 ++ .../node_modules/@types/node/ts4.8/fs.d.ts | 4087 ++++++++ .../@types/node/ts4.8/fs/promises.d.ts | 1202 +++ .../@types/node/ts4.8/globals.d.ts | 325 + .../@types/node/ts4.8/globals.global.d.ts | 1 + .../node_modules/@types/node/ts4.8/http.d.ts | 1756 ++++ .../node_modules/@types/node/ts4.8/http2.d.ts | 2129 ++++ .../node_modules/@types/node/ts4.8/https.d.ts | 441 + .../node_modules/@types/node/ts4.8/index.d.ts | 88 + .../@types/node/ts4.8/inspector.d.ts | 2748 ++++++ .../@types/node/ts4.8/module.d.ts | 257 + .../node_modules/@types/node/ts4.8/net.d.ts | 893 ++ .../node_modules/@types/node/ts4.8/os.d.ts | 477 + .../node_modules/@types/node/ts4.8/path.d.ts | 191 + .../@types/node/ts4.8/perf_hooks.d.ts | 638 ++ .../@types/node/ts4.8/process.d.ts | 1495 +++ .../@types/node/ts4.8/punycode.d.ts | 117 + .../@types/node/ts4.8/querystring.d.ts | 131 + .../@types/node/ts4.8/readline.d.ts | 526 + .../@types/node/ts4.8/readline/promises.d.ts | 145 + .../node_modules/@types/node/ts4.8/repl.d.ts | 424 + .../@types/node/ts4.8/stream.d.ts | 1430 +++ .../@types/node/ts4.8/stream/consumers.d.ts | 12 + .../@types/node/ts4.8/stream/promises.d.ts | 42 + .../@types/node/ts4.8/stream/web.d.ts | 330 + .../@types/node/ts4.8/string_decoder.d.ts | 67 + .../node_modules/@types/node/ts4.8/test.d.ts | 1461 +++ .../@types/node/ts4.8/timers.d.ts | 225 + .../@types/node/ts4.8/timers/promises.d.ts | 93 + .../node_modules/@types/node/ts4.8/tls.d.ts | 1130 +++ .../@types/node/ts4.8/trace_events.d.ts | 182 + .../node_modules/@types/node/ts4.8/tty.d.ts | 208 + .../node_modules/@types/node/ts4.8/url.d.ts | 915 ++ .../node_modules/@types/node/ts4.8/util.d.ts | 2116 ++++ .../node_modules/@types/node/ts4.8/v8.d.ts | 635 ++ .../node_modules/@types/node/ts4.8/vm.d.ts | 895 ++ .../node_modules/@types/node/ts4.8/wasi.d.ts | 152 + .../@types/node/ts4.8/worker_threads.d.ts | 694 ++ .../node_modules/@types/node/ts4.8/zlib.d.ts | 517 + .../node_modules/@types/node/tty.d.ts | 208 + .../node_modules/@types/node/url.d.ts | 915 ++ .../node_modules/@types/node/util.d.ts | 2116 ++++ .../node_modules/@types/node/v8.d.ts | 635 ++ .../node_modules/@types/node/vm.d.ts | 895 ++ .../node_modules/@types/node/wasi.d.ts | 152 + .../@types/node/worker_threads.d.ts | 694 ++ .../node_modules/@types/node/zlib.d.ts | 517 + .../node_modules/accepts/HISTORY.md | 243 + .../cors_proxy/node_modules/accepts/LICENSE | 23 + .../cors_proxy/node_modules/accepts/README.md | 140 + .../cors_proxy/node_modules/accepts/index.js | 238 + .../node_modules/accepts/package.json | 47 + .../node_modules/array-flatten/LICENSE | 21 + .../node_modules/array-flatten/README.md | 43 + .../array-flatten/array-flatten.js | 64 + .../node_modules/array-flatten/package.json | 39 + .../node_modules/body-parser/HISTORY.md | 657 ++ .../node_modules/body-parser/LICENSE | 23 + .../node_modules/body-parser/README.md | 464 + .../node_modules/body-parser/SECURITY.md | 25 + .../node_modules/body-parser/index.js | 156 + .../node_modules/body-parser/lib/read.js | 205 + .../body-parser/lib/types/json.js | 236 + .../node_modules/body-parser/lib/types/raw.js | 101 + .../body-parser/lib/types/text.js | 121 + .../body-parser/lib/types/urlencoded.js | 284 + .../node_modules/body-parser/package.json | 56 + .../node_modules/braces/CHANGELOG.md | 184 + .../cors_proxy/node_modules/braces/LICENSE | 21 + .../cors_proxy/node_modules/braces/README.md | 593 ++ .../cors_proxy/node_modules/braces/index.js | 170 + .../node_modules/braces/lib/compile.js | 57 + .../node_modules/braces/lib/constants.js | 57 + .../node_modules/braces/lib/expand.js | 113 + .../node_modules/braces/lib/parse.js | 333 + .../node_modules/braces/lib/stringify.js | 32 + .../node_modules/braces/lib/utils.js | 112 + .../node_modules/braces/package.json | 77 + .../cors_proxy/node_modules/bytes/History.md | 97 + .../cors_proxy/node_modules/bytes/LICENSE | 23 + .../cors_proxy/node_modules/bytes/Readme.md | 152 + .../cors_proxy/node_modules/bytes/index.js | 170 + .../node_modules/bytes/package.json | 42 + .../node_modules/call-bind/.eslintignore | 1 + .../node_modules/call-bind/.eslintrc | 17 + .../call-bind/.github/FUNDING.yml | 12 + .../cors_proxy/node_modules/call-bind/.nycrc | 13 + .../node_modules/call-bind/CHANGELOG.md | 42 + .../cors_proxy/node_modules/call-bind/LICENSE | 21 + .../node_modules/call-bind/README.md | 2 + .../node_modules/call-bind/callBound.js | 15 + .../node_modules/call-bind/index.js | 47 + .../node_modules/call-bind/package.json | 80 + .../node_modules/call-bind/test/callBound.js | 55 + .../node_modules/call-bind/test/index.js | 66 + .../content-disposition/HISTORY.md | 60 + .../node_modules/content-disposition/LICENSE | 22 + .../content-disposition/README.md | 142 + .../node_modules/content-disposition/index.js | 458 + .../content-disposition/package.json | 44 + .../node_modules/content-type/HISTORY.md | 29 + .../node_modules/content-type/LICENSE | 22 + .../node_modules/content-type/README.md | 94 + .../node_modules/content-type/index.js | 225 + .../node_modules/content-type/package.json | 42 + .../node_modules/cookie-signature/.npmignore | 4 + .../node_modules/cookie-signature/History.md | 38 + .../node_modules/cookie-signature/Readme.md | 42 + .../node_modules/cookie-signature/index.js | 51 + .../cookie-signature/package.json | 18 + .../cors_proxy/node_modules/cookie/HISTORY.md | 142 + .../cors_proxy/node_modules/cookie/LICENSE | 24 + .../cors_proxy/node_modules/cookie/README.md | 302 + .../node_modules/cookie/SECURITY.md | 25 + .../cors_proxy/node_modules/cookie/index.js | 270 + .../node_modules/cookie/package.json | 44 + .../node_modules/cors/CONTRIBUTING.md | 33 + .../cors_proxy/node_modules/cors/HISTORY.md | 58 + .../ch15/cors_proxy/node_modules/cors/LICENSE | 22 + .../cors_proxy/node_modules/cors/README.md | 243 + .../cors_proxy/node_modules/cors/lib/index.js | 238 + .../cors_proxy/node_modules/cors/package.json | 41 + .../node_modules/debug/.coveralls.yml | 1 + .../cors_proxy/node_modules/debug/.eslintrc | 11 + .../cors_proxy/node_modules/debug/.npmignore | 9 + .../cors_proxy/node_modules/debug/.travis.yml | 14 + .../node_modules/debug/CHANGELOG.md | 362 + .../cors_proxy/node_modules/debug/LICENSE | 19 + .../cors_proxy/node_modules/debug/Makefile | 50 + .../cors_proxy/node_modules/debug/README.md | 312 + .../node_modules/debug/component.json | 19 + .../node_modules/debug/karma.conf.js | 70 + .../cors_proxy/node_modules/debug/node.js | 1 + .../node_modules/debug/package.json | 49 + .../node_modules/debug/src/browser.js | 185 + .../node_modules/debug/src/debug.js | 202 + .../node_modules/debug/src/index.js | 10 + .../node_modules/debug/src/inspector-log.js | 15 + .../cors_proxy/node_modules/debug/src/node.js | 248 + .../cors_proxy/node_modules/depd/History.md | 103 + .../ch15/cors_proxy/node_modules/depd/LICENSE | 22 + .../cors_proxy/node_modules/depd/Readme.md | 280 + .../cors_proxy/node_modules/depd/index.js | 538 ++ .../node_modules/depd/lib/browser/index.js | 77 + .../cors_proxy/node_modules/depd/package.json | 45 + .../cors_proxy/node_modules/destroy/LICENSE | 23 + .../cors_proxy/node_modules/destroy/README.md | 63 + .../cors_proxy/node_modules/destroy/index.js | 209 + .../node_modules/destroy/package.json | 48 + .../cors_proxy/node_modules/ee-first/LICENSE | 22 + .../node_modules/ee-first/README.md | 80 + .../cors_proxy/node_modules/ee-first/index.js | 95 + .../node_modules/ee-first/package.json | 29 + .../node_modules/encodeurl/HISTORY.md | 14 + .../cors_proxy/node_modules/encodeurl/LICENSE | 22 + .../node_modules/encodeurl/README.md | 128 + .../node_modules/encodeurl/index.js | 60 + .../node_modules/encodeurl/package.json | 40 + .../node_modules/escape-html/LICENSE | 24 + .../node_modules/escape-html/Readme.md | 43 + .../node_modules/escape-html/index.js | 78 + .../node_modules/escape-html/package.json | 24 + .../cors_proxy/node_modules/etag/HISTORY.md | 83 + .../ch15/cors_proxy/node_modules/etag/LICENSE | 22 + .../cors_proxy/node_modules/etag/README.md | 159 + .../cors_proxy/node_modules/etag/index.js | 131 + .../cors_proxy/node_modules/etag/package.json | 47 + .../node_modules/eventemitter3/LICENSE | 21 + .../node_modules/eventemitter3/README.md | 94 + .../node_modules/eventemitter3/index.d.ts | 134 + .../node_modules/eventemitter3/index.js | 336 + .../node_modules/eventemitter3/package.json | 56 + .../eventemitter3/umd/eventemitter3.js | 340 + .../eventemitter3/umd/eventemitter3.min.js | 1 + .../umd/eventemitter3.min.js.map | 1 + .../node_modules/express/History.md | 3588 +++++++ .../cors_proxy/node_modules/express/LICENSE | 24 + .../cors_proxy/node_modules/express/Readme.md | 166 + .../cors_proxy/node_modules/express/index.js | 11 + .../node_modules/express/lib/application.js | 661 ++ .../node_modules/express/lib/express.js | 116 + .../express/lib/middleware/init.js | 43 + .../express/lib/middleware/query.js | 47 + .../node_modules/express/lib/request.js | 525 + .../node_modules/express/lib/response.js | 1169 +++ .../node_modules/express/lib/router/index.js | 673 ++ .../node_modules/express/lib/router/layer.js | 181 + .../node_modules/express/lib/router/route.js | 225 + .../node_modules/express/lib/utils.js | 304 + .../node_modules/express/lib/view.js | 182 + .../node_modules/express/package.json | 99 + .../node_modules/fill-range/LICENSE | 21 + .../node_modules/fill-range/README.md | 237 + .../node_modules/fill-range/index.js | 249 + .../node_modules/fill-range/package.json | 69 + .../node_modules/finalhandler/HISTORY.md | 195 + .../node_modules/finalhandler/LICENSE | 22 + .../node_modules/finalhandler/README.md | 147 + .../node_modules/finalhandler/SECURITY.md | 25 + .../node_modules/finalhandler/index.js | 336 + .../node_modules/finalhandler/package.json | 46 + .../node_modules/follow-redirects/LICENSE | 18 + .../node_modules/follow-redirects/README.md | 155 + .../node_modules/follow-redirects/debug.js | 15 + .../node_modules/follow-redirects/http.js | 1 + .../node_modules/follow-redirects/https.js | 1 + .../node_modules/follow-redirects/index.js | 621 ++ .../follow-redirects/package.json | 59 + .../node_modules/forwarded/HISTORY.md | 21 + .../cors_proxy/node_modules/forwarded/LICENSE | 22 + .../node_modules/forwarded/README.md | 57 + .../node_modules/forwarded/index.js | 90 + .../node_modules/forwarded/package.json | 45 + .../cors_proxy/node_modules/fresh/HISTORY.md | 70 + .../cors_proxy/node_modules/fresh/LICENSE | 23 + .../cors_proxy/node_modules/fresh/README.md | 119 + .../cors_proxy/node_modules/fresh/index.js | 137 + .../node_modules/fresh/package.json | 46 + .../node_modules/function-bind/.editorconfig | 20 + .../node_modules/function-bind/.eslintrc | 15 + .../node_modules/function-bind/.jscs.json | 176 + .../node_modules/function-bind/.npmignore | 22 + .../node_modules/function-bind/.travis.yml | 168 + .../node_modules/function-bind/LICENSE | 20 + .../node_modules/function-bind/README.md | 48 + .../function-bind/implementation.js | 52 + .../node_modules/function-bind/index.js | 5 + .../node_modules/function-bind/package.json | 63 + .../node_modules/function-bind/test/.eslintrc | 9 + .../node_modules/function-bind/test/index.js | 252 + .../node_modules/get-intrinsic/.eslintrc | 38 + .../get-intrinsic/.github/FUNDING.yml | 12 + .../node_modules/get-intrinsic/.nycrc | 9 + .../node_modules/get-intrinsic/CHANGELOG.md | 117 + .../node_modules/get-intrinsic/LICENSE | 21 + .../node_modules/get-intrinsic/README.md | 71 + .../node_modules/get-intrinsic/index.js | 351 + .../node_modules/get-intrinsic/package.json | 93 + .../get-intrinsic/test/GetIntrinsic.js | 274 + .../node_modules/has-proto/.eslintrc | 5 + .../has-proto/.github/FUNDING.yml | 12 + .../node_modules/has-proto/CHANGELOG.md | 23 + .../cors_proxy/node_modules/has-proto/LICENSE | 21 + .../node_modules/has-proto/README.md | 38 + .../node_modules/has-proto/index.js | 11 + .../node_modules/has-proto/package.json | 74 + .../node_modules/has-proto/test/index.js | 19 + .../node_modules/has-symbols/.eslintrc | 11 + .../has-symbols/.github/FUNDING.yml | 12 + .../node_modules/has-symbols/.nycrc | 9 + .../node_modules/has-symbols/CHANGELOG.md | 75 + .../node_modules/has-symbols/LICENSE | 21 + .../node_modules/has-symbols/README.md | 46 + .../node_modules/has-symbols/index.js | 13 + .../node_modules/has-symbols/package.json | 101 + .../node_modules/has-symbols/shams.js | 42 + .../node_modules/has-symbols/test/index.js | 22 + .../has-symbols/test/shams/core-js.js | 28 + .../test/shams/get-own-property-symbols.js | 28 + .../node_modules/has-symbols/test/tests.js | 56 + .../cors_proxy/node_modules/has/LICENSE-MIT | 22 + .../cors_proxy/node_modules/has/README.md | 18 + .../cors_proxy/node_modules/has/package.json | 48 + .../cors_proxy/node_modules/has/src/index.js | 5 + .../cors_proxy/node_modules/has/test/index.js | 10 + .../node_modules/http-errors/HISTORY.md | 180 + .../node_modules/http-errors/LICENSE | 23 + .../node_modules/http-errors/README.md | 169 + .../node_modules/http-errors/index.js | 289 + .../node_modules/http-errors/package.json | 50 + .../http-proxy-middleware/LICENSE | 22 + .../http-proxy-middleware/README.md | 598 ++ .../http-proxy-middleware/dist/_handlers.d.ts | 4 + .../http-proxy-middleware/dist/_handlers.js | 84 + .../dist/config-factory.d.ts | 6 + .../dist/config-factory.js | 80 + .../dist/context-matcher.d.ts | 2 + .../dist/context-matcher.js | 81 + .../http-proxy-middleware/dist/errors.d.ts | 6 + .../http-proxy-middleware/dist/errors.js | 10 + .../dist/handlers/fix-request-body.d.ts | 6 + .../dist/handlers/fix-request-body.js | 26 + .../dist/handlers/index.d.ts | 1 + .../dist/handlers/index.js | 13 + .../dist/handlers/public.d.ts | 2 + .../dist/handlers/public.js | 7 + .../dist/handlers/response-interceptor.d.ts | 12 + .../dist/handlers/response-interceptor.js | 86 + .../dist/http-proxy-middleware.d.ts | 35 + .../dist/http-proxy-middleware.js | 157 + .../http-proxy-middleware/dist/index.d.ts | 4 + .../http-proxy-middleware/dist/index.js | 20 + .../http-proxy-middleware/dist/logger.d.ts | 14 + .../http-proxy-middleware/dist/logger.js | 135 + .../dist/path-rewriter.d.ts | 7 + .../dist/path-rewriter.js | 66 + .../http-proxy-middleware/dist/router.d.ts | 1 + .../http-proxy-middleware/dist/router.js | 46 + .../http-proxy-middleware/dist/types.d.ts | 54 + .../http-proxy-middleware/dist/types.js | 6 + .../http-proxy-middleware/package.json | 109 + .../node_modules/http-proxy/.auto-changelog | 6 + .../node_modules/http-proxy/.gitattributes | 1 + .../node_modules/http-proxy/CHANGELOG.md | 1872 ++++ .../http-proxy/CODE_OF_CONDUCT.md | 74 + .../node_modules/http-proxy/LICENSE | 23 + .../node_modules/http-proxy/README.md | 568 ++ .../node_modules/http-proxy/codecov.yml | 10 + .../node_modules/http-proxy/index.js | 13 + .../node_modules/http-proxy/lib/http-proxy.js | 66 + .../http-proxy/lib/http-proxy/common.js | 248 + .../http-proxy/lib/http-proxy/index.js | 185 + .../lib/http-proxy/passes/web-incoming.js | 194 + .../lib/http-proxy/passes/web-outgoing.js | 147 + .../lib/http-proxy/passes/ws-incoming.js | 162 + .../node_modules/http-proxy/package.json | 41 + .../node_modules/http-proxy/renovate.json | 19 + .../node_modules/iconv-lite/Changelog.md | 162 + .../node_modules/iconv-lite/LICENSE | 21 + .../node_modules/iconv-lite/README.md | 156 + .../iconv-lite/encodings/dbcs-codec.js | 555 ++ .../iconv-lite/encodings/dbcs-data.js | 176 + .../iconv-lite/encodings/index.js | 22 + .../iconv-lite/encodings/internal.js | 188 + .../iconv-lite/encodings/sbcs-codec.js | 72 + .../encodings/sbcs-data-generated.js | 451 + .../iconv-lite/encodings/sbcs-data.js | 174 + .../encodings/tables/big5-added.json | 122 + .../iconv-lite/encodings/tables/cp936.json | 264 + .../iconv-lite/encodings/tables/cp949.json | 273 + .../iconv-lite/encodings/tables/cp950.json | 177 + .../iconv-lite/encodings/tables/eucjp.json | 182 + .../encodings/tables/gb18030-ranges.json | 1 + .../encodings/tables/gbk-added.json | 55 + .../iconv-lite/encodings/tables/shiftjis.json | 125 + .../iconv-lite/encodings/utf16.js | 177 + .../node_modules/iconv-lite/encodings/utf7.js | 290 + .../iconv-lite/lib/bom-handling.js | 52 + .../iconv-lite/lib/extend-node.js | 217 + .../node_modules/iconv-lite/lib/index.d.ts | 24 + .../node_modules/iconv-lite/lib/index.js | 153 + .../node_modules/iconv-lite/lib/streams.js | 121 + .../node_modules/iconv-lite/package.json | 46 + .../cors_proxy/node_modules/inherits/LICENSE | 16 + .../node_modules/inherits/README.md | 42 + .../node_modules/inherits/inherits.js | 9 + .../node_modules/inherits/inherits_browser.js | 27 + .../node_modules/inherits/package.json | 29 + .../cors_proxy/node_modules/ipaddr.js/LICENSE | 19 + .../node_modules/ipaddr.js/README.md | 233 + .../node_modules/ipaddr.js/ipaddr.min.js | 1 + .../node_modules/ipaddr.js/lib/ipaddr.js | 673 ++ .../node_modules/ipaddr.js/lib/ipaddr.js.d.ts | 68 + .../node_modules/ipaddr.js/package.json | 35 + .../node_modules/is-extglob/LICENSE | 21 + .../node_modules/is-extglob/README.md | 107 + .../node_modules/is-extglob/index.js | 20 + .../node_modules/is-extglob/package.json | 69 + .../cors_proxy/node_modules/is-glob/LICENSE | 21 + .../cors_proxy/node_modules/is-glob/README.md | 206 + .../cors_proxy/node_modules/is-glob/index.js | 150 + .../node_modules/is-glob/package.json | 81 + .../cors_proxy/node_modules/is-number/LICENSE | 21 + .../node_modules/is-number/README.md | 187 + .../node_modules/is-number/index.js | 18 + .../node_modules/is-number/package.json | 82 + .../node_modules/is-plain-obj/index.d.ts | 29 + .../node_modules/is-plain-obj/index.js | 10 + .../node_modules/is-plain-obj/license | 9 + .../node_modules/is-plain-obj/package.json | 39 + .../node_modules/is-plain-obj/readme.md | 51 + .../node_modules/media-typer/HISTORY.md | 22 + .../node_modules/media-typer/LICENSE | 22 + .../node_modules/media-typer/README.md | 81 + .../node_modules/media-typer/index.js | 270 + .../node_modules/media-typer/package.json | 26 + .../node_modules/merge-descriptors/HISTORY.md | 21 + .../node_modules/merge-descriptors/LICENSE | 23 + .../node_modules/merge-descriptors/README.md | 48 + .../node_modules/merge-descriptors/index.js | 60 + .../merge-descriptors/package.json | 32 + .../node_modules/methods/HISTORY.md | 29 + .../cors_proxy/node_modules/methods/LICENSE | 24 + .../cors_proxy/node_modules/methods/README.md | 51 + .../cors_proxy/node_modules/methods/index.js | 69 + .../node_modules/methods/package.json | 36 + .../node_modules/micromatch/LICENSE | 21 + .../node_modules/micromatch/README.md | 1011 ++ .../node_modules/micromatch/index.js | 467 + .../node_modules/micromatch/package.json | 119 + .../node_modules/mime-db/HISTORY.md | 507 + .../cors_proxy/node_modules/mime-db/LICENSE | 23 + .../cors_proxy/node_modules/mime-db/README.md | 100 + .../cors_proxy/node_modules/mime-db/db.json | 8519 +++++++++++++++++ .../cors_proxy/node_modules/mime-db/index.js | 12 + .../node_modules/mime-db/package.json | 60 + .../node_modules/mime-types/HISTORY.md | 397 + .../node_modules/mime-types/LICENSE | 23 + .../node_modules/mime-types/README.md | 113 + .../node_modules/mime-types/index.js | 188 + .../node_modules/mime-types/package.json | 44 + .../cors_proxy/node_modules/mime/.npmignore | 0 .../cors_proxy/node_modules/mime/CHANGELOG.md | 164 + .../ch15/cors_proxy/node_modules/mime/LICENSE | 21 + .../cors_proxy/node_modules/mime/README.md | 90 + .../ch15/cors_proxy/node_modules/mime/cli.js | 8 + .../ch15/cors_proxy/node_modules/mime/mime.js | 108 + .../cors_proxy/node_modules/mime/package.json | 44 + .../cors_proxy/node_modules/mime/src/build.js | 53 + .../cors_proxy/node_modules/mime/src/test.js | 60 + .../cors_proxy/node_modules/mime/types.json | 1 + .../ch15/cors_proxy/node_modules/ms/index.js | 152 + .../cors_proxy/node_modules/ms/license.md | 21 + .../cors_proxy/node_modules/ms/package.json | 37 + .../ch15/cors_proxy/node_modules/ms/readme.md | 51 + .../node_modules/negotiator/HISTORY.md | 108 + .../node_modules/negotiator/LICENSE | 24 + .../node_modules/negotiator/README.md | 203 + .../node_modules/negotiator/index.js | 82 + .../node_modules/negotiator/lib/charset.js | 169 + .../node_modules/negotiator/lib/encoding.js | 184 + .../node_modules/negotiator/lib/language.js | 179 + .../node_modules/negotiator/lib/mediaType.js | 294 + .../node_modules/negotiator/package.json | 42 + .../node_modules/object-assign/index.js | 90 + .../node_modules/object-assign/license | 21 + .../node_modules/object-assign/package.json | 42 + .../node_modules/object-assign/readme.md | 61 + .../node_modules/object-inspect/.eslintrc | 53 + .../object-inspect/.github/FUNDING.yml | 12 + .../node_modules/object-inspect/.nycrc | 13 + .../node_modules/object-inspect/CHANGELOG.md | 370 + .../node_modules/object-inspect/LICENSE | 21 + .../object-inspect/example/all.js | 23 + .../object-inspect/example/circular.js | 6 + .../node_modules/object-inspect/example/fn.js | 5 + .../object-inspect/example/inspect.js | 10 + .../node_modules/object-inspect/index.js | 516 + .../object-inspect/package-support.json | 20 + .../node_modules/object-inspect/package.json | 97 + .../object-inspect/readme.markdown | 86 + .../object-inspect/test-core-js.js | 26 + .../object-inspect/test/bigint.js | 58 + .../object-inspect/test/browser/dom.js | 15 + .../object-inspect/test/circular.js | 16 + .../node_modules/object-inspect/test/deep.js | 12 + .../object-inspect/test/element.js | 53 + .../node_modules/object-inspect/test/err.js | 48 + .../node_modules/object-inspect/test/fakes.js | 29 + .../node_modules/object-inspect/test/fn.js | 76 + .../node_modules/object-inspect/test/has.js | 15 + .../node_modules/object-inspect/test/holes.js | 15 + .../object-inspect/test/indent-option.js | 271 + .../object-inspect/test/inspect.js | 139 + .../object-inspect/test/lowbyte.js | 12 + .../object-inspect/test/number.js | 58 + .../object-inspect/test/quoteStyle.js | 17 + .../object-inspect/test/toStringTag.js | 40 + .../node_modules/object-inspect/test/undef.js | 12 + .../object-inspect/test/values.js | 211 + .../object-inspect/util.inspect.js | 1 + .../node_modules/on-finished/HISTORY.md | 98 + .../node_modules/on-finished/LICENSE | 23 + .../node_modules/on-finished/README.md | 162 + .../node_modules/on-finished/index.js | 234 + .../node_modules/on-finished/package.json | 39 + .../node_modules/parseurl/HISTORY.md | 58 + .../cors_proxy/node_modules/parseurl/LICENSE | 24 + .../node_modules/parseurl/README.md | 133 + .../cors_proxy/node_modules/parseurl/index.js | 158 + .../node_modules/parseurl/package.json | 40 + .../node_modules/path-to-regexp/History.md | 36 + .../node_modules/path-to-regexp/LICENSE | 21 + .../node_modules/path-to-regexp/Readme.md | 35 + .../node_modules/path-to-regexp/index.js | 129 + .../node_modules/path-to-regexp/package.json | 30 + .../node_modules/picomatch/CHANGELOG.md | 136 + .../cors_proxy/node_modules/picomatch/LICENSE | 21 + .../node_modules/picomatch/README.md | 708 ++ .../node_modules/picomatch/index.js | 3 + .../node_modules/picomatch/lib/constants.js | 179 + .../node_modules/picomatch/lib/parse.js | 1091 +++ .../node_modules/picomatch/lib/picomatch.js | 342 + .../node_modules/picomatch/lib/scan.js | 391 + .../node_modules/picomatch/lib/utils.js | 64 + .../node_modules/picomatch/package.json | 81 + .../node_modules/proxy-addr/HISTORY.md | 161 + .../node_modules/proxy-addr/LICENSE | 22 + .../node_modules/proxy-addr/README.md | 139 + .../node_modules/proxy-addr/index.js | 327 + .../node_modules/proxy-addr/package.json | 47 + .../cors_proxy/node_modules/qs/.editorconfig | 43 + .../ch15/cors_proxy/node_modules/qs/.eslintrc | 38 + .../node_modules/qs/.github/FUNDING.yml | 12 + .../ch15/cors_proxy/node_modules/qs/.nycrc | 13 + .../cors_proxy/node_modules/qs/CHANGELOG.md | 546 ++ .../cors_proxy/node_modules/qs/LICENSE.md | 29 + .../ch15/cors_proxy/node_modules/qs/README.md | 625 ++ .../cors_proxy/node_modules/qs/dist/qs.js | 2054 ++++ .../cors_proxy/node_modules/qs/lib/formats.js | 23 + .../cors_proxy/node_modules/qs/lib/index.js | 11 + .../cors_proxy/node_modules/qs/lib/parse.js | 263 + .../node_modules/qs/lib/stringify.js | 326 + .../cors_proxy/node_modules/qs/lib/utils.js | 252 + .../cors_proxy/node_modules/qs/package.json | 77 + .../cors_proxy/node_modules/qs/test/parse.js | 855 ++ .../node_modules/qs/test/stringify.js | 909 ++ .../cors_proxy/node_modules/qs/test/utils.js | 136 + .../node_modules/range-parser/HISTORY.md | 56 + .../node_modules/range-parser/LICENSE | 23 + .../node_modules/range-parser/README.md | 84 + .../node_modules/range-parser/index.js | 162 + .../node_modules/range-parser/package.json | 44 + .../node_modules/raw-body/HISTORY.md | 303 + .../cors_proxy/node_modules/raw-body/LICENSE | 22 + .../node_modules/raw-body/README.md | 223 + .../node_modules/raw-body/SECURITY.md | 24 + .../node_modules/raw-body/index.d.ts | 87 + .../cors_proxy/node_modules/raw-body/index.js | 329 + .../node_modules/raw-body/package.json | 49 + .../node_modules/requires-port/.npmignore | 2 + .../node_modules/requires-port/.travis.yml | 19 + .../node_modules/requires-port/LICENSE | 22 + .../node_modules/requires-port/README.md | 47 + .../node_modules/requires-port/index.js | 38 + .../node_modules/requires-port/package.json | 47 + .../node_modules/requires-port/test.js | 98 + .../node_modules/safe-buffer/LICENSE | 21 + .../node_modules/safe-buffer/README.md | 584 ++ .../node_modules/safe-buffer/index.d.ts | 187 + .../node_modules/safe-buffer/index.js | 65 + .../node_modules/safe-buffer/package.json | 51 + .../node_modules/safer-buffer/LICENSE | 21 + .../safer-buffer/Porting-Buffer.md | 268 + .../node_modules/safer-buffer/Readme.md | 156 + .../node_modules/safer-buffer/dangerous.js | 58 + .../node_modules/safer-buffer/package.json | 34 + .../node_modules/safer-buffer/safer.js | 77 + .../node_modules/safer-buffer/tests.js | 406 + .../cors_proxy/node_modules/send/HISTORY.md | 521 + .../ch15/cors_proxy/node_modules/send/LICENSE | 23 + .../cors_proxy/node_modules/send/README.md | 327 + .../cors_proxy/node_modules/send/SECURITY.md | 24 + .../cors_proxy/node_modules/send/index.js | 1143 +++ .../send/node_modules/ms/index.js | 162 + .../send/node_modules/ms/license.md | 21 + .../send/node_modules/ms/package.json | 38 + .../send/node_modules/ms/readme.md | 59 + .../cors_proxy/node_modules/send/package.json | 62 + .../node_modules/serve-static/HISTORY.md | 471 + .../node_modules/serve-static/LICENSE | 25 + .../node_modules/serve-static/README.md | 257 + .../node_modules/serve-static/index.js | 210 + .../node_modules/serve-static/package.json | 42 + .../node_modules/setprototypeof/LICENSE | 13 + .../node_modules/setprototypeof/README.md | 31 + .../node_modules/setprototypeof/index.d.ts | 2 + .../node_modules/setprototypeof/index.js | 17 + .../node_modules/setprototypeof/package.json | 38 + .../node_modules/setprototypeof/test/index.js | 24 + .../node_modules/side-channel/.eslintignore | 1 + .../node_modules/side-channel/.eslintrc | 11 + .../side-channel/.github/FUNDING.yml | 12 + .../node_modules/side-channel/.nycrc | 13 + .../node_modules/side-channel/CHANGELOG.md | 65 + .../node_modules/side-channel/LICENSE | 21 + .../node_modules/side-channel/README.md | 2 + .../node_modules/side-channel/index.js | 124 + .../node_modules/side-channel/package.json | 67 + .../node_modules/side-channel/test/index.js | 78 + .../node_modules/statuses/HISTORY.md | 82 + .../cors_proxy/node_modules/statuses/LICENSE | 23 + .../node_modules/statuses/README.md | 136 + .../node_modules/statuses/codes.json | 65 + .../cors_proxy/node_modules/statuses/index.js | 146 + .../node_modules/statuses/package.json | 49 + .../node_modules/to-regex-range/LICENSE | 21 + .../node_modules/to-regex-range/README.md | 305 + .../node_modules/to-regex-range/index.js | 288 + .../node_modules/to-regex-range/package.json | 88 + .../node_modules/toidentifier/HISTORY.md | 9 + .../node_modules/toidentifier/LICENSE | 21 + .../node_modules/toidentifier/README.md | 61 + .../node_modules/toidentifier/index.js | 32 + .../node_modules/toidentifier/package.json | 38 + .../node_modules/type-is/HISTORY.md | 259 + .../cors_proxy/node_modules/type-is/LICENSE | 23 + .../cors_proxy/node_modules/type-is/README.md | 170 + .../cors_proxy/node_modules/type-is/index.js | 266 + .../node_modules/type-is/package.json | 45 + .../cors_proxy/node_modules/unpipe/HISTORY.md | 4 + .../cors_proxy/node_modules/unpipe/LICENSE | 22 + .../cors_proxy/node_modules/unpipe/README.md | 43 + .../cors_proxy/node_modules/unpipe/index.js | 69 + .../node_modules/unpipe/package.json | 27 + .../node_modules/utils-merge/.npmignore | 9 + .../node_modules/utils-merge/LICENSE | 20 + .../node_modules/utils-merge/README.md | 34 + .../node_modules/utils-merge/index.js | 23 + .../node_modules/utils-merge/package.json | 40 + .../cors_proxy/node_modules/vary/HISTORY.md | 39 + .../ch15/cors_proxy/node_modules/vary/LICENSE | 22 + .../cors_proxy/node_modules/vary/README.md | 101 + .../cors_proxy/node_modules/vary/index.js | 149 + .../cors_proxy/node_modules/vary/package.json | 43 + book_apps/ch15/cors_proxy/package-lock.json | 794 ++ book_apps/ch15/cors_proxy/package.json | 7 + book_apps/ch15/cors_proxy/proxy.mjs | 20 + book_apps/ch15/email_list/email_list.txt | 4 + book_apps/ch15/email_list/read.js | 8 + book_apps/ch15/email_list/read.mjs | 6 + .../ch15/email_list/read_write_promises.mjs | 14 + book_apps/ch15/email_list_api/data.js | 55 + book_apps/ch15/email_list_api/email_list.txt | 1 + book_apps/ch15/email_list_api/index.js | 22 + .../email_list_api/node_modules/.bin/mime | 12 + .../email_list_api/node_modules/.bin/mime.cmd | 17 + .../email_list_api/node_modules/.bin/mime.ps1 | 28 + .../node_modules/.package-lock.json | 616 ++ .../node_modules/accepts/HISTORY.md | 243 + .../node_modules/accepts/LICENSE | 23 + .../node_modules/accepts/README.md | 140 + .../node_modules/accepts/index.js | 238 + .../node_modules/accepts/package.json | 47 + .../node_modules/array-flatten/LICENSE | 21 + .../node_modules/array-flatten/README.md | 43 + .../array-flatten/array-flatten.js | 64 + .../node_modules/array-flatten/package.json | 39 + .../node_modules/body-parser/HISTORY.md | 657 ++ .../node_modules/body-parser/LICENSE | 23 + .../node_modules/body-parser/README.md | 464 + .../node_modules/body-parser/SECURITY.md | 25 + .../node_modules/body-parser/index.js | 156 + .../node_modules/body-parser/lib/read.js | 205 + .../body-parser/lib/types/json.js | 236 + .../node_modules/body-parser/lib/types/raw.js | 101 + .../body-parser/lib/types/text.js | 121 + .../body-parser/lib/types/urlencoded.js | 284 + .../node_modules/body-parser/package.json | 56 + .../node_modules/bytes/History.md | 97 + .../email_list_api/node_modules/bytes/LICENSE | 23 + .../node_modules/bytes/Readme.md | 152 + .../node_modules/bytes/index.js | 170 + .../node_modules/bytes/package.json | 42 + .../node_modules/call-bind/.eslintignore | 1 + .../node_modules/call-bind/.eslintrc | 17 + .../call-bind/.github/FUNDING.yml | 12 + .../node_modules/call-bind/.nycrc | 13 + .../node_modules/call-bind/CHANGELOG.md | 42 + .../node_modules/call-bind/LICENSE | 21 + .../node_modules/call-bind/README.md | 2 + .../node_modules/call-bind/callBound.js | 15 + .../node_modules/call-bind/index.js | 47 + .../node_modules/call-bind/package.json | 80 + .../node_modules/call-bind/test/callBound.js | 55 + .../node_modules/call-bind/test/index.js | 66 + .../content-disposition/HISTORY.md | 60 + .../node_modules/content-disposition/LICENSE | 22 + .../content-disposition/README.md | 142 + .../node_modules/content-disposition/index.js | 458 + .../content-disposition/package.json | 44 + .../node_modules/content-type/HISTORY.md | 29 + .../node_modules/content-type/LICENSE | 22 + .../node_modules/content-type/README.md | 94 + .../node_modules/content-type/index.js | 225 + .../node_modules/content-type/package.json | 42 + .../node_modules/cookie-signature/.npmignore | 4 + .../node_modules/cookie-signature/History.md | 38 + .../node_modules/cookie-signature/Readme.md | 42 + .../node_modules/cookie-signature/index.js | 51 + .../cookie-signature/package.json | 18 + .../node_modules/cookie/HISTORY.md | 142 + .../node_modules/cookie/LICENSE | 24 + .../node_modules/cookie/README.md | 302 + .../node_modules/cookie/SECURITY.md | 25 + .../node_modules/cookie/index.js | 270 + .../node_modules/cookie/package.json | 44 + .../node_modules/cors/CONTRIBUTING.md | 33 + .../node_modules/cors/HISTORY.md | 58 + .../email_list_api/node_modules/cors/LICENSE | 22 + .../node_modules/cors/README.md | 243 + .../node_modules/cors/lib/index.js | 238 + .../node_modules/cors/package.json | 41 + .../node_modules/debug/.coveralls.yml | 1 + .../node_modules/debug/.eslintrc | 11 + .../node_modules/debug/.npmignore | 9 + .../node_modules/debug/.travis.yml | 14 + .../node_modules/debug/CHANGELOG.md | 362 + .../email_list_api/node_modules/debug/LICENSE | 19 + .../node_modules/debug/Makefile | 50 + .../node_modules/debug/README.md | 312 + .../node_modules/debug/component.json | 19 + .../node_modules/debug/karma.conf.js | 70 + .../email_list_api/node_modules/debug/node.js | 1 + .../node_modules/debug/package.json | 49 + .../node_modules/debug/src/browser.js | 185 + .../node_modules/debug/src/debug.js | 202 + .../node_modules/debug/src/index.js | 10 + .../node_modules/debug/src/inspector-log.js | 15 + .../node_modules/debug/src/node.js | 248 + .../node_modules/depd/History.md | 103 + .../email_list_api/node_modules/depd/LICENSE | 22 + .../node_modules/depd/Readme.md | 280 + .../email_list_api/node_modules/depd/index.js | 538 ++ .../node_modules/depd/lib/browser/index.js | 77 + .../node_modules/depd/package.json | 45 + .../node_modules/destroy/LICENSE | 23 + .../node_modules/destroy/README.md | 63 + .../node_modules/destroy/index.js | 209 + .../node_modules/destroy/package.json | 48 + .../node_modules/ee-first/LICENSE | 22 + .../node_modules/ee-first/README.md | 80 + .../node_modules/ee-first/index.js | 95 + .../node_modules/ee-first/package.json | 29 + .../node_modules/encodeurl/HISTORY.md | 14 + .../node_modules/encodeurl/LICENSE | 22 + .../node_modules/encodeurl/README.md | 128 + .../node_modules/encodeurl/index.js | 60 + .../node_modules/encodeurl/package.json | 40 + .../node_modules/escape-html/LICENSE | 24 + .../node_modules/escape-html/Readme.md | 43 + .../node_modules/escape-html/index.js | 78 + .../node_modules/escape-html/package.json | 24 + .../node_modules/etag/HISTORY.md | 83 + .../email_list_api/node_modules/etag/LICENSE | 22 + .../node_modules/etag/README.md | 159 + .../email_list_api/node_modules/etag/index.js | 131 + .../node_modules/etag/package.json | 47 + .../node_modules/express/History.md | 3588 +++++++ .../node_modules/express/LICENSE | 24 + .../node_modules/express/Readme.md | 166 + .../node_modules/express/index.js | 11 + .../node_modules/express/lib/application.js | 661 ++ .../node_modules/express/lib/express.js | 116 + .../express/lib/middleware/init.js | 43 + .../express/lib/middleware/query.js | 47 + .../node_modules/express/lib/request.js | 525 + .../node_modules/express/lib/response.js | 1169 +++ .../node_modules/express/lib/router/index.js | 673 ++ .../node_modules/express/lib/router/layer.js | 181 + .../node_modules/express/lib/router/route.js | 225 + .../node_modules/express/lib/utils.js | 304 + .../node_modules/express/lib/view.js | 182 + .../node_modules/express/package.json | 99 + .../node_modules/finalhandler/HISTORY.md | 195 + .../node_modules/finalhandler/LICENSE | 22 + .../node_modules/finalhandler/README.md | 147 + .../node_modules/finalhandler/SECURITY.md | 25 + .../node_modules/finalhandler/index.js | 336 + .../node_modules/finalhandler/package.json | 46 + .../node_modules/forwarded/HISTORY.md | 21 + .../node_modules/forwarded/LICENSE | 22 + .../node_modules/forwarded/README.md | 57 + .../node_modules/forwarded/index.js | 90 + .../node_modules/forwarded/package.json | 45 + .../node_modules/fresh/HISTORY.md | 70 + .../email_list_api/node_modules/fresh/LICENSE | 23 + .../node_modules/fresh/README.md | 119 + .../node_modules/fresh/index.js | 137 + .../node_modules/fresh/package.json | 46 + .../node_modules/function-bind/.editorconfig | 20 + .../node_modules/function-bind/.eslintrc | 15 + .../node_modules/function-bind/.jscs.json | 176 + .../node_modules/function-bind/.npmignore | 22 + .../node_modules/function-bind/.travis.yml | 168 + .../node_modules/function-bind/LICENSE | 20 + .../node_modules/function-bind/README.md | 48 + .../function-bind/implementation.js | 52 + .../node_modules/function-bind/index.js | 5 + .../node_modules/function-bind/package.json | 63 + .../node_modules/function-bind/test/.eslintrc | 9 + .../node_modules/function-bind/test/index.js | 252 + .../node_modules/get-intrinsic/.eslintrc | 38 + .../get-intrinsic/.github/FUNDING.yml | 12 + .../node_modules/get-intrinsic/.nycrc | 9 + .../node_modules/get-intrinsic/CHANGELOG.md | 117 + .../node_modules/get-intrinsic/LICENSE | 21 + .../node_modules/get-intrinsic/README.md | 71 + .../node_modules/get-intrinsic/index.js | 351 + .../node_modules/get-intrinsic/package.json | 93 + .../get-intrinsic/test/GetIntrinsic.js | 274 + .../node_modules/has-proto/.eslintrc | 5 + .../has-proto/.github/FUNDING.yml | 12 + .../node_modules/has-proto/CHANGELOG.md | 23 + .../node_modules/has-proto/LICENSE | 21 + .../node_modules/has-proto/README.md | 38 + .../node_modules/has-proto/index.js | 11 + .../node_modules/has-proto/package.json | 74 + .../node_modules/has-proto/test/index.js | 19 + .../node_modules/has-symbols/.eslintrc | 11 + .../has-symbols/.github/FUNDING.yml | 12 + .../node_modules/has-symbols/.nycrc | 9 + .../node_modules/has-symbols/CHANGELOG.md | 75 + .../node_modules/has-symbols/LICENSE | 21 + .../node_modules/has-symbols/README.md | 46 + .../node_modules/has-symbols/index.js | 13 + .../node_modules/has-symbols/package.json | 101 + .../node_modules/has-symbols/shams.js | 42 + .../node_modules/has-symbols/test/index.js | 22 + .../has-symbols/test/shams/core-js.js | 28 + .../test/shams/get-own-property-symbols.js | 28 + .../node_modules/has-symbols/test/tests.js | 56 + .../node_modules/has/LICENSE-MIT | 22 + .../email_list_api/node_modules/has/README.md | 18 + .../node_modules/has/package.json | 48 + .../node_modules/has/src/index.js | 5 + .../node_modules/has/test/index.js | 10 + .../node_modules/http-errors/HISTORY.md | 180 + .../node_modules/http-errors/LICENSE | 23 + .../node_modules/http-errors/README.md | 169 + .../node_modules/http-errors/index.js | 289 + .../node_modules/http-errors/package.json | 50 + .../node_modules/iconv-lite/Changelog.md | 162 + .../node_modules/iconv-lite/LICENSE | 21 + .../node_modules/iconv-lite/README.md | 156 + .../iconv-lite/encodings/dbcs-codec.js | 555 ++ .../iconv-lite/encodings/dbcs-data.js | 176 + .../iconv-lite/encodings/index.js | 22 + .../iconv-lite/encodings/internal.js | 188 + .../iconv-lite/encodings/sbcs-codec.js | 72 + .../encodings/sbcs-data-generated.js | 451 + .../iconv-lite/encodings/sbcs-data.js | 174 + .../encodings/tables/big5-added.json | 122 + .../iconv-lite/encodings/tables/cp936.json | 264 + .../iconv-lite/encodings/tables/cp949.json | 273 + .../iconv-lite/encodings/tables/cp950.json | 177 + .../iconv-lite/encodings/tables/eucjp.json | 182 + .../encodings/tables/gb18030-ranges.json | 1 + .../encodings/tables/gbk-added.json | 55 + .../iconv-lite/encodings/tables/shiftjis.json | 125 + .../iconv-lite/encodings/utf16.js | 177 + .../node_modules/iconv-lite/encodings/utf7.js | 290 + .../iconv-lite/lib/bom-handling.js | 52 + .../iconv-lite/lib/extend-node.js | 217 + .../node_modules/iconv-lite/lib/index.d.ts | 24 + .../node_modules/iconv-lite/lib/index.js | 153 + .../node_modules/iconv-lite/lib/streams.js | 121 + .../node_modules/iconv-lite/package.json | 46 + .../node_modules/inherits/LICENSE | 16 + .../node_modules/inherits/README.md | 42 + .../node_modules/inherits/inherits.js | 9 + .../node_modules/inherits/inherits_browser.js | 27 + .../node_modules/inherits/package.json | 29 + .../node_modules/ipaddr.js/LICENSE | 19 + .../node_modules/ipaddr.js/README.md | 233 + .../node_modules/ipaddr.js/ipaddr.min.js | 1 + .../node_modules/ipaddr.js/lib/ipaddr.js | 673 ++ .../node_modules/ipaddr.js/lib/ipaddr.js.d.ts | 68 + .../node_modules/ipaddr.js/package.json | 35 + .../node_modules/media-typer/HISTORY.md | 22 + .../node_modules/media-typer/LICENSE | 22 + .../node_modules/media-typer/README.md | 81 + .../node_modules/media-typer/index.js | 270 + .../node_modules/media-typer/package.json | 26 + .../node_modules/merge-descriptors/HISTORY.md | 21 + .../node_modules/merge-descriptors/LICENSE | 23 + .../node_modules/merge-descriptors/README.md | 48 + .../node_modules/merge-descriptors/index.js | 60 + .../merge-descriptors/package.json | 32 + .../node_modules/methods/HISTORY.md | 29 + .../node_modules/methods/LICENSE | 24 + .../node_modules/methods/README.md | 51 + .../node_modules/methods/index.js | 69 + .../node_modules/methods/package.json | 36 + .../node_modules/mime-db/HISTORY.md | 507 + .../node_modules/mime-db/LICENSE | 23 + .../node_modules/mime-db/README.md | 100 + .../node_modules/mime-db/db.json | 8519 +++++++++++++++++ .../node_modules/mime-db/index.js | 12 + .../node_modules/mime-db/package.json | 60 + .../node_modules/mime-types/HISTORY.md | 397 + .../node_modules/mime-types/LICENSE | 23 + .../node_modules/mime-types/README.md | 113 + .../node_modules/mime-types/index.js | 188 + .../node_modules/mime-types/package.json | 44 + .../node_modules/mime/.npmignore | 0 .../node_modules/mime/CHANGELOG.md | 164 + .../email_list_api/node_modules/mime/LICENSE | 21 + .../node_modules/mime/README.md | 90 + .../email_list_api/node_modules/mime/cli.js | 8 + .../email_list_api/node_modules/mime/mime.js | 108 + .../node_modules/mime/package.json | 44 + .../node_modules/mime/src/build.js | 53 + .../node_modules/mime/src/test.js | 60 + .../node_modules/mime/types.json | 1 + .../email_list_api/node_modules/ms/index.js | 152 + .../email_list_api/node_modules/ms/license.md | 21 + .../node_modules/ms/package.json | 37 + .../email_list_api/node_modules/ms/readme.md | 51 + .../node_modules/negotiator/HISTORY.md | 108 + .../node_modules/negotiator/LICENSE | 24 + .../node_modules/negotiator/README.md | 203 + .../node_modules/negotiator/index.js | 82 + .../node_modules/negotiator/lib/charset.js | 169 + .../node_modules/negotiator/lib/encoding.js | 184 + .../node_modules/negotiator/lib/language.js | 179 + .../node_modules/negotiator/lib/mediaType.js | 294 + .../node_modules/negotiator/package.json | 42 + .../node_modules/object-assign/index.js | 90 + .../node_modules/object-assign/license | 21 + .../node_modules/object-assign/package.json | 42 + .../node_modules/object-assign/readme.md | 61 + .../node_modules/object-inspect/.eslintrc | 53 + .../object-inspect/.github/FUNDING.yml | 12 + .../node_modules/object-inspect/.nycrc | 13 + .../node_modules/object-inspect/CHANGELOG.md | 370 + .../node_modules/object-inspect/LICENSE | 21 + .../object-inspect/example/all.js | 23 + .../object-inspect/example/circular.js | 6 + .../node_modules/object-inspect/example/fn.js | 5 + .../object-inspect/example/inspect.js | 10 + .../node_modules/object-inspect/index.js | 516 + .../object-inspect/package-support.json | 20 + .../node_modules/object-inspect/package.json | 97 + .../object-inspect/readme.markdown | 86 + .../object-inspect/test-core-js.js | 26 + .../object-inspect/test/bigint.js | 58 + .../object-inspect/test/browser/dom.js | 15 + .../object-inspect/test/circular.js | 16 + .../node_modules/object-inspect/test/deep.js | 12 + .../object-inspect/test/element.js | 53 + .../node_modules/object-inspect/test/err.js | 48 + .../node_modules/object-inspect/test/fakes.js | 29 + .../node_modules/object-inspect/test/fn.js | 76 + .../node_modules/object-inspect/test/has.js | 15 + .../node_modules/object-inspect/test/holes.js | 15 + .../object-inspect/test/indent-option.js | 271 + .../object-inspect/test/inspect.js | 139 + .../object-inspect/test/lowbyte.js | 12 + .../object-inspect/test/number.js | 58 + .../object-inspect/test/quoteStyle.js | 17 + .../object-inspect/test/toStringTag.js | 40 + .../node_modules/object-inspect/test/undef.js | 12 + .../object-inspect/test/values.js | 211 + .../object-inspect/util.inspect.js | 1 + .../node_modules/on-finished/HISTORY.md | 98 + .../node_modules/on-finished/LICENSE | 23 + .../node_modules/on-finished/README.md | 162 + .../node_modules/on-finished/index.js | 234 + .../node_modules/on-finished/package.json | 39 + .../node_modules/parseurl/HISTORY.md | 58 + .../node_modules/parseurl/LICENSE | 24 + .../node_modules/parseurl/README.md | 133 + .../node_modules/parseurl/index.js | 158 + .../node_modules/parseurl/package.json | 40 + .../node_modules/path-to-regexp/History.md | 36 + .../node_modules/path-to-regexp/LICENSE | 21 + .../node_modules/path-to-regexp/Readme.md | 35 + .../node_modules/path-to-regexp/index.js | 129 + .../node_modules/path-to-regexp/package.json | 30 + .../node_modules/proxy-addr/HISTORY.md | 161 + .../node_modules/proxy-addr/LICENSE | 22 + .../node_modules/proxy-addr/README.md | 139 + .../node_modules/proxy-addr/index.js | 327 + .../node_modules/proxy-addr/package.json | 47 + .../node_modules/qs/.editorconfig | 43 + .../email_list_api/node_modules/qs/.eslintrc | 38 + .../node_modules/qs/.github/FUNDING.yml | 12 + .../email_list_api/node_modules/qs/.nycrc | 13 + .../node_modules/qs/CHANGELOG.md | 546 ++ .../email_list_api/node_modules/qs/LICENSE.md | 29 + .../email_list_api/node_modules/qs/README.md | 625 ++ .../email_list_api/node_modules/qs/dist/qs.js | 2054 ++++ .../node_modules/qs/lib/formats.js | 23 + .../node_modules/qs/lib/index.js | 11 + .../node_modules/qs/lib/parse.js | 263 + .../node_modules/qs/lib/stringify.js | 326 + .../node_modules/qs/lib/utils.js | 252 + .../node_modules/qs/package.json | 77 + .../node_modules/qs/test/parse.js | 855 ++ .../node_modules/qs/test/stringify.js | 909 ++ .../node_modules/qs/test/utils.js | 136 + .../node_modules/range-parser/HISTORY.md | 56 + .../node_modules/range-parser/LICENSE | 23 + .../node_modules/range-parser/README.md | 84 + .../node_modules/range-parser/index.js | 162 + .../node_modules/range-parser/package.json | 44 + .../node_modules/raw-body/HISTORY.md | 303 + .../node_modules/raw-body/LICENSE | 22 + .../node_modules/raw-body/README.md | 223 + .../node_modules/raw-body/SECURITY.md | 24 + .../node_modules/raw-body/index.d.ts | 87 + .../node_modules/raw-body/index.js | 329 + .../node_modules/raw-body/package.json | 49 + .../node_modules/safe-buffer/LICENSE | 21 + .../node_modules/safe-buffer/README.md | 584 ++ .../node_modules/safe-buffer/index.d.ts | 187 + .../node_modules/safe-buffer/index.js | 65 + .../node_modules/safe-buffer/package.json | 51 + .../node_modules/safer-buffer/LICENSE | 21 + .../safer-buffer/Porting-Buffer.md | 268 + .../node_modules/safer-buffer/Readme.md | 156 + .../node_modules/safer-buffer/dangerous.js | 58 + .../node_modules/safer-buffer/package.json | 34 + .../node_modules/safer-buffer/safer.js | 77 + .../node_modules/safer-buffer/tests.js | 406 + .../node_modules/send/HISTORY.md | 521 + .../email_list_api/node_modules/send/LICENSE | 23 + .../node_modules/send/README.md | 327 + .../node_modules/send/SECURITY.md | 24 + .../email_list_api/node_modules/send/index.js | 1143 +++ .../send/node_modules/ms/index.js | 162 + .../send/node_modules/ms/license.md | 21 + .../send/node_modules/ms/package.json | 38 + .../send/node_modules/ms/readme.md | 59 + .../node_modules/send/package.json | 62 + .../node_modules/serve-static/HISTORY.md | 471 + .../node_modules/serve-static/LICENSE | 25 + .../node_modules/serve-static/README.md | 257 + .../node_modules/serve-static/index.js | 210 + .../node_modules/serve-static/package.json | 42 + .../node_modules/setprototypeof/LICENSE | 13 + .../node_modules/setprototypeof/README.md | 31 + .../node_modules/setprototypeof/index.d.ts | 2 + .../node_modules/setprototypeof/index.js | 17 + .../node_modules/setprototypeof/package.json | 38 + .../node_modules/setprototypeof/test/index.js | 24 + .../node_modules/side-channel/.eslintignore | 1 + .../node_modules/side-channel/.eslintrc | 11 + .../side-channel/.github/FUNDING.yml | 12 + .../node_modules/side-channel/.nycrc | 13 + .../node_modules/side-channel/CHANGELOG.md | 65 + .../node_modules/side-channel/LICENSE | 21 + .../node_modules/side-channel/README.md | 2 + .../node_modules/side-channel/index.js | 124 + .../node_modules/side-channel/package.json | 67 + .../node_modules/side-channel/test/index.js | 78 + .../node_modules/statuses/HISTORY.md | 82 + .../node_modules/statuses/LICENSE | 23 + .../node_modules/statuses/README.md | 136 + .../node_modules/statuses/codes.json | 65 + .../node_modules/statuses/index.js | 146 + .../node_modules/statuses/package.json | 49 + .../node_modules/toidentifier/HISTORY.md | 9 + .../node_modules/toidentifier/LICENSE | 21 + .../node_modules/toidentifier/README.md | 61 + .../node_modules/toidentifier/index.js | 32 + .../node_modules/toidentifier/package.json | 38 + .../node_modules/type-is/HISTORY.md | 259 + .../node_modules/type-is/LICENSE | 23 + .../node_modules/type-is/README.md | 170 + .../node_modules/type-is/index.js | 266 + .../node_modules/type-is/package.json | 45 + .../node_modules/unpipe/HISTORY.md | 4 + .../node_modules/unpipe/LICENSE | 22 + .../node_modules/unpipe/README.md | 43 + .../node_modules/unpipe/index.js | 69 + .../node_modules/unpipe/package.json | 27 + .../node_modules/utils-merge/.npmignore | 9 + .../node_modules/utils-merge/LICENSE | 20 + .../node_modules/utils-merge/README.md | 34 + .../node_modules/utils-merge/index.js | 23 + .../node_modules/utils-merge/package.json | 40 + .../node_modules/vary/HISTORY.md | 39 + .../email_list_api/node_modules/vary/LICENSE | 22 + .../node_modules/vary/README.md | 101 + .../email_list_api/node_modules/vary/index.js | 149 + .../node_modules/vary/package.json | 43 + .../ch15/email_list_api/package-lock.json | 625 ++ book_apps/ch15/email_list_api/package.json | 17 + book_apps/ch15/email_manager/email_manager.js | 90 + book_apps/ch15/email_manager/index.html | 35 + book_apps/ch15/email_manager/main.css | 45 + book_apps/ch15/future_value/index.js | 18 + book_apps/ch15/future_value/index2.js | 26 + book_apps/ch15/future_value/index3.mjs | 15 + .../future_value/murach-calc-future-value.mjs | 7 + book_apps/ch15/future_value/package.json | 13 + book_apps/ch16/drawing/drawing.js | 33 + book_apps/ch16/drawing/index.html | 20 + book_apps/ch16/drawing/main.css | 7 + book_apps/ch16/movie_list/index.html | 25 + book_apps/ch16/movie_list/main.css | 10 + book_apps/ch16/movie_list/movie_list.js | 20 + book_apps/ch16/movie_list/pizza_order.js | 49 + book_apps/ch16/pong/index.html | 15 + book_apps/ch16/pong/main.css | 6 + book_apps/ch16/pong/pong.js | 97 + book_apps/ch16/smiley/index.html | 16 + book_apps/ch16/smiley/main.css | 3 + book_apps/ch16/smiley/smiley.js | 27 + book_apps/ch16/tic_tac_toe/index.html | 16 + book_apps/ch16/tic_tac_toe/main.css | 6 + book_apps/ch16/tic_tac_toe/tic_tac_toe.js | 30 + exercises/ch01/die_roller/index.html | 22 + exercises/ch01/die_roller/main.css | 12 + exercises/ch02/numbers/index.html | 23 + exercises/ch02/scripts/index.html | 16 + exercises/ch02/strings/index.html | 17 + exercises/ch03/coin_flip/index.html | 15 + exercises/ch03/guess_number/guess_number.js | 35 + exercises/ch03/guess_number/index.html | 9 + exercises/ch03/stairs/index.html | 12 + exercises/ch04/countries/index.html | 26 + exercises/ch04/prices/index.html | 28 + exercises/ch04/words/index.html | 41 + exercises/ch05/dice_roller/index.html | 32 + exercises/ch05/dice_roller_dom/dice_roller.js | 24 + exercises/ch05/dice_roller_dom/index.html | 21 + exercises/ch05/dice_roller_dom/main.css | 16 + exercises/ch05/movie_list/index.html | 16 + exercises/ch05/movie_list/main.css | 16 + exercises/ch05/movie_list/movie.js | 18 + exercises/ch06/image_carousel/carousel.css | 13 + exercises/ch06/image_carousel/carousel.js | 26 + .../ch06/image_carousel/images/bison.jpg | Bin 0 -> 88319 bytes exercises/ch06/image_carousel/images/deer.jpg | Bin 0 -> 105300 bytes exercises/ch06/image_carousel/images/hero.jpg | Bin 0 -> 83787 bytes .../ch06/image_carousel/images/release.jpg | Bin 0 -> 74621 bytes exercises/ch06/image_carousel/index.html | 24 + exercises/ch06/movie_ranker/index.html | 30 + exercises/ch06/movie_ranker/mover.css | 42 + exercises/ch06/movie_ranker/mover.js | 14 + exercises/ch06/register_3.0/confirm.html | 17 + exercises/ch06/register_3.0/index.html | 59 + exercises/ch06/register_3.0/register.css | 39 + exercises/ch06/register_3.0/register.js | 78 + exercises/ch07/future_value/future_value.css | 25 + exercises/ch07/future_value/future_value.js | 58 + exercises/ch07/future_value/index.html | 33 + exercises/ch07/movie_ranker/index.html | 30 + exercises/ch07/movie_ranker/mover.css | 42 + exercises/ch07/movie_ranker/mover.js | 30 + exercises/ch08/invoices/index.html | 29 + exercises/ch08/invoices/invoices.css | 39 + exercises/ch08/invoices/invoices.js | 26 + exercises/ch08/stopwatch/index.html | 20 + exercises/ch08/stopwatch/main.css | 32 + exercises/ch08/stopwatch/stopwatch.js | 31 + exercises/ch09/creditcard/confirm.html | 14 + exercises/ch09/creditcard/creditcard.css | 28 + exercises/ch09/creditcard/creditcard.js | 14 + exercises/ch09/creditcard/index.html | 40 + exercises/ch09/exceptions/guess.js | 55 + exercises/ch09/exceptions/index.html | 21 + exercises/ch09/exceptions/main.css | 18 + exercises/ch10/countdown/count_down.css | 36 + exercises/ch10/countdown/count_down.js | 47 + exercises/ch10/countdown/index.html | 28 + exercises/ch11/cart/cart.css | 48 + exercises/ch11/cart/cart.js | 60 + exercises/ch11/cart/index.html | 21 + exercises/ch11/invoices/index.html | 40 + exercises/ch11/invoices/invoices.css | 41 + exercises/ch11/invoices/invoices.js | 73 + exercises/ch12/count_down/count_down.css | 36 + exercises/ch12/count_down/count_down.js | 46 + exercises/ch12/count_down/index.html | 34 + exercises/ch12/test_scores/index.html | 36 + exercises/ch12/test_scores/test_scores.css | 31 + exercises/ch12/test_scores/test_scores.js | 54 + exercises/ch13/count_down/count_down.css | 36 + exercises/ch13/count_down/count_down.js | 28 + exercises/ch13/count_down/index.html | 33 + exercises/ch13/count_down/lib_event.js | 39 + exercises/ch13/trips/index.html | 37 + exercises/ch13/trips/lib_trip.js | 17 + exercises/ch13/trips/lib_trips.js | 36 + exercises/ch13/trips/trips.css | 29 + exercises/ch13/trips/trips.js | 40 + exercises/ch14/apod/apod.css | 28 + exercises/ch14/apod/apod.js | 87 + exercises/ch14/apod/images/notavailable.png | Bin 0 -> 4387 bytes exercises/ch14/apod/index.html | 25 + exercises/ch14/email_manager/email_manager.js | 66 + exercises/ch14/email_manager/index.html | 35 + exercises/ch14/email_manager/main.css | 45 + exercises/ch15/fs/names.txt | 3 + exercises/ch15/fs/read.mjs | 2 + exercises/ch15/task_list/index.html | 30 + exercises/ch15/task_list/task_list.css | 40 + exercises/ch15/task_list/task_list.js | 70 + exercises/ch15/task_list_api/data.mjs | 51 + exercises/ch15/task_list_api/index.mjs | 24 + exercises/ch15/task_list_api/tasks.txt | 1 + exercises/ch15/test_scores/index.js | 23 + exercises/ch16/logo/index.html | 45 + exercises/ch16/logo/logo.js | 80 + exercises/ch16/logo/logo.png | Bin 0 -> 30756 bytes exercises/ch16/logo/main.css | 12 + exercises/ch16/pizza_order/index.html | 36 + exercises/ch16/pizza_order/logo.png | Bin 0 -> 30756 bytes exercises/ch16/pizza_order/main.css | 39 + exercises/ch16/pizza_order/pizza_order.js | 96 + exercises/ch16/screen_saver/index.html | 15 + exercises/ch16/screen_saver/main.css | 6 + exercises/ch16/screen_saver/screen_saver.js | 50 + solutions/ch01/die_roller/index.html | 22 + solutions/ch01/die_roller/main.css | 12 + solutions/ch01/welcome/index.html | 13 + solutions/ch01/welcome/main.css | 26 + solutions/ch02/numbers/index.html | 36 + solutions/ch02/scripts/index.html | 19 + solutions/ch02/strings/index.html | 21 + solutions/ch03/coin_flip/index.html | 42 + solutions/ch03/guess_number/guess_number.js | 44 + solutions/ch03/guess_number/index.html | 9 + solutions/ch03/stairs/index.html | 25 + solutions/ch04/countries/index.html | 36 + solutions/ch04/prices/index.html | 56 + solutions/ch04/words/index.html | 48 + solutions/ch05/dice_roller/index.html | 35 + solutions/ch05/dice_roller_dom/dice_roller.js | 36 + solutions/ch05/dice_roller_dom/index.html | 21 + solutions/ch05/dice_roller_dom/main.css | 16 + solutions/ch05/movie_list/index.html | 16 + solutions/ch05/movie_list/main.css | 16 + solutions/ch05/movie_list/movie.js | 33 + solutions/ch06/image_carousel/carousel.css | 13 + solutions/ch06/image_carousel/carousel.js | 30 + .../ch06/image_carousel/images/bison.jpg | Bin 0 -> 88319 bytes solutions/ch06/image_carousel/images/deer.jpg | Bin 0 -> 105300 bytes solutions/ch06/image_carousel/images/hero.jpg | Bin 0 -> 83787 bytes .../ch06/image_carousel/images/release.jpg | Bin 0 -> 74621 bytes solutions/ch06/image_carousel/index.html | 24 + solutions/ch06/movie_ranker/index.html | 30 + solutions/ch06/movie_ranker/mover.css | 42 + solutions/ch06/movie_ranker/mover.js | 32 + solutions/ch06/register_3.0/confirm.html | 17 + solutions/ch06/register_3.0/index.html | 69 + solutions/ch06/register_3.0/register.css | 39 + solutions/ch06/register_3.0/register.js | 91 + solutions/ch07/future_value/future_value.css | 25 + solutions/ch07/future_value/future_value.js | 59 + solutions/ch07/future_value/index.html | 33 + solutions/ch07/future_value/test_plan.txt | 10 + solutions/ch07/movie_ranker/index.html | 30 + solutions/ch07/movie_ranker/mover.css | 42 + solutions/ch07/movie_ranker/mover.js | 30 + solutions/ch08/invoices/index.html | 29 + solutions/ch08/invoices/invoices.css | 39 + solutions/ch08/invoices/invoices.js | 42 + solutions/ch08/stopwatch/index.html | 20 + solutions/ch08/stopwatch/main.css | 32 + solutions/ch08/stopwatch/stopwatch.js | 41 + solutions/ch09/creditcard/confirm.html | 14 + solutions/ch09/creditcard/creditcard.css | 28 + solutions/ch09/creditcard/creditcard.js | 49 + solutions/ch09/creditcard/index.html | 43 + solutions/ch09/exceptions/guess.js | 59 + solutions/ch09/exceptions/index.html | 21 + solutions/ch09/exceptions/main.css | 18 + solutions/ch10/countdown/count_down.css | 36 + solutions/ch10/countdown/count_down.js | 55 + solutions/ch10/countdown/index.html | 27 + solutions/ch11/cart/cart.css | 48 + solutions/ch11/cart/cart.js | 69 + solutions/ch11/cart/index.html | 21 + solutions/ch11/invoices/index.html | 40 + solutions/ch11/invoices/invoices.css | 41 + solutions/ch11/invoices/invoices.js | 85 + solutions/ch12/count_down/count_down.css | 36 + solutions/ch12/count_down/count_down.js | 28 + solutions/ch12/count_down/index.html | 33 + solutions/ch12/count_down/lib_event.js | 39 + solutions/ch12/test_scores/index.html | 37 + solutions/ch12/test_scores/lib_test_scores.js | 32 + solutions/ch12/test_scores/lib_validation.js | 10 + solutions/ch12/test_scores/test_scores.css | 31 + solutions/ch12/test_scores/test_scores.js | 42 + solutions/ch13/count_down/count_down.css | 36 + solutions/ch13/count_down/count_down.js | 28 + solutions/ch13/count_down/index.html | 33 + solutions/ch13/count_down/lib_event.js | 39 + solutions/ch13/trips/index.html | 44 + solutions/ch13/trips/lib_trip.js | 17 + solutions/ch13/trips/lib_trips.js | 30 + solutions/ch13/trips/lib_validation.js | 16 + solutions/ch13/trips/trips.css | 29 + solutions/ch13/trips/trips.js | 40 + solutions/ch14/apod/apod.css | 28 + solutions/ch14/apod/apod.js | 76 + solutions/ch14/apod/images/notavailable.png | Bin 0 -> 4387 bytes solutions/ch14/apod/index.html | 26 + solutions/ch14/apod/lib_apod.js | 16 + solutions/ch14/email_manager/email_manager.js | 94 + solutions/ch14/email_manager/index.html | 33 + solutions/ch14/email_manager/main.css | 45 + solutions/ch15/fs/names.txt | 3 + solutions/ch15/fs/read.mjs | 8 + solutions/ch15/task_list/index.html | 30 + solutions/ch15/task_list/task_list.css | 40 + solutions/ch15/task_list/task_list.js | 69 + solutions/ch15/task_list_api/data.mjs | 51 + solutions/ch15/task_list_api/index.mjs | 24 + .../ch15/task_list_api/node_modules/.bin/mime | 12 + .../task_list_api/node_modules/.bin/mime.cmd | 17 + .../task_list_api/node_modules/.bin/mime.ps1 | 28 + .../node_modules/.package-lock.json | 669 ++ .../node_modules/accepts/HISTORY.md | 243 + .../node_modules/accepts/LICENSE | 23 + .../node_modules/accepts/README.md | 140 + .../node_modules/accepts/index.js | 238 + .../node_modules/accepts/package.json | 47 + .../node_modules/array-flatten/LICENSE | 21 + .../node_modules/array-flatten/README.md | 43 + .../array-flatten/array-flatten.js | 64 + .../node_modules/array-flatten/package.json | 39 + .../node_modules/body-parser/HISTORY.md | 657 ++ .../node_modules/body-parser/LICENSE | 23 + .../node_modules/body-parser/README.md | 464 + .../node_modules/body-parser/SECURITY.md | 25 + .../node_modules/body-parser/index.js | 156 + .../node_modules/body-parser/lib/read.js | 205 + .../body-parser/lib/types/json.js | 236 + .../node_modules/body-parser/lib/types/raw.js | 101 + .../body-parser/lib/types/text.js | 121 + .../body-parser/lib/types/urlencoded.js | 284 + .../node_modules/body-parser/package.json | 56 + .../node_modules/bytes/History.md | 97 + .../task_list_api/node_modules/bytes/LICENSE | 23 + .../node_modules/bytes/Readme.md | 152 + .../task_list_api/node_modules/bytes/index.js | 170 + .../node_modules/bytes/package.json | 42 + .../node_modules/call-bind/.eslintignore | 1 + .../node_modules/call-bind/.eslintrc | 16 + .../call-bind/.github/FUNDING.yml | 12 + .../node_modules/call-bind/.nycrc | 9 + .../node_modules/call-bind/CHANGELOG.md | 77 + .../node_modules/call-bind/LICENSE | 21 + .../node_modules/call-bind/README.md | 64 + .../node_modules/call-bind/callBound.js | 15 + .../node_modules/call-bind/index.js | 44 + .../node_modules/call-bind/package.json | 90 + .../node_modules/call-bind/test/callBound.js | 54 + .../node_modules/call-bind/test/index.js | 80 + .../content-disposition/HISTORY.md | 60 + .../node_modules/content-disposition/LICENSE | 22 + .../content-disposition/README.md | 142 + .../node_modules/content-disposition/index.js | 458 + .../content-disposition/package.json | 44 + .../node_modules/content-type/HISTORY.md | 29 + .../node_modules/content-type/LICENSE | 22 + .../node_modules/content-type/README.md | 94 + .../node_modules/content-type/index.js | 225 + .../node_modules/content-type/package.json | 42 + .../node_modules/cookie-signature/.npmignore | 4 + .../node_modules/cookie-signature/History.md | 38 + .../node_modules/cookie-signature/Readme.md | 42 + .../node_modules/cookie-signature/index.js | 51 + .../cookie-signature/package.json | 18 + .../node_modules/cookie/HISTORY.md | 142 + .../task_list_api/node_modules/cookie/LICENSE | 24 + .../node_modules/cookie/README.md | 302 + .../node_modules/cookie/SECURITY.md | 25 + .../node_modules/cookie/index.js | 270 + .../node_modules/cookie/package.json | 44 + .../node_modules/cors/CONTRIBUTING.md | 33 + .../node_modules/cors/HISTORY.md | 58 + .../task_list_api/node_modules/cors/LICENSE | 22 + .../task_list_api/node_modules/cors/README.md | 243 + .../node_modules/cors/lib/index.js | 238 + .../node_modules/cors/package.json | 41 + .../node_modules/debug/.coveralls.yml | 1 + .../node_modules/debug/.eslintrc | 11 + .../node_modules/debug/.npmignore | 9 + .../node_modules/debug/.travis.yml | 14 + .../node_modules/debug/CHANGELOG.md | 362 + .../task_list_api/node_modules/debug/LICENSE | 19 + .../task_list_api/node_modules/debug/Makefile | 50 + .../node_modules/debug/README.md | 312 + .../node_modules/debug/component.json | 19 + .../node_modules/debug/karma.conf.js | 70 + .../task_list_api/node_modules/debug/node.js | 1 + .../node_modules/debug/package.json | 49 + .../node_modules/debug/src/browser.js | 185 + .../node_modules/debug/src/debug.js | 202 + .../node_modules/debug/src/index.js | 10 + .../node_modules/debug/src/inspector-log.js | 15 + .../node_modules/debug/src/node.js | 248 + .../define-data-property/.eslintrc | 24 + .../define-data-property/.github/FUNDING.yml | 12 + .../node_modules/define-data-property/.nycrc | 13 + .../define-data-property/CHANGELOG.md | 41 + .../node_modules/define-data-property/LICENSE | 21 + .../define-data-property/README.md | 67 + .../define-data-property/index.d.ts | 3 + .../define-data-property/index.d.ts.map | 1 + .../define-data-property/index.js | 68 + .../define-data-property/package.json | 113 + .../define-data-property/test/index.js | 392 + .../define-data-property/tsconfig.json | 59 + .../node_modules/depd/History.md | 103 + .../task_list_api/node_modules/depd/LICENSE | 22 + .../task_list_api/node_modules/depd/Readme.md | 280 + .../task_list_api/node_modules/depd/index.js | 538 ++ .../node_modules/depd/lib/browser/index.js | 77 + .../node_modules/depd/package.json | 45 + .../node_modules/destroy/LICENSE | 23 + .../node_modules/destroy/README.md | 63 + .../node_modules/destroy/index.js | 209 + .../node_modules/destroy/package.json | 48 + .../node_modules/ee-first/LICENSE | 22 + .../node_modules/ee-first/README.md | 80 + .../node_modules/ee-first/index.js | 95 + .../node_modules/ee-first/package.json | 29 + .../node_modules/encodeurl/HISTORY.md | 14 + .../node_modules/encodeurl/LICENSE | 22 + .../node_modules/encodeurl/README.md | 128 + .../node_modules/encodeurl/index.js | 60 + .../node_modules/encodeurl/package.json | 40 + .../node_modules/escape-html/LICENSE | 24 + .../node_modules/escape-html/Readme.md | 43 + .../node_modules/escape-html/index.js | 78 + .../node_modules/escape-html/package.json | 24 + .../node_modules/etag/HISTORY.md | 83 + .../task_list_api/node_modules/etag/LICENSE | 22 + .../task_list_api/node_modules/etag/README.md | 159 + .../task_list_api/node_modules/etag/index.js | 131 + .../node_modules/etag/package.json | 47 + .../node_modules/express/History.md | 3588 +++++++ .../node_modules/express/LICENSE | 24 + .../node_modules/express/Readme.md | 166 + .../node_modules/express/index.js | 11 + .../node_modules/express/lib/application.js | 661 ++ .../node_modules/express/lib/express.js | 116 + .../express/lib/middleware/init.js | 43 + .../express/lib/middleware/query.js | 47 + .../node_modules/express/lib/request.js | 525 + .../node_modules/express/lib/response.js | 1169 +++ .../node_modules/express/lib/router/index.js | 673 ++ .../node_modules/express/lib/router/layer.js | 181 + .../node_modules/express/lib/router/route.js | 225 + .../node_modules/express/lib/utils.js | 304 + .../node_modules/express/lib/view.js | 182 + .../node_modules/express/package.json | 99 + .../node_modules/finalhandler/HISTORY.md | 195 + .../node_modules/finalhandler/LICENSE | 22 + .../node_modules/finalhandler/README.md | 147 + .../node_modules/finalhandler/SECURITY.md | 25 + .../node_modules/finalhandler/index.js | 336 + .../node_modules/finalhandler/package.json | 46 + .../node_modules/forwarded/HISTORY.md | 21 + .../node_modules/forwarded/LICENSE | 22 + .../node_modules/forwarded/README.md | 57 + .../node_modules/forwarded/index.js | 90 + .../node_modules/forwarded/package.json | 45 + .../node_modules/fresh/HISTORY.md | 70 + .../task_list_api/node_modules/fresh/LICENSE | 23 + .../node_modules/fresh/README.md | 119 + .../task_list_api/node_modules/fresh/index.js | 137 + .../node_modules/fresh/package.json | 46 + .../node_modules/function-bind/.eslintrc | 21 + .../function-bind/.github/FUNDING.yml | 12 + .../function-bind/.github/SECURITY.md | 3 + .../node_modules/function-bind/.nycrc | 13 + .../node_modules/function-bind/CHANGELOG.md | 136 + .../node_modules/function-bind/LICENSE | 20 + .../node_modules/function-bind/README.md | 46 + .../function-bind/implementation.js | 84 + .../node_modules/function-bind/index.js | 5 + .../node_modules/function-bind/package.json | 87 + .../node_modules/function-bind/test/.eslintrc | 9 + .../node_modules/function-bind/test/index.js | 252 + .../node_modules/get-intrinsic/.eslintrc | 38 + .../get-intrinsic/.github/FUNDING.yml | 12 + .../node_modules/get-intrinsic/.nycrc | 9 + .../node_modules/get-intrinsic/CHANGELOG.md | 125 + .../node_modules/get-intrinsic/LICENSE | 21 + .../node_modules/get-intrinsic/README.md | 71 + .../node_modules/get-intrinsic/index.js | 351 + .../node_modules/get-intrinsic/package.json | 93 + .../get-intrinsic/test/GetIntrinsic.js | 274 + .../task_list_api/node_modules/gopd/.eslintrc | 16 + .../node_modules/gopd/.github/FUNDING.yml | 12 + .../node_modules/gopd/CHANGELOG.md | 25 + .../task_list_api/node_modules/gopd/LICENSE | 21 + .../task_list_api/node_modules/gopd/README.md | 40 + .../task_list_api/node_modules/gopd/index.js | 16 + .../node_modules/gopd/package.json | 71 + .../node_modules/gopd/test/index.js | 35 + .../has-property-descriptors/.eslintrc | 13 + .../.github/FUNDING.yml | 12 + .../has-property-descriptors/.nycrc | 9 + .../has-property-descriptors/CHANGELOG.md | 27 + .../has-property-descriptors/LICENSE | 21 + .../has-property-descriptors/README.md | 43 + .../has-property-descriptors/index.js | 33 + .../has-property-descriptors/package.json | 77 + .../has-property-descriptors/test/index.js | 57 + .../node_modules/has-proto/.eslintrc | 5 + .../has-proto/.github/FUNDING.yml | 12 + .../node_modules/has-proto/CHANGELOG.md | 23 + .../node_modules/has-proto/LICENSE | 21 + .../node_modules/has-proto/README.md | 38 + .../node_modules/has-proto/index.js | 11 + .../node_modules/has-proto/package.json | 74 + .../node_modules/has-proto/test/index.js | 19 + .../node_modules/has-symbols/.eslintrc | 11 + .../has-symbols/.github/FUNDING.yml | 12 + .../node_modules/has-symbols/.nycrc | 9 + .../node_modules/has-symbols/CHANGELOG.md | 75 + .../node_modules/has-symbols/LICENSE | 21 + .../node_modules/has-symbols/README.md | 46 + .../node_modules/has-symbols/index.js | 13 + .../node_modules/has-symbols/package.json | 101 + .../node_modules/has-symbols/shams.js | 42 + .../node_modules/has-symbols/test/index.js | 22 + .../has-symbols/test/shams/core-js.js | 28 + .../test/shams/get-own-property-symbols.js | 28 + .../node_modules/has-symbols/test/tests.js | 56 + .../node_modules/hasown/.eslintrc | 5 + .../node_modules/hasown/.github/FUNDING.yml | 12 + .../task_list_api/node_modules/hasown/.nycrc | 13 + .../node_modules/hasown/CHANGELOG.md | 20 + .../task_list_api/node_modules/hasown/LICENSE | 21 + .../node_modules/hasown/README.md | 40 + .../node_modules/hasown/index.d.ts | 3 + .../node_modules/hasown/index.d.ts.map | 1 + .../node_modules/hasown/index.js | 8 + .../node_modules/hasown/package.json | 91 + .../node_modules/hasown/tsconfig.json | 49 + .../node_modules/http-errors/HISTORY.md | 180 + .../node_modules/http-errors/LICENSE | 23 + .../node_modules/http-errors/README.md | 169 + .../node_modules/http-errors/index.js | 289 + .../node_modules/http-errors/package.json | 50 + .../node_modules/iconv-lite/Changelog.md | 162 + .../node_modules/iconv-lite/LICENSE | 21 + .../node_modules/iconv-lite/README.md | 156 + .../iconv-lite/encodings/dbcs-codec.js | 555 ++ .../iconv-lite/encodings/dbcs-data.js | 176 + .../iconv-lite/encodings/index.js | 22 + .../iconv-lite/encodings/internal.js | 188 + .../iconv-lite/encodings/sbcs-codec.js | 72 + .../encodings/sbcs-data-generated.js | 451 + .../iconv-lite/encodings/sbcs-data.js | 174 + .../encodings/tables/big5-added.json | 122 + .../iconv-lite/encodings/tables/cp936.json | 264 + .../iconv-lite/encodings/tables/cp949.json | 273 + .../iconv-lite/encodings/tables/cp950.json | 177 + .../iconv-lite/encodings/tables/eucjp.json | 182 + .../encodings/tables/gb18030-ranges.json | 1 + .../encodings/tables/gbk-added.json | 55 + .../iconv-lite/encodings/tables/shiftjis.json | 125 + .../iconv-lite/encodings/utf16.js | 177 + .../node_modules/iconv-lite/encodings/utf7.js | 290 + .../iconv-lite/lib/bom-handling.js | 52 + .../iconv-lite/lib/extend-node.js | 217 + .../node_modules/iconv-lite/lib/index.d.ts | 24 + .../node_modules/iconv-lite/lib/index.js | 153 + .../node_modules/iconv-lite/lib/streams.js | 121 + .../node_modules/iconv-lite/package.json | 46 + .../node_modules/inherits/LICENSE | 16 + .../node_modules/inherits/README.md | 42 + .../node_modules/inherits/inherits.js | 9 + .../node_modules/inherits/inherits_browser.js | 27 + .../node_modules/inherits/package.json | 29 + .../node_modules/ipaddr.js/LICENSE | 19 + .../node_modules/ipaddr.js/README.md | 233 + .../node_modules/ipaddr.js/ipaddr.min.js | 1 + .../node_modules/ipaddr.js/lib/ipaddr.js | 673 ++ .../node_modules/ipaddr.js/lib/ipaddr.js.d.ts | 68 + .../node_modules/ipaddr.js/package.json | 35 + .../node_modules/media-typer/HISTORY.md | 22 + .../node_modules/media-typer/LICENSE | 22 + .../node_modules/media-typer/README.md | 81 + .../node_modules/media-typer/index.js | 270 + .../node_modules/media-typer/package.json | 26 + .../node_modules/merge-descriptors/HISTORY.md | 21 + .../node_modules/merge-descriptors/LICENSE | 23 + .../node_modules/merge-descriptors/README.md | 48 + .../node_modules/merge-descriptors/index.js | 60 + .../merge-descriptors/package.json | 32 + .../node_modules/methods/HISTORY.md | 29 + .../node_modules/methods/LICENSE | 24 + .../node_modules/methods/README.md | 51 + .../node_modules/methods/index.js | 69 + .../node_modules/methods/package.json | 36 + .../node_modules/mime-db/HISTORY.md | 507 + .../node_modules/mime-db/LICENSE | 23 + .../node_modules/mime-db/README.md | 100 + .../node_modules/mime-db/db.json | 8519 +++++++++++++++++ .../node_modules/mime-db/index.js | 12 + .../node_modules/mime-db/package.json | 60 + .../node_modules/mime-types/HISTORY.md | 397 + .../node_modules/mime-types/LICENSE | 23 + .../node_modules/mime-types/README.md | 113 + .../node_modules/mime-types/index.js | 188 + .../node_modules/mime-types/package.json | 44 + .../node_modules/mime/.npmignore | 0 .../node_modules/mime/CHANGELOG.md | 164 + .../task_list_api/node_modules/mime/LICENSE | 21 + .../task_list_api/node_modules/mime/README.md | 90 + .../task_list_api/node_modules/mime/cli.js | 8 + .../task_list_api/node_modules/mime/mime.js | 108 + .../node_modules/mime/package.json | 44 + .../node_modules/mime/src/build.js | 53 + .../node_modules/mime/src/test.js | 60 + .../node_modules/mime/types.json | 1 + .../task_list_api/node_modules/ms/index.js | 152 + .../task_list_api/node_modules/ms/license.md | 21 + .../node_modules/ms/package.json | 37 + .../task_list_api/node_modules/ms/readme.md | 51 + .../node_modules/negotiator/HISTORY.md | 108 + .../node_modules/negotiator/LICENSE | 24 + .../node_modules/negotiator/README.md | 203 + .../node_modules/negotiator/index.js | 82 + .../node_modules/negotiator/lib/charset.js | 169 + .../node_modules/negotiator/lib/encoding.js | 184 + .../node_modules/negotiator/lib/language.js | 179 + .../node_modules/negotiator/lib/mediaType.js | 294 + .../node_modules/negotiator/package.json | 42 + .../node_modules/object-assign/index.js | 90 + .../node_modules/object-assign/license | 21 + .../node_modules/object-assign/package.json | 42 + .../node_modules/object-assign/readme.md | 61 + .../node_modules/object-inspect/.eslintrc | 53 + .../object-inspect/.github/FUNDING.yml | 12 + .../node_modules/object-inspect/.nycrc | 13 + .../node_modules/object-inspect/CHANGELOG.md | 389 + .../node_modules/object-inspect/LICENSE | 21 + .../object-inspect/example/all.js | 23 + .../object-inspect/example/circular.js | 6 + .../node_modules/object-inspect/example/fn.js | 5 + .../object-inspect/example/inspect.js | 10 + .../node_modules/object-inspect/index.js | 524 + .../object-inspect/package-support.json | 20 + .../node_modules/object-inspect/package.json | 99 + .../object-inspect/readme.markdown | 86 + .../object-inspect/test-core-js.js | 26 + .../object-inspect/test/bigint.js | 58 + .../object-inspect/test/browser/dom.js | 15 + .../object-inspect/test/circular.js | 16 + .../node_modules/object-inspect/test/deep.js | 12 + .../object-inspect/test/element.js | 53 + .../node_modules/object-inspect/test/err.js | 48 + .../node_modules/object-inspect/test/fakes.js | 29 + .../node_modules/object-inspect/test/fn.js | 76 + .../object-inspect/test/global.js | 17 + .../node_modules/object-inspect/test/has.js | 15 + .../node_modules/object-inspect/test/holes.js | 15 + .../object-inspect/test/indent-option.js | 271 + .../object-inspect/test/inspect.js | 139 + .../object-inspect/test/lowbyte.js | 12 + .../object-inspect/test/number.js | 58 + .../object-inspect/test/quoteStyle.js | 17 + .../object-inspect/test/toStringTag.js | 40 + .../node_modules/object-inspect/test/undef.js | 12 + .../object-inspect/test/values.js | 211 + .../object-inspect/util.inspect.js | 1 + .../node_modules/on-finished/HISTORY.md | 98 + .../node_modules/on-finished/LICENSE | 23 + .../node_modules/on-finished/README.md | 162 + .../node_modules/on-finished/index.js | 234 + .../node_modules/on-finished/package.json | 39 + .../node_modules/parseurl/HISTORY.md | 58 + .../node_modules/parseurl/LICENSE | 24 + .../node_modules/parseurl/README.md | 133 + .../node_modules/parseurl/index.js | 158 + .../node_modules/parseurl/package.json | 40 + .../node_modules/path-to-regexp/History.md | 36 + .../node_modules/path-to-regexp/LICENSE | 21 + .../node_modules/path-to-regexp/Readme.md | 35 + .../node_modules/path-to-regexp/index.js | 129 + .../node_modules/path-to-regexp/package.json | 30 + .../node_modules/proxy-addr/HISTORY.md | 161 + .../node_modules/proxy-addr/LICENSE | 22 + .../node_modules/proxy-addr/README.md | 139 + .../node_modules/proxy-addr/index.js | 327 + .../node_modules/proxy-addr/package.json | 47 + .../node_modules/qs/.editorconfig | 43 + .../task_list_api/node_modules/qs/.eslintrc | 38 + .../node_modules/qs/.github/FUNDING.yml | 12 + .../ch15/task_list_api/node_modules/qs/.nycrc | 13 + .../node_modules/qs/CHANGELOG.md | 546 ++ .../task_list_api/node_modules/qs/LICENSE.md | 29 + .../task_list_api/node_modules/qs/README.md | 625 ++ .../task_list_api/node_modules/qs/dist/qs.js | 2054 ++++ .../node_modules/qs/lib/formats.js | 23 + .../node_modules/qs/lib/index.js | 11 + .../node_modules/qs/lib/parse.js | 263 + .../node_modules/qs/lib/stringify.js | 326 + .../node_modules/qs/lib/utils.js | 252 + .../node_modules/qs/package.json | 77 + .../node_modules/qs/test/parse.js | 855 ++ .../node_modules/qs/test/stringify.js | 909 ++ .../node_modules/qs/test/utils.js | 136 + .../node_modules/range-parser/HISTORY.md | 56 + .../node_modules/range-parser/LICENSE | 23 + .../node_modules/range-parser/README.md | 84 + .../node_modules/range-parser/index.js | 162 + .../node_modules/range-parser/package.json | 44 + .../node_modules/raw-body/HISTORY.md | 303 + .../node_modules/raw-body/LICENSE | 22 + .../node_modules/raw-body/README.md | 223 + .../node_modules/raw-body/SECURITY.md | 24 + .../node_modules/raw-body/index.d.ts | 87 + .../node_modules/raw-body/index.js | 329 + .../node_modules/raw-body/package.json | 49 + .../node_modules/safe-buffer/LICENSE | 21 + .../node_modules/safe-buffer/README.md | 584 ++ .../node_modules/safe-buffer/index.d.ts | 187 + .../node_modules/safe-buffer/index.js | 65 + .../node_modules/safe-buffer/package.json | 51 + .../node_modules/safer-buffer/LICENSE | 21 + .../safer-buffer/Porting-Buffer.md | 268 + .../node_modules/safer-buffer/Readme.md | 156 + .../node_modules/safer-buffer/dangerous.js | 58 + .../node_modules/safer-buffer/package.json | 34 + .../node_modules/safer-buffer/safer.js | 77 + .../node_modules/safer-buffer/tests.js | 406 + .../node_modules/send/HISTORY.md | 521 + .../task_list_api/node_modules/send/LICENSE | 23 + .../task_list_api/node_modules/send/README.md | 327 + .../node_modules/send/SECURITY.md | 24 + .../task_list_api/node_modules/send/index.js | 1143 +++ .../send/node_modules/ms/index.js | 162 + .../send/node_modules/ms/license.md | 21 + .../send/node_modules/ms/package.json | 38 + .../send/node_modules/ms/readme.md | 59 + .../node_modules/send/package.json | 62 + .../node_modules/serve-static/HISTORY.md | 471 + .../node_modules/serve-static/LICENSE | 25 + .../node_modules/serve-static/README.md | 257 + .../node_modules/serve-static/index.js | 210 + .../node_modules/serve-static/package.json | 42 + .../set-function-length/.eslintrc | 27 + .../set-function-length/.github/FUNDING.yml | 12 + .../node_modules/set-function-length/.nycrc | 13 + .../set-function-length/CHANGELOG.md | 41 + .../node_modules/set-function-length/LICENSE | 21 + .../set-function-length/README.md | 56 + .../node_modules/set-function-length/env.js | 19 + .../node_modules/set-function-length/index.js | 41 + .../set-function-length/package.json | 84 + .../node_modules/setprototypeof/LICENSE | 13 + .../node_modules/setprototypeof/README.md | 31 + .../node_modules/setprototypeof/index.d.ts | 2 + .../node_modules/setprototypeof/index.js | 17 + .../node_modules/setprototypeof/package.json | 38 + .../node_modules/setprototypeof/test/index.js | 24 + .../node_modules/side-channel/.eslintignore | 1 + .../node_modules/side-channel/.eslintrc | 11 + .../side-channel/.github/FUNDING.yml | 12 + .../node_modules/side-channel/.nycrc | 13 + .../node_modules/side-channel/CHANGELOG.md | 65 + .../node_modules/side-channel/LICENSE | 21 + .../node_modules/side-channel/README.md | 2 + .../node_modules/side-channel/index.js | 124 + .../node_modules/side-channel/package.json | 67 + .../node_modules/side-channel/test/index.js | 78 + .../node_modules/statuses/HISTORY.md | 82 + .../node_modules/statuses/LICENSE | 23 + .../node_modules/statuses/README.md | 136 + .../node_modules/statuses/codes.json | 65 + .../node_modules/statuses/index.js | 146 + .../node_modules/statuses/package.json | 49 + .../node_modules/toidentifier/HISTORY.md | 9 + .../node_modules/toidentifier/LICENSE | 21 + .../node_modules/toidentifier/README.md | 61 + .../node_modules/toidentifier/index.js | 32 + .../node_modules/toidentifier/package.json | 38 + .../node_modules/type-is/HISTORY.md | 259 + .../node_modules/type-is/LICENSE | 23 + .../node_modules/type-is/README.md | 170 + .../node_modules/type-is/index.js | 266 + .../node_modules/type-is/package.json | 45 + .../node_modules/unpipe/HISTORY.md | 4 + .../task_list_api/node_modules/unpipe/LICENSE | 22 + .../node_modules/unpipe/README.md | 43 + .../node_modules/unpipe/index.js | 69 + .../node_modules/unpipe/package.json | 27 + .../node_modules/utils-merge/.npmignore | 9 + .../node_modules/utils-merge/LICENSE | 20 + .../node_modules/utils-merge/README.md | 34 + .../node_modules/utils-merge/index.js | 23 + .../node_modules/utils-merge/package.json | 40 + .../node_modules/vary/HISTORY.md | 39 + .../task_list_api/node_modules/vary/LICENSE | 22 + .../task_list_api/node_modules/vary/README.md | 101 + .../task_list_api/node_modules/vary/index.js | 149 + .../node_modules/vary/package.json | 43 + solutions/ch15/task_list_api/package.json | 78 + solutions/ch15/task_list_api/tasks.txt | 1 + solutions/ch15/test_scores/index.js | 26 + solutions/ch16/logo/index.html | 45 + solutions/ch16/logo/logo.js | 87 + solutions/ch16/logo/logo.png | Bin 0 -> 30756 bytes solutions/ch16/logo/main.css | 20 + solutions/ch16/pizza_order/index.html | 36 + solutions/ch16/pizza_order/logo.png | Bin 0 -> 30756 bytes solutions/ch16/pizza_order/main.css | 39 + solutions/ch16/pizza_order/pizza_order.js | 103 + solutions/ch16/screen_saver/index.html | 15 + solutions/ch16/screen_saver/main.css | 6 + solutions/ch16/screen_saver/screen_saver.js | 56 + 2014 files changed, 304279 insertions(+) create mode 100644 book_apps/ch01/die_roller/index.html create mode 100644 book_apps/ch01/die_roller/main.css create mode 100644 book_apps/ch01/email_list/add.html create mode 100644 book_apps/ch01/email_list/email_list.js create mode 100644 book_apps/ch01/email_list/index.html create mode 100644 book_apps/ch01/email_list/main.css create mode 100644 book_apps/ch01/welcome/index.html create mode 100644 book_apps/ch01/welcome/main.css create mode 100644 book_apps/ch02/miles_to_kms/index.html create mode 100644 book_apps/ch02/miles_to_kms/miles_to_kms.js create mode 100644 book_apps/ch02/test_scores/index.html create mode 100644 book_apps/ch02/test_scores/test_scores.js create mode 100644 book_apps/ch03/future_value/future_value.js create mode 100644 book_apps/ch03/future_value/index.html create mode 100644 book_apps/ch03/guess_number/guess_number.js create mode 100644 book_apps/ch03/guess_number/index.html create mode 100644 book_apps/ch03/magic_eight_ball/index.html create mode 100644 book_apps/ch03/magic_eight_ball/magic_eight_ball.js create mode 100644 book_apps/ch04/bio/bio.js create mode 100644 book_apps/ch04/bio/index.html create mode 100644 book_apps/ch04/email_check/email_check.js create mode 100644 book_apps/ch04/email_check/index.html create mode 100644 book_apps/ch04/test_scores/index.html create mode 100644 book_apps/ch04/test_scores/test_scores.js create mode 100644 book_apps/ch04/test_scores2/index.html create mode 100644 book_apps/ch04/test_scores2/test_scores.js create mode 100644 book_apps/ch05/bio/bio.js create mode 100644 book_apps/ch05/bio/index.html create mode 100644 book_apps/ch05/future_value/future_value.js create mode 100644 book_apps/ch05/future_value/index.html create mode 100644 book_apps/ch05/guess_number/guess.js create mode 100644 book_apps/ch05/guess_number/index.html create mode 100644 book_apps/ch05/guess_number/main.css create mode 100644 book_apps/ch05/typewriter/index.html create mode 100644 book_apps/ch05/typewriter/typewriter.css create mode 100644 book_apps/ch05/typewriter/typewriter.js create mode 100644 book_apps/ch06/faqs/faqs.css create mode 100644 book_apps/ch06/faqs/faqs.js create mode 100644 book_apps/ch06/faqs/images/minus.png create mode 100644 book_apps/ch06/faqs/images/plus.png create mode 100644 book_apps/ch06/faqs/index.html create mode 100644 book_apps/ch06/image_swap/image_swap.css create mode 100644 book_apps/ch06/image_swap/image_swap.js create mode 100644 book_apps/ch06/image_swap/images/bison.jpg create mode 100644 book_apps/ch06/image_swap/images/deer.jpg create mode 100644 book_apps/ch06/image_swap/images/hero.jpg create mode 100644 book_apps/ch06/image_swap/images/release.jpg create mode 100644 book_apps/ch06/image_swap/index.html create mode 100644 book_apps/ch06/image_swap/thumbnails/bison.jpg create mode 100644 book_apps/ch06/image_swap/thumbnails/deer.jpg create mode 100644 book_apps/ch06/image_swap/thumbnails/hero.jpg create mode 100644 book_apps/ch06/image_swap/thumbnails/release.jpg create mode 100644 book_apps/ch06/register/confirm.html create mode 100644 book_apps/ch06/register/index.html create mode 100644 book_apps/ch06/register/register.css create mode 100644 book_apps/ch06/register/register.js create mode 100644 book_apps/ch06/register_2.0/confirm.html create mode 100644 book_apps/ch06/register_2.0/index.html create mode 100644 book_apps/ch06/register_2.0/register.css create mode 100644 book_apps/ch06/register_2.0/register.js create mode 100644 book_apps/ch07/future_value/future_value.css create mode 100644 book_apps/ch07/future_value/future_value.js create mode 100644 book_apps/ch07/future_value/index.html create mode 100644 book_apps/ch07/future_value_no_debug_statements/future_value.css create mode 100644 book_apps/ch07/future_value_no_debug_statements/future_value.js create mode 100644 book_apps/ch07/future_value_no_debug_statements/index.html create mode 100644 book_apps/ch08/clock/clock.js create mode 100644 book_apps/ch08/clock/index.html create mode 100644 book_apps/ch08/clock/main.css create mode 100644 book_apps/ch08/countdown/countdown.css create mode 100644 book_apps/ch08/countdown/countdown.js create mode 100644 book_apps/ch08/countdown/index.html create mode 100644 book_apps/ch08/slide_show/images/bison.jpg create mode 100644 book_apps/ch08/slide_show/images/deer.jpg create mode 100644 book_apps/ch08/slide_show/images/hero.jpg create mode 100644 book_apps/ch08/slide_show/images/release.jpg create mode 100644 book_apps/ch08/slide_show/index.html create mode 100644 book_apps/ch08/slide_show/slide_show.css create mode 100644 book_apps/ch08/slide_show/slide_show.js create mode 100644 book_apps/ch08/timer/index.html create mode 100644 book_apps/ch08/timer/main.css create mode 100644 book_apps/ch08/timer/timer.js create mode 100644 book_apps/ch08/trivia/index.html create mode 100644 book_apps/ch08/trivia/main.css create mode 100644 book_apps/ch09/future_value/calc_future_value.js create mode 100644 book_apps/ch09/future_value/future_value.css create mode 100644 book_apps/ch09/future_value/future_value.js create mode 100644 book_apps/ch09/future_value/index.html create mode 100644 book_apps/ch09/register/confirm.html create mode 100644 book_apps/ch09/register/index.html create mode 100644 book_apps/ch09/register/register.css create mode 100644 book_apps/ch09/register_2.0/confirm.html create mode 100644 book_apps/ch09/register_2.0/index.html create mode 100644 book_apps/ch09/register_2.0/register.css create mode 100644 book_apps/ch09/register_2.0/register.js create mode 100644 book_apps/ch10/future_value/future_value.css create mode 100644 book_apps/ch10/future_value/future_value.js create mode 100644 book_apps/ch10/future_value/index.html create mode 100644 book_apps/ch10/hit_counter/hit_counter.js create mode 100644 book_apps/ch10/hit_counter/index.html create mode 100644 book_apps/ch10/hit_counter/main.css create mode 100644 book_apps/ch10/hit_counter/test.html create mode 100644 book_apps/ch10/task_list/index.html create mode 100644 book_apps/ch10/task_list/task_list.css create mode 100644 book_apps/ch10/task_list/task_list.js create mode 100644 book_apps/ch11/task_list/index.html create mode 100644 book_apps/ch11/task_list/task_list.css create mode 100644 book_apps/ch11/task_list/task_list.js create mode 100644 book_apps/ch11/test_scores/index.html create mode 100644 book_apps/ch11/test_scores/test_scores.css create mode 100644 book_apps/ch11/test_scores/test_scores.js create mode 100644 book_apps/ch12/invoice/index.html create mode 100644 book_apps/ch12/invoice/invoice.js create mode 100644 book_apps/ch12/invoice/lib_invoice.js create mode 100644 book_apps/ch12/invoice/main.css create mode 100644 book_apps/ch12/task_list/index.html create mode 100644 book_apps/ch12/task_list/lib_storage.js create mode 100644 book_apps/ch12/task_list/lib_task.js create mode 100644 book_apps/ch12/task_list/lib_task_list.js create mode 100644 book_apps/ch12/task_list/main.css create mode 100644 book_apps/ch12/task_list/task_list.js create mode 100644 book_apps/ch12/trips/index.html create mode 100644 book_apps/ch12/trips/lib_trips.js create mode 100644 book_apps/ch12/trips/trips.css create mode 100644 book_apps/ch12/trips/trips.js create mode 100644 book_apps/ch13/clock/clock.js create mode 100644 book_apps/ch13/clock/index.html create mode 100644 book_apps/ch13/clock/main.css create mode 100644 book_apps/ch13/general_modules/DOM.js create mode 100644 book_apps/ch13/general_modules/storage.js create mode 100644 book_apps/ch13/slide_show/images/bison.jpg create mode 100644 book_apps/ch13/slide_show/images/deer.jpg create mode 100644 book_apps/ch13/slide_show/images/hero.jpg create mode 100644 book_apps/ch13/slide_show/images/release.jpg create mode 100644 book_apps/ch13/slide_show/index.html create mode 100644 book_apps/ch13/slide_show/lib_DOM.js create mode 100644 book_apps/ch13/slide_show/lib_slide_show.js create mode 100644 book_apps/ch13/slide_show/main.css create mode 100644 book_apps/ch13/slide_show/slide_show.js create mode 100644 book_apps/ch13/task_list/index.html create mode 100644 book_apps/ch13/task_list/modules/task.js create mode 100644 book_apps/ch13/task_list/modules/task_list.js create mode 100644 book_apps/ch13/task_list/modules/task_storage.js create mode 100644 book_apps/ch13/task_list/task_list.css create mode 100644 book_apps/ch13/task_list/task_list.js create mode 100644 book_apps/ch14/astronomy_pod/apod.css create mode 100644 book_apps/ch14/astronomy_pod/apod.js create mode 100644 book_apps/ch14/astronomy_pod/images/notavailable.png create mode 100644 book_apps/ch14/astronomy_pod/index.html create mode 100644 book_apps/ch14/user_directory/index.html create mode 100644 book_apps/ch14/user_directory/main.css create mode 100644 book_apps/ch14/user_directory/mod_users.js create mode 100644 book_apps/ch14/user_directory/user_directory.js create mode 100644 book_apps/ch15/cors_proxy/index.html create mode 100644 book_apps/ch15/cors_proxy/main.css create mode 100644 book_apps/ch15/cors_proxy/node_modules/.bin/mime create mode 100644 book_apps/ch15/cors_proxy/node_modules/.bin/mime.cmd create mode 100644 book_apps/ch15/cors_proxy/node_modules/.bin/mime.ps1 create mode 100644 book_apps/ch15/cors_proxy/node_modules/.package-lock.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/http-proxy/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/http-proxy/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/http-proxy/index.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/http-proxy/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/assert.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/assert/strict.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/async_hooks.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/buffer.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/child_process.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/cluster.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/console.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/constants.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/crypto.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/dgram.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/diagnostics_channel.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/dns.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/dns/promises.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/dom-events.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/domain.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/events.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/fs.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/fs/promises.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/globals.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/globals.global.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/http.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/http2.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/https.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/index.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/inspector.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/module.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/net.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/os.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/path.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/perf_hooks.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/process.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/punycode.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/querystring.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/readline.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/readline/promises.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/repl.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/stream.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/stream/consumers.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/stream/promises.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/stream/web.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/string_decoder.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/test.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/timers.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/timers/promises.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/tls.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/trace_events.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/assert.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/assert/strict.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/async_hooks.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/buffer.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/child_process.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/cluster.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/console.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/constants.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/crypto.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/dgram.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/diagnostics_channel.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/dns.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/dns/promises.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/dom-events.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/domain.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/events.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/fs.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/fs/promises.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/globals.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/globals.global.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/http.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/http2.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/https.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/index.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/inspector.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/module.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/net.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/os.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/path.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/perf_hooks.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/process.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/punycode.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/querystring.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/readline.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/readline/promises.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/repl.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/stream.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/stream/consumers.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/stream/promises.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/stream/web.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/string_decoder.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/test.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/timers.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/timers/promises.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/tls.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/trace_events.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/tty.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/url.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/util.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/v8.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/vm.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/wasi.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/worker_threads.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/ts4.8/zlib.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/tty.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/url.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/util.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/v8.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/vm.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/wasi.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/worker_threads.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/@types/node/zlib.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/accepts/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/accepts/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/accepts/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/accepts/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/accepts/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/array-flatten/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/array-flatten/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/array-flatten/array-flatten.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/array-flatten/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/body-parser/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/body-parser/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/body-parser/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/body-parser/SECURITY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/body-parser/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/body-parser/lib/read.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/body-parser/lib/types/json.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/body-parser/lib/types/raw.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/body-parser/lib/types/text.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/body-parser/lib/types/urlencoded.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/body-parser/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/braces/CHANGELOG.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/braces/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/braces/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/braces/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/braces/lib/compile.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/braces/lib/constants.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/braces/lib/expand.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/braces/lib/parse.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/braces/lib/stringify.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/braces/lib/utils.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/braces/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/bytes/History.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/bytes/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/bytes/Readme.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/bytes/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/bytes/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/call-bind/.eslintignore create mode 100644 book_apps/ch15/cors_proxy/node_modules/call-bind/.eslintrc create mode 100644 book_apps/ch15/cors_proxy/node_modules/call-bind/.github/FUNDING.yml create mode 100644 book_apps/ch15/cors_proxy/node_modules/call-bind/.nycrc create mode 100644 book_apps/ch15/cors_proxy/node_modules/call-bind/CHANGELOG.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/call-bind/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/call-bind/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/call-bind/callBound.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/call-bind/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/call-bind/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/call-bind/test/callBound.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/call-bind/test/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/content-disposition/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/content-disposition/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/content-disposition/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/content-disposition/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/content-disposition/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/content-type/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/content-type/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/content-type/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/content-type/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/content-type/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/cookie-signature/.npmignore create mode 100644 book_apps/ch15/cors_proxy/node_modules/cookie-signature/History.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/cookie-signature/Readme.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/cookie-signature/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/cookie-signature/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/cookie/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/cookie/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/cookie/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/cookie/SECURITY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/cookie/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/cookie/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/cors/CONTRIBUTING.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/cors/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/cors/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/cors/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/cors/lib/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/cors/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/debug/.coveralls.yml create mode 100644 book_apps/ch15/cors_proxy/node_modules/debug/.eslintrc create mode 100644 book_apps/ch15/cors_proxy/node_modules/debug/.npmignore create mode 100644 book_apps/ch15/cors_proxy/node_modules/debug/.travis.yml create mode 100644 book_apps/ch15/cors_proxy/node_modules/debug/CHANGELOG.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/debug/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/debug/Makefile create mode 100644 book_apps/ch15/cors_proxy/node_modules/debug/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/debug/component.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/debug/karma.conf.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/debug/node.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/debug/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/debug/src/browser.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/debug/src/debug.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/debug/src/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/debug/src/inspector-log.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/debug/src/node.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/depd/History.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/depd/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/depd/Readme.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/depd/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/depd/lib/browser/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/depd/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/destroy/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/destroy/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/destroy/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/destroy/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/ee-first/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/ee-first/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/ee-first/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/ee-first/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/encodeurl/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/encodeurl/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/encodeurl/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/encodeurl/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/encodeurl/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/escape-html/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/escape-html/Readme.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/escape-html/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/escape-html/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/etag/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/etag/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/etag/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/etag/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/etag/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/eventemitter3/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/eventemitter3/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/eventemitter3/index.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/eventemitter3/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/eventemitter3/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/eventemitter3/umd/eventemitter3.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/eventemitter3/umd/eventemitter3.min.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/eventemitter3/umd/eventemitter3.min.js.map create mode 100644 book_apps/ch15/cors_proxy/node_modules/express/History.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/express/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/express/Readme.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/express/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/express/lib/application.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/express/lib/express.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/express/lib/middleware/init.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/express/lib/middleware/query.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/express/lib/request.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/express/lib/response.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/express/lib/router/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/express/lib/router/layer.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/express/lib/router/route.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/express/lib/utils.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/express/lib/view.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/express/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/fill-range/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/fill-range/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/fill-range/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/fill-range/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/finalhandler/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/finalhandler/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/finalhandler/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/finalhandler/SECURITY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/finalhandler/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/finalhandler/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/follow-redirects/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/follow-redirects/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/follow-redirects/debug.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/follow-redirects/http.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/follow-redirects/https.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/follow-redirects/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/follow-redirects/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/forwarded/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/forwarded/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/forwarded/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/forwarded/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/forwarded/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/fresh/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/fresh/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/fresh/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/fresh/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/fresh/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/function-bind/.editorconfig create mode 100644 book_apps/ch15/cors_proxy/node_modules/function-bind/.eslintrc create mode 100644 book_apps/ch15/cors_proxy/node_modules/function-bind/.jscs.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/function-bind/.npmignore create mode 100644 book_apps/ch15/cors_proxy/node_modules/function-bind/.travis.yml create mode 100644 book_apps/ch15/cors_proxy/node_modules/function-bind/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/function-bind/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/function-bind/implementation.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/function-bind/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/function-bind/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/function-bind/test/.eslintrc create mode 100644 book_apps/ch15/cors_proxy/node_modules/function-bind/test/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/get-intrinsic/.eslintrc create mode 100644 book_apps/ch15/cors_proxy/node_modules/get-intrinsic/.github/FUNDING.yml create mode 100644 book_apps/ch15/cors_proxy/node_modules/get-intrinsic/.nycrc create mode 100644 book_apps/ch15/cors_proxy/node_modules/get-intrinsic/CHANGELOG.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/get-intrinsic/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/get-intrinsic/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/get-intrinsic/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/get-intrinsic/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/get-intrinsic/test/GetIntrinsic.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/has-proto/.eslintrc create mode 100644 book_apps/ch15/cors_proxy/node_modules/has-proto/.github/FUNDING.yml create mode 100644 book_apps/ch15/cors_proxy/node_modules/has-proto/CHANGELOG.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/has-proto/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/has-proto/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/has-proto/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/has-proto/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/has-proto/test/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/has-symbols/.eslintrc create mode 100644 book_apps/ch15/cors_proxy/node_modules/has-symbols/.github/FUNDING.yml create mode 100644 book_apps/ch15/cors_proxy/node_modules/has-symbols/.nycrc create mode 100644 book_apps/ch15/cors_proxy/node_modules/has-symbols/CHANGELOG.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/has-symbols/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/has-symbols/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/has-symbols/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/has-symbols/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/has-symbols/shams.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/has-symbols/test/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/has-symbols/test/shams/core-js.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/has-symbols/test/shams/get-own-property-symbols.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/has-symbols/test/tests.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/has/LICENSE-MIT create mode 100644 book_apps/ch15/cors_proxy/node_modules/has/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/has/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/has/src/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/has/test/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-errors/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-errors/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-errors/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-errors/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-errors/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/_handlers.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/_handlers.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/config-factory.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/config-factory.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/context-matcher.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/context-matcher.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/errors.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/errors.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/handlers/fix-request-body.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/handlers/fix-request-body.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/handlers/index.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/handlers/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/handlers/public.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/handlers/public.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/handlers/response-interceptor.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/handlers/response-interceptor.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/http-proxy-middleware.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/http-proxy-middleware.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/index.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/logger.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/logger.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/path-rewriter.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/path-rewriter.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/router.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/router.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/types.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/dist/types.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy-middleware/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy/.auto-changelog create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy/.gitattributes create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy/CHANGELOG.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy/CODE_OF_CONDUCT.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy/codecov.yml create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy/lib/http-proxy.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy/lib/http-proxy/common.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy/lib/http-proxy/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy/lib/http-proxy/passes/web-outgoing.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy/lib/http-proxy/passes/ws-incoming.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/http-proxy/renovate.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/iconv-lite/Changelog.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/iconv-lite/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/iconv-lite/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/iconv-lite/encodings/dbcs-codec.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/iconv-lite/encodings/dbcs-data.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/iconv-lite/encodings/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/iconv-lite/encodings/internal.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/iconv-lite/encodings/sbcs-codec.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/iconv-lite/encodings/sbcs-data-generated.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/iconv-lite/encodings/sbcs-data.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/iconv-lite/encodings/tables/big5-added.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/iconv-lite/encodings/tables/cp936.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/iconv-lite/encodings/tables/cp949.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/iconv-lite/encodings/tables/cp950.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/iconv-lite/encodings/tables/eucjp.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/iconv-lite/encodings/tables/gbk-added.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/iconv-lite/encodings/tables/shiftjis.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/iconv-lite/encodings/utf16.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/iconv-lite/encodings/utf7.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/iconv-lite/lib/bom-handling.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/iconv-lite/lib/extend-node.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/iconv-lite/lib/index.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/iconv-lite/lib/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/iconv-lite/lib/streams.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/iconv-lite/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/inherits/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/inherits/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/inherits/inherits.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/inherits/inherits_browser.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/inherits/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/ipaddr.js/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/ipaddr.js/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/ipaddr.js/ipaddr.min.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/ipaddr.js/lib/ipaddr.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/ipaddr.js/lib/ipaddr.js.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/ipaddr.js/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/is-extglob/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/is-extglob/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/is-extglob/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/is-extglob/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/is-glob/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/is-glob/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/is-glob/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/is-glob/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/is-number/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/is-number/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/is-number/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/is-number/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/is-plain-obj/index.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/is-plain-obj/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/is-plain-obj/license create mode 100644 book_apps/ch15/cors_proxy/node_modules/is-plain-obj/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/is-plain-obj/readme.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/media-typer/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/media-typer/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/media-typer/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/media-typer/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/media-typer/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/merge-descriptors/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/merge-descriptors/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/merge-descriptors/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/merge-descriptors/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/merge-descriptors/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/methods/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/methods/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/methods/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/methods/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/methods/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/micromatch/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/micromatch/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/micromatch/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/micromatch/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/mime-db/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/mime-db/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/mime-db/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/mime-db/db.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/mime-db/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/mime-db/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/mime-types/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/mime-types/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/mime-types/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/mime-types/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/mime-types/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/mime/.npmignore create mode 100644 book_apps/ch15/cors_proxy/node_modules/mime/CHANGELOG.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/mime/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/mime/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/mime/cli.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/mime/mime.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/mime/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/mime/src/build.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/mime/src/test.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/mime/types.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/ms/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/ms/license.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/ms/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/ms/readme.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/negotiator/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/negotiator/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/negotiator/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/negotiator/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/negotiator/lib/charset.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/negotiator/lib/encoding.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/negotiator/lib/language.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/negotiator/lib/mediaType.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/negotiator/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-assign/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-assign/license create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-assign/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-assign/readme.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/.eslintrc create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/.github/FUNDING.yml create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/.nycrc create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/CHANGELOG.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/example/all.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/example/circular.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/example/fn.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/example/inspect.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/package-support.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/readme.markdown create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/test-core-js.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/test/bigint.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/test/browser/dom.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/test/circular.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/test/deep.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/test/element.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/test/err.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/test/fakes.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/test/fn.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/test/has.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/test/holes.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/test/indent-option.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/test/inspect.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/test/lowbyte.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/test/number.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/test/quoteStyle.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/test/toStringTag.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/test/undef.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/test/values.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/object-inspect/util.inspect.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/on-finished/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/on-finished/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/on-finished/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/on-finished/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/on-finished/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/parseurl/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/parseurl/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/parseurl/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/parseurl/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/parseurl/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/path-to-regexp/History.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/path-to-regexp/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/path-to-regexp/Readme.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/path-to-regexp/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/path-to-regexp/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/picomatch/CHANGELOG.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/picomatch/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/picomatch/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/picomatch/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/picomatch/lib/constants.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/picomatch/lib/parse.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/picomatch/lib/picomatch.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/picomatch/lib/scan.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/picomatch/lib/utils.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/picomatch/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/proxy-addr/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/proxy-addr/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/proxy-addr/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/proxy-addr/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/proxy-addr/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/qs/.editorconfig create mode 100644 book_apps/ch15/cors_proxy/node_modules/qs/.eslintrc create mode 100644 book_apps/ch15/cors_proxy/node_modules/qs/.github/FUNDING.yml create mode 100644 book_apps/ch15/cors_proxy/node_modules/qs/.nycrc create mode 100644 book_apps/ch15/cors_proxy/node_modules/qs/CHANGELOG.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/qs/LICENSE.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/qs/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/qs/dist/qs.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/qs/lib/formats.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/qs/lib/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/qs/lib/parse.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/qs/lib/stringify.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/qs/lib/utils.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/qs/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/qs/test/parse.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/qs/test/stringify.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/qs/test/utils.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/range-parser/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/range-parser/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/range-parser/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/range-parser/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/range-parser/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/raw-body/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/raw-body/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/raw-body/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/raw-body/SECURITY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/raw-body/index.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/raw-body/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/raw-body/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/requires-port/.npmignore create mode 100644 book_apps/ch15/cors_proxy/node_modules/requires-port/.travis.yml create mode 100644 book_apps/ch15/cors_proxy/node_modules/requires-port/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/requires-port/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/requires-port/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/requires-port/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/requires-port/test.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/safe-buffer/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/safe-buffer/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/safe-buffer/index.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/safe-buffer/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/safe-buffer/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/safer-buffer/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/safer-buffer/Porting-Buffer.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/safer-buffer/Readme.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/safer-buffer/dangerous.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/safer-buffer/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/safer-buffer/safer.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/safer-buffer/tests.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/send/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/send/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/send/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/send/SECURITY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/send/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/send/node_modules/ms/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/send/node_modules/ms/license.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/send/node_modules/ms/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/send/node_modules/ms/readme.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/send/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/serve-static/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/serve-static/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/serve-static/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/serve-static/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/serve-static/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/setprototypeof/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/setprototypeof/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/setprototypeof/index.d.ts create mode 100644 book_apps/ch15/cors_proxy/node_modules/setprototypeof/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/setprototypeof/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/setprototypeof/test/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/side-channel/.eslintignore create mode 100644 book_apps/ch15/cors_proxy/node_modules/side-channel/.eslintrc create mode 100644 book_apps/ch15/cors_proxy/node_modules/side-channel/.github/FUNDING.yml create mode 100644 book_apps/ch15/cors_proxy/node_modules/side-channel/.nycrc create mode 100644 book_apps/ch15/cors_proxy/node_modules/side-channel/CHANGELOG.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/side-channel/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/side-channel/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/side-channel/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/side-channel/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/side-channel/test/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/statuses/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/statuses/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/statuses/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/statuses/codes.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/statuses/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/statuses/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/to-regex-range/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/to-regex-range/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/to-regex-range/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/to-regex-range/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/toidentifier/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/toidentifier/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/toidentifier/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/toidentifier/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/toidentifier/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/type-is/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/type-is/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/type-is/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/type-is/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/type-is/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/unpipe/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/unpipe/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/unpipe/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/unpipe/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/unpipe/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/utils-merge/.npmignore create mode 100644 book_apps/ch15/cors_proxy/node_modules/utils-merge/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/utils-merge/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/utils-merge/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/utils-merge/package.json create mode 100644 book_apps/ch15/cors_proxy/node_modules/vary/HISTORY.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/vary/LICENSE create mode 100644 book_apps/ch15/cors_proxy/node_modules/vary/README.md create mode 100644 book_apps/ch15/cors_proxy/node_modules/vary/index.js create mode 100644 book_apps/ch15/cors_proxy/node_modules/vary/package.json create mode 100644 book_apps/ch15/cors_proxy/package-lock.json create mode 100644 book_apps/ch15/cors_proxy/package.json create mode 100644 book_apps/ch15/cors_proxy/proxy.mjs create mode 100644 book_apps/ch15/email_list/email_list.txt create mode 100644 book_apps/ch15/email_list/read.js create mode 100644 book_apps/ch15/email_list/read.mjs create mode 100644 book_apps/ch15/email_list/read_write_promises.mjs create mode 100644 book_apps/ch15/email_list_api/data.js create mode 100644 book_apps/ch15/email_list_api/email_list.txt create mode 100644 book_apps/ch15/email_list_api/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/.bin/mime create mode 100644 book_apps/ch15/email_list_api/node_modules/.bin/mime.cmd create mode 100644 book_apps/ch15/email_list_api/node_modules/.bin/mime.ps1 create mode 100644 book_apps/ch15/email_list_api/node_modules/.package-lock.json create mode 100644 book_apps/ch15/email_list_api/node_modules/accepts/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/accepts/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/accepts/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/accepts/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/accepts/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/array-flatten/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/array-flatten/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/array-flatten/array-flatten.js create mode 100644 book_apps/ch15/email_list_api/node_modules/array-flatten/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/body-parser/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/body-parser/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/body-parser/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/body-parser/SECURITY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/body-parser/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/body-parser/lib/read.js create mode 100644 book_apps/ch15/email_list_api/node_modules/body-parser/lib/types/json.js create mode 100644 book_apps/ch15/email_list_api/node_modules/body-parser/lib/types/raw.js create mode 100644 book_apps/ch15/email_list_api/node_modules/body-parser/lib/types/text.js create mode 100644 book_apps/ch15/email_list_api/node_modules/body-parser/lib/types/urlencoded.js create mode 100644 book_apps/ch15/email_list_api/node_modules/body-parser/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/bytes/History.md create mode 100644 book_apps/ch15/email_list_api/node_modules/bytes/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/bytes/Readme.md create mode 100644 book_apps/ch15/email_list_api/node_modules/bytes/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/bytes/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/call-bind/.eslintignore create mode 100644 book_apps/ch15/email_list_api/node_modules/call-bind/.eslintrc create mode 100644 book_apps/ch15/email_list_api/node_modules/call-bind/.github/FUNDING.yml create mode 100644 book_apps/ch15/email_list_api/node_modules/call-bind/.nycrc create mode 100644 book_apps/ch15/email_list_api/node_modules/call-bind/CHANGELOG.md create mode 100644 book_apps/ch15/email_list_api/node_modules/call-bind/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/call-bind/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/call-bind/callBound.js create mode 100644 book_apps/ch15/email_list_api/node_modules/call-bind/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/call-bind/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/call-bind/test/callBound.js create mode 100644 book_apps/ch15/email_list_api/node_modules/call-bind/test/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/content-disposition/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/content-disposition/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/content-disposition/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/content-disposition/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/content-disposition/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/content-type/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/content-type/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/content-type/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/content-type/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/content-type/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/cookie-signature/.npmignore create mode 100644 book_apps/ch15/email_list_api/node_modules/cookie-signature/History.md create mode 100644 book_apps/ch15/email_list_api/node_modules/cookie-signature/Readme.md create mode 100644 book_apps/ch15/email_list_api/node_modules/cookie-signature/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/cookie-signature/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/cookie/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/cookie/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/cookie/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/cookie/SECURITY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/cookie/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/cookie/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/cors/CONTRIBUTING.md create mode 100644 book_apps/ch15/email_list_api/node_modules/cors/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/cors/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/cors/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/cors/lib/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/cors/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/debug/.coveralls.yml create mode 100644 book_apps/ch15/email_list_api/node_modules/debug/.eslintrc create mode 100644 book_apps/ch15/email_list_api/node_modules/debug/.npmignore create mode 100644 book_apps/ch15/email_list_api/node_modules/debug/.travis.yml create mode 100644 book_apps/ch15/email_list_api/node_modules/debug/CHANGELOG.md create mode 100644 book_apps/ch15/email_list_api/node_modules/debug/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/debug/Makefile create mode 100644 book_apps/ch15/email_list_api/node_modules/debug/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/debug/component.json create mode 100644 book_apps/ch15/email_list_api/node_modules/debug/karma.conf.js create mode 100644 book_apps/ch15/email_list_api/node_modules/debug/node.js create mode 100644 book_apps/ch15/email_list_api/node_modules/debug/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/debug/src/browser.js create mode 100644 book_apps/ch15/email_list_api/node_modules/debug/src/debug.js create mode 100644 book_apps/ch15/email_list_api/node_modules/debug/src/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/debug/src/inspector-log.js create mode 100644 book_apps/ch15/email_list_api/node_modules/debug/src/node.js create mode 100644 book_apps/ch15/email_list_api/node_modules/depd/History.md create mode 100644 book_apps/ch15/email_list_api/node_modules/depd/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/depd/Readme.md create mode 100644 book_apps/ch15/email_list_api/node_modules/depd/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/depd/lib/browser/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/depd/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/destroy/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/destroy/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/destroy/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/destroy/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/ee-first/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/ee-first/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/ee-first/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/ee-first/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/encodeurl/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/encodeurl/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/encodeurl/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/encodeurl/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/encodeurl/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/escape-html/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/escape-html/Readme.md create mode 100644 book_apps/ch15/email_list_api/node_modules/escape-html/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/escape-html/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/etag/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/etag/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/etag/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/etag/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/etag/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/express/History.md create mode 100644 book_apps/ch15/email_list_api/node_modules/express/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/express/Readme.md create mode 100644 book_apps/ch15/email_list_api/node_modules/express/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/express/lib/application.js create mode 100644 book_apps/ch15/email_list_api/node_modules/express/lib/express.js create mode 100644 book_apps/ch15/email_list_api/node_modules/express/lib/middleware/init.js create mode 100644 book_apps/ch15/email_list_api/node_modules/express/lib/middleware/query.js create mode 100644 book_apps/ch15/email_list_api/node_modules/express/lib/request.js create mode 100644 book_apps/ch15/email_list_api/node_modules/express/lib/response.js create mode 100644 book_apps/ch15/email_list_api/node_modules/express/lib/router/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/express/lib/router/layer.js create mode 100644 book_apps/ch15/email_list_api/node_modules/express/lib/router/route.js create mode 100644 book_apps/ch15/email_list_api/node_modules/express/lib/utils.js create mode 100644 book_apps/ch15/email_list_api/node_modules/express/lib/view.js create mode 100644 book_apps/ch15/email_list_api/node_modules/express/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/finalhandler/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/finalhandler/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/finalhandler/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/finalhandler/SECURITY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/finalhandler/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/finalhandler/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/forwarded/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/forwarded/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/forwarded/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/forwarded/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/forwarded/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/fresh/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/fresh/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/fresh/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/fresh/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/fresh/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/function-bind/.editorconfig create mode 100644 book_apps/ch15/email_list_api/node_modules/function-bind/.eslintrc create mode 100644 book_apps/ch15/email_list_api/node_modules/function-bind/.jscs.json create mode 100644 book_apps/ch15/email_list_api/node_modules/function-bind/.npmignore create mode 100644 book_apps/ch15/email_list_api/node_modules/function-bind/.travis.yml create mode 100644 book_apps/ch15/email_list_api/node_modules/function-bind/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/function-bind/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/function-bind/implementation.js create mode 100644 book_apps/ch15/email_list_api/node_modules/function-bind/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/function-bind/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/function-bind/test/.eslintrc create mode 100644 book_apps/ch15/email_list_api/node_modules/function-bind/test/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/get-intrinsic/.eslintrc create mode 100644 book_apps/ch15/email_list_api/node_modules/get-intrinsic/.github/FUNDING.yml create mode 100644 book_apps/ch15/email_list_api/node_modules/get-intrinsic/.nycrc create mode 100644 book_apps/ch15/email_list_api/node_modules/get-intrinsic/CHANGELOG.md create mode 100644 book_apps/ch15/email_list_api/node_modules/get-intrinsic/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/get-intrinsic/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/get-intrinsic/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/get-intrinsic/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/get-intrinsic/test/GetIntrinsic.js create mode 100644 book_apps/ch15/email_list_api/node_modules/has-proto/.eslintrc create mode 100644 book_apps/ch15/email_list_api/node_modules/has-proto/.github/FUNDING.yml create mode 100644 book_apps/ch15/email_list_api/node_modules/has-proto/CHANGELOG.md create mode 100644 book_apps/ch15/email_list_api/node_modules/has-proto/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/has-proto/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/has-proto/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/has-proto/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/has-proto/test/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/has-symbols/.eslintrc create mode 100644 book_apps/ch15/email_list_api/node_modules/has-symbols/.github/FUNDING.yml create mode 100644 book_apps/ch15/email_list_api/node_modules/has-symbols/.nycrc create mode 100644 book_apps/ch15/email_list_api/node_modules/has-symbols/CHANGELOG.md create mode 100644 book_apps/ch15/email_list_api/node_modules/has-symbols/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/has-symbols/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/has-symbols/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/has-symbols/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/has-symbols/shams.js create mode 100644 book_apps/ch15/email_list_api/node_modules/has-symbols/test/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/has-symbols/test/shams/core-js.js create mode 100644 book_apps/ch15/email_list_api/node_modules/has-symbols/test/shams/get-own-property-symbols.js create mode 100644 book_apps/ch15/email_list_api/node_modules/has-symbols/test/tests.js create mode 100644 book_apps/ch15/email_list_api/node_modules/has/LICENSE-MIT create mode 100644 book_apps/ch15/email_list_api/node_modules/has/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/has/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/has/src/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/has/test/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/http-errors/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/http-errors/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/http-errors/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/http-errors/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/http-errors/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/iconv-lite/Changelog.md create mode 100644 book_apps/ch15/email_list_api/node_modules/iconv-lite/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/iconv-lite/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/iconv-lite/encodings/dbcs-codec.js create mode 100644 book_apps/ch15/email_list_api/node_modules/iconv-lite/encodings/dbcs-data.js create mode 100644 book_apps/ch15/email_list_api/node_modules/iconv-lite/encodings/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/iconv-lite/encodings/internal.js create mode 100644 book_apps/ch15/email_list_api/node_modules/iconv-lite/encodings/sbcs-codec.js create mode 100644 book_apps/ch15/email_list_api/node_modules/iconv-lite/encodings/sbcs-data-generated.js create mode 100644 book_apps/ch15/email_list_api/node_modules/iconv-lite/encodings/sbcs-data.js create mode 100644 book_apps/ch15/email_list_api/node_modules/iconv-lite/encodings/tables/big5-added.json create mode 100644 book_apps/ch15/email_list_api/node_modules/iconv-lite/encodings/tables/cp936.json create mode 100644 book_apps/ch15/email_list_api/node_modules/iconv-lite/encodings/tables/cp949.json create mode 100644 book_apps/ch15/email_list_api/node_modules/iconv-lite/encodings/tables/cp950.json create mode 100644 book_apps/ch15/email_list_api/node_modules/iconv-lite/encodings/tables/eucjp.json create mode 100644 book_apps/ch15/email_list_api/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json create mode 100644 book_apps/ch15/email_list_api/node_modules/iconv-lite/encodings/tables/gbk-added.json create mode 100644 book_apps/ch15/email_list_api/node_modules/iconv-lite/encodings/tables/shiftjis.json create mode 100644 book_apps/ch15/email_list_api/node_modules/iconv-lite/encodings/utf16.js create mode 100644 book_apps/ch15/email_list_api/node_modules/iconv-lite/encodings/utf7.js create mode 100644 book_apps/ch15/email_list_api/node_modules/iconv-lite/lib/bom-handling.js create mode 100644 book_apps/ch15/email_list_api/node_modules/iconv-lite/lib/extend-node.js create mode 100644 book_apps/ch15/email_list_api/node_modules/iconv-lite/lib/index.d.ts create mode 100644 book_apps/ch15/email_list_api/node_modules/iconv-lite/lib/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/iconv-lite/lib/streams.js create mode 100644 book_apps/ch15/email_list_api/node_modules/iconv-lite/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/inherits/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/inherits/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/inherits/inherits.js create mode 100644 book_apps/ch15/email_list_api/node_modules/inherits/inherits_browser.js create mode 100644 book_apps/ch15/email_list_api/node_modules/inherits/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/ipaddr.js/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/ipaddr.js/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/ipaddr.js/ipaddr.min.js create mode 100644 book_apps/ch15/email_list_api/node_modules/ipaddr.js/lib/ipaddr.js create mode 100644 book_apps/ch15/email_list_api/node_modules/ipaddr.js/lib/ipaddr.js.d.ts create mode 100644 book_apps/ch15/email_list_api/node_modules/ipaddr.js/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/media-typer/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/media-typer/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/media-typer/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/media-typer/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/media-typer/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/merge-descriptors/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/merge-descriptors/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/merge-descriptors/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/merge-descriptors/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/merge-descriptors/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/methods/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/methods/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/methods/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/methods/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/methods/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/mime-db/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/mime-db/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/mime-db/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/mime-db/db.json create mode 100644 book_apps/ch15/email_list_api/node_modules/mime-db/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/mime-db/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/mime-types/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/mime-types/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/mime-types/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/mime-types/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/mime-types/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/mime/.npmignore create mode 100644 book_apps/ch15/email_list_api/node_modules/mime/CHANGELOG.md create mode 100644 book_apps/ch15/email_list_api/node_modules/mime/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/mime/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/mime/cli.js create mode 100644 book_apps/ch15/email_list_api/node_modules/mime/mime.js create mode 100644 book_apps/ch15/email_list_api/node_modules/mime/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/mime/src/build.js create mode 100644 book_apps/ch15/email_list_api/node_modules/mime/src/test.js create mode 100644 book_apps/ch15/email_list_api/node_modules/mime/types.json create mode 100644 book_apps/ch15/email_list_api/node_modules/ms/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/ms/license.md create mode 100644 book_apps/ch15/email_list_api/node_modules/ms/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/ms/readme.md create mode 100644 book_apps/ch15/email_list_api/node_modules/negotiator/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/negotiator/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/negotiator/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/negotiator/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/negotiator/lib/charset.js create mode 100644 book_apps/ch15/email_list_api/node_modules/negotiator/lib/encoding.js create mode 100644 book_apps/ch15/email_list_api/node_modules/negotiator/lib/language.js create mode 100644 book_apps/ch15/email_list_api/node_modules/negotiator/lib/mediaType.js create mode 100644 book_apps/ch15/email_list_api/node_modules/negotiator/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/object-assign/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/object-assign/license create mode 100644 book_apps/ch15/email_list_api/node_modules/object-assign/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/object-assign/readme.md create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/.eslintrc create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/.github/FUNDING.yml create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/.nycrc create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/CHANGELOG.md create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/example/all.js create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/example/circular.js create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/example/fn.js create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/example/inspect.js create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/package-support.json create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/readme.markdown create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/test-core-js.js create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/test/bigint.js create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/test/browser/dom.js create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/test/circular.js create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/test/deep.js create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/test/element.js create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/test/err.js create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/test/fakes.js create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/test/fn.js create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/test/has.js create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/test/holes.js create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/test/indent-option.js create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/test/inspect.js create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/test/lowbyte.js create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/test/number.js create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/test/quoteStyle.js create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/test/toStringTag.js create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/test/undef.js create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/test/values.js create mode 100644 book_apps/ch15/email_list_api/node_modules/object-inspect/util.inspect.js create mode 100644 book_apps/ch15/email_list_api/node_modules/on-finished/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/on-finished/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/on-finished/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/on-finished/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/on-finished/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/parseurl/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/parseurl/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/parseurl/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/parseurl/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/parseurl/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/path-to-regexp/History.md create mode 100644 book_apps/ch15/email_list_api/node_modules/path-to-regexp/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/path-to-regexp/Readme.md create mode 100644 book_apps/ch15/email_list_api/node_modules/path-to-regexp/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/path-to-regexp/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/proxy-addr/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/proxy-addr/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/proxy-addr/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/proxy-addr/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/proxy-addr/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/qs/.editorconfig create mode 100644 book_apps/ch15/email_list_api/node_modules/qs/.eslintrc create mode 100644 book_apps/ch15/email_list_api/node_modules/qs/.github/FUNDING.yml create mode 100644 book_apps/ch15/email_list_api/node_modules/qs/.nycrc create mode 100644 book_apps/ch15/email_list_api/node_modules/qs/CHANGELOG.md create mode 100644 book_apps/ch15/email_list_api/node_modules/qs/LICENSE.md create mode 100644 book_apps/ch15/email_list_api/node_modules/qs/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/qs/dist/qs.js create mode 100644 book_apps/ch15/email_list_api/node_modules/qs/lib/formats.js create mode 100644 book_apps/ch15/email_list_api/node_modules/qs/lib/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/qs/lib/parse.js create mode 100644 book_apps/ch15/email_list_api/node_modules/qs/lib/stringify.js create mode 100644 book_apps/ch15/email_list_api/node_modules/qs/lib/utils.js create mode 100644 book_apps/ch15/email_list_api/node_modules/qs/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/qs/test/parse.js create mode 100644 book_apps/ch15/email_list_api/node_modules/qs/test/stringify.js create mode 100644 book_apps/ch15/email_list_api/node_modules/qs/test/utils.js create mode 100644 book_apps/ch15/email_list_api/node_modules/range-parser/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/range-parser/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/range-parser/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/range-parser/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/range-parser/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/raw-body/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/raw-body/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/raw-body/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/raw-body/SECURITY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/raw-body/index.d.ts create mode 100644 book_apps/ch15/email_list_api/node_modules/raw-body/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/raw-body/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/safe-buffer/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/safe-buffer/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/safe-buffer/index.d.ts create mode 100644 book_apps/ch15/email_list_api/node_modules/safe-buffer/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/safe-buffer/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/safer-buffer/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/safer-buffer/Porting-Buffer.md create mode 100644 book_apps/ch15/email_list_api/node_modules/safer-buffer/Readme.md create mode 100644 book_apps/ch15/email_list_api/node_modules/safer-buffer/dangerous.js create mode 100644 book_apps/ch15/email_list_api/node_modules/safer-buffer/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/safer-buffer/safer.js create mode 100644 book_apps/ch15/email_list_api/node_modules/safer-buffer/tests.js create mode 100644 book_apps/ch15/email_list_api/node_modules/send/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/send/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/send/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/send/SECURITY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/send/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/send/node_modules/ms/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/send/node_modules/ms/license.md create mode 100644 book_apps/ch15/email_list_api/node_modules/send/node_modules/ms/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/send/node_modules/ms/readme.md create mode 100644 book_apps/ch15/email_list_api/node_modules/send/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/serve-static/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/serve-static/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/serve-static/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/serve-static/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/serve-static/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/setprototypeof/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/setprototypeof/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/setprototypeof/index.d.ts create mode 100644 book_apps/ch15/email_list_api/node_modules/setprototypeof/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/setprototypeof/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/setprototypeof/test/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/side-channel/.eslintignore create mode 100644 book_apps/ch15/email_list_api/node_modules/side-channel/.eslintrc create mode 100644 book_apps/ch15/email_list_api/node_modules/side-channel/.github/FUNDING.yml create mode 100644 book_apps/ch15/email_list_api/node_modules/side-channel/.nycrc create mode 100644 book_apps/ch15/email_list_api/node_modules/side-channel/CHANGELOG.md create mode 100644 book_apps/ch15/email_list_api/node_modules/side-channel/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/side-channel/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/side-channel/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/side-channel/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/side-channel/test/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/statuses/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/statuses/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/statuses/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/statuses/codes.json create mode 100644 book_apps/ch15/email_list_api/node_modules/statuses/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/statuses/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/toidentifier/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/toidentifier/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/toidentifier/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/toidentifier/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/toidentifier/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/type-is/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/type-is/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/type-is/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/type-is/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/type-is/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/unpipe/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/unpipe/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/unpipe/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/unpipe/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/unpipe/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/utils-merge/.npmignore create mode 100644 book_apps/ch15/email_list_api/node_modules/utils-merge/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/utils-merge/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/utils-merge/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/utils-merge/package.json create mode 100644 book_apps/ch15/email_list_api/node_modules/vary/HISTORY.md create mode 100644 book_apps/ch15/email_list_api/node_modules/vary/LICENSE create mode 100644 book_apps/ch15/email_list_api/node_modules/vary/README.md create mode 100644 book_apps/ch15/email_list_api/node_modules/vary/index.js create mode 100644 book_apps/ch15/email_list_api/node_modules/vary/package.json create mode 100644 book_apps/ch15/email_list_api/package-lock.json create mode 100644 book_apps/ch15/email_list_api/package.json create mode 100644 book_apps/ch15/email_manager/email_manager.js create mode 100644 book_apps/ch15/email_manager/index.html create mode 100644 book_apps/ch15/email_manager/main.css create mode 100644 book_apps/ch15/future_value/index.js create mode 100644 book_apps/ch15/future_value/index2.js create mode 100644 book_apps/ch15/future_value/index3.mjs create mode 100644 book_apps/ch15/future_value/murach-calc-future-value.mjs create mode 100644 book_apps/ch15/future_value/package.json create mode 100644 book_apps/ch16/drawing/drawing.js create mode 100644 book_apps/ch16/drawing/index.html create mode 100644 book_apps/ch16/drawing/main.css create mode 100644 book_apps/ch16/movie_list/index.html create mode 100644 book_apps/ch16/movie_list/main.css create mode 100644 book_apps/ch16/movie_list/movie_list.js create mode 100644 book_apps/ch16/movie_list/pizza_order.js create mode 100644 book_apps/ch16/pong/index.html create mode 100644 book_apps/ch16/pong/main.css create mode 100644 book_apps/ch16/pong/pong.js create mode 100644 book_apps/ch16/smiley/index.html create mode 100644 book_apps/ch16/smiley/main.css create mode 100644 book_apps/ch16/smiley/smiley.js create mode 100644 book_apps/ch16/tic_tac_toe/index.html create mode 100644 book_apps/ch16/tic_tac_toe/main.css create mode 100644 book_apps/ch16/tic_tac_toe/tic_tac_toe.js create mode 100644 exercises/ch01/die_roller/index.html create mode 100644 exercises/ch01/die_roller/main.css create mode 100644 exercises/ch02/numbers/index.html create mode 100644 exercises/ch02/scripts/index.html create mode 100644 exercises/ch02/strings/index.html create mode 100644 exercises/ch03/coin_flip/index.html create mode 100644 exercises/ch03/guess_number/guess_number.js create mode 100644 exercises/ch03/guess_number/index.html create mode 100644 exercises/ch03/stairs/index.html create mode 100644 exercises/ch04/countries/index.html create mode 100644 exercises/ch04/prices/index.html create mode 100644 exercises/ch04/words/index.html create mode 100644 exercises/ch05/dice_roller/index.html create mode 100644 exercises/ch05/dice_roller_dom/dice_roller.js create mode 100644 exercises/ch05/dice_roller_dom/index.html create mode 100644 exercises/ch05/dice_roller_dom/main.css create mode 100644 exercises/ch05/movie_list/index.html create mode 100644 exercises/ch05/movie_list/main.css create mode 100644 exercises/ch05/movie_list/movie.js create mode 100644 exercises/ch06/image_carousel/carousel.css create mode 100644 exercises/ch06/image_carousel/carousel.js create mode 100644 exercises/ch06/image_carousel/images/bison.jpg create mode 100644 exercises/ch06/image_carousel/images/deer.jpg create mode 100644 exercises/ch06/image_carousel/images/hero.jpg create mode 100644 exercises/ch06/image_carousel/images/release.jpg create mode 100644 exercises/ch06/image_carousel/index.html create mode 100644 exercises/ch06/movie_ranker/index.html create mode 100644 exercises/ch06/movie_ranker/mover.css create mode 100644 exercises/ch06/movie_ranker/mover.js create mode 100644 exercises/ch06/register_3.0/confirm.html create mode 100644 exercises/ch06/register_3.0/index.html create mode 100644 exercises/ch06/register_3.0/register.css create mode 100644 exercises/ch06/register_3.0/register.js create mode 100644 exercises/ch07/future_value/future_value.css create mode 100644 exercises/ch07/future_value/future_value.js create mode 100644 exercises/ch07/future_value/index.html create mode 100644 exercises/ch07/movie_ranker/index.html create mode 100644 exercises/ch07/movie_ranker/mover.css create mode 100644 exercises/ch07/movie_ranker/mover.js create mode 100644 exercises/ch08/invoices/index.html create mode 100644 exercises/ch08/invoices/invoices.css create mode 100644 exercises/ch08/invoices/invoices.js create mode 100644 exercises/ch08/stopwatch/index.html create mode 100644 exercises/ch08/stopwatch/main.css create mode 100644 exercises/ch08/stopwatch/stopwatch.js create mode 100644 exercises/ch09/creditcard/confirm.html create mode 100644 exercises/ch09/creditcard/creditcard.css create mode 100644 exercises/ch09/creditcard/creditcard.js create mode 100644 exercises/ch09/creditcard/index.html create mode 100644 exercises/ch09/exceptions/guess.js create mode 100644 exercises/ch09/exceptions/index.html create mode 100644 exercises/ch09/exceptions/main.css create mode 100644 exercises/ch10/countdown/count_down.css create mode 100644 exercises/ch10/countdown/count_down.js create mode 100644 exercises/ch10/countdown/index.html create mode 100644 exercises/ch11/cart/cart.css create mode 100644 exercises/ch11/cart/cart.js create mode 100644 exercises/ch11/cart/index.html create mode 100644 exercises/ch11/invoices/index.html create mode 100644 exercises/ch11/invoices/invoices.css create mode 100644 exercises/ch11/invoices/invoices.js create mode 100644 exercises/ch12/count_down/count_down.css create mode 100644 exercises/ch12/count_down/count_down.js create mode 100644 exercises/ch12/count_down/index.html create mode 100644 exercises/ch12/test_scores/index.html create mode 100644 exercises/ch12/test_scores/test_scores.css create mode 100644 exercises/ch12/test_scores/test_scores.js create mode 100644 exercises/ch13/count_down/count_down.css create mode 100644 exercises/ch13/count_down/count_down.js create mode 100644 exercises/ch13/count_down/index.html create mode 100644 exercises/ch13/count_down/lib_event.js create mode 100644 exercises/ch13/trips/index.html create mode 100644 exercises/ch13/trips/lib_trip.js create mode 100644 exercises/ch13/trips/lib_trips.js create mode 100644 exercises/ch13/trips/trips.css create mode 100644 exercises/ch13/trips/trips.js create mode 100644 exercises/ch14/apod/apod.css create mode 100644 exercises/ch14/apod/apod.js create mode 100644 exercises/ch14/apod/images/notavailable.png create mode 100644 exercises/ch14/apod/index.html create mode 100644 exercises/ch14/email_manager/email_manager.js create mode 100644 exercises/ch14/email_manager/index.html create mode 100644 exercises/ch14/email_manager/main.css create mode 100644 exercises/ch15/fs/names.txt create mode 100644 exercises/ch15/fs/read.mjs create mode 100644 exercises/ch15/task_list/index.html create mode 100644 exercises/ch15/task_list/task_list.css create mode 100644 exercises/ch15/task_list/task_list.js create mode 100644 exercises/ch15/task_list_api/data.mjs create mode 100644 exercises/ch15/task_list_api/index.mjs create mode 100644 exercises/ch15/task_list_api/tasks.txt create mode 100644 exercises/ch15/test_scores/index.js create mode 100644 exercises/ch16/logo/index.html create mode 100644 exercises/ch16/logo/logo.js create mode 100644 exercises/ch16/logo/logo.png create mode 100644 exercises/ch16/logo/main.css create mode 100644 exercises/ch16/pizza_order/index.html create mode 100644 exercises/ch16/pizza_order/logo.png create mode 100644 exercises/ch16/pizza_order/main.css create mode 100644 exercises/ch16/pizza_order/pizza_order.js create mode 100644 exercises/ch16/screen_saver/index.html create mode 100644 exercises/ch16/screen_saver/main.css create mode 100644 exercises/ch16/screen_saver/screen_saver.js create mode 100644 solutions/ch01/die_roller/index.html create mode 100644 solutions/ch01/die_roller/main.css create mode 100644 solutions/ch01/welcome/index.html create mode 100644 solutions/ch01/welcome/main.css create mode 100644 solutions/ch02/numbers/index.html create mode 100644 solutions/ch02/scripts/index.html create mode 100644 solutions/ch02/strings/index.html create mode 100644 solutions/ch03/coin_flip/index.html create mode 100644 solutions/ch03/guess_number/guess_number.js create mode 100644 solutions/ch03/guess_number/index.html create mode 100644 solutions/ch03/stairs/index.html create mode 100644 solutions/ch04/countries/index.html create mode 100644 solutions/ch04/prices/index.html create mode 100644 solutions/ch04/words/index.html create mode 100644 solutions/ch05/dice_roller/index.html create mode 100644 solutions/ch05/dice_roller_dom/dice_roller.js create mode 100644 solutions/ch05/dice_roller_dom/index.html create mode 100644 solutions/ch05/dice_roller_dom/main.css create mode 100644 solutions/ch05/movie_list/index.html create mode 100644 solutions/ch05/movie_list/main.css create mode 100644 solutions/ch05/movie_list/movie.js create mode 100644 solutions/ch06/image_carousel/carousel.css create mode 100644 solutions/ch06/image_carousel/carousel.js create mode 100644 solutions/ch06/image_carousel/images/bison.jpg create mode 100644 solutions/ch06/image_carousel/images/deer.jpg create mode 100644 solutions/ch06/image_carousel/images/hero.jpg create mode 100644 solutions/ch06/image_carousel/images/release.jpg create mode 100644 solutions/ch06/image_carousel/index.html create mode 100644 solutions/ch06/movie_ranker/index.html create mode 100644 solutions/ch06/movie_ranker/mover.css create mode 100644 solutions/ch06/movie_ranker/mover.js create mode 100644 solutions/ch06/register_3.0/confirm.html create mode 100644 solutions/ch06/register_3.0/index.html create mode 100644 solutions/ch06/register_3.0/register.css create mode 100644 solutions/ch06/register_3.0/register.js create mode 100644 solutions/ch07/future_value/future_value.css create mode 100644 solutions/ch07/future_value/future_value.js create mode 100644 solutions/ch07/future_value/index.html create mode 100644 solutions/ch07/future_value/test_plan.txt create mode 100644 solutions/ch07/movie_ranker/index.html create mode 100644 solutions/ch07/movie_ranker/mover.css create mode 100644 solutions/ch07/movie_ranker/mover.js create mode 100644 solutions/ch08/invoices/index.html create mode 100644 solutions/ch08/invoices/invoices.css create mode 100644 solutions/ch08/invoices/invoices.js create mode 100644 solutions/ch08/stopwatch/index.html create mode 100644 solutions/ch08/stopwatch/main.css create mode 100644 solutions/ch08/stopwatch/stopwatch.js create mode 100644 solutions/ch09/creditcard/confirm.html create mode 100644 solutions/ch09/creditcard/creditcard.css create mode 100644 solutions/ch09/creditcard/creditcard.js create mode 100644 solutions/ch09/creditcard/index.html create mode 100644 solutions/ch09/exceptions/guess.js create mode 100644 solutions/ch09/exceptions/index.html create mode 100644 solutions/ch09/exceptions/main.css create mode 100644 solutions/ch10/countdown/count_down.css create mode 100644 solutions/ch10/countdown/count_down.js create mode 100644 solutions/ch10/countdown/index.html create mode 100644 solutions/ch11/cart/cart.css create mode 100644 solutions/ch11/cart/cart.js create mode 100644 solutions/ch11/cart/index.html create mode 100644 solutions/ch11/invoices/index.html create mode 100644 solutions/ch11/invoices/invoices.css create mode 100644 solutions/ch11/invoices/invoices.js create mode 100644 solutions/ch12/count_down/count_down.css create mode 100644 solutions/ch12/count_down/count_down.js create mode 100644 solutions/ch12/count_down/index.html create mode 100644 solutions/ch12/count_down/lib_event.js create mode 100644 solutions/ch12/test_scores/index.html create mode 100644 solutions/ch12/test_scores/lib_test_scores.js create mode 100644 solutions/ch12/test_scores/lib_validation.js create mode 100644 solutions/ch12/test_scores/test_scores.css create mode 100644 solutions/ch12/test_scores/test_scores.js create mode 100644 solutions/ch13/count_down/count_down.css create mode 100644 solutions/ch13/count_down/count_down.js create mode 100644 solutions/ch13/count_down/index.html create mode 100644 solutions/ch13/count_down/lib_event.js create mode 100644 solutions/ch13/trips/index.html create mode 100644 solutions/ch13/trips/lib_trip.js create mode 100644 solutions/ch13/trips/lib_trips.js create mode 100644 solutions/ch13/trips/lib_validation.js create mode 100644 solutions/ch13/trips/trips.css create mode 100644 solutions/ch13/trips/trips.js create mode 100644 solutions/ch14/apod/apod.css create mode 100644 solutions/ch14/apod/apod.js create mode 100644 solutions/ch14/apod/images/notavailable.png create mode 100644 solutions/ch14/apod/index.html create mode 100644 solutions/ch14/apod/lib_apod.js create mode 100644 solutions/ch14/email_manager/email_manager.js create mode 100644 solutions/ch14/email_manager/index.html create mode 100644 solutions/ch14/email_manager/main.css create mode 100644 solutions/ch15/fs/names.txt create mode 100644 solutions/ch15/fs/read.mjs create mode 100644 solutions/ch15/task_list/index.html create mode 100644 solutions/ch15/task_list/task_list.css create mode 100644 solutions/ch15/task_list/task_list.js create mode 100644 solutions/ch15/task_list_api/data.mjs create mode 100644 solutions/ch15/task_list_api/index.mjs create mode 100644 solutions/ch15/task_list_api/node_modules/.bin/mime create mode 100644 solutions/ch15/task_list_api/node_modules/.bin/mime.cmd create mode 100644 solutions/ch15/task_list_api/node_modules/.bin/mime.ps1 create mode 100644 solutions/ch15/task_list_api/node_modules/.package-lock.json create mode 100644 solutions/ch15/task_list_api/node_modules/accepts/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/accepts/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/accepts/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/accepts/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/accepts/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/array-flatten/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/array-flatten/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/array-flatten/array-flatten.js create mode 100644 solutions/ch15/task_list_api/node_modules/array-flatten/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/body-parser/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/body-parser/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/body-parser/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/body-parser/SECURITY.md create mode 100644 solutions/ch15/task_list_api/node_modules/body-parser/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/body-parser/lib/read.js create mode 100644 solutions/ch15/task_list_api/node_modules/body-parser/lib/types/json.js create mode 100644 solutions/ch15/task_list_api/node_modules/body-parser/lib/types/raw.js create mode 100644 solutions/ch15/task_list_api/node_modules/body-parser/lib/types/text.js create mode 100644 solutions/ch15/task_list_api/node_modules/body-parser/lib/types/urlencoded.js create mode 100644 solutions/ch15/task_list_api/node_modules/body-parser/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/bytes/History.md create mode 100644 solutions/ch15/task_list_api/node_modules/bytes/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/bytes/Readme.md create mode 100644 solutions/ch15/task_list_api/node_modules/bytes/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/bytes/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/call-bind/.eslintignore create mode 100644 solutions/ch15/task_list_api/node_modules/call-bind/.eslintrc create mode 100644 solutions/ch15/task_list_api/node_modules/call-bind/.github/FUNDING.yml create mode 100644 solutions/ch15/task_list_api/node_modules/call-bind/.nycrc create mode 100644 solutions/ch15/task_list_api/node_modules/call-bind/CHANGELOG.md create mode 100644 solutions/ch15/task_list_api/node_modules/call-bind/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/call-bind/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/call-bind/callBound.js create mode 100644 solutions/ch15/task_list_api/node_modules/call-bind/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/call-bind/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/call-bind/test/callBound.js create mode 100644 solutions/ch15/task_list_api/node_modules/call-bind/test/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/content-disposition/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/content-disposition/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/content-disposition/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/content-disposition/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/content-disposition/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/content-type/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/content-type/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/content-type/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/content-type/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/content-type/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/cookie-signature/.npmignore create mode 100644 solutions/ch15/task_list_api/node_modules/cookie-signature/History.md create mode 100644 solutions/ch15/task_list_api/node_modules/cookie-signature/Readme.md create mode 100644 solutions/ch15/task_list_api/node_modules/cookie-signature/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/cookie-signature/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/cookie/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/cookie/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/cookie/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/cookie/SECURITY.md create mode 100644 solutions/ch15/task_list_api/node_modules/cookie/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/cookie/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/cors/CONTRIBUTING.md create mode 100644 solutions/ch15/task_list_api/node_modules/cors/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/cors/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/cors/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/cors/lib/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/cors/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/debug/.coveralls.yml create mode 100644 solutions/ch15/task_list_api/node_modules/debug/.eslintrc create mode 100644 solutions/ch15/task_list_api/node_modules/debug/.npmignore create mode 100644 solutions/ch15/task_list_api/node_modules/debug/.travis.yml create mode 100644 solutions/ch15/task_list_api/node_modules/debug/CHANGELOG.md create mode 100644 solutions/ch15/task_list_api/node_modules/debug/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/debug/Makefile create mode 100644 solutions/ch15/task_list_api/node_modules/debug/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/debug/component.json create mode 100644 solutions/ch15/task_list_api/node_modules/debug/karma.conf.js create mode 100644 solutions/ch15/task_list_api/node_modules/debug/node.js create mode 100644 solutions/ch15/task_list_api/node_modules/debug/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/debug/src/browser.js create mode 100644 solutions/ch15/task_list_api/node_modules/debug/src/debug.js create mode 100644 solutions/ch15/task_list_api/node_modules/debug/src/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/debug/src/inspector-log.js create mode 100644 solutions/ch15/task_list_api/node_modules/debug/src/node.js create mode 100644 solutions/ch15/task_list_api/node_modules/define-data-property/.eslintrc create mode 100644 solutions/ch15/task_list_api/node_modules/define-data-property/.github/FUNDING.yml create mode 100644 solutions/ch15/task_list_api/node_modules/define-data-property/.nycrc create mode 100644 solutions/ch15/task_list_api/node_modules/define-data-property/CHANGELOG.md create mode 100644 solutions/ch15/task_list_api/node_modules/define-data-property/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/define-data-property/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/define-data-property/index.d.ts create mode 100644 solutions/ch15/task_list_api/node_modules/define-data-property/index.d.ts.map create mode 100644 solutions/ch15/task_list_api/node_modules/define-data-property/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/define-data-property/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/define-data-property/test/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/define-data-property/tsconfig.json create mode 100644 solutions/ch15/task_list_api/node_modules/depd/History.md create mode 100644 solutions/ch15/task_list_api/node_modules/depd/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/depd/Readme.md create mode 100644 solutions/ch15/task_list_api/node_modules/depd/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/depd/lib/browser/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/depd/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/destroy/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/destroy/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/destroy/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/destroy/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/ee-first/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/ee-first/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/ee-first/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/ee-first/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/encodeurl/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/encodeurl/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/encodeurl/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/encodeurl/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/encodeurl/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/escape-html/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/escape-html/Readme.md create mode 100644 solutions/ch15/task_list_api/node_modules/escape-html/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/escape-html/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/etag/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/etag/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/etag/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/etag/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/etag/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/express/History.md create mode 100644 solutions/ch15/task_list_api/node_modules/express/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/express/Readme.md create mode 100644 solutions/ch15/task_list_api/node_modules/express/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/express/lib/application.js create mode 100644 solutions/ch15/task_list_api/node_modules/express/lib/express.js create mode 100644 solutions/ch15/task_list_api/node_modules/express/lib/middleware/init.js create mode 100644 solutions/ch15/task_list_api/node_modules/express/lib/middleware/query.js create mode 100644 solutions/ch15/task_list_api/node_modules/express/lib/request.js create mode 100644 solutions/ch15/task_list_api/node_modules/express/lib/response.js create mode 100644 solutions/ch15/task_list_api/node_modules/express/lib/router/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/express/lib/router/layer.js create mode 100644 solutions/ch15/task_list_api/node_modules/express/lib/router/route.js create mode 100644 solutions/ch15/task_list_api/node_modules/express/lib/utils.js create mode 100644 solutions/ch15/task_list_api/node_modules/express/lib/view.js create mode 100644 solutions/ch15/task_list_api/node_modules/express/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/finalhandler/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/finalhandler/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/finalhandler/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/finalhandler/SECURITY.md create mode 100644 solutions/ch15/task_list_api/node_modules/finalhandler/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/finalhandler/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/forwarded/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/forwarded/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/forwarded/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/forwarded/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/forwarded/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/fresh/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/fresh/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/fresh/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/fresh/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/fresh/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/function-bind/.eslintrc create mode 100644 solutions/ch15/task_list_api/node_modules/function-bind/.github/FUNDING.yml create mode 100644 solutions/ch15/task_list_api/node_modules/function-bind/.github/SECURITY.md create mode 100644 solutions/ch15/task_list_api/node_modules/function-bind/.nycrc create mode 100644 solutions/ch15/task_list_api/node_modules/function-bind/CHANGELOG.md create mode 100644 solutions/ch15/task_list_api/node_modules/function-bind/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/function-bind/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/function-bind/implementation.js create mode 100644 solutions/ch15/task_list_api/node_modules/function-bind/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/function-bind/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/function-bind/test/.eslintrc create mode 100644 solutions/ch15/task_list_api/node_modules/function-bind/test/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/get-intrinsic/.eslintrc create mode 100644 solutions/ch15/task_list_api/node_modules/get-intrinsic/.github/FUNDING.yml create mode 100644 solutions/ch15/task_list_api/node_modules/get-intrinsic/.nycrc create mode 100644 solutions/ch15/task_list_api/node_modules/get-intrinsic/CHANGELOG.md create mode 100644 solutions/ch15/task_list_api/node_modules/get-intrinsic/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/get-intrinsic/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/get-intrinsic/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/get-intrinsic/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/get-intrinsic/test/GetIntrinsic.js create mode 100644 solutions/ch15/task_list_api/node_modules/gopd/.eslintrc create mode 100644 solutions/ch15/task_list_api/node_modules/gopd/.github/FUNDING.yml create mode 100644 solutions/ch15/task_list_api/node_modules/gopd/CHANGELOG.md create mode 100644 solutions/ch15/task_list_api/node_modules/gopd/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/gopd/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/gopd/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/gopd/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/gopd/test/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/has-property-descriptors/.eslintrc create mode 100644 solutions/ch15/task_list_api/node_modules/has-property-descriptors/.github/FUNDING.yml create mode 100644 solutions/ch15/task_list_api/node_modules/has-property-descriptors/.nycrc create mode 100644 solutions/ch15/task_list_api/node_modules/has-property-descriptors/CHANGELOG.md create mode 100644 solutions/ch15/task_list_api/node_modules/has-property-descriptors/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/has-property-descriptors/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/has-property-descriptors/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/has-property-descriptors/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/has-property-descriptors/test/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/has-proto/.eslintrc create mode 100644 solutions/ch15/task_list_api/node_modules/has-proto/.github/FUNDING.yml create mode 100644 solutions/ch15/task_list_api/node_modules/has-proto/CHANGELOG.md create mode 100644 solutions/ch15/task_list_api/node_modules/has-proto/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/has-proto/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/has-proto/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/has-proto/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/has-proto/test/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/has-symbols/.eslintrc create mode 100644 solutions/ch15/task_list_api/node_modules/has-symbols/.github/FUNDING.yml create mode 100644 solutions/ch15/task_list_api/node_modules/has-symbols/.nycrc create mode 100644 solutions/ch15/task_list_api/node_modules/has-symbols/CHANGELOG.md create mode 100644 solutions/ch15/task_list_api/node_modules/has-symbols/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/has-symbols/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/has-symbols/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/has-symbols/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/has-symbols/shams.js create mode 100644 solutions/ch15/task_list_api/node_modules/has-symbols/test/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/has-symbols/test/shams/core-js.js create mode 100644 solutions/ch15/task_list_api/node_modules/has-symbols/test/shams/get-own-property-symbols.js create mode 100644 solutions/ch15/task_list_api/node_modules/has-symbols/test/tests.js create mode 100644 solutions/ch15/task_list_api/node_modules/hasown/.eslintrc create mode 100644 solutions/ch15/task_list_api/node_modules/hasown/.github/FUNDING.yml create mode 100644 solutions/ch15/task_list_api/node_modules/hasown/.nycrc create mode 100644 solutions/ch15/task_list_api/node_modules/hasown/CHANGELOG.md create mode 100644 solutions/ch15/task_list_api/node_modules/hasown/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/hasown/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/hasown/index.d.ts create mode 100644 solutions/ch15/task_list_api/node_modules/hasown/index.d.ts.map create mode 100644 solutions/ch15/task_list_api/node_modules/hasown/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/hasown/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/hasown/tsconfig.json create mode 100644 solutions/ch15/task_list_api/node_modules/http-errors/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/http-errors/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/http-errors/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/http-errors/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/http-errors/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/iconv-lite/Changelog.md create mode 100644 solutions/ch15/task_list_api/node_modules/iconv-lite/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/iconv-lite/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/iconv-lite/encodings/dbcs-codec.js create mode 100644 solutions/ch15/task_list_api/node_modules/iconv-lite/encodings/dbcs-data.js create mode 100644 solutions/ch15/task_list_api/node_modules/iconv-lite/encodings/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/iconv-lite/encodings/internal.js create mode 100644 solutions/ch15/task_list_api/node_modules/iconv-lite/encodings/sbcs-codec.js create mode 100644 solutions/ch15/task_list_api/node_modules/iconv-lite/encodings/sbcs-data-generated.js create mode 100644 solutions/ch15/task_list_api/node_modules/iconv-lite/encodings/sbcs-data.js create mode 100644 solutions/ch15/task_list_api/node_modules/iconv-lite/encodings/tables/big5-added.json create mode 100644 solutions/ch15/task_list_api/node_modules/iconv-lite/encodings/tables/cp936.json create mode 100644 solutions/ch15/task_list_api/node_modules/iconv-lite/encodings/tables/cp949.json create mode 100644 solutions/ch15/task_list_api/node_modules/iconv-lite/encodings/tables/cp950.json create mode 100644 solutions/ch15/task_list_api/node_modules/iconv-lite/encodings/tables/eucjp.json create mode 100644 solutions/ch15/task_list_api/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json create mode 100644 solutions/ch15/task_list_api/node_modules/iconv-lite/encodings/tables/gbk-added.json create mode 100644 solutions/ch15/task_list_api/node_modules/iconv-lite/encodings/tables/shiftjis.json create mode 100644 solutions/ch15/task_list_api/node_modules/iconv-lite/encodings/utf16.js create mode 100644 solutions/ch15/task_list_api/node_modules/iconv-lite/encodings/utf7.js create mode 100644 solutions/ch15/task_list_api/node_modules/iconv-lite/lib/bom-handling.js create mode 100644 solutions/ch15/task_list_api/node_modules/iconv-lite/lib/extend-node.js create mode 100644 solutions/ch15/task_list_api/node_modules/iconv-lite/lib/index.d.ts create mode 100644 solutions/ch15/task_list_api/node_modules/iconv-lite/lib/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/iconv-lite/lib/streams.js create mode 100644 solutions/ch15/task_list_api/node_modules/iconv-lite/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/inherits/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/inherits/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/inherits/inherits.js create mode 100644 solutions/ch15/task_list_api/node_modules/inherits/inherits_browser.js create mode 100644 solutions/ch15/task_list_api/node_modules/inherits/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/ipaddr.js/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/ipaddr.js/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/ipaddr.js/ipaddr.min.js create mode 100644 solutions/ch15/task_list_api/node_modules/ipaddr.js/lib/ipaddr.js create mode 100644 solutions/ch15/task_list_api/node_modules/ipaddr.js/lib/ipaddr.js.d.ts create mode 100644 solutions/ch15/task_list_api/node_modules/ipaddr.js/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/media-typer/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/media-typer/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/media-typer/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/media-typer/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/media-typer/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/merge-descriptors/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/merge-descriptors/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/merge-descriptors/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/merge-descriptors/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/merge-descriptors/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/methods/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/methods/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/methods/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/methods/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/methods/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/mime-db/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/mime-db/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/mime-db/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/mime-db/db.json create mode 100644 solutions/ch15/task_list_api/node_modules/mime-db/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/mime-db/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/mime-types/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/mime-types/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/mime-types/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/mime-types/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/mime-types/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/mime/.npmignore create mode 100644 solutions/ch15/task_list_api/node_modules/mime/CHANGELOG.md create mode 100644 solutions/ch15/task_list_api/node_modules/mime/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/mime/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/mime/cli.js create mode 100644 solutions/ch15/task_list_api/node_modules/mime/mime.js create mode 100644 solutions/ch15/task_list_api/node_modules/mime/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/mime/src/build.js create mode 100644 solutions/ch15/task_list_api/node_modules/mime/src/test.js create mode 100644 solutions/ch15/task_list_api/node_modules/mime/types.json create mode 100644 solutions/ch15/task_list_api/node_modules/ms/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/ms/license.md create mode 100644 solutions/ch15/task_list_api/node_modules/ms/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/ms/readme.md create mode 100644 solutions/ch15/task_list_api/node_modules/negotiator/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/negotiator/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/negotiator/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/negotiator/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/negotiator/lib/charset.js create mode 100644 solutions/ch15/task_list_api/node_modules/negotiator/lib/encoding.js create mode 100644 solutions/ch15/task_list_api/node_modules/negotiator/lib/language.js create mode 100644 solutions/ch15/task_list_api/node_modules/negotiator/lib/mediaType.js create mode 100644 solutions/ch15/task_list_api/node_modules/negotiator/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/object-assign/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/object-assign/license create mode 100644 solutions/ch15/task_list_api/node_modules/object-assign/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/object-assign/readme.md create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/.eslintrc create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/.github/FUNDING.yml create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/.nycrc create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/CHANGELOG.md create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/example/all.js create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/example/circular.js create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/example/fn.js create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/example/inspect.js create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/package-support.json create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/readme.markdown create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/test-core-js.js create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/test/bigint.js create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/test/browser/dom.js create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/test/circular.js create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/test/deep.js create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/test/element.js create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/test/err.js create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/test/fakes.js create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/test/fn.js create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/test/global.js create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/test/has.js create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/test/holes.js create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/test/indent-option.js create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/test/inspect.js create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/test/lowbyte.js create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/test/number.js create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/test/quoteStyle.js create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/test/toStringTag.js create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/test/undef.js create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/test/values.js create mode 100644 solutions/ch15/task_list_api/node_modules/object-inspect/util.inspect.js create mode 100644 solutions/ch15/task_list_api/node_modules/on-finished/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/on-finished/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/on-finished/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/on-finished/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/on-finished/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/parseurl/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/parseurl/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/parseurl/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/parseurl/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/parseurl/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/path-to-regexp/History.md create mode 100644 solutions/ch15/task_list_api/node_modules/path-to-regexp/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/path-to-regexp/Readme.md create mode 100644 solutions/ch15/task_list_api/node_modules/path-to-regexp/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/path-to-regexp/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/proxy-addr/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/proxy-addr/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/proxy-addr/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/proxy-addr/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/proxy-addr/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/qs/.editorconfig create mode 100644 solutions/ch15/task_list_api/node_modules/qs/.eslintrc create mode 100644 solutions/ch15/task_list_api/node_modules/qs/.github/FUNDING.yml create mode 100644 solutions/ch15/task_list_api/node_modules/qs/.nycrc create mode 100644 solutions/ch15/task_list_api/node_modules/qs/CHANGELOG.md create mode 100644 solutions/ch15/task_list_api/node_modules/qs/LICENSE.md create mode 100644 solutions/ch15/task_list_api/node_modules/qs/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/qs/dist/qs.js create mode 100644 solutions/ch15/task_list_api/node_modules/qs/lib/formats.js create mode 100644 solutions/ch15/task_list_api/node_modules/qs/lib/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/qs/lib/parse.js create mode 100644 solutions/ch15/task_list_api/node_modules/qs/lib/stringify.js create mode 100644 solutions/ch15/task_list_api/node_modules/qs/lib/utils.js create mode 100644 solutions/ch15/task_list_api/node_modules/qs/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/qs/test/parse.js create mode 100644 solutions/ch15/task_list_api/node_modules/qs/test/stringify.js create mode 100644 solutions/ch15/task_list_api/node_modules/qs/test/utils.js create mode 100644 solutions/ch15/task_list_api/node_modules/range-parser/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/range-parser/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/range-parser/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/range-parser/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/range-parser/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/raw-body/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/raw-body/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/raw-body/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/raw-body/SECURITY.md create mode 100644 solutions/ch15/task_list_api/node_modules/raw-body/index.d.ts create mode 100644 solutions/ch15/task_list_api/node_modules/raw-body/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/raw-body/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/safe-buffer/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/safe-buffer/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/safe-buffer/index.d.ts create mode 100644 solutions/ch15/task_list_api/node_modules/safe-buffer/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/safe-buffer/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/safer-buffer/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/safer-buffer/Porting-Buffer.md create mode 100644 solutions/ch15/task_list_api/node_modules/safer-buffer/Readme.md create mode 100644 solutions/ch15/task_list_api/node_modules/safer-buffer/dangerous.js create mode 100644 solutions/ch15/task_list_api/node_modules/safer-buffer/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/safer-buffer/safer.js create mode 100644 solutions/ch15/task_list_api/node_modules/safer-buffer/tests.js create mode 100644 solutions/ch15/task_list_api/node_modules/send/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/send/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/send/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/send/SECURITY.md create mode 100644 solutions/ch15/task_list_api/node_modules/send/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/send/node_modules/ms/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/send/node_modules/ms/license.md create mode 100644 solutions/ch15/task_list_api/node_modules/send/node_modules/ms/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/send/node_modules/ms/readme.md create mode 100644 solutions/ch15/task_list_api/node_modules/send/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/serve-static/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/serve-static/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/serve-static/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/serve-static/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/serve-static/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/set-function-length/.eslintrc create mode 100644 solutions/ch15/task_list_api/node_modules/set-function-length/.github/FUNDING.yml create mode 100644 solutions/ch15/task_list_api/node_modules/set-function-length/.nycrc create mode 100644 solutions/ch15/task_list_api/node_modules/set-function-length/CHANGELOG.md create mode 100644 solutions/ch15/task_list_api/node_modules/set-function-length/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/set-function-length/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/set-function-length/env.js create mode 100644 solutions/ch15/task_list_api/node_modules/set-function-length/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/set-function-length/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/setprototypeof/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/setprototypeof/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/setprototypeof/index.d.ts create mode 100644 solutions/ch15/task_list_api/node_modules/setprototypeof/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/setprototypeof/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/setprototypeof/test/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/side-channel/.eslintignore create mode 100644 solutions/ch15/task_list_api/node_modules/side-channel/.eslintrc create mode 100644 solutions/ch15/task_list_api/node_modules/side-channel/.github/FUNDING.yml create mode 100644 solutions/ch15/task_list_api/node_modules/side-channel/.nycrc create mode 100644 solutions/ch15/task_list_api/node_modules/side-channel/CHANGELOG.md create mode 100644 solutions/ch15/task_list_api/node_modules/side-channel/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/side-channel/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/side-channel/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/side-channel/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/side-channel/test/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/statuses/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/statuses/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/statuses/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/statuses/codes.json create mode 100644 solutions/ch15/task_list_api/node_modules/statuses/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/statuses/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/toidentifier/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/toidentifier/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/toidentifier/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/toidentifier/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/toidentifier/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/type-is/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/type-is/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/type-is/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/type-is/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/type-is/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/unpipe/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/unpipe/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/unpipe/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/unpipe/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/unpipe/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/utils-merge/.npmignore create mode 100644 solutions/ch15/task_list_api/node_modules/utils-merge/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/utils-merge/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/utils-merge/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/utils-merge/package.json create mode 100644 solutions/ch15/task_list_api/node_modules/vary/HISTORY.md create mode 100644 solutions/ch15/task_list_api/node_modules/vary/LICENSE create mode 100644 solutions/ch15/task_list_api/node_modules/vary/README.md create mode 100644 solutions/ch15/task_list_api/node_modules/vary/index.js create mode 100644 solutions/ch15/task_list_api/node_modules/vary/package.json create mode 100644 solutions/ch15/task_list_api/package.json create mode 100644 solutions/ch15/task_list_api/tasks.txt create mode 100644 solutions/ch15/test_scores/index.js create mode 100644 solutions/ch16/logo/index.html create mode 100644 solutions/ch16/logo/logo.js create mode 100644 solutions/ch16/logo/logo.png create mode 100644 solutions/ch16/logo/main.css create mode 100644 solutions/ch16/pizza_order/index.html create mode 100644 solutions/ch16/pizza_order/logo.png create mode 100644 solutions/ch16/pizza_order/main.css create mode 100644 solutions/ch16/pizza_order/pizza_order.js create mode 100644 solutions/ch16/screen_saver/index.html create mode 100644 solutions/ch16/screen_saver/main.css create mode 100644 solutions/ch16/screen_saver/screen_saver.js diff --git a/book_apps/ch01/die_roller/index.html b/book_apps/ch01/die_roller/index.html new file mode 100644 index 0000000..d358458 --- /dev/null +++ b/book_apps/ch01/die_roller/index.html @@ -0,0 +1,22 @@ + + +
+Click Reload to roll again!
+ + \ No newline at end of file diff --git a/book_apps/ch01/die_roller/main.css b/book_apps/ch01/die_roller/main.css new file mode 100644 index 0000000..3684cc6 --- /dev/null +++ b/book_apps/ch01/die_roller/main.css @@ -0,0 +1,12 @@ +body { + font-family: Arial, Helvetica, sans-serif; + background-color: white; + margin: 1em auto; + width: 600px; + padding: 0 2em 0; + border: 1px solid black; + border-radius: 1em; +} +h1 { + color: cornflowerblue; +} diff --git a/book_apps/ch01/email_list/add.html b/book_apps/ch01/email_list/add.html new file mode 100644 index 0000000..44c079e --- /dev/null +++ b/book_apps/ch01/email_list/add.html @@ -0,0 +1,12 @@ + + + + + +Click Reload to play again.
+ + + \ No newline at end of file diff --git a/book_apps/ch03/magic_eight_ball/index.html b/book_apps/ch03/magic_eight_ball/index.html new file mode 100644 index 0000000..28541ff --- /dev/null +++ b/book_apps/ch03/magic_eight_ball/index.html @@ -0,0 +1,13 @@ + + + + + +Click Reload to ask another question.
+ + + \ No newline at end of file diff --git a/book_apps/ch03/magic_eight_ball/magic_eight_ball.js b/book_apps/ch03/magic_eight_ball/magic_eight_ball.js new file mode 100644 index 0000000..05502ad --- /dev/null +++ b/book_apps/ch03/magic_eight_ball/magic_eight_ball.js @@ -0,0 +1,48 @@ +"use strict"; + +// get user's question +const question = prompt("Please enter a yes or no question.") + +if (question) { + let answer = ""; + + // get a random number between 1 and 9 + const num = Math.ceil(Math.random() * 9); + + switch (num) { + case 1: + answer = "It is certain."; + break; + case 2: + answer = "Reply hazy, try again."; + break; + case 3: + answer = "Don't count on it."; + break; + case 4: + answer = "It is decidedly so."; + break; + case 5: + answer = "Without a doubt."; + break; + case 6: + answer = "Ask again later."; + break; + case 7: + answer = "My sources say no."; + break; + case 8: + answer = "Most likely."; + break; + case 9: + answer = "Signs point to yes."; + break; + default: + answer = "Something went wrong."; + break; + } + alert(question + "\n" + + answer); +} else { + alert("You didn't enter a question."); +} \ No newline at end of file diff --git a/book_apps/ch04/bio/bio.js b/book_apps/ch04/bio/bio.js new file mode 100644 index 0000000..1f40497 --- /dev/null +++ b/book_apps/ch04/bio/bio.js @@ -0,0 +1,29 @@ +"use strict"; + +// get name, dob, and colors and split into arrays +const names = prompt("Enter your full name").split(" "); +const dob = prompt("Enter your DOB in mm-dd-yyyy format").split("-"); +const colors = prompt("Enter your favorite colors, separated by commas") + .split(","); + +// capitalize each name +for (let i in names) { + const firstLetter = names[i].substring(0, 1).toUpperCase(); + const restOfName = names[i].substring(1).toLowerCase(); + names[i] = firstLetter + restOfName; +} + +// trim any spaces from colors +for (let i in colors) { + colors[i] = colors[i].trim(); +} + +// create a display string for the colors +const firstColors = colors.slice(0, -1); +const lastColor = colors.at(-1); +const colorString = `${firstColors.join(", ")} and ${lastColor}`; + +// display bio +alert(`Hello, my name is ${names.join(" ")}. +I was born in ${dob[2]}. +I have ${colors.length} favorite colors: ${colorString}.`); diff --git a/book_apps/ch04/bio/index.html b/book_apps/ch04/bio/index.html new file mode 100644 index 0000000..fe7651a --- /dev/null +++ b/book_apps/ch04/bio/index.html @@ -0,0 +1,10 @@ + + + + +It's between 1 and 10.
+ + + +5~G0Y8fJKp87uP%})_EL2#29$>R
z6{|A5H#dU#PFvMPSHNiJQuC|s4S^LZaJZLDmITR;mrV^6HDzx-5K4}fRTm8+g76j(
zea4L849WBl6S1_+#<*#@;~yQo?(?l|Cd3az57$S>8RoM2Mi>eCN>)ED>VR?Zh!nf2
z5bnM)fg)llbY0nu89#qLm`FL4al==Y78tK#CmA4s;@kDGlFP2JOeKG{yJqVrwzgQJ
zc?J~)5V-_BQ5W2vD*_>T?w=DdkLI!KIkDhNpm(AW`tP_Yj4+p3ScMa=9UOD8{PvVQ
z m_7?y|$8~fz8)4}(H4jHSc?q@n-z6t;>
zIUN$rRP~68;AXcTA+md-dluS%h%(`WRc1LA5VB3j&`&cOT gzIU$Ja2lfj{m
zlo*1o-NOPu>SOm8=?doEzb5tlnylJw*>r}pmk%|S+dZHBea5D58qkb3xoJ>U*qN85
zH817$@IFNcHXdla-
%c`qzUV0o5B{Z_1^PjTxQ)UD~(^P99rMPofLAcS`Dw5T7-?2^XvdS-F
zZ1>2482r~xE$<}rs;fN{ah`_;FPtU?Mfv9=yt@VjIy2C>X^!Xgrr3*mOK|_sL`_bN
z@7{7h!?xodM;G+eMcGvxnXk>j!zTP65@2I(~m@g3k
z
xG_ImRK)q@vPOSdudn$&E2vIL>LkbBWQ^2hfho7fdS&IF+
zUAksH9rV$UEJfCciC~Fp+EKdBE|ET2oU;%iETy(yXDm>u3fwru;TB|nwoj*1iQI2L
z>5{+dXeYtXRH4uV*FM&ZLg#Da&sW|}kdOz;!sl!a@eE(O6ps8M?GQ(9{t}@X=hPQY
z)D=%?PHxZujy?f@81oo=gfcdFQJxMCI+lxi$#S3pi|G5E#@U_zs16&e2JC+MGv!no
zOA7Ea>}k)-SiHd!lu+wEU?&@L?6@a
)yG!>?}1
zy86Pp!VQBluS%@<%hbNk>m%~|uR-&tTLMfmEpFoH7)thiYx$h8Tt{uv3zAul7Cwa{
z4bW5KM;u>3@;gRJ--L%=thxc6dv27Gi>ki4o)Is|8#|i#;!kj&WtP)P*(csfr2uF2
z1{ED5#Co}i6Lru$7ntIX%oeV$*vp?uv5%)pCzo4vo0{&f_+FFS2HcODV1kSV#o14U
zgd=^(Gcw;CxTe8w`D*70Fd%Fo*+@-AbH8<&<%Ov`?gcY><>*5l+?PdiP&edXqU&d<
z4z(_74Vb=GxGSqbHNLH5Q=*6Z(x66au)v4KiPnj5orCIgo{JHN^ks~bcg~yD(`1E6
z_lNlV$PmRbpH?U)^BaIQts6}QUB>Ju2j7*{I*7Zzyz13djxV`WS<*&4w}6E_*rkdN
zAgVi@$zuDc=Gwssd!**-i&y_LX9cYV#+*Q?2iv~K9
zaoan-#h*-wPv#!4-Zi#7%LAOg)~93lp@oC%W6|3zjV?~5Lcz=J1#2{nX55-ZKa*h-
z*TdTT*N5^OHUPNqQc>KXZmWnOpTae8*`?7