├── .idea ├── .gitignore ├── Courseware-Backend-Go-2024.iml ├── modules.xml └── vcs.xml ├── LICENSE ├── README.md ├── lesson00 ├── README.md └── img │ ├── 01.png │ ├── 02.png │ ├── 03.png │ ├── 04.jpg │ ├── 05.png │ ├── 06.png │ ├── 07.png │ ├── 08.png │ └── 09.png ├── lesson01 └── README.md ├── lesson02 └── README.md ├── lesson03 └── README.md ├── lesson04 ├── imgs │ ├── img01.png │ └── img02.png └── 第四节课.md ├── lesson05 └── README.md ├── lesson06 ├── README.md └── img │ ├── img.png │ ├── img1.png │ ├── img2.png │ ├── img3.png │ ├── img4.png │ ├── img5.png │ ├── img6.jpg │ ├── img7.jpg │ └── img8.jpg ├── lesson07 └── README.md ├── lesson08 ├── imgs │ ├── 01.png │ ├── 02.png │ └── 03.png └── 第八节课.md ├── lesson09 └── README.md ├── lesson10 ├── README.md ├── lab2 │ ├── .dockerignore │ ├── Dockerfile │ ├── app.js │ ├── node_modules │ │ ├── .bin │ │ │ ├── mime │ │ │ ├── mime.cmd │ │ │ └── mime.ps1 │ │ ├── .package-lock.json │ │ ├── accepts │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── array-flatten │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── array-flatten.js │ │ │ └── package.json │ │ ├── body-parser │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── SECURITY.md │ │ │ ├── index.js │ │ │ ├── lib │ │ │ │ ├── read.js │ │ │ │ └── types │ │ │ │ │ ├── json.js │ │ │ │ │ ├── raw.js │ │ │ │ │ ├── text.js │ │ │ │ │ └── urlencoded.js │ │ │ └── package.json │ │ ├── bytes │ │ │ ├── History.md │ │ │ ├── LICENSE │ │ │ ├── Readme.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── call-bind-apply-helpers │ │ │ ├── .eslintrc │ │ │ ├── .github │ │ │ │ └── FUNDING.yml │ │ │ ├── .nycrc │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── actualApply.d.ts │ │ │ ├── actualApply.js │ │ │ ├── applyBind.d.ts │ │ │ ├── applyBind.js │ │ │ ├── functionApply.d.ts │ │ │ ├── functionApply.js │ │ │ ├── functionCall.d.ts │ │ │ ├── functionCall.js │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── package.json │ │ │ ├── reflectApply.d.ts │ │ │ ├── reflectApply.js │ │ │ ├── test │ │ │ │ └── index.js │ │ │ └── tsconfig.json │ │ ├── call-bound │ │ │ ├── .eslintrc │ │ │ ├── .github │ │ │ │ └── FUNDING.yml │ │ │ ├── .nycrc │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── package.json │ │ │ ├── test │ │ │ │ └── index.js │ │ │ └── tsconfig.json │ │ ├── content-disposition │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── content-type │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── cookie-signature │ │ │ ├── .npmignore │ │ │ ├── History.md │ │ │ ├── Readme.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── cookie │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── SECURITY.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── debug │ │ │ ├── .coveralls.yml │ │ │ ├── .eslintrc │ │ │ ├── .npmignore │ │ │ ├── .travis.yml │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── component.json │ │ │ ├── karma.conf.js │ │ │ ├── node.js │ │ │ ├── package.json │ │ │ └── src │ │ │ │ ├── browser.js │ │ │ │ ├── debug.js │ │ │ │ ├── index.js │ │ │ │ ├── inspector-log.js │ │ │ │ └── node.js │ │ ├── depd │ │ │ ├── History.md │ │ │ ├── LICENSE │ │ │ ├── Readme.md │ │ │ ├── index.js │ │ │ ├── lib │ │ │ │ └── browser │ │ │ │ │ └── index.js │ │ │ └── package.json │ │ ├── destroy │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── dunder-proto │ │ │ ├── .eslintrc │ │ │ ├── .github │ │ │ │ └── FUNDING.yml │ │ │ ├── .nycrc │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── get.d.ts │ │ │ ├── get.js │ │ │ ├── package.json │ │ │ ├── set.d.ts │ │ │ ├── set.js │ │ │ ├── test │ │ │ │ ├── get.js │ │ │ │ ├── index.js │ │ │ │ └── set.js │ │ │ └── tsconfig.json │ │ ├── ee-first │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── encodeurl │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── es-define-property │ │ │ ├── .eslintrc │ │ │ ├── .github │ │ │ │ └── FUNDING.yml │ │ │ ├── .nycrc │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── package.json │ │ │ ├── test │ │ │ │ └── index.js │ │ │ └── tsconfig.json │ │ ├── es-errors │ │ │ ├── .eslintrc │ │ │ ├── .github │ │ │ │ └── FUNDING.yml │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── eval.d.ts │ │ │ ├── eval.js │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── package.json │ │ │ ├── range.d.ts │ │ │ ├── range.js │ │ │ ├── ref.d.ts │ │ │ ├── ref.js │ │ │ ├── syntax.d.ts │ │ │ ├── syntax.js │ │ │ ├── test │ │ │ │ └── index.js │ │ │ ├── tsconfig.json │ │ │ ├── type.d.ts │ │ │ ├── type.js │ │ │ ├── uri.d.ts │ │ │ └── uri.js │ │ ├── es-object-atoms │ │ │ ├── .eslintrc │ │ │ ├── .github │ │ │ │ └── FUNDING.yml │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── RequireObjectCoercible.d.ts │ │ │ ├── RequireObjectCoercible.js │ │ │ ├── ToObject.d.ts │ │ │ ├── ToObject.js │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── package.json │ │ │ ├── test │ │ │ │ └── index.js │ │ │ └── tsconfig.json │ │ ├── escape-html │ │ │ ├── LICENSE │ │ │ ├── Readme.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── etag │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── express │ │ │ ├── History.md │ │ │ ├── LICENSE │ │ │ ├── Readme.md │ │ │ ├── index.js │ │ │ ├── lib │ │ │ │ ├── application.js │ │ │ │ ├── express.js │ │ │ │ ├── middleware │ │ │ │ │ ├── init.js │ │ │ │ │ └── query.js │ │ │ │ ├── request.js │ │ │ │ ├── response.js │ │ │ │ ├── router │ │ │ │ │ ├── index.js │ │ │ │ │ ├── layer.js │ │ │ │ │ └── route.js │ │ │ │ ├── utils.js │ │ │ │ └── view.js │ │ │ └── package.json │ │ ├── finalhandler │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── SECURITY.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── forwarded │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── fresh │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── function-bind │ │ │ ├── .eslintrc │ │ │ ├── .github │ │ │ │ ├── FUNDING.yml │ │ │ │ └── SECURITY.md │ │ │ ├── .nycrc │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── implementation.js │ │ │ ├── index.js │ │ │ ├── package.json │ │ │ └── test │ │ │ │ ├── .eslintrc │ │ │ │ └── index.js │ │ ├── get-intrinsic │ │ │ ├── .eslintrc │ │ │ ├── .github │ │ │ │ └── FUNDING.yml │ │ │ ├── .nycrc │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ ├── package.json │ │ │ └── test │ │ │ │ └── GetIntrinsic.js │ │ ├── gopd │ │ │ ├── .eslintrc │ │ │ ├── .github │ │ │ │ └── FUNDING.yml │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── gOPD.d.ts │ │ │ ├── gOPD.js │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── package.json │ │ │ ├── test │ │ │ │ └── index.js │ │ │ └── tsconfig.json │ │ ├── has-symbols │ │ │ ├── .eslintrc │ │ │ ├── .github │ │ │ │ └── FUNDING.yml │ │ │ ├── .nycrc │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── package.json │ │ │ ├── shams.d.ts │ │ │ ├── shams.js │ │ │ ├── test │ │ │ │ ├── index.js │ │ │ │ ├── shams │ │ │ │ │ ├── core-js.js │ │ │ │ │ └── get-own-property-symbols.js │ │ │ │ └── tests.js │ │ │ └── tsconfig.json │ │ ├── hasown │ │ │ ├── .eslintrc │ │ │ ├── .github │ │ │ │ └── FUNDING.yml │ │ │ ├── .nycrc │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── package.json │ │ │ └── tsconfig.json │ │ ├── http-errors │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── iconv-lite │ │ │ ├── Changelog.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── encodings │ │ │ │ ├── dbcs-codec.js │ │ │ │ ├── dbcs-data.js │ │ │ │ ├── index.js │ │ │ │ ├── internal.js │ │ │ │ ├── sbcs-codec.js │ │ │ │ ├── sbcs-data-generated.js │ │ │ │ ├── sbcs-data.js │ │ │ │ ├── tables │ │ │ │ │ ├── big5-added.json │ │ │ │ │ ├── cp936.json │ │ │ │ │ ├── cp949.json │ │ │ │ │ ├── cp950.json │ │ │ │ │ ├── eucjp.json │ │ │ │ │ ├── gb18030-ranges.json │ │ │ │ │ ├── gbk-added.json │ │ │ │ │ └── shiftjis.json │ │ │ │ ├── utf16.js │ │ │ │ └── utf7.js │ │ │ ├── lib │ │ │ │ ├── bom-handling.js │ │ │ │ ├── extend-node.js │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ └── streams.js │ │ │ └── package.json │ │ ├── inherits │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── inherits.js │ │ │ ├── inherits_browser.js │ │ │ └── package.json │ │ ├── ipaddr.js │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── ipaddr.min.js │ │ │ ├── lib │ │ │ │ ├── ipaddr.js │ │ │ │ └── ipaddr.js.d.ts │ │ │ └── package.json │ │ ├── math-intrinsics │ │ │ ├── .eslintrc │ │ │ ├── .github │ │ │ │ └── FUNDING.yml │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── abs.d.ts │ │ │ ├── abs.js │ │ │ ├── constants │ │ │ │ ├── maxArrayLength.d.ts │ │ │ │ ├── maxArrayLength.js │ │ │ │ ├── maxSafeInteger.d.ts │ │ │ │ ├── maxSafeInteger.js │ │ │ │ ├── maxValue.d.ts │ │ │ │ └── maxValue.js │ │ │ ├── floor.d.ts │ │ │ ├── floor.js │ │ │ ├── isFinite.d.ts │ │ │ ├── isFinite.js │ │ │ ├── isInteger.d.ts │ │ │ ├── isInteger.js │ │ │ ├── isNaN.d.ts │ │ │ ├── isNaN.js │ │ │ ├── isNegativeZero.d.ts │ │ │ ├── isNegativeZero.js │ │ │ ├── max.d.ts │ │ │ ├── max.js │ │ │ ├── min.d.ts │ │ │ ├── min.js │ │ │ ├── mod.d.ts │ │ │ ├── mod.js │ │ │ ├── package.json │ │ │ ├── pow.d.ts │ │ │ ├── pow.js │ │ │ ├── round.d.ts │ │ │ ├── round.js │ │ │ ├── sign.d.ts │ │ │ ├── sign.js │ │ │ ├── test │ │ │ │ └── index.js │ │ │ └── tsconfig.json │ │ ├── media-typer │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── merge-descriptors │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── methods │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── mime-db │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── db.json │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── mime-types │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── mime │ │ │ ├── .npmignore │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── cli.js │ │ │ ├── mime.js │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── build.js │ │ │ │ └── test.js │ │ │ └── types.json │ │ ├── ms │ │ │ ├── index.js │ │ │ ├── license.md │ │ │ ├── package.json │ │ │ └── readme.md │ │ ├── negotiator │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ ├── lib │ │ │ │ ├── charset.js │ │ │ │ ├── encoding.js │ │ │ │ ├── language.js │ │ │ │ └── mediaType.js │ │ │ └── package.json │ │ ├── object-inspect │ │ │ ├── .eslintrc │ │ │ ├── .github │ │ │ │ └── FUNDING.yml │ │ │ ├── .nycrc │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── example │ │ │ │ ├── all.js │ │ │ │ ├── circular.js │ │ │ │ ├── fn.js │ │ │ │ └── inspect.js │ │ │ ├── index.js │ │ │ ├── package-support.json │ │ │ ├── package.json │ │ │ ├── readme.markdown │ │ │ ├── test-core-js.js │ │ │ ├── test │ │ │ │ ├── bigint.js │ │ │ │ ├── browser │ │ │ │ │ └── dom.js │ │ │ │ ├── circular.js │ │ │ │ ├── deep.js │ │ │ │ ├── element.js │ │ │ │ ├── err.js │ │ │ │ ├── fakes.js │ │ │ │ ├── fn.js │ │ │ │ ├── global.js │ │ │ │ ├── has.js │ │ │ │ ├── holes.js │ │ │ │ ├── indent-option.js │ │ │ │ ├── inspect.js │ │ │ │ ├── lowbyte.js │ │ │ │ ├── number.js │ │ │ │ ├── quoteStyle.js │ │ │ │ ├── toStringTag.js │ │ │ │ ├── undef.js │ │ │ │ └── values.js │ │ │ └── util.inspect.js │ │ ├── on-finished │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── parseurl │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── path-to-regexp │ │ │ ├── LICENSE │ │ │ ├── Readme.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── proxy-addr │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── qs │ │ │ ├── .editorconfig │ │ │ ├── .eslintrc │ │ │ ├── .github │ │ │ │ └── FUNDING.yml │ │ │ ├── .nycrc │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE.md │ │ │ ├── README.md │ │ │ ├── dist │ │ │ │ └── qs.js │ │ │ ├── lib │ │ │ │ ├── formats.js │ │ │ │ ├── index.js │ │ │ │ ├── parse.js │ │ │ │ ├── stringify.js │ │ │ │ └── utils.js │ │ │ ├── package.json │ │ │ └── test │ │ │ │ ├── empty-keys-cases.js │ │ │ │ ├── parse.js │ │ │ │ ├── stringify.js │ │ │ │ └── utils.js │ │ ├── range-parser │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── raw-body │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── SECURITY.md │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── safe-buffer │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── safer-buffer │ │ │ ├── LICENSE │ │ │ ├── Porting-Buffer.md │ │ │ ├── Readme.md │ │ │ ├── dangerous.js │ │ │ ├── package.json │ │ │ ├── safer.js │ │ │ └── tests.js │ │ ├── send │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── SECURITY.md │ │ │ ├── index.js │ │ │ ├── node_modules │ │ │ │ ├── encodeurl │ │ │ │ │ ├── HISTORY.md │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.md │ │ │ │ │ ├── index.js │ │ │ │ │ └── package.json │ │ │ │ └── ms │ │ │ │ │ ├── index.js │ │ │ │ │ ├── license.md │ │ │ │ │ ├── package.json │ │ │ │ │ └── readme.md │ │ │ └── package.json │ │ ├── serve-static │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── setprototypeof │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── package.json │ │ │ └── test │ │ │ │ └── index.js │ │ ├── side-channel-list │ │ │ ├── .editorconfig │ │ │ ├── .eslintrc │ │ │ ├── .github │ │ │ │ └── FUNDING.yml │ │ │ ├── .nycrc │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── list.d.ts │ │ │ ├── package.json │ │ │ ├── test │ │ │ │ └── index.js │ │ │ └── tsconfig.json │ │ ├── side-channel-map │ │ │ ├── .editorconfig │ │ │ ├── .eslintrc │ │ │ ├── .github │ │ │ │ └── FUNDING.yml │ │ │ ├── .nycrc │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── package.json │ │ │ ├── test │ │ │ │ └── index.js │ │ │ └── tsconfig.json │ │ ├── side-channel-weakmap │ │ │ ├── .editorconfig │ │ │ ├── .eslintrc │ │ │ ├── .github │ │ │ │ └── FUNDING.yml │ │ │ ├── .nycrc │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── package.json │ │ │ ├── test │ │ │ │ └── index.js │ │ │ └── tsconfig.json │ │ ├── side-channel │ │ │ ├── .editorconfig │ │ │ ├── .eslintrc │ │ │ ├── .github │ │ │ │ └── FUNDING.yml │ │ │ ├── .nycrc │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── package.json │ │ │ ├── test │ │ │ │ └── index.js │ │ │ └── tsconfig.json │ │ ├── statuses │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── codes.json │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── toidentifier │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── type-is │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── unpipe │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── utils-merge │ │ │ ├── .npmignore │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ └── package.json │ │ └── vary │ │ │ ├── HISTORY.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── index.js │ │ │ └── package.json │ ├── package-lock.json │ └── package.json └── lab3 │ ├── .dockerignore │ ├── Dockerfile │ ├── app.js │ ├── docker-compose.yaml │ ├── node_modules │ ├── .bin │ │ ├── mime │ │ ├── mime.cmd │ │ └── mime.ps1 │ ├── .package-lock.json │ ├── accepts │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── array-flatten │ │ ├── LICENSE │ │ ├── README.md │ │ ├── array-flatten.js │ │ └── package.json │ ├── body-parser │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SECURITY.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── read.js │ │ │ └── types │ │ │ │ ├── json.js │ │ │ │ ├── raw.js │ │ │ │ ├── text.js │ │ │ │ └── urlencoded.js │ │ └── package.json │ ├── bytes │ │ ├── History.md │ │ ├── LICENSE │ │ ├── Readme.md │ │ ├── index.js │ │ └── package.json │ ├── call-bind-apply-helpers │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── actualApply.d.ts │ │ ├── actualApply.js │ │ ├── applyBind.d.ts │ │ ├── applyBind.js │ │ ├── functionApply.d.ts │ │ ├── functionApply.js │ │ ├── functionCall.d.ts │ │ ├── functionCall.js │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── package.json │ │ ├── reflectApply.d.ts │ │ ├── reflectApply.js │ │ ├── test │ │ │ └── index.js │ │ └── tsconfig.json │ ├── call-bound │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── package.json │ │ ├── test │ │ │ └── index.js │ │ └── tsconfig.json │ ├── content-disposition │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── content-type │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── cookie-signature │ │ ├── .npmignore │ │ ├── History.md │ │ ├── Readme.md │ │ ├── index.js │ │ └── package.json │ ├── cookie │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SECURITY.md │ │ ├── index.js │ │ └── package.json │ ├── debug │ │ ├── .coveralls.yml │ │ ├── .eslintrc │ │ ├── .npmignore │ │ ├── .travis.yml │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README.md │ │ ├── component.json │ │ ├── karma.conf.js │ │ ├── node.js │ │ ├── package.json │ │ └── src │ │ │ ├── browser.js │ │ │ ├── debug.js │ │ │ ├── index.js │ │ │ ├── inspector-log.js │ │ │ └── node.js │ ├── depd │ │ ├── History.md │ │ ├── LICENSE │ │ ├── Readme.md │ │ ├── index.js │ │ ├── lib │ │ │ └── browser │ │ │ │ └── index.js │ │ └── package.json │ ├── destroy │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── dunder-proto │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── get.d.ts │ │ ├── get.js │ │ ├── package.json │ │ ├── set.d.ts │ │ ├── set.js │ │ ├── test │ │ │ ├── get.js │ │ │ ├── index.js │ │ │ └── set.js │ │ └── tsconfig.json │ ├── ee-first │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── encodeurl │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── es-define-property │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── package.json │ │ ├── test │ │ │ └── index.js │ │ └── tsconfig.json │ ├── es-errors │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── eval.d.ts │ │ ├── eval.js │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── package.json │ │ ├── range.d.ts │ │ ├── range.js │ │ ├── ref.d.ts │ │ ├── ref.js │ │ ├── syntax.d.ts │ │ ├── syntax.js │ │ ├── test │ │ │ └── index.js │ │ ├── tsconfig.json │ │ ├── type.d.ts │ │ ├── type.js │ │ ├── uri.d.ts │ │ └── uri.js │ ├── es-object-atoms │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── RequireObjectCoercible.d.ts │ │ ├── RequireObjectCoercible.js │ │ ├── ToObject.d.ts │ │ ├── ToObject.js │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── package.json │ │ ├── test │ │ │ └── index.js │ │ └── tsconfig.json │ ├── escape-html │ │ ├── LICENSE │ │ ├── Readme.md │ │ ├── index.js │ │ └── package.json │ ├── etag │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── express │ │ ├── History.md │ │ ├── LICENSE │ │ ├── Readme.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── application.js │ │ │ ├── express.js │ │ │ ├── middleware │ │ │ │ ├── init.js │ │ │ │ └── query.js │ │ │ ├── request.js │ │ │ ├── response.js │ │ │ ├── router │ │ │ │ ├── index.js │ │ │ │ ├── layer.js │ │ │ │ └── route.js │ │ │ ├── utils.js │ │ │ └── view.js │ │ └── package.json │ ├── finalhandler │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SECURITY.md │ │ ├── index.js │ │ └── package.json │ ├── forwarded │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── fresh │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── function-bind │ │ ├── .eslintrc │ │ ├── .github │ │ │ ├── FUNDING.yml │ │ │ └── SECURITY.md │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── implementation.js │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ ├── .eslintrc │ │ │ └── index.js │ ├── get-intrinsic │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ └── GetIntrinsic.js │ ├── gopd │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── gOPD.d.ts │ │ ├── gOPD.js │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── package.json │ │ ├── test │ │ │ └── index.js │ │ └── tsconfig.json │ ├── has-symbols │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── package.json │ │ ├── shams.d.ts │ │ ├── shams.js │ │ ├── test │ │ │ ├── index.js │ │ │ ├── shams │ │ │ │ ├── core-js.js │ │ │ │ └── get-own-property-symbols.js │ │ │ └── tests.js │ │ └── tsconfig.json │ ├── hasown │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── package.json │ │ └── tsconfig.json │ ├── http-errors │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── iconv-lite │ │ ├── Changelog.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── encodings │ │ │ ├── dbcs-codec.js │ │ │ ├── dbcs-data.js │ │ │ ├── index.js │ │ │ ├── internal.js │ │ │ ├── sbcs-codec.js │ │ │ ├── sbcs-data-generated.js │ │ │ ├── sbcs-data.js │ │ │ ├── tables │ │ │ │ ├── big5-added.json │ │ │ │ ├── cp936.json │ │ │ │ ├── cp949.json │ │ │ │ ├── cp950.json │ │ │ │ ├── eucjp.json │ │ │ │ ├── gb18030-ranges.json │ │ │ │ ├── gbk-added.json │ │ │ │ └── shiftjis.json │ │ │ ├── utf16.js │ │ │ └── utf7.js │ │ ├── lib │ │ │ ├── bom-handling.js │ │ │ ├── extend-node.js │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ └── streams.js │ │ └── package.json │ ├── inherits │ │ ├── LICENSE │ │ ├── README.md │ │ ├── inherits.js │ │ ├── inherits_browser.js │ │ └── package.json │ ├── ipaddr.js │ │ ├── LICENSE │ │ ├── README.md │ │ ├── ipaddr.min.js │ │ ├── lib │ │ │ ├── ipaddr.js │ │ │ └── ipaddr.js.d.ts │ │ └── package.json │ ├── math-intrinsics │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── abs.d.ts │ │ ├── abs.js │ │ ├── constants │ │ │ ├── maxArrayLength.d.ts │ │ │ ├── maxArrayLength.js │ │ │ ├── maxSafeInteger.d.ts │ │ │ ├── maxSafeInteger.js │ │ │ ├── maxValue.d.ts │ │ │ └── maxValue.js │ │ ├── floor.d.ts │ │ ├── floor.js │ │ ├── isFinite.d.ts │ │ ├── isFinite.js │ │ ├── isInteger.d.ts │ │ ├── isInteger.js │ │ ├── isNaN.d.ts │ │ ├── isNaN.js │ │ ├── isNegativeZero.d.ts │ │ ├── isNegativeZero.js │ │ ├── max.d.ts │ │ ├── max.js │ │ ├── min.d.ts │ │ ├── min.js │ │ ├── mod.d.ts │ │ ├── mod.js │ │ ├── package.json │ │ ├── pow.d.ts │ │ ├── pow.js │ │ ├── round.d.ts │ │ ├── round.js │ │ ├── sign.d.ts │ │ ├── sign.js │ │ ├── test │ │ │ └── index.js │ │ └── tsconfig.json │ ├── media-typer │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── merge-descriptors │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── methods │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── mime-db │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── db.json │ │ ├── index.js │ │ └── package.json │ ├── mime-types │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── mime │ │ ├── .npmignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── cli.js │ │ ├── mime.js │ │ ├── package.json │ │ ├── src │ │ │ ├── build.js │ │ │ └── test.js │ │ └── types.json │ ├── ms │ │ ├── index.js │ │ ├── license.md │ │ ├── package.json │ │ └── readme.md │ ├── negotiator │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── lib │ │ │ ├── charset.js │ │ │ ├── encoding.js │ │ │ ├── language.js │ │ │ └── mediaType.js │ │ └── package.json │ ├── object-inspect │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── example │ │ │ ├── all.js │ │ │ ├── circular.js │ │ │ ├── fn.js │ │ │ └── inspect.js │ │ ├── index.js │ │ ├── package-support.json │ │ ├── package.json │ │ ├── readme.markdown │ │ ├── test-core-js.js │ │ ├── test │ │ │ ├── bigint.js │ │ │ ├── browser │ │ │ │ └── dom.js │ │ │ ├── circular.js │ │ │ ├── deep.js │ │ │ ├── element.js │ │ │ ├── err.js │ │ │ ├── fakes.js │ │ │ ├── fn.js │ │ │ ├── global.js │ │ │ ├── has.js │ │ │ ├── holes.js │ │ │ ├── indent-option.js │ │ │ ├── inspect.js │ │ │ ├── lowbyte.js │ │ │ ├── number.js │ │ │ ├── quoteStyle.js │ │ │ ├── toStringTag.js │ │ │ ├── undef.js │ │ │ └── values.js │ │ └── util.inspect.js │ ├── on-finished │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── parseurl │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── path-to-regexp │ │ ├── LICENSE │ │ ├── Readme.md │ │ ├── index.js │ │ └── package.json │ ├── pg-cloudflare │ │ ├── LICENSE │ │ ├── README.md │ │ ├── dist │ │ │ ├── empty.d.ts │ │ │ ├── empty.js │ │ │ ├── empty.js.map │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ └── index.js.map │ │ ├── package.json │ │ └── src │ │ │ ├── empty.ts │ │ │ ├── index.ts │ │ │ └── types.d.ts │ ├── pg-connection-string │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ └── package.json │ ├── pg-int8 │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── pg-pool │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ ├── bring-your-own-promise.js │ │ │ ├── connection-strings.js │ │ │ ├── connection-timeout.js │ │ │ ├── ending.js │ │ │ ├── error-handling.js │ │ │ ├── events.js │ │ │ ├── idle-timeout-exit.js │ │ │ ├── idle-timeout.js │ │ │ ├── index.js │ │ │ ├── lifetime-timeout.js │ │ │ ├── logging.js │ │ │ ├── max-uses.js │ │ │ ├── releasing-clients.js │ │ │ ├── setup.js │ │ │ ├── sizing.js │ │ │ ├── submittable.js │ │ │ ├── timeout.js │ │ │ └── verify.js │ ├── pg-protocol │ │ ├── LICENSE │ │ ├── README.md │ │ ├── dist │ │ │ ├── b.d.ts │ │ │ ├── b.js │ │ │ ├── b.js.map │ │ │ ├── buffer-reader.d.ts │ │ │ ├── buffer-reader.js │ │ │ ├── buffer-reader.js.map │ │ │ ├── buffer-writer.d.ts │ │ │ ├── buffer-writer.js │ │ │ ├── buffer-writer.js.map │ │ │ ├── inbound-parser.test.d.ts │ │ │ ├── inbound-parser.test.js │ │ │ ├── inbound-parser.test.js.map │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── index.js.map │ │ │ ├── messages.d.ts │ │ │ ├── messages.js │ │ │ ├── messages.js.map │ │ │ ├── outbound-serializer.test.d.ts │ │ │ ├── outbound-serializer.test.js │ │ │ ├── outbound-serializer.test.js.map │ │ │ ├── parser.d.ts │ │ │ ├── parser.js │ │ │ ├── parser.js.map │ │ │ ├── serializer.d.ts │ │ │ ├── serializer.js │ │ │ └── serializer.js.map │ │ ├── package.json │ │ └── src │ │ │ ├── b.ts │ │ │ ├── buffer-reader.ts │ │ │ ├── buffer-writer.ts │ │ │ ├── inbound-parser.test.ts │ │ │ ├── index.ts │ │ │ ├── messages.ts │ │ │ ├── outbound-serializer.test.ts │ │ │ ├── parser.ts │ │ │ ├── serializer.ts │ │ │ ├── testing │ │ │ ├── buffer-list.ts │ │ │ └── test-buffers.ts │ │ │ └── types │ │ │ └── chunky.d.ts │ ├── pg-types │ │ ├── .travis.yml │ │ ├── Makefile │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.test-d.ts │ │ ├── lib │ │ │ ├── arrayParser.js │ │ │ ├── binaryParsers.js │ │ │ ├── builtins.js │ │ │ └── textParsers.js │ │ ├── package.json │ │ └── test │ │ │ ├── index.js │ │ │ └── types.js │ ├── pg │ │ ├── LICENSE │ │ ├── README.md │ │ ├── lib │ │ │ ├── client.js │ │ │ ├── connection-parameters.js │ │ │ ├── connection.js │ │ │ ├── crypto │ │ │ │ ├── sasl.js │ │ │ │ ├── utils-legacy.js │ │ │ │ ├── utils-webcrypto.js │ │ │ │ └── utils.js │ │ │ ├── defaults.js │ │ │ ├── index.js │ │ │ ├── native │ │ │ │ ├── client.js │ │ │ │ ├── index.js │ │ │ │ └── query.js │ │ │ ├── query.js │ │ │ ├── result.js │ │ │ ├── stream.js │ │ │ ├── type-overrides.js │ │ │ └── utils.js │ │ └── package.json │ ├── pgpass │ │ ├── README.md │ │ ├── lib │ │ │ ├── helper.js │ │ │ └── index.js │ │ └── package.json │ ├── postgres-array │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── postgres-bytea │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── postgres-date │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── postgres-interval │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── proxy-addr │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── qs │ │ ├── .editorconfig │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── dist │ │ │ └── qs.js │ │ ├── lib │ │ │ ├── formats.js │ │ │ ├── index.js │ │ │ ├── parse.js │ │ │ ├── stringify.js │ │ │ └── utils.js │ │ ├── package.json │ │ └── test │ │ │ ├── empty-keys-cases.js │ │ │ ├── parse.js │ │ │ ├── stringify.js │ │ │ └── utils.js │ ├── range-parser │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── raw-body │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SECURITY.md │ │ ├── index.d.ts │ │ ├── index.js │ │ └── package.json │ ├── safe-buffer │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ └── package.json │ ├── safer-buffer │ │ ├── LICENSE │ │ ├── Porting-Buffer.md │ │ ├── Readme.md │ │ ├── dangerous.js │ │ ├── package.json │ │ ├── safer.js │ │ └── tests.js │ ├── send │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SECURITY.md │ │ ├── index.js │ │ ├── node_modules │ │ │ ├── encodeurl │ │ │ │ ├── HISTORY.md │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ └── ms │ │ │ │ ├── index.js │ │ │ │ ├── license.md │ │ │ │ ├── package.json │ │ │ │ └── readme.md │ │ └── package.json │ ├── serve-static │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── setprototypeof │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ └── index.js │ ├── side-channel-list │ │ ├── .editorconfig │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── list.d.ts │ │ ├── package.json │ │ ├── test │ │ │ └── index.js │ │ └── tsconfig.json │ ├── side-channel-map │ │ ├── .editorconfig │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── package.json │ │ ├── test │ │ │ └── index.js │ │ └── tsconfig.json │ ├── side-channel-weakmap │ │ ├── .editorconfig │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── package.json │ │ ├── test │ │ │ └── index.js │ │ └── tsconfig.json │ ├── side-channel │ │ ├── .editorconfig │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── package.json │ │ ├── test │ │ │ └── index.js │ │ └── tsconfig.json │ ├── split2 │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bench.js │ │ ├── index.js │ │ ├── package.json │ │ └── test.js │ ├── statuses │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── codes.json │ │ ├── index.js │ │ └── package.json │ ├── toidentifier │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── type-is │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── unpipe │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── utils-merge │ │ ├── .npmignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── vary │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ └── xtend │ │ ├── .jshintrc │ │ ├── LICENSE │ │ ├── README.md │ │ ├── immutable.js │ │ ├── mutable.js │ │ ├── package.json │ │ └── test.js │ ├── package-lock.json │ └── package.json ├── lesson11 ├── images │ ├── 3Tier1.png │ ├── 3Tier2.png │ ├── 3Tier3.png │ ├── 3Tier4.png │ ├── 3Tier5.png │ ├── GOLint.png │ ├── RESTful.png │ ├── api.png │ ├── bilibili1.png │ ├── bilibili2.png │ ├── bilibili3.png │ ├── blue_cat_worm.jpeg │ ├── brick.png │ ├── building.png │ ├── dao.png │ ├── demon.png │ ├── service.png │ ├── structure3.png │ ├── viper.PNG │ └── zap.PNG └── 单体架构实战.md ├── lesson12 ├── image │ ├── io复用 │ ├── io对比 │ ├── smtp │ ├── socket │ ├── tcp报文 │ ├── udp报文 │ ├── 信号驱动io │ ├── 封装 │ ├── 异步io │ ├── 阻塞io │ └── 非阻塞io └── readme.md ├── lesson13 ├── README.md └── images │ ├── BqJabvek7oMLpTx2c5IcuJt5n2f.png │ ├── CvQjbmC9pojYndxJhdlcSC7QnPe.png │ ├── JGMfbnxlwoYmoDxuq72cdPQqnxb.png │ ├── JTgabdb9DoXbSSxNAqqcoKkpn7e.png │ ├── NsCgbLOkjoPVKBxHyPHczE7pnNf.png │ ├── QTGEbRduXoTANpxumlScU15hnIc.png │ ├── RDvOb2Qhio8J1UxAuS6c2IBpnNb.png │ ├── WT2tbRR2ZoGqHJxzAMscgBfInjc.png │ ├── XMhGbl7zgofg4pxXU3NcFPrln3c.png │ ├── YDLabJkADoCqrcxkFX7co5ucnBh.png │ ├── image-1.png │ ├── image-2.png │ ├── image-3.png │ ├── image-4.png │ └── image.png ├── lesson14 ├── images │ ├── 001.png │ ├── 002.png │ ├── 003.png │ ├── 004.png │ ├── 005.png │ ├── 006.png │ ├── 007.png │ ├── 008.png │ └── 009.png └── 微服务基础理论.md ├── lesson15 └── Lesson15.md ├── lesson16 ├── README.md └── image │ ├── ga.png │ └── rp.png └── lesson17 └── README.md /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # 默认忽略的文件 2 | /shelf/ 3 | /workspace.xml 4 | # 基于编辑器的 HTTP 客户端请求 5 | /httpRequests/ 6 | # Datasource local storage ignored files 7 | /dataSources/ 8 | /dataSources.local.xml 9 | -------------------------------------------------------------------------------- /.idea/Courseware-Backend-Go-2024.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /lesson00/img/01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson00/img/01.png -------------------------------------------------------------------------------- /lesson00/img/02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson00/img/02.png -------------------------------------------------------------------------------- /lesson00/img/03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson00/img/03.png -------------------------------------------------------------------------------- /lesson00/img/04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson00/img/04.jpg -------------------------------------------------------------------------------- /lesson00/img/05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson00/img/05.png -------------------------------------------------------------------------------- /lesson00/img/06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson00/img/06.png -------------------------------------------------------------------------------- /lesson00/img/07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson00/img/07.png -------------------------------------------------------------------------------- /lesson00/img/08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson00/img/08.png -------------------------------------------------------------------------------- /lesson00/img/09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson00/img/09.png -------------------------------------------------------------------------------- /lesson04/imgs/img01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson04/imgs/img01.png -------------------------------------------------------------------------------- /lesson04/imgs/img02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson04/imgs/img02.png -------------------------------------------------------------------------------- /lesson06/img/img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson06/img/img.png -------------------------------------------------------------------------------- /lesson06/img/img1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson06/img/img1.png -------------------------------------------------------------------------------- /lesson06/img/img2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson06/img/img2.png -------------------------------------------------------------------------------- /lesson06/img/img3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson06/img/img3.png -------------------------------------------------------------------------------- /lesson06/img/img4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson06/img/img4.png -------------------------------------------------------------------------------- /lesson06/img/img5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson06/img/img5.png -------------------------------------------------------------------------------- /lesson06/img/img6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson06/img/img6.jpg -------------------------------------------------------------------------------- /lesson06/img/img7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson06/img/img7.jpg -------------------------------------------------------------------------------- /lesson06/img/img8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson06/img/img8.jpg -------------------------------------------------------------------------------- /lesson08/imgs/01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson08/imgs/01.png -------------------------------------------------------------------------------- /lesson08/imgs/02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson08/imgs/02.png -------------------------------------------------------------------------------- /lesson08/imgs/03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson08/imgs/03.png -------------------------------------------------------------------------------- /lesson10/lab2/.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | -------------------------------------------------------------------------------- /lesson10/lab2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:18-alpine 2 | 3 | # 设置工作目录 4 | WORKDIR /app 5 | 6 | # 复制 package.json 和 package-lock.json 7 | COPY package*.json ./ 8 | 9 | # 安装依赖 10 | RUN npm install 11 | 12 | # 复制应用代码 13 | COPY . . 14 | 15 | # 暴露端口 16 | EXPOSE 3000 17 | 18 | # 启动应用 19 | CMD ["node", "app.js"] -------------------------------------------------------------------------------- /lesson10/lab2/app.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const app = express(); 3 | const port = 3000; 4 | 5 | app.get('/', (req, res) => { 6 | res.send('Hello from Docker!'); 7 | }); 8 | 9 | app.listen(port, () => { 10 | console.log(`App listening at http://localhost:${port}`); 11 | }); -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/.bin/mime: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) 6 | if command -v cygpath > /dev/null 2>&1; then 7 | basedir=`cygpath -w "$basedir"` 8 | fi 9 | ;; 10 | esac 11 | 12 | if [ -x "$basedir/node" ]; then 13 | exec "$basedir/node" "$basedir/../mime/cli.js" "$@" 14 | else 15 | exec node "$basedir/../mime/cli.js" "$@" 16 | fi 17 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/.bin/mime.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | GOTO start 3 | :find_dp0 4 | SET dp0=%~dp0 5 | EXIT /b 6 | :start 7 | SETLOCAL 8 | CALL :find_dp0 9 | 10 | IF EXIST "%dp0%\node.exe" ( 11 | SET "_prog=%dp0%\node.exe" 12 | ) ELSE ( 13 | SET "_prog=node" 14 | SET PATHEXT=%PATHEXT:;.JS;=;% 15 | ) 16 | 17 | endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mime\cli.js" %* 18 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/call-bind-apply-helpers/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "func-name-matching": 0, 8 | "id-length": 0, 9 | "new-cap": [2, { 10 | "capIsNewExceptions": [ 11 | "GetIntrinsic", 12 | ], 13 | }], 14 | "no-magic-numbers": 0, 15 | }, 16 | } 17 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/call-bind-apply-helpers/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/call-bind-apply-helpers 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/call-bind-apply-helpers/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "exclude": [ 6 | "coverage", 7 | "test" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/call-bind-apply-helpers/actualApply.d.ts: -------------------------------------------------------------------------------- 1 | export = Reflect.apply; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/call-bind-apply-helpers/actualApply.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var bind = require('function-bind'); 4 | 5 | var $apply = require('./functionApply'); 6 | var $call = require('./functionCall'); 7 | var $reflectApply = require('./reflectApply'); 8 | 9 | /** @type {import('./actualApply')} */ 10 | module.exports = $reflectApply || bind.call($call, $apply); 11 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/call-bind-apply-helpers/applyBind.d.ts: -------------------------------------------------------------------------------- 1 | import actualApply from './actualApply'; 2 | 3 | type TupleSplitHead = T['length'] extends N 4 | ? T 5 | : T extends [...infer R, any] 6 | ? TupleSplitHead 7 | : never 8 | 9 | type TupleSplitTail = O['length'] extends N 10 | ? T 11 | : T extends [infer F, ...infer R] 12 | ? TupleSplitTail<[...R], N, [...O, F]> 13 | : never 14 | 15 | type TupleSplit = [TupleSplitHead, TupleSplitTail] 16 | 17 | declare function applyBind(...args: TupleSplit, 2>[1]): ReturnType; 18 | 19 | export = applyBind; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/call-bind-apply-helpers/applyBind.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var bind = require('function-bind'); 4 | var $apply = require('./functionApply'); 5 | var actualApply = require('./actualApply'); 6 | 7 | /** @type {import('./applyBind')} */ 8 | module.exports = function applyBind() { 9 | return actualApply(bind, $apply, arguments); 10 | }; 11 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/call-bind-apply-helpers/functionApply.d.ts: -------------------------------------------------------------------------------- 1 | export = Function.prototype.apply; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/call-bind-apply-helpers/functionApply.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./functionApply')} */ 4 | module.exports = Function.prototype.apply; 5 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/call-bind-apply-helpers/functionCall.d.ts: -------------------------------------------------------------------------------- 1 | export = Function.prototype.call; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/call-bind-apply-helpers/functionCall.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./functionCall')} */ 4 | module.exports = Function.prototype.call; 5 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/call-bind-apply-helpers/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var bind = require('function-bind'); 4 | var $TypeError = require('es-errors/type'); 5 | 6 | var $call = require('./functionCall'); 7 | var $actualApply = require('./actualApply'); 8 | 9 | /** @type {import('.')} */ 10 | module.exports = function callBindBasic(args) { 11 | if (args.length < 1 || typeof args[0] !== 'function') { 12 | throw new $TypeError('a function is required'); 13 | } 14 | return $actualApply(bind, $call, args); 15 | }; 16 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/call-bind-apply-helpers/reflectApply.d.ts: -------------------------------------------------------------------------------- 1 | declare const reflectApply: false | typeof Reflect.apply; 2 | 3 | export = reflectApply; 4 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/call-bind-apply-helpers/reflectApply.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./reflectApply')} */ 4 | module.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply; 5 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/call-bind-apply-helpers/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@ljharb/tsconfig", 3 | "compilerOptions": { 4 | "target": "es2021", 5 | }, 6 | "exclude": [ 7 | "coverage", 8 | ], 9 | } -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/call-bound/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "new-cap": [2, { 8 | "capIsNewExceptions": [ 9 | "GetIntrinsic", 10 | ], 11 | }], 12 | }, 13 | } 14 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/call-bound/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/call-bound 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/call-bound/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "exclude": [ 6 | "coverage", 7 | "test" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/call-bound/index.d.ts: -------------------------------------------------------------------------------- 1 | import callBind from 'call-bind-apply-helpers'; 2 | 3 | declare function callBoundIntrinsic( 4 | name: string, 5 | allowMissing?: false 6 | ): ReturnType; 7 | 8 | declare function callBoundIntrinsic( 9 | name: string, 10 | allowMissing: true 11 | ): undefined | ReturnType; 12 | 13 | export = callBoundIntrinsic; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/call-bound/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@ljharb/tsconfig", 3 | "compilerOptions": { 4 | "target": "es2021", 5 | }, 6 | "exclude": [ 7 | "coverage", 8 | ], 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/content-type/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.5 / 2023-01-29 2 | ================== 3 | 4 | * perf: skip value escaping when unnecessary 5 | 6 | 1.0.4 / 2017-09-11 7 | ================== 8 | 9 | * perf: skip parameter parsing when no parameters 10 | 11 | 1.0.3 / 2017-09-10 12 | ================== 13 | 14 | * perf: remove argument reassignment 15 | 16 | 1.0.2 / 2016-05-09 17 | ================== 18 | 19 | * perf: enable strict mode 20 | 21 | 1.0.1 / 2015-02-13 22 | ================== 23 | 24 | * Improve missing `Content-Type` header error message 25 | 26 | 1.0.0 / 2015-02-01 27 | ================== 28 | 29 | * Initial implementation, derived from `media-typer@0.3.0` 30 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/cookie-signature/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | *.sock 5 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/cookie-signature/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cookie-signature", 3 | "version": "1.0.6", 4 | "description": "Sign and unsign cookies", 5 | "keywords": ["cookie", "sign", "unsign"], 6 | "author": "TJ Holowaychuk ", 7 | "license": "MIT", 8 | "repository": { "type": "git", "url": "https://github.com/visionmedia/node-cookie-signature.git"}, 9 | "dependencies": {}, 10 | "devDependencies": { 11 | "mocha": "*", 12 | "should": "*" 13 | }, 14 | "scripts": { 15 | "test": "mocha --require should --reporter spec" 16 | }, 17 | "main": "index" 18 | } 19 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/debug/.coveralls.yml: -------------------------------------------------------------------------------- 1 | repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve 2 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/debug/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "node": true 5 | }, 6 | "rules": { 7 | "no-console": 0, 8 | "no-empty": [1, { "allowEmptyCatch": true }] 9 | }, 10 | "extends": "eslint:recommended" 11 | } 12 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/debug/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | example 5 | *.sock 6 | dist 7 | yarn.lock 8 | coverage 9 | bower.json 10 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/debug/.travis.yml: -------------------------------------------------------------------------------- 1 | 2 | language: node_js 3 | node_js: 4 | - "6" 5 | - "5" 6 | - "4" 7 | 8 | install: 9 | - make node_modules 10 | 11 | script: 12 | - make lint 13 | - make test 14 | - make coveralls 15 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/debug/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "debug", 3 | "repo": "visionmedia/debug", 4 | "description": "small debugging utility", 5 | "version": "2.6.9", 6 | "keywords": [ 7 | "debug", 8 | "log", 9 | "debugger" 10 | ], 11 | "main": "src/browser.js", 12 | "scripts": [ 13 | "src/browser.js", 14 | "src/debug.js" 15 | ], 16 | "dependencies": { 17 | "rauchg/ms.js": "0.7.1" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/debug/node.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./src/node'); 2 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/debug/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Detect Electron renderer process, which is node, but we should 3 | * treat as a browser. 4 | */ 5 | 6 | if (typeof process !== 'undefined' && process.type === 'renderer') { 7 | module.exports = require('./browser.js'); 8 | } else { 9 | module.exports = require('./node.js'); 10 | } 11 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/debug/src/inspector-log.js: -------------------------------------------------------------------------------- 1 | module.exports = inspectorLog; 2 | 3 | // black hole 4 | const nullStream = new (require('stream').Writable)(); 5 | nullStream._write = () => {}; 6 | 7 | /** 8 | * Outputs a `console.log()` to the Node.js Inspector console *only*. 9 | */ 10 | function inspectorLog() { 11 | const stdout = console._stdout; 12 | console._stdout = nullStream; 13 | console.log.apply(console, arguments); 14 | console._stdout = stdout; 15 | } 16 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/dunder-proto/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | } 6 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/dunder-proto/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/dunder-proto 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/dunder-proto/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "test" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/dunder-proto/get.d.ts: -------------------------------------------------------------------------------- 1 | declare function getDunderProto(target: {}): object | null; 2 | 3 | declare const x: false | typeof getDunderProto; 4 | 5 | export = x; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/dunder-proto/set.d.ts: -------------------------------------------------------------------------------- 1 | declare function setDunderProto

(target: {}, proto: P): P; 2 | 3 | declare const x: false | typeof setDunderProto; 4 | 5 | export = x; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/dunder-proto/test/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | require('./get'); 4 | require('./set'); 5 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/dunder-proto/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@ljharb/tsconfig", 3 | "compilerOptions": { 4 | "target": "ES2021", 5 | }, 6 | "exclude": [ 7 | "coverage", 8 | ], 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-define-property/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "new-cap": ["error", { 8 | "capIsNewExceptions": [ 9 | "GetIntrinsic", 10 | ], 11 | }], 12 | }, 13 | } 14 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-define-property/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/es-define-property 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with a single custom sponsorship URL 13 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-define-property/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "exclude": [ 6 | "coverage", 7 | "test" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-define-property/index.d.ts: -------------------------------------------------------------------------------- 1 | declare const defineProperty: false | typeof Object.defineProperty; 2 | 3 | export = defineProperty; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-define-property/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('.')} */ 4 | var $defineProperty = Object.defineProperty || false; 5 | if ($defineProperty) { 6 | try { 7 | $defineProperty({}, 'a', { value: 1 }); 8 | } catch (e) { 9 | // IE 8 has a broken defineProperty 10 | $defineProperty = false; 11 | } 12 | } 13 | 14 | module.exports = $defineProperty; 15 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-define-property/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@ljharb/tsconfig", 3 | "compilerOptions": { 4 | "target": "es2022", 5 | }, 6 | "exclude": [ 7 | "coverage", 8 | "test/list-exports" 9 | ], 10 | } 11 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-errors/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | } 6 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-errors/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/es-errors 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with a single custom sponsorship URL 13 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-errors/eval.d.ts: -------------------------------------------------------------------------------- 1 | declare const EvalError: EvalErrorConstructor; 2 | 3 | export = EvalError; 4 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-errors/eval.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./eval')} */ 4 | module.exports = EvalError; 5 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-errors/index.d.ts: -------------------------------------------------------------------------------- 1 | declare const Error: ErrorConstructor; 2 | 3 | export = Error; 4 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-errors/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('.')} */ 4 | module.exports = Error; 5 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-errors/range.d.ts: -------------------------------------------------------------------------------- 1 | declare const RangeError: RangeErrorConstructor; 2 | 3 | export = RangeError; 4 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-errors/range.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./range')} */ 4 | module.exports = RangeError; 5 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-errors/ref.d.ts: -------------------------------------------------------------------------------- 1 | declare const ReferenceError: ReferenceErrorConstructor; 2 | 3 | export = ReferenceError; 4 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-errors/ref.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./ref')} */ 4 | module.exports = ReferenceError; 5 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-errors/syntax.d.ts: -------------------------------------------------------------------------------- 1 | declare const SyntaxError: SyntaxErrorConstructor; 2 | 3 | export = SyntaxError; 4 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-errors/syntax.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./syntax')} */ 4 | module.exports = SyntaxError; 5 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-errors/test/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var test = require('tape'); 4 | 5 | var E = require('../'); 6 | var R = require('../range'); 7 | var Ref = require('../ref'); 8 | var S = require('../syntax'); 9 | var T = require('../type'); 10 | 11 | test('errors', function (t) { 12 | t.equal(E, Error); 13 | t.equal(R, RangeError); 14 | t.equal(Ref, ReferenceError); 15 | t.equal(S, SyntaxError); 16 | t.equal(T, TypeError); 17 | 18 | t.end(); 19 | }); 20 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-errors/type.d.ts: -------------------------------------------------------------------------------- 1 | declare const TypeError: TypeErrorConstructor 2 | 3 | export = TypeError; 4 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-errors/type.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./type')} */ 4 | module.exports = TypeError; 5 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-errors/uri.d.ts: -------------------------------------------------------------------------------- 1 | declare const URIError: URIErrorConstructor; 2 | 3 | export = URIError; 4 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-errors/uri.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./uri')} */ 4 | module.exports = URIError; 5 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-object-atoms/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "eqeqeq": ["error", "allow-null"], 8 | "id-length": "off", 9 | "new-cap": ["error", { 10 | "capIsNewExceptions": [ 11 | "RequireObjectCoercible", 12 | "ToObject", 13 | ], 14 | }], 15 | }, 16 | } 17 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-object-atoms/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/es-object 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with a single custom sponsorship URL 13 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-object-atoms/RequireObjectCoercible.d.ts: -------------------------------------------------------------------------------- 1 | declare function RequireObjectCoercible(value: T, optMessage?: string): T; 2 | 3 | export = RequireObjectCoercible; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-object-atoms/RequireObjectCoercible.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var $TypeError = require('es-errors/type'); 4 | 5 | /** @type {import('./RequireObjectCoercible')} */ 6 | module.exports = function RequireObjectCoercible(value) { 7 | if (value == null) { 8 | throw new $TypeError((arguments.length > 0 && arguments[1]) || ('Cannot call method on ' + value)); 9 | } 10 | return value; 11 | }; 12 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-object-atoms/ToObject.d.ts: -------------------------------------------------------------------------------- 1 | declare function ToObject(value: T extends object ? T : {}): T extends object ? T : object; 2 | 3 | export = ToObject; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-object-atoms/ToObject.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var $Object = require('./'); 4 | var RequireObjectCoercible = require('./RequireObjectCoercible'); 5 | 6 | /** @type {import('./ToObject')} */ 7 | module.exports = function ToObject(value) { 8 | RequireObjectCoercible(value); 9 | return $Object(value); 10 | }; 11 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-object-atoms/index.d.ts: -------------------------------------------------------------------------------- 1 | declare const Object: ObjectConstructor; 2 | 3 | export = Object; 4 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-object-atoms/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('.')} */ 4 | module.exports = Object; 5 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/es-object-atoms/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@ljharb/tsconfig", 3 | "compilerOptions": { 4 | "target": "es5", 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/escape-html/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "escape-html", 3 | "description": "Escape string for use in HTML", 4 | "version": "1.0.3", 5 | "license": "MIT", 6 | "keywords": [ 7 | "escape", 8 | "html", 9 | "utility" 10 | ], 11 | "repository": "component/escape-html", 12 | "devDependencies": { 13 | "benchmark": "1.0.0", 14 | "beautify-benchmark": "0.2.4" 15 | }, 16 | "files": [ 17 | "LICENSE", 18 | "Readme.md", 19 | "index.js" 20 | ], 21 | "scripts": { 22 | "bench": "node benchmark/index.js" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/express/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * express 3 | * Copyright(c) 2009-2013 TJ Holowaychuk 4 | * Copyright(c) 2013 Roman Shtylman 5 | * Copyright(c) 2014-2015 Douglas Christopher Wilson 6 | * MIT Licensed 7 | */ 8 | 9 | 'use strict'; 10 | 11 | module.exports = require('./lib/express'); 12 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/forwarded/HISTORY.md: -------------------------------------------------------------------------------- 1 | 0.2.0 / 2021-05-31 2 | ================== 3 | 4 | * Use `req.socket` over deprecated `req.connection` 5 | 6 | 0.1.2 / 2017-09-14 7 | ================== 8 | 9 | * perf: improve header parsing 10 | * perf: reduce overhead when no `X-Forwarded-For` header 11 | 12 | 0.1.1 / 2017-09-10 13 | ================== 14 | 15 | * Fix trimming leading / trailing OWS 16 | * perf: hoist regular expression 17 | 18 | 0.1.0 / 2014-09-21 19 | ================== 20 | 21 | * Initial release 22 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/function-bind/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "func-name-matching": 0, 8 | "indent": [2, 4], 9 | "no-new-func": [1], 10 | }, 11 | 12 | "overrides": [ 13 | { 14 | "files": "test/**", 15 | "rules": { 16 | "max-lines-per-function": 0, 17 | "strict": [0] 18 | }, 19 | }, 20 | ], 21 | } 22 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/function-bind/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/function-bind 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/function-bind/.github/SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security 2 | 3 | Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report. 4 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/function-bind/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "test" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/function-bind/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var implementation = require('./implementation'); 4 | 5 | module.exports = Function.prototype.bind || implementation; 6 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/function-bind/test/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "array-bracket-newline": 0, 4 | "array-element-newline": 0, 5 | "max-statements-per-line": [2, { "max": 2 }], 6 | "no-invalid-this": 0, 7 | "no-magic-numbers": 0, 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/get-intrinsic/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/get-intrinsic 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/get-intrinsic/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "exclude": [ 6 | "coverage", 7 | "test" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/gopd/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "func-style": [2, "declaration"], 8 | "id-length": 0, 9 | "multiline-comment-style": 0, 10 | "new-cap": [2, { 11 | "capIsNewExceptions": [ 12 | "GetIntrinsic", 13 | ], 14 | }], 15 | }, 16 | } 17 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/gopd/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/gopd 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/gopd/gOPD.d.ts: -------------------------------------------------------------------------------- 1 | export = Object.getOwnPropertyDescriptor; 2 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/gopd/gOPD.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./gOPD')} */ 4 | module.exports = Object.getOwnPropertyDescriptor; 5 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/gopd/index.d.ts: -------------------------------------------------------------------------------- 1 | declare function gOPD(obj: O, prop: K): PropertyDescriptor | undefined; 2 | 3 | declare const fn: typeof gOPD | undefined | null; 4 | 5 | export = fn; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/gopd/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('.')} */ 4 | var $gOPD = require('./gOPD'); 5 | 6 | if ($gOPD) { 7 | try { 8 | $gOPD([], 'length'); 9 | } catch (e) { 10 | // IE 8 has a broken gOPD 11 | $gOPD = null; 12 | } 13 | } 14 | 15 | module.exports = $gOPD; 16 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/gopd/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@ljharb/tsconfig", 3 | "compilerOptions": { 4 | "target": "es2021", 5 | }, 6 | "exclude": [ 7 | "coverage", 8 | ], 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/has-symbols/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "max-statements-per-line": [2, { "max": 2 }], 8 | "no-magic-numbers": 0, 9 | "multiline-comment-style": 0, 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/has-symbols/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/has-symbols 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/has-symbols/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "exclude": [ 6 | "coverage", 7 | "test" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/has-symbols/index.d.ts: -------------------------------------------------------------------------------- 1 | declare function hasNativeSymbols(): boolean; 2 | 3 | export = hasNativeSymbols; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/has-symbols/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var origSymbol = typeof Symbol !== 'undefined' && Symbol; 4 | var hasSymbolSham = require('./shams'); 5 | 6 | /** @type {import('.')} */ 7 | module.exports = function hasNativeSymbols() { 8 | if (typeof origSymbol !== 'function') { return false; } 9 | if (typeof Symbol !== 'function') { return false; } 10 | if (typeof origSymbol('foo') !== 'symbol') { return false; } 11 | if (typeof Symbol('bar') !== 'symbol') { return false; } 12 | 13 | return hasSymbolSham(); 14 | }; 15 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/has-symbols/shams.d.ts: -------------------------------------------------------------------------------- 1 | declare function hasSymbolShams(): boolean; 2 | 3 | export = hasSymbolShams; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/has-symbols/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@ljharb/tsconfig", 3 | "compilerOptions": { 4 | "target": "ES2021", 5 | "maxNodeModuleJsDepth": 0, 6 | }, 7 | "exclude": [ 8 | "coverage" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/hasown/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | } 6 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/hasown/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/hasown 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with a single custom sponsorship URL 13 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/hasown/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "test" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/hasown/index.d.ts: -------------------------------------------------------------------------------- 1 | declare function hasOwn(o: O, p: K): o is O & Record; 2 | 3 | export = hasOwn; 4 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/hasown/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var call = Function.prototype.call; 4 | var $hasOwn = Object.prototype.hasOwnProperty; 5 | var bind = require('function-bind'); 6 | 7 | /** @type {import('.')} */ 8 | module.exports = bind.call(call, $hasOwn); 9 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/hasown/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@ljharb/tsconfig", 3 | "exclude": [ 4 | "coverage", 5 | ], 6 | } 7 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/inherits/inherits.js: -------------------------------------------------------------------------------- 1 | try { 2 | var util = require('util'); 3 | /* istanbul ignore next */ 4 | if (typeof util.inherits !== 'function') throw ''; 5 | module.exports = util.inherits; 6 | } catch (e) { 7 | /* istanbul ignore next */ 8 | module.exports = require('./inherits_browser.js'); 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/inherits/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "inherits", 3 | "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", 4 | "version": "2.0.4", 5 | "keywords": [ 6 | "inheritance", 7 | "class", 8 | "klass", 9 | "oop", 10 | "object-oriented", 11 | "inherits", 12 | "browser", 13 | "browserify" 14 | ], 15 | "main": "./inherits.js", 16 | "browser": "./inherits_browser.js", 17 | "repository": "git://github.com/isaacs/inherits", 18 | "license": "ISC", 19 | "scripts": { 20 | "test": "tap" 21 | }, 22 | "devDependencies": { 23 | "tap": "^14.2.4" 24 | }, 25 | "files": [ 26 | "inherits.js", 27 | "inherits_browser.js" 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "eqeqeq": ["error", "allow-null"], 8 | "id-length": "off", 9 | "new-cap": ["error", { 10 | "capIsNewExceptions": [ 11 | "RequireObjectCoercible", 12 | "ToObject", 13 | ], 14 | }], 15 | }, 16 | } 17 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/math-intrinsics 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with a single custom sponsorship URL 13 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/abs.d.ts: -------------------------------------------------------------------------------- 1 | export = Math.abs; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/abs.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./abs')} */ 4 | module.exports = Math.abs; 5 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/constants/maxArrayLength.d.ts: -------------------------------------------------------------------------------- 1 | declare const MAX_ARRAY_LENGTH: 4294967295; 2 | 3 | export = MAX_ARRAY_LENGTH; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/constants/maxArrayLength.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./maxArrayLength')} */ 4 | module.exports = 4294967295; // Math.pow(2, 32) - 1; 5 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts: -------------------------------------------------------------------------------- 1 | declare const MAX_SAFE_INTEGER: 9007199254740991; 2 | 3 | export = MAX_SAFE_INTEGER; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/constants/maxSafeInteger.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./maxSafeInteger')} */ 4 | // eslint-disable-next-line no-extra-parens 5 | module.exports = /** @type {import('./maxSafeInteger')} */ (Number.MAX_SAFE_INTEGER) || 9007199254740991; // Math.pow(2, 53) - 1; 6 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/constants/maxValue.d.ts: -------------------------------------------------------------------------------- 1 | declare const MAX_VALUE: 1.7976931348623157e+308; 2 | 3 | export = MAX_VALUE; 4 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/constants/maxValue.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./maxValue')} */ 4 | // eslint-disable-next-line no-extra-parens 5 | module.exports = /** @type {import('./maxValue')} */ (Number.MAX_VALUE) || 1.7976931348623157e+308; 6 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/floor.d.ts: -------------------------------------------------------------------------------- 1 | export = Math.floor; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/floor.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./floor')} */ 4 | module.exports = Math.floor; 5 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/isFinite.d.ts: -------------------------------------------------------------------------------- 1 | declare function isFinite(x: unknown): x is number | bigint; 2 | 3 | export = isFinite; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/isFinite.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var $isNaN = require('./isNaN'); 4 | 5 | /** @type {import('./isFinite')} */ 6 | module.exports = function isFinite(x) { 7 | return (typeof x === 'number' || typeof x === 'bigint') 8 | && !$isNaN(x) 9 | && x !== Infinity 10 | && x !== -Infinity; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/isInteger.d.ts: -------------------------------------------------------------------------------- 1 | declare function isInteger(argument: unknown): argument is number; 2 | 3 | export = isInteger; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/isInteger.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var $abs = require('./abs'); 4 | var $floor = require('./floor'); 5 | 6 | var $isNaN = require('./isNaN'); 7 | var $isFinite = require('./isFinite'); 8 | 9 | /** @type {import('./isInteger')} */ 10 | module.exports = function isInteger(argument) { 11 | if (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) { 12 | return false; 13 | } 14 | var absValue = $abs(argument); 15 | return $floor(absValue) === absValue; 16 | }; 17 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/isNaN.d.ts: -------------------------------------------------------------------------------- 1 | export = Number.isNaN; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/isNaN.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./isNaN')} */ 4 | module.exports = Number.isNaN || function isNaN(a) { 5 | return a !== a; 6 | }; 7 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/isNegativeZero.d.ts: -------------------------------------------------------------------------------- 1 | declare function isNegativeZero(x: unknown): boolean; 2 | 3 | export = isNegativeZero; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/isNegativeZero.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./isNegativeZero')} */ 4 | module.exports = function isNegativeZero(x) { 5 | return x === 0 && 1 / x === 1 / -0; 6 | }; 7 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/max.d.ts: -------------------------------------------------------------------------------- 1 | export = Math.max; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/max.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./max')} */ 4 | module.exports = Math.max; 5 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/min.d.ts: -------------------------------------------------------------------------------- 1 | export = Math.min; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/min.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./min')} */ 4 | module.exports = Math.min; 5 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/mod.d.ts: -------------------------------------------------------------------------------- 1 | declare function mod(number: number, modulo: number): number; 2 | 3 | export = mod; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/mod.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var $floor = require('./floor'); 4 | 5 | /** @type {import('./mod')} */ 6 | module.exports = function mod(number, modulo) { 7 | var remain = number % modulo; 8 | return $floor(remain >= 0 ? remain : remain + modulo); 9 | }; 10 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/pow.d.ts: -------------------------------------------------------------------------------- 1 | export = Math.pow; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/pow.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./pow')} */ 4 | module.exports = Math.pow; 5 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/round.d.ts: -------------------------------------------------------------------------------- 1 | export = Math.round; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/round.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./round')} */ 4 | module.exports = Math.round; 5 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/sign.d.ts: -------------------------------------------------------------------------------- 1 | declare function sign(x: number): number; 2 | 3 | export = sign; -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/sign.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var $isNaN = require('./isNaN'); 4 | 5 | /** @type {import('./sign')} */ 6 | module.exports = function sign(number) { 7 | if ($isNaN(number) || number === 0) { 8 | return number; 9 | } 10 | return number < 0 ? -1 : +1; 11 | }; 12 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/math-intrinsics/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@ljharb/tsconfig", 3 | } 4 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/media-typer/HISTORY.md: -------------------------------------------------------------------------------- 1 | 0.3.0 / 2014-09-07 2 | ================== 3 | 4 | * Support Node.js 0.6 5 | * Throw error when parameter format invalid on parse 6 | 7 | 0.2.0 / 2014-06-18 8 | ================== 9 | 10 | * Add `typer.format()` to format media types 11 | 12 | 0.1.0 / 2014-06-17 13 | ================== 14 | 15 | * Accept `req` as argument to `parse` 16 | * Accept `res` as argument to `parse` 17 | * Parse media type with extra LWS between type and first parameter 18 | 19 | 0.0.0 / 2014-06-13 20 | ================== 21 | 22 | * Initial implementation 23 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/merge-descriptors/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.1 / 2016-01-17 2 | ================== 3 | 4 | * perf: enable strict mode 5 | 6 | 1.0.0 / 2015-03-01 7 | ================== 8 | 9 | * Add option to only add new descriptors 10 | * Add simple argument validation 11 | * Add jsdoc to source file 12 | 13 | 0.0.2 / 2013-12-14 14 | ================== 15 | 16 | * Move repository to `component` organization 17 | 18 | 0.0.1 / 2013-10-29 19 | ================== 20 | 21 | * Initial release 22 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/methods/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.1.2 / 2016-01-17 2 | ================== 3 | 4 | * perf: enable strict mode 5 | 6 | 1.1.1 / 2014-12-30 7 | ================== 8 | 9 | * Improve `browserify` support 10 | 11 | 1.1.0 / 2014-07-05 12 | ================== 13 | 14 | * Add `CONNECT` method 15 | 16 | 1.0.1 / 2014-06-02 17 | ================== 18 | 19 | * Fix module to work with harmony transform 20 | 21 | 1.0.0 / 2014-05-08 22 | ================== 23 | 24 | * Add `PURGE` method 25 | 26 | 0.1.0 / 2013-10-28 27 | ================== 28 | 29 | * Add `http.METHODS` support 30 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/mime-db/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * mime-db 3 | * Copyright(c) 2014 Jonathan Ong 4 | * Copyright(c) 2015-2022 Douglas Christopher Wilson 5 | * MIT Licensed 6 | */ 7 | 8 | /** 9 | * Module exports. 10 | */ 11 | 12 | module.exports = require('./db.json') 13 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/mime/.npmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson10/lab2/node_modules/mime/.npmignore -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/mime/cli.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var mime = require('./mime.js'); 4 | var file = process.argv[2]; 5 | var type = mime.lookup(file); 6 | 7 | process.stdout.write(type + '\n'); 8 | 9 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/object-inspect/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/object-inspect 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/object-inspect/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "instrumentation": false, 5 | "sourceMap": false, 6 | "reporter": ["text-summary", "text", "html", "json"], 7 | "exclude": [ 8 | "coverage", 9 | "example", 10 | "test", 11 | "test-core-js.js" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/object-inspect/example/all.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var inspect = require('../'); 4 | var Buffer = require('safer-buffer').Buffer; 5 | 6 | var holes = ['a', 'b']; 7 | holes[4] = 'e'; 8 | holes[6] = 'g'; 9 | 10 | var obj = { 11 | a: 1, 12 | b: [3, 4, undefined, null], 13 | c: undefined, 14 | d: null, 15 | e: { 16 | regex: /^x/i, 17 | buf: Buffer.from('abc'), 18 | holes: holes 19 | }, 20 | now: new Date() 21 | }; 22 | obj.self = obj; 23 | console.log(inspect(obj)); 24 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/object-inspect/example/circular.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var inspect = require('../'); 4 | var obj = { a: 1, b: [3, 4] }; 5 | obj.c = obj; 6 | console.log(inspect(obj)); 7 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/object-inspect/example/fn.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var inspect = require('../'); 4 | var obj = [1, 2, function f(n) { return n + 5; }, 4]; 5 | console.log(inspect(obj)); 6 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/object-inspect/example/inspect.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* eslint-env browser */ 4 | var inspect = require('../'); 5 | 6 | var d = document.createElement('div'); 7 | d.setAttribute('id', 'beep'); 8 | d.innerHTML = 'woooiiiii'; 9 | 10 | console.log(inspect([d, { a: 3, b: 4, c: [5, 6, [7, [8, [9]]]] }])); 11 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/object-inspect/package-support.json: -------------------------------------------------------------------------------- 1 | { 2 | "versions": [ 3 | { 4 | "version": "*", 5 | "target": { 6 | "node": "all" 7 | }, 8 | "response": { 9 | "type": "time-permitting" 10 | }, 11 | "backing": { 12 | "npm-funding": true, 13 | "donations": [ 14 | "https://github.com/ljharb", 15 | "https://tidelift.com/funding/github/npm/object-inspect" 16 | ] 17 | } 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/object-inspect/test-core-js.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | require('core-js'); 4 | 5 | var inspect = require('./'); 6 | var test = require('tape'); 7 | 8 | test('Maps', function (t) { 9 | t.equal(inspect(new Map([[1, 2]])), 'Map (1) {1 => 2}'); 10 | t.end(); 11 | }); 12 | 13 | test('WeakMaps', function (t) { 14 | t.equal(inspect(new WeakMap([[{}, 2]])), 'WeakMap { ? }'); 15 | t.end(); 16 | }); 17 | 18 | test('Sets', function (t) { 19 | t.equal(inspect(new Set([[1, 2]])), 'Set (1) {[ 1, 2 ]}'); 20 | t.end(); 21 | }); 22 | 23 | test('WeakSets', function (t) { 24 | t.equal(inspect(new WeakSet([[1, 2]])), 'WeakSet { ? }'); 25 | t.end(); 26 | }); 27 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/object-inspect/test/browser/dom.js: -------------------------------------------------------------------------------- 1 | var inspect = require('../../'); 2 | var test = require('tape'); 3 | 4 | test('dom element', function (t) { 5 | t.plan(1); 6 | 7 | var d = document.createElement('div'); 8 | d.setAttribute('id', 'beep'); 9 | d.innerHTML = 'woooiiiii'; 10 | 11 | t.equal( 12 | inspect([d, { a: 3, b: 4, c: [5, 6, [7, [8, [9]]]] }]), 13 | '[

...
, { a: 3, b: 4, c: [ 5, 6, [ 7, [ 8, [Object] ] ] ] } ]' 14 | ); 15 | }); 16 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/object-inspect/test/circular.js: -------------------------------------------------------------------------------- 1 | var inspect = require('../'); 2 | var test = require('tape'); 3 | 4 | test('circular', function (t) { 5 | t.plan(2); 6 | var obj = { a: 1, b: [3, 4] }; 7 | obj.c = obj; 8 | t.equal(inspect(obj), '{ a: 1, b: [ 3, 4 ], c: [Circular] }'); 9 | 10 | var double = {}; 11 | double.a = [double]; 12 | double.b = {}; 13 | double.b.inner = double.b; 14 | double.b.obj = double; 15 | t.equal(inspect(double), '{ a: [ [Circular] ], b: { inner: [Circular], obj: [Circular] } }'); 16 | }); 17 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/object-inspect/test/deep.js: -------------------------------------------------------------------------------- 1 | var inspect = require('../'); 2 | var test = require('tape'); 3 | 4 | test('deep', function (t) { 5 | t.plan(4); 6 | var obj = [[[[[[500]]]]]]; 7 | t.equal(inspect(obj), '[ [ [ [ [ [Array] ] ] ] ] ]'); 8 | t.equal(inspect(obj, { depth: 4 }), '[ [ [ [ [Array] ] ] ] ]'); 9 | t.equal(inspect(obj, { depth: 2 }), '[ [ [Array] ] ]'); 10 | 11 | t.equal(inspect([[[{ a: 1 }]]], { depth: 3 }), '[ [ [ [Object] ] ] ]'); 12 | }); 13 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/object-inspect/test/global.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var inspect = require('../'); 4 | 5 | var test = require('tape'); 6 | var globalThis = require('globalthis')(); 7 | 8 | test('global object', function (t) { 9 | /* eslint-env browser */ 10 | var expected = typeof window === 'undefined' ? 'globalThis' : 'Window'; 11 | t.equal( 12 | inspect([globalThis]), 13 | '[ { [object ' + expected + '] } ]' 14 | ); 15 | 16 | t.end(); 17 | }); 18 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/object-inspect/test/has.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var inspect = require('../'); 4 | var test = require('tape'); 5 | var mockProperty = require('mock-property'); 6 | 7 | test('when Object#hasOwnProperty is deleted', function (t) { 8 | t.plan(1); 9 | var arr = [1, , 3]; // eslint-disable-line no-sparse-arrays 10 | 11 | t.teardown(mockProperty(Array.prototype, 1, { value: 2 })); // this is needed to account for "in" vs "hasOwnProperty" 12 | t.teardown(mockProperty(Object.prototype, 'hasOwnProperty', { 'delete': true })); 13 | 14 | t.equal(inspect(arr), '[ 1, , 3 ]'); 15 | }); 16 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/object-inspect/test/holes.js: -------------------------------------------------------------------------------- 1 | var test = require('tape'); 2 | var inspect = require('../'); 3 | 4 | var xs = ['a', 'b']; 5 | xs[5] = 'f'; 6 | xs[7] = 'j'; 7 | xs[8] = 'k'; 8 | 9 | test('holes', function (t) { 10 | t.plan(1); 11 | t.equal( 12 | inspect(xs), 13 | "[ 'a', 'b', , , , 'f', , 'j', 'k' ]" 14 | ); 15 | }); 16 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/object-inspect/test/lowbyte.js: -------------------------------------------------------------------------------- 1 | var test = require('tape'); 2 | var inspect = require('../'); 3 | 4 | var obj = { x: 'a\r\nb', y: '\x05! \x1f \x12' }; 5 | 6 | test('interpolate low bytes', function (t) { 7 | t.plan(1); 8 | t.equal( 9 | inspect(obj), 10 | "{ x: 'a\\r\\nb', y: '\\x05! \\x1F \\x12' }" 11 | ); 12 | }); 13 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/object-inspect/test/undef.js: -------------------------------------------------------------------------------- 1 | var test = require('tape'); 2 | var inspect = require('../'); 3 | 4 | var obj = { a: 1, b: [3, 4, undefined, null], c: undefined, d: null }; 5 | 6 | test('undef and null', function (t) { 7 | t.plan(1); 8 | t.equal( 9 | inspect(obj), 10 | '{ a: 1, b: [ 3, 4, undefined, null ], c: undefined, d: null }' 11 | ); 12 | }); 13 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/object-inspect/util.inspect.js: -------------------------------------------------------------------------------- 1 | module.exports = require('util').inspect; 2 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/path-to-regexp/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "path-to-regexp", 3 | "description": "Express style path to RegExp utility", 4 | "version": "0.1.12", 5 | "files": [ 6 | "index.js", 7 | "LICENSE" 8 | ], 9 | "scripts": { 10 | "test": "istanbul cover _mocha -- -R spec" 11 | }, 12 | "keywords": [ 13 | "express", 14 | "regexp" 15 | ], 16 | "component": { 17 | "scripts": { 18 | "path-to-regexp": "index.js" 19 | } 20 | }, 21 | "license": "MIT", 22 | "repository": { 23 | "type": "git", 24 | "url": "https://github.com/pillarjs/path-to-regexp.git" 25 | }, 26 | "devDependencies": { 27 | "mocha": "^1.17.1", 28 | "istanbul": "^0.2.6" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/qs/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/qs 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with a single custom sponsorship URL 13 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/qs/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "dist" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/qs/lib/formats.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var replace = String.prototype.replace; 4 | var percentTwenties = /%20/g; 5 | 6 | var Format = { 7 | RFC1738: 'RFC1738', 8 | RFC3986: 'RFC3986' 9 | }; 10 | 11 | module.exports = { 12 | 'default': Format.RFC3986, 13 | formatters: { 14 | RFC1738: function (value) { 15 | return replace.call(value, percentTwenties, '+'); 16 | }, 17 | RFC3986: function (value) { 18 | return String(value); 19 | } 20 | }, 21 | RFC1738: Format.RFC1738, 22 | RFC3986: Format.RFC3986 23 | }; 24 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/qs/lib/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var stringify = require('./stringify'); 4 | var parse = require('./parse'); 5 | var formats = require('./formats'); 6 | 7 | module.exports = { 8 | formats: formats, 9 | parse: parse, 10 | stringify: stringify 11 | }; 12 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/send/node_modules/encodeurl/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.2 / 2018-01-21 2 | ================== 3 | 4 | * Fix encoding `%` as last character 5 | 6 | 1.0.1 / 2016-06-09 7 | ================== 8 | 9 | * Fix encoding unpaired surrogates at start/end of string 10 | 11 | 1.0.0 / 2016-06-08 12 | ================== 13 | 14 | * Initial release 15 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/setprototypeof/index.d.ts: -------------------------------------------------------------------------------- 1 | declare function setPrototypeOf(o: any, proto: object | null): any; 2 | export = setPrototypeOf; 3 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/setprototypeof/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | /* eslint no-proto: 0 */ 3 | module.exports = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties) 4 | 5 | function setProtoOf (obj, proto) { 6 | obj.__proto__ = proto 7 | return obj 8 | } 9 | 10 | function mixinProperties (obj, proto) { 11 | for (var prop in proto) { 12 | if (!Object.prototype.hasOwnProperty.call(obj, prop)) { 13 | obj[prop] = proto[prop] 14 | } 15 | } 16 | return obj 17 | } 18 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/side-channel-list/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | insert_final_newline = true 7 | indent_style = tab 8 | indent_size = 2 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/side-channel-list/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "max-lines-per-function": 0, 8 | "multiline-comment-style": 1, 9 | "new-cap": [2, { "capIsNewExceptions": ["GetIntrinsic"] }], 10 | }, 11 | } 12 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/side-channel-list/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/side-channel-list 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/side-channel-list/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "test" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/side-channel-list/index.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace getSideChannelList { 2 | type Channel = { 3 | assert: (key: K) => void; 4 | has: (key: K) => boolean; 5 | get: (key: K) => V | undefined; 6 | set: (key: K, value: V) => void; 7 | delete: (key: K) => boolean; 8 | }; 9 | } 10 | 11 | declare function getSideChannelList(): getSideChannelList.Channel; 12 | 13 | export = getSideChannelList; 14 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/side-channel-list/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@ljharb/tsconfig", 3 | "compilerOptions": { 4 | "target": "es2021", 5 | }, 6 | "exclude": [ 7 | "coverage", 8 | ], 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/side-channel-map/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | insert_final_newline = true 7 | indent_style = tab 8 | indent_size = 2 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/side-channel-map/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "max-lines-per-function": 0, 8 | "multiline-comment-style": 1, 9 | "new-cap": [2, { "capIsNewExceptions": ["GetIntrinsic"] }], 10 | }, 11 | } 12 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/side-channel-map/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/side-channel-map 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/side-channel-map/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "test" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/side-channel-map/index.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace getSideChannelMap { 2 | type Channel = { 3 | assert: (key: K) => void; 4 | has: (key: K) => boolean; 5 | get: (key: K) => V | undefined; 6 | set: (key: K, value: V) => void; 7 | delete: (key: K) => boolean; 8 | }; 9 | } 10 | 11 | declare function getSideChannelMap(): getSideChannelMap.Channel; 12 | 13 | declare const x: false | typeof getSideChannelMap; 14 | 15 | export = x; 16 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/side-channel-map/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@ljharb/tsconfig", 3 | "compilerOptions": { 4 | "target": "es2021", 5 | }, 6 | "exclude": [ 7 | "coverage", 8 | ], 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/side-channel-weakmap/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | insert_final_newline = true 7 | indent_style = tab 8 | indent_size = 2 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/side-channel-weakmap/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "id-length": 0, 8 | "max-lines-per-function": 0, 9 | "multiline-comment-style": 1, 10 | "new-cap": [2, { "capIsNewExceptions": ["GetIntrinsic"] }], 11 | }, 12 | } 13 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/side-channel-weakmap/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/side-channel-weakmap 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/side-channel-weakmap/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "test" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/side-channel-weakmap/index.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace getSideChannelWeakMap { 2 | type Channel = { 3 | assert: (key: K) => void; 4 | has: (key: K) => boolean; 5 | get: (key: K) => V | undefined; 6 | set: (key: K, value: V) => void; 7 | delete: (key: K) => boolean; 8 | } 9 | } 10 | 11 | declare function getSideChannelWeakMap(): getSideChannelWeakMap.Channel; 12 | 13 | declare const x: false | typeof getSideChannelWeakMap; 14 | 15 | export = x; 16 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/side-channel-weakmap/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@ljharb/tsconfig", 3 | "compilerOptions": { 4 | "target": "es2021", 5 | }, 6 | "exclude": [ 7 | "coverage", 8 | ], 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/side-channel/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | insert_final_newline = true 7 | indent_style = tab 8 | indent_size = 2 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/side-channel/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "id-length": 0, 8 | "max-lines-per-function": 0, 9 | "multiline-comment-style": 1, 10 | "new-cap": [2, { "capIsNewExceptions": ["GetIntrinsic"] }], 11 | }, 12 | } 13 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/side-channel/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/side-channel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/side-channel/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "test" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/side-channel/index.d.ts: -------------------------------------------------------------------------------- 1 | import getSideChannelList from 'side-channel-list'; 2 | import getSideChannelMap from 'side-channel-map'; 3 | import getSideChannelWeakMap from 'side-channel-weakmap'; 4 | 5 | declare namespace getSideChannel { 6 | type Channel = 7 | | getSideChannelList.Channel 8 | | ReturnType, false>> 9 | | ReturnType, false>>; 10 | } 11 | 12 | declare function getSideChannel(): getSideChannel.Channel; 13 | 14 | export = getSideChannel; 15 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/side-channel/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@ljharb/tsconfig", 3 | "compilerOptions": { 4 | "target": "es2021", 5 | }, 6 | "exclude": [ 7 | "coverage", 8 | ], 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/toidentifier/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.1 / 2021-11-14 2 | ================== 3 | 4 | * pref: enable strict mode 5 | 6 | 1.0.0 / 2018-07-09 7 | ================== 8 | 9 | * Initial release 10 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/toidentifier/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * toidentifier 3 | * Copyright(c) 2016 Douglas Christopher Wilson 4 | * MIT Licensed 5 | */ 6 | 7 | 'use strict' 8 | 9 | /** 10 | * Module exports. 11 | * @public 12 | */ 13 | 14 | module.exports = toIdentifier 15 | 16 | /** 17 | * Trasform the given string into a JavaScript identifier 18 | * 19 | * @param {string} str 20 | * @returns {string} 21 | * @public 22 | */ 23 | 24 | function toIdentifier (str) { 25 | return str 26 | .split(' ') 27 | .map(function (token) { 28 | return token.slice(0, 1).toUpperCase() + token.slice(1) 29 | }) 30 | .join('') 31 | .replace(/[^ _0-9a-z]/gi, '') 32 | } 33 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/unpipe/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.0 / 2015-06-14 2 | ================== 3 | 4 | * Initial release 5 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/utils-merge/.npmignore: -------------------------------------------------------------------------------- 1 | CONTRIBUTING.md 2 | Makefile 3 | docs/ 4 | examples/ 5 | reports/ 6 | test/ 7 | 8 | .jshintrc 9 | .travis.yml 10 | -------------------------------------------------------------------------------- /lesson10/lab2/node_modules/utils-merge/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Merge object b with object a. 3 | * 4 | * var a = { foo: 'bar' } 5 | * , b = { bar: 'baz' }; 6 | * 7 | * merge(a, b); 8 | * // => { foo: 'bar', bar: 'baz' } 9 | * 10 | * @param {Object} a 11 | * @param {Object} b 12 | * @return {Object} 13 | * @api public 14 | */ 15 | 16 | exports = module.exports = function(a, b){ 17 | if (a && b) { 18 | for (var key in b) { 19 | a[key] = b[key]; 20 | } 21 | } 22 | return a; 23 | }; 24 | -------------------------------------------------------------------------------- /lesson10/lab2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lab2", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "scripts": { 6 | "test": "echo \"Error: no test specified\" && exit 1" 7 | }, 8 | "keywords": [], 9 | "author": "", 10 | "license": "ISC", 11 | "description": "", 12 | "dependencies": { 13 | "express": "^4.21.2" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /lesson10/lab3/.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | -------------------------------------------------------------------------------- /lesson10/lab3/Dockerfile: -------------------------------------------------------------------------------- 1 | # 使用Node.js Alpine 镜像作为基础镜像 2 | FROM node:18-alpine 3 | 4 | # 设置工作目录 5 | WORKDIR /app 6 | 7 | # 复制 package.json 和 package-lock.json 8 | COPY package*.json ./ 9 | 10 | # 安装依赖,包括 pg 11 | RUN npm install 12 | 13 | # 复制应用代码 14 | COPY . . 15 | 16 | # 暴露端口 17 | EXPOSE 3000 18 | 19 | # 启动应用 20 | CMD ["node", "app.js"] 21 | -------------------------------------------------------------------------------- /lesson10/lab3/docker-compose.yaml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | services: 3 | web: 4 | build: . 5 | ports: 6 | - "3000:3000" 7 | depends_on: 8 | - db 9 | environment: 10 | DB_HOST: db 11 | DB_USER: user 12 | DB_PASSWORD: password 13 | DB_NAME: mydb 14 | DB_PORT: 5432 15 | db: 16 | image: postgres:13-alpine 17 | environment: 18 | POSTGRES_USER: user 19 | POSTGRES_PASSWORD: password 20 | POSTGRES_DB: mydb 21 | volumes: 22 | - db_data:/var/lib/postgresql/data 23 | volumes: 24 | db_data: 25 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/.bin/mime: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) 6 | if command -v cygpath > /dev/null 2>&1; then 7 | basedir=`cygpath -w "$basedir"` 8 | fi 9 | ;; 10 | esac 11 | 12 | if [ -x "$basedir/node" ]; then 13 | exec "$basedir/node" "$basedir/../mime/cli.js" "$@" 14 | else 15 | exec node "$basedir/../mime/cli.js" "$@" 16 | fi 17 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/.bin/mime.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | GOTO start 3 | :find_dp0 4 | SET dp0=%~dp0 5 | EXIT /b 6 | :start 7 | SETLOCAL 8 | CALL :find_dp0 9 | 10 | IF EXIST "%dp0%\node.exe" ( 11 | SET "_prog=%dp0%\node.exe" 12 | ) ELSE ( 13 | SET "_prog=node" 14 | SET PATHEXT=%PATHEXT:;.JS;=;% 15 | ) 16 | 17 | endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mime\cli.js" %* 18 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/call-bind-apply-helpers/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "func-name-matching": 0, 8 | "id-length": 0, 9 | "new-cap": [2, { 10 | "capIsNewExceptions": [ 11 | "GetIntrinsic", 12 | ], 13 | }], 14 | "no-magic-numbers": 0, 15 | }, 16 | } 17 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/call-bind-apply-helpers/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/call-bind-apply-helpers 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/call-bind-apply-helpers/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "exclude": [ 6 | "coverage", 7 | "test" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/call-bind-apply-helpers/actualApply.d.ts: -------------------------------------------------------------------------------- 1 | export = Reflect.apply; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/call-bind-apply-helpers/actualApply.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var bind = require('function-bind'); 4 | 5 | var $apply = require('./functionApply'); 6 | var $call = require('./functionCall'); 7 | var $reflectApply = require('./reflectApply'); 8 | 9 | /** @type {import('./actualApply')} */ 10 | module.exports = $reflectApply || bind.call($call, $apply); 11 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/call-bind-apply-helpers/applyBind.d.ts: -------------------------------------------------------------------------------- 1 | import actualApply from './actualApply'; 2 | 3 | type TupleSplitHead = T['length'] extends N 4 | ? T 5 | : T extends [...infer R, any] 6 | ? TupleSplitHead 7 | : never 8 | 9 | type TupleSplitTail = O['length'] extends N 10 | ? T 11 | : T extends [infer F, ...infer R] 12 | ? TupleSplitTail<[...R], N, [...O, F]> 13 | : never 14 | 15 | type TupleSplit = [TupleSplitHead, TupleSplitTail] 16 | 17 | declare function applyBind(...args: TupleSplit, 2>[1]): ReturnType; 18 | 19 | export = applyBind; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/call-bind-apply-helpers/applyBind.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var bind = require('function-bind'); 4 | var $apply = require('./functionApply'); 5 | var actualApply = require('./actualApply'); 6 | 7 | /** @type {import('./applyBind')} */ 8 | module.exports = function applyBind() { 9 | return actualApply(bind, $apply, arguments); 10 | }; 11 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/call-bind-apply-helpers/functionApply.d.ts: -------------------------------------------------------------------------------- 1 | export = Function.prototype.apply; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/call-bind-apply-helpers/functionApply.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./functionApply')} */ 4 | module.exports = Function.prototype.apply; 5 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/call-bind-apply-helpers/functionCall.d.ts: -------------------------------------------------------------------------------- 1 | export = Function.prototype.call; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/call-bind-apply-helpers/functionCall.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./functionCall')} */ 4 | module.exports = Function.prototype.call; 5 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/call-bind-apply-helpers/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var bind = require('function-bind'); 4 | var $TypeError = require('es-errors/type'); 5 | 6 | var $call = require('./functionCall'); 7 | var $actualApply = require('./actualApply'); 8 | 9 | /** @type {import('.')} */ 10 | module.exports = function callBindBasic(args) { 11 | if (args.length < 1 || typeof args[0] !== 'function') { 12 | throw new $TypeError('a function is required'); 13 | } 14 | return $actualApply(bind, $call, args); 15 | }; 16 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/call-bind-apply-helpers/reflectApply.d.ts: -------------------------------------------------------------------------------- 1 | declare const reflectApply: false | typeof Reflect.apply; 2 | 3 | export = reflectApply; 4 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/call-bind-apply-helpers/reflectApply.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./reflectApply')} */ 4 | module.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply; 5 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/call-bind-apply-helpers/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@ljharb/tsconfig", 3 | "compilerOptions": { 4 | "target": "es2021", 5 | }, 6 | "exclude": [ 7 | "coverage", 8 | ], 9 | } -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/call-bound/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "new-cap": [2, { 8 | "capIsNewExceptions": [ 9 | "GetIntrinsic", 10 | ], 11 | }], 12 | }, 13 | } 14 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/call-bound/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/call-bound 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/call-bound/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "exclude": [ 6 | "coverage", 7 | "test" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/call-bound/index.d.ts: -------------------------------------------------------------------------------- 1 | import callBind from 'call-bind-apply-helpers'; 2 | 3 | declare function callBoundIntrinsic( 4 | name: string, 5 | allowMissing?: false 6 | ): ReturnType; 7 | 8 | declare function callBoundIntrinsic( 9 | name: string, 10 | allowMissing: true 11 | ): undefined | ReturnType; 12 | 13 | export = callBoundIntrinsic; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/call-bound/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@ljharb/tsconfig", 3 | "compilerOptions": { 4 | "target": "es2021", 5 | }, 6 | "exclude": [ 7 | "coverage", 8 | ], 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/content-type/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.5 / 2023-01-29 2 | ================== 3 | 4 | * perf: skip value escaping when unnecessary 5 | 6 | 1.0.4 / 2017-09-11 7 | ================== 8 | 9 | * perf: skip parameter parsing when no parameters 10 | 11 | 1.0.3 / 2017-09-10 12 | ================== 13 | 14 | * perf: remove argument reassignment 15 | 16 | 1.0.2 / 2016-05-09 17 | ================== 18 | 19 | * perf: enable strict mode 20 | 21 | 1.0.1 / 2015-02-13 22 | ================== 23 | 24 | * Improve missing `Content-Type` header error message 25 | 26 | 1.0.0 / 2015-02-01 27 | ================== 28 | 29 | * Initial implementation, derived from `media-typer@0.3.0` 30 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/cookie-signature/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | *.sock 5 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/cookie-signature/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cookie-signature", 3 | "version": "1.0.6", 4 | "description": "Sign and unsign cookies", 5 | "keywords": ["cookie", "sign", "unsign"], 6 | "author": "TJ Holowaychuk ", 7 | "license": "MIT", 8 | "repository": { "type": "git", "url": "https://github.com/visionmedia/node-cookie-signature.git"}, 9 | "dependencies": {}, 10 | "devDependencies": { 11 | "mocha": "*", 12 | "should": "*" 13 | }, 14 | "scripts": { 15 | "test": "mocha --require should --reporter spec" 16 | }, 17 | "main": "index" 18 | } 19 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/debug/.coveralls.yml: -------------------------------------------------------------------------------- 1 | repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve 2 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/debug/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "node": true 5 | }, 6 | "rules": { 7 | "no-console": 0, 8 | "no-empty": [1, { "allowEmptyCatch": true }] 9 | }, 10 | "extends": "eslint:recommended" 11 | } 12 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/debug/.npmignore: -------------------------------------------------------------------------------- 1 | support 2 | test 3 | examples 4 | example 5 | *.sock 6 | dist 7 | yarn.lock 8 | coverage 9 | bower.json 10 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/debug/.travis.yml: -------------------------------------------------------------------------------- 1 | 2 | language: node_js 3 | node_js: 4 | - "6" 5 | - "5" 6 | - "4" 7 | 8 | install: 9 | - make node_modules 10 | 11 | script: 12 | - make lint 13 | - make test 14 | - make coveralls 15 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/debug/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "debug", 3 | "repo": "visionmedia/debug", 4 | "description": "small debugging utility", 5 | "version": "2.6.9", 6 | "keywords": [ 7 | "debug", 8 | "log", 9 | "debugger" 10 | ], 11 | "main": "src/browser.js", 12 | "scripts": [ 13 | "src/browser.js", 14 | "src/debug.js" 15 | ], 16 | "dependencies": { 17 | "rauchg/ms.js": "0.7.1" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/debug/node.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./src/node'); 2 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/debug/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Detect Electron renderer process, which is node, but we should 3 | * treat as a browser. 4 | */ 5 | 6 | if (typeof process !== 'undefined' && process.type === 'renderer') { 7 | module.exports = require('./browser.js'); 8 | } else { 9 | module.exports = require('./node.js'); 10 | } 11 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/debug/src/inspector-log.js: -------------------------------------------------------------------------------- 1 | module.exports = inspectorLog; 2 | 3 | // black hole 4 | const nullStream = new (require('stream').Writable)(); 5 | nullStream._write = () => {}; 6 | 7 | /** 8 | * Outputs a `console.log()` to the Node.js Inspector console *only*. 9 | */ 10 | function inspectorLog() { 11 | const stdout = console._stdout; 12 | console._stdout = nullStream; 13 | console.log.apply(console, arguments); 14 | console._stdout = stdout; 15 | } 16 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/dunder-proto/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | } 6 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/dunder-proto/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/dunder-proto 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/dunder-proto/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "test" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/dunder-proto/get.d.ts: -------------------------------------------------------------------------------- 1 | declare function getDunderProto(target: {}): object | null; 2 | 3 | declare const x: false | typeof getDunderProto; 4 | 5 | export = x; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/dunder-proto/set.d.ts: -------------------------------------------------------------------------------- 1 | declare function setDunderProto

(target: {}, proto: P): P; 2 | 3 | declare const x: false | typeof setDunderProto; 4 | 5 | export = x; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/dunder-proto/test/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | require('./get'); 4 | require('./set'); 5 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/dunder-proto/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@ljharb/tsconfig", 3 | "compilerOptions": { 4 | "target": "ES2021", 5 | }, 6 | "exclude": [ 7 | "coverage", 8 | ], 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-define-property/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "new-cap": ["error", { 8 | "capIsNewExceptions": [ 9 | "GetIntrinsic", 10 | ], 11 | }], 12 | }, 13 | } 14 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-define-property/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/es-define-property 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with a single custom sponsorship URL 13 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-define-property/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "exclude": [ 6 | "coverage", 7 | "test" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-define-property/index.d.ts: -------------------------------------------------------------------------------- 1 | declare const defineProperty: false | typeof Object.defineProperty; 2 | 3 | export = defineProperty; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-define-property/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('.')} */ 4 | var $defineProperty = Object.defineProperty || false; 5 | if ($defineProperty) { 6 | try { 7 | $defineProperty({}, 'a', { value: 1 }); 8 | } catch (e) { 9 | // IE 8 has a broken defineProperty 10 | $defineProperty = false; 11 | } 12 | } 13 | 14 | module.exports = $defineProperty; 15 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-define-property/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@ljharb/tsconfig", 3 | "compilerOptions": { 4 | "target": "es2022", 5 | }, 6 | "exclude": [ 7 | "coverage", 8 | "test/list-exports" 9 | ], 10 | } 11 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-errors/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | } 6 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-errors/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/es-errors 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with a single custom sponsorship URL 13 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-errors/eval.d.ts: -------------------------------------------------------------------------------- 1 | declare const EvalError: EvalErrorConstructor; 2 | 3 | export = EvalError; 4 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-errors/eval.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./eval')} */ 4 | module.exports = EvalError; 5 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-errors/index.d.ts: -------------------------------------------------------------------------------- 1 | declare const Error: ErrorConstructor; 2 | 3 | export = Error; 4 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-errors/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('.')} */ 4 | module.exports = Error; 5 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-errors/range.d.ts: -------------------------------------------------------------------------------- 1 | declare const RangeError: RangeErrorConstructor; 2 | 3 | export = RangeError; 4 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-errors/range.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./range')} */ 4 | module.exports = RangeError; 5 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-errors/ref.d.ts: -------------------------------------------------------------------------------- 1 | declare const ReferenceError: ReferenceErrorConstructor; 2 | 3 | export = ReferenceError; 4 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-errors/ref.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./ref')} */ 4 | module.exports = ReferenceError; 5 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-errors/syntax.d.ts: -------------------------------------------------------------------------------- 1 | declare const SyntaxError: SyntaxErrorConstructor; 2 | 3 | export = SyntaxError; 4 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-errors/syntax.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./syntax')} */ 4 | module.exports = SyntaxError; 5 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-errors/test/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var test = require('tape'); 4 | 5 | var E = require('../'); 6 | var R = require('../range'); 7 | var Ref = require('../ref'); 8 | var S = require('../syntax'); 9 | var T = require('../type'); 10 | 11 | test('errors', function (t) { 12 | t.equal(E, Error); 13 | t.equal(R, RangeError); 14 | t.equal(Ref, ReferenceError); 15 | t.equal(S, SyntaxError); 16 | t.equal(T, TypeError); 17 | 18 | t.end(); 19 | }); 20 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-errors/type.d.ts: -------------------------------------------------------------------------------- 1 | declare const TypeError: TypeErrorConstructor 2 | 3 | export = TypeError; 4 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-errors/type.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./type')} */ 4 | module.exports = TypeError; 5 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-errors/uri.d.ts: -------------------------------------------------------------------------------- 1 | declare const URIError: URIErrorConstructor; 2 | 3 | export = URIError; 4 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-errors/uri.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./uri')} */ 4 | module.exports = URIError; 5 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-object-atoms/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "eqeqeq": ["error", "allow-null"], 8 | "id-length": "off", 9 | "new-cap": ["error", { 10 | "capIsNewExceptions": [ 11 | "RequireObjectCoercible", 12 | "ToObject", 13 | ], 14 | }], 15 | }, 16 | } 17 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-object-atoms/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/es-object 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with a single custom sponsorship URL 13 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-object-atoms/RequireObjectCoercible.d.ts: -------------------------------------------------------------------------------- 1 | declare function RequireObjectCoercible(value: T, optMessage?: string): T; 2 | 3 | export = RequireObjectCoercible; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-object-atoms/RequireObjectCoercible.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var $TypeError = require('es-errors/type'); 4 | 5 | /** @type {import('./RequireObjectCoercible')} */ 6 | module.exports = function RequireObjectCoercible(value) { 7 | if (value == null) { 8 | throw new $TypeError((arguments.length > 0 && arguments[1]) || ('Cannot call method on ' + value)); 9 | } 10 | return value; 11 | }; 12 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-object-atoms/ToObject.d.ts: -------------------------------------------------------------------------------- 1 | declare function ToObject(value: T extends object ? T : {}): T extends object ? T : object; 2 | 3 | export = ToObject; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-object-atoms/ToObject.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var $Object = require('./'); 4 | var RequireObjectCoercible = require('./RequireObjectCoercible'); 5 | 6 | /** @type {import('./ToObject')} */ 7 | module.exports = function ToObject(value) { 8 | RequireObjectCoercible(value); 9 | return $Object(value); 10 | }; 11 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-object-atoms/index.d.ts: -------------------------------------------------------------------------------- 1 | declare const Object: ObjectConstructor; 2 | 3 | export = Object; 4 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-object-atoms/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('.')} */ 4 | module.exports = Object; 5 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/es-object-atoms/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@ljharb/tsconfig", 3 | "compilerOptions": { 4 | "target": "es5", 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/escape-html/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "escape-html", 3 | "description": "Escape string for use in HTML", 4 | "version": "1.0.3", 5 | "license": "MIT", 6 | "keywords": [ 7 | "escape", 8 | "html", 9 | "utility" 10 | ], 11 | "repository": "component/escape-html", 12 | "devDependencies": { 13 | "benchmark": "1.0.0", 14 | "beautify-benchmark": "0.2.4" 15 | }, 16 | "files": [ 17 | "LICENSE", 18 | "Readme.md", 19 | "index.js" 20 | ], 21 | "scripts": { 22 | "bench": "node benchmark/index.js" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/express/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * express 3 | * Copyright(c) 2009-2013 TJ Holowaychuk 4 | * Copyright(c) 2013 Roman Shtylman 5 | * Copyright(c) 2014-2015 Douglas Christopher Wilson 6 | * MIT Licensed 7 | */ 8 | 9 | 'use strict'; 10 | 11 | module.exports = require('./lib/express'); 12 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/forwarded/HISTORY.md: -------------------------------------------------------------------------------- 1 | 0.2.0 / 2021-05-31 2 | ================== 3 | 4 | * Use `req.socket` over deprecated `req.connection` 5 | 6 | 0.1.2 / 2017-09-14 7 | ================== 8 | 9 | * perf: improve header parsing 10 | * perf: reduce overhead when no `X-Forwarded-For` header 11 | 12 | 0.1.1 / 2017-09-10 13 | ================== 14 | 15 | * Fix trimming leading / trailing OWS 16 | * perf: hoist regular expression 17 | 18 | 0.1.0 / 2014-09-21 19 | ================== 20 | 21 | * Initial release 22 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/function-bind/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "func-name-matching": 0, 8 | "indent": [2, 4], 9 | "no-new-func": [1], 10 | }, 11 | 12 | "overrides": [ 13 | { 14 | "files": "test/**", 15 | "rules": { 16 | "max-lines-per-function": 0, 17 | "strict": [0] 18 | }, 19 | }, 20 | ], 21 | } 22 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/function-bind/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/function-bind 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/function-bind/.github/SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security 2 | 3 | Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report. 4 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/function-bind/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "test" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/function-bind/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var implementation = require('./implementation'); 4 | 5 | module.exports = Function.prototype.bind || implementation; 6 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/function-bind/test/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "array-bracket-newline": 0, 4 | "array-element-newline": 0, 5 | "max-statements-per-line": [2, { "max": 2 }], 6 | "no-invalid-this": 0, 7 | "no-magic-numbers": 0, 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/get-intrinsic/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/get-intrinsic 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/get-intrinsic/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "exclude": [ 6 | "coverage", 7 | "test" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/gopd/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "func-style": [2, "declaration"], 8 | "id-length": 0, 9 | "multiline-comment-style": 0, 10 | "new-cap": [2, { 11 | "capIsNewExceptions": [ 12 | "GetIntrinsic", 13 | ], 14 | }], 15 | }, 16 | } 17 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/gopd/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/gopd 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/gopd/gOPD.d.ts: -------------------------------------------------------------------------------- 1 | export = Object.getOwnPropertyDescriptor; 2 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/gopd/gOPD.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./gOPD')} */ 4 | module.exports = Object.getOwnPropertyDescriptor; 5 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/gopd/index.d.ts: -------------------------------------------------------------------------------- 1 | declare function gOPD(obj: O, prop: K): PropertyDescriptor | undefined; 2 | 3 | declare const fn: typeof gOPD | undefined | null; 4 | 5 | export = fn; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/gopd/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('.')} */ 4 | var $gOPD = require('./gOPD'); 5 | 6 | if ($gOPD) { 7 | try { 8 | $gOPD([], 'length'); 9 | } catch (e) { 10 | // IE 8 has a broken gOPD 11 | $gOPD = null; 12 | } 13 | } 14 | 15 | module.exports = $gOPD; 16 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/gopd/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@ljharb/tsconfig", 3 | "compilerOptions": { 4 | "target": "es2021", 5 | }, 6 | "exclude": [ 7 | "coverage", 8 | ], 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/has-symbols/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "max-statements-per-line": [2, { "max": 2 }], 8 | "no-magic-numbers": 0, 9 | "multiline-comment-style": 0, 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/has-symbols/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/has-symbols 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/has-symbols/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "exclude": [ 6 | "coverage", 7 | "test" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/has-symbols/index.d.ts: -------------------------------------------------------------------------------- 1 | declare function hasNativeSymbols(): boolean; 2 | 3 | export = hasNativeSymbols; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/has-symbols/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var origSymbol = typeof Symbol !== 'undefined' && Symbol; 4 | var hasSymbolSham = require('./shams'); 5 | 6 | /** @type {import('.')} */ 7 | module.exports = function hasNativeSymbols() { 8 | if (typeof origSymbol !== 'function') { return false; } 9 | if (typeof Symbol !== 'function') { return false; } 10 | if (typeof origSymbol('foo') !== 'symbol') { return false; } 11 | if (typeof Symbol('bar') !== 'symbol') { return false; } 12 | 13 | return hasSymbolSham(); 14 | }; 15 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/has-symbols/shams.d.ts: -------------------------------------------------------------------------------- 1 | declare function hasSymbolShams(): boolean; 2 | 3 | export = hasSymbolShams; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/has-symbols/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@ljharb/tsconfig", 3 | "compilerOptions": { 4 | "target": "ES2021", 5 | "maxNodeModuleJsDepth": 0, 6 | }, 7 | "exclude": [ 8 | "coverage" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/hasown/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | } 6 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/hasown/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/hasown 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with a single custom sponsorship URL 13 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/hasown/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "test" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/hasown/index.d.ts: -------------------------------------------------------------------------------- 1 | declare function hasOwn(o: O, p: K): o is O & Record; 2 | 3 | export = hasOwn; 4 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/hasown/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var call = Function.prototype.call; 4 | var $hasOwn = Object.prototype.hasOwnProperty; 5 | var bind = require('function-bind'); 6 | 7 | /** @type {import('.')} */ 8 | module.exports = bind.call(call, $hasOwn); 9 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/hasown/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@ljharb/tsconfig", 3 | "exclude": [ 4 | "coverage", 5 | ], 6 | } 7 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/inherits/inherits.js: -------------------------------------------------------------------------------- 1 | try { 2 | var util = require('util'); 3 | /* istanbul ignore next */ 4 | if (typeof util.inherits !== 'function') throw ''; 5 | module.exports = util.inherits; 6 | } catch (e) { 7 | /* istanbul ignore next */ 8 | module.exports = require('./inherits_browser.js'); 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/inherits/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "inherits", 3 | "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", 4 | "version": "2.0.4", 5 | "keywords": [ 6 | "inheritance", 7 | "class", 8 | "klass", 9 | "oop", 10 | "object-oriented", 11 | "inherits", 12 | "browser", 13 | "browserify" 14 | ], 15 | "main": "./inherits.js", 16 | "browser": "./inherits_browser.js", 17 | "repository": "git://github.com/isaacs/inherits", 18 | "license": "ISC", 19 | "scripts": { 20 | "test": "tap" 21 | }, 22 | "devDependencies": { 23 | "tap": "^14.2.4" 24 | }, 25 | "files": [ 26 | "inherits.js", 27 | "inherits_browser.js" 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "eqeqeq": ["error", "allow-null"], 8 | "id-length": "off", 9 | "new-cap": ["error", { 10 | "capIsNewExceptions": [ 11 | "RequireObjectCoercible", 12 | "ToObject", 13 | ], 14 | }], 15 | }, 16 | } 17 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/math-intrinsics 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with a single custom sponsorship URL 13 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/abs.d.ts: -------------------------------------------------------------------------------- 1 | export = Math.abs; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/abs.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./abs')} */ 4 | module.exports = Math.abs; 5 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/constants/maxArrayLength.d.ts: -------------------------------------------------------------------------------- 1 | declare const MAX_ARRAY_LENGTH: 4294967295; 2 | 3 | export = MAX_ARRAY_LENGTH; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/constants/maxArrayLength.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./maxArrayLength')} */ 4 | module.exports = 4294967295; // Math.pow(2, 32) - 1; 5 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts: -------------------------------------------------------------------------------- 1 | declare const MAX_SAFE_INTEGER: 9007199254740991; 2 | 3 | export = MAX_SAFE_INTEGER; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/constants/maxSafeInteger.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./maxSafeInteger')} */ 4 | // eslint-disable-next-line no-extra-parens 5 | module.exports = /** @type {import('./maxSafeInteger')} */ (Number.MAX_SAFE_INTEGER) || 9007199254740991; // Math.pow(2, 53) - 1; 6 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/constants/maxValue.d.ts: -------------------------------------------------------------------------------- 1 | declare const MAX_VALUE: 1.7976931348623157e+308; 2 | 3 | export = MAX_VALUE; 4 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/constants/maxValue.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./maxValue')} */ 4 | // eslint-disable-next-line no-extra-parens 5 | module.exports = /** @type {import('./maxValue')} */ (Number.MAX_VALUE) || 1.7976931348623157e+308; 6 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/floor.d.ts: -------------------------------------------------------------------------------- 1 | export = Math.floor; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/floor.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./floor')} */ 4 | module.exports = Math.floor; 5 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/isFinite.d.ts: -------------------------------------------------------------------------------- 1 | declare function isFinite(x: unknown): x is number | bigint; 2 | 3 | export = isFinite; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/isFinite.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var $isNaN = require('./isNaN'); 4 | 5 | /** @type {import('./isFinite')} */ 6 | module.exports = function isFinite(x) { 7 | return (typeof x === 'number' || typeof x === 'bigint') 8 | && !$isNaN(x) 9 | && x !== Infinity 10 | && x !== -Infinity; 11 | }; 12 | 13 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/isInteger.d.ts: -------------------------------------------------------------------------------- 1 | declare function isInteger(argument: unknown): argument is number; 2 | 3 | export = isInteger; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/isInteger.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var $abs = require('./abs'); 4 | var $floor = require('./floor'); 5 | 6 | var $isNaN = require('./isNaN'); 7 | var $isFinite = require('./isFinite'); 8 | 9 | /** @type {import('./isInteger')} */ 10 | module.exports = function isInteger(argument) { 11 | if (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) { 12 | return false; 13 | } 14 | var absValue = $abs(argument); 15 | return $floor(absValue) === absValue; 16 | }; 17 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/isNaN.d.ts: -------------------------------------------------------------------------------- 1 | export = Number.isNaN; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/isNaN.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./isNaN')} */ 4 | module.exports = Number.isNaN || function isNaN(a) { 5 | return a !== a; 6 | }; 7 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/isNegativeZero.d.ts: -------------------------------------------------------------------------------- 1 | declare function isNegativeZero(x: unknown): boolean; 2 | 3 | export = isNegativeZero; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/isNegativeZero.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./isNegativeZero')} */ 4 | module.exports = function isNegativeZero(x) { 5 | return x === 0 && 1 / x === 1 / -0; 6 | }; 7 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/max.d.ts: -------------------------------------------------------------------------------- 1 | export = Math.max; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/max.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./max')} */ 4 | module.exports = Math.max; 5 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/min.d.ts: -------------------------------------------------------------------------------- 1 | export = Math.min; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/min.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./min')} */ 4 | module.exports = Math.min; 5 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/mod.d.ts: -------------------------------------------------------------------------------- 1 | declare function mod(number: number, modulo: number): number; 2 | 3 | export = mod; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/mod.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var $floor = require('./floor'); 4 | 5 | /** @type {import('./mod')} */ 6 | module.exports = function mod(number, modulo) { 7 | var remain = number % modulo; 8 | return $floor(remain >= 0 ? remain : remain + modulo); 9 | }; 10 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/pow.d.ts: -------------------------------------------------------------------------------- 1 | export = Math.pow; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/pow.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./pow')} */ 4 | module.exports = Math.pow; 5 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/round.d.ts: -------------------------------------------------------------------------------- 1 | export = Math.round; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/round.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** @type {import('./round')} */ 4 | module.exports = Math.round; 5 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/sign.d.ts: -------------------------------------------------------------------------------- 1 | declare function sign(x: number): number; 2 | 3 | export = sign; -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/sign.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var $isNaN = require('./isNaN'); 4 | 5 | /** @type {import('./sign')} */ 6 | module.exports = function sign(number) { 7 | if ($isNaN(number) || number === 0) { 8 | return number; 9 | } 10 | return number < 0 ? -1 : +1; 11 | }; 12 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/math-intrinsics/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@ljharb/tsconfig", 3 | } 4 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/media-typer/HISTORY.md: -------------------------------------------------------------------------------- 1 | 0.3.0 / 2014-09-07 2 | ================== 3 | 4 | * Support Node.js 0.6 5 | * Throw error when parameter format invalid on parse 6 | 7 | 0.2.0 / 2014-06-18 8 | ================== 9 | 10 | * Add `typer.format()` to format media types 11 | 12 | 0.1.0 / 2014-06-17 13 | ================== 14 | 15 | * Accept `req` as argument to `parse` 16 | * Accept `res` as argument to `parse` 17 | * Parse media type with extra LWS between type and first parameter 18 | 19 | 0.0.0 / 2014-06-13 20 | ================== 21 | 22 | * Initial implementation 23 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/merge-descriptors/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.1 / 2016-01-17 2 | ================== 3 | 4 | * perf: enable strict mode 5 | 6 | 1.0.0 / 2015-03-01 7 | ================== 8 | 9 | * Add option to only add new descriptors 10 | * Add simple argument validation 11 | * Add jsdoc to source file 12 | 13 | 0.0.2 / 2013-12-14 14 | ================== 15 | 16 | * Move repository to `component` organization 17 | 18 | 0.0.1 / 2013-10-29 19 | ================== 20 | 21 | * Initial release 22 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/methods/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.1.2 / 2016-01-17 2 | ================== 3 | 4 | * perf: enable strict mode 5 | 6 | 1.1.1 / 2014-12-30 7 | ================== 8 | 9 | * Improve `browserify` support 10 | 11 | 1.1.0 / 2014-07-05 12 | ================== 13 | 14 | * Add `CONNECT` method 15 | 16 | 1.0.1 / 2014-06-02 17 | ================== 18 | 19 | * Fix module to work with harmony transform 20 | 21 | 1.0.0 / 2014-05-08 22 | ================== 23 | 24 | * Add `PURGE` method 25 | 26 | 0.1.0 / 2013-10-28 27 | ================== 28 | 29 | * Add `http.METHODS` support 30 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/mime-db/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * mime-db 3 | * Copyright(c) 2014 Jonathan Ong 4 | * Copyright(c) 2015-2022 Douglas Christopher Wilson 5 | * MIT Licensed 6 | */ 7 | 8 | /** 9 | * Module exports. 10 | */ 11 | 12 | module.exports = require('./db.json') 13 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/mime/.npmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson10/lab3/node_modules/mime/.npmignore -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/mime/cli.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var mime = require('./mime.js'); 4 | var file = process.argv[2]; 5 | var type = mime.lookup(file); 6 | 7 | process.stdout.write(type + '\n'); 8 | 9 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/object-inspect/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/object-inspect 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/object-inspect/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "instrumentation": false, 5 | "sourceMap": false, 6 | "reporter": ["text-summary", "text", "html", "json"], 7 | "exclude": [ 8 | "coverage", 9 | "example", 10 | "test", 11 | "test-core-js.js" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/object-inspect/example/all.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var inspect = require('../'); 4 | var Buffer = require('safer-buffer').Buffer; 5 | 6 | var holes = ['a', 'b']; 7 | holes[4] = 'e'; 8 | holes[6] = 'g'; 9 | 10 | var obj = { 11 | a: 1, 12 | b: [3, 4, undefined, null], 13 | c: undefined, 14 | d: null, 15 | e: { 16 | regex: /^x/i, 17 | buf: Buffer.from('abc'), 18 | holes: holes 19 | }, 20 | now: new Date() 21 | }; 22 | obj.self = obj; 23 | console.log(inspect(obj)); 24 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/object-inspect/example/circular.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var inspect = require('../'); 4 | var obj = { a: 1, b: [3, 4] }; 5 | obj.c = obj; 6 | console.log(inspect(obj)); 7 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/object-inspect/example/fn.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var inspect = require('../'); 4 | var obj = [1, 2, function f(n) { return n + 5; }, 4]; 5 | console.log(inspect(obj)); 6 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/object-inspect/example/inspect.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* eslint-env browser */ 4 | var inspect = require('../'); 5 | 6 | var d = document.createElement('div'); 7 | d.setAttribute('id', 'beep'); 8 | d.innerHTML = 'woooiiiii'; 9 | 10 | console.log(inspect([d, { a: 3, b: 4, c: [5, 6, [7, [8, [9]]]] }])); 11 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/object-inspect/package-support.json: -------------------------------------------------------------------------------- 1 | { 2 | "versions": [ 3 | { 4 | "version": "*", 5 | "target": { 6 | "node": "all" 7 | }, 8 | "response": { 9 | "type": "time-permitting" 10 | }, 11 | "backing": { 12 | "npm-funding": true, 13 | "donations": [ 14 | "https://github.com/ljharb", 15 | "https://tidelift.com/funding/github/npm/object-inspect" 16 | ] 17 | } 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/object-inspect/test-core-js.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | require('core-js'); 4 | 5 | var inspect = require('./'); 6 | var test = require('tape'); 7 | 8 | test('Maps', function (t) { 9 | t.equal(inspect(new Map([[1, 2]])), 'Map (1) {1 => 2}'); 10 | t.end(); 11 | }); 12 | 13 | test('WeakMaps', function (t) { 14 | t.equal(inspect(new WeakMap([[{}, 2]])), 'WeakMap { ? }'); 15 | t.end(); 16 | }); 17 | 18 | test('Sets', function (t) { 19 | t.equal(inspect(new Set([[1, 2]])), 'Set (1) {[ 1, 2 ]}'); 20 | t.end(); 21 | }); 22 | 23 | test('WeakSets', function (t) { 24 | t.equal(inspect(new WeakSet([[1, 2]])), 'WeakSet { ? }'); 25 | t.end(); 26 | }); 27 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/object-inspect/test/browser/dom.js: -------------------------------------------------------------------------------- 1 | var inspect = require('../../'); 2 | var test = require('tape'); 3 | 4 | test('dom element', function (t) { 5 | t.plan(1); 6 | 7 | var d = document.createElement('div'); 8 | d.setAttribute('id', 'beep'); 9 | d.innerHTML = 'woooiiiii'; 10 | 11 | t.equal( 12 | inspect([d, { a: 3, b: 4, c: [5, 6, [7, [8, [9]]]] }]), 13 | '[

...
, { a: 3, b: 4, c: [ 5, 6, [ 7, [ 8, [Object] ] ] ] } ]' 14 | ); 15 | }); 16 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/object-inspect/test/circular.js: -------------------------------------------------------------------------------- 1 | var inspect = require('../'); 2 | var test = require('tape'); 3 | 4 | test('circular', function (t) { 5 | t.plan(2); 6 | var obj = { a: 1, b: [3, 4] }; 7 | obj.c = obj; 8 | t.equal(inspect(obj), '{ a: 1, b: [ 3, 4 ], c: [Circular] }'); 9 | 10 | var double = {}; 11 | double.a = [double]; 12 | double.b = {}; 13 | double.b.inner = double.b; 14 | double.b.obj = double; 15 | t.equal(inspect(double), '{ a: [ [Circular] ], b: { inner: [Circular], obj: [Circular] } }'); 16 | }); 17 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/object-inspect/test/deep.js: -------------------------------------------------------------------------------- 1 | var inspect = require('../'); 2 | var test = require('tape'); 3 | 4 | test('deep', function (t) { 5 | t.plan(4); 6 | var obj = [[[[[[500]]]]]]; 7 | t.equal(inspect(obj), '[ [ [ [ [ [Array] ] ] ] ] ]'); 8 | t.equal(inspect(obj, { depth: 4 }), '[ [ [ [ [Array] ] ] ] ]'); 9 | t.equal(inspect(obj, { depth: 2 }), '[ [ [Array] ] ]'); 10 | 11 | t.equal(inspect([[[{ a: 1 }]]], { depth: 3 }), '[ [ [ [Object] ] ] ]'); 12 | }); 13 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/object-inspect/test/global.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var inspect = require('../'); 4 | 5 | var test = require('tape'); 6 | var globalThis = require('globalthis')(); 7 | 8 | test('global object', function (t) { 9 | /* eslint-env browser */ 10 | var expected = typeof window === 'undefined' ? 'globalThis' : 'Window'; 11 | t.equal( 12 | inspect([globalThis]), 13 | '[ { [object ' + expected + '] } ]' 14 | ); 15 | 16 | t.end(); 17 | }); 18 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/object-inspect/test/has.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var inspect = require('../'); 4 | var test = require('tape'); 5 | var mockProperty = require('mock-property'); 6 | 7 | test('when Object#hasOwnProperty is deleted', function (t) { 8 | t.plan(1); 9 | var arr = [1, , 3]; // eslint-disable-line no-sparse-arrays 10 | 11 | t.teardown(mockProperty(Array.prototype, 1, { value: 2 })); // this is needed to account for "in" vs "hasOwnProperty" 12 | t.teardown(mockProperty(Object.prototype, 'hasOwnProperty', { 'delete': true })); 13 | 14 | t.equal(inspect(arr), '[ 1, , 3 ]'); 15 | }); 16 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/object-inspect/test/holes.js: -------------------------------------------------------------------------------- 1 | var test = require('tape'); 2 | var inspect = require('../'); 3 | 4 | var xs = ['a', 'b']; 5 | xs[5] = 'f'; 6 | xs[7] = 'j'; 7 | xs[8] = 'k'; 8 | 9 | test('holes', function (t) { 10 | t.plan(1); 11 | t.equal( 12 | inspect(xs), 13 | "[ 'a', 'b', , , , 'f', , 'j', 'k' ]" 14 | ); 15 | }); 16 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/object-inspect/test/lowbyte.js: -------------------------------------------------------------------------------- 1 | var test = require('tape'); 2 | var inspect = require('../'); 3 | 4 | var obj = { x: 'a\r\nb', y: '\x05! \x1f \x12' }; 5 | 6 | test('interpolate low bytes', function (t) { 7 | t.plan(1); 8 | t.equal( 9 | inspect(obj), 10 | "{ x: 'a\\r\\nb', y: '\\x05! \\x1F \\x12' }" 11 | ); 12 | }); 13 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/object-inspect/test/undef.js: -------------------------------------------------------------------------------- 1 | var test = require('tape'); 2 | var inspect = require('../'); 3 | 4 | var obj = { a: 1, b: [3, 4, undefined, null], c: undefined, d: null }; 5 | 6 | test('undef and null', function (t) { 7 | t.plan(1); 8 | t.equal( 9 | inspect(obj), 10 | '{ a: 1, b: [ 3, 4, undefined, null ], c: undefined, d: null }' 11 | ); 12 | }); 13 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/object-inspect/util.inspect.js: -------------------------------------------------------------------------------- 1 | module.exports = require('util').inspect; 2 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/path-to-regexp/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "path-to-regexp", 3 | "description": "Express style path to RegExp utility", 4 | "version": "0.1.12", 5 | "files": [ 6 | "index.js", 7 | "LICENSE" 8 | ], 9 | "scripts": { 10 | "test": "istanbul cover _mocha -- -R spec" 11 | }, 12 | "keywords": [ 13 | "express", 14 | "regexp" 15 | ], 16 | "component": { 17 | "scripts": { 18 | "path-to-regexp": "index.js" 19 | } 20 | }, 21 | "license": "MIT", 22 | "repository": { 23 | "type": "git", 24 | "url": "https://github.com/pillarjs/path-to-regexp.git" 25 | }, 26 | "devDependencies": { 27 | "mocha": "^1.17.1", 28 | "istanbul": "^0.2.6" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg-cloudflare/dist/empty.d.ts: -------------------------------------------------------------------------------- 1 | declare const _default: {}; 2 | export default _default; 3 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg-cloudflare/dist/empty.js: -------------------------------------------------------------------------------- 1 | // This is an empty module that is served up when outside of a workerd environment 2 | // See the `exports` field in package.json 3 | export default {}; 4 | //# sourceMappingURL=empty.js.map -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg-cloudflare/dist/empty.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"empty.js","sourceRoot":"","sources":["../src/empty.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,0CAA0C;AAC1C,eAAe,EAAE,CAAA"} -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg-cloudflare/src/empty.ts: -------------------------------------------------------------------------------- 1 | // This is an empty module that is served up when outside of a workerd environment 2 | // See the `exports` field in package.json 3 | export default {} 4 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg-connection-string/index.d.ts: -------------------------------------------------------------------------------- 1 | export function parse(connectionString: string): ConnectionOptions 2 | 3 | export interface ConnectionOptions { 4 | host: string | null 5 | password?: string 6 | user?: string 7 | port?: string | null 8 | database: string | null | undefined 9 | client_encoding?: string 10 | ssl?: boolean | string 11 | 12 | application_name?: string 13 | fallback_application_name?: string 14 | options?: string 15 | } 16 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg-int8/README.md: -------------------------------------------------------------------------------- 1 | [![Build status][ci image]][ci] 2 | 3 | 64-bit big-endian signed integer-to-string conversion designed for [pg][]. 4 | 5 | ```js 6 | const readInt8 = require('pg-int8'); 7 | 8 | readInt8(Buffer.from([0, 1, 2, 3, 4, 5, 6, 7])) 9 | // '283686952306183' 10 | ``` 11 | 12 | 13 | [pg]: https://github.com/brianc/node-postgres 14 | 15 | [ci]: https://travis-ci.org/charmander/pg-int8 16 | [ci image]: https://api.travis-ci.org/charmander/pg-int8.svg 17 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg-int8/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pg-int8", 3 | "version": "1.0.1", 4 | "description": "64-bit big-endian signed integer-to-string conversion", 5 | "bugs": "https://github.com/charmander/pg-int8/issues", 6 | "license": "ISC", 7 | "files": [ 8 | "index.js" 9 | ], 10 | "repository": { 11 | "type": "git", 12 | "url": "https://github.com/charmander/pg-int8" 13 | }, 14 | "scripts": { 15 | "test": "tap test" 16 | }, 17 | "devDependencies": { 18 | "@charmander/eslint-config-base": "1.0.2", 19 | "tap": "10.7.3" 20 | }, 21 | "engines": { 22 | "node": ">=4.0.0" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg-pool/test/logging.js: -------------------------------------------------------------------------------- 1 | const expect = require('expect.js') 2 | 3 | const describe = require('mocha').describe 4 | const it = require('mocha').it 5 | 6 | const Pool = require('../') 7 | 8 | describe('logging', function () { 9 | it('logs to supplied log function if given', function () { 10 | const messages = [] 11 | const log = function (msg) { 12 | messages.push(msg) 13 | } 14 | const pool = new Pool({ log: log }) 15 | return pool.query('SELECT NOW()').then(function () { 16 | expect(messages.length).to.be.greaterThan(0) 17 | return pool.end() 18 | }) 19 | }) 20 | }) 21 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg-pool/test/setup.js: -------------------------------------------------------------------------------- 1 | const crash = (reason) => { 2 | process.on(reason, (err) => { 3 | console.error(reason, err.stack) 4 | process.exit(-1) 5 | }) 6 | } 7 | 8 | crash('unhandledRejection') 9 | crash('uncaughtError') 10 | crash('warning') 11 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg-pool/test/submittable.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const Cursor = require('pg-cursor') 3 | const expect = require('expect.js') 4 | const describe = require('mocha').describe 5 | const it = require('mocha').it 6 | 7 | const Pool = require('../') 8 | 9 | describe('submittle', () => { 10 | it('is returned from the query method', false, (done) => { 11 | const pool = new Pool() 12 | const cursor = pool.query(new Cursor('SELECT * from generate_series(0, 1000)')) 13 | cursor.read((err, rows) => { 14 | expect(err).to.be(undefined) 15 | expect(!!rows).to.be.ok() 16 | cursor.close(done) 17 | }) 18 | }) 19 | }) 20 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg-pool/test/timeout.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson10/lab3/node_modules/pg-pool/test/timeout.js -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg-pool/test/verify.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const expect = require('expect.js') 3 | 4 | const describe = require('mocha').describe 5 | const it = require('mocha').it 6 | 7 | const Pool = require('../') 8 | 9 | describe('verify', () => { 10 | it('verifies a client with a callback', (done) => { 11 | const pool = new Pool({ 12 | verify: (client, cb) => { 13 | cb(new Error('nope')) 14 | }, 15 | }) 16 | 17 | pool.connect((err, client) => { 18 | expect(err).to.be.an(Error) 19 | expect(err.message).to.be('nope') 20 | pool.end() 21 | done() 22 | }) 23 | }) 24 | }) 25 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg-protocol/README.md: -------------------------------------------------------------------------------- 1 | # pg-protocol 2 | 3 | Low level postgres wire protocol parser and serializer written in Typescript. Used by node-postgres. Needs more documentation. :smile: 4 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg-protocol/dist/b.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg-protocol/dist/buffer-reader.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | export declare class BufferReader { 3 | private offset; 4 | private buffer; 5 | private encoding; 6 | constructor(offset?: number); 7 | setBuffer(offset: number, buffer: Buffer): void; 8 | int16(): number; 9 | byte(): number; 10 | int32(): number; 11 | string(length: number): string; 12 | cstring(): string; 13 | bytes(length: number): Buffer; 14 | } 15 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg-protocol/dist/buffer-writer.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | export declare class Writer { 3 | private size; 4 | private buffer; 5 | private offset; 6 | private headerPosition; 7 | constructor(size?: number); 8 | private ensure; 9 | addInt32(num: number): Writer; 10 | addInt16(num: number): Writer; 11 | addCString(string: string): Writer; 12 | addString(string?: string): Writer; 13 | add(otherBuffer: Buffer): Writer; 14 | private join; 15 | flush(code?: number): Buffer; 16 | } 17 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg-protocol/dist/inbound-parser.test.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg-protocol/dist/index.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | import { DatabaseError } from './messages'; 3 | import { serialize } from './serializer'; 4 | import { MessageCallback } from './parser'; 5 | export declare function parse(stream: NodeJS.ReadableStream, callback: MessageCallback): Promise; 6 | export { serialize, DatabaseError }; 7 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg-protocol/dist/index.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAA0C;AAUtB,8FAVX,wBAAa,OAUW;AATjC,6CAAwC;AAS/B,0FATA,sBAAS,OASA;AARlB,qCAAkD;AAElD,SAAgB,KAAK,CAAC,MAA6B,EAAE,QAAyB;IAC5E,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAA;IAC3B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;IACrE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;AACpE,CAAC;AAJD,sBAIC"} -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg-protocol/dist/outbound-serializer.test.d.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg-protocol/src/b.ts: -------------------------------------------------------------------------------- 1 | // file for microbenchmarking 2 | 3 | import { BufferReader } from './buffer-reader' 4 | 5 | const LOOPS = 1000 6 | let count = 0 7 | let start = Date.now() 8 | 9 | const reader = new BufferReader() 10 | const buffer = Buffer.from([33, 33, 33, 33, 33, 33, 33, 0]) 11 | 12 | const run = () => { 13 | if (count > LOOPS) { 14 | console.log(Date.now() - start) 15 | return 16 | } 17 | count++ 18 | for (let i = 0; i < LOOPS; i++) { 19 | reader.setBuffer(0, buffer) 20 | reader.cstring() 21 | } 22 | setImmediate(run) 23 | } 24 | 25 | run() 26 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg-protocol/src/index.ts: -------------------------------------------------------------------------------- 1 | import { DatabaseError } from './messages' 2 | import { serialize } from './serializer' 3 | import { Parser, MessageCallback } from './parser' 4 | 5 | export function parse(stream: NodeJS.ReadableStream, callback: MessageCallback): Promise { 6 | const parser = new Parser() 7 | stream.on('data', (buffer: Buffer) => parser.parse(buffer, callback)) 8 | return new Promise((resolve) => stream.on('end', () => resolve())) 9 | } 10 | 11 | export { serialize, DatabaseError } 12 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg-protocol/src/types/chunky.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'chunky' 2 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg-types/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - '4' 4 | - 'lts/*' 5 | - 'node' 6 | env: 7 | - PGUSER=postgres 8 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg-types/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: publish-patch test 2 | 3 | test: 4 | npm test 5 | 6 | patch: test 7 | npm version patch -m "Bump version" 8 | git push origin master --tags 9 | npm publish 10 | 11 | minor: test 12 | npm version minor -m "Bump version" 13 | git push origin master --tags 14 | npm publish 15 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg-types/lib/arrayParser.js: -------------------------------------------------------------------------------- 1 | var array = require('postgres-array'); 2 | 3 | module.exports = { 4 | create: function (source, transform) { 5 | return { 6 | parse: function() { 7 | return array.parse(source, transform); 8 | } 9 | }; 10 | } 11 | }; 12 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg/lib/crypto/utils.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const useLegacyCrypto = parseInt(process.versions && process.versions.node && process.versions.node.split('.')[0]) < 15 4 | if (useLegacyCrypto) { 5 | // We are on an old version of Node.js that requires legacy crypto utilities. 6 | module.exports = require('./utils-legacy') 7 | } else { 8 | module.exports = require('./utils-webcrypto') 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pg/lib/native/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | module.exports = require('./client') 3 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/pgpass/lib/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var path = require('path') 4 | , fs = require('fs') 5 | , helper = require('./helper.js') 6 | ; 7 | 8 | 9 | module.exports = function(connInfo, cb) { 10 | var file = helper.getFileName(); 11 | 12 | fs.stat(file, function(err, stat){ 13 | if (err || !helper.usePgPass(stat, file)) { 14 | return cb(undefined); 15 | } 16 | 17 | var st = fs.createReadStream(file); 18 | 19 | helper.getPassword(connInfo, st, cb); 20 | }); 21 | }; 22 | 23 | module.exports.warnTo = helper.warnTo; 24 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/postgres-array/index.d.ts: -------------------------------------------------------------------------------- 1 | 2 | export function parse(source: string): string[]; 3 | export function parse(source: string, transform: (value: string) => T): T[]; 4 | 5 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/postgres-bytea/readme.md: -------------------------------------------------------------------------------- 1 | # postgres-bytea [![Build Status](https://travis-ci.org/bendrucker/postgres-bytea.svg?branch=master)](https://travis-ci.org/bendrucker/postgres-bytea) 2 | 3 | > Postgres bytea parser 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install --save postgres-bytea 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | var bytea = require('postgres-bytea'); 17 | bytea('\\000\\100\\200') 18 | //=> buffer 19 | ``` 20 | 21 | ## API 22 | 23 | #### `bytea(input)` -> `buffer` 24 | 25 | ##### input 26 | 27 | *Required* 28 | Type: `string` 29 | 30 | A Postgres bytea binary string. 31 | 32 | ## License 33 | 34 | MIT © [Ben Drucker](http://bendrucker.me) 35 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/postgres-interval/index.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace PostgresInterval { 2 | export interface IPostgresInterval { 3 | years?: number; 4 | months?: number; 5 | days?: number; 6 | hours?: number; 7 | minutes?: number; 8 | seconds?: number; 9 | milliseconds?: number; 10 | 11 | toPostgres(): string; 12 | 13 | toISO(): string; 14 | toISOString(): string; 15 | } 16 | } 17 | 18 | declare function PostgresInterval(raw: string): PostgresInterval.IPostgresInterval; 19 | 20 | export = PostgresInterval; 21 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/qs/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/qs 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with a single custom sponsorship URL 13 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/qs/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "dist" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/qs/lib/formats.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var replace = String.prototype.replace; 4 | var percentTwenties = /%20/g; 5 | 6 | var Format = { 7 | RFC1738: 'RFC1738', 8 | RFC3986: 'RFC3986' 9 | }; 10 | 11 | module.exports = { 12 | 'default': Format.RFC3986, 13 | formatters: { 14 | RFC1738: function (value) { 15 | return replace.call(value, percentTwenties, '+'); 16 | }, 17 | RFC3986: function (value) { 18 | return String(value); 19 | } 20 | }, 21 | RFC1738: Format.RFC1738, 22 | RFC3986: Format.RFC3986 23 | }; 24 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/qs/lib/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var stringify = require('./stringify'); 4 | var parse = require('./parse'); 5 | var formats = require('./formats'); 6 | 7 | module.exports = { 8 | formats: formats, 9 | parse: parse, 10 | stringify: stringify 11 | }; 12 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/send/node_modules/encodeurl/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.2 / 2018-01-21 2 | ================== 3 | 4 | * Fix encoding `%` as last character 5 | 6 | 1.0.1 / 2016-06-09 7 | ================== 8 | 9 | * Fix encoding unpaired surrogates at start/end of string 10 | 11 | 1.0.0 / 2016-06-08 12 | ================== 13 | 14 | * Initial release 15 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/setprototypeof/index.d.ts: -------------------------------------------------------------------------------- 1 | declare function setPrototypeOf(o: any, proto: object | null): any; 2 | export = setPrototypeOf; 3 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/setprototypeof/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | /* eslint no-proto: 0 */ 3 | module.exports = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties) 4 | 5 | function setProtoOf (obj, proto) { 6 | obj.__proto__ = proto 7 | return obj 8 | } 9 | 10 | function mixinProperties (obj, proto) { 11 | for (var prop in proto) { 12 | if (!Object.prototype.hasOwnProperty.call(obj, prop)) { 13 | obj[prop] = proto[prop] 14 | } 15 | } 16 | return obj 17 | } 18 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/side-channel-list/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | insert_final_newline = true 7 | indent_style = tab 8 | indent_size = 2 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/side-channel-list/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "max-lines-per-function": 0, 8 | "multiline-comment-style": 1, 9 | "new-cap": [2, { "capIsNewExceptions": ["GetIntrinsic"] }], 10 | }, 11 | } 12 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/side-channel-list/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/side-channel-list 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/side-channel-list/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "test" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/side-channel-list/index.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace getSideChannelList { 2 | type Channel = { 3 | assert: (key: K) => void; 4 | has: (key: K) => boolean; 5 | get: (key: K) => V | undefined; 6 | set: (key: K, value: V) => void; 7 | delete: (key: K) => boolean; 8 | }; 9 | } 10 | 11 | declare function getSideChannelList(): getSideChannelList.Channel; 12 | 13 | export = getSideChannelList; 14 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/side-channel-list/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@ljharb/tsconfig", 3 | "compilerOptions": { 4 | "target": "es2021", 5 | }, 6 | "exclude": [ 7 | "coverage", 8 | ], 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/side-channel-map/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | insert_final_newline = true 7 | indent_style = tab 8 | indent_size = 2 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/side-channel-map/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "max-lines-per-function": 0, 8 | "multiline-comment-style": 1, 9 | "new-cap": [2, { "capIsNewExceptions": ["GetIntrinsic"] }], 10 | }, 11 | } 12 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/side-channel-map/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/side-channel-map 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/side-channel-map/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "test" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/side-channel-map/index.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace getSideChannelMap { 2 | type Channel = { 3 | assert: (key: K) => void; 4 | has: (key: K) => boolean; 5 | get: (key: K) => V | undefined; 6 | set: (key: K, value: V) => void; 7 | delete: (key: K) => boolean; 8 | }; 9 | } 10 | 11 | declare function getSideChannelMap(): getSideChannelMap.Channel; 12 | 13 | declare const x: false | typeof getSideChannelMap; 14 | 15 | export = x; 16 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/side-channel-map/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@ljharb/tsconfig", 3 | "compilerOptions": { 4 | "target": "es2021", 5 | }, 6 | "exclude": [ 7 | "coverage", 8 | ], 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/side-channel-weakmap/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | insert_final_newline = true 7 | indent_style = tab 8 | indent_size = 2 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/side-channel-weakmap/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "id-length": 0, 8 | "max-lines-per-function": 0, 9 | "multiline-comment-style": 1, 10 | "new-cap": [2, { "capIsNewExceptions": ["GetIntrinsic"] }], 11 | }, 12 | } 13 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/side-channel-weakmap/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/side-channel-weakmap 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/side-channel-weakmap/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "test" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/side-channel-weakmap/index.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace getSideChannelWeakMap { 2 | type Channel = { 3 | assert: (key: K) => void; 4 | has: (key: K) => boolean; 5 | get: (key: K) => V | undefined; 6 | set: (key: K, value: V) => void; 7 | delete: (key: K) => boolean; 8 | } 9 | } 10 | 11 | declare function getSideChannelWeakMap(): getSideChannelWeakMap.Channel; 12 | 13 | declare const x: false | typeof getSideChannelWeakMap; 14 | 15 | export = x; 16 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/side-channel-weakmap/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@ljharb/tsconfig", 3 | "compilerOptions": { 4 | "target": "es2021", 5 | }, 6 | "exclude": [ 7 | "coverage", 8 | ], 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/side-channel/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | insert_final_newline = true 7 | indent_style = tab 8 | indent_size = 2 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/side-channel/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "id-length": 0, 8 | "max-lines-per-function": 0, 9 | "multiline-comment-style": 1, 10 | "new-cap": [2, { "capIsNewExceptions": ["GetIntrinsic"] }], 11 | }, 12 | } 13 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/side-channel/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/side-channel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/side-channel/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "test" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/side-channel/index.d.ts: -------------------------------------------------------------------------------- 1 | import getSideChannelList from 'side-channel-list'; 2 | import getSideChannelMap from 'side-channel-map'; 3 | import getSideChannelWeakMap from 'side-channel-weakmap'; 4 | 5 | declare namespace getSideChannel { 6 | type Channel = 7 | | getSideChannelList.Channel 8 | | ReturnType, false>> 9 | | ReturnType, false>>; 10 | } 11 | 12 | declare function getSideChannel(): getSideChannel.Channel; 13 | 14 | export = getSideChannel; 15 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/side-channel/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@ljharb/tsconfig", 3 | "compilerOptions": { 4 | "target": "es2021", 5 | }, 6 | "exclude": [ 7 | "coverage", 8 | ], 9 | } 10 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/split2/bench.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const split = require('./') 4 | const bench = require('fastbench') 5 | const binarySplit = require('binary-split') 6 | const fs = require('fs') 7 | 8 | function benchSplit (cb) { 9 | fs.createReadStream('package.json') 10 | .pipe(split()) 11 | .on('end', cb) 12 | .resume() 13 | } 14 | 15 | function benchBinarySplit (cb) { 16 | fs.createReadStream('package.json') 17 | .pipe(binarySplit()) 18 | .on('end', cb) 19 | .resume() 20 | } 21 | 22 | const run = bench([ 23 | benchSplit, 24 | benchBinarySplit 25 | ], 10000) 26 | 27 | run(run) 28 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/toidentifier/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.1 / 2021-11-14 2 | ================== 3 | 4 | * pref: enable strict mode 5 | 6 | 1.0.0 / 2018-07-09 7 | ================== 8 | 9 | * Initial release 10 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/toidentifier/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * toidentifier 3 | * Copyright(c) 2016 Douglas Christopher Wilson 4 | * MIT Licensed 5 | */ 6 | 7 | 'use strict' 8 | 9 | /** 10 | * Module exports. 11 | * @public 12 | */ 13 | 14 | module.exports = toIdentifier 15 | 16 | /** 17 | * Trasform the given string into a JavaScript identifier 18 | * 19 | * @param {string} str 20 | * @returns {string} 21 | * @public 22 | */ 23 | 24 | function toIdentifier (str) { 25 | return str 26 | .split(' ') 27 | .map(function (token) { 28 | return token.slice(0, 1).toUpperCase() + token.slice(1) 29 | }) 30 | .join('') 31 | .replace(/[^ _0-9a-z]/gi, '') 32 | } 33 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/unpipe/HISTORY.md: -------------------------------------------------------------------------------- 1 | 1.0.0 / 2015-06-14 2 | ================== 3 | 4 | * Initial release 5 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/utils-merge/.npmignore: -------------------------------------------------------------------------------- 1 | CONTRIBUTING.md 2 | Makefile 3 | docs/ 4 | examples/ 5 | reports/ 6 | test/ 7 | 8 | .jshintrc 9 | .travis.yml 10 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/utils-merge/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Merge object b with object a. 3 | * 4 | * var a = { foo: 'bar' } 5 | * , b = { bar: 'baz' }; 6 | * 7 | * merge(a, b); 8 | * // => { foo: 'bar', bar: 'baz' } 9 | * 10 | * @param {Object} a 11 | * @param {Object} b 12 | * @return {Object} 13 | * @api public 14 | */ 15 | 16 | exports = module.exports = function(a, b){ 17 | if (a && b) { 18 | for (var key in b) { 19 | a[key] = b[key]; 20 | } 21 | } 22 | return a; 23 | }; 24 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/xtend/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "maxdepth": 4, 3 | "maxstatements": 200, 4 | "maxcomplexity": 12, 5 | "maxlen": 80, 6 | "maxparams": 5, 7 | 8 | "curly": true, 9 | "eqeqeq": true, 10 | "immed": true, 11 | "latedef": false, 12 | "noarg": true, 13 | "noempty": true, 14 | "nonew": true, 15 | "undef": true, 16 | "unused": "vars", 17 | "trailing": true, 18 | 19 | "quotmark": true, 20 | "expr": true, 21 | "asi": true, 22 | 23 | "browser": false, 24 | "esnext": true, 25 | "devel": false, 26 | "node": false, 27 | "nonstandard": false, 28 | 29 | "predef": ["require", "module", "__dirname", "__filename"] 30 | } 31 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/xtend/immutable.js: -------------------------------------------------------------------------------- 1 | module.exports = extend 2 | 3 | var hasOwnProperty = Object.prototype.hasOwnProperty; 4 | 5 | function extend() { 6 | var target = {} 7 | 8 | for (var i = 0; i < arguments.length; i++) { 9 | var source = arguments[i] 10 | 11 | for (var key in source) { 12 | if (hasOwnProperty.call(source, key)) { 13 | target[key] = source[key] 14 | } 15 | } 16 | } 17 | 18 | return target 19 | } 20 | -------------------------------------------------------------------------------- /lesson10/lab3/node_modules/xtend/mutable.js: -------------------------------------------------------------------------------- 1 | module.exports = extend 2 | 3 | var hasOwnProperty = Object.prototype.hasOwnProperty; 4 | 5 | function extend(target) { 6 | for (var i = 1; i < arguments.length; i++) { 7 | var source = arguments[i] 8 | 9 | for (var key in source) { 10 | if (hasOwnProperty.call(source, key)) { 11 | target[key] = source[key] 12 | } 13 | } 14 | } 15 | 16 | return target 17 | } 18 | -------------------------------------------------------------------------------- /lesson10/lab3/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "express": "^4.21.2", 4 | "pg": "^8.13.1" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /lesson11/images/3Tier1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson11/images/3Tier1.png -------------------------------------------------------------------------------- /lesson11/images/3Tier2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson11/images/3Tier2.png -------------------------------------------------------------------------------- /lesson11/images/3Tier3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson11/images/3Tier3.png -------------------------------------------------------------------------------- /lesson11/images/3Tier4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson11/images/3Tier4.png -------------------------------------------------------------------------------- /lesson11/images/3Tier5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson11/images/3Tier5.png -------------------------------------------------------------------------------- /lesson11/images/GOLint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson11/images/GOLint.png -------------------------------------------------------------------------------- /lesson11/images/RESTful.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson11/images/RESTful.png -------------------------------------------------------------------------------- /lesson11/images/api.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson11/images/api.png -------------------------------------------------------------------------------- /lesson11/images/bilibili1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson11/images/bilibili1.png -------------------------------------------------------------------------------- /lesson11/images/bilibili2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson11/images/bilibili2.png -------------------------------------------------------------------------------- /lesson11/images/bilibili3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson11/images/bilibili3.png -------------------------------------------------------------------------------- /lesson11/images/blue_cat_worm.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson11/images/blue_cat_worm.jpeg -------------------------------------------------------------------------------- /lesson11/images/brick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson11/images/brick.png -------------------------------------------------------------------------------- /lesson11/images/building.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson11/images/building.png -------------------------------------------------------------------------------- /lesson11/images/dao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson11/images/dao.png -------------------------------------------------------------------------------- /lesson11/images/demon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson11/images/demon.png -------------------------------------------------------------------------------- /lesson11/images/service.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson11/images/service.png -------------------------------------------------------------------------------- /lesson11/images/structure3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson11/images/structure3.png -------------------------------------------------------------------------------- /lesson11/images/viper.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson11/images/viper.PNG -------------------------------------------------------------------------------- /lesson11/images/zap.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson11/images/zap.PNG -------------------------------------------------------------------------------- /lesson12/image/io复用: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson12/image/io复用 -------------------------------------------------------------------------------- /lesson12/image/io对比: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson12/image/io对比 -------------------------------------------------------------------------------- /lesson12/image/smtp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson12/image/smtp -------------------------------------------------------------------------------- /lesson12/image/socket: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson12/image/socket -------------------------------------------------------------------------------- /lesson12/image/tcp报文: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson12/image/tcp报文 -------------------------------------------------------------------------------- /lesson12/image/udp报文: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson12/image/udp报文 -------------------------------------------------------------------------------- /lesson12/image/信号驱动io: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson12/image/信号驱动io -------------------------------------------------------------------------------- /lesson12/image/封装: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson12/image/封装 -------------------------------------------------------------------------------- /lesson12/image/异步io: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson12/image/异步io -------------------------------------------------------------------------------- /lesson12/image/阻塞io: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson12/image/阻塞io -------------------------------------------------------------------------------- /lesson12/image/非阻塞io: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson12/image/非阻塞io -------------------------------------------------------------------------------- /lesson13/images/BqJabvek7oMLpTx2c5IcuJt5n2f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson13/images/BqJabvek7oMLpTx2c5IcuJt5n2f.png -------------------------------------------------------------------------------- /lesson13/images/CvQjbmC9pojYndxJhdlcSC7QnPe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson13/images/CvQjbmC9pojYndxJhdlcSC7QnPe.png -------------------------------------------------------------------------------- /lesson13/images/JGMfbnxlwoYmoDxuq72cdPQqnxb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson13/images/JGMfbnxlwoYmoDxuq72cdPQqnxb.png -------------------------------------------------------------------------------- /lesson13/images/JTgabdb9DoXbSSxNAqqcoKkpn7e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson13/images/JTgabdb9DoXbSSxNAqqcoKkpn7e.png -------------------------------------------------------------------------------- /lesson13/images/NsCgbLOkjoPVKBxHyPHczE7pnNf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson13/images/NsCgbLOkjoPVKBxHyPHczE7pnNf.png -------------------------------------------------------------------------------- /lesson13/images/QTGEbRduXoTANpxumlScU15hnIc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson13/images/QTGEbRduXoTANpxumlScU15hnIc.png -------------------------------------------------------------------------------- /lesson13/images/RDvOb2Qhio8J1UxAuS6c2IBpnNb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson13/images/RDvOb2Qhio8J1UxAuS6c2IBpnNb.png -------------------------------------------------------------------------------- /lesson13/images/WT2tbRR2ZoGqHJxzAMscgBfInjc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson13/images/WT2tbRR2ZoGqHJxzAMscgBfInjc.png -------------------------------------------------------------------------------- /lesson13/images/XMhGbl7zgofg4pxXU3NcFPrln3c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson13/images/XMhGbl7zgofg4pxXU3NcFPrln3c.png -------------------------------------------------------------------------------- /lesson13/images/YDLabJkADoCqrcxkFX7co5ucnBh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson13/images/YDLabJkADoCqrcxkFX7co5ucnBh.png -------------------------------------------------------------------------------- /lesson13/images/image-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson13/images/image-1.png -------------------------------------------------------------------------------- /lesson13/images/image-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson13/images/image-2.png -------------------------------------------------------------------------------- /lesson13/images/image-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson13/images/image-3.png -------------------------------------------------------------------------------- /lesson13/images/image-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson13/images/image-4.png -------------------------------------------------------------------------------- /lesson13/images/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson13/images/image.png -------------------------------------------------------------------------------- /lesson14/images/001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson14/images/001.png -------------------------------------------------------------------------------- /lesson14/images/002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson14/images/002.png -------------------------------------------------------------------------------- /lesson14/images/003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson14/images/003.png -------------------------------------------------------------------------------- /lesson14/images/004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson14/images/004.png -------------------------------------------------------------------------------- /lesson14/images/005.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson14/images/005.png -------------------------------------------------------------------------------- /lesson14/images/006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson14/images/006.png -------------------------------------------------------------------------------- /lesson14/images/007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson14/images/007.png -------------------------------------------------------------------------------- /lesson14/images/008.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson14/images/008.png -------------------------------------------------------------------------------- /lesson14/images/009.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson14/images/009.png -------------------------------------------------------------------------------- /lesson16/image/ga.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson16/image/ga.png -------------------------------------------------------------------------------- /lesson16/image/rp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LanshanTeam/Courseware-Backend-Go-2024/f861ddac798a153377d113243f6e036f579cc750/lesson16/image/rp.png --------------------------------------------------------------------------------