",
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 [](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
--------------------------------------------------------------------------------