Oauth est fonctionnel. Le mécanisme de session est à terminer, probablement via un JWT ou autre méthode.
This commit is contained in:
123
package-lock.json
generated
123
package-lock.json
generated
@@ -1,123 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "15_ft_transcendence",
|
|
||||||
"lockfileVersion": 2,
|
|
||||||
"requires": true,
|
|
||||||
"packages": {
|
|
||||||
"": {
|
|
||||||
"dependencies": {
|
|
||||||
"passport-42": "^1.2.6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/base64url": {
|
|
||||||
"version": "3.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz",
|
|
||||||
"integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/oauth": {
|
|
||||||
"version": "0.9.15",
|
|
||||||
"resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz",
|
|
||||||
"integrity": "sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA=="
|
|
||||||
},
|
|
||||||
"node_modules/passport-42": {
|
|
||||||
"version": "1.2.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/passport-42/-/passport-42-1.2.6.tgz",
|
|
||||||
"integrity": "sha512-a1SraWSwH33NqRDe9ScG4MQwfj7RRBYLFtrJySn4tU4Ou7+caLxj6VQgaL4i+eZoKC6QAooL1Nqevn/W8vLXuQ==",
|
|
||||||
"dependencies": {
|
|
||||||
"passport-oauth2": "^1.4.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 6.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/passport-oauth2": {
|
|
||||||
"version": "1.6.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.6.1.tgz",
|
|
||||||
"integrity": "sha512-ZbV43Hq9d/SBSYQ22GOiglFsjsD1YY/qdiptA+8ej+9C1dL1TVB+mBE5kDH/D4AJo50+2i8f4bx0vg4/yDDZCQ==",
|
|
||||||
"dependencies": {
|
|
||||||
"base64url": "3.x.x",
|
|
||||||
"oauth": "0.9.x",
|
|
||||||
"passport-strategy": "1.x.x",
|
|
||||||
"uid2": "0.0.x",
|
|
||||||
"utils-merge": "1.x.x"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 0.4.0"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"type": "github",
|
|
||||||
"url": "https://github.com/sponsors/jaredhanson"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/passport-strategy": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz",
|
|
||||||
"integrity": "sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==",
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 0.4.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/uid2": {
|
|
||||||
"version": "0.0.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.4.tgz",
|
|
||||||
"integrity": "sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA=="
|
|
||||||
},
|
|
||||||
"node_modules/utils-merge": {
|
|
||||||
"version": "1.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
|
|
||||||
"integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 0.4.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"base64url": {
|
|
||||||
"version": "3.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz",
|
|
||||||
"integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A=="
|
|
||||||
},
|
|
||||||
"oauth": {
|
|
||||||
"version": "0.9.15",
|
|
||||||
"resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz",
|
|
||||||
"integrity": "sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA=="
|
|
||||||
},
|
|
||||||
"passport-42": {
|
|
||||||
"version": "1.2.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/passport-42/-/passport-42-1.2.6.tgz",
|
|
||||||
"integrity": "sha512-a1SraWSwH33NqRDe9ScG4MQwfj7RRBYLFtrJySn4tU4Ou7+caLxj6VQgaL4i+eZoKC6QAooL1Nqevn/W8vLXuQ==",
|
|
||||||
"requires": {
|
|
||||||
"passport-oauth2": "^1.4.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"passport-oauth2": {
|
|
||||||
"version": "1.6.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.6.1.tgz",
|
|
||||||
"integrity": "sha512-ZbV43Hq9d/SBSYQ22GOiglFsjsD1YY/qdiptA+8ej+9C1dL1TVB+mBE5kDH/D4AJo50+2i8f4bx0vg4/yDDZCQ==",
|
|
||||||
"requires": {
|
|
||||||
"base64url": "3.x.x",
|
|
||||||
"oauth": "0.9.x",
|
|
||||||
"passport-strategy": "1.x.x",
|
|
||||||
"uid2": "0.0.x",
|
|
||||||
"utils-merge": "1.x.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"passport-strategy": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz",
|
|
||||||
"integrity": "sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA=="
|
|
||||||
},
|
|
||||||
"uid2": {
|
|
||||||
"version": "0.0.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.4.tgz",
|
|
||||||
"integrity": "sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA=="
|
|
||||||
},
|
|
||||||
"utils-merge": {
|
|
||||||
"version": "1.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
|
|
||||||
"integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"dependencies": {
|
|
||||||
"passport-42": "^1.2.6"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -15,12 +15,14 @@ const typeorm_1 = require("@nestjs/typeorm");
|
|||||||
const config_1 = require("@nestjs/config");
|
const config_1 = require("@nestjs/config");
|
||||||
const friendships_module_1 = require("./friendship/friendships.module");
|
const friendships_module_1 = require("./friendship/friendships.module");
|
||||||
const authentication_module_1 = require("./auth/42/authentication.module");
|
const authentication_module_1 = require("./auth/42/authentication.module");
|
||||||
|
const passport_1 = require("@nestjs/passport");
|
||||||
let AppModule = class AppModule {
|
let AppModule = class AppModule {
|
||||||
};
|
};
|
||||||
AppModule = __decorate([
|
AppModule = __decorate([
|
||||||
(0, common_1.Module)({
|
(0, common_1.Module)({
|
||||||
imports: [users_module_1.UsersModule,
|
imports: [users_module_1.UsersModule,
|
||||||
authentication_module_1.AuthenticationModule,
|
authentication_module_1.AuthenticationModule,
|
||||||
|
passport_1.PassportModule.register({ session: true }),
|
||||||
friendships_module_1.FriendshipsModule,
|
friendships_module_1.FriendshipsModule,
|
||||||
config_1.ConfigModule.forRoot(),
|
config_1.ConfigModule.forRoot(),
|
||||||
typeorm_1.TypeOrmModule.forRoot({
|
typeorm_1.TypeOrmModule.forRoot({
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,qDAAiD;AACjD,+CAA2C;AAC3C,uDAAmD;AACnD,6CAAgD;AAChD,2CAA8C;AAC9C,wEAAoE;AACpE,2EAAuE;AAuBhE,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,SAAS;IArBrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,0BAAW;YACpB,4CAAoB;YACpB,sCAAiB;YACjB,qBAAY,CAAC,OAAO,EAAE;YACtB,uBAAa,CAAC,OAAO,CAAC;gBACrB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;gBAC/B,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;gBACzC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;gBACnC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;gBACvC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;gBACvC,gBAAgB,EAAE,IAAI;gBAGtB,WAAW,EAAE,IAAI;aACjB,CAAC;SACJ;QACC,WAAW,EAAE,CAAC,8BAAa,CAAC;QAC5B,SAAS,EAAE,CAAC,wBAAU,CAAC;KACxB,CAAC;GACW,SAAS,CAAG;AAAZ,8BAAS"}
|
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,qDAAiD;AACjD,+CAA2C;AAC3C,uDAAmD;AACnD,6CAAgD;AAChD,2CAA8C;AAC9C,wEAAoE;AACpE,2EAAuE;AACvE,+CAAkD;AAwB3C,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,SAAS;IAtBrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,0BAAW;YACpB,4CAAoB;YACpB,yBAAc,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC1C,sCAAiB;YACjB,qBAAY,CAAC,OAAO,EAAE;YACtB,uBAAa,CAAC,OAAO,CAAC;gBACrB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;gBAC/B,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;gBACzC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;gBACnC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;gBACvC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;gBACvC,gBAAgB,EAAE,IAAI;gBAGtB,WAAW,EAAE,IAAI;aACjB,CAAC;SACJ;QACC,WAAW,EAAE,CAAC,8BAAa,CAAC;QAC5B,SAAS,EAAE,CAAC,wBAAU,CAAC;KACxB,CAAC;GACW,SAAS,CAAG;AAAZ,8BAAS"}
|
||||||
@@ -3,8 +3,7 @@ import { Response } from 'express';
|
|||||||
export declare class AuthenticationController {
|
export declare class AuthenticationController {
|
||||||
private readonly authService;
|
private readonly authService;
|
||||||
constructor(authService: AuthenticationService);
|
constructor(authService: AuthenticationService);
|
||||||
hello(): string;
|
login(): void;
|
||||||
login(res: Response): Response<any, Record<string, any>>;
|
|
||||||
redirect(res: Response): void;
|
redirect(res: Response): void;
|
||||||
status(): string;
|
status(): string;
|
||||||
logout(): string;
|
logout(): string;
|
||||||
|
|||||||
@@ -20,12 +20,8 @@ let AuthenticationController = class AuthenticationController {
|
|||||||
constructor(authService) {
|
constructor(authService) {
|
||||||
this.authService = authService;
|
this.authService = authService;
|
||||||
}
|
}
|
||||||
hello() {
|
login() {
|
||||||
console.log('AUTHENTICATION CONTROLLER');
|
return;
|
||||||
return 'hello';
|
|
||||||
}
|
|
||||||
login(res) {
|
|
||||||
return res.sendStatus(200);
|
|
||||||
}
|
}
|
||||||
redirect(res) {
|
redirect(res) {
|
||||||
console.log(`Redirection performed`);
|
console.log(`Redirection performed`);
|
||||||
@@ -38,22 +34,16 @@ let AuthenticationController = class AuthenticationController {
|
|||||||
return 'logout';
|
return 'logout';
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
__decorate([
|
|
||||||
(0, common_1.Get)(),
|
|
||||||
__metadata("design:type", Function),
|
|
||||||
__metadata("design:paramtypes", []),
|
|
||||||
__metadata("design:returntype", void 0)
|
|
||||||
], AuthenticationController.prototype, "hello", null);
|
|
||||||
__decorate([
|
__decorate([
|
||||||
(0, common_1.Get)('login'),
|
(0, common_1.Get)('login'),
|
||||||
(0, common_1.UseGuards)(guards_1.FortyTwoAuthGuard),
|
(0, common_1.UseGuards)(guards_1.FortyTwoAuthGuard),
|
||||||
__param(0, (0, common_1.Res)()),
|
|
||||||
__metadata("design:type", Function),
|
__metadata("design:type", Function),
|
||||||
__metadata("design:paramtypes", [Object]),
|
__metadata("design:paramtypes", []),
|
||||||
__metadata("design:returntype", void 0)
|
__metadata("design:returntype", void 0)
|
||||||
], AuthenticationController.prototype, "login", null);
|
], AuthenticationController.prototype, "login", null);
|
||||||
__decorate([
|
__decorate([
|
||||||
(0, common_1.Get)('redirect'),
|
(0, common_1.Get)('redirect'),
|
||||||
|
(0, common_1.UseGuards)(guards_1.FortyTwoAuthGuard),
|
||||||
__param(0, (0, common_1.Res)()),
|
__param(0, (0, common_1.Res)()),
|
||||||
__metadata("design:type", Function),
|
__metadata("design:type", Function),
|
||||||
__metadata("design:paramtypes", [Object]),
|
__metadata("design:paramtypes", [Object]),
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"authentication.controller.js","sourceRoot":"","sources":["../../../src/auth/42/authentication.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAiE;AACjE,4CAAoD;AACpD,qEAAiE;AAI1D,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAEpC,YAA6B,WAAkC;QAAlC,gBAAW,GAAX,WAAW,CAAuB;IAAG,CAAC;IAInE,KAAK;QACJ,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,OAAO,OAAO,CAAC;IAChB,CAAC;IAOD,KAAK,CAAQ,GAAa;QACzB,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAQD,QAAQ,CAAQ,GAAa;QAC5B,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAQD,MAAM;QACL,OAAO,QAAQ,CAAC;IACjB,CAAC;IAOD,MAAM;QACL,OAAO,QAAQ,CAAC;IACjB,CAAC;CACD,CAAA;AA5CA;IAAC,IAAA,YAAG,GAAE;;;;qDAIL;AAKD;IAAC,IAAA,YAAG,EAAC,OAAO,CAAC;IACZ,IAAA,kBAAS,EAAC,0BAAiB,CAAC;IACtB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;qDAEX;AAOD;IAAC,IAAA,YAAG,EAAC,UAAU,CAAC;IACN,WAAA,IAAA,YAAG,GAAE,CAAA;;;;wDAGd;AAOD;IAAC,IAAA,YAAG,EAAC,QAAQ,CAAC;;;;sDAGb;AAMD;IAAC,IAAA,YAAG,EAAC,QAAQ,CAAC;;;;sDAGb;AAhDW,wBAAwB;IADpC,IAAA,mBAAU,EAAC,MAAM,CAAC;qCAGwB,8CAAqB;GAFnD,wBAAwB,CAiDpC;AAjDY,4DAAwB"}
|
{"version":3,"file":"authentication.controller.js","sourceRoot":"","sources":["../../../src/auth/42/authentication.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAiE;AACjE,4CAAoD;AACpD,qEAAiE;AAI1D,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAEpC,YAA6B,WAAkC;QAAlC,gBAAW,GAAX,WAAW,CAAuB;IAAG,CAAC;IAQnE,KAAK;QACJ,OAAO;IACR,CAAC;IASD,QAAQ,CAAQ,GAAa;QAC5B,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAQD,MAAM;QACL,OAAO,QAAQ,CAAC;IACjB,CAAC;IAOD,MAAM;QACL,OAAO,QAAQ,CAAC;IACjB,CAAC;CACD,CAAA;AApCA;IAAC,IAAA,YAAG,EAAC,OAAO,CAAC;IACZ,IAAA,kBAAS,EAAC,0BAAiB,CAAC;;;;qDAG5B;AAOD;IAAC,IAAA,YAAG,EAAC,UAAU,CAAC;IACf,IAAA,kBAAS,EAAC,0BAAiB,CAAC;IACnB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;wDAGd;AAOD;IAAC,IAAA,YAAG,EAAC,QAAQ,CAAC;;;;sDAGb;AAMD;IAAC,IAAA,YAAG,EAAC,QAAQ,CAAC;;;;sDAGb;AA3CW,wBAAwB;IADpC,IAAA,mBAAU,EAAC,MAAM,CAAC;qCAGwB,8CAAqB;GAFnD,wBAAwB,CA4CpC;AA5CY,4DAAwB"}
|
||||||
@@ -8,16 +8,21 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
exports.AuthenticationModule = void 0;
|
exports.AuthenticationModule = void 0;
|
||||||
const common_1 = require("@nestjs/common");
|
const common_1 = require("@nestjs/common");
|
||||||
|
const typeorm_1 = require("@nestjs/typeorm");
|
||||||
|
const friendship_entity_1 = require("../../friendship/entities/friendship.entity");
|
||||||
|
const user_entity_1 = require("../../users/entities/user.entity");
|
||||||
const users_module_1 = require("../../users/users.module");
|
const users_module_1 = require("../../users/users.module");
|
||||||
|
const users_service_1 = require("../../users/users.service");
|
||||||
const authentication_controller_1 = require("./authentication.controller");
|
const authentication_controller_1 = require("./authentication.controller");
|
||||||
const authentication_service_1 = require("./authentication.service");
|
const authentication_service_1 = require("./authentication.service");
|
||||||
const strategy_1 = require("./strategy/strategy");
|
const strategy_1 = require("./strategy/strategy");
|
||||||
|
const serializer_1 = require("./utils/serializer");
|
||||||
let AuthenticationModule = class AuthenticationModule {
|
let AuthenticationModule = class AuthenticationModule {
|
||||||
};
|
};
|
||||||
AuthenticationModule = __decorate([
|
AuthenticationModule = __decorate([
|
||||||
(0, common_1.Module)({
|
(0, common_1.Module)({
|
||||||
imports: [users_module_1.UsersModule],
|
imports: [typeorm_1.TypeOrmModule.forFeature([user_entity_1.User, friendship_entity_1.Friendship]), users_module_1.UsersModule],
|
||||||
providers: [authentication_service_1.AuthenticationService, strategy_1.FortyTwoStrategy],
|
providers: [authentication_service_1.AuthenticationService, strategy_1.FortyTwoStrategy, users_service_1.UsersService, serializer_1.SessionSerializer],
|
||||||
exports: [authentication_service_1.AuthenticationService],
|
exports: [authentication_service_1.AuthenticationService],
|
||||||
controllers: [authentication_controller_1.AuthenticationController],
|
controllers: [authentication_controller_1.AuthenticationController],
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"authentication.module.js","sourceRoot":"","sources":["../../../src/auth/42/authentication.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,2DAAqD;AACrD,2EAAuE;AACvE,qEAAiE;AACjE,kDAAuD;AAQhD,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;CAAG,CAAA;AAAvB,oBAAoB;IANhC,IAAA,eAAM,EAAC;QACL,OAAO,EAAE,CAAC,0BAAW,CAAC;QACtB,SAAS,EAAE,CAAC,8CAAqB,EAAE,2BAAgB,CAAC;QACpD,OAAO,EAAE,CAAC,8CAAqB,CAAC;QAChC,WAAW,EAAE,CAAC,oDAAwB,CAAC;KACzC,CAAC;GACW,oBAAoB,CAAG;AAAvB,oDAAoB"}
|
{"version":3,"file":"authentication.module.js","sourceRoot":"","sources":["../../../src/auth/42/authentication.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,6CAAgD;AAChD,mFAAuE;AACvE,kEAAsD;AACtD,2DAAqD;AACrD,6DAAuD;AACvD,2EAAuE;AACvE,qEAAiE;AACjE,kDAAuD;AACvD,mDAAuD;AAQhD,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;CAAG,CAAA;AAAvB,oBAAoB;IANhC,IAAA,eAAM,EAAC;QACL,OAAO,EAAE,CAAC,uBAAa,CAAC,UAAU,CAAC,CAAC,kBAAI,EAAE,8BAAU,CAAC,CAAC,EAAE,0BAAW,CAAC;QACpE,SAAS,EAAE,CAAC,8CAAqB,EAAE,2BAAgB,EAAE,4BAAY,EAAE,8BAAiB,CAAC;QACrF,OAAO,EAAE,CAAC,8CAAqB,CAAC;QAChC,WAAW,EAAE,CAAC,oDAAwB,CAAC;KACzC,CAAC;GACW,oBAAoB,CAAG;AAAvB,oDAAoB"}
|
||||||
@@ -1,2 +1,9 @@
|
|||||||
|
import { CreateUsersDto } from 'src/users/dto/create-users.dto';
|
||||||
|
import { User } from 'src/users/entities/user.entity';
|
||||||
|
import { UsersService } from 'src/users/users.service';
|
||||||
export declare class AuthenticationService {
|
export declare class AuthenticationService {
|
||||||
|
private readonly userService;
|
||||||
|
constructor(userService: UsersService);
|
||||||
|
validateUser(createUsersDto: CreateUsersDto): Promise<User>;
|
||||||
|
findUser(fourtytwo_id: string): Promise<User | undefined>;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,13 +5,31 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|||||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||||
};
|
};
|
||||||
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||||
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||||
|
};
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
exports.AuthenticationService = void 0;
|
exports.AuthenticationService = void 0;
|
||||||
const common_1 = require("@nestjs/common");
|
const common_1 = require("@nestjs/common");
|
||||||
|
const users_service_1 = require("../../users/users.service");
|
||||||
let AuthenticationService = class AuthenticationService {
|
let AuthenticationService = class AuthenticationService {
|
||||||
|
constructor(userService) {
|
||||||
|
this.userService = userService;
|
||||||
|
}
|
||||||
|
async validateUser(createUsersDto) {
|
||||||
|
console.log("Validate inside authentication.service.ts");
|
||||||
|
const user = await this.userService.findOneByFourtyTwoId(createUsersDto.fourtyTwoId);
|
||||||
|
if (user)
|
||||||
|
return user;
|
||||||
|
return this.userService.create(createUsersDto);
|
||||||
|
}
|
||||||
|
async findUser(fourtytwo_id) {
|
||||||
|
return await this.userService.findOneByFourtyTwoId(fourtytwo_id);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
AuthenticationService = __decorate([
|
AuthenticationService = __decorate([
|
||||||
(0, common_1.Injectable)()
|
(0, common_1.Injectable)(),
|
||||||
|
__metadata("design:paramtypes", [users_service_1.UsersService])
|
||||||
], AuthenticationService);
|
], AuthenticationService);
|
||||||
exports.AuthenticationService = AuthenticationService;
|
exports.AuthenticationService = AuthenticationService;
|
||||||
//# sourceMappingURL=authentication.service.js.map
|
//# sourceMappingURL=authentication.service.js.map
|
||||||
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"authentication.service.js","sourceRoot":"","sources":["../../../src/auth/42/authentication.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAGrC,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;CAAG,CAAA;AAAxB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;GACA,qBAAqB,CAAG;AAAxB,sDAAqB"}
|
{"version":3,"file":"authentication.service.js","sourceRoot":"","sources":["../../../src/auth/42/authentication.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAK5C,6DAAuD;AAGhD,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IACjC,YACmB,WAAyB;QAAzB,gBAAW,GAAX,WAAW,CAAc;IACxC,CAAC;IAEL,KAAK,CAAC,YAAY,CAAC,cAA8B;QAChD,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACrF,IAAI,IAAI;YACP,OAAO,IAAI,CAAC;QACb,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,YAAqB;QACnC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAClE,CAAC;CAED,CAAA;AAjBY,qBAAqB;IADjC,IAAA,mBAAU,GAAE;qCAGoB,4BAAY;GAFhC,qBAAqB,CAiBjC;AAjBY,sDAAqB"}
|
||||||
3
srcs/requirements/nestjs/api_back/dist/auth/42/constant.d.ts
vendored
Normal file
3
srcs/requirements/nestjs/api_back/dist/auth/42/constant.d.ts
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
export declare const jwt_constants: {
|
||||||
|
secret: string;
|
||||||
|
};
|
||||||
7
srcs/requirements/nestjs/api_back/dist/auth/42/constant.js
vendored
Normal file
7
srcs/requirements/nestjs/api_back/dist/auth/42/constant.js
vendored
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
"use strict";
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
exports.jwt_constants = void 0;
|
||||||
|
exports.jwt_constants = {
|
||||||
|
secret: process.env.JWT_SECRET,
|
||||||
|
};
|
||||||
|
//# sourceMappingURL=constant.js.map
|
||||||
1
srcs/requirements/nestjs/api_back/dist/auth/42/constant.js.map
vendored
Normal file
1
srcs/requirements/nestjs/api_back/dist/auth/42/constant.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"constant.js","sourceRoot":"","sources":["../../../src/auth/42/constant.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG;IAC1B,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;CAChC,CAAC"}
|
||||||
@@ -13,7 +13,6 @@ let FortyTwoAuthGuard = class FortyTwoAuthGuard extends (0, passport_1.AuthGuard
|
|||||||
async canActivate(context) {
|
async canActivate(context) {
|
||||||
const activate = (await super.canActivate(context));
|
const activate = (await super.canActivate(context));
|
||||||
const request = context.switchToHttp().getRequest();
|
const request = context.switchToHttp().getRequest();
|
||||||
console.log(request.user);
|
|
||||||
await super.logIn(request);
|
await super.logIn(request);
|
||||||
return activate;
|
return activate;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"guards.js","sourceRoot":"","sources":["../../../../src/auth/42/guards/guards.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA2E;AAC3E,+CAA6C;AAGtC,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,IAAA,oBAAS,EAAC,IAAI,CAAC;IACrD,KAAK,CAAC,WAAW,CAAC,OAAyB;QAC1C,MAAM,QAAQ,GAAG,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAY,CAAC;QAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,QAAQ,CAAC;IACjB,CAAC;CACD,CAAA;AARY,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;GACA,iBAAiB,CAQ7B;AARY,8CAAiB"}
|
{"version":3,"file":"guards.js","sourceRoot":"","sources":["../../../../src/auth/42/guards/guards.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA2E;AAC3E,+CAA6C;AAGtC,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,IAAA,oBAAS,EAAC,IAAI,CAAC;IACrD,KAAK,CAAC,WAAW,CAAC,OAAyB;QAC1C,MAAM,QAAQ,GAAG,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAY,CAAC;QAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,QAAQ,CAAC;IACjB,CAAC;CACD,CAAA;AAPY,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;GACA,iBAAiB,CAO7B;AAPY,8CAAiB"}
|
||||||
@@ -2,8 +2,8 @@ import { Profile } from "passport-42/lib";
|
|||||||
import { AuthenticationService } from "../authentication.service";
|
import { AuthenticationService } from "../authentication.service";
|
||||||
declare const FortyTwoStrategy_base: new (...args: any[]) => any;
|
declare const FortyTwoStrategy_base: new (...args: any[]) => any;
|
||||||
export declare class FortyTwoStrategy extends FortyTwoStrategy_base {
|
export declare class FortyTwoStrategy extends FortyTwoStrategy_base {
|
||||||
private readonly authenticationService;
|
private authenticationService;
|
||||||
constructor(authenticationService: AuthenticationService);
|
constructor(authenticationService: AuthenticationService);
|
||||||
validate(accessToken: string, refreshToken: string, profile: Profile, callbackURL: string): Promise<void>;
|
validate(accessToken: string, refreshToken: string, profile: Profile, callbackURL: string): Promise<import("../../../users/entities/user.entity").User>;
|
||||||
}
|
}
|
||||||
export {};
|
export {};
|
||||||
|
|||||||
@@ -25,8 +25,13 @@ let FortyTwoStrategy = class FortyTwoStrategy extends (0, passport_1.PassportStr
|
|||||||
this.authenticationService = authenticationService;
|
this.authenticationService = authenticationService;
|
||||||
}
|
}
|
||||||
async validate(accessToken, refreshToken, profile, callbackURL) {
|
async validate(accessToken, refreshToken, profile, callbackURL) {
|
||||||
const { id, username, displayName, photos } = profile;
|
console.log("Validate inside strategy.ts");
|
||||||
console.log(profile);
|
console.log(profile.id, profile.username, profile.phoneNumbers[0].value, profile.emails[0].value, profile.photos[0].value);
|
||||||
|
const userDTO = { fourtyTwoId: profile.id, username: profile.username, email: profile.emails[0].value, image_url: profile.photos[0].value };
|
||||||
|
const user = await this.authenticationService.validateUser(userDTO);
|
||||||
|
if (!user)
|
||||||
|
throw new common_1.UnauthorizedException();
|
||||||
|
return user;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
FortyTwoStrategy = __decorate([
|
FortyTwoStrategy = __decorate([
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../../src/auth/42/strategy/strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAoD;AACpD,+CAAoD;AACpD,2CAA4C;AAC5C,sEAAkE;AAG3D,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,IAAA,2BAAgB,EAAC,cAAQ,EAAE,IAAI,CAAC;IACnE,YAA6B,qBAA4C;QAC3E,KAAK,CAAC;YACJ,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;YACxC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB;YAChD,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB;YAC9C,KAAK,EAAE,CAAC,QAAQ,CAAC;SAClB,CAAC,CAAC;QAN4B,0BAAqB,GAArB,qBAAqB,CAAuB;IAO1E,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,WAAmB,EAAE,YAAoB,EAAE,OAAgB,EAAE,WAAmB;QAChG,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC;CACF,CAAA;AAdY,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAE0C,8CAAqB;GAD/D,gBAAgB,CAc5B;AAdY,4CAAgB"}
|
{"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../../src/auth/42/strategy/strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAoD;AACpD,+CAAoD;AACpD,2CAAmE;AACnE,sEAAkE;AAI3D,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,IAAA,2BAAgB,EAAC,cAAQ,EAAE,IAAI,CAAC;IACrE,YAAoB,qBAA4C;QAChE,KAAK,CAAC;YACJ,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;YACxC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB;YAChD,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB;YAC9C,KAAK,EAAE,CAAC,QAAQ,CAAC;SAClB,CAAC,CAAC;QANiB,0BAAqB,GAArB,qBAAqB,CAAuB;IAO/D,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,WAAmB,EAAE,YAAoB,EAAE,OAAgB,EAAE,WAAmB;QAChG,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC3H,MAAM,OAAO,GAAoB,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC7J,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI;YACR,MAAM,IAAI,8BAAqB,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACX,CAAC;CACF,CAAA;AAnBY,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAE+B,8CAAqB;GADpD,gBAAgB,CAmB5B;AAnBY,4CAAgB"}
|
||||||
9
srcs/requirements/nestjs/api_back/dist/auth/42/utils/serializer.d.ts
vendored
Normal file
9
srcs/requirements/nestjs/api_back/dist/auth/42/utils/serializer.d.ts
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
import { PassportSerializer } from "@nestjs/passport";
|
||||||
|
import { User } from "src/users/entities/user.entity";
|
||||||
|
import { AuthenticationService } from "../authentication.service";
|
||||||
|
export declare class SessionSerializer extends PassportSerializer {
|
||||||
|
private readonly authservice;
|
||||||
|
constructor(authservice: AuthenticationService);
|
||||||
|
serializeUser(user: User, done: (err: Error, user: User) => void): void;
|
||||||
|
deserializeUser(user: User, done: (err: Error, user: User) => void): Promise<void>;
|
||||||
|
}
|
||||||
37
srcs/requirements/nestjs/api_back/dist/auth/42/utils/serializer.js
vendored
Normal file
37
srcs/requirements/nestjs/api_back/dist/auth/42/utils/serializer.js
vendored
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
"use strict";
|
||||||
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||||
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||||
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||||
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||||
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||||
|
};
|
||||||
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
||||||
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||||
|
};
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
exports.SessionSerializer = void 0;
|
||||||
|
const passport_1 = require("@nestjs/passport");
|
||||||
|
const common_1 = require("@nestjs/common");
|
||||||
|
const authentication_service_1 = require("../authentication.service");
|
||||||
|
let SessionSerializer = class SessionSerializer extends passport_1.PassportSerializer {
|
||||||
|
constructor(authservice) {
|
||||||
|
super();
|
||||||
|
this.authservice = authservice;
|
||||||
|
}
|
||||||
|
serializeUser(user, done) {
|
||||||
|
done(null, user);
|
||||||
|
}
|
||||||
|
async deserializeUser(user, done) {
|
||||||
|
const userDB = await this.authservice.findUser(user.fourtyTwoId);
|
||||||
|
if (userDB)
|
||||||
|
done(null, userDB);
|
||||||
|
else
|
||||||
|
done(null, null);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
SessionSerializer = __decorate([
|
||||||
|
(0, common_1.Injectable)(),
|
||||||
|
__metadata("design:paramtypes", [authentication_service_1.AuthenticationService])
|
||||||
|
], SessionSerializer);
|
||||||
|
exports.SessionSerializer = SessionSerializer;
|
||||||
|
//# sourceMappingURL=serializer.js.map
|
||||||
1
srcs/requirements/nestjs/api_back/dist/auth/42/utils/serializer.js.map
vendored
Normal file
1
srcs/requirements/nestjs/api_back/dist/auth/42/utils/serializer.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../../../src/auth/42/utils/serializer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAsD;AACtD,2CAA4C;AAE5C,sEAAkE;AAG3D,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,6BAAkB;IACxD,YAA6B,WAAmC;QAC/D,KAAK,EAAE,CAAC;QADoB,gBAAW,GAAX,WAAW,CAAwB;IAEhE,CAAC;IAED,aAAa,CAAC,IAAW,EAAE,IAAyC;QACnE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAW,EAAE,IAAyC;QAC3E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjE,IAAI,MAAM;YACT,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;;YAEnB,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnB,CAAC;CACD,CAAA;AAhBY,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAE+B,8CAAqB;GADpD,iBAAiB,CAgB7B;AAhBY,8CAAiB"}
|
||||||
3
srcs/requirements/nestjs/api_back/dist/conf/constant.d.ts
vendored
Normal file
3
srcs/requirements/nestjs/api_back/dist/conf/constant.d.ts
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
export declare const constants: {
|
||||||
|
secret: string;
|
||||||
|
};
|
||||||
7
srcs/requirements/nestjs/api_back/dist/conf/constant.js
vendored
Normal file
7
srcs/requirements/nestjs/api_back/dist/conf/constant.js
vendored
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
"use strict";
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
exports.constants = void 0;
|
||||||
|
exports.constants = {
|
||||||
|
secret: process.env.COOKIE_SECRET,
|
||||||
|
};
|
||||||
|
//# sourceMappingURL=constant.js.map
|
||||||
1
srcs/requirements/nestjs/api_back/dist/conf/constant.js.map
vendored
Normal file
1
srcs/requirements/nestjs/api_back/dist/conf/constant.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"constant.js","sourceRoot":"","sources":["../../src/conf/constant.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG;IACtB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;CACnC,CAAC"}
|
||||||
3
srcs/requirements/nestjs/api_back/dist/constant.d.ts
vendored
Normal file
3
srcs/requirements/nestjs/api_back/dist/constant.d.ts
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
export declare const constants: {
|
||||||
|
secret: string;
|
||||||
|
};
|
||||||
7
srcs/requirements/nestjs/api_back/dist/constant.js
vendored
Normal file
7
srcs/requirements/nestjs/api_back/dist/constant.js
vendored
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
"use strict";
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
exports.constants = void 0;
|
||||||
|
exports.constants = {
|
||||||
|
secret: process.env.COOKIE_SECRET,
|
||||||
|
};
|
||||||
|
//# sourceMappingURL=constant.js.map
|
||||||
1
srcs/requirements/nestjs/api_back/dist/constant.js.map
vendored
Normal file
1
srcs/requirements/nestjs/api_back/dist/constant.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"constant.js","sourceRoot":"","sources":["../src/constant.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG;IACtB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;CACnC,CAAC"}
|
||||||
@@ -14,6 +14,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
exports.FriendshipController = void 0;
|
exports.FriendshipController = void 0;
|
||||||
const common_1 = require("@nestjs/common");
|
const common_1 = require("@nestjs/common");
|
||||||
|
const guards_1 = require("../auth/42/guards/guards");
|
||||||
const create_friendship_dto_1 = require("./dto/create-friendship.dto");
|
const create_friendship_dto_1 = require("./dto/create-friendship.dto");
|
||||||
const update_friendship_dto_1 = require("./dto/update-friendship.dto");
|
const update_friendship_dto_1 = require("./dto/update-friendship.dto");
|
||||||
const friendship_service_1 = require("./friendship.service");
|
const friendship_service_1 = require("./friendship.service");
|
||||||
@@ -48,6 +49,7 @@ let FriendshipController = class FriendshipController {
|
|||||||
};
|
};
|
||||||
__decorate([
|
__decorate([
|
||||||
(0, common_1.Get)(':userId/friends'),
|
(0, common_1.Get)(':userId/friends'),
|
||||||
|
(0, common_1.UseGuards)(guards_1.FortyTwoAuthGuard),
|
||||||
__param(0, (0, common_1.Param)('userId')),
|
__param(0, (0, common_1.Param)('userId')),
|
||||||
__metadata("design:type", Function),
|
__metadata("design:type", Function),
|
||||||
__metadata("design:paramtypes", [String]),
|
__metadata("design:paramtypes", [String]),
|
||||||
@@ -55,6 +57,7 @@ __decorate([
|
|||||||
], FriendshipController.prototype, "findEmpty", null);
|
], FriendshipController.prototype, "findEmpty", null);
|
||||||
__decorate([
|
__decorate([
|
||||||
(0, common_1.Get)(':userId/blocked'),
|
(0, common_1.Get)(':userId/blocked'),
|
||||||
|
(0, common_1.UseGuards)(guards_1.FortyTwoAuthGuard),
|
||||||
__param(0, (0, common_1.Param)('userId')),
|
__param(0, (0, common_1.Param)('userId')),
|
||||||
__metadata("design:type", Function),
|
__metadata("design:type", Function),
|
||||||
__metadata("design:paramtypes", [String]),
|
__metadata("design:paramtypes", [String]),
|
||||||
@@ -62,6 +65,7 @@ __decorate([
|
|||||||
], FriendshipController.prototype, "findAllBlocked", null);
|
], FriendshipController.prototype, "findAllBlocked", null);
|
||||||
__decorate([
|
__decorate([
|
||||||
(0, common_1.Get)(':userId/pending'),
|
(0, common_1.Get)(':userId/pending'),
|
||||||
|
(0, common_1.UseGuards)(guards_1.FortyTwoAuthGuard),
|
||||||
__param(0, (0, common_1.Param)('userId')),
|
__param(0, (0, common_1.Param)('userId')),
|
||||||
__metadata("design:type", Function),
|
__metadata("design:type", Function),
|
||||||
__metadata("design:paramtypes", [String]),
|
__metadata("design:paramtypes", [String]),
|
||||||
@@ -69,6 +73,7 @@ __decorate([
|
|||||||
], FriendshipController.prototype, "findAllPendantFriendshipRequested", null);
|
], FriendshipController.prototype, "findAllPendantFriendshipRequested", null);
|
||||||
__decorate([
|
__decorate([
|
||||||
(0, common_1.Get)(':userId/received'),
|
(0, common_1.Get)(':userId/received'),
|
||||||
|
(0, common_1.UseGuards)(guards_1.FortyTwoAuthGuard),
|
||||||
__param(0, (0, common_1.Param)('userId')),
|
__param(0, (0, common_1.Param)('userId')),
|
||||||
__metadata("design:type", Function),
|
__metadata("design:type", Function),
|
||||||
__metadata("design:paramtypes", [String]),
|
__metadata("design:paramtypes", [String]),
|
||||||
@@ -76,6 +81,7 @@ __decorate([
|
|||||||
], FriendshipController.prototype, "findAllPendantFriendshipReceived", null);
|
], FriendshipController.prototype, "findAllPendantFriendshipReceived", null);
|
||||||
__decorate([
|
__decorate([
|
||||||
(0, common_1.Get)(':userId/myfriends/:friendId'),
|
(0, common_1.Get)(':userId/myfriends/:friendId'),
|
||||||
|
(0, common_1.UseGuards)(guards_1.FortyTwoAuthGuard),
|
||||||
__param(0, (0, common_1.Param)('friendId')),
|
__param(0, (0, common_1.Param)('friendId')),
|
||||||
__metadata("design:type", Function),
|
__metadata("design:type", Function),
|
||||||
__metadata("design:paramtypes", [String]),
|
__metadata("design:paramtypes", [String]),
|
||||||
@@ -84,6 +90,7 @@ __decorate([
|
|||||||
__decorate([
|
__decorate([
|
||||||
(0, common_1.Post)(),
|
(0, common_1.Post)(),
|
||||||
(0, common_1.HttpCode)(common_1.HttpStatus.CREATED),
|
(0, common_1.HttpCode)(common_1.HttpStatus.CREATED),
|
||||||
|
(0, common_1.UseGuards)(guards_1.FortyTwoAuthGuard),
|
||||||
__param(0, (0, common_1.Body)()),
|
__param(0, (0, common_1.Body)()),
|
||||||
__metadata("design:type", Function),
|
__metadata("design:type", Function),
|
||||||
__metadata("design:paramtypes", [create_friendship_dto_1.CreateFriendshipDto]),
|
__metadata("design:paramtypes", [create_friendship_dto_1.CreateFriendshipDto]),
|
||||||
@@ -91,6 +98,7 @@ __decorate([
|
|||||||
], FriendshipController.prototype, "create", null);
|
], FriendshipController.prototype, "create", null);
|
||||||
__decorate([
|
__decorate([
|
||||||
(0, common_1.Patch)(':userId/received/:relationshipId'),
|
(0, common_1.Patch)(':userId/received/:relationshipId'),
|
||||||
|
(0, common_1.UseGuards)(guards_1.FortyTwoAuthGuard),
|
||||||
__param(0, (0, common_1.Param)('friendId')),
|
__param(0, (0, common_1.Param)('friendId')),
|
||||||
__param(1, (0, common_1.Body)()),
|
__param(1, (0, common_1.Body)()),
|
||||||
__metadata("design:type", Function),
|
__metadata("design:type", Function),
|
||||||
@@ -99,6 +107,7 @@ __decorate([
|
|||||||
], FriendshipController.prototype, "update", null);
|
], FriendshipController.prototype, "update", null);
|
||||||
__decorate([
|
__decorate([
|
||||||
(0, common_1.Delete)(':userId/:friendId'),
|
(0, common_1.Delete)(':userId/:friendId'),
|
||||||
|
(0, common_1.UseGuards)(guards_1.FortyTwoAuthGuard),
|
||||||
__param(0, (0, common_1.Param)('friendId')),
|
__param(0, (0, common_1.Param)('friendId')),
|
||||||
__metadata("design:type", Function),
|
__metadata("design:type", Function),
|
||||||
__metadata("design:paramtypes", [String]),
|
__metadata("design:paramtypes", [String]),
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"friendship.controller.js","sourceRoot":"","sources":["../../src/friendship/friendship.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwH;AAExH,uEAAkE;AAClE,uEAAkE;AAElE,6DAAyD;AAGlD,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAChC,YAA6B,iBAAoC;QAApC,sBAAiB,GAAjB,iBAAiB,CAAmB;IAAG,CAAC;IAGrE,SAAS,CAAkB,MAAc;QACxC,OAAO,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;IAGD,cAAc,CAAkB,MAAc;QAC7C,OAAO,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAGD,iCAAiC,CAAkB,MAAc;QAChE,OAAO,IAAI,CAAC,iBAAiB,CAAC,mCAAmC,CAAC,MAAM,CAAC,CAAC;IAC3E,CAAC;IAGD,gCAAgC,CAAkB,MAAc;QAC/D,OAAO,IAAI,CAAC,iBAAiB,CAAC,oCAAoC,CAAC,MAAM,CAAC,CAAC;IAC5E,CAAC;IAGD,aAAa,CAAoB,QAAgB;QAChD,OAAO,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;IAID,MAAM,CAAS,mBAAwC;QACtD,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC3D,CAAC;IAGD,MAAM,CAAoB,cAAsB,EAAU,EAAC,MAAM,EAAsB;QACtF,OAAO,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,cAAc,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC;IAC1E,CAAC;IAGD,MAAM,CAAoB,QAAgB;QACzC,OAAO,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;CACD,CAAA;AAxCA;IAAC,IAAA,YAAG,EAAC,iBAAiB,CAAC;IACZ,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;;;;qDAEzB;AAED;IAAC,IAAA,YAAG,EAAC,iBAAiB,CAAC;IACP,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;;;;0DAE9B;AAED;IAAC,IAAA,YAAG,EAAC,iBAAiB,CAAC;IACY,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;;;;6EAEjD;AAED;IAAC,IAAA,YAAG,EAAC,kBAAkB,CAAC;IACU,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;;;;4EAEhD;AAED;IAAC,IAAA,YAAG,EAAC,6BAA6B,CAAC;IACpB,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;;;;yDAE/B;AAED;IAAC,IAAA,aAAI,GAAE;IACN,IAAA,iBAAQ,EAAC,mBAAU,CAAC,OAAO,CAAC;IACrB,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAsB,2CAAmB;;kDAEtD;AAED;IAAC,IAAA,cAAK,EAAC,kCAAkC,CAAC;IAClC,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;IAA0B,WAAA,IAAA,aAAI,GAAE,CAAA;;6CAAW,2CAAmB;;kDAEtF;AAED;IAAC,IAAA,eAAM,EAAC,mBAAmB,CAAC;IACpB,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;;;;kDAExB;AA1CW,oBAAoB;IADhC,IAAA,mBAAU,EAAC,SAAS,CAAC;qCAE2B,sCAAiB;GADrD,oBAAoB,CA2ChC;AA3CY,oDAAoB"}
|
{"version":3,"file":"friendship.controller.js","sourceRoot":"","sources":["../../src/friendship/friendship.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAmI;AACnI,qDAA8D;AAE9D,uEAAkE;AAClE,uEAAkE;AAElE,6DAAyD;AAGlD,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAChC,YAA6B,iBAAoC;QAApC,sBAAiB,GAAjB,iBAAiB,CAAmB;IAAG,CAAC;IAIrE,SAAS,CAAkB,MAAc;QACxC,OAAO,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;IAID,cAAc,CAAkB,MAAc;QAC7C,OAAO,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAID,iCAAiC,CAAkB,MAAc;QAChE,OAAO,IAAI,CAAC,iBAAiB,CAAC,mCAAmC,CAAC,MAAM,CAAC,CAAC;IAC3E,CAAC;IAID,gCAAgC,CAAkB,MAAc;QAC/D,OAAO,IAAI,CAAC,iBAAiB,CAAC,oCAAoC,CAAC,MAAM,CAAC,CAAC;IAC5E,CAAC;IAID,aAAa,CAAoB,QAAgB;QAChD,OAAO,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;IAKD,MAAM,CAAS,mBAAwC;QACtD,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC3D,CAAC;IAID,MAAM,CAAoB,cAAsB,EAAU,EAAC,MAAM,EAAsB;QACtF,OAAO,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,cAAc,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC;IAC1E,CAAC;IAID,MAAM,CAAoB,QAAgB;QACzC,OAAO,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;CACD,CAAA;AAhDA;IAAC,IAAA,YAAG,EAAC,iBAAiB,CAAC;IACtB,IAAA,kBAAS,EAAC,0BAAiB,CAAC;IAClB,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;;;;qDAEzB;AAED;IAAC,IAAA,YAAG,EAAC,iBAAiB,CAAC;IACtB,IAAA,kBAAS,EAAC,0BAAiB,CAAC;IACb,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;;;;0DAE9B;AAED;IAAC,IAAA,YAAG,EAAC,iBAAiB,CAAC;IACtB,IAAA,kBAAS,EAAC,0BAAiB,CAAC;IACM,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;;;;6EAEjD;AAED;IAAC,IAAA,YAAG,EAAC,kBAAkB,CAAC;IACvB,IAAA,kBAAS,EAAC,0BAAiB,CAAC;IACK,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;;;;4EAEhD;AAED;IAAC,IAAA,YAAG,EAAC,6BAA6B,CAAC;IAClC,IAAA,kBAAS,EAAC,0BAAiB,CAAC;IACd,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;;;;yDAE/B;AAED;IAAC,IAAA,aAAI,GAAE;IACN,IAAA,iBAAQ,EAAC,mBAAU,CAAC,OAAO,CAAC;IAC5B,IAAA,kBAAS,EAAC,0BAAiB,CAAC;IACrB,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAsB,2CAAmB;;kDAEtD;AAED;IAAC,IAAA,cAAK,EAAC,kCAAkC,CAAC;IACzC,IAAA,kBAAS,EAAC,0BAAiB,CAAC;IACrB,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;IAA0B,WAAA,IAAA,aAAI,GAAE,CAAA;;6CAAW,2CAAmB;;kDAEtF;AAED;IAAC,IAAA,eAAM,EAAC,mBAAmB,CAAC;IAC3B,IAAA,kBAAS,EAAC,0BAAiB,CAAC;IACrB,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;;;;kDAExB;AAlDW,oBAAoB;IADhC,IAAA,mBAAU,EAAC,SAAS,CAAC;qCAE2B,sCAAiB;GADrD,oBAAoB,CAmDhC;AAnDY,oDAAoB"}
|
||||||
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"friendship.service.js","sourceRoot":"","sources":["../../src/friendship/friendship.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAuE;AACvE,6CAAmD;AACnD,+DAAsD;AACtD,qCAA0C;AAG1C,oEAA4E;AAGrE,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAE7B,YAEkB,oBAA4C,EAE5C,cAAgC;QAFhC,yBAAoB,GAApB,oBAAoB,CAAwB;QAE5C,mBAAc,GAAd,cAAc,CAAkB;IAC/C,CAAC;IAGJ,KAAK,CAAC,aAAa,CAAC,EAAU;QAC7B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,EAAC,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,oCAAgB,CAAC,QAAQ,EAAC,EAAC,CAAC,CAAC;QAC/G,IAAI,CAAC,UAAU;YACd,MAAM,IAAI,sBAAa,CAAC,iCAAiC,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QACjF,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU;QAC9B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,EAAC,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,oCAAgB,CAAC,OAAO,EAAC,EAAC,CAAC,CAAC;QAC9G,IAAI,CAAC,UAAU;YACd,MAAM,IAAI,sBAAa,CAAC,iCAAiC,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QACjF,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU;QAC9B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAC,EAAE,EAAE,CAAC,EAAE,EAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI;YACR,MAAM,IAAI,sBAAa,CAAC,+BAA+B,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CACnD,EAAC,KAAK,EAAE,EAAC,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,oCAAgB,CAAC,QAAQ,EAAC,EAAC,CAAC,CAAC;QAChE,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,EAAU;QACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAC,EAAE,EAAE,CAAC,EAAE,EAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI;YACR,MAAM,IAAI,sBAAa,CAAC,+BAA+B,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CACnD,EAAC,KAAK,EAAE,EAAC,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,oCAAgB,CAAC,OAAO,EAAC,EAAC,CAAC,CAAC;QAC/D,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,mCAAmC,CAAC,EAAU;QACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAC,EAAE,EAAE,CAAC,EAAE,EAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI;YACR,MAAM,IAAI,sBAAa,CAAC,+BAA+B,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QAC/E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;YACrD,KAAK,EACL,EAAC,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,oCAAgB,CAAC,SAAS,EAAC;YACrD,SAAS,EAAE,CAAC,aAAa,CAAC;SAAC,CAAC,CAAC;QAC9B,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,oCAAoC,CAAC,EAAU;QACpD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAC,EAAE,EAAE,CAAC,EAAE,EAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI;YACR,MAAM,IAAI,sBAAa,CAAC,+BAA+B,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QAC/E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;YACrD,KAAK,EACL,EAAC,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,oCAAgB,CAAC,SAAS,EAAC;YACrD,SAAS,EAAE,CAAC,aAAa,CAAC;SAAC,CAAC,CAAC;QAC9B,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,mBAAwC;QACpD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAC,EAAE,EAAG,CAAC,mBAAmB,CAAC,WAAW,EAAC,CAAC,CAAC;QAC/F,IAAI,CAAC,SAAS;YACb,MAAM,IAAI,sBAAa,CAAC,0BAA0B,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QAC1E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,WAAW,EAAC,CAAC,CAAC;QAC9F,IAAI,CAAC,SAAS;YACb,MAAM,IAAI,sBAAa,CAAC,0BAA0B,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QAC1E,IAAI,mBAAmB,CAAC,WAAW,IAAI,mBAAmB,CAAC,WAAW;YACrE,MAAM,IAAI,sBAAa,CAAC,yBAAyB,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAC,WAAW,EAAE,mBAAmB,CAAC,WAAW,EAAE,WAAW,EAAE,mBAAmB,CAAC,WAAW,EAAC,CAAC,CAAC;QAC3J,IAAI,UAAU,EAAE;YACf,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,KAAK,oCAAgB,CAAC,QAAQ;gBACvE,MAAM,IAAI,sBAAa,CAAC,mDAAmD,EAAC,mBAAU,CAAC,EAAE,CAAC,CAAC;iBACvF,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,KAAK,oCAAgB,CAAC,SAAS;gBAC7E,MAAM,IAAI,sBAAa,CAAC,oDAAoD,UAAU,CAAC,IAAI,GAAG,EAAC,mBAAU,CAAC,EAAE,CAAC,CAAC;iBAC1G,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,KAAK,oCAAgB,CAAC,OAAO;gBAC3E,MAAM,IAAI,sBAAa,CAAC,EAAE,EAAC,mBAAU,CAAC,EAAE,CAAC,CAAC;iBACtC,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,KAAK,oCAAgB,CAAC,QAAQ;gBAC5E,MAAM,IAAI,sBAAa,CAAC,gCAAgC,EAAC,mBAAU,CAAC,EAAE,CAAC,CAAC;SACzE;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CACrD,EAAC,WAAW,EAAE,mBAAmB,CAAC,WAAW,EAAE,WAAW,EAAE,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,oCAAgB,CAAC,SAAS,EAAC,CAAC,CAAC;QACnI,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,EAAU,EAAE,mBAAwC;QAE1E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,iBACxD,EAAE,EAAE,CAAC,EAAE,IACL,mBAAmB,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU;YACd,MAAM,IAAI,sBAAa,CAAC,sCAAsC,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QACtF,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,EAAU;QAChC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU;YACd,MAAM,IAAI,sBAAa,CAAC,mCAAmC,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QACnF,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC;CACD,CAAA;AAzGY,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;IAIV,WAAA,IAAA,0BAAgB,EAAC,8BAAU,CAAC,CAAA;IAE5B,WAAA,IAAA,0BAAgB,EAAC,kBAAI,CAAC,CAAA;qCADgB,oBAAU;QAEhB,oBAAU;GANhC,iBAAiB,CAyG7B;AAzGY,8CAAiB"}
|
{"version":3,"file":"friendship.service.js","sourceRoot":"","sources":["../../src/friendship/friendship.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAuE;AACvE,6CAAmD;AACnD,+DAAsD;AACtD,qCAAqC;AAGrC,oEAA4E;AAGrE,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAE7B,YAEkB,oBAA4C,EAE5C,cAAgC;QAFhC,yBAAoB,GAApB,oBAAoB,CAAwB;QAE5C,mBAAc,GAAd,cAAc,CAAkB;IAC/C,CAAC;IAGJ,KAAK,CAAC,aAAa,CAAC,EAAU;QAC7B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,EAAC,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,oCAAgB,CAAC,QAAQ,EAAC,EAAC,CAAC,CAAC;QAC/G,IAAI,CAAC,UAAU;YACd,MAAM,IAAI,sBAAa,CAAC,iCAAiC,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QACjF,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU;QAC9B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,EAAC,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,oCAAgB,CAAC,OAAO,EAAC,EAAC,CAAC,CAAC;QAC9G,IAAI,CAAC,UAAU;YACd,MAAM,IAAI,sBAAa,CAAC,iCAAiC,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QACjF,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU;QAC9B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAC,EAAE,EAAE,CAAC,EAAE,EAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI;YACR,MAAM,IAAI,sBAAa,CAAC,+BAA+B,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CACnD,EAAC,KAAK,EAAE,EAAC,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,oCAAgB,CAAC,QAAQ,EAAC,EAAC,CAAC,CAAC;QAChE,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,EAAU;QACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAC,EAAE,EAAE,CAAC,EAAE,EAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI;YACR,MAAM,IAAI,sBAAa,CAAC,+BAA+B,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CACnD,EAAC,KAAK,EAAE,EAAC,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,oCAAgB,CAAC,OAAO,EAAC,EAAC,CAAC,CAAC;QAC/D,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,mCAAmC,CAAC,EAAU;QACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAC,EAAE,EAAE,CAAC,EAAE,EAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI;YACR,MAAM,IAAI,sBAAa,CAAC,+BAA+B,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QAC/E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;YACrD,KAAK,EACL,EAAC,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,oCAAgB,CAAC,SAAS,EAAC;YACrD,SAAS,EAAE,CAAC,aAAa,CAAC;SAAC,CAAC,CAAC;QAC9B,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,oCAAoC,CAAC,EAAU;QACpD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAC,EAAE,EAAE,CAAC,EAAE,EAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI;YACR,MAAM,IAAI,sBAAa,CAAC,+BAA+B,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QAC/E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;YACrD,KAAK,EACL,EAAC,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,oCAAgB,CAAC,SAAS,EAAC;YACrD,SAAS,EAAE,CAAC,aAAa,CAAC;SAAC,CAAC,CAAC;QAC9B,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,mBAAwC;QACpD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAC,EAAE,EAAG,CAAC,mBAAmB,CAAC,WAAW,EAAC,CAAC,CAAC;QAC/F,IAAI,CAAC,SAAS;YACb,MAAM,IAAI,sBAAa,CAAC,0BAA0B,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QAC1E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,WAAW,EAAC,CAAC,CAAC;QAC9F,IAAI,CAAC,SAAS;YACb,MAAM,IAAI,sBAAa,CAAC,0BAA0B,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QAC1E,IAAI,mBAAmB,CAAC,WAAW,IAAI,mBAAmB,CAAC,WAAW;YACrE,MAAM,IAAI,sBAAa,CAAC,yBAAyB,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAC,WAAW,EAAE,mBAAmB,CAAC,WAAW,EAAE,WAAW,EAAE,mBAAmB,CAAC,WAAW,EAAC,CAAC,CAAC;QAC3J,IAAI,UAAU,EAAE;YACf,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,KAAK,oCAAgB,CAAC,QAAQ;gBACvE,MAAM,IAAI,sBAAa,CAAC,mDAAmD,EAAC,mBAAU,CAAC,EAAE,CAAC,CAAC;iBACvF,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,KAAK,oCAAgB,CAAC,SAAS;gBAC7E,MAAM,IAAI,sBAAa,CAAC,oDAAoD,UAAU,CAAC,IAAI,GAAG,EAAC,mBAAU,CAAC,EAAE,CAAC,CAAC;iBAC1G,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,KAAK,oCAAgB,CAAC,OAAO;gBAC3E,MAAM,IAAI,sBAAa,CAAC,EAAE,EAAC,mBAAU,CAAC,EAAE,CAAC,CAAC;iBACtC,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,KAAK,oCAAgB,CAAC,QAAQ;gBAC5E,MAAM,IAAI,sBAAa,CAAC,gCAAgC,EAAC,mBAAU,CAAC,EAAE,CAAC,CAAC;SACzE;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CACrD,EAAC,WAAW,EAAE,mBAAmB,CAAC,WAAW,EAAE,WAAW,EAAE,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,oCAAgB,CAAC,SAAS,EAAC,CAAC,CAAC;QACnI,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,EAAU,EAAE,mBAAwC;QAE1E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,iBACxD,EAAE,EAAE,CAAC,EAAE,IACL,mBAAmB,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU;YACd,MAAM,IAAI,sBAAa,CAAC,sCAAsC,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QACtF,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,EAAU;QAChC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU;YACd,MAAM,IAAI,sBAAa,CAAC,mCAAmC,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QACnF,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC;CACD,CAAA;AAzGY,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;IAIV,WAAA,IAAA,0BAAgB,EAAC,8BAAU,CAAC,CAAA;IAE5B,WAAA,IAAA,0BAAgB,EAAC,kBAAI,CAAC,CAAA;qCADgB,oBAAU;QAEhB,oBAAU;GANhC,iBAAiB,CAyG7B;AAzGY,8CAAiB"}
|
||||||
15
srcs/requirements/nestjs/api_back/dist/main.js
vendored
15
srcs/requirements/nestjs/api_back/dist/main.js
vendored
@@ -3,6 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||||||
const core_1 = require("@nestjs/core");
|
const core_1 = require("@nestjs/core");
|
||||||
const common_1 = require("@nestjs/common");
|
const common_1 = require("@nestjs/common");
|
||||||
const app_module_1 = require("./app.module");
|
const app_module_1 = require("./app.module");
|
||||||
|
const session = require("express-session");
|
||||||
|
const passport = require("passport");
|
||||||
|
const constant_1 = require("./conf/constant");
|
||||||
async function bootstrap() {
|
async function bootstrap() {
|
||||||
const app = await core_1.NestFactory.create(app_module_1.AppModule);
|
const app = await core_1.NestFactory.create(app_module_1.AppModule);
|
||||||
app.useGlobalPipes(new common_1.ValidationPipe({
|
app.useGlobalPipes(new common_1.ValidationPipe({
|
||||||
@@ -13,8 +16,18 @@ async function bootstrap() {
|
|||||||
enableImplicitConversion: true,
|
enableImplicitConversion: true,
|
||||||
},
|
},
|
||||||
}));
|
}));
|
||||||
const port = process.env.PORT || 3000;
|
const port = process.env.PORT || 3001;
|
||||||
app.setGlobalPrefix('api/v2');
|
app.setGlobalPrefix('api/v2');
|
||||||
|
app.use(session({
|
||||||
|
cookie: {
|
||||||
|
maxAge: 3600000 * 24,
|
||||||
|
},
|
||||||
|
secret: constant_1.constants.secret,
|
||||||
|
resave: false,
|
||||||
|
saveUninitialized: false,
|
||||||
|
}));
|
||||||
|
app.use(passport.initialize());
|
||||||
|
app.use(passport.session());
|
||||||
await app.listen(port, () => { console.log(`Listening on port ${port}`); });
|
await app.listen(port, () => { console.log(`Listening on port ${port}`); });
|
||||||
}
|
}
|
||||||
bootstrap();
|
bootstrap();
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;AAAA,uCAA2C;AAC3C,2CAAgD;AAChD,6CAAyC;AAEzC,KAAK,UAAU,SAAS;IAEtB,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAAC,sBAAS,CAAC,CAAC;IAGhD,GAAG,CAAC,cAAc,CACnB,IAAI,uBAAc,CAAC;QAElB,SAAS,EAAE,IAAI;QAEf,oBAAoB,EAAE,IAAI;QAE1B,SAAS,EAAE,IAAI;QACf,gBAAgB,EAAE;YACjB,wBAAwB,EAAE,IAAI;SAC9B;KACD,CAAC,CACA,CAAC;IACF,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;IACtC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC9B,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAC;AACD,SAAS,EAAE,CAAC"}
|
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;AAAA,uCAA2C;AAC3C,2CAAgD;AAChD,6CAAyC;AACzC,2CAA2C;AAC3C,qCAAqC;AACrC,8CAA4C;AAC5C,KAAK,UAAU,SAAS;IAEtB,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAAC,sBAAS,CAAC,CAAC;IAGhD,GAAG,CAAC,cAAc,CACnB,IAAI,uBAAc,CAAC;QAElB,SAAS,EAAE,IAAI;QAEf,oBAAoB,EAAE,IAAI;QAE1B,SAAS,EAAE,IAAI;QACf,gBAAgB,EAAE;YACjB,wBAAwB,EAAE,IAAI;SAC9B;KACD,CAAC,CACA,CAAC;IACF,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;IACtC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC9B,GAAG,CAAC,GAAG,CACR,OAAO,CAAC;QACN,MAAM,EAAE;YACP,MAAM,EAAE,OAAO,GAAG,EAAE;SACpB;QACD,MAAM,EAAE,oBAAS,CAAC,MAAM;QACxB,MAAM,EAAE,KAAK;QACb,iBAAiB,EAAE,KAAK;KACxB,CAAC,CACF,CAAC;IACF,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/B,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5B,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC;AACD,SAAS,EAAE,CAAC"}
|
||||||
File diff suppressed because one or more lines are too long
@@ -1,5 +1,6 @@
|
|||||||
export declare class CreateUsersDto {
|
export declare class CreateUsersDto {
|
||||||
readonly username: string;
|
readonly username: string;
|
||||||
|
readonly fourtyTwoId: string;
|
||||||
readonly email: string;
|
readonly email: string;
|
||||||
readonly password: string;
|
readonly image_url: string;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,10 @@ __decorate([
|
|||||||
(0, class_validator_1.IsString)(),
|
(0, class_validator_1.IsString)(),
|
||||||
__metadata("design:type", String)
|
__metadata("design:type", String)
|
||||||
], CreateUsersDto.prototype, "username", void 0);
|
], CreateUsersDto.prototype, "username", void 0);
|
||||||
|
__decorate([
|
||||||
|
(0, class_validator_1.IsString)(),
|
||||||
|
__metadata("design:type", String)
|
||||||
|
], CreateUsersDto.prototype, "fourtyTwoId", void 0);
|
||||||
__decorate([
|
__decorate([
|
||||||
(0, class_validator_1.IsEmail)(),
|
(0, class_validator_1.IsEmail)(),
|
||||||
__metadata("design:type", String)
|
__metadata("design:type", String)
|
||||||
@@ -24,6 +28,6 @@ __decorate([
|
|||||||
__decorate([
|
__decorate([
|
||||||
(0, class_validator_1.IsString)(),
|
(0, class_validator_1.IsString)(),
|
||||||
__metadata("design:type", String)
|
__metadata("design:type", String)
|
||||||
], CreateUsersDto.prototype, "password", void 0);
|
], CreateUsersDto.prototype, "image_url", void 0);
|
||||||
exports.CreateUsersDto = CreateUsersDto;
|
exports.CreateUsersDto = CreateUsersDto;
|
||||||
//# sourceMappingURL=create-users.dto.js.map
|
//# sourceMappingURL=create-users.dto.js.map
|
||||||
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"create-users.dto.js","sourceRoot":"","sources":["../../../src/users/dto/create-users.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAoD;AAGpD,MAAa,cAAc;CAO1B;AANA;IAAC,IAAA,0BAAQ,GAAE;;gDACe;AAC1B;IAAC,IAAA,yBAAO,GAAE;;6CACa;AACvB;IAAC,IAAA,0BAAQ,GAAE;;gDACe;AAN3B,wCAOC"}
|
{"version":3,"file":"create-users.dto.js","sourceRoot":"","sources":["../../../src/users/dto/create-users.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAoD;AAGpD,MAAa,cAAc;CAS1B;AARA;IAAC,IAAA,0BAAQ,GAAE;;gDACe;AAC1B;IAAC,IAAA,0BAAQ,GAAE;;mDACkB;AAC7B;IAAC,IAAA,yBAAO,GAAE;;6CACa;AACvB;IAAC,IAAA,0BAAQ,GAAE;;iDACgB;AAR5B,wCASC"}
|
||||||
@@ -4,8 +4,8 @@ export declare class User {
|
|||||||
fourtyTwoId: string;
|
fourtyTwoId: string;
|
||||||
username: string;
|
username: string;
|
||||||
email: string;
|
email: string;
|
||||||
password: string;
|
image_url: string;
|
||||||
avatar: string;
|
phone: string;
|
||||||
status: [string];
|
status: [string];
|
||||||
requesterId: Friendship[];
|
requesterId: Friendship[];
|
||||||
addresseeId: Friendship[];
|
addresseeId: Friendship[];
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ __decorate([
|
|||||||
__metadata("design:type", Number)
|
__metadata("design:type", Number)
|
||||||
], User.prototype, "id", void 0);
|
], User.prototype, "id", void 0);
|
||||||
__decorate([
|
__decorate([
|
||||||
(0, typeorm_1.Column)({ name: 'fourty_two_id' }),
|
(0, typeorm_1.Column)({ unique: true }),
|
||||||
__metadata("design:type", String)
|
__metadata("design:type", String)
|
||||||
], User.prototype, "fourtyTwoId", void 0);
|
], User.prototype, "fourtyTwoId", void 0);
|
||||||
__decorate([
|
__decorate([
|
||||||
@@ -33,13 +33,13 @@ __decorate([
|
|||||||
__metadata("design:type", String)
|
__metadata("design:type", String)
|
||||||
], User.prototype, "email", void 0);
|
], User.prototype, "email", void 0);
|
||||||
__decorate([
|
__decorate([
|
||||||
(0, typeorm_1.Column)(),
|
(0, typeorm_1.Column)({ nullable: true }),
|
||||||
__metadata("design:type", String)
|
__metadata("design:type", String)
|
||||||
], User.prototype, "password", void 0);
|
], User.prototype, "image_url", void 0);
|
||||||
__decorate([
|
__decorate([
|
||||||
(0, typeorm_1.Column)({ nullable: true }),
|
(0, typeorm_1.Column)({ nullable: true }),
|
||||||
__metadata("design:type", String)
|
__metadata("design:type", String)
|
||||||
], User.prototype, "avatar", void 0);
|
], User.prototype, "phone", void 0);
|
||||||
__decorate([
|
__decorate([
|
||||||
(0, typeorm_1.Column)('json', { nullable: true }),
|
(0, typeorm_1.Column)('json', { nullable: true }),
|
||||||
__metadata("design:type", Array)
|
__metadata("design:type", Array)
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"user.entity.js","sourceRoot":"","sources":["../../../src/users/entities/user.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qDAAkD;AAClD,qCAA2G;AAC3G,mFAAyE;AAKlE,IAAM,IAAI,GAAV,MAAM,IAAI;CA+BhB,CAAA;AA7BA;IAAC,IAAA,gCAAsB,GAAE;;gCACd;AAEX;IAAC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;;yCACd;AAEpB;IAAC,IAAA,gBAAM,GAAE;;sCACQ;AAEjB;IAAC,IAAA,gBAAM,GAAE;IACR,IAAA,yBAAO,GAAE;;mCACI;AAEd;IAAC,IAAA,gBAAM,GAAE;;sCACQ;AAEjB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oCACZ;AAEf;IAAC,IAAA,gBAAM,EAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oCAClB;AAEjB;IAAC,IAAA,mBAAS,GAAE;IACX,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,8BAAU,EAAG,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;;yCAC7C;AAE1B;IAAC,IAAA,mBAAS,GAAE;IACX,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,8BAAU,EAAG,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;;yCAC7C;AA9Bd,IAAI;IAFhB,IAAA,gBAAM,EAAC,MAAM,CAAC;IACd,IAAA,gBAAM,EAAC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;GACjB,IAAI,CA+BhB;AA/BY,oBAAI"}
|
{"version":3,"file":"user.entity.js","sourceRoot":"","sources":["../../../src/users/entities/user.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qDAAkD;AAClD,qCAA2G;AAC3G,mFAAyE;AAKlE,IAAM,IAAI,GAAV,MAAM,IAAI;CA+BhB,CAAA;AA7BA;IAAC,IAAA,gCAAsB,GAAE;;gCACd;AAEX;IAAC,IAAA,gBAAM,EAAC,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC;;yCACH;AAEpB;IAAC,IAAA,gBAAM,GAAE;;sCACQ;AAEjB;IAAC,IAAA,gBAAM,GAAE;IACR,IAAA,yBAAO,GAAE;;mCACI;AAEd;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uCACR;AAEnB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mCACb;AAEd;IAAC,IAAA,gBAAM,EAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oCAClB;AAEjB;IAAC,IAAA,mBAAS,GAAE;IACX,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,8BAAU,EAAG,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;;yCAC7C;AAE1B;IAAC,IAAA,mBAAS,GAAE;IACX,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,8BAAU,EAAG,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;;yCAC7C;AA9Bd,IAAI;IAFhB,IAAA,gBAAM,EAAC,MAAM,CAAC;IACd,IAAA,gBAAM,EAAC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;GACjB,IAAI,CA+BhB;AA/BY,oBAAI"}
|
||||||
@@ -14,6 +14,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
exports.UsersController = void 0;
|
exports.UsersController = void 0;
|
||||||
const common_1 = require("@nestjs/common");
|
const common_1 = require("@nestjs/common");
|
||||||
|
const guards_1 = require("../auth/42/guards/guards");
|
||||||
const pagination_query_dto_1 = require("../common/dto/pagination-query.dto");
|
const pagination_query_dto_1 = require("../common/dto/pagination-query.dto");
|
||||||
const create_users_dto_1 = require("./dto/create-users.dto");
|
const create_users_dto_1 = require("./dto/create-users.dto");
|
||||||
const update_users_dto_1 = require("./dto/update-users.dto");
|
const update_users_dto_1 = require("./dto/update-users.dto");
|
||||||
@@ -41,6 +42,7 @@ let UsersController = class UsersController {
|
|||||||
};
|
};
|
||||||
__decorate([
|
__decorate([
|
||||||
(0, common_1.Get)('all'),
|
(0, common_1.Get)('all'),
|
||||||
|
(0, common_1.UseGuards)(guards_1.FortyTwoAuthGuard),
|
||||||
__param(0, (0, common_1.Query)()),
|
__param(0, (0, common_1.Query)()),
|
||||||
__metadata("design:type", Function),
|
__metadata("design:type", Function),
|
||||||
__metadata("design:paramtypes", [pagination_query_dto_1.PaginationQueryDto]),
|
__metadata("design:paramtypes", [pagination_query_dto_1.PaginationQueryDto]),
|
||||||
@@ -48,6 +50,7 @@ __decorate([
|
|||||||
], UsersController.prototype, "findAll", null);
|
], UsersController.prototype, "findAll", null);
|
||||||
__decorate([
|
__decorate([
|
||||||
(0, common_1.Get)(':id'),
|
(0, common_1.Get)(':id'),
|
||||||
|
(0, common_1.UseGuards)(guards_1.FortyTwoAuthGuard),
|
||||||
__param(0, (0, common_1.Param)('id')),
|
__param(0, (0, common_1.Param)('id')),
|
||||||
__metadata("design:type", Function),
|
__metadata("design:type", Function),
|
||||||
__metadata("design:paramtypes", [String]),
|
__metadata("design:paramtypes", [String]),
|
||||||
@@ -55,6 +58,7 @@ __decorate([
|
|||||||
], UsersController.prototype, "findOne", null);
|
], UsersController.prototype, "findOne", null);
|
||||||
__decorate([
|
__decorate([
|
||||||
(0, common_1.Post)(),
|
(0, common_1.Post)(),
|
||||||
|
(0, common_1.UseGuards)(guards_1.FortyTwoAuthGuard),
|
||||||
(0, common_1.HttpCode)(common_1.HttpStatus.CREATED),
|
(0, common_1.HttpCode)(common_1.HttpStatus.CREATED),
|
||||||
__param(0, (0, common_1.Body)()),
|
__param(0, (0, common_1.Body)()),
|
||||||
__metadata("design:type", Function),
|
__metadata("design:type", Function),
|
||||||
@@ -63,6 +67,7 @@ __decorate([
|
|||||||
], UsersController.prototype, "create", null);
|
], UsersController.prototype, "create", null);
|
||||||
__decorate([
|
__decorate([
|
||||||
(0, common_1.Patch)(':id'),
|
(0, common_1.Patch)(':id'),
|
||||||
|
(0, common_1.UseGuards)(guards_1.FortyTwoAuthGuard),
|
||||||
__param(0, (0, common_1.Param)('id')),
|
__param(0, (0, common_1.Param)('id')),
|
||||||
__param(1, (0, common_1.Body)()),
|
__param(1, (0, common_1.Body)()),
|
||||||
__metadata("design:type", Function),
|
__metadata("design:type", Function),
|
||||||
@@ -71,6 +76,7 @@ __decorate([
|
|||||||
], UsersController.prototype, "update", null);
|
], UsersController.prototype, "update", null);
|
||||||
__decorate([
|
__decorate([
|
||||||
(0, common_1.Delete)(':id'),
|
(0, common_1.Delete)(':id'),
|
||||||
|
(0, common_1.UseGuards)(guards_1.FortyTwoAuthGuard),
|
||||||
__param(0, (0, common_1.Param)('id')),
|
__param(0, (0, common_1.Param)('id')),
|
||||||
__metadata("design:type", Function),
|
__metadata("design:type", Function),
|
||||||
__metadata("design:paramtypes", [String]),
|
__metadata("design:paramtypes", [String]),
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"users.controller.js","sourceRoot":"","sources":["../../src/users/users.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAGwB;AACxB,6EAAyE;AACzE,6DAAwD;AACxD,6DAAwD;AAExD,mDAA+C;AAIxC,IAAM,eAAe,GAArB,MAAM,eAAe;IAC3B,YAA6B,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;IAAG,CAAC;IAI3D,OAAO,CAAU,eAAoC;QAEpD,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACnD,CAAC;IAGD,OAAO,CAAc,EAAU;QAC9B,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAID,MAAM,CAAS,cAA+B;QAC7C,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC;IAGD,MAAM,CAAc,EAAU,EAAU,cAA8B;QACrE,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;IACrD,CAAC;IAGD,MAAM,CAAc,EAAU;QAC7B,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;CACD,CAAA;AA3BA;IAAC,IAAA,YAAG,EAAC,KAAK,CAAC;IACF,WAAA,IAAA,cAAK,GAAE,CAAA;;qCAAmB,yCAAkB;;8CAGpD;AAED;IAAC,IAAA,YAAG,EAAC,KAAK,CAAC;IACF,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;8CAEnB;AAED;IAAC,IAAA,aAAI,GAAE;IACN,IAAA,iBAAQ,EAAC,mBAAU,CAAC,OAAO,CAAC;IACrB,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAkB,iCAAc;;6CAG7C;AAED;IAAC,IAAA,cAAK,EAAC,KAAK,CAAC;IACL,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IAAc,WAAA,IAAA,aAAI,GAAE,CAAA;;6CAAiB,iCAAc;;6CAErE;AAED;IAAC,IAAA,eAAM,EAAC,KAAK,CAAC;IACN,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;6CAElB;AA9BW,eAAe;IAD3B,IAAA,mBAAU,EAAC,MAAM,CAAC;qCAEyB,4BAAY;GAD3C,eAAe,CA+B3B;AA/BY,0CAAe"}
|
{"version":3,"file":"users.controller.js","sourceRoot":"","sources":["../../src/users/users.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAGwB;AACxB,qDAA8D;AAC9D,6EAAyE;AACzE,6DAAwD;AACxD,6DAAwD;AAExD,mDAA+C;AAIxC,IAAM,eAAe,GAArB,MAAM,eAAe;IAC3B,YAA6B,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;IAAG,CAAC;IAK3D,OAAO,CAAU,eAAoC;QAEpD,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACnD,CAAC;IAID,OAAO,CAAc,EAAU;QAC9B,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAKD,MAAM,CAAS,cAA+B;QAC7C,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC;IAID,MAAM,CAAc,EAAU,EAAU,cAA8B;QACrE,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;IACrD,CAAC;IAID,MAAM,CAAc,EAAU;QAC7B,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;CACD,CAAA;AAhCA;IAAC,IAAA,YAAG,EAAC,KAAK,CAAC;IACV,IAAA,kBAAS,EAAC,0BAAiB,CAAC;IACpB,WAAA,IAAA,cAAK,GAAE,CAAA;;qCAAmB,yCAAkB;;8CAGpD;AAED;IAAC,IAAA,YAAG,EAAC,KAAK,CAAC;IACV,IAAA,kBAAS,EAAC,0BAAiB,CAAC;IACpB,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;8CAEnB;AAED;IAAC,IAAA,aAAI,GAAE;IACN,IAAA,kBAAS,EAAC,0BAAiB,CAAC;IAC5B,IAAA,iBAAQ,EAAC,mBAAU,CAAC,OAAO,CAAC;IACrB,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAkB,iCAAc;;6CAG7C;AAED;IAAC,IAAA,cAAK,EAAC,KAAK,CAAC;IACZ,IAAA,kBAAS,EAAC,0BAAiB,CAAC;IACrB,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IAAc,WAAA,IAAA,aAAI,GAAE,CAAA;;6CAAiB,iCAAc;;6CAErE;AAED;IAAC,IAAA,eAAM,EAAC,KAAK,CAAC;IACb,IAAA,kBAAS,EAAC,0BAAiB,CAAC;IACrB,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;6CAElB;AAnCW,eAAe;IAD3B,IAAA,mBAAU,EAAC,MAAM,CAAC;qCAEyB,4BAAY;GAD3C,eAAe,CAoC3B;AApCY,0CAAe"}
|
||||||
@@ -8,6 +8,7 @@ export declare class UsersService {
|
|||||||
private readonly userRepository;
|
private readonly userRepository;
|
||||||
private readonly friendshipRepository;
|
private readonly friendshipRepository;
|
||||||
constructor(userRepository: Repository<User>, friendshipRepository: Repository<Friendship>);
|
constructor(userRepository: Repository<User>, friendshipRepository: Repository<Friendship>);
|
||||||
|
findOneByFourtyTwoId(fourtytwo_id: string): Promise<User>;
|
||||||
findOne(id: string): Promise<User>;
|
findOne(id: string): Promise<User>;
|
||||||
findAll(paginationquery: PaginationQueryDto): Promise<User[]>;
|
findAll(paginationquery: PaginationQueryDto): Promise<User[]>;
|
||||||
create(createUserDto: CreateUsersDto): Promise<User>;
|
create(createUserDto: CreateUsersDto): Promise<User>;
|
||||||
|
|||||||
@@ -24,6 +24,18 @@ let UsersService = class UsersService {
|
|||||||
this.userRepository = userRepository;
|
this.userRepository = userRepository;
|
||||||
this.friendshipRepository = friendshipRepository;
|
this.friendshipRepository = friendshipRepository;
|
||||||
}
|
}
|
||||||
|
async findOneByFourtyTwoId(fourtytwo_id) {
|
||||||
|
console.log(`Find user with fourtytwo_id ${fourtytwo_id}`);
|
||||||
|
if (!(0, class_validator_1.isNumberString)(fourtytwo_id))
|
||||||
|
throw new common_1.HttpException(`The requested user not found.`, common_1.HttpStatus.NOT_FOUND);
|
||||||
|
const user = await this.userRepository.findOneBy({ fourtyTwoId: fourtytwo_id });
|
||||||
|
if (!user) {
|
||||||
|
console.log(`The requested user not found.`);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
console.log(`The requested user found.`);
|
||||||
|
return user;
|
||||||
|
}
|
||||||
async findOne(id) {
|
async findOne(id) {
|
||||||
if (!(0, class_validator_1.isNumberString)(id))
|
if (!(0, class_validator_1.isNumberString)(id))
|
||||||
throw new common_1.HttpException(`The requested user not found.`, common_1.HttpStatus.NOT_FOUND);
|
throw new common_1.HttpException(`The requested user not found.`, common_1.HttpStatus.NOT_FOUND);
|
||||||
@@ -40,7 +52,8 @@ let UsersService = class UsersService {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
async create(createUserDto) {
|
async create(createUserDto) {
|
||||||
if (await this.userRepository.findOneBy({ email: createUserDto.email }))
|
console.log(`Create user with ${createUserDto}`);
|
||||||
|
if (await this.userRepository.findOneBy({ fourtyTwoId: createUserDto.fourtyTwoId }))
|
||||||
throw new common_1.HttpException(`The user already exists.`, common_1.HttpStatus.CONFLICT);
|
throw new common_1.HttpException(`The user already exists.`, common_1.HttpStatus.CONFLICT);
|
||||||
const user = this.userRepository.create(createUserDto);
|
const user = this.userRepository.create(createUserDto);
|
||||||
if (!user)
|
if (!user)
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"users.service.js","sourceRoot":"","sources":["../../src/users/users.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAsG;AACtG,6CAAmD;AAEnD,wDAA8C;AAC9C,qCAA8D;AAG9D,gFAAsE;AACtE,qDAAiD;AAM1C,IAAM,YAAY,GAAlB,MAAM,YAAY;IAExB,YAEiB,cAAgC,EAEhC,oBAA4C;QAF5C,mBAAc,GAAd,cAAc,CAAkB;QAEhC,yBAAoB,GAApB,oBAAoB,CAAwB;IAC1D,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,EAAU;QACvB,IAAI,CAAC,IAAA,gCAAc,EAAC,EAAE,CAAC;YACtB,MAAM,IAAI,sBAAa,CAAC,+BAA+B,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QAC/E,MAAM,IAAI,GAAI,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAC,EAAE,EAAE,CAAC,EAAE,EAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI;YACR,MAAM,IAAI,0BAAiB,CAAC,+BAA+B,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACb,CAAC;IAGD,OAAO,CAAC,eAAoC;QAC3C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC;QAC1C,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YAC/B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,KAAK;SACX,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,aAA6B;QACzC,IAAI,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAC,KAAK,EAAE,aAAa,CAAC,KAAK,EAAC,CAAC;YACpE,MAAM,IAAI,sBAAa,CAAC,0BAA0B,EAAC,mBAAU,CAAC,QAAQ,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI;YACR,MAAM,IAAI,sBAAa,CAAC,gCAAgC,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,aAA6B;QACrD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,aAAa,EAAE,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,iBAC5C,EAAE,EAAE,CAAC,EAAE,IACL,aAAa,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI;YACR,MAAM,IAAI,sBAAa,CAAC,gCAAgC,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI;YACR,MAAM,IAAI,sBAAa,CAAC,gCAAgC,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;CACD,CAAA;AApDY,YAAY;IADxB,IAAA,mBAAU,GAAE;IAIX,WAAA,IAAA,0BAAgB,EAAC,kBAAI,CAAC,CAAA;IAEtB,WAAA,IAAA,0BAAgB,EAAC,8BAAU,CAAC,CAAA;qCADI,oBAAU;QAEJ,oBAAU;GANrC,YAAY,CAoDxB;AApDY,oCAAY"}
|
{"version":3,"file":"users.service.js","sourceRoot":"","sources":["../../src/users/users.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAsG;AACtG,6CAAmD;AAEnD,wDAA8C;AAC9C,qCAA8D;AAG9D,gFAAsE;AACtE,qDAAiD;AAM1C,IAAM,YAAY,GAAlB,MAAM,YAAY;IAExB,YAEiB,cAAgC,EAEhC,oBAA4C;QAF5C,mBAAc,GAAd,cAAc,CAAkB;QAEhC,yBAAoB,GAApB,oBAAoB,CAAwB;IAC1D,CAAC;IAEJ,KAAK,CAAC,oBAAoB,CAAC,YAAoB;QAC9C,OAAO,CAAC,GAAG,CAAC,+BAA+B,YAAY,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAA,gCAAc,EAAC,YAAY,CAAC;YAChC,MAAM,IAAI,sBAAa,CAAC,+BAA+B,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QAC/E,MAAM,IAAI,GAAI,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAC,WAAW,EAAE,YAAY,EAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,IAAI,EACT;YACC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YAC7C,OAAO,IAAI,CAAC;SACZ;QACD,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU;QACvB,IAAI,CAAC,IAAA,gCAAc,EAAC,EAAE,CAAC;YACtB,MAAM,IAAI,sBAAa,CAAC,+BAA+B,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QAC/E,MAAM,IAAI,GAAI,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAC,EAAE,EAAE,CAAC,EAAE,EAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI;YACR,MAAM,IAAI,0BAAiB,CAAC,+BAA+B,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACb,CAAC;IAGD,OAAO,CAAC,eAAoC;QAC3C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC;QAC1C,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YAC/B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,KAAK;SACX,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,aAA6B;QACzC,OAAO,CAAC,GAAG,CAAC,oBAAoB,aAAa,EAAE,CAAC,CAAC;QACjD,IAAI,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAC,WAAW,EAAE,aAAa,CAAC,WAAW,EAAC,CAAC;YAChF,MAAM,IAAI,sBAAa,CAAC,0BAA0B,EAAC,mBAAU,CAAC,QAAQ,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI;YACR,MAAM,IAAI,sBAAa,CAAC,gCAAgC,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,aAA6B;QACrD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,aAAa,EAAE,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,iBAC5C,EAAE,EAAE,CAAC,EAAE,IACL,aAAa,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI;YACR,MAAM,IAAI,sBAAa,CAAC,gCAAgC,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI;YACR,MAAM,IAAI,sBAAa,CAAC,gCAAgC,EAAC,mBAAU,CAAC,SAAS,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;CACD,CAAA;AAnEY,YAAY;IADxB,IAAA,mBAAU,GAAE;IAIX,WAAA,IAAA,0BAAgB,EAAC,kBAAI,CAAC,CAAA;IAEtB,WAAA,IAAA,0BAAgB,EAAC,8BAAU,CAAC,CAAA;qCADI,oBAAU;QAEJ,oBAAU;GANrC,YAAY,CAmExB;AAnEY,oCAAY"}
|
||||||
197
srcs/requirements/nestjs/api_back/node_modules/.package-lock.json
generated
vendored
197
srcs/requirements/nestjs/api_back/node_modules/.package-lock.json
generated
vendored
@@ -1585,6 +1585,65 @@
|
|||||||
"@nestjs/core": "^9.0.0"
|
"@nestjs/core": "^9.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@nestjs/platform-express/node_modules/debug": {
|
||||||
|
"version": "2.6.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||||
|
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||||
|
"dependencies": {
|
||||||
|
"ms": "2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@nestjs/platform-express/node_modules/express": {
|
||||||
|
"version": "4.18.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz",
|
||||||
|
"integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==",
|
||||||
|
"dependencies": {
|
||||||
|
"accepts": "~1.3.8",
|
||||||
|
"array-flatten": "1.1.1",
|
||||||
|
"body-parser": "1.20.0",
|
||||||
|
"content-disposition": "0.5.4",
|
||||||
|
"content-type": "~1.0.4",
|
||||||
|
"cookie": "0.5.0",
|
||||||
|
"cookie-signature": "1.0.6",
|
||||||
|
"debug": "2.6.9",
|
||||||
|
"depd": "2.0.0",
|
||||||
|
"encodeurl": "~1.0.2",
|
||||||
|
"escape-html": "~1.0.3",
|
||||||
|
"etag": "~1.8.1",
|
||||||
|
"finalhandler": "1.2.0",
|
||||||
|
"fresh": "0.5.2",
|
||||||
|
"http-errors": "2.0.0",
|
||||||
|
"merge-descriptors": "1.0.1",
|
||||||
|
"methods": "~1.1.2",
|
||||||
|
"on-finished": "2.4.1",
|
||||||
|
"parseurl": "~1.3.3",
|
||||||
|
"path-to-regexp": "0.1.7",
|
||||||
|
"proxy-addr": "~2.0.7",
|
||||||
|
"qs": "6.10.3",
|
||||||
|
"range-parser": "~1.2.1",
|
||||||
|
"safe-buffer": "5.2.1",
|
||||||
|
"send": "0.18.0",
|
||||||
|
"serve-static": "1.15.0",
|
||||||
|
"setprototypeof": "1.2.0",
|
||||||
|
"statuses": "2.0.1",
|
||||||
|
"type-is": "~1.6.18",
|
||||||
|
"utils-merge": "1.0.1",
|
||||||
|
"vary": "~1.1.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.10.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@nestjs/platform-express/node_modules/ms": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
|
||||||
|
},
|
||||||
|
"node_modules/@nestjs/platform-express/node_modules/path-to-regexp": {
|
||||||
|
"version": "0.1.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
||||||
|
"integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
|
||||||
|
},
|
||||||
"node_modules/@nestjs/schematics": {
|
"node_modules/@nestjs/schematics": {
|
||||||
"version": "9.0.3",
|
"version": "9.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/@nestjs/schematics/-/schematics-9.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@nestjs/schematics/-/schematics-9.0.3.tgz",
|
||||||
@@ -1896,7 +1955,6 @@
|
|||||||
"version": "1.19.2",
|
"version": "1.19.2",
|
||||||
"resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz",
|
"resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz",
|
||||||
"integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==",
|
"integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/connect": "*",
|
"@types/connect": "*",
|
||||||
"@types/node": "*"
|
"@types/node": "*"
|
||||||
@@ -1906,7 +1964,6 @@
|
|||||||
"version": "3.4.35",
|
"version": "3.4.35",
|
||||||
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
|
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
|
||||||
"integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==",
|
"integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/node": "*"
|
"@types/node": "*"
|
||||||
}
|
}
|
||||||
@@ -1947,7 +2004,6 @@
|
|||||||
"version": "4.17.14",
|
"version": "4.17.14",
|
||||||
"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz",
|
"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz",
|
||||||
"integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==",
|
"integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/body-parser": "*",
|
"@types/body-parser": "*",
|
||||||
"@types/express-serve-static-core": "^4.17.18",
|
"@types/express-serve-static-core": "^4.17.18",
|
||||||
@@ -1959,13 +2015,20 @@
|
|||||||
"version": "4.17.31",
|
"version": "4.17.31",
|
||||||
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz",
|
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz",
|
||||||
"integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==",
|
"integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/node": "*",
|
"@types/node": "*",
|
||||||
"@types/qs": "*",
|
"@types/qs": "*",
|
||||||
"@types/range-parser": "*"
|
"@types/range-parser": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@types/express-session": {
|
||||||
|
"version": "1.17.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/express-session/-/express-session-1.17.5.tgz",
|
||||||
|
"integrity": "sha512-l0DhkvNVfyUPEEis8fcwbd46VptfA/jmMwHfob2TfDMf3HyPLiB9mKD71LXhz5TMUobODXPD27zXSwtFQLHm+w==",
|
||||||
|
"dependencies": {
|
||||||
|
"@types/express": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@types/graceful-fs": {
|
"node_modules/@types/graceful-fs": {
|
||||||
"version": "4.1.5",
|
"version": "4.1.5",
|
||||||
"resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz",
|
||||||
@@ -2018,14 +2081,12 @@
|
|||||||
"node_modules/@types/mime": {
|
"node_modules/@types/mime": {
|
||||||
"version": "3.0.1",
|
"version": "3.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz",
|
||||||
"integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==",
|
"integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"node_modules/@types/node": {
|
"node_modules/@types/node": {
|
||||||
"version": "16.11.68",
|
"version": "16.11.68",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.68.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.68.tgz",
|
||||||
"integrity": "sha512-JkRpuVz3xCNCWaeQ5EHLR/6woMbHZz/jZ7Kmc63AkU+1HxnoUugzSWMck7dsR4DvNYX8jp9wTi9K7WvnxOIQZQ==",
|
"integrity": "sha512-JkRpuVz3xCNCWaeQ5EHLR/6woMbHZz/jZ7Kmc63AkU+1HxnoUugzSWMck7dsR4DvNYX8jp9wTi9K7WvnxOIQZQ=="
|
||||||
"devOptional": true
|
|
||||||
},
|
},
|
||||||
"node_modules/@types/parse-json": {
|
"node_modules/@types/parse-json": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
@@ -2072,14 +2133,12 @@
|
|||||||
"node_modules/@types/qs": {
|
"node_modules/@types/qs": {
|
||||||
"version": "6.9.7",
|
"version": "6.9.7",
|
||||||
"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz",
|
"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz",
|
||||||
"integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==",
|
"integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"node_modules/@types/range-parser": {
|
"node_modules/@types/range-parser": {
|
||||||
"version": "1.2.4",
|
"version": "1.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz",
|
||||||
"integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==",
|
"integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"node_modules/@types/semver": {
|
"node_modules/@types/semver": {
|
||||||
"version": "7.3.12",
|
"version": "7.3.12",
|
||||||
@@ -2091,7 +2150,6 @@
|
|||||||
"version": "1.15.0",
|
"version": "1.15.0",
|
||||||
"resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz",
|
"resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz",
|
||||||
"integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==",
|
"integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==",
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/mime": "*",
|
"@types/mime": "*",
|
||||||
"@types/node": "*"
|
"@types/node": "*"
|
||||||
@@ -4114,13 +4172,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/express": {
|
"node_modules/express": {
|
||||||
"version": "4.18.1",
|
"version": "4.18.2",
|
||||||
"resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz",
|
"resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
|
||||||
"integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==",
|
"integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"accepts": "~1.3.8",
|
"accepts": "~1.3.8",
|
||||||
"array-flatten": "1.1.1",
|
"array-flatten": "1.1.1",
|
||||||
"body-parser": "1.20.0",
|
"body-parser": "1.20.1",
|
||||||
"content-disposition": "0.5.4",
|
"content-disposition": "0.5.4",
|
||||||
"content-type": "~1.0.4",
|
"content-type": "~1.0.4",
|
||||||
"cookie": "0.5.0",
|
"cookie": "0.5.0",
|
||||||
@@ -4139,7 +4197,7 @@
|
|||||||
"parseurl": "~1.3.3",
|
"parseurl": "~1.3.3",
|
||||||
"path-to-regexp": "0.1.7",
|
"path-to-regexp": "0.1.7",
|
||||||
"proxy-addr": "~2.0.7",
|
"proxy-addr": "~2.0.7",
|
||||||
"qs": "6.10.3",
|
"qs": "6.11.0",
|
||||||
"range-parser": "~1.2.1",
|
"range-parser": "~1.2.1",
|
||||||
"safe-buffer": "5.2.1",
|
"safe-buffer": "5.2.1",
|
||||||
"send": "0.18.0",
|
"send": "0.18.0",
|
||||||
@@ -4154,6 +4212,68 @@
|
|||||||
"node": ">= 0.10.0"
|
"node": ">= 0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/express-session": {
|
||||||
|
"version": "1.17.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz",
|
||||||
|
"integrity": "sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw==",
|
||||||
|
"dependencies": {
|
||||||
|
"cookie": "0.4.2",
|
||||||
|
"cookie-signature": "1.0.6",
|
||||||
|
"debug": "2.6.9",
|
||||||
|
"depd": "~2.0.0",
|
||||||
|
"on-headers": "~1.0.2",
|
||||||
|
"parseurl": "~1.3.3",
|
||||||
|
"safe-buffer": "5.2.1",
|
||||||
|
"uid-safe": "~2.1.5"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.8.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/express-session/node_modules/cookie": {
|
||||||
|
"version": "0.4.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
|
||||||
|
"integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/express-session/node_modules/debug": {
|
||||||
|
"version": "2.6.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||||
|
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||||
|
"dependencies": {
|
||||||
|
"ms": "2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/express-session/node_modules/ms": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
|
||||||
|
},
|
||||||
|
"node_modules/express/node_modules/body-parser": {
|
||||||
|
"version": "1.20.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
|
||||||
|
"integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
|
||||||
|
"dependencies": {
|
||||||
|
"bytes": "3.1.2",
|
||||||
|
"content-type": "~1.0.4",
|
||||||
|
"debug": "2.6.9",
|
||||||
|
"depd": "2.0.0",
|
||||||
|
"destroy": "1.2.0",
|
||||||
|
"http-errors": "2.0.0",
|
||||||
|
"iconv-lite": "0.4.24",
|
||||||
|
"on-finished": "2.4.1",
|
||||||
|
"qs": "6.11.0",
|
||||||
|
"raw-body": "2.5.1",
|
||||||
|
"type-is": "~1.6.18",
|
||||||
|
"unpipe": "1.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.8",
|
||||||
|
"npm": "1.2.8000 || >= 1.4.16"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/express/node_modules/debug": {
|
"node_modules/express/node_modules/debug": {
|
||||||
"version": "2.6.9",
|
"version": "2.6.9",
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||||
@@ -4172,6 +4292,20 @@
|
|||||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
||||||
"integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
|
"integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
|
||||||
},
|
},
|
||||||
|
"node_modules/express/node_modules/qs": {
|
||||||
|
"version": "6.11.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
|
||||||
|
"integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
|
||||||
|
"dependencies": {
|
||||||
|
"side-channel": "^1.0.4"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.6"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/external-editor": {
|
"node_modules/external-editor": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
|
||||||
@@ -6467,6 +6601,14 @@
|
|||||||
"node": ">= 0.8"
|
"node": ">= 0.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/on-headers": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.8"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/once": {
|
"node_modules/once": {
|
||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||||
@@ -7143,6 +7285,14 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"node_modules/random-bytes": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.8"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/randombytes": {
|
"node_modules/randombytes": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
|
||||||
@@ -8553,6 +8703,17 @@
|
|||||||
"node": ">=4.2.0"
|
"node": ">=4.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/uid-safe": {
|
||||||
|
"version": "2.1.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
|
||||||
|
"integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==",
|
||||||
|
"dependencies": {
|
||||||
|
"random-bytes": "~1.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.8"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/uid2": {
|
"node_modules/uid2": {
|
||||||
"version": "0.0.4",
|
"version": "0.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.4.tgz",
|
||||||
|
|||||||
1
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/.coveralls.yml
generated
vendored
Normal file
1
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/.coveralls.yml
generated
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve
|
||||||
11
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/.eslintrc
generated
vendored
Normal file
11
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/.eslintrc
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"env": {
|
||||||
|
"browser": true,
|
||||||
|
"node": true
|
||||||
|
},
|
||||||
|
"rules": {
|
||||||
|
"no-console": 0,
|
||||||
|
"no-empty": [1, { "allowEmptyCatch": true }]
|
||||||
|
},
|
||||||
|
"extends": "eslint:recommended"
|
||||||
|
}
|
||||||
9
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/.npmignore
generated
vendored
Normal file
9
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/.npmignore
generated
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
support
|
||||||
|
test
|
||||||
|
examples
|
||||||
|
example
|
||||||
|
*.sock
|
||||||
|
dist
|
||||||
|
yarn.lock
|
||||||
|
coverage
|
||||||
|
bower.json
|
||||||
14
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/.travis.yml
generated
vendored
Normal file
14
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/.travis.yml
generated
vendored
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
|
||||||
|
language: node_js
|
||||||
|
node_js:
|
||||||
|
- "6"
|
||||||
|
- "5"
|
||||||
|
- "4"
|
||||||
|
|
||||||
|
install:
|
||||||
|
- make node_modules
|
||||||
|
|
||||||
|
script:
|
||||||
|
- make lint
|
||||||
|
- make test
|
||||||
|
- make coveralls
|
||||||
362
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/CHANGELOG.md
generated
vendored
Normal file
362
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/CHANGELOG.md
generated
vendored
Normal file
@@ -0,0 +1,362 @@
|
|||||||
|
|
||||||
|
2.6.9 / 2017-09-22
|
||||||
|
==================
|
||||||
|
|
||||||
|
* remove ReDoS regexp in %o formatter (#504)
|
||||||
|
|
||||||
|
2.6.8 / 2017-05-18
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix: Check for undefined on browser globals (#462, @marbemac)
|
||||||
|
|
||||||
|
2.6.7 / 2017-05-16
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix: Update ms to 2.0.0 to fix regular expression denial of service vulnerability (#458, @hubdotcom)
|
||||||
|
* Fix: Inline extend function in node implementation (#452, @dougwilson)
|
||||||
|
* Docs: Fix typo (#455, @msasad)
|
||||||
|
|
||||||
|
2.6.5 / 2017-04-27
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix: null reference check on window.documentElement.style.WebkitAppearance (#447, @thebigredgeek)
|
||||||
|
* Misc: clean up browser reference checks (#447, @thebigredgeek)
|
||||||
|
* Misc: add npm-debug.log to .gitignore (@thebigredgeek)
|
||||||
|
|
||||||
|
|
||||||
|
2.6.4 / 2017-04-20
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix: bug that would occure if process.env.DEBUG is a non-string value. (#444, @LucianBuzzo)
|
||||||
|
* Chore: ignore bower.json in npm installations. (#437, @joaovieira)
|
||||||
|
* Misc: update "ms" to v0.7.3 (@tootallnate)
|
||||||
|
|
||||||
|
2.6.3 / 2017-03-13
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix: Electron reference to `process.env.DEBUG` (#431, @paulcbetts)
|
||||||
|
* Docs: Changelog fix (@thebigredgeek)
|
||||||
|
|
||||||
|
2.6.2 / 2017-03-10
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix: DEBUG_MAX_ARRAY_LENGTH (#420, @slavaGanzin)
|
||||||
|
* Docs: Add backers and sponsors from Open Collective (#422, @piamancini)
|
||||||
|
* Docs: Add Slackin invite badge (@tootallnate)
|
||||||
|
|
||||||
|
2.6.1 / 2017-02-10
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix: Module's `export default` syntax fix for IE8 `Expected identifier` error
|
||||||
|
* Fix: Whitelist DEBUG_FD for values 1 and 2 only (#415, @pi0)
|
||||||
|
* Fix: IE8 "Expected identifier" error (#414, @vgoma)
|
||||||
|
* Fix: Namespaces would not disable once enabled (#409, @musikov)
|
||||||
|
|
||||||
|
2.6.0 / 2016-12-28
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix: added better null pointer checks for browser useColors (@thebigredgeek)
|
||||||
|
* Improvement: removed explicit `window.debug` export (#404, @tootallnate)
|
||||||
|
* Improvement: deprecated `DEBUG_FD` environment variable (#405, @tootallnate)
|
||||||
|
|
||||||
|
2.5.2 / 2016-12-25
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix: reference error on window within webworkers (#393, @KlausTrainer)
|
||||||
|
* Docs: fixed README typo (#391, @lurch)
|
||||||
|
* Docs: added notice about v3 api discussion (@thebigredgeek)
|
||||||
|
|
||||||
|
2.5.1 / 2016-12-20
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix: babel-core compatibility
|
||||||
|
|
||||||
|
2.5.0 / 2016-12-20
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix: wrong reference in bower file (@thebigredgeek)
|
||||||
|
* Fix: webworker compatibility (@thebigredgeek)
|
||||||
|
* Fix: output formatting issue (#388, @kribblo)
|
||||||
|
* Fix: babel-loader compatibility (#383, @escwald)
|
||||||
|
* Misc: removed built asset from repo and publications (@thebigredgeek)
|
||||||
|
* Misc: moved source files to /src (#378, @yamikuronue)
|
||||||
|
* Test: added karma integration and replaced babel with browserify for browser tests (#378, @yamikuronue)
|
||||||
|
* Test: coveralls integration (#378, @yamikuronue)
|
||||||
|
* Docs: simplified language in the opening paragraph (#373, @yamikuronue)
|
||||||
|
|
||||||
|
2.4.5 / 2016-12-17
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix: `navigator` undefined in Rhino (#376, @jochenberger)
|
||||||
|
* Fix: custom log function (#379, @hsiliev)
|
||||||
|
* Improvement: bit of cleanup + linting fixes (@thebigredgeek)
|
||||||
|
* Improvement: rm non-maintainted `dist/` dir (#375, @freewil)
|
||||||
|
* Docs: simplified language in the opening paragraph. (#373, @yamikuronue)
|
||||||
|
|
||||||
|
2.4.4 / 2016-12-14
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix: work around debug being loaded in preload scripts for electron (#368, @paulcbetts)
|
||||||
|
|
||||||
|
2.4.3 / 2016-12-14
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix: navigation.userAgent error for react native (#364, @escwald)
|
||||||
|
|
||||||
|
2.4.2 / 2016-12-14
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix: browser colors (#367, @tootallnate)
|
||||||
|
* Misc: travis ci integration (@thebigredgeek)
|
||||||
|
* Misc: added linting and testing boilerplate with sanity check (@thebigredgeek)
|
||||||
|
|
||||||
|
2.4.1 / 2016-12-13
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix: typo that broke the package (#356)
|
||||||
|
|
||||||
|
2.4.0 / 2016-12-13
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix: bower.json references unbuilt src entry point (#342, @justmatt)
|
||||||
|
* Fix: revert "handle regex special characters" (@tootallnate)
|
||||||
|
* Feature: configurable util.inspect()`options for NodeJS (#327, @tootallnate)
|
||||||
|
* Feature: %O`(big O) pretty-prints objects (#322, @tootallnate)
|
||||||
|
* Improvement: allow colors in workers (#335, @botverse)
|
||||||
|
* Improvement: use same color for same namespace. (#338, @lchenay)
|
||||||
|
|
||||||
|
2.3.3 / 2016-11-09
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix: Catch `JSON.stringify()` errors (#195, Jovan Alleyne)
|
||||||
|
* Fix: Returning `localStorage` saved values (#331, Levi Thomason)
|
||||||
|
* Improvement: Don't create an empty object when no `process` (Nathan Rajlich)
|
||||||
|
|
||||||
|
2.3.2 / 2016-11-09
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix: be super-safe in index.js as well (@TooTallNate)
|
||||||
|
* Fix: should check whether process exists (Tom Newby)
|
||||||
|
|
||||||
|
2.3.1 / 2016-11-09
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix: Added electron compatibility (#324, @paulcbetts)
|
||||||
|
* Improvement: Added performance optimizations (@tootallnate)
|
||||||
|
* Readme: Corrected PowerShell environment variable example (#252, @gimre)
|
||||||
|
* Misc: Removed yarn lock file from source control (#321, @fengmk2)
|
||||||
|
|
||||||
|
2.3.0 / 2016-11-07
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix: Consistent placement of ms diff at end of output (#215, @gorangajic)
|
||||||
|
* Fix: Escaping of regex special characters in namespace strings (#250, @zacronos)
|
||||||
|
* Fix: Fixed bug causing crash on react-native (#282, @vkarpov15)
|
||||||
|
* Feature: Enabled ES6+ compatible import via default export (#212 @bucaran)
|
||||||
|
* Feature: Added %O formatter to reflect Chrome's console.log capability (#279, @oncletom)
|
||||||
|
* Package: Update "ms" to 0.7.2 (#315, @DevSide)
|
||||||
|
* Package: removed superfluous version property from bower.json (#207 @kkirsche)
|
||||||
|
* Readme: fix USE_COLORS to DEBUG_COLORS
|
||||||
|
* Readme: Doc fixes for format string sugar (#269, @mlucool)
|
||||||
|
* Readme: Updated docs for DEBUG_FD and DEBUG_COLORS environment variables (#232, @mattlyons0)
|
||||||
|
* Readme: doc fixes for PowerShell (#271 #243, @exoticknight @unreadable)
|
||||||
|
* Readme: better docs for browser support (#224, @matthewmueller)
|
||||||
|
* Tooling: Added yarn integration for development (#317, @thebigredgeek)
|
||||||
|
* Misc: Renamed History.md to CHANGELOG.md (@thebigredgeek)
|
||||||
|
* Misc: Added license file (#226 #274, @CantemoInternal @sdaitzman)
|
||||||
|
* Misc: Updated contributors (@thebigredgeek)
|
||||||
|
|
||||||
|
2.2.0 / 2015-05-09
|
||||||
|
==================
|
||||||
|
|
||||||
|
* package: update "ms" to v0.7.1 (#202, @dougwilson)
|
||||||
|
* README: add logging to file example (#193, @DanielOchoa)
|
||||||
|
* README: fixed a typo (#191, @amir-s)
|
||||||
|
* browser: expose `storage` (#190, @stephenmathieson)
|
||||||
|
* Makefile: add a `distclean` target (#189, @stephenmathieson)
|
||||||
|
|
||||||
|
2.1.3 / 2015-03-13
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Updated stdout/stderr example (#186)
|
||||||
|
* Updated example/stdout.js to match debug current behaviour
|
||||||
|
* Renamed example/stderr.js to stdout.js
|
||||||
|
* Update Readme.md (#184)
|
||||||
|
* replace high intensity foreground color for bold (#182, #183)
|
||||||
|
|
||||||
|
2.1.2 / 2015-03-01
|
||||||
|
==================
|
||||||
|
|
||||||
|
* dist: recompile
|
||||||
|
* update "ms" to v0.7.0
|
||||||
|
* package: update "browserify" to v9.0.3
|
||||||
|
* component: fix "ms.js" repo location
|
||||||
|
* changed bower package name
|
||||||
|
* updated documentation about using debug in a browser
|
||||||
|
* fix: security error on safari (#167, #168, @yields)
|
||||||
|
|
||||||
|
2.1.1 / 2014-12-29
|
||||||
|
==================
|
||||||
|
|
||||||
|
* browser: use `typeof` to check for `console` existence
|
||||||
|
* browser: check for `console.log` truthiness (fix IE 8/9)
|
||||||
|
* browser: add support for Chrome apps
|
||||||
|
* Readme: added Windows usage remarks
|
||||||
|
* Add `bower.json` to properly support bower install
|
||||||
|
|
||||||
|
2.1.0 / 2014-10-15
|
||||||
|
==================
|
||||||
|
|
||||||
|
* node: implement `DEBUG_FD` env variable support
|
||||||
|
* package: update "browserify" to v6.1.0
|
||||||
|
* package: add "license" field to package.json (#135, @panuhorsmalahti)
|
||||||
|
|
||||||
|
2.0.0 / 2014-09-01
|
||||||
|
==================
|
||||||
|
|
||||||
|
* package: update "browserify" to v5.11.0
|
||||||
|
* node: use stderr rather than stdout for logging (#29, @stephenmathieson)
|
||||||
|
|
||||||
|
1.0.4 / 2014-07-15
|
||||||
|
==================
|
||||||
|
|
||||||
|
* dist: recompile
|
||||||
|
* example: remove `console.info()` log usage
|
||||||
|
* example: add "Content-Type" UTF-8 header to browser example
|
||||||
|
* browser: place %c marker after the space character
|
||||||
|
* browser: reset the "content" color via `color: inherit`
|
||||||
|
* browser: add colors support for Firefox >= v31
|
||||||
|
* debug: prefer an instance `log()` function over the global one (#119)
|
||||||
|
* Readme: update documentation about styled console logs for FF v31 (#116, @wryk)
|
||||||
|
|
||||||
|
1.0.3 / 2014-07-09
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Add support for multiple wildcards in namespaces (#122, @seegno)
|
||||||
|
* browser: fix lint
|
||||||
|
|
||||||
|
1.0.2 / 2014-06-10
|
||||||
|
==================
|
||||||
|
|
||||||
|
* browser: update color palette (#113, @gscottolson)
|
||||||
|
* common: make console logging function configurable (#108, @timoxley)
|
||||||
|
* node: fix %o colors on old node <= 0.8.x
|
||||||
|
* Makefile: find node path using shell/which (#109, @timoxley)
|
||||||
|
|
||||||
|
1.0.1 / 2014-06-06
|
||||||
|
==================
|
||||||
|
|
||||||
|
* browser: use `removeItem()` to clear localStorage
|
||||||
|
* browser, node: don't set DEBUG if namespaces is undefined (#107, @leedm777)
|
||||||
|
* package: add "contributors" section
|
||||||
|
* node: fix comment typo
|
||||||
|
* README: list authors
|
||||||
|
|
||||||
|
1.0.0 / 2014-06-04
|
||||||
|
==================
|
||||||
|
|
||||||
|
* make ms diff be global, not be scope
|
||||||
|
* debug: ignore empty strings in enable()
|
||||||
|
* node: make DEBUG_COLORS able to disable coloring
|
||||||
|
* *: export the `colors` array
|
||||||
|
* npmignore: don't publish the `dist` dir
|
||||||
|
* Makefile: refactor to use browserify
|
||||||
|
* package: add "browserify" as a dev dependency
|
||||||
|
* Readme: add Web Inspector Colors section
|
||||||
|
* node: reset terminal color for the debug content
|
||||||
|
* node: map "%o" to `util.inspect()`
|
||||||
|
* browser: map "%j" to `JSON.stringify()`
|
||||||
|
* debug: add custom "formatters"
|
||||||
|
* debug: use "ms" module for humanizing the diff
|
||||||
|
* Readme: add "bash" syntax highlighting
|
||||||
|
* browser: add Firebug color support
|
||||||
|
* browser: add colors for WebKit browsers
|
||||||
|
* node: apply log to `console`
|
||||||
|
* rewrite: abstract common logic for Node & browsers
|
||||||
|
* add .jshintrc file
|
||||||
|
|
||||||
|
0.8.1 / 2014-04-14
|
||||||
|
==================
|
||||||
|
|
||||||
|
* package: re-add the "component" section
|
||||||
|
|
||||||
|
0.8.0 / 2014-03-30
|
||||||
|
==================
|
||||||
|
|
||||||
|
* add `enable()` method for nodejs. Closes #27
|
||||||
|
* change from stderr to stdout
|
||||||
|
* remove unnecessary index.js file
|
||||||
|
|
||||||
|
0.7.4 / 2013-11-13
|
||||||
|
==================
|
||||||
|
|
||||||
|
* remove "browserify" key from package.json (fixes something in browserify)
|
||||||
|
|
||||||
|
0.7.3 / 2013-10-30
|
||||||
|
==================
|
||||||
|
|
||||||
|
* fix: catch localStorage security error when cookies are blocked (Chrome)
|
||||||
|
* add debug(err) support. Closes #46
|
||||||
|
* add .browser prop to package.json. Closes #42
|
||||||
|
|
||||||
|
0.7.2 / 2013-02-06
|
||||||
|
==================
|
||||||
|
|
||||||
|
* fix package.json
|
||||||
|
* fix: Mobile Safari (private mode) is broken with debug
|
||||||
|
* fix: Use unicode to send escape character to shell instead of octal to work with strict mode javascript
|
||||||
|
|
||||||
|
0.7.1 / 2013-02-05
|
||||||
|
==================
|
||||||
|
|
||||||
|
* add repository URL to package.json
|
||||||
|
* add DEBUG_COLORED to force colored output
|
||||||
|
* add browserify support
|
||||||
|
* fix component. Closes #24
|
||||||
|
|
||||||
|
0.7.0 / 2012-05-04
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Added .component to package.json
|
||||||
|
* Added debug.component.js build
|
||||||
|
|
||||||
|
0.6.0 / 2012-03-16
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Added support for "-" prefix in DEBUG [Vinay Pulim]
|
||||||
|
* Added `.enabled` flag to the node version [TooTallNate]
|
||||||
|
|
||||||
|
0.5.0 / 2012-02-02
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Added: humanize diffs. Closes #8
|
||||||
|
* Added `debug.disable()` to the CS variant
|
||||||
|
* Removed padding. Closes #10
|
||||||
|
* Fixed: persist client-side variant again. Closes #9
|
||||||
|
|
||||||
|
0.4.0 / 2012-02-01
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Added browser variant support for older browsers [TooTallNate]
|
||||||
|
* Added `debug.enable('project:*')` to browser variant [TooTallNate]
|
||||||
|
* Added padding to diff (moved it to the right)
|
||||||
|
|
||||||
|
0.3.0 / 2012-01-26
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Added millisecond diff when isatty, otherwise UTC string
|
||||||
|
|
||||||
|
0.2.0 / 2012-01-22
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Added wildcard support
|
||||||
|
|
||||||
|
0.1.0 / 2011-12-02
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Added: remove colors unless stderr isatty [TooTallNate]
|
||||||
|
|
||||||
|
0.0.1 / 2010-01-03
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Initial release
|
||||||
19
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/LICENSE
generated
vendored
Normal file
19
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
(The MIT License)
|
||||||
|
|
||||||
|
Copyright (c) 2014 TJ Holowaychuk <tj@vision-media.ca>
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
||||||
|
and associated documentation files (the 'Software'), to deal in the Software without restriction,
|
||||||
|
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
|
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all copies or substantial
|
||||||
|
portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
||||||
|
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
50
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/Makefile
generated
vendored
Normal file
50
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/Makefile
generated
vendored
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
# get Makefile directory name: http://stackoverflow.com/a/5982798/376773
|
||||||
|
THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
|
||||||
|
THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd)
|
||||||
|
|
||||||
|
# BIN directory
|
||||||
|
BIN := $(THIS_DIR)/node_modules/.bin
|
||||||
|
|
||||||
|
# Path
|
||||||
|
PATH := node_modules/.bin:$(PATH)
|
||||||
|
SHELL := /bin/bash
|
||||||
|
|
||||||
|
# applications
|
||||||
|
NODE ?= $(shell which node)
|
||||||
|
YARN ?= $(shell which yarn)
|
||||||
|
PKG ?= $(if $(YARN),$(YARN),$(NODE) $(shell which npm))
|
||||||
|
BROWSERIFY ?= $(NODE) $(BIN)/browserify
|
||||||
|
|
||||||
|
.FORCE:
|
||||||
|
|
||||||
|
install: node_modules
|
||||||
|
|
||||||
|
node_modules: package.json
|
||||||
|
@NODE_ENV= $(PKG) install
|
||||||
|
@touch node_modules
|
||||||
|
|
||||||
|
lint: .FORCE
|
||||||
|
eslint browser.js debug.js index.js node.js
|
||||||
|
|
||||||
|
test-node: .FORCE
|
||||||
|
istanbul cover node_modules/mocha/bin/_mocha -- test/**.js
|
||||||
|
|
||||||
|
test-browser: .FORCE
|
||||||
|
mkdir -p dist
|
||||||
|
|
||||||
|
@$(BROWSERIFY) \
|
||||||
|
--standalone debug \
|
||||||
|
. > dist/debug.js
|
||||||
|
|
||||||
|
karma start --single-run
|
||||||
|
rimraf dist
|
||||||
|
|
||||||
|
test: .FORCE
|
||||||
|
concurrently \
|
||||||
|
"make test-node" \
|
||||||
|
"make test-browser"
|
||||||
|
|
||||||
|
coveralls:
|
||||||
|
cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js
|
||||||
|
|
||||||
|
.PHONY: all install clean distclean
|
||||||
312
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/README.md
generated
vendored
Normal file
312
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/README.md
generated
vendored
Normal file
@@ -0,0 +1,312 @@
|
|||||||
|
# debug
|
||||||
|
[](https://travis-ci.org/visionmedia/debug) [](https://coveralls.io/github/visionmedia/debug?branch=master) [](https://visionmedia-community-slackin.now.sh/) [](#backers)
|
||||||
|
[](#sponsors)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
A tiny node.js debugging utility modelled after node core's debugging technique.
|
||||||
|
|
||||||
|
**Discussion around the V3 API is under way [here](https://github.com/visionmedia/debug/issues/370)**
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ npm install debug
|
||||||
|
```
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
`debug` exposes a function; simply pass this function the name of your module, and it will return a decorated version of `console.error` for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole.
|
||||||
|
|
||||||
|
Example _app.js_:
|
||||||
|
|
||||||
|
```js
|
||||||
|
var debug = require('debug')('http')
|
||||||
|
, http = require('http')
|
||||||
|
, name = 'My App';
|
||||||
|
|
||||||
|
// fake app
|
||||||
|
|
||||||
|
debug('booting %s', name);
|
||||||
|
|
||||||
|
http.createServer(function(req, res){
|
||||||
|
debug(req.method + ' ' + req.url);
|
||||||
|
res.end('hello\n');
|
||||||
|
}).listen(3000, function(){
|
||||||
|
debug('listening');
|
||||||
|
});
|
||||||
|
|
||||||
|
// fake worker of some kind
|
||||||
|
|
||||||
|
require('./worker');
|
||||||
|
```
|
||||||
|
|
||||||
|
Example _worker.js_:
|
||||||
|
|
||||||
|
```js
|
||||||
|
var debug = require('debug')('worker');
|
||||||
|
|
||||||
|
setInterval(function(){
|
||||||
|
debug('doing some work');
|
||||||
|
}, 1000);
|
||||||
|
```
|
||||||
|
|
||||||
|
The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
#### Windows note
|
||||||
|
|
||||||
|
On Windows the environment variable is set using the `set` command.
|
||||||
|
|
||||||
|
```cmd
|
||||||
|
set DEBUG=*,-not_this
|
||||||
|
```
|
||||||
|
|
||||||
|
Note that PowerShell uses different syntax to set environment variables.
|
||||||
|
|
||||||
|
```cmd
|
||||||
|
$env:DEBUG = "*,-not_this"
|
||||||
|
```
|
||||||
|
|
||||||
|
Then, run the program to be debugged as usual.
|
||||||
|
|
||||||
|
## Millisecond diff
|
||||||
|
|
||||||
|
When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Conventions
|
||||||
|
|
||||||
|
If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser".
|
||||||
|
|
||||||
|
## Wildcards
|
||||||
|
|
||||||
|
The `*` character may be used as a wildcard. Suppose for example your library has debuggers named "connect:bodyParser", "connect:compress", "connect:session", instead of listing all three with `DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`.
|
||||||
|
|
||||||
|
You can also exclude specific debuggers by prefixing them with a "-" character. For example, `DEBUG=*,-connect:*` would include all debuggers except those starting with "connect:".
|
||||||
|
|
||||||
|
## Environment Variables
|
||||||
|
|
||||||
|
When running through Node.js, you can set a few environment variables that will
|
||||||
|
change the behavior of the debug logging:
|
||||||
|
|
||||||
|
| Name | Purpose |
|
||||||
|
|-----------|-------------------------------------------------|
|
||||||
|
| `DEBUG` | Enables/disables specific debugging namespaces. |
|
||||||
|
| `DEBUG_COLORS`| Whether or not to use colors in the debug output. |
|
||||||
|
| `DEBUG_DEPTH` | Object inspection depth. |
|
||||||
|
| `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. |
|
||||||
|
|
||||||
|
|
||||||
|
__Note:__ The environment variables beginning with `DEBUG_` end up being
|
||||||
|
converted into an Options object that gets used with `%o`/`%O` formatters.
|
||||||
|
See the Node.js documentation for
|
||||||
|
[`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options)
|
||||||
|
for the complete list.
|
||||||
|
|
||||||
|
## Formatters
|
||||||
|
|
||||||
|
|
||||||
|
Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting. Below are the officially supported formatters:
|
||||||
|
|
||||||
|
| Formatter | Representation |
|
||||||
|
|-----------|----------------|
|
||||||
|
| `%O` | Pretty-print an Object on multiple lines. |
|
||||||
|
| `%o` | Pretty-print an Object all on a single line. |
|
||||||
|
| `%s` | String. |
|
||||||
|
| `%d` | Number (both integer and float). |
|
||||||
|
| `%j` | JSON. Replaced with the string '[Circular]' if the argument contains circular references. |
|
||||||
|
| `%%` | Single percent sign ('%'). This does not consume an argument. |
|
||||||
|
|
||||||
|
### Custom formatters
|
||||||
|
|
||||||
|
You can add custom formatters by extending the `debug.formatters` object. For example, if you wanted to add support for rendering a Buffer as hex with `%h`, you could do something like:
|
||||||
|
|
||||||
|
```js
|
||||||
|
const createDebug = require('debug')
|
||||||
|
createDebug.formatters.h = (v) => {
|
||||||
|
return v.toString('hex')
|
||||||
|
}
|
||||||
|
|
||||||
|
// …elsewhere
|
||||||
|
const debug = createDebug('foo')
|
||||||
|
debug('this is hex: %h', new Buffer('hello world'))
|
||||||
|
// foo this is hex: 68656c6c6f20776f726c6421 +0ms
|
||||||
|
```
|
||||||
|
|
||||||
|
## Browser support
|
||||||
|
You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify),
|
||||||
|
or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest),
|
||||||
|
if you don't want to build it yourself.
|
||||||
|
|
||||||
|
Debug's enable state is currently persisted by `localStorage`.
|
||||||
|
Consider the situation shown below where you have `worker:a` and `worker:b`,
|
||||||
|
and wish to debug both. You can enable this using `localStorage.debug`:
|
||||||
|
|
||||||
|
```js
|
||||||
|
localStorage.debug = 'worker:*'
|
||||||
|
```
|
||||||
|
|
||||||
|
And then refresh the page.
|
||||||
|
|
||||||
|
```js
|
||||||
|
a = debug('worker:a');
|
||||||
|
b = debug('worker:b');
|
||||||
|
|
||||||
|
setInterval(function(){
|
||||||
|
a('doing some work');
|
||||||
|
}, 1000);
|
||||||
|
|
||||||
|
setInterval(function(){
|
||||||
|
b('doing some work');
|
||||||
|
}, 1200);
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Web Inspector Colors
|
||||||
|
|
||||||
|
Colors are also enabled on "Web Inspectors" that understand the `%c` formatting
|
||||||
|
option. These are WebKit web inspectors, Firefox ([since version
|
||||||
|
31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/))
|
||||||
|
and the Firebug plugin for Firefox (any version).
|
||||||
|
|
||||||
|
Colored output looks something like:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
## Output streams
|
||||||
|
|
||||||
|
By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method:
|
||||||
|
|
||||||
|
Example _stdout.js_:
|
||||||
|
|
||||||
|
```js
|
||||||
|
var debug = require('debug');
|
||||||
|
var error = debug('app:error');
|
||||||
|
|
||||||
|
// by default stderr is used
|
||||||
|
error('goes to stderr!');
|
||||||
|
|
||||||
|
var log = debug('app:log');
|
||||||
|
// set this namespace to log via console.log
|
||||||
|
log.log = console.log.bind(console); // don't forget to bind to console!
|
||||||
|
log('goes to stdout');
|
||||||
|
error('still goes to stderr!');
|
||||||
|
|
||||||
|
// set all output to go via console.info
|
||||||
|
// overrides all per-namespace log settings
|
||||||
|
debug.log = console.info.bind(console);
|
||||||
|
error('now goes to stdout via console.info');
|
||||||
|
log('still goes to stdout, but via console.info now');
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Authors
|
||||||
|
|
||||||
|
- TJ Holowaychuk
|
||||||
|
- Nathan Rajlich
|
||||||
|
- Andrew Rhyne
|
||||||
|
|
||||||
|
## Backers
|
||||||
|
|
||||||
|
Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/debug#backer)]
|
||||||
|
|
||||||
|
<a href="https://opencollective.com/debug/backer/0/website" target="_blank"><img src="https://opencollective.com/debug/backer/0/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/1/website" target="_blank"><img src="https://opencollective.com/debug/backer/1/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/2/website" target="_blank"><img src="https://opencollective.com/debug/backer/2/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/3/website" target="_blank"><img src="https://opencollective.com/debug/backer/3/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/4/website" target="_blank"><img src="https://opencollective.com/debug/backer/4/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/5/website" target="_blank"><img src="https://opencollective.com/debug/backer/5/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/6/website" target="_blank"><img src="https://opencollective.com/debug/backer/6/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/7/website" target="_blank"><img src="https://opencollective.com/debug/backer/7/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/8/website" target="_blank"><img src="https://opencollective.com/debug/backer/8/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/9/website" target="_blank"><img src="https://opencollective.com/debug/backer/9/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/10/website" target="_blank"><img src="https://opencollective.com/debug/backer/10/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/11/website" target="_blank"><img src="https://opencollective.com/debug/backer/11/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/12/website" target="_blank"><img src="https://opencollective.com/debug/backer/12/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/13/website" target="_blank"><img src="https://opencollective.com/debug/backer/13/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/14/website" target="_blank"><img src="https://opencollective.com/debug/backer/14/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/15/website" target="_blank"><img src="https://opencollective.com/debug/backer/15/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/16/website" target="_blank"><img src="https://opencollective.com/debug/backer/16/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/17/website" target="_blank"><img src="https://opencollective.com/debug/backer/17/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/18/website" target="_blank"><img src="https://opencollective.com/debug/backer/18/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/19/website" target="_blank"><img src="https://opencollective.com/debug/backer/19/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/20/website" target="_blank"><img src="https://opencollective.com/debug/backer/20/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/21/website" target="_blank"><img src="https://opencollective.com/debug/backer/21/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/22/website" target="_blank"><img src="https://opencollective.com/debug/backer/22/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/23/website" target="_blank"><img src="https://opencollective.com/debug/backer/23/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/24/website" target="_blank"><img src="https://opencollective.com/debug/backer/24/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/25/website" target="_blank"><img src="https://opencollective.com/debug/backer/25/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/26/website" target="_blank"><img src="https://opencollective.com/debug/backer/26/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/27/website" target="_blank"><img src="https://opencollective.com/debug/backer/27/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/28/website" target="_blank"><img src="https://opencollective.com/debug/backer/28/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/backer/29/website" target="_blank"><img src="https://opencollective.com/debug/backer/29/avatar.svg"></a>
|
||||||
|
|
||||||
|
|
||||||
|
## Sponsors
|
||||||
|
|
||||||
|
Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/debug#sponsor)]
|
||||||
|
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/0/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/0/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/1/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/1/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/2/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/2/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/3/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/3/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/4/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/4/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/5/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/5/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/6/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/6/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/7/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/7/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/8/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/8/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/9/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/9/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/10/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/10/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/11/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/11/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/12/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/12/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/13/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/13/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/14/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/14/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/15/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/15/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/16/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/16/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/17/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/17/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/18/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/18/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/19/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/19/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/20/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/20/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/21/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/21/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/22/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/22/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/23/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/23/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/24/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/24/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/25/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/25/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/26/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/26/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/27/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/27/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/28/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/28/avatar.svg"></a>
|
||||||
|
<a href="https://opencollective.com/debug/sponsor/29/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/29/avatar.svg"></a>
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
(The MIT License)
|
||||||
|
|
||||||
|
Copyright (c) 2014-2016 TJ Holowaychuk <tj@vision-media.ca>
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
'Software'), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
19
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/component.json
generated
vendored
Normal file
19
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/component.json
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"name": "debug",
|
||||||
|
"repo": "visionmedia/debug",
|
||||||
|
"description": "small debugging utility",
|
||||||
|
"version": "2.6.9",
|
||||||
|
"keywords": [
|
||||||
|
"debug",
|
||||||
|
"log",
|
||||||
|
"debugger"
|
||||||
|
],
|
||||||
|
"main": "src/browser.js",
|
||||||
|
"scripts": [
|
||||||
|
"src/browser.js",
|
||||||
|
"src/debug.js"
|
||||||
|
],
|
||||||
|
"dependencies": {
|
||||||
|
"rauchg/ms.js": "0.7.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
70
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/karma.conf.js
generated
vendored
Normal file
70
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/karma.conf.js
generated
vendored
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
// Karma configuration
|
||||||
|
// Generated on Fri Dec 16 2016 13:09:51 GMT+0000 (UTC)
|
||||||
|
|
||||||
|
module.exports = function(config) {
|
||||||
|
config.set({
|
||||||
|
|
||||||
|
// base path that will be used to resolve all patterns (eg. files, exclude)
|
||||||
|
basePath: '',
|
||||||
|
|
||||||
|
|
||||||
|
// frameworks to use
|
||||||
|
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
|
||||||
|
frameworks: ['mocha', 'chai', 'sinon'],
|
||||||
|
|
||||||
|
|
||||||
|
// list of files / patterns to load in the browser
|
||||||
|
files: [
|
||||||
|
'dist/debug.js',
|
||||||
|
'test/*spec.js'
|
||||||
|
],
|
||||||
|
|
||||||
|
|
||||||
|
// list of files to exclude
|
||||||
|
exclude: [
|
||||||
|
'src/node.js'
|
||||||
|
],
|
||||||
|
|
||||||
|
|
||||||
|
// preprocess matching files before serving them to the browser
|
||||||
|
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
|
||||||
|
preprocessors: {
|
||||||
|
},
|
||||||
|
|
||||||
|
// test results reporter to use
|
||||||
|
// possible values: 'dots', 'progress'
|
||||||
|
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
|
||||||
|
reporters: ['progress'],
|
||||||
|
|
||||||
|
|
||||||
|
// web server port
|
||||||
|
port: 9876,
|
||||||
|
|
||||||
|
|
||||||
|
// enable / disable colors in the output (reporters and logs)
|
||||||
|
colors: true,
|
||||||
|
|
||||||
|
|
||||||
|
// level of logging
|
||||||
|
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
|
||||||
|
logLevel: config.LOG_INFO,
|
||||||
|
|
||||||
|
|
||||||
|
// enable / disable watching file and executing tests whenever any file changes
|
||||||
|
autoWatch: true,
|
||||||
|
|
||||||
|
|
||||||
|
// start these browsers
|
||||||
|
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
|
||||||
|
browsers: ['PhantomJS'],
|
||||||
|
|
||||||
|
|
||||||
|
// Continuous Integration mode
|
||||||
|
// if true, Karma captures browsers, runs the tests and exits
|
||||||
|
singleRun: false,
|
||||||
|
|
||||||
|
// Concurrency level
|
||||||
|
// how many browser should be started simultaneous
|
||||||
|
concurrency: Infinity
|
||||||
|
})
|
||||||
|
}
|
||||||
1
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/node.js
generated
vendored
Normal file
1
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/node.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
module.exports = require('./src/node');
|
||||||
49
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/package.json
generated
vendored
Normal file
49
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/package.json
generated
vendored
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
{
|
||||||
|
"name": "debug",
|
||||||
|
"version": "2.6.9",
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git://github.com/visionmedia/debug.git"
|
||||||
|
},
|
||||||
|
"description": "small debugging utility",
|
||||||
|
"keywords": [
|
||||||
|
"debug",
|
||||||
|
"log",
|
||||||
|
"debugger"
|
||||||
|
],
|
||||||
|
"author": "TJ Holowaychuk <tj@vision-media.ca>",
|
||||||
|
"contributors": [
|
||||||
|
"Nathan Rajlich <nathan@tootallnate.net> (http://n8.io)",
|
||||||
|
"Andrew Rhyne <rhyneandrew@gmail.com>"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"ms": "2.0.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"browserify": "9.0.3",
|
||||||
|
"chai": "^3.5.0",
|
||||||
|
"concurrently": "^3.1.0",
|
||||||
|
"coveralls": "^2.11.15",
|
||||||
|
"eslint": "^3.12.1",
|
||||||
|
"istanbul": "^0.4.5",
|
||||||
|
"karma": "^1.3.0",
|
||||||
|
"karma-chai": "^0.1.0",
|
||||||
|
"karma-mocha": "^1.3.0",
|
||||||
|
"karma-phantomjs-launcher": "^1.0.2",
|
||||||
|
"karma-sinon": "^1.0.5",
|
||||||
|
"mocha": "^3.2.0",
|
||||||
|
"mocha-lcov-reporter": "^1.2.0",
|
||||||
|
"rimraf": "^2.5.4",
|
||||||
|
"sinon": "^1.17.6",
|
||||||
|
"sinon-chai": "^2.8.0"
|
||||||
|
},
|
||||||
|
"main": "./src/index.js",
|
||||||
|
"browser": "./src/browser.js",
|
||||||
|
"component": {
|
||||||
|
"scripts": {
|
||||||
|
"debug/index.js": "browser.js",
|
||||||
|
"debug/debug.js": "debug.js"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
185
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/src/browser.js
generated
vendored
Normal file
185
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/src/browser.js
generated
vendored
Normal file
@@ -0,0 +1,185 @@
|
|||||||
|
/**
|
||||||
|
* This is the web browser implementation of `debug()`.
|
||||||
|
*
|
||||||
|
* Expose `debug()` as the module.
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports = module.exports = require('./debug');
|
||||||
|
exports.log = log;
|
||||||
|
exports.formatArgs = formatArgs;
|
||||||
|
exports.save = save;
|
||||||
|
exports.load = load;
|
||||||
|
exports.useColors = useColors;
|
||||||
|
exports.storage = 'undefined' != typeof chrome
|
||||||
|
&& 'undefined' != typeof chrome.storage
|
||||||
|
? chrome.storage.local
|
||||||
|
: localstorage();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Colors.
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.colors = [
|
||||||
|
'lightseagreen',
|
||||||
|
'forestgreen',
|
||||||
|
'goldenrod',
|
||||||
|
'dodgerblue',
|
||||||
|
'darkorchid',
|
||||||
|
'crimson'
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Currently only WebKit-based Web Inspectors, Firefox >= v31,
|
||||||
|
* and the Firebug extension (any Firefox version) are known
|
||||||
|
* to support "%c" CSS customizations.
|
||||||
|
*
|
||||||
|
* TODO: add a `localStorage` variable to explicitly enable/disable colors
|
||||||
|
*/
|
||||||
|
|
||||||
|
function useColors() {
|
||||||
|
// NB: In an Electron preload script, document will be defined but not fully
|
||||||
|
// initialized. Since we know we're in Chrome, we'll just detect this case
|
||||||
|
// explicitly
|
||||||
|
if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// is webkit? http://stackoverflow.com/a/16459606/376773
|
||||||
|
// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
|
||||||
|
return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
|
||||||
|
// is firebug? http://stackoverflow.com/a/398120/376773
|
||||||
|
(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
|
||||||
|
// is firefox >= v31?
|
||||||
|
// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
|
||||||
|
(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
|
||||||
|
// double check webkit in userAgent just in case we are in a worker
|
||||||
|
(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.formatters.j = function(v) {
|
||||||
|
try {
|
||||||
|
return JSON.stringify(v);
|
||||||
|
} catch (err) {
|
||||||
|
return '[UnexpectedJSONParseError]: ' + err.message;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Colorize log arguments if enabled.
|
||||||
|
*
|
||||||
|
* @api public
|
||||||
|
*/
|
||||||
|
|
||||||
|
function formatArgs(args) {
|
||||||
|
var useColors = this.useColors;
|
||||||
|
|
||||||
|
args[0] = (useColors ? '%c' : '')
|
||||||
|
+ this.namespace
|
||||||
|
+ (useColors ? ' %c' : ' ')
|
||||||
|
+ args[0]
|
||||||
|
+ (useColors ? '%c ' : ' ')
|
||||||
|
+ '+' + exports.humanize(this.diff);
|
||||||
|
|
||||||
|
if (!useColors) return;
|
||||||
|
|
||||||
|
var c = 'color: ' + this.color;
|
||||||
|
args.splice(1, 0, c, 'color: inherit')
|
||||||
|
|
||||||
|
// the final "%c" is somewhat tricky, because there could be other
|
||||||
|
// arguments passed either before or after the %c, so we need to
|
||||||
|
// figure out the correct index to insert the CSS into
|
||||||
|
var index = 0;
|
||||||
|
var lastC = 0;
|
||||||
|
args[0].replace(/%[a-zA-Z%]/g, function(match) {
|
||||||
|
if ('%%' === match) return;
|
||||||
|
index++;
|
||||||
|
if ('%c' === match) {
|
||||||
|
// we only are interested in the *last* %c
|
||||||
|
// (the user may have provided their own)
|
||||||
|
lastC = index;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
args.splice(lastC, 0, c);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invokes `console.log()` when available.
|
||||||
|
* No-op when `console.log` is not a "function".
|
||||||
|
*
|
||||||
|
* @api public
|
||||||
|
*/
|
||||||
|
|
||||||
|
function log() {
|
||||||
|
// this hackery is required for IE8/9, where
|
||||||
|
// the `console.log` function doesn't have 'apply'
|
||||||
|
return 'object' === typeof console
|
||||||
|
&& console.log
|
||||||
|
&& Function.prototype.apply.call(console.log, console, arguments);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Save `namespaces`.
|
||||||
|
*
|
||||||
|
* @param {String} namespaces
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
function save(namespaces) {
|
||||||
|
try {
|
||||||
|
if (null == namespaces) {
|
||||||
|
exports.storage.removeItem('debug');
|
||||||
|
} else {
|
||||||
|
exports.storage.debug = namespaces;
|
||||||
|
}
|
||||||
|
} catch(e) {}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load `namespaces`.
|
||||||
|
*
|
||||||
|
* @return {String} returns the previously persisted debug modes
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
function load() {
|
||||||
|
var r;
|
||||||
|
try {
|
||||||
|
r = exports.storage.debug;
|
||||||
|
} catch(e) {}
|
||||||
|
|
||||||
|
// If debug isn't set in LS, and we're in Electron, try to load $DEBUG
|
||||||
|
if (!r && typeof process !== 'undefined' && 'env' in process) {
|
||||||
|
r = process.env.DEBUG;
|
||||||
|
}
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enable namespaces listed in `localStorage.debug` initially.
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.enable(load());
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Localstorage attempts to return the localstorage.
|
||||||
|
*
|
||||||
|
* This is necessary because safari throws
|
||||||
|
* when a user disables cookies/localstorage
|
||||||
|
* and you attempt to access it.
|
||||||
|
*
|
||||||
|
* @return {LocalStorage}
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
function localstorage() {
|
||||||
|
try {
|
||||||
|
return window.localStorage;
|
||||||
|
} catch (e) {}
|
||||||
|
}
|
||||||
202
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/src/debug.js
generated
vendored
Normal file
202
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/src/debug.js
generated
vendored
Normal file
@@ -0,0 +1,202 @@
|
|||||||
|
|
||||||
|
/**
|
||||||
|
* This is the common logic for both the Node.js and web browser
|
||||||
|
* implementations of `debug()`.
|
||||||
|
*
|
||||||
|
* Expose `debug()` as the module.
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports = module.exports = createDebug.debug = createDebug['default'] = createDebug;
|
||||||
|
exports.coerce = coerce;
|
||||||
|
exports.disable = disable;
|
||||||
|
exports.enable = enable;
|
||||||
|
exports.enabled = enabled;
|
||||||
|
exports.humanize = require('ms');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The currently active debug mode names, and names to skip.
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.names = [];
|
||||||
|
exports.skips = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Map of special "%n" handling functions, for the debug "format" argument.
|
||||||
|
*
|
||||||
|
* Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.formatters = {};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Previous log timestamp.
|
||||||
|
*/
|
||||||
|
|
||||||
|
var prevTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Select a color.
|
||||||
|
* @param {String} namespace
|
||||||
|
* @return {Number}
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
function selectColor(namespace) {
|
||||||
|
var hash = 0, i;
|
||||||
|
|
||||||
|
for (i in namespace) {
|
||||||
|
hash = ((hash << 5) - hash) + namespace.charCodeAt(i);
|
||||||
|
hash |= 0; // Convert to 32bit integer
|
||||||
|
}
|
||||||
|
|
||||||
|
return exports.colors[Math.abs(hash) % exports.colors.length];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a debugger with the given `namespace`.
|
||||||
|
*
|
||||||
|
* @param {String} namespace
|
||||||
|
* @return {Function}
|
||||||
|
* @api public
|
||||||
|
*/
|
||||||
|
|
||||||
|
function createDebug(namespace) {
|
||||||
|
|
||||||
|
function debug() {
|
||||||
|
// disabled?
|
||||||
|
if (!debug.enabled) return;
|
||||||
|
|
||||||
|
var self = debug;
|
||||||
|
|
||||||
|
// set `diff` timestamp
|
||||||
|
var curr = +new Date();
|
||||||
|
var ms = curr - (prevTime || curr);
|
||||||
|
self.diff = ms;
|
||||||
|
self.prev = prevTime;
|
||||||
|
self.curr = curr;
|
||||||
|
prevTime = curr;
|
||||||
|
|
||||||
|
// turn the `arguments` into a proper Array
|
||||||
|
var args = new Array(arguments.length);
|
||||||
|
for (var i = 0; i < args.length; i++) {
|
||||||
|
args[i] = arguments[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
args[0] = exports.coerce(args[0]);
|
||||||
|
|
||||||
|
if ('string' !== typeof args[0]) {
|
||||||
|
// anything else let's inspect with %O
|
||||||
|
args.unshift('%O');
|
||||||
|
}
|
||||||
|
|
||||||
|
// apply any `formatters` transformations
|
||||||
|
var index = 0;
|
||||||
|
args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {
|
||||||
|
// if we encounter an escaped % then don't increase the array index
|
||||||
|
if (match === '%%') return match;
|
||||||
|
index++;
|
||||||
|
var formatter = exports.formatters[format];
|
||||||
|
if ('function' === typeof formatter) {
|
||||||
|
var val = args[index];
|
||||||
|
match = formatter.call(self, val);
|
||||||
|
|
||||||
|
// now we need to remove `args[index]` since it's inlined in the `format`
|
||||||
|
args.splice(index, 1);
|
||||||
|
index--;
|
||||||
|
}
|
||||||
|
return match;
|
||||||
|
});
|
||||||
|
|
||||||
|
// apply env-specific formatting (colors, etc.)
|
||||||
|
exports.formatArgs.call(self, args);
|
||||||
|
|
||||||
|
var logFn = debug.log || exports.log || console.log.bind(console);
|
||||||
|
logFn.apply(self, args);
|
||||||
|
}
|
||||||
|
|
||||||
|
debug.namespace = namespace;
|
||||||
|
debug.enabled = exports.enabled(namespace);
|
||||||
|
debug.useColors = exports.useColors();
|
||||||
|
debug.color = selectColor(namespace);
|
||||||
|
|
||||||
|
// env-specific initialization logic for debug instances
|
||||||
|
if ('function' === typeof exports.init) {
|
||||||
|
exports.init(debug);
|
||||||
|
}
|
||||||
|
|
||||||
|
return debug;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enables a debug mode by namespaces. This can include modes
|
||||||
|
* separated by a colon and wildcards.
|
||||||
|
*
|
||||||
|
* @param {String} namespaces
|
||||||
|
* @api public
|
||||||
|
*/
|
||||||
|
|
||||||
|
function enable(namespaces) {
|
||||||
|
exports.save(namespaces);
|
||||||
|
|
||||||
|
exports.names = [];
|
||||||
|
exports.skips = [];
|
||||||
|
|
||||||
|
var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/);
|
||||||
|
var len = split.length;
|
||||||
|
|
||||||
|
for (var i = 0; i < len; i++) {
|
||||||
|
if (!split[i]) continue; // ignore empty strings
|
||||||
|
namespaces = split[i].replace(/\*/g, '.*?');
|
||||||
|
if (namespaces[0] === '-') {
|
||||||
|
exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));
|
||||||
|
} else {
|
||||||
|
exports.names.push(new RegExp('^' + namespaces + '$'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disable debug output.
|
||||||
|
*
|
||||||
|
* @api public
|
||||||
|
*/
|
||||||
|
|
||||||
|
function disable() {
|
||||||
|
exports.enable('');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns true if the given mode name is enabled, false otherwise.
|
||||||
|
*
|
||||||
|
* @param {String} name
|
||||||
|
* @return {Boolean}
|
||||||
|
* @api public
|
||||||
|
*/
|
||||||
|
|
||||||
|
function enabled(name) {
|
||||||
|
var i, len;
|
||||||
|
for (i = 0, len = exports.skips.length; i < len; i++) {
|
||||||
|
if (exports.skips[i].test(name)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (i = 0, len = exports.names.length; i < len; i++) {
|
||||||
|
if (exports.names[i].test(name)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Coerce `val`.
|
||||||
|
*
|
||||||
|
* @param {Mixed} val
|
||||||
|
* @return {Mixed}
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
function coerce(val) {
|
||||||
|
if (val instanceof Error) return val.stack || val.message;
|
||||||
|
return val;
|
||||||
|
}
|
||||||
10
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/src/index.js
generated
vendored
Normal file
10
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/src/index.js
generated
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
/**
|
||||||
|
* Detect Electron renderer process, which is node, but we should
|
||||||
|
* treat as a browser.
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (typeof process !== 'undefined' && process.type === 'renderer') {
|
||||||
|
module.exports = require('./browser.js');
|
||||||
|
} else {
|
||||||
|
module.exports = require('./node.js');
|
||||||
|
}
|
||||||
15
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/src/inspector-log.js
generated
vendored
Normal file
15
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/src/inspector-log.js
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
module.exports = inspectorLog;
|
||||||
|
|
||||||
|
// black hole
|
||||||
|
const nullStream = new (require('stream').Writable)();
|
||||||
|
nullStream._write = () => {};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Outputs a `console.log()` to the Node.js Inspector console *only*.
|
||||||
|
*/
|
||||||
|
function inspectorLog() {
|
||||||
|
const stdout = console._stdout;
|
||||||
|
console._stdout = nullStream;
|
||||||
|
console.log.apply(console, arguments);
|
||||||
|
console._stdout = stdout;
|
||||||
|
}
|
||||||
248
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/src/node.js
generated
vendored
Normal file
248
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/debug/src/node.js
generated
vendored
Normal file
@@ -0,0 +1,248 @@
|
|||||||
|
/**
|
||||||
|
* Module dependencies.
|
||||||
|
*/
|
||||||
|
|
||||||
|
var tty = require('tty');
|
||||||
|
var util = require('util');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the Node.js implementation of `debug()`.
|
||||||
|
*
|
||||||
|
* Expose `debug()` as the module.
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports = module.exports = require('./debug');
|
||||||
|
exports.init = init;
|
||||||
|
exports.log = log;
|
||||||
|
exports.formatArgs = formatArgs;
|
||||||
|
exports.save = save;
|
||||||
|
exports.load = load;
|
||||||
|
exports.useColors = useColors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Colors.
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.colors = [6, 2, 3, 4, 5, 1];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Build up the default `inspectOpts` object from the environment variables.
|
||||||
|
*
|
||||||
|
* $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.inspectOpts = Object.keys(process.env).filter(function (key) {
|
||||||
|
return /^debug_/i.test(key);
|
||||||
|
}).reduce(function (obj, key) {
|
||||||
|
// camel-case
|
||||||
|
var prop = key
|
||||||
|
.substring(6)
|
||||||
|
.toLowerCase()
|
||||||
|
.replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });
|
||||||
|
|
||||||
|
// coerce string value into JS value
|
||||||
|
var val = process.env[key];
|
||||||
|
if (/^(yes|on|true|enabled)$/i.test(val)) val = true;
|
||||||
|
else if (/^(no|off|false|disabled)$/i.test(val)) val = false;
|
||||||
|
else if (val === 'null') val = null;
|
||||||
|
else val = Number(val);
|
||||||
|
|
||||||
|
obj[prop] = val;
|
||||||
|
return obj;
|
||||||
|
}, {});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The file descriptor to write the `debug()` calls to.
|
||||||
|
* Set the `DEBUG_FD` env variable to override with another value. i.e.:
|
||||||
|
*
|
||||||
|
* $ DEBUG_FD=3 node script.js 3>debug.log
|
||||||
|
*/
|
||||||
|
|
||||||
|
var fd = parseInt(process.env.DEBUG_FD, 10) || 2;
|
||||||
|
|
||||||
|
if (1 !== fd && 2 !== fd) {
|
||||||
|
util.deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')()
|
||||||
|
}
|
||||||
|
|
||||||
|
var stream = 1 === fd ? process.stdout :
|
||||||
|
2 === fd ? process.stderr :
|
||||||
|
createWritableStdioStream(fd);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is stdout a TTY? Colored output is enabled when `true`.
|
||||||
|
*/
|
||||||
|
|
||||||
|
function useColors() {
|
||||||
|
return 'colors' in exports.inspectOpts
|
||||||
|
? Boolean(exports.inspectOpts.colors)
|
||||||
|
: tty.isatty(fd);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Map %o to `util.inspect()`, all on a single line.
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.formatters.o = function(v) {
|
||||||
|
this.inspectOpts.colors = this.useColors;
|
||||||
|
return util.inspect(v, this.inspectOpts)
|
||||||
|
.split('\n').map(function(str) {
|
||||||
|
return str.trim()
|
||||||
|
}).join(' ');
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Map %o to `util.inspect()`, allowing multiple lines if needed.
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.formatters.O = function(v) {
|
||||||
|
this.inspectOpts.colors = this.useColors;
|
||||||
|
return util.inspect(v, this.inspectOpts);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds ANSI color escape codes if enabled.
|
||||||
|
*
|
||||||
|
* @api public
|
||||||
|
*/
|
||||||
|
|
||||||
|
function formatArgs(args) {
|
||||||
|
var name = this.namespace;
|
||||||
|
var useColors = this.useColors;
|
||||||
|
|
||||||
|
if (useColors) {
|
||||||
|
var c = this.color;
|
||||||
|
var prefix = ' \u001b[3' + c + ';1m' + name + ' ' + '\u001b[0m';
|
||||||
|
|
||||||
|
args[0] = prefix + args[0].split('\n').join('\n' + prefix);
|
||||||
|
args.push('\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\u001b[0m');
|
||||||
|
} else {
|
||||||
|
args[0] = new Date().toUTCString()
|
||||||
|
+ ' ' + name + ' ' + args[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invokes `util.format()` with the specified arguments and writes to `stream`.
|
||||||
|
*/
|
||||||
|
|
||||||
|
function log() {
|
||||||
|
return stream.write(util.format.apply(util, arguments) + '\n');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Save `namespaces`.
|
||||||
|
*
|
||||||
|
* @param {String} namespaces
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
function save(namespaces) {
|
||||||
|
if (null == namespaces) {
|
||||||
|
// If you set a process.env field to null or undefined, it gets cast to the
|
||||||
|
// string 'null' or 'undefined'. Just delete instead.
|
||||||
|
delete process.env.DEBUG;
|
||||||
|
} else {
|
||||||
|
process.env.DEBUG = namespaces;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load `namespaces`.
|
||||||
|
*
|
||||||
|
* @return {String} returns the previously persisted debug modes
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
function load() {
|
||||||
|
return process.env.DEBUG;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Copied from `node/src/node.js`.
|
||||||
|
*
|
||||||
|
* XXX: It's lame that node doesn't expose this API out-of-the-box. It also
|
||||||
|
* relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.
|
||||||
|
*/
|
||||||
|
|
||||||
|
function createWritableStdioStream (fd) {
|
||||||
|
var stream;
|
||||||
|
var tty_wrap = process.binding('tty_wrap');
|
||||||
|
|
||||||
|
// Note stream._type is used for test-module-load-list.js
|
||||||
|
|
||||||
|
switch (tty_wrap.guessHandleType(fd)) {
|
||||||
|
case 'TTY':
|
||||||
|
stream = new tty.WriteStream(fd);
|
||||||
|
stream._type = 'tty';
|
||||||
|
|
||||||
|
// Hack to have stream not keep the event loop alive.
|
||||||
|
// See https://github.com/joyent/node/issues/1726
|
||||||
|
if (stream._handle && stream._handle.unref) {
|
||||||
|
stream._handle.unref();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'FILE':
|
||||||
|
var fs = require('fs');
|
||||||
|
stream = new fs.SyncWriteStream(fd, { autoClose: false });
|
||||||
|
stream._type = 'fs';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'PIPE':
|
||||||
|
case 'TCP':
|
||||||
|
var net = require('net');
|
||||||
|
stream = new net.Socket({
|
||||||
|
fd: fd,
|
||||||
|
readable: false,
|
||||||
|
writable: true
|
||||||
|
});
|
||||||
|
|
||||||
|
// FIXME Should probably have an option in net.Socket to create a
|
||||||
|
// stream from an existing fd which is writable only. But for now
|
||||||
|
// we'll just add this hack and set the `readable` member to false.
|
||||||
|
// Test: ./node test/fixtures/echo.js < /etc/passwd
|
||||||
|
stream.readable = false;
|
||||||
|
stream.read = null;
|
||||||
|
stream._type = 'pipe';
|
||||||
|
|
||||||
|
// FIXME Hack to have stream not keep the event loop alive.
|
||||||
|
// See https://github.com/joyent/node/issues/1726
|
||||||
|
if (stream._handle && stream._handle.unref) {
|
||||||
|
stream._handle.unref();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
// Probably an error on in uv_guess_handle()
|
||||||
|
throw new Error('Implement me. Unknown stream file type!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// For supporting legacy API we put the FD here.
|
||||||
|
stream.fd = fd;
|
||||||
|
|
||||||
|
stream._isStdio = true;
|
||||||
|
|
||||||
|
return stream;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Init logic for `debug` instances.
|
||||||
|
*
|
||||||
|
* Create a new `inspectOpts` object in case `useColors` is set
|
||||||
|
* differently for a particular `debug` instance.
|
||||||
|
*/
|
||||||
|
|
||||||
|
function init (debug) {
|
||||||
|
debug.inspectOpts = {};
|
||||||
|
|
||||||
|
var keys = Object.keys(exports.inspectOpts);
|
||||||
|
for (var i = 0; i < keys.length; i++) {
|
||||||
|
debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enable namespaces listed in `process.env.DEBUG` initially.
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.enable(load());
|
||||||
3579
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/History.md
generated
vendored
Normal file
3579
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/History.md
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
24
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/LICENSE
generated
vendored
Normal file
24
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
(The MIT License)
|
||||||
|
|
||||||
|
Copyright (c) 2009-2014 TJ Holowaychuk <tj@vision-media.ca>
|
||||||
|
Copyright (c) 2013-2014 Roman Shtylman <shtylman+expressjs@gmail.com>
|
||||||
|
Copyright (c) 2014-2015 Douglas Christopher Wilson <doug@somethingdoug.com>
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
'Software'), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
166
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/Readme.md
generated
vendored
Normal file
166
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/Readme.md
generated
vendored
Normal file
@@ -0,0 +1,166 @@
|
|||||||
|
[](http://expressjs.com/)
|
||||||
|
|
||||||
|
Fast, unopinionated, minimalist web framework for [node](http://nodejs.org).
|
||||||
|
|
||||||
|
[![NPM Version][npm-version-image]][npm-url]
|
||||||
|
[![NPM Install Size][npm-install-size-image]][npm-install-size-url]
|
||||||
|
[![NPM Downloads][npm-downloads-image]][npm-downloads-url]
|
||||||
|
|
||||||
|
```js
|
||||||
|
const express = require('express')
|
||||||
|
const app = express()
|
||||||
|
|
||||||
|
app.get('/', function (req, res) {
|
||||||
|
res.send('Hello World')
|
||||||
|
})
|
||||||
|
|
||||||
|
app.listen(3000)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
This is a [Node.js](https://nodejs.org/en/) module available through the
|
||||||
|
[npm registry](https://www.npmjs.com/).
|
||||||
|
|
||||||
|
Before installing, [download and install Node.js](https://nodejs.org/en/download/).
|
||||||
|
Node.js 0.10 or higher is required.
|
||||||
|
|
||||||
|
If this is a brand new project, make sure to create a `package.json` first with
|
||||||
|
the [`npm init` command](https://docs.npmjs.com/creating-a-package-json-file).
|
||||||
|
|
||||||
|
Installation is done using the
|
||||||
|
[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ npm install express
|
||||||
|
```
|
||||||
|
|
||||||
|
Follow [our installing guide](http://expressjs.com/en/starter/installing.html)
|
||||||
|
for more information.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
* Robust routing
|
||||||
|
* Focus on high performance
|
||||||
|
* Super-high test coverage
|
||||||
|
* HTTP helpers (redirection, caching, etc)
|
||||||
|
* View system supporting 14+ template engines
|
||||||
|
* Content negotiation
|
||||||
|
* Executable for generating applications quickly
|
||||||
|
|
||||||
|
## Docs & Community
|
||||||
|
|
||||||
|
* [Website and Documentation](http://expressjs.com/) - [[website repo](https://github.com/expressjs/expressjs.com)]
|
||||||
|
* [#express](https://webchat.freenode.net/?channels=express) on freenode IRC
|
||||||
|
* [GitHub Organization](https://github.com/expressjs) for Official Middleware & Modules
|
||||||
|
* Visit the [Wiki](https://github.com/expressjs/express/wiki)
|
||||||
|
* [Google Group](https://groups.google.com/group/express-js) for discussion
|
||||||
|
* [Gitter](https://gitter.im/expressjs/express) for support and discussion
|
||||||
|
|
||||||
|
**PROTIP** Be sure to read [Migrating from 3.x to 4.x](https://github.com/expressjs/express/wiki/Migrating-from-3.x-to-4.x) as well as [New features in 4.x](https://github.com/expressjs/express/wiki/New-features-in-4.x).
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
The quickest way to get started with express is to utilize the executable [`express(1)`](https://github.com/expressjs/generator) to generate an application as shown below:
|
||||||
|
|
||||||
|
Install the executable. The executable's major version will match Express's:
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ npm install -g express-generator@4
|
||||||
|
```
|
||||||
|
|
||||||
|
Create the app:
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ express /tmp/foo && cd /tmp/foo
|
||||||
|
```
|
||||||
|
|
||||||
|
Install dependencies:
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
Start the server:
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ npm start
|
||||||
|
```
|
||||||
|
|
||||||
|
View the website at: http://localhost:3000
|
||||||
|
|
||||||
|
## Philosophy
|
||||||
|
|
||||||
|
The Express philosophy is to provide small, robust tooling for HTTP servers, making
|
||||||
|
it a great solution for single page applications, websites, hybrids, or public
|
||||||
|
HTTP APIs.
|
||||||
|
|
||||||
|
Express does not force you to use any specific ORM or template engine. With support for over
|
||||||
|
14 template engines via [Consolidate.js](https://github.com/tj/consolidate.js),
|
||||||
|
you can quickly craft your perfect framework.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
To view the examples, clone the Express repo and install the dependencies:
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ git clone git://github.com/expressjs/express.git --depth 1
|
||||||
|
$ cd express
|
||||||
|
$ npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
Then run whichever example you want:
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ node examples/content-negotiation
|
||||||
|
```
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
[![Linux Build][github-actions-ci-image]][github-actions-ci-url]
|
||||||
|
[![Windows Build][appveyor-image]][appveyor-url]
|
||||||
|
[![Test Coverage][coveralls-image]][coveralls-url]
|
||||||
|
|
||||||
|
The Express.js project welcomes all constructive contributions. Contributions take many forms,
|
||||||
|
from code for bug fixes and enhancements, to additions and fixes to documentation, additional
|
||||||
|
tests, triaging incoming pull requests and issues, and more!
|
||||||
|
|
||||||
|
See the [Contributing Guide](Contributing.md) for more technical details on contributing.
|
||||||
|
|
||||||
|
### Security Issues
|
||||||
|
|
||||||
|
If you discover a security vulnerability in Express, please see [Security Policies and Procedures](Security.md).
|
||||||
|
|
||||||
|
### Running Tests
|
||||||
|
|
||||||
|
To run the test suite, first install the dependencies, then run `npm test`:
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ npm install
|
||||||
|
$ npm test
|
||||||
|
```
|
||||||
|
|
||||||
|
## People
|
||||||
|
|
||||||
|
The original author of Express is [TJ Holowaychuk](https://github.com/tj)
|
||||||
|
|
||||||
|
The current lead maintainer is [Douglas Christopher Wilson](https://github.com/dougwilson)
|
||||||
|
|
||||||
|
[List of all contributors](https://github.com/expressjs/express/graphs/contributors)
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
[MIT](LICENSE)
|
||||||
|
|
||||||
|
[appveyor-image]: https://badgen.net/appveyor/ci/dougwilson/express/master?label=windows
|
||||||
|
[appveyor-url]: https://ci.appveyor.com/project/dougwilson/express
|
||||||
|
[coveralls-image]: https://badgen.net/coveralls/c/github/expressjs/express/master
|
||||||
|
[coveralls-url]: https://coveralls.io/r/expressjs/express?branch=master
|
||||||
|
[github-actions-ci-image]: https://badgen.net/github/checks/expressjs/express/master?label=linux
|
||||||
|
[github-actions-ci-url]: https://github.com/expressjs/express/actions/workflows/ci.yml
|
||||||
|
[npm-downloads-image]: https://badgen.net/npm/dm/express
|
||||||
|
[npm-downloads-url]: https://npmcharts.com/compare/express?minimal=true
|
||||||
|
[npm-install-size-image]: https://badgen.net/packagephobia/install/express
|
||||||
|
[npm-install-size-url]: https://packagephobia.com/result?p=express
|
||||||
|
[npm-url]: https://npmjs.org/package/express
|
||||||
|
[npm-version-image]: https://badgen.net/npm/v/express
|
||||||
11
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/index.js
generated
vendored
Normal file
11
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/index.js
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
/*!
|
||||||
|
* express
|
||||||
|
* Copyright(c) 2009-2013 TJ Holowaychuk
|
||||||
|
* Copyright(c) 2013 Roman Shtylman
|
||||||
|
* Copyright(c) 2014-2015 Douglas Christopher Wilson
|
||||||
|
* MIT Licensed
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
module.exports = require('./lib/express');
|
||||||
661
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/lib/application.js
generated
vendored
Normal file
661
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/lib/application.js
generated
vendored
Normal file
@@ -0,0 +1,661 @@
|
|||||||
|
/*!
|
||||||
|
* express
|
||||||
|
* Copyright(c) 2009-2013 TJ Holowaychuk
|
||||||
|
* Copyright(c) 2013 Roman Shtylman
|
||||||
|
* Copyright(c) 2014-2015 Douglas Christopher Wilson
|
||||||
|
* MIT Licensed
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module dependencies.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
var finalhandler = require('finalhandler');
|
||||||
|
var Router = require('./router');
|
||||||
|
var methods = require('methods');
|
||||||
|
var middleware = require('./middleware/init');
|
||||||
|
var query = require('./middleware/query');
|
||||||
|
var debug = require('debug')('express:application');
|
||||||
|
var View = require('./view');
|
||||||
|
var http = require('http');
|
||||||
|
var compileETag = require('./utils').compileETag;
|
||||||
|
var compileQueryParser = require('./utils').compileQueryParser;
|
||||||
|
var compileTrust = require('./utils').compileTrust;
|
||||||
|
var deprecate = require('depd')('express');
|
||||||
|
var flatten = require('array-flatten');
|
||||||
|
var merge = require('utils-merge');
|
||||||
|
var resolve = require('path').resolve;
|
||||||
|
var setPrototypeOf = require('setprototypeof')
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module variables.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
var hasOwnProperty = Object.prototype.hasOwnProperty
|
||||||
|
var slice = Array.prototype.slice;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Application prototype.
|
||||||
|
*/
|
||||||
|
|
||||||
|
var app = exports = module.exports = {};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Variable for trust proxy inheritance back-compat
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
var trustProxyDefaultSymbol = '@@symbol:trust_proxy_default';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize the server.
|
||||||
|
*
|
||||||
|
* - setup default configuration
|
||||||
|
* - setup default middleware
|
||||||
|
* - setup route reflection methods
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
app.init = function init() {
|
||||||
|
this.cache = {};
|
||||||
|
this.engines = {};
|
||||||
|
this.settings = {};
|
||||||
|
|
||||||
|
this.defaultConfiguration();
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize application configuration.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
app.defaultConfiguration = function defaultConfiguration() {
|
||||||
|
var env = process.env.NODE_ENV || 'development';
|
||||||
|
|
||||||
|
// default settings
|
||||||
|
this.enable('x-powered-by');
|
||||||
|
this.set('etag', 'weak');
|
||||||
|
this.set('env', env);
|
||||||
|
this.set('query parser', 'extended');
|
||||||
|
this.set('subdomain offset', 2);
|
||||||
|
this.set('trust proxy', false);
|
||||||
|
|
||||||
|
// trust proxy inherit back-compat
|
||||||
|
Object.defineProperty(this.settings, trustProxyDefaultSymbol, {
|
||||||
|
configurable: true,
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
|
||||||
|
debug('booting in %s mode', env);
|
||||||
|
|
||||||
|
this.on('mount', function onmount(parent) {
|
||||||
|
// inherit trust proxy
|
||||||
|
if (this.settings[trustProxyDefaultSymbol] === true
|
||||||
|
&& typeof parent.settings['trust proxy fn'] === 'function') {
|
||||||
|
delete this.settings['trust proxy'];
|
||||||
|
delete this.settings['trust proxy fn'];
|
||||||
|
}
|
||||||
|
|
||||||
|
// inherit protos
|
||||||
|
setPrototypeOf(this.request, parent.request)
|
||||||
|
setPrototypeOf(this.response, parent.response)
|
||||||
|
setPrototypeOf(this.engines, parent.engines)
|
||||||
|
setPrototypeOf(this.settings, parent.settings)
|
||||||
|
});
|
||||||
|
|
||||||
|
// setup locals
|
||||||
|
this.locals = Object.create(null);
|
||||||
|
|
||||||
|
// top-most app is mounted at /
|
||||||
|
this.mountpath = '/';
|
||||||
|
|
||||||
|
// default locals
|
||||||
|
this.locals.settings = this.settings;
|
||||||
|
|
||||||
|
// default configuration
|
||||||
|
this.set('view', View);
|
||||||
|
this.set('views', resolve('views'));
|
||||||
|
this.set('jsonp callback name', 'callback');
|
||||||
|
|
||||||
|
if (env === 'production') {
|
||||||
|
this.enable('view cache');
|
||||||
|
}
|
||||||
|
|
||||||
|
Object.defineProperty(this, 'router', {
|
||||||
|
get: function() {
|
||||||
|
throw new Error('\'app.router\' is deprecated!\nPlease see the 3.x to 4.x migration guide for details on how to update your app.');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* lazily adds the base router if it has not yet been added.
|
||||||
|
*
|
||||||
|
* We cannot add the base router in the defaultConfiguration because
|
||||||
|
* it reads app settings which might be set after that has run.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
app.lazyrouter = function lazyrouter() {
|
||||||
|
if (!this._router) {
|
||||||
|
this._router = new Router({
|
||||||
|
caseSensitive: this.enabled('case sensitive routing'),
|
||||||
|
strict: this.enabled('strict routing')
|
||||||
|
});
|
||||||
|
|
||||||
|
this._router.use(query(this.get('query parser fn')));
|
||||||
|
this._router.use(middleware.init(this));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dispatch a req, res pair into the application. Starts pipeline processing.
|
||||||
|
*
|
||||||
|
* If no callback is provided, then default error handlers will respond
|
||||||
|
* in the event of an error bubbling through the stack.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
app.handle = function handle(req, res, callback) {
|
||||||
|
var router = this._router;
|
||||||
|
|
||||||
|
// final handler
|
||||||
|
var done = callback || finalhandler(req, res, {
|
||||||
|
env: this.get('env'),
|
||||||
|
onerror: logerror.bind(this)
|
||||||
|
});
|
||||||
|
|
||||||
|
// no routes
|
||||||
|
if (!router) {
|
||||||
|
debug('no routes defined on app');
|
||||||
|
done();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
router.handle(req, res, done);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Proxy `Router#use()` to add middleware to the app router.
|
||||||
|
* See Router#use() documentation for details.
|
||||||
|
*
|
||||||
|
* If the _fn_ parameter is an express app, then it will be
|
||||||
|
* mounted at the _route_ specified.
|
||||||
|
*
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
app.use = function use(fn) {
|
||||||
|
var offset = 0;
|
||||||
|
var path = '/';
|
||||||
|
|
||||||
|
// default path to '/'
|
||||||
|
// disambiguate app.use([fn])
|
||||||
|
if (typeof fn !== 'function') {
|
||||||
|
var arg = fn;
|
||||||
|
|
||||||
|
while (Array.isArray(arg) && arg.length !== 0) {
|
||||||
|
arg = arg[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
// first arg is the path
|
||||||
|
if (typeof arg !== 'function') {
|
||||||
|
offset = 1;
|
||||||
|
path = fn;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var fns = flatten(slice.call(arguments, offset));
|
||||||
|
|
||||||
|
if (fns.length === 0) {
|
||||||
|
throw new TypeError('app.use() requires a middleware function')
|
||||||
|
}
|
||||||
|
|
||||||
|
// setup router
|
||||||
|
this.lazyrouter();
|
||||||
|
var router = this._router;
|
||||||
|
|
||||||
|
fns.forEach(function (fn) {
|
||||||
|
// non-express app
|
||||||
|
if (!fn || !fn.handle || !fn.set) {
|
||||||
|
return router.use(path, fn);
|
||||||
|
}
|
||||||
|
|
||||||
|
debug('.use app under %s', path);
|
||||||
|
fn.mountpath = path;
|
||||||
|
fn.parent = this;
|
||||||
|
|
||||||
|
// restore .app property on req and res
|
||||||
|
router.use(path, function mounted_app(req, res, next) {
|
||||||
|
var orig = req.app;
|
||||||
|
fn.handle(req, res, function (err) {
|
||||||
|
setPrototypeOf(req, orig.request)
|
||||||
|
setPrototypeOf(res, orig.response)
|
||||||
|
next(err);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// mounted an app
|
||||||
|
fn.emit('mount', this);
|
||||||
|
}, this);
|
||||||
|
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Proxy to the app `Router#route()`
|
||||||
|
* Returns a new `Route` instance for the _path_.
|
||||||
|
*
|
||||||
|
* Routes are isolated middleware stacks for specific paths.
|
||||||
|
* See the Route api docs for details.
|
||||||
|
*
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
app.route = function route(path) {
|
||||||
|
this.lazyrouter();
|
||||||
|
return this._router.route(path);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register the given template engine callback `fn`
|
||||||
|
* as `ext`.
|
||||||
|
*
|
||||||
|
* By default will `require()` the engine based on the
|
||||||
|
* file extension. For example if you try to render
|
||||||
|
* a "foo.ejs" file Express will invoke the following internally:
|
||||||
|
*
|
||||||
|
* app.engine('ejs', require('ejs').__express);
|
||||||
|
*
|
||||||
|
* For engines that do not provide `.__express` out of the box,
|
||||||
|
* or if you wish to "map" a different extension to the template engine
|
||||||
|
* you may use this method. For example mapping the EJS template engine to
|
||||||
|
* ".html" files:
|
||||||
|
*
|
||||||
|
* app.engine('html', require('ejs').renderFile);
|
||||||
|
*
|
||||||
|
* In this case EJS provides a `.renderFile()` method with
|
||||||
|
* the same signature that Express expects: `(path, options, callback)`,
|
||||||
|
* though note that it aliases this method as `ejs.__express` internally
|
||||||
|
* so if you're using ".ejs" extensions you don't need to do anything.
|
||||||
|
*
|
||||||
|
* Some template engines do not follow this convention, the
|
||||||
|
* [Consolidate.js](https://github.com/tj/consolidate.js)
|
||||||
|
* library was created to map all of node's popular template
|
||||||
|
* engines to follow this convention, thus allowing them to
|
||||||
|
* work seamlessly within Express.
|
||||||
|
*
|
||||||
|
* @param {String} ext
|
||||||
|
* @param {Function} fn
|
||||||
|
* @return {app} for chaining
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
app.engine = function engine(ext, fn) {
|
||||||
|
if (typeof fn !== 'function') {
|
||||||
|
throw new Error('callback function required');
|
||||||
|
}
|
||||||
|
|
||||||
|
// get file extension
|
||||||
|
var extension = ext[0] !== '.'
|
||||||
|
? '.' + ext
|
||||||
|
: ext;
|
||||||
|
|
||||||
|
// store engine
|
||||||
|
this.engines[extension] = fn;
|
||||||
|
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Proxy to `Router#param()` with one added api feature. The _name_ parameter
|
||||||
|
* can be an array of names.
|
||||||
|
*
|
||||||
|
* See the Router#param() docs for more details.
|
||||||
|
*
|
||||||
|
* @param {String|Array} name
|
||||||
|
* @param {Function} fn
|
||||||
|
* @return {app} for chaining
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
app.param = function param(name, fn) {
|
||||||
|
this.lazyrouter();
|
||||||
|
|
||||||
|
if (Array.isArray(name)) {
|
||||||
|
for (var i = 0; i < name.length; i++) {
|
||||||
|
this.param(name[i], fn);
|
||||||
|
}
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
this._router.param(name, fn);
|
||||||
|
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Assign `setting` to `val`, or return `setting`'s value.
|
||||||
|
*
|
||||||
|
* app.set('foo', 'bar');
|
||||||
|
* app.set('foo');
|
||||||
|
* // => "bar"
|
||||||
|
*
|
||||||
|
* Mounted servers inherit their parent server's settings.
|
||||||
|
*
|
||||||
|
* @param {String} setting
|
||||||
|
* @param {*} [val]
|
||||||
|
* @return {Server} for chaining
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
app.set = function set(setting, val) {
|
||||||
|
if (arguments.length === 1) {
|
||||||
|
// app.get(setting)
|
||||||
|
var settings = this.settings
|
||||||
|
|
||||||
|
while (settings && settings !== Object.prototype) {
|
||||||
|
if (hasOwnProperty.call(settings, setting)) {
|
||||||
|
return settings[setting]
|
||||||
|
}
|
||||||
|
|
||||||
|
settings = Object.getPrototypeOf(settings)
|
||||||
|
}
|
||||||
|
|
||||||
|
return undefined
|
||||||
|
}
|
||||||
|
|
||||||
|
debug('set "%s" to %o', setting, val);
|
||||||
|
|
||||||
|
// set value
|
||||||
|
this.settings[setting] = val;
|
||||||
|
|
||||||
|
// trigger matched settings
|
||||||
|
switch (setting) {
|
||||||
|
case 'etag':
|
||||||
|
this.set('etag fn', compileETag(val));
|
||||||
|
break;
|
||||||
|
case 'query parser':
|
||||||
|
this.set('query parser fn', compileQueryParser(val));
|
||||||
|
break;
|
||||||
|
case 'trust proxy':
|
||||||
|
this.set('trust proxy fn', compileTrust(val));
|
||||||
|
|
||||||
|
// trust proxy inherit back-compat
|
||||||
|
Object.defineProperty(this.settings, trustProxyDefaultSymbol, {
|
||||||
|
configurable: true,
|
||||||
|
value: false
|
||||||
|
});
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the app's absolute pathname
|
||||||
|
* based on the parent(s) that have
|
||||||
|
* mounted it.
|
||||||
|
*
|
||||||
|
* For example if the application was
|
||||||
|
* mounted as "/admin", which itself
|
||||||
|
* was mounted as "/blog" then the
|
||||||
|
* return value would be "/blog/admin".
|
||||||
|
*
|
||||||
|
* @return {String}
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
app.path = function path() {
|
||||||
|
return this.parent
|
||||||
|
? this.parent.path() + this.mountpath
|
||||||
|
: '';
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if `setting` is enabled (truthy).
|
||||||
|
*
|
||||||
|
* app.enabled('foo')
|
||||||
|
* // => false
|
||||||
|
*
|
||||||
|
* app.enable('foo')
|
||||||
|
* app.enabled('foo')
|
||||||
|
* // => true
|
||||||
|
*
|
||||||
|
* @param {String} setting
|
||||||
|
* @return {Boolean}
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
app.enabled = function enabled(setting) {
|
||||||
|
return Boolean(this.set(setting));
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if `setting` is disabled.
|
||||||
|
*
|
||||||
|
* app.disabled('foo')
|
||||||
|
* // => true
|
||||||
|
*
|
||||||
|
* app.enable('foo')
|
||||||
|
* app.disabled('foo')
|
||||||
|
* // => false
|
||||||
|
*
|
||||||
|
* @param {String} setting
|
||||||
|
* @return {Boolean}
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
app.disabled = function disabled(setting) {
|
||||||
|
return !this.set(setting);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enable `setting`.
|
||||||
|
*
|
||||||
|
* @param {String} setting
|
||||||
|
* @return {app} for chaining
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
app.enable = function enable(setting) {
|
||||||
|
return this.set(setting, true);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disable `setting`.
|
||||||
|
*
|
||||||
|
* @param {String} setting
|
||||||
|
* @return {app} for chaining
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
app.disable = function disable(setting) {
|
||||||
|
return this.set(setting, false);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delegate `.VERB(...)` calls to `router.VERB(...)`.
|
||||||
|
*/
|
||||||
|
|
||||||
|
methods.forEach(function(method){
|
||||||
|
app[method] = function(path){
|
||||||
|
if (method === 'get' && arguments.length === 1) {
|
||||||
|
// app.get(setting)
|
||||||
|
return this.set(path);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.lazyrouter();
|
||||||
|
|
||||||
|
var route = this._router.route(path);
|
||||||
|
route[method].apply(route, slice.call(arguments, 1));
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Special-cased "all" method, applying the given route `path`,
|
||||||
|
* middleware, and callback to _every_ HTTP method.
|
||||||
|
*
|
||||||
|
* @param {String} path
|
||||||
|
* @param {Function} ...
|
||||||
|
* @return {app} for chaining
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
app.all = function all(path) {
|
||||||
|
this.lazyrouter();
|
||||||
|
|
||||||
|
var route = this._router.route(path);
|
||||||
|
var args = slice.call(arguments, 1);
|
||||||
|
|
||||||
|
for (var i = 0; i < methods.length; i++) {
|
||||||
|
route[methods[i]].apply(route, args);
|
||||||
|
}
|
||||||
|
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
|
||||||
|
// del -> delete alias
|
||||||
|
|
||||||
|
app.del = deprecate.function(app.delete, 'app.del: Use app.delete instead');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Render the given view `name` name with `options`
|
||||||
|
* and a callback accepting an error and the
|
||||||
|
* rendered template string.
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
*
|
||||||
|
* app.render('email', { name: 'Tobi' }, function(err, html){
|
||||||
|
* // ...
|
||||||
|
* })
|
||||||
|
*
|
||||||
|
* @param {String} name
|
||||||
|
* @param {Object|Function} options or fn
|
||||||
|
* @param {Function} callback
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
app.render = function render(name, options, callback) {
|
||||||
|
var cache = this.cache;
|
||||||
|
var done = callback;
|
||||||
|
var engines = this.engines;
|
||||||
|
var opts = options;
|
||||||
|
var renderOptions = {};
|
||||||
|
var view;
|
||||||
|
|
||||||
|
// support callback function as second arg
|
||||||
|
if (typeof options === 'function') {
|
||||||
|
done = options;
|
||||||
|
opts = {};
|
||||||
|
}
|
||||||
|
|
||||||
|
// merge app.locals
|
||||||
|
merge(renderOptions, this.locals);
|
||||||
|
|
||||||
|
// merge options._locals
|
||||||
|
if (opts._locals) {
|
||||||
|
merge(renderOptions, opts._locals);
|
||||||
|
}
|
||||||
|
|
||||||
|
// merge options
|
||||||
|
merge(renderOptions, opts);
|
||||||
|
|
||||||
|
// set .cache unless explicitly provided
|
||||||
|
if (renderOptions.cache == null) {
|
||||||
|
renderOptions.cache = this.enabled('view cache');
|
||||||
|
}
|
||||||
|
|
||||||
|
// primed cache
|
||||||
|
if (renderOptions.cache) {
|
||||||
|
view = cache[name];
|
||||||
|
}
|
||||||
|
|
||||||
|
// view
|
||||||
|
if (!view) {
|
||||||
|
var View = this.get('view');
|
||||||
|
|
||||||
|
view = new View(name, {
|
||||||
|
defaultEngine: this.get('view engine'),
|
||||||
|
root: this.get('views'),
|
||||||
|
engines: engines
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!view.path) {
|
||||||
|
var dirs = Array.isArray(view.root) && view.root.length > 1
|
||||||
|
? 'directories "' + view.root.slice(0, -1).join('", "') + '" or "' + view.root[view.root.length - 1] + '"'
|
||||||
|
: 'directory "' + view.root + '"'
|
||||||
|
var err = new Error('Failed to lookup view "' + name + '" in views ' + dirs);
|
||||||
|
err.view = view;
|
||||||
|
return done(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
// prime the cache
|
||||||
|
if (renderOptions.cache) {
|
||||||
|
cache[name] = view;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// render
|
||||||
|
tryRender(view, renderOptions, done);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Listen for connections.
|
||||||
|
*
|
||||||
|
* A node `http.Server` is returned, with this
|
||||||
|
* application (which is a `Function`) as its
|
||||||
|
* callback. If you wish to create both an HTTP
|
||||||
|
* and HTTPS server you may do so with the "http"
|
||||||
|
* and "https" modules as shown here:
|
||||||
|
*
|
||||||
|
* var http = require('http')
|
||||||
|
* , https = require('https')
|
||||||
|
* , express = require('express')
|
||||||
|
* , app = express();
|
||||||
|
*
|
||||||
|
* http.createServer(app).listen(80);
|
||||||
|
* https.createServer({ ... }, app).listen(443);
|
||||||
|
*
|
||||||
|
* @return {http.Server}
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
app.listen = function listen() {
|
||||||
|
var server = http.createServer(this);
|
||||||
|
return server.listen.apply(server, arguments);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Log error using console.error.
|
||||||
|
*
|
||||||
|
* @param {Error} err
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
function logerror(err) {
|
||||||
|
/* istanbul ignore next */
|
||||||
|
if (this.get('env') !== 'test') console.error(err.stack || err.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Try rendering a view.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
function tryRender(view, options, callback) {
|
||||||
|
try {
|
||||||
|
view.render(options, callback);
|
||||||
|
} catch (err) {
|
||||||
|
callback(err);
|
||||||
|
}
|
||||||
|
}
|
||||||
116
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/lib/express.js
generated
vendored
Normal file
116
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/lib/express.js
generated
vendored
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
/*!
|
||||||
|
* express
|
||||||
|
* Copyright(c) 2009-2013 TJ Holowaychuk
|
||||||
|
* Copyright(c) 2013 Roman Shtylman
|
||||||
|
* Copyright(c) 2014-2015 Douglas Christopher Wilson
|
||||||
|
* MIT Licensed
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module dependencies.
|
||||||
|
*/
|
||||||
|
|
||||||
|
var bodyParser = require('body-parser')
|
||||||
|
var EventEmitter = require('events').EventEmitter;
|
||||||
|
var mixin = require('merge-descriptors');
|
||||||
|
var proto = require('./application');
|
||||||
|
var Route = require('./router/route');
|
||||||
|
var Router = require('./router');
|
||||||
|
var req = require('./request');
|
||||||
|
var res = require('./response');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Expose `createApplication()`.
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports = module.exports = createApplication;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an express application.
|
||||||
|
*
|
||||||
|
* @return {Function}
|
||||||
|
* @api public
|
||||||
|
*/
|
||||||
|
|
||||||
|
function createApplication() {
|
||||||
|
var app = function(req, res, next) {
|
||||||
|
app.handle(req, res, next);
|
||||||
|
};
|
||||||
|
|
||||||
|
mixin(app, EventEmitter.prototype, false);
|
||||||
|
mixin(app, proto, false);
|
||||||
|
|
||||||
|
// expose the prototype that will get set on requests
|
||||||
|
app.request = Object.create(req, {
|
||||||
|
app: { configurable: true, enumerable: true, writable: true, value: app }
|
||||||
|
})
|
||||||
|
|
||||||
|
// expose the prototype that will get set on responses
|
||||||
|
app.response = Object.create(res, {
|
||||||
|
app: { configurable: true, enumerable: true, writable: true, value: app }
|
||||||
|
})
|
||||||
|
|
||||||
|
app.init();
|
||||||
|
return app;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Expose the prototypes.
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.application = proto;
|
||||||
|
exports.request = req;
|
||||||
|
exports.response = res;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Expose constructors.
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.Route = Route;
|
||||||
|
exports.Router = Router;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Expose middleware
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.json = bodyParser.json
|
||||||
|
exports.query = require('./middleware/query');
|
||||||
|
exports.raw = bodyParser.raw
|
||||||
|
exports.static = require('serve-static');
|
||||||
|
exports.text = bodyParser.text
|
||||||
|
exports.urlencoded = bodyParser.urlencoded
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Replace removed middleware with an appropriate error message.
|
||||||
|
*/
|
||||||
|
|
||||||
|
var removedMiddlewares = [
|
||||||
|
'bodyParser',
|
||||||
|
'compress',
|
||||||
|
'cookieSession',
|
||||||
|
'session',
|
||||||
|
'logger',
|
||||||
|
'cookieParser',
|
||||||
|
'favicon',
|
||||||
|
'responseTime',
|
||||||
|
'errorHandler',
|
||||||
|
'timeout',
|
||||||
|
'methodOverride',
|
||||||
|
'vhost',
|
||||||
|
'csrf',
|
||||||
|
'directory',
|
||||||
|
'limit',
|
||||||
|
'multipart',
|
||||||
|
'staticCache'
|
||||||
|
]
|
||||||
|
|
||||||
|
removedMiddlewares.forEach(function (name) {
|
||||||
|
Object.defineProperty(exports, name, {
|
||||||
|
get: function () {
|
||||||
|
throw new Error('Most middleware (like ' + name + ') is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.');
|
||||||
|
},
|
||||||
|
configurable: true
|
||||||
|
});
|
||||||
|
});
|
||||||
43
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/lib/middleware/init.js
generated
vendored
Normal file
43
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/lib/middleware/init.js
generated
vendored
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
/*!
|
||||||
|
* express
|
||||||
|
* Copyright(c) 2009-2013 TJ Holowaychuk
|
||||||
|
* Copyright(c) 2013 Roman Shtylman
|
||||||
|
* Copyright(c) 2014-2015 Douglas Christopher Wilson
|
||||||
|
* MIT Licensed
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module dependencies.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
var setPrototypeOf = require('setprototypeof')
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialization middleware, exposing the
|
||||||
|
* request and response to each other, as well
|
||||||
|
* as defaulting the X-Powered-By header field.
|
||||||
|
*
|
||||||
|
* @param {Function} app
|
||||||
|
* @return {Function}
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.init = function(app){
|
||||||
|
return function expressInit(req, res, next){
|
||||||
|
if (app.enabled('x-powered-by')) res.setHeader('X-Powered-By', 'Express');
|
||||||
|
req.res = res;
|
||||||
|
res.req = req;
|
||||||
|
req.next = next;
|
||||||
|
|
||||||
|
setPrototypeOf(req, app.request)
|
||||||
|
setPrototypeOf(res, app.response)
|
||||||
|
|
||||||
|
res.locals = res.locals || Object.create(null);
|
||||||
|
|
||||||
|
next();
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
47
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/lib/middleware/query.js
generated
vendored
Normal file
47
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/lib/middleware/query.js
generated
vendored
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
/*!
|
||||||
|
* express
|
||||||
|
* Copyright(c) 2009-2013 TJ Holowaychuk
|
||||||
|
* Copyright(c) 2013 Roman Shtylman
|
||||||
|
* Copyright(c) 2014-2015 Douglas Christopher Wilson
|
||||||
|
* MIT Licensed
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module dependencies.
|
||||||
|
*/
|
||||||
|
|
||||||
|
var merge = require('utils-merge')
|
||||||
|
var parseUrl = require('parseurl');
|
||||||
|
var qs = require('qs');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {Object} options
|
||||||
|
* @return {Function}
|
||||||
|
* @api public
|
||||||
|
*/
|
||||||
|
|
||||||
|
module.exports = function query(options) {
|
||||||
|
var opts = merge({}, options)
|
||||||
|
var queryparse = qs.parse;
|
||||||
|
|
||||||
|
if (typeof options === 'function') {
|
||||||
|
queryparse = options;
|
||||||
|
opts = undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (opts !== undefined && opts.allowPrototypes === undefined) {
|
||||||
|
// back-compat for qs module
|
||||||
|
opts.allowPrototypes = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return function query(req, res, next){
|
||||||
|
if (!req.query) {
|
||||||
|
var val = parseUrl(req).query;
|
||||||
|
req.query = queryparse(val, opts);
|
||||||
|
}
|
||||||
|
|
||||||
|
next();
|
||||||
|
};
|
||||||
|
};
|
||||||
525
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/lib/request.js
generated
vendored
Normal file
525
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/lib/request.js
generated
vendored
Normal file
@@ -0,0 +1,525 @@
|
|||||||
|
/*!
|
||||||
|
* express
|
||||||
|
* Copyright(c) 2009-2013 TJ Holowaychuk
|
||||||
|
* Copyright(c) 2013 Roman Shtylman
|
||||||
|
* Copyright(c) 2014-2015 Douglas Christopher Wilson
|
||||||
|
* MIT Licensed
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module dependencies.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
var accepts = require('accepts');
|
||||||
|
var deprecate = require('depd')('express');
|
||||||
|
var isIP = require('net').isIP;
|
||||||
|
var typeis = require('type-is');
|
||||||
|
var http = require('http');
|
||||||
|
var fresh = require('fresh');
|
||||||
|
var parseRange = require('range-parser');
|
||||||
|
var parse = require('parseurl');
|
||||||
|
var proxyaddr = require('proxy-addr');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Request prototype.
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
var req = Object.create(http.IncomingMessage.prototype)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module exports.
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
module.exports = req
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return request header.
|
||||||
|
*
|
||||||
|
* The `Referrer` header field is special-cased,
|
||||||
|
* both `Referrer` and `Referer` are interchangeable.
|
||||||
|
*
|
||||||
|
* Examples:
|
||||||
|
*
|
||||||
|
* req.get('Content-Type');
|
||||||
|
* // => "text/plain"
|
||||||
|
*
|
||||||
|
* req.get('content-type');
|
||||||
|
* // => "text/plain"
|
||||||
|
*
|
||||||
|
* req.get('Something');
|
||||||
|
* // => undefined
|
||||||
|
*
|
||||||
|
* Aliased as `req.header()`.
|
||||||
|
*
|
||||||
|
* @param {String} name
|
||||||
|
* @return {String}
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
req.get =
|
||||||
|
req.header = function header(name) {
|
||||||
|
if (!name) {
|
||||||
|
throw new TypeError('name argument is required to req.get');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof name !== 'string') {
|
||||||
|
throw new TypeError('name must be a string to req.get');
|
||||||
|
}
|
||||||
|
|
||||||
|
var lc = name.toLowerCase();
|
||||||
|
|
||||||
|
switch (lc) {
|
||||||
|
case 'referer':
|
||||||
|
case 'referrer':
|
||||||
|
return this.headers.referrer
|
||||||
|
|| this.headers.referer;
|
||||||
|
default:
|
||||||
|
return this.headers[lc];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* To do: update docs.
|
||||||
|
*
|
||||||
|
* Check if the given `type(s)` is acceptable, returning
|
||||||
|
* the best match when true, otherwise `undefined`, in which
|
||||||
|
* case you should respond with 406 "Not Acceptable".
|
||||||
|
*
|
||||||
|
* The `type` value may be a single MIME type string
|
||||||
|
* such as "application/json", an extension name
|
||||||
|
* such as "json", a comma-delimited list such as "json, html, text/plain",
|
||||||
|
* an argument list such as `"json", "html", "text/plain"`,
|
||||||
|
* or an array `["json", "html", "text/plain"]`. When a list
|
||||||
|
* or array is given, the _best_ match, if any is returned.
|
||||||
|
*
|
||||||
|
* Examples:
|
||||||
|
*
|
||||||
|
* // Accept: text/html
|
||||||
|
* req.accepts('html');
|
||||||
|
* // => "html"
|
||||||
|
*
|
||||||
|
* // Accept: text/*, application/json
|
||||||
|
* req.accepts('html');
|
||||||
|
* // => "html"
|
||||||
|
* req.accepts('text/html');
|
||||||
|
* // => "text/html"
|
||||||
|
* req.accepts('json, text');
|
||||||
|
* // => "json"
|
||||||
|
* req.accepts('application/json');
|
||||||
|
* // => "application/json"
|
||||||
|
*
|
||||||
|
* // Accept: text/*, application/json
|
||||||
|
* req.accepts('image/png');
|
||||||
|
* req.accepts('png');
|
||||||
|
* // => undefined
|
||||||
|
*
|
||||||
|
* // Accept: text/*;q=.5, application/json
|
||||||
|
* req.accepts(['html', 'json']);
|
||||||
|
* req.accepts('html', 'json');
|
||||||
|
* req.accepts('html, json');
|
||||||
|
* // => "json"
|
||||||
|
*
|
||||||
|
* @param {String|Array} type(s)
|
||||||
|
* @return {String|Array|Boolean}
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
req.accepts = function(){
|
||||||
|
var accept = accepts(this);
|
||||||
|
return accept.types.apply(accept, arguments);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the given `encoding`s are accepted.
|
||||||
|
*
|
||||||
|
* @param {String} ...encoding
|
||||||
|
* @return {String|Array}
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
req.acceptsEncodings = function(){
|
||||||
|
var accept = accepts(this);
|
||||||
|
return accept.encodings.apply(accept, arguments);
|
||||||
|
};
|
||||||
|
|
||||||
|
req.acceptsEncoding = deprecate.function(req.acceptsEncodings,
|
||||||
|
'req.acceptsEncoding: Use acceptsEncodings instead');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the given `charset`s are acceptable,
|
||||||
|
* otherwise you should respond with 406 "Not Acceptable".
|
||||||
|
*
|
||||||
|
* @param {String} ...charset
|
||||||
|
* @return {String|Array}
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
req.acceptsCharsets = function(){
|
||||||
|
var accept = accepts(this);
|
||||||
|
return accept.charsets.apply(accept, arguments);
|
||||||
|
};
|
||||||
|
|
||||||
|
req.acceptsCharset = deprecate.function(req.acceptsCharsets,
|
||||||
|
'req.acceptsCharset: Use acceptsCharsets instead');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the given `lang`s are acceptable,
|
||||||
|
* otherwise you should respond with 406 "Not Acceptable".
|
||||||
|
*
|
||||||
|
* @param {String} ...lang
|
||||||
|
* @return {String|Array}
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
req.acceptsLanguages = function(){
|
||||||
|
var accept = accepts(this);
|
||||||
|
return accept.languages.apply(accept, arguments);
|
||||||
|
};
|
||||||
|
|
||||||
|
req.acceptsLanguage = deprecate.function(req.acceptsLanguages,
|
||||||
|
'req.acceptsLanguage: Use acceptsLanguages instead');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse Range header field, capping to the given `size`.
|
||||||
|
*
|
||||||
|
* Unspecified ranges such as "0-" require knowledge of your resource length. In
|
||||||
|
* the case of a byte range this is of course the total number of bytes. If the
|
||||||
|
* Range header field is not given `undefined` is returned, `-1` when unsatisfiable,
|
||||||
|
* and `-2` when syntactically invalid.
|
||||||
|
*
|
||||||
|
* When ranges are returned, the array has a "type" property which is the type of
|
||||||
|
* range that is required (most commonly, "bytes"). Each array element is an object
|
||||||
|
* with a "start" and "end" property for the portion of the range.
|
||||||
|
*
|
||||||
|
* The "combine" option can be set to `true` and overlapping & adjacent ranges
|
||||||
|
* will be combined into a single range.
|
||||||
|
*
|
||||||
|
* NOTE: remember that ranges are inclusive, so for example "Range: users=0-3"
|
||||||
|
* should respond with 4 users when available, not 3.
|
||||||
|
*
|
||||||
|
* @param {number} size
|
||||||
|
* @param {object} [options]
|
||||||
|
* @param {boolean} [options.combine=false]
|
||||||
|
* @return {number|array}
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
req.range = function range(size, options) {
|
||||||
|
var range = this.get('Range');
|
||||||
|
if (!range) return;
|
||||||
|
return parseRange(size, range, options);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the value of param `name` when present or `defaultValue`.
|
||||||
|
*
|
||||||
|
* - Checks route placeholders, ex: _/user/:id_
|
||||||
|
* - Checks body params, ex: id=12, {"id":12}
|
||||||
|
* - Checks query string params, ex: ?id=12
|
||||||
|
*
|
||||||
|
* To utilize request bodies, `req.body`
|
||||||
|
* should be an object. This can be done by using
|
||||||
|
* the `bodyParser()` middleware.
|
||||||
|
*
|
||||||
|
* @param {String} name
|
||||||
|
* @param {Mixed} [defaultValue]
|
||||||
|
* @return {String}
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
req.param = function param(name, defaultValue) {
|
||||||
|
var params = this.params || {};
|
||||||
|
var body = this.body || {};
|
||||||
|
var query = this.query || {};
|
||||||
|
|
||||||
|
var args = arguments.length === 1
|
||||||
|
? 'name'
|
||||||
|
: 'name, default';
|
||||||
|
deprecate('req.param(' + args + '): Use req.params, req.body, or req.query instead');
|
||||||
|
|
||||||
|
if (null != params[name] && params.hasOwnProperty(name)) return params[name];
|
||||||
|
if (null != body[name]) return body[name];
|
||||||
|
if (null != query[name]) return query[name];
|
||||||
|
|
||||||
|
return defaultValue;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the incoming request contains the "Content-Type"
|
||||||
|
* header field, and it contains the given mime `type`.
|
||||||
|
*
|
||||||
|
* Examples:
|
||||||
|
*
|
||||||
|
* // With Content-Type: text/html; charset=utf-8
|
||||||
|
* req.is('html');
|
||||||
|
* req.is('text/html');
|
||||||
|
* req.is('text/*');
|
||||||
|
* // => true
|
||||||
|
*
|
||||||
|
* // When Content-Type is application/json
|
||||||
|
* req.is('json');
|
||||||
|
* req.is('application/json');
|
||||||
|
* req.is('application/*');
|
||||||
|
* // => true
|
||||||
|
*
|
||||||
|
* req.is('html');
|
||||||
|
* // => false
|
||||||
|
*
|
||||||
|
* @param {String|Array} types...
|
||||||
|
* @return {String|false|null}
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
req.is = function is(types) {
|
||||||
|
var arr = types;
|
||||||
|
|
||||||
|
// support flattened arguments
|
||||||
|
if (!Array.isArray(types)) {
|
||||||
|
arr = new Array(arguments.length);
|
||||||
|
for (var i = 0; i < arr.length; i++) {
|
||||||
|
arr[i] = arguments[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return typeis(this, arr);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the protocol string "http" or "https"
|
||||||
|
* when requested with TLS. When the "trust proxy"
|
||||||
|
* setting trusts the socket address, the
|
||||||
|
* "X-Forwarded-Proto" header field will be trusted
|
||||||
|
* and used if present.
|
||||||
|
*
|
||||||
|
* If you're running behind a reverse proxy that
|
||||||
|
* supplies https for you this may be enabled.
|
||||||
|
*
|
||||||
|
* @return {String}
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
defineGetter(req, 'protocol', function protocol(){
|
||||||
|
var proto = this.connection.encrypted
|
||||||
|
? 'https'
|
||||||
|
: 'http';
|
||||||
|
var trust = this.app.get('trust proxy fn');
|
||||||
|
|
||||||
|
if (!trust(this.connection.remoteAddress, 0)) {
|
||||||
|
return proto;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Note: X-Forwarded-Proto is normally only ever a
|
||||||
|
// single value, but this is to be safe.
|
||||||
|
var header = this.get('X-Forwarded-Proto') || proto
|
||||||
|
var index = header.indexOf(',')
|
||||||
|
|
||||||
|
return index !== -1
|
||||||
|
? header.substring(0, index).trim()
|
||||||
|
: header.trim()
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Short-hand for:
|
||||||
|
*
|
||||||
|
* req.protocol === 'https'
|
||||||
|
*
|
||||||
|
* @return {Boolean}
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
defineGetter(req, 'secure', function secure(){
|
||||||
|
return this.protocol === 'https';
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the remote address from the trusted proxy.
|
||||||
|
*
|
||||||
|
* The is the remote address on the socket unless
|
||||||
|
* "trust proxy" is set.
|
||||||
|
*
|
||||||
|
* @return {String}
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
defineGetter(req, 'ip', function ip(){
|
||||||
|
var trust = this.app.get('trust proxy fn');
|
||||||
|
return proxyaddr(this, trust);
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* When "trust proxy" is set, trusted proxy addresses + client.
|
||||||
|
*
|
||||||
|
* For example if the value were "client, proxy1, proxy2"
|
||||||
|
* you would receive the array `["client", "proxy1", "proxy2"]`
|
||||||
|
* where "proxy2" is the furthest down-stream and "proxy1" and
|
||||||
|
* "proxy2" were trusted.
|
||||||
|
*
|
||||||
|
* @return {Array}
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
defineGetter(req, 'ips', function ips() {
|
||||||
|
var trust = this.app.get('trust proxy fn');
|
||||||
|
var addrs = proxyaddr.all(this, trust);
|
||||||
|
|
||||||
|
// reverse the order (to farthest -> closest)
|
||||||
|
// and remove socket address
|
||||||
|
addrs.reverse().pop()
|
||||||
|
|
||||||
|
return addrs
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return subdomains as an array.
|
||||||
|
*
|
||||||
|
* Subdomains are the dot-separated parts of the host before the main domain of
|
||||||
|
* the app. By default, the domain of the app is assumed to be the last two
|
||||||
|
* parts of the host. This can be changed by setting "subdomain offset".
|
||||||
|
*
|
||||||
|
* For example, if the domain is "tobi.ferrets.example.com":
|
||||||
|
* If "subdomain offset" is not set, req.subdomains is `["ferrets", "tobi"]`.
|
||||||
|
* If "subdomain offset" is 3, req.subdomains is `["tobi"]`.
|
||||||
|
*
|
||||||
|
* @return {Array}
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
defineGetter(req, 'subdomains', function subdomains() {
|
||||||
|
var hostname = this.hostname;
|
||||||
|
|
||||||
|
if (!hostname) return [];
|
||||||
|
|
||||||
|
var offset = this.app.get('subdomain offset');
|
||||||
|
var subdomains = !isIP(hostname)
|
||||||
|
? hostname.split('.').reverse()
|
||||||
|
: [hostname];
|
||||||
|
|
||||||
|
return subdomains.slice(offset);
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Short-hand for `url.parse(req.url).pathname`.
|
||||||
|
*
|
||||||
|
* @return {String}
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
defineGetter(req, 'path', function path() {
|
||||||
|
return parse(this).pathname;
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse the "Host" header field to a hostname.
|
||||||
|
*
|
||||||
|
* When the "trust proxy" setting trusts the socket
|
||||||
|
* address, the "X-Forwarded-Host" header field will
|
||||||
|
* be trusted.
|
||||||
|
*
|
||||||
|
* @return {String}
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
defineGetter(req, 'hostname', function hostname(){
|
||||||
|
var trust = this.app.get('trust proxy fn');
|
||||||
|
var host = this.get('X-Forwarded-Host');
|
||||||
|
|
||||||
|
if (!host || !trust(this.connection.remoteAddress, 0)) {
|
||||||
|
host = this.get('Host');
|
||||||
|
} else if (host.indexOf(',') !== -1) {
|
||||||
|
// Note: X-Forwarded-Host is normally only ever a
|
||||||
|
// single value, but this is to be safe.
|
||||||
|
host = host.substring(0, host.indexOf(',')).trimRight()
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!host) return;
|
||||||
|
|
||||||
|
// IPv6 literal support
|
||||||
|
var offset = host[0] === '['
|
||||||
|
? host.indexOf(']') + 1
|
||||||
|
: 0;
|
||||||
|
var index = host.indexOf(':', offset);
|
||||||
|
|
||||||
|
return index !== -1
|
||||||
|
? host.substring(0, index)
|
||||||
|
: host;
|
||||||
|
});
|
||||||
|
|
||||||
|
// TODO: change req.host to return host in next major
|
||||||
|
|
||||||
|
defineGetter(req, 'host', deprecate.function(function host(){
|
||||||
|
return this.hostname;
|
||||||
|
}, 'req.host: Use req.hostname instead'));
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the request is fresh, aka
|
||||||
|
* Last-Modified and/or the ETag
|
||||||
|
* still match.
|
||||||
|
*
|
||||||
|
* @return {Boolean}
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
defineGetter(req, 'fresh', function(){
|
||||||
|
var method = this.method;
|
||||||
|
var res = this.res
|
||||||
|
var status = res.statusCode
|
||||||
|
|
||||||
|
// GET or HEAD for weak freshness validation only
|
||||||
|
if ('GET' !== method && 'HEAD' !== method) return false;
|
||||||
|
|
||||||
|
// 2xx or 304 as per rfc2616 14.26
|
||||||
|
if ((status >= 200 && status < 300) || 304 === status) {
|
||||||
|
return fresh(this.headers, {
|
||||||
|
'etag': res.get('ETag'),
|
||||||
|
'last-modified': res.get('Last-Modified')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the request is stale, aka
|
||||||
|
* "Last-Modified" and / or the "ETag" for the
|
||||||
|
* resource has changed.
|
||||||
|
*
|
||||||
|
* @return {Boolean}
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
defineGetter(req, 'stale', function stale(){
|
||||||
|
return !this.fresh;
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the request was an _XMLHttpRequest_.
|
||||||
|
*
|
||||||
|
* @return {Boolean}
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
defineGetter(req, 'xhr', function xhr(){
|
||||||
|
var val = this.get('X-Requested-With') || '';
|
||||||
|
return val.toLowerCase() === 'xmlhttprequest';
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper function for creating a getter on an object.
|
||||||
|
*
|
||||||
|
* @param {Object} obj
|
||||||
|
* @param {String} name
|
||||||
|
* @param {Function} getter
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
function defineGetter(obj, name, getter) {
|
||||||
|
Object.defineProperty(obj, name, {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: true,
|
||||||
|
get: getter
|
||||||
|
});
|
||||||
|
}
|
||||||
1169
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/lib/response.js
generated
vendored
Normal file
1169
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/lib/response.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
673
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/lib/router/index.js
generated
vendored
Normal file
673
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/lib/router/index.js
generated
vendored
Normal file
@@ -0,0 +1,673 @@
|
|||||||
|
/*!
|
||||||
|
* express
|
||||||
|
* Copyright(c) 2009-2013 TJ Holowaychuk
|
||||||
|
* Copyright(c) 2013 Roman Shtylman
|
||||||
|
* Copyright(c) 2014-2015 Douglas Christopher Wilson
|
||||||
|
* MIT Licensed
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module dependencies.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
var Route = require('./route');
|
||||||
|
var Layer = require('./layer');
|
||||||
|
var methods = require('methods');
|
||||||
|
var mixin = require('utils-merge');
|
||||||
|
var debug = require('debug')('express:router');
|
||||||
|
var deprecate = require('depd')('express');
|
||||||
|
var flatten = require('array-flatten');
|
||||||
|
var parseUrl = require('parseurl');
|
||||||
|
var setPrototypeOf = require('setprototypeof')
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module variables.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
var objectRegExp = /^\[object (\S+)\]$/;
|
||||||
|
var slice = Array.prototype.slice;
|
||||||
|
var toString = Object.prototype.toString;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize a new `Router` with the given `options`.
|
||||||
|
*
|
||||||
|
* @param {Object} [options]
|
||||||
|
* @return {Router} which is an callable function
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
var proto = module.exports = function(options) {
|
||||||
|
var opts = options || {};
|
||||||
|
|
||||||
|
function router(req, res, next) {
|
||||||
|
router.handle(req, res, next);
|
||||||
|
}
|
||||||
|
|
||||||
|
// mixin Router class functions
|
||||||
|
setPrototypeOf(router, proto)
|
||||||
|
|
||||||
|
router.params = {};
|
||||||
|
router._params = [];
|
||||||
|
router.caseSensitive = opts.caseSensitive;
|
||||||
|
router.mergeParams = opts.mergeParams;
|
||||||
|
router.strict = opts.strict;
|
||||||
|
router.stack = [];
|
||||||
|
|
||||||
|
return router;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Map the given param placeholder `name`(s) to the given callback.
|
||||||
|
*
|
||||||
|
* Parameter mapping is used to provide pre-conditions to routes
|
||||||
|
* which use normalized placeholders. For example a _:user_id_ parameter
|
||||||
|
* could automatically load a user's information from the database without
|
||||||
|
* any additional code,
|
||||||
|
*
|
||||||
|
* The callback uses the same signature as middleware, the only difference
|
||||||
|
* being that the value of the placeholder is passed, in this case the _id_
|
||||||
|
* of the user. Once the `next()` function is invoked, just like middleware
|
||||||
|
* it will continue on to execute the route, or subsequent parameter functions.
|
||||||
|
*
|
||||||
|
* Just like in middleware, you must either respond to the request or call next
|
||||||
|
* to avoid stalling the request.
|
||||||
|
*
|
||||||
|
* app.param('user_id', function(req, res, next, id){
|
||||||
|
* User.find(id, function(err, user){
|
||||||
|
* if (err) {
|
||||||
|
* return next(err);
|
||||||
|
* } else if (!user) {
|
||||||
|
* return next(new Error('failed to load user'));
|
||||||
|
* }
|
||||||
|
* req.user = user;
|
||||||
|
* next();
|
||||||
|
* });
|
||||||
|
* });
|
||||||
|
*
|
||||||
|
* @param {String} name
|
||||||
|
* @param {Function} fn
|
||||||
|
* @return {app} for chaining
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
proto.param = function param(name, fn) {
|
||||||
|
// param logic
|
||||||
|
if (typeof name === 'function') {
|
||||||
|
deprecate('router.param(fn): Refactor to use path params');
|
||||||
|
this._params.push(name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// apply param functions
|
||||||
|
var params = this._params;
|
||||||
|
var len = params.length;
|
||||||
|
var ret;
|
||||||
|
|
||||||
|
if (name[0] === ':') {
|
||||||
|
deprecate('router.param(' + JSON.stringify(name) + ', fn): Use router.param(' + JSON.stringify(name.slice(1)) + ', fn) instead')
|
||||||
|
name = name.slice(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var i = 0; i < len; ++i) {
|
||||||
|
if (ret = params[i](name, fn)) {
|
||||||
|
fn = ret;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ensure we end up with a
|
||||||
|
// middleware function
|
||||||
|
if ('function' !== typeof fn) {
|
||||||
|
throw new Error('invalid param() call for ' + name + ', got ' + fn);
|
||||||
|
}
|
||||||
|
|
||||||
|
(this.params[name] = this.params[name] || []).push(fn);
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dispatch a req, res into the router.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
proto.handle = function handle(req, res, out) {
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
debug('dispatching %s %s', req.method, req.url);
|
||||||
|
|
||||||
|
var idx = 0;
|
||||||
|
var protohost = getProtohost(req.url) || ''
|
||||||
|
var removed = '';
|
||||||
|
var slashAdded = false;
|
||||||
|
var sync = 0
|
||||||
|
var paramcalled = {};
|
||||||
|
|
||||||
|
// store options for OPTIONS request
|
||||||
|
// only used if OPTIONS request
|
||||||
|
var options = [];
|
||||||
|
|
||||||
|
// middleware and routes
|
||||||
|
var stack = self.stack;
|
||||||
|
|
||||||
|
// manage inter-router variables
|
||||||
|
var parentParams = req.params;
|
||||||
|
var parentUrl = req.baseUrl || '';
|
||||||
|
var done = restore(out, req, 'baseUrl', 'next', 'params');
|
||||||
|
|
||||||
|
// setup next layer
|
||||||
|
req.next = next;
|
||||||
|
|
||||||
|
// for options requests, respond with a default if nothing else responds
|
||||||
|
if (req.method === 'OPTIONS') {
|
||||||
|
done = wrap(done, function(old, err) {
|
||||||
|
if (err || options.length === 0) return old(err);
|
||||||
|
sendOptionsResponse(res, options, old);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// setup basic req values
|
||||||
|
req.baseUrl = parentUrl;
|
||||||
|
req.originalUrl = req.originalUrl || req.url;
|
||||||
|
|
||||||
|
next();
|
||||||
|
|
||||||
|
function next(err) {
|
||||||
|
var layerError = err === 'route'
|
||||||
|
? null
|
||||||
|
: err;
|
||||||
|
|
||||||
|
// remove added slash
|
||||||
|
if (slashAdded) {
|
||||||
|
req.url = req.url.slice(1)
|
||||||
|
slashAdded = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// restore altered req.url
|
||||||
|
if (removed.length !== 0) {
|
||||||
|
req.baseUrl = parentUrl;
|
||||||
|
req.url = protohost + removed + req.url.slice(protohost.length)
|
||||||
|
removed = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
// signal to exit router
|
||||||
|
if (layerError === 'router') {
|
||||||
|
setImmediate(done, null)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// no more matching layers
|
||||||
|
if (idx >= stack.length) {
|
||||||
|
setImmediate(done, layerError);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// max sync stack
|
||||||
|
if (++sync > 100) {
|
||||||
|
return setImmediate(next, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// get pathname of request
|
||||||
|
var path = getPathname(req);
|
||||||
|
|
||||||
|
if (path == null) {
|
||||||
|
return done(layerError);
|
||||||
|
}
|
||||||
|
|
||||||
|
// find next matching layer
|
||||||
|
var layer;
|
||||||
|
var match;
|
||||||
|
var route;
|
||||||
|
|
||||||
|
while (match !== true && idx < stack.length) {
|
||||||
|
layer = stack[idx++];
|
||||||
|
match = matchLayer(layer, path);
|
||||||
|
route = layer.route;
|
||||||
|
|
||||||
|
if (typeof match !== 'boolean') {
|
||||||
|
// hold on to layerError
|
||||||
|
layerError = layerError || match;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (match !== true) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!route) {
|
||||||
|
// process non-route handlers normally
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (layerError) {
|
||||||
|
// routes do not match with a pending error
|
||||||
|
match = false;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
var method = req.method;
|
||||||
|
var has_method = route._handles_method(method);
|
||||||
|
|
||||||
|
// build up automatic options response
|
||||||
|
if (!has_method && method === 'OPTIONS') {
|
||||||
|
appendMethods(options, route._options());
|
||||||
|
}
|
||||||
|
|
||||||
|
// don't even bother matching route
|
||||||
|
if (!has_method && method !== 'HEAD') {
|
||||||
|
match = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// no match
|
||||||
|
if (match !== true) {
|
||||||
|
return done(layerError);
|
||||||
|
}
|
||||||
|
|
||||||
|
// store route for dispatch on change
|
||||||
|
if (route) {
|
||||||
|
req.route = route;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Capture one-time layer values
|
||||||
|
req.params = self.mergeParams
|
||||||
|
? mergeParams(layer.params, parentParams)
|
||||||
|
: layer.params;
|
||||||
|
var layerPath = layer.path;
|
||||||
|
|
||||||
|
// this should be done for the layer
|
||||||
|
self.process_params(layer, paramcalled, req, res, function (err) {
|
||||||
|
if (err) {
|
||||||
|
next(layerError || err)
|
||||||
|
} else if (route) {
|
||||||
|
layer.handle_request(req, res, next)
|
||||||
|
} else {
|
||||||
|
trim_prefix(layer, layerError, layerPath, path)
|
||||||
|
}
|
||||||
|
|
||||||
|
sync = 0
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function trim_prefix(layer, layerError, layerPath, path) {
|
||||||
|
if (layerPath.length !== 0) {
|
||||||
|
// Validate path is a prefix match
|
||||||
|
if (layerPath !== path.slice(0, layerPath.length)) {
|
||||||
|
next(layerError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate path breaks on a path separator
|
||||||
|
var c = path[layerPath.length]
|
||||||
|
if (c && c !== '/' && c !== '.') return next(layerError)
|
||||||
|
|
||||||
|
// Trim off the part of the url that matches the route
|
||||||
|
// middleware (.use stuff) needs to have the path stripped
|
||||||
|
debug('trim prefix (%s) from url %s', layerPath, req.url);
|
||||||
|
removed = layerPath;
|
||||||
|
req.url = protohost + req.url.slice(protohost.length + removed.length)
|
||||||
|
|
||||||
|
// Ensure leading slash
|
||||||
|
if (!protohost && req.url[0] !== '/') {
|
||||||
|
req.url = '/' + req.url;
|
||||||
|
slashAdded = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Setup base URL (no trailing slash)
|
||||||
|
req.baseUrl = parentUrl + (removed[removed.length - 1] === '/'
|
||||||
|
? removed.substring(0, removed.length - 1)
|
||||||
|
: removed);
|
||||||
|
}
|
||||||
|
|
||||||
|
debug('%s %s : %s', layer.name, layerPath, req.originalUrl);
|
||||||
|
|
||||||
|
if (layerError) {
|
||||||
|
layer.handle_error(layerError, req, res, next);
|
||||||
|
} else {
|
||||||
|
layer.handle_request(req, res, next);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Process any parameters for the layer.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
proto.process_params = function process_params(layer, called, req, res, done) {
|
||||||
|
var params = this.params;
|
||||||
|
|
||||||
|
// captured parameters from the layer, keys and values
|
||||||
|
var keys = layer.keys;
|
||||||
|
|
||||||
|
// fast track
|
||||||
|
if (!keys || keys.length === 0) {
|
||||||
|
return done();
|
||||||
|
}
|
||||||
|
|
||||||
|
var i = 0;
|
||||||
|
var name;
|
||||||
|
var paramIndex = 0;
|
||||||
|
var key;
|
||||||
|
var paramVal;
|
||||||
|
var paramCallbacks;
|
||||||
|
var paramCalled;
|
||||||
|
|
||||||
|
// process params in order
|
||||||
|
// param callbacks can be async
|
||||||
|
function param(err) {
|
||||||
|
if (err) {
|
||||||
|
return done(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (i >= keys.length ) {
|
||||||
|
return done();
|
||||||
|
}
|
||||||
|
|
||||||
|
paramIndex = 0;
|
||||||
|
key = keys[i++];
|
||||||
|
name = key.name;
|
||||||
|
paramVal = req.params[name];
|
||||||
|
paramCallbacks = params[name];
|
||||||
|
paramCalled = called[name];
|
||||||
|
|
||||||
|
if (paramVal === undefined || !paramCallbacks) {
|
||||||
|
return param();
|
||||||
|
}
|
||||||
|
|
||||||
|
// param previously called with same value or error occurred
|
||||||
|
if (paramCalled && (paramCalled.match === paramVal
|
||||||
|
|| (paramCalled.error && paramCalled.error !== 'route'))) {
|
||||||
|
// restore value
|
||||||
|
req.params[name] = paramCalled.value;
|
||||||
|
|
||||||
|
// next param
|
||||||
|
return param(paramCalled.error);
|
||||||
|
}
|
||||||
|
|
||||||
|
called[name] = paramCalled = {
|
||||||
|
error: null,
|
||||||
|
match: paramVal,
|
||||||
|
value: paramVal
|
||||||
|
};
|
||||||
|
|
||||||
|
paramCallback();
|
||||||
|
}
|
||||||
|
|
||||||
|
// single param callbacks
|
||||||
|
function paramCallback(err) {
|
||||||
|
var fn = paramCallbacks[paramIndex++];
|
||||||
|
|
||||||
|
// store updated value
|
||||||
|
paramCalled.value = req.params[key.name];
|
||||||
|
|
||||||
|
if (err) {
|
||||||
|
// store error
|
||||||
|
paramCalled.error = err;
|
||||||
|
param(err);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!fn) return param();
|
||||||
|
|
||||||
|
try {
|
||||||
|
fn(req, res, paramCallback, paramVal, key.name);
|
||||||
|
} catch (e) {
|
||||||
|
paramCallback(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
param();
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use the given middleware function, with optional path, defaulting to "/".
|
||||||
|
*
|
||||||
|
* Use (like `.all`) will run for any http METHOD, but it will not add
|
||||||
|
* handlers for those methods so OPTIONS requests will not consider `.use`
|
||||||
|
* functions even if they could respond.
|
||||||
|
*
|
||||||
|
* The other difference is that _route_ path is stripped and not visible
|
||||||
|
* to the handler function. The main effect of this feature is that mounted
|
||||||
|
* handlers can operate without any code changes regardless of the "prefix"
|
||||||
|
* pathname.
|
||||||
|
*
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
proto.use = function use(fn) {
|
||||||
|
var offset = 0;
|
||||||
|
var path = '/';
|
||||||
|
|
||||||
|
// default path to '/'
|
||||||
|
// disambiguate router.use([fn])
|
||||||
|
if (typeof fn !== 'function') {
|
||||||
|
var arg = fn;
|
||||||
|
|
||||||
|
while (Array.isArray(arg) && arg.length !== 0) {
|
||||||
|
arg = arg[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
// first arg is the path
|
||||||
|
if (typeof arg !== 'function') {
|
||||||
|
offset = 1;
|
||||||
|
path = fn;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var callbacks = flatten(slice.call(arguments, offset));
|
||||||
|
|
||||||
|
if (callbacks.length === 0) {
|
||||||
|
throw new TypeError('Router.use() requires a middleware function')
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var i = 0; i < callbacks.length; i++) {
|
||||||
|
var fn = callbacks[i];
|
||||||
|
|
||||||
|
if (typeof fn !== 'function') {
|
||||||
|
throw new TypeError('Router.use() requires a middleware function but got a ' + gettype(fn))
|
||||||
|
}
|
||||||
|
|
||||||
|
// add the middleware
|
||||||
|
debug('use %o %s', path, fn.name || '<anonymous>')
|
||||||
|
|
||||||
|
var layer = new Layer(path, {
|
||||||
|
sensitive: this.caseSensitive,
|
||||||
|
strict: false,
|
||||||
|
end: false
|
||||||
|
}, fn);
|
||||||
|
|
||||||
|
layer.route = undefined;
|
||||||
|
|
||||||
|
this.stack.push(layer);
|
||||||
|
}
|
||||||
|
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new Route for the given path.
|
||||||
|
*
|
||||||
|
* Each route contains a separate middleware stack and VERB handlers.
|
||||||
|
*
|
||||||
|
* See the Route api documentation for details on adding handlers
|
||||||
|
* and middleware to routes.
|
||||||
|
*
|
||||||
|
* @param {String} path
|
||||||
|
* @return {Route}
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
proto.route = function route(path) {
|
||||||
|
var route = new Route(path);
|
||||||
|
|
||||||
|
var layer = new Layer(path, {
|
||||||
|
sensitive: this.caseSensitive,
|
||||||
|
strict: this.strict,
|
||||||
|
end: true
|
||||||
|
}, route.dispatch.bind(route));
|
||||||
|
|
||||||
|
layer.route = route;
|
||||||
|
|
||||||
|
this.stack.push(layer);
|
||||||
|
return route;
|
||||||
|
};
|
||||||
|
|
||||||
|
// create Router#VERB functions
|
||||||
|
methods.concat('all').forEach(function(method){
|
||||||
|
proto[method] = function(path){
|
||||||
|
var route = this.route(path)
|
||||||
|
route[method].apply(route, slice.call(arguments, 1));
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
// append methods to a list of methods
|
||||||
|
function appendMethods(list, addition) {
|
||||||
|
for (var i = 0; i < addition.length; i++) {
|
||||||
|
var method = addition[i];
|
||||||
|
if (list.indexOf(method) === -1) {
|
||||||
|
list.push(method);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// get pathname of request
|
||||||
|
function getPathname(req) {
|
||||||
|
try {
|
||||||
|
return parseUrl(req).pathname;
|
||||||
|
} catch (err) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get get protocol + host for a URL
|
||||||
|
function getProtohost(url) {
|
||||||
|
if (typeof url !== 'string' || url.length === 0 || url[0] === '/') {
|
||||||
|
return undefined
|
||||||
|
}
|
||||||
|
|
||||||
|
var searchIndex = url.indexOf('?')
|
||||||
|
var pathLength = searchIndex !== -1
|
||||||
|
? searchIndex
|
||||||
|
: url.length
|
||||||
|
var fqdnIndex = url.slice(0, pathLength).indexOf('://')
|
||||||
|
|
||||||
|
return fqdnIndex !== -1
|
||||||
|
? url.substring(0, url.indexOf('/', 3 + fqdnIndex))
|
||||||
|
: undefined
|
||||||
|
}
|
||||||
|
|
||||||
|
// get type for error message
|
||||||
|
function gettype(obj) {
|
||||||
|
var type = typeof obj;
|
||||||
|
|
||||||
|
if (type !== 'object') {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
// inspect [[Class]] for objects
|
||||||
|
return toString.call(obj)
|
||||||
|
.replace(objectRegExp, '$1');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Match path to a layer.
|
||||||
|
*
|
||||||
|
* @param {Layer} layer
|
||||||
|
* @param {string} path
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
function matchLayer(layer, path) {
|
||||||
|
try {
|
||||||
|
return layer.match(path);
|
||||||
|
} catch (err) {
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// merge params with parent params
|
||||||
|
function mergeParams(params, parent) {
|
||||||
|
if (typeof parent !== 'object' || !parent) {
|
||||||
|
return params;
|
||||||
|
}
|
||||||
|
|
||||||
|
// make copy of parent for base
|
||||||
|
var obj = mixin({}, parent);
|
||||||
|
|
||||||
|
// simple non-numeric merging
|
||||||
|
if (!(0 in params) || !(0 in parent)) {
|
||||||
|
return mixin(obj, params);
|
||||||
|
}
|
||||||
|
|
||||||
|
var i = 0;
|
||||||
|
var o = 0;
|
||||||
|
|
||||||
|
// determine numeric gaps
|
||||||
|
while (i in params) {
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (o in parent) {
|
||||||
|
o++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// offset numeric indices in params before merge
|
||||||
|
for (i--; i >= 0; i--) {
|
||||||
|
params[i + o] = params[i];
|
||||||
|
|
||||||
|
// create holes for the merge when necessary
|
||||||
|
if (i < o) {
|
||||||
|
delete params[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return mixin(obj, params);
|
||||||
|
}
|
||||||
|
|
||||||
|
// restore obj props after function
|
||||||
|
function restore(fn, obj) {
|
||||||
|
var props = new Array(arguments.length - 2);
|
||||||
|
var vals = new Array(arguments.length - 2);
|
||||||
|
|
||||||
|
for (var i = 0; i < props.length; i++) {
|
||||||
|
props[i] = arguments[i + 2];
|
||||||
|
vals[i] = obj[props[i]];
|
||||||
|
}
|
||||||
|
|
||||||
|
return function () {
|
||||||
|
// restore vals
|
||||||
|
for (var i = 0; i < props.length; i++) {
|
||||||
|
obj[props[i]] = vals[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
return fn.apply(this, arguments);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// send an OPTIONS response
|
||||||
|
function sendOptionsResponse(res, options, next) {
|
||||||
|
try {
|
||||||
|
var body = options.join(',');
|
||||||
|
res.set('Allow', body);
|
||||||
|
res.send(body);
|
||||||
|
} catch (err) {
|
||||||
|
next(err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// wrap a function
|
||||||
|
function wrap(old, fn) {
|
||||||
|
return function proxy() {
|
||||||
|
var args = new Array(arguments.length + 1);
|
||||||
|
|
||||||
|
args[0] = old;
|
||||||
|
for (var i = 0, len = arguments.length; i < len; i++) {
|
||||||
|
args[i + 1] = arguments[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
fn.apply(this, args);
|
||||||
|
};
|
||||||
|
}
|
||||||
181
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/lib/router/layer.js
generated
vendored
Normal file
181
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/lib/router/layer.js
generated
vendored
Normal file
@@ -0,0 +1,181 @@
|
|||||||
|
/*!
|
||||||
|
* express
|
||||||
|
* Copyright(c) 2009-2013 TJ Holowaychuk
|
||||||
|
* Copyright(c) 2013 Roman Shtylman
|
||||||
|
* Copyright(c) 2014-2015 Douglas Christopher Wilson
|
||||||
|
* MIT Licensed
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module dependencies.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
var pathRegexp = require('path-to-regexp');
|
||||||
|
var debug = require('debug')('express:router:layer');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module variables.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
var hasOwnProperty = Object.prototype.hasOwnProperty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module exports.
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
module.exports = Layer;
|
||||||
|
|
||||||
|
function Layer(path, options, fn) {
|
||||||
|
if (!(this instanceof Layer)) {
|
||||||
|
return new Layer(path, options, fn);
|
||||||
|
}
|
||||||
|
|
||||||
|
debug('new %o', path)
|
||||||
|
var opts = options || {};
|
||||||
|
|
||||||
|
this.handle = fn;
|
||||||
|
this.name = fn.name || '<anonymous>';
|
||||||
|
this.params = undefined;
|
||||||
|
this.path = undefined;
|
||||||
|
this.regexp = pathRegexp(path, this.keys = [], opts);
|
||||||
|
|
||||||
|
// set fast path flags
|
||||||
|
this.regexp.fast_star = path === '*'
|
||||||
|
this.regexp.fast_slash = path === '/' && opts.end === false
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle the error for the layer.
|
||||||
|
*
|
||||||
|
* @param {Error} error
|
||||||
|
* @param {Request} req
|
||||||
|
* @param {Response} res
|
||||||
|
* @param {function} next
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
Layer.prototype.handle_error = function handle_error(error, req, res, next) {
|
||||||
|
var fn = this.handle;
|
||||||
|
|
||||||
|
if (fn.length !== 4) {
|
||||||
|
// not a standard error handler
|
||||||
|
return next(error);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
fn(error, req, res, next);
|
||||||
|
} catch (err) {
|
||||||
|
next(err);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle the request for the layer.
|
||||||
|
*
|
||||||
|
* @param {Request} req
|
||||||
|
* @param {Response} res
|
||||||
|
* @param {function} next
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
Layer.prototype.handle_request = function handle(req, res, next) {
|
||||||
|
var fn = this.handle;
|
||||||
|
|
||||||
|
if (fn.length > 3) {
|
||||||
|
// not a standard request handler
|
||||||
|
return next();
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
fn(req, res, next);
|
||||||
|
} catch (err) {
|
||||||
|
next(err);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if this route matches `path`, if so
|
||||||
|
* populate `.params`.
|
||||||
|
*
|
||||||
|
* @param {String} path
|
||||||
|
* @return {Boolean}
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
Layer.prototype.match = function match(path) {
|
||||||
|
var match
|
||||||
|
|
||||||
|
if (path != null) {
|
||||||
|
// fast path non-ending match for / (any path matches)
|
||||||
|
if (this.regexp.fast_slash) {
|
||||||
|
this.params = {}
|
||||||
|
this.path = ''
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// fast path for * (everything matched in a param)
|
||||||
|
if (this.regexp.fast_star) {
|
||||||
|
this.params = {'0': decode_param(path)}
|
||||||
|
this.path = path
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// match the path
|
||||||
|
match = this.regexp.exec(path)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!match) {
|
||||||
|
this.params = undefined;
|
||||||
|
this.path = undefined;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// store values
|
||||||
|
this.params = {};
|
||||||
|
this.path = match[0]
|
||||||
|
|
||||||
|
var keys = this.keys;
|
||||||
|
var params = this.params;
|
||||||
|
|
||||||
|
for (var i = 1; i < match.length; i++) {
|
||||||
|
var key = keys[i - 1];
|
||||||
|
var prop = key.name;
|
||||||
|
var val = decode_param(match[i])
|
||||||
|
|
||||||
|
if (val !== undefined || !(hasOwnProperty.call(params, prop))) {
|
||||||
|
params[prop] = val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decode param value.
|
||||||
|
*
|
||||||
|
* @param {string} val
|
||||||
|
* @return {string}
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
function decode_param(val) {
|
||||||
|
if (typeof val !== 'string' || val.length === 0) {
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
return decodeURIComponent(val);
|
||||||
|
} catch (err) {
|
||||||
|
if (err instanceof URIError) {
|
||||||
|
err.message = 'Failed to decode param \'' + val + '\'';
|
||||||
|
err.status = err.statusCode = 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
}
|
||||||
225
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/lib/router/route.js
generated
vendored
Normal file
225
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/lib/router/route.js
generated
vendored
Normal file
@@ -0,0 +1,225 @@
|
|||||||
|
/*!
|
||||||
|
* express
|
||||||
|
* Copyright(c) 2009-2013 TJ Holowaychuk
|
||||||
|
* Copyright(c) 2013 Roman Shtylman
|
||||||
|
* Copyright(c) 2014-2015 Douglas Christopher Wilson
|
||||||
|
* MIT Licensed
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module dependencies.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
var debug = require('debug')('express:router:route');
|
||||||
|
var flatten = require('array-flatten');
|
||||||
|
var Layer = require('./layer');
|
||||||
|
var methods = require('methods');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module variables.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
var slice = Array.prototype.slice;
|
||||||
|
var toString = Object.prototype.toString;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module exports.
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
module.exports = Route;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize `Route` with the given `path`,
|
||||||
|
*
|
||||||
|
* @param {String} path
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
function Route(path) {
|
||||||
|
this.path = path;
|
||||||
|
this.stack = [];
|
||||||
|
|
||||||
|
debug('new %o', path)
|
||||||
|
|
||||||
|
// route handlers for various http methods
|
||||||
|
this.methods = {};
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine if the route handles a given method.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
Route.prototype._handles_method = function _handles_method(method) {
|
||||||
|
if (this.methods._all) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
var name = method.toLowerCase();
|
||||||
|
|
||||||
|
if (name === 'head' && !this.methods['head']) {
|
||||||
|
name = 'get';
|
||||||
|
}
|
||||||
|
|
||||||
|
return Boolean(this.methods[name]);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {Array} supported HTTP methods
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
Route.prototype._options = function _options() {
|
||||||
|
var methods = Object.keys(this.methods);
|
||||||
|
|
||||||
|
// append automatic head
|
||||||
|
if (this.methods.get && !this.methods.head) {
|
||||||
|
methods.push('head');
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var i = 0; i < methods.length; i++) {
|
||||||
|
// make upper case
|
||||||
|
methods[i] = methods[i].toUpperCase();
|
||||||
|
}
|
||||||
|
|
||||||
|
return methods;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dispatch req, res into this route
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
Route.prototype.dispatch = function dispatch(req, res, done) {
|
||||||
|
var idx = 0;
|
||||||
|
var stack = this.stack;
|
||||||
|
var sync = 0
|
||||||
|
|
||||||
|
if (stack.length === 0) {
|
||||||
|
return done();
|
||||||
|
}
|
||||||
|
|
||||||
|
var method = req.method.toLowerCase();
|
||||||
|
if (method === 'head' && !this.methods['head']) {
|
||||||
|
method = 'get';
|
||||||
|
}
|
||||||
|
|
||||||
|
req.route = this;
|
||||||
|
|
||||||
|
next();
|
||||||
|
|
||||||
|
function next(err) {
|
||||||
|
// signal to exit route
|
||||||
|
if (err && err === 'route') {
|
||||||
|
return done();
|
||||||
|
}
|
||||||
|
|
||||||
|
// signal to exit router
|
||||||
|
if (err && err === 'router') {
|
||||||
|
return done(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
var layer = stack[idx++];
|
||||||
|
if (!layer) {
|
||||||
|
return done(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
// max sync stack
|
||||||
|
if (++sync > 100) {
|
||||||
|
return setImmediate(next, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (layer.method && layer.method !== method) {
|
||||||
|
return next(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (err) {
|
||||||
|
layer.handle_error(err, req, res, next);
|
||||||
|
} else {
|
||||||
|
layer.handle_request(req, res, next);
|
||||||
|
}
|
||||||
|
|
||||||
|
sync = 0
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a handler for all HTTP verbs to this route.
|
||||||
|
*
|
||||||
|
* Behaves just like middleware and can respond or call `next`
|
||||||
|
* to continue processing.
|
||||||
|
*
|
||||||
|
* You can use multiple `.all` call to add multiple handlers.
|
||||||
|
*
|
||||||
|
* function check_something(req, res, next){
|
||||||
|
* next();
|
||||||
|
* };
|
||||||
|
*
|
||||||
|
* function validate_user(req, res, next){
|
||||||
|
* next();
|
||||||
|
* };
|
||||||
|
*
|
||||||
|
* route
|
||||||
|
* .all(validate_user)
|
||||||
|
* .all(check_something)
|
||||||
|
* .get(function(req, res, next){
|
||||||
|
* res.send('hello world');
|
||||||
|
* });
|
||||||
|
*
|
||||||
|
* @param {function} handler
|
||||||
|
* @return {Route} for chaining
|
||||||
|
* @api public
|
||||||
|
*/
|
||||||
|
|
||||||
|
Route.prototype.all = function all() {
|
||||||
|
var handles = flatten(slice.call(arguments));
|
||||||
|
|
||||||
|
for (var i = 0; i < handles.length; i++) {
|
||||||
|
var handle = handles[i];
|
||||||
|
|
||||||
|
if (typeof handle !== 'function') {
|
||||||
|
var type = toString.call(handle);
|
||||||
|
var msg = 'Route.all() requires a callback function but got a ' + type
|
||||||
|
throw new TypeError(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
var layer = Layer('/', {}, handle);
|
||||||
|
layer.method = undefined;
|
||||||
|
|
||||||
|
this.methods._all = true;
|
||||||
|
this.stack.push(layer);
|
||||||
|
}
|
||||||
|
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
|
||||||
|
methods.forEach(function(method){
|
||||||
|
Route.prototype[method] = function(){
|
||||||
|
var handles = flatten(slice.call(arguments));
|
||||||
|
|
||||||
|
for (var i = 0; i < handles.length; i++) {
|
||||||
|
var handle = handles[i];
|
||||||
|
|
||||||
|
if (typeof handle !== 'function') {
|
||||||
|
var type = toString.call(handle);
|
||||||
|
var msg = 'Route.' + method + '() requires a callback function but got a ' + type
|
||||||
|
throw new Error(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
debug('%s %o', method, this.path)
|
||||||
|
|
||||||
|
var layer = Layer('/', {}, handle);
|
||||||
|
layer.method = method;
|
||||||
|
|
||||||
|
this.methods[method] = true;
|
||||||
|
this.stack.push(layer);
|
||||||
|
}
|
||||||
|
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
});
|
||||||
304
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/lib/utils.js
generated
vendored
Normal file
304
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/lib/utils.js
generated
vendored
Normal file
@@ -0,0 +1,304 @@
|
|||||||
|
/*!
|
||||||
|
* express
|
||||||
|
* Copyright(c) 2009-2013 TJ Holowaychuk
|
||||||
|
* Copyright(c) 2014-2015 Douglas Christopher Wilson
|
||||||
|
* MIT Licensed
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module dependencies.
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
var Buffer = require('safe-buffer').Buffer
|
||||||
|
var contentDisposition = require('content-disposition');
|
||||||
|
var contentType = require('content-type');
|
||||||
|
var deprecate = require('depd')('express');
|
||||||
|
var flatten = require('array-flatten');
|
||||||
|
var mime = require('send').mime;
|
||||||
|
var etag = require('etag');
|
||||||
|
var proxyaddr = require('proxy-addr');
|
||||||
|
var qs = require('qs');
|
||||||
|
var querystring = require('querystring');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return strong ETag for `body`.
|
||||||
|
*
|
||||||
|
* @param {String|Buffer} body
|
||||||
|
* @param {String} [encoding]
|
||||||
|
* @return {String}
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.etag = createETagGenerator({ weak: false })
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return weak ETag for `body`.
|
||||||
|
*
|
||||||
|
* @param {String|Buffer} body
|
||||||
|
* @param {String} [encoding]
|
||||||
|
* @return {String}
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.wetag = createETagGenerator({ weak: true })
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if `path` looks absolute.
|
||||||
|
*
|
||||||
|
* @param {String} path
|
||||||
|
* @return {Boolean}
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.isAbsolute = function(path){
|
||||||
|
if ('/' === path[0]) return true;
|
||||||
|
if (':' === path[1] && ('\\' === path[2] || '/' === path[2])) return true; // Windows device path
|
||||||
|
if ('\\\\' === path.substring(0, 2)) return true; // Microsoft Azure absolute path
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Flatten the given `arr`.
|
||||||
|
*
|
||||||
|
* @param {Array} arr
|
||||||
|
* @return {Array}
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.flatten = deprecate.function(flatten,
|
||||||
|
'utils.flatten: use array-flatten npm module instead');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Normalize the given `type`, for example "html" becomes "text/html".
|
||||||
|
*
|
||||||
|
* @param {String} type
|
||||||
|
* @return {Object}
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.normalizeType = function(type){
|
||||||
|
return ~type.indexOf('/')
|
||||||
|
? acceptParams(type)
|
||||||
|
: { value: mime.lookup(type), params: {} };
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Normalize `types`, for example "html" becomes "text/html".
|
||||||
|
*
|
||||||
|
* @param {Array} types
|
||||||
|
* @return {Array}
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.normalizeTypes = function(types){
|
||||||
|
var ret = [];
|
||||||
|
|
||||||
|
for (var i = 0; i < types.length; ++i) {
|
||||||
|
ret.push(exports.normalizeType(types[i]));
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate Content-Disposition header appropriate for the filename.
|
||||||
|
* non-ascii filenames are urlencoded and a filename* parameter is added
|
||||||
|
*
|
||||||
|
* @param {String} filename
|
||||||
|
* @return {String}
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.contentDisposition = deprecate.function(contentDisposition,
|
||||||
|
'utils.contentDisposition: use content-disposition npm module instead');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse accept params `str` returning an
|
||||||
|
* object with `.value`, `.quality` and `.params`.
|
||||||
|
* also includes `.originalIndex` for stable sorting
|
||||||
|
*
|
||||||
|
* @param {String} str
|
||||||
|
* @param {Number} index
|
||||||
|
* @return {Object}
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
function acceptParams(str, index) {
|
||||||
|
var parts = str.split(/ *; */);
|
||||||
|
var ret = { value: parts[0], quality: 1, params: {}, originalIndex: index };
|
||||||
|
|
||||||
|
for (var i = 1; i < parts.length; ++i) {
|
||||||
|
var pms = parts[i].split(/ *= */);
|
||||||
|
if ('q' === pms[0]) {
|
||||||
|
ret.quality = parseFloat(pms[1]);
|
||||||
|
} else {
|
||||||
|
ret.params[pms[0]] = pms[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compile "etag" value to function.
|
||||||
|
*
|
||||||
|
* @param {Boolean|String|Function} val
|
||||||
|
* @return {Function}
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.compileETag = function(val) {
|
||||||
|
var fn;
|
||||||
|
|
||||||
|
if (typeof val === 'function') {
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (val) {
|
||||||
|
case true:
|
||||||
|
case 'weak':
|
||||||
|
fn = exports.wetag;
|
||||||
|
break;
|
||||||
|
case false:
|
||||||
|
break;
|
||||||
|
case 'strong':
|
||||||
|
fn = exports.etag;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new TypeError('unknown value for etag function: ' + val);
|
||||||
|
}
|
||||||
|
|
||||||
|
return fn;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compile "query parser" value to function.
|
||||||
|
*
|
||||||
|
* @param {String|Function} val
|
||||||
|
* @return {Function}
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.compileQueryParser = function compileQueryParser(val) {
|
||||||
|
var fn;
|
||||||
|
|
||||||
|
if (typeof val === 'function') {
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (val) {
|
||||||
|
case true:
|
||||||
|
case 'simple':
|
||||||
|
fn = querystring.parse;
|
||||||
|
break;
|
||||||
|
case false:
|
||||||
|
fn = newObject;
|
||||||
|
break;
|
||||||
|
case 'extended':
|
||||||
|
fn = parseExtendedQueryString;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new TypeError('unknown value for query parser function: ' + val);
|
||||||
|
}
|
||||||
|
|
||||||
|
return fn;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compile "proxy trust" value to function.
|
||||||
|
*
|
||||||
|
* @param {Boolean|String|Number|Array|Function} val
|
||||||
|
* @return {Function}
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.compileTrust = function(val) {
|
||||||
|
if (typeof val === 'function') return val;
|
||||||
|
|
||||||
|
if (val === true) {
|
||||||
|
// Support plain true/false
|
||||||
|
return function(){ return true };
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof val === 'number') {
|
||||||
|
// Support trusting hop count
|
||||||
|
return function(a, i){ return i < val };
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof val === 'string') {
|
||||||
|
// Support comma-separated values
|
||||||
|
val = val.split(',')
|
||||||
|
.map(function (v) { return v.trim() })
|
||||||
|
}
|
||||||
|
|
||||||
|
return proxyaddr.compile(val || []);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the charset in a given Content-Type string.
|
||||||
|
*
|
||||||
|
* @param {String} type
|
||||||
|
* @param {String} charset
|
||||||
|
* @return {String}
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.setCharset = function setCharset(type, charset) {
|
||||||
|
if (!type || !charset) {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
// parse type
|
||||||
|
var parsed = contentType.parse(type);
|
||||||
|
|
||||||
|
// set charset
|
||||||
|
parsed.parameters.charset = charset;
|
||||||
|
|
||||||
|
// format type
|
||||||
|
return contentType.format(parsed);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an ETag generator function, generating ETags with
|
||||||
|
* the given options.
|
||||||
|
*
|
||||||
|
* @param {object} options
|
||||||
|
* @return {function}
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
function createETagGenerator (options) {
|
||||||
|
return function generateETag (body, encoding) {
|
||||||
|
var buf = !Buffer.isBuffer(body)
|
||||||
|
? Buffer.from(body, encoding)
|
||||||
|
: body
|
||||||
|
|
||||||
|
return etag(buf, options)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse an extended query string with qs.
|
||||||
|
*
|
||||||
|
* @return {Object}
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
function parseExtendedQueryString(str) {
|
||||||
|
return qs.parse(str, {
|
||||||
|
allowPrototypes: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return new empty object.
|
||||||
|
*
|
||||||
|
* @return {Object}
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
function newObject() {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
182
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/lib/view.js
generated
vendored
Normal file
182
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/lib/view.js
generated
vendored
Normal file
@@ -0,0 +1,182 @@
|
|||||||
|
/*!
|
||||||
|
* express
|
||||||
|
* Copyright(c) 2009-2013 TJ Holowaychuk
|
||||||
|
* Copyright(c) 2013 Roman Shtylman
|
||||||
|
* Copyright(c) 2014-2015 Douglas Christopher Wilson
|
||||||
|
* MIT Licensed
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module dependencies.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
var debug = require('debug')('express:view');
|
||||||
|
var path = require('path');
|
||||||
|
var fs = require('fs');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module variables.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
var dirname = path.dirname;
|
||||||
|
var basename = path.basename;
|
||||||
|
var extname = path.extname;
|
||||||
|
var join = path.join;
|
||||||
|
var resolve = path.resolve;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module exports.
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
module.exports = View;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize a new `View` with the given `name`.
|
||||||
|
*
|
||||||
|
* Options:
|
||||||
|
*
|
||||||
|
* - `defaultEngine` the default template engine name
|
||||||
|
* - `engines` template engine require() cache
|
||||||
|
* - `root` root path for view lookup
|
||||||
|
*
|
||||||
|
* @param {string} name
|
||||||
|
* @param {object} options
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
function View(name, options) {
|
||||||
|
var opts = options || {};
|
||||||
|
|
||||||
|
this.defaultEngine = opts.defaultEngine;
|
||||||
|
this.ext = extname(name);
|
||||||
|
this.name = name;
|
||||||
|
this.root = opts.root;
|
||||||
|
|
||||||
|
if (!this.ext && !this.defaultEngine) {
|
||||||
|
throw new Error('No default engine was specified and no extension was provided.');
|
||||||
|
}
|
||||||
|
|
||||||
|
var fileName = name;
|
||||||
|
|
||||||
|
if (!this.ext) {
|
||||||
|
// get extension from default engine name
|
||||||
|
this.ext = this.defaultEngine[0] !== '.'
|
||||||
|
? '.' + this.defaultEngine
|
||||||
|
: this.defaultEngine;
|
||||||
|
|
||||||
|
fileName += this.ext;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!opts.engines[this.ext]) {
|
||||||
|
// load engine
|
||||||
|
var mod = this.ext.slice(1)
|
||||||
|
debug('require "%s"', mod)
|
||||||
|
|
||||||
|
// default engine export
|
||||||
|
var fn = require(mod).__express
|
||||||
|
|
||||||
|
if (typeof fn !== 'function') {
|
||||||
|
throw new Error('Module "' + mod + '" does not provide a view engine.')
|
||||||
|
}
|
||||||
|
|
||||||
|
opts.engines[this.ext] = fn
|
||||||
|
}
|
||||||
|
|
||||||
|
// store loaded engine
|
||||||
|
this.engine = opts.engines[this.ext];
|
||||||
|
|
||||||
|
// lookup path
|
||||||
|
this.path = this.lookup(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Lookup view by the given `name`
|
||||||
|
*
|
||||||
|
* @param {string} name
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
View.prototype.lookup = function lookup(name) {
|
||||||
|
var path;
|
||||||
|
var roots = [].concat(this.root);
|
||||||
|
|
||||||
|
debug('lookup "%s"', name);
|
||||||
|
|
||||||
|
for (var i = 0; i < roots.length && !path; i++) {
|
||||||
|
var root = roots[i];
|
||||||
|
|
||||||
|
// resolve the path
|
||||||
|
var loc = resolve(root, name);
|
||||||
|
var dir = dirname(loc);
|
||||||
|
var file = basename(loc);
|
||||||
|
|
||||||
|
// resolve the file
|
||||||
|
path = this.resolve(dir, file);
|
||||||
|
}
|
||||||
|
|
||||||
|
return path;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Render with the given options.
|
||||||
|
*
|
||||||
|
* @param {object} options
|
||||||
|
* @param {function} callback
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
View.prototype.render = function render(options, callback) {
|
||||||
|
debug('render "%s"', this.path);
|
||||||
|
this.engine(this.path, options, callback);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resolve the file within the given directory.
|
||||||
|
*
|
||||||
|
* @param {string} dir
|
||||||
|
* @param {string} file
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
View.prototype.resolve = function resolve(dir, file) {
|
||||||
|
var ext = this.ext;
|
||||||
|
|
||||||
|
// <path>.<ext>
|
||||||
|
var path = join(dir, file);
|
||||||
|
var stat = tryStat(path);
|
||||||
|
|
||||||
|
if (stat && stat.isFile()) {
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
|
// <path>/index.<ext>
|
||||||
|
path = join(dir, basename(file, ext), 'index' + ext);
|
||||||
|
stat = tryStat(path);
|
||||||
|
|
||||||
|
if (stat && stat.isFile()) {
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a stat, maybe.
|
||||||
|
*
|
||||||
|
* @param {string} path
|
||||||
|
* @return {fs.Stats}
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
function tryStat(path) {
|
||||||
|
debug('stat "%s"', path);
|
||||||
|
|
||||||
|
try {
|
||||||
|
return fs.statSync(path);
|
||||||
|
} catch (e) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
99
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/package.json
generated
vendored
Normal file
99
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/express/package.json
generated
vendored
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
{
|
||||||
|
"name": "express",
|
||||||
|
"description": "Fast, unopinionated, minimalist web framework",
|
||||||
|
"version": "4.18.1",
|
||||||
|
"author": "TJ Holowaychuk <tj@vision-media.ca>",
|
||||||
|
"contributors": [
|
||||||
|
"Aaron Heckmann <aaron.heckmann+github@gmail.com>",
|
||||||
|
"Ciaran Jessup <ciaranj@gmail.com>",
|
||||||
|
"Douglas Christopher Wilson <doug@somethingdoug.com>",
|
||||||
|
"Guillermo Rauch <rauchg@gmail.com>",
|
||||||
|
"Jonathan Ong <me@jongleberry.com>",
|
||||||
|
"Roman Shtylman <shtylman+expressjs@gmail.com>",
|
||||||
|
"Young Jae Sim <hanul@hanul.me>"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"repository": "expressjs/express",
|
||||||
|
"homepage": "http://expressjs.com/",
|
||||||
|
"keywords": [
|
||||||
|
"express",
|
||||||
|
"framework",
|
||||||
|
"sinatra",
|
||||||
|
"web",
|
||||||
|
"http",
|
||||||
|
"rest",
|
||||||
|
"restful",
|
||||||
|
"router",
|
||||||
|
"app",
|
||||||
|
"api"
|
||||||
|
],
|
||||||
|
"dependencies": {
|
||||||
|
"accepts": "~1.3.8",
|
||||||
|
"array-flatten": "1.1.1",
|
||||||
|
"body-parser": "1.20.0",
|
||||||
|
"content-disposition": "0.5.4",
|
||||||
|
"content-type": "~1.0.4",
|
||||||
|
"cookie": "0.5.0",
|
||||||
|
"cookie-signature": "1.0.6",
|
||||||
|
"debug": "2.6.9",
|
||||||
|
"depd": "2.0.0",
|
||||||
|
"encodeurl": "~1.0.2",
|
||||||
|
"escape-html": "~1.0.3",
|
||||||
|
"etag": "~1.8.1",
|
||||||
|
"finalhandler": "1.2.0",
|
||||||
|
"fresh": "0.5.2",
|
||||||
|
"http-errors": "2.0.0",
|
||||||
|
"merge-descriptors": "1.0.1",
|
||||||
|
"methods": "~1.1.2",
|
||||||
|
"on-finished": "2.4.1",
|
||||||
|
"parseurl": "~1.3.3",
|
||||||
|
"path-to-regexp": "0.1.7",
|
||||||
|
"proxy-addr": "~2.0.7",
|
||||||
|
"qs": "6.10.3",
|
||||||
|
"range-parser": "~1.2.1",
|
||||||
|
"safe-buffer": "5.2.1",
|
||||||
|
"send": "0.18.0",
|
||||||
|
"serve-static": "1.15.0",
|
||||||
|
"setprototypeof": "1.2.0",
|
||||||
|
"statuses": "2.0.1",
|
||||||
|
"type-is": "~1.6.18",
|
||||||
|
"utils-merge": "1.0.1",
|
||||||
|
"vary": "~1.1.2"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"after": "0.8.2",
|
||||||
|
"connect-redis": "3.4.2",
|
||||||
|
"cookie-parser": "1.4.6",
|
||||||
|
"cookie-session": "2.0.0",
|
||||||
|
"ejs": "3.1.7",
|
||||||
|
"eslint": "7.32.0",
|
||||||
|
"express-session": "1.17.2",
|
||||||
|
"hbs": "4.2.0",
|
||||||
|
"marked": "0.7.0",
|
||||||
|
"method-override": "3.0.0",
|
||||||
|
"mocha": "9.2.2",
|
||||||
|
"morgan": "1.10.0",
|
||||||
|
"multiparty": "4.2.3",
|
||||||
|
"nyc": "15.1.0",
|
||||||
|
"pbkdf2-password": "1.2.1",
|
||||||
|
"supertest": "6.2.3",
|
||||||
|
"vhost": "~3.0.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.10.0"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"LICENSE",
|
||||||
|
"History.md",
|
||||||
|
"Readme.md",
|
||||||
|
"index.js",
|
||||||
|
"lib/"
|
||||||
|
],
|
||||||
|
"scripts": {
|
||||||
|
"lint": "eslint .",
|
||||||
|
"test": "mocha --require test/support/env --reporter spec --bail --check-leaks test/ test/acceptance/",
|
||||||
|
"test-ci": "nyc --reporter=lcovonly --reporter=text npm test",
|
||||||
|
"test-cov": "nyc --reporter=html --reporter=text npm test",
|
||||||
|
"test-tap": "mocha --require test/support/env --reporter tap --check-leaks test/ test/acceptance/"
|
||||||
|
}
|
||||||
|
}
|
||||||
152
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/ms/index.js
generated
vendored
Normal file
152
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/ms/index.js
generated
vendored
Normal file
@@ -0,0 +1,152 @@
|
|||||||
|
/**
|
||||||
|
* Helpers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
var s = 1000;
|
||||||
|
var m = s * 60;
|
||||||
|
var h = m * 60;
|
||||||
|
var d = h * 24;
|
||||||
|
var y = d * 365.25;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse or format the given `val`.
|
||||||
|
*
|
||||||
|
* Options:
|
||||||
|
*
|
||||||
|
* - `long` verbose formatting [false]
|
||||||
|
*
|
||||||
|
* @param {String|Number} val
|
||||||
|
* @param {Object} [options]
|
||||||
|
* @throws {Error} throw an error if val is not a non-empty string or a number
|
||||||
|
* @return {String|Number}
|
||||||
|
* @api public
|
||||||
|
*/
|
||||||
|
|
||||||
|
module.exports = function(val, options) {
|
||||||
|
options = options || {};
|
||||||
|
var type = typeof val;
|
||||||
|
if (type === 'string' && val.length > 0) {
|
||||||
|
return parse(val);
|
||||||
|
} else if (type === 'number' && isNaN(val) === false) {
|
||||||
|
return options.long ? fmtLong(val) : fmtShort(val);
|
||||||
|
}
|
||||||
|
throw new Error(
|
||||||
|
'val is not a non-empty string or a valid number. val=' +
|
||||||
|
JSON.stringify(val)
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse the given `str` and return milliseconds.
|
||||||
|
*
|
||||||
|
* @param {String} str
|
||||||
|
* @return {Number}
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
function parse(str) {
|
||||||
|
str = String(str);
|
||||||
|
if (str.length > 100) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(
|
||||||
|
str
|
||||||
|
);
|
||||||
|
if (!match) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var n = parseFloat(match[1]);
|
||||||
|
var type = (match[2] || 'ms').toLowerCase();
|
||||||
|
switch (type) {
|
||||||
|
case 'years':
|
||||||
|
case 'year':
|
||||||
|
case 'yrs':
|
||||||
|
case 'yr':
|
||||||
|
case 'y':
|
||||||
|
return n * y;
|
||||||
|
case 'days':
|
||||||
|
case 'day':
|
||||||
|
case 'd':
|
||||||
|
return n * d;
|
||||||
|
case 'hours':
|
||||||
|
case 'hour':
|
||||||
|
case 'hrs':
|
||||||
|
case 'hr':
|
||||||
|
case 'h':
|
||||||
|
return n * h;
|
||||||
|
case 'minutes':
|
||||||
|
case 'minute':
|
||||||
|
case 'mins':
|
||||||
|
case 'min':
|
||||||
|
case 'm':
|
||||||
|
return n * m;
|
||||||
|
case 'seconds':
|
||||||
|
case 'second':
|
||||||
|
case 'secs':
|
||||||
|
case 'sec':
|
||||||
|
case 's':
|
||||||
|
return n * s;
|
||||||
|
case 'milliseconds':
|
||||||
|
case 'millisecond':
|
||||||
|
case 'msecs':
|
||||||
|
case 'msec':
|
||||||
|
case 'ms':
|
||||||
|
return n;
|
||||||
|
default:
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Short format for `ms`.
|
||||||
|
*
|
||||||
|
* @param {Number} ms
|
||||||
|
* @return {String}
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
function fmtShort(ms) {
|
||||||
|
if (ms >= d) {
|
||||||
|
return Math.round(ms / d) + 'd';
|
||||||
|
}
|
||||||
|
if (ms >= h) {
|
||||||
|
return Math.round(ms / h) + 'h';
|
||||||
|
}
|
||||||
|
if (ms >= m) {
|
||||||
|
return Math.round(ms / m) + 'm';
|
||||||
|
}
|
||||||
|
if (ms >= s) {
|
||||||
|
return Math.round(ms / s) + 's';
|
||||||
|
}
|
||||||
|
return ms + 'ms';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Long format for `ms`.
|
||||||
|
*
|
||||||
|
* @param {Number} ms
|
||||||
|
* @return {String}
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
function fmtLong(ms) {
|
||||||
|
return plural(ms, d, 'day') ||
|
||||||
|
plural(ms, h, 'hour') ||
|
||||||
|
plural(ms, m, 'minute') ||
|
||||||
|
plural(ms, s, 'second') ||
|
||||||
|
ms + ' ms';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pluralization helper.
|
||||||
|
*/
|
||||||
|
|
||||||
|
function plural(ms, n, name) {
|
||||||
|
if (ms < n) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (ms < n * 1.5) {
|
||||||
|
return Math.floor(ms / n) + ' ' + name;
|
||||||
|
}
|
||||||
|
return Math.ceil(ms / n) + ' ' + name + 's';
|
||||||
|
}
|
||||||
21
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/ms/license.md
generated
vendored
Normal file
21
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/ms/license.md
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2016 Zeit, Inc.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
37
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/ms/package.json
generated
vendored
Normal file
37
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/ms/package.json
generated
vendored
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
"name": "ms",
|
||||||
|
"version": "2.0.0",
|
||||||
|
"description": "Tiny milisecond conversion utility",
|
||||||
|
"repository": "zeit/ms",
|
||||||
|
"main": "./index",
|
||||||
|
"files": [
|
||||||
|
"index.js"
|
||||||
|
],
|
||||||
|
"scripts": {
|
||||||
|
"precommit": "lint-staged",
|
||||||
|
"lint": "eslint lib/* bin/*",
|
||||||
|
"test": "mocha tests.js"
|
||||||
|
},
|
||||||
|
"eslintConfig": {
|
||||||
|
"extends": "eslint:recommended",
|
||||||
|
"env": {
|
||||||
|
"node": true,
|
||||||
|
"es6": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lint-staged": {
|
||||||
|
"*.js": [
|
||||||
|
"npm run lint",
|
||||||
|
"prettier --single-quote --write",
|
||||||
|
"git add"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"license": "MIT",
|
||||||
|
"devDependencies": {
|
||||||
|
"eslint": "3.19.0",
|
||||||
|
"expect.js": "0.3.1",
|
||||||
|
"husky": "0.13.3",
|
||||||
|
"lint-staged": "3.4.1",
|
||||||
|
"mocha": "3.4.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
51
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/ms/readme.md
generated
vendored
Normal file
51
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/ms/readme.md
generated
vendored
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
# ms
|
||||||
|
|
||||||
|
[](https://travis-ci.org/zeit/ms)
|
||||||
|
[](https://zeit.chat/)
|
||||||
|
|
||||||
|
Use this package to easily convert various time formats to milliseconds.
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
```js
|
||||||
|
ms('2 days') // 172800000
|
||||||
|
ms('1d') // 86400000
|
||||||
|
ms('10h') // 36000000
|
||||||
|
ms('2.5 hrs') // 9000000
|
||||||
|
ms('2h') // 7200000
|
||||||
|
ms('1m') // 60000
|
||||||
|
ms('5s') // 5000
|
||||||
|
ms('1y') // 31557600000
|
||||||
|
ms('100') // 100
|
||||||
|
```
|
||||||
|
|
||||||
|
### Convert from milliseconds
|
||||||
|
|
||||||
|
```js
|
||||||
|
ms(60000) // "1m"
|
||||||
|
ms(2 * 60000) // "2m"
|
||||||
|
ms(ms('10 hours')) // "10h"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Time format written-out
|
||||||
|
|
||||||
|
```js
|
||||||
|
ms(60000, { long: true }) // "1 minute"
|
||||||
|
ms(2 * 60000, { long: true }) // "2 minutes"
|
||||||
|
ms(ms('10 hours'), { long: true }) // "10 hours"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Works both in [node](https://nodejs.org) and in the browser.
|
||||||
|
- If a number is supplied to `ms`, a string with a unit is returned.
|
||||||
|
- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`).
|
||||||
|
- If you pass a string with a number and a valid unit, the number of equivalent ms is returned.
|
||||||
|
|
||||||
|
## Caught a bug?
|
||||||
|
|
||||||
|
1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device
|
||||||
|
2. Link the package to the global module directory: `npm link`
|
||||||
|
3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, node will now use your clone of ms!
|
||||||
|
|
||||||
|
As always, you can run the tests using: `npm test`
|
||||||
36
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/path-to-regexp/History.md
generated
vendored
Normal file
36
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/path-to-regexp/History.md
generated
vendored
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
0.1.7 / 2015-07-28
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fixed regression with escaped round brackets and matching groups.
|
||||||
|
|
||||||
|
0.1.6 / 2015-06-19
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Replace `index` feature by outputting all parameters, unnamed and named.
|
||||||
|
|
||||||
|
0.1.5 / 2015-05-08
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Add an index property for position in match result.
|
||||||
|
|
||||||
|
0.1.4 / 2015-03-05
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Add license information
|
||||||
|
|
||||||
|
0.1.3 / 2014-07-06
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Better array support
|
||||||
|
* Improved support for trailing slash in non-ending mode
|
||||||
|
|
||||||
|
0.1.0 / 2014-03-06
|
||||||
|
==================
|
||||||
|
|
||||||
|
* add options.end
|
||||||
|
|
||||||
|
0.0.2 / 2013-02-10
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Update to match current express
|
||||||
|
* add .license property to component.json
|
||||||
21
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/path-to-regexp/LICENSE
generated
vendored
Normal file
21
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/path-to-regexp/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com)
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
35
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/path-to-regexp/Readme.md
generated
vendored
Normal file
35
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/path-to-regexp/Readme.md
generated
vendored
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
# Path-to-RegExp
|
||||||
|
|
||||||
|
Turn an Express-style path string such as `/user/:name` into a regular expression.
|
||||||
|
|
||||||
|
**Note:** This is a legacy branch. You should upgrade to `1.x`.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
var pathToRegexp = require('path-to-regexp');
|
||||||
|
```
|
||||||
|
|
||||||
|
### pathToRegexp(path, keys, options)
|
||||||
|
|
||||||
|
- **path** A string in the express format, an array of such strings, or a regular expression
|
||||||
|
- **keys** An array to be populated with the keys present in the url. Once the function completes, this will be an array of strings.
|
||||||
|
- **options**
|
||||||
|
- **options.sensitive** Defaults to false, set this to true to make routes case sensitive
|
||||||
|
- **options.strict** Defaults to false, set this to true to make the trailing slash matter.
|
||||||
|
- **options.end** Defaults to true, set this to false to only match the prefix of the URL.
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
var keys = [];
|
||||||
|
var exp = pathToRegexp('/foo/:bar', keys);
|
||||||
|
//keys = ['bar']
|
||||||
|
//exp = /^\/foo\/(?:([^\/]+?))\/?$/i
|
||||||
|
```
|
||||||
|
|
||||||
|
## Live Demo
|
||||||
|
|
||||||
|
You can see a live demo of this library in use at [express-route-tester](http://forbeslindesay.github.com/express-route-tester/).
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
MIT
|
||||||
129
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/path-to-regexp/index.js
generated
vendored
Normal file
129
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/path-to-regexp/index.js
generated
vendored
Normal file
@@ -0,0 +1,129 @@
|
|||||||
|
/**
|
||||||
|
* Expose `pathtoRegexp`.
|
||||||
|
*/
|
||||||
|
|
||||||
|
module.exports = pathtoRegexp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Match matching groups in a regular expression.
|
||||||
|
*/
|
||||||
|
var MATCHING_GROUP_REGEXP = /\((?!\?)/g;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Normalize the given path string,
|
||||||
|
* returning a regular expression.
|
||||||
|
*
|
||||||
|
* An empty array should be passed,
|
||||||
|
* which will contain the placeholder
|
||||||
|
* key names. For example "/user/:id" will
|
||||||
|
* then contain ["id"].
|
||||||
|
*
|
||||||
|
* @param {String|RegExp|Array} path
|
||||||
|
* @param {Array} keys
|
||||||
|
* @param {Object} options
|
||||||
|
* @return {RegExp}
|
||||||
|
* @api private
|
||||||
|
*/
|
||||||
|
|
||||||
|
function pathtoRegexp(path, keys, options) {
|
||||||
|
options = options || {};
|
||||||
|
keys = keys || [];
|
||||||
|
var strict = options.strict;
|
||||||
|
var end = options.end !== false;
|
||||||
|
var flags = options.sensitive ? '' : 'i';
|
||||||
|
var extraOffset = 0;
|
||||||
|
var keysOffset = keys.length;
|
||||||
|
var i = 0;
|
||||||
|
var name = 0;
|
||||||
|
var m;
|
||||||
|
|
||||||
|
if (path instanceof RegExp) {
|
||||||
|
while (m = MATCHING_GROUP_REGEXP.exec(path.source)) {
|
||||||
|
keys.push({
|
||||||
|
name: name++,
|
||||||
|
optional: false,
|
||||||
|
offset: m.index
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Array.isArray(path)) {
|
||||||
|
// Map array parts into regexps and return their source. We also pass
|
||||||
|
// the same keys and options instance into every generation to get
|
||||||
|
// consistent matching groups before we join the sources together.
|
||||||
|
path = path.map(function (value) {
|
||||||
|
return pathtoRegexp(value, keys, options).source;
|
||||||
|
});
|
||||||
|
|
||||||
|
return new RegExp('(?:' + path.join('|') + ')', flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
path = ('^' + path + (strict ? '' : path[path.length - 1] === '/' ? '?' : '/?'))
|
||||||
|
.replace(/\/\(/g, '/(?:')
|
||||||
|
.replace(/([\/\.])/g, '\\$1')
|
||||||
|
.replace(/(\\\/)?(\\\.)?:(\w+)(\(.*?\))?(\*)?(\?)?/g, function (match, slash, format, key, capture, star, optional, offset) {
|
||||||
|
slash = slash || '';
|
||||||
|
format = format || '';
|
||||||
|
capture = capture || '([^\\/' + format + ']+?)';
|
||||||
|
optional = optional || '';
|
||||||
|
|
||||||
|
keys.push({
|
||||||
|
name: key,
|
||||||
|
optional: !!optional,
|
||||||
|
offset: offset + extraOffset
|
||||||
|
});
|
||||||
|
|
||||||
|
var result = ''
|
||||||
|
+ (optional ? '' : slash)
|
||||||
|
+ '(?:'
|
||||||
|
+ format + (optional ? slash : '') + capture
|
||||||
|
+ (star ? '((?:[\\/' + format + '].+?)?)' : '')
|
||||||
|
+ ')'
|
||||||
|
+ optional;
|
||||||
|
|
||||||
|
extraOffset += result.length - match.length;
|
||||||
|
|
||||||
|
return result;
|
||||||
|
})
|
||||||
|
.replace(/\*/g, function (star, index) {
|
||||||
|
var len = keys.length
|
||||||
|
|
||||||
|
while (len-- > keysOffset && keys[len].offset > index) {
|
||||||
|
keys[len].offset += 3; // Replacement length minus asterisk length.
|
||||||
|
}
|
||||||
|
|
||||||
|
return '(.*)';
|
||||||
|
});
|
||||||
|
|
||||||
|
// This is a workaround for handling unnamed matching groups.
|
||||||
|
while (m = MATCHING_GROUP_REGEXP.exec(path)) {
|
||||||
|
var escapeCount = 0;
|
||||||
|
var index = m.index;
|
||||||
|
|
||||||
|
while (path.charAt(--index) === '\\') {
|
||||||
|
escapeCount++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// It's possible to escape the bracket.
|
||||||
|
if (escapeCount % 2 === 1) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (keysOffset + i === keys.length || keys[keysOffset + i].offset > m.index) {
|
||||||
|
keys.splice(keysOffset + i, 0, {
|
||||||
|
name: name++, // Unnamed matching groups must be consistently linear.
|
||||||
|
optional: false,
|
||||||
|
offset: m.index
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the path is non-ending, match until the end or a slash.
|
||||||
|
path += (end ? '$' : (path[path.length - 1] === '/' ? '' : '(?=\\/|$)'));
|
||||||
|
|
||||||
|
return new RegExp(path, flags);
|
||||||
|
};
|
||||||
30
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/path-to-regexp/package.json
generated
vendored
Normal file
30
srcs/requirements/nestjs/api_back/node_modules/@nestjs/platform-express/node_modules/path-to-regexp/package.json
generated
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"name": "path-to-regexp",
|
||||||
|
"description": "Express style path to RegExp utility",
|
||||||
|
"version": "0.1.7",
|
||||||
|
"files": [
|
||||||
|
"index.js",
|
||||||
|
"LICENSE"
|
||||||
|
],
|
||||||
|
"scripts": {
|
||||||
|
"test": "istanbul cover _mocha -- -R spec"
|
||||||
|
},
|
||||||
|
"keywords": [
|
||||||
|
"express",
|
||||||
|
"regexp"
|
||||||
|
],
|
||||||
|
"component": {
|
||||||
|
"scripts": {
|
||||||
|
"path-to-regexp": "index.js"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"license": "MIT",
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/component/path-to-regexp.git"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"mocha": "^1.17.1",
|
||||||
|
"istanbul": "^0.2.6"
|
||||||
|
}
|
||||||
|
}
|
||||||
21
srcs/requirements/nestjs/api_back/node_modules/@types/express-session/LICENSE
generated
vendored
Executable file
21
srcs/requirements/nestjs/api_back/node_modules/@types/express-session/LICENSE
generated
vendored
Executable file
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) Microsoft Corporation.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE
|
||||||
16
srcs/requirements/nestjs/api_back/node_modules/@types/express-session/README.md
generated
vendored
Executable file
16
srcs/requirements/nestjs/api_back/node_modules/@types/express-session/README.md
generated
vendored
Executable file
@@ -0,0 +1,16 @@
|
|||||||
|
# Installation
|
||||||
|
> `npm install --save @types/express-session`
|
||||||
|
|
||||||
|
# Summary
|
||||||
|
This package contains type definitions for express-session (https://github.com/expressjs/session).
|
||||||
|
|
||||||
|
# Details
|
||||||
|
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/express-session.
|
||||||
|
|
||||||
|
### Additional Details
|
||||||
|
* Last updated: Thu, 07 Jul 2022 03:02:22 GMT
|
||||||
|
* Dependencies: [@types/express](https://npmjs.com/package/@types/express)
|
||||||
|
* Global values: none
|
||||||
|
|
||||||
|
# Credits
|
||||||
|
These definitions were written by [Hiroki Horiuchi](https://github.com/horiuchi), [Jacob Bogers](https://github.com/jacobbogers), [Naoto Yokoyama](https://github.com/builtinnya), [Ryan Cannon](https://github.com/ry7n), [Tom Spencer](https://github.com/fiznool), [Piotr Błażejewicz](https://github.com/peterblazejewicz), and [Ravi van Rooijen](https://github.com/HoldYourWaffle).
|
||||||
368
srcs/requirements/nestjs/api_back/node_modules/@types/express-session/index.d.ts
generated
vendored
Executable file
368
srcs/requirements/nestjs/api_back/node_modules/@types/express-session/index.d.ts
generated
vendored
Executable file
@@ -0,0 +1,368 @@
|
|||||||
|
// Type definitions for express-session 1.17
|
||||||
|
// Project: https://github.com/expressjs/session
|
||||||
|
// Definitions by: Hiroki Horiuchi <https://github.com/horiuchi>
|
||||||
|
// Jacob Bogers <https://github.com/jacobbogers>
|
||||||
|
// Naoto Yokoyama <https://github.com/builtinnya>
|
||||||
|
// Ryan Cannon <https://github.com/ry7n>
|
||||||
|
// Tom Spencer <https://github.com/fiznool>
|
||||||
|
// Piotr Błażejewicz <https://github.com/peterblazejewicz>
|
||||||
|
// Ravi van Rooijen <https://github.com/HoldYourWaffle>
|
||||||
|
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||||
|
// TypeScript Version: 2.3
|
||||||
|
|
||||||
|
import express = require('express');
|
||||||
|
import { EventEmitter } from 'events';
|
||||||
|
|
||||||
|
declare global {
|
||||||
|
namespace Express {
|
||||||
|
type SessionStore = session.Store & { generate: (req: Request) => void };
|
||||||
|
|
||||||
|
// Inject additional properties on express.Request
|
||||||
|
interface Request {
|
||||||
|
/**
|
||||||
|
* This request's `Session` object.
|
||||||
|
* Even though this property isn't marked as optional, it won't exist until you use the `express-session` middleware
|
||||||
|
* [Declaration merging](https://www.typescriptlang.org/docs/handbook/declaration-merging.html) can be used to add your own properties.
|
||||||
|
*
|
||||||
|
* @see SessionData
|
||||||
|
*/
|
||||||
|
session: session.Session & Partial<session.SessionData>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This request's session ID.
|
||||||
|
* Even though this property isn't marked as optional, it won't exist until you use the `express-session` middleware
|
||||||
|
*/
|
||||||
|
sessionID: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Store in use.
|
||||||
|
* Even though this property isn't marked as optional, it won't exist until you use the `express-session` middleware
|
||||||
|
* The function `generate` is added by express-session
|
||||||
|
*/
|
||||||
|
sessionStore: SessionStore;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export = session;
|
||||||
|
|
||||||
|
declare function session(options?: session.SessionOptions): express.RequestHandler;
|
||||||
|
|
||||||
|
declare namespace session {
|
||||||
|
interface SessionOptions {
|
||||||
|
/**
|
||||||
|
* This is the secret used to sign the session cookie. This can be either a string for a single secret, or an array of multiple secrets.
|
||||||
|
* If an array of secrets is provided, **only the first element will be used to sign** the session ID cookie,
|
||||||
|
* while **all the elements will be considered when verifying the signature** in requests.
|
||||||
|
* The secret itself should be not easily parsed by a human and would best be a random set of characters
|
||||||
|
*
|
||||||
|
* Best practices may include:
|
||||||
|
* - The use of environment variables to store the secret, ensuring the secret itself does not exist in your repository.
|
||||||
|
* - Periodic updates of the secret, while ensuring the previous secret is in the array.
|
||||||
|
*
|
||||||
|
* Using a secret that cannot be guessed will reduce the ability to hijack a session to only guessing the session ID (as determined by the `genid` option).
|
||||||
|
*
|
||||||
|
* Changing the secret value will invalidate all existing sessions.
|
||||||
|
* In order to rotate the secret without invalidating sessions, provide an array of secrets,
|
||||||
|
* with the new secret as first element of the array, and including previous secrets as the later elements.
|
||||||
|
*/
|
||||||
|
secret: string | string[];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function to call to generate a new session ID. Provide a function that returns a string that will be used as a session ID.
|
||||||
|
* The function is given the request as the first argument if you want to use some value attached to it when generating the ID.
|
||||||
|
*
|
||||||
|
* The default value is a function which uses the uid-safe library to generate IDs.
|
||||||
|
* Be careful to generate unique IDs so your sessions do not conflict.
|
||||||
|
*/
|
||||||
|
genid?(req: express.Request): string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The name of the session ID cookie to set in the response (and read from in the request).
|
||||||
|
* The default value is 'connect.sid'.
|
||||||
|
*
|
||||||
|
* Note if you have multiple apps running on the same hostname (this is just the name, i.e. `localhost` or `127.0.0.1`; different schemes and ports do not name a different hostname),
|
||||||
|
* then you need to separate the session cookies from each other.
|
||||||
|
* The simplest method is to simply set different names per app.
|
||||||
|
*/
|
||||||
|
name?: string | undefined;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The session store instance, defaults to a new `MemoryStore` instance.
|
||||||
|
* @see MemoryStore
|
||||||
|
*/
|
||||||
|
store?: Store | undefined;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Settings object for the session ID cookie.
|
||||||
|
* @see CookieOptions
|
||||||
|
*/
|
||||||
|
cookie?: CookieOptions | undefined;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Force the session identifier cookie to be set on every response. The expiration is reset to the original `maxAge`, resetting the expiration countdown.
|
||||||
|
* The default value is `false`.
|
||||||
|
*
|
||||||
|
* With this enabled, the session identifier cookie will expire in `maxAge` *since the last response was sent* instead of in `maxAge` *since the session was last modified by the server*.
|
||||||
|
* This is typically used in conjuction with short, non-session-length `maxAge` values to provide a quick timeout of the session data
|
||||||
|
* with reduced potential of it occurring during on going server interactions.
|
||||||
|
*
|
||||||
|
* Note that when this option is set to `true` but the `saveUninitialized` option is set to `false`, the cookie will not be set on a response with an uninitialized session.
|
||||||
|
* This option only modifies the behavior when an existing session was loaded for the request.
|
||||||
|
*
|
||||||
|
* @see saveUninitialized
|
||||||
|
*/
|
||||||
|
rolling?: boolean | undefined;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Forces the session to be saved back to the session store, even if the session was never modified during the request.
|
||||||
|
* Depending on your store this may be necessary, but it can also create race conditions where a client makes two parallel requests to your server
|
||||||
|
* and changes made to the session in one request may get overwritten when the other request ends, even if it made no changes (this behavior also depends on what store you're using).
|
||||||
|
*
|
||||||
|
* The default value is `true`, but using the default has been deprecated, as the default will change in the future.
|
||||||
|
* Please research into this setting and choose what is appropriate to your use-case. Typically, you'll want `false`.
|
||||||
|
*
|
||||||
|
* How do I know if this is necessary for my store? The best way to know is to check with your store if it implements the `touch` method.
|
||||||
|
* If it does, then you can safely set `resave: false`.
|
||||||
|
* If it does not implement the `touch` method and your store sets an expiration date on stored sessions, then you likely need `resave: true`.
|
||||||
|
*/
|
||||||
|
resave?: boolean | undefined;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Trust the reverse proxy when setting secure cookies (via the "X-Forwarded-Proto" header).
|
||||||
|
* The default value is undefined.
|
||||||
|
*
|
||||||
|
* - `true`: The `X-Forwarded-Proto` header will be used.
|
||||||
|
* - `false`: All headers are ignored and the connection is considered secure only if there is a direct TLS/SSL connection.
|
||||||
|
* - `undefined`: Uses the "trust proxy" setting from express
|
||||||
|
*/
|
||||||
|
proxy?: boolean | undefined;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Forces a session that is "uninitialized" to be saved to the store. A session is uninitialized when it is new but not modified.
|
||||||
|
* Choosing `false` is useful for implementing login sessions, reducing server storage usage, or complying with laws that require permission before setting a cookie.
|
||||||
|
* Choosing `false` will also help with race conditions where a client makes multiple parallel requests without a session.
|
||||||
|
*
|
||||||
|
* The default value is `true`, but using the default has been deprecated, as the default will change in the future.
|
||||||
|
* Please research into this setting and choose what is appropriate to your use-case.
|
||||||
|
*
|
||||||
|
* **If you are using `express-session` in conjunction with PassportJS:**
|
||||||
|
* Passport will add an empty Passport object to the session for use after a user is authenticated, which will be treated as a modification to the session, causing it to be saved.
|
||||||
|
* This has been fixed in PassportJS 0.3.0.
|
||||||
|
*/
|
||||||
|
saveUninitialized?: boolean | undefined;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Control the result of unsetting req.session (through delete, setting to null, etc.).
|
||||||
|
* - `destroy`: The session will be destroyed (deleted) when the response ends.
|
||||||
|
* - `keep`: The session in the store will be kept, but modifications made during the request are ignored and not saved.
|
||||||
|
* @default 'keep'
|
||||||
|
*/
|
||||||
|
unset?: 'destroy' | 'keep' | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
class Session {
|
||||||
|
private constructor(request: Express.Request, data: SessionData);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Each session has a unique ID associated with it.
|
||||||
|
* This property is an alias of `req.sessionID` and cannot be modified.
|
||||||
|
* It has been added to make the session ID accessible from the session object.
|
||||||
|
*/
|
||||||
|
id: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Each session has a unique cookie object accompany it.
|
||||||
|
* This allows you to alter the session cookie per visitor.
|
||||||
|
* For example we can set `req.session.cookie.expires` to `false` to enable the cookie to remain for only the duration of the user-agent.
|
||||||
|
*/
|
||||||
|
cookie: Cookie;
|
||||||
|
|
||||||
|
/** To regenerate the session simply invoke the method. Once complete, a new SID and `Session` instance will be initialized at `req.session` and the `callback` will be invoked. */
|
||||||
|
regenerate(callback: (err: any) => void): this;
|
||||||
|
|
||||||
|
/** Destroys the session and will unset the `req.session` property. Once complete, the `callback` will be invoked. */
|
||||||
|
destroy(callback: (err: any) => void): this;
|
||||||
|
|
||||||
|
/** Reloads the session data from the store and re-populates the `req.session` object. Once complete, the `callback` will be invoked. */
|
||||||
|
reload(callback: (err: any) => void): this;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resets the cookie's `maxAge` to `originalMaxAge`
|
||||||
|
* @see Cookie
|
||||||
|
*/
|
||||||
|
resetMaxAge(): this;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Save the session back to the store, replacing the contents on the store with the contents in memory
|
||||||
|
* (though a store may do something else - consult the store's documentation for exact behavior).
|
||||||
|
*
|
||||||
|
* This method is automatically called at the end of the HTTP response if the session data has been altered
|
||||||
|
* (though this behavior can be altered with various options in the middleware constructor).
|
||||||
|
* Because of this, typically this method does not need to be called.
|
||||||
|
* There are some cases where it is useful to call this method, for example: redirects, long-lived requests or in WebSockets.
|
||||||
|
*/
|
||||||
|
save(callback?: (err: any) => void): this;
|
||||||
|
|
||||||
|
/** Updates the `maxAge` property. Typically this is not necessary to call, as the session middleware does this for you. */
|
||||||
|
touch(): this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This interface allows you to declare additional properties on your session object using [declaration merging](https://www.typescriptlang.org/docs/handbook/declaration-merging.html).
|
||||||
|
*
|
||||||
|
* @example
|
||||||
|
* declare module 'express-session' {
|
||||||
|
* interface SessionData {
|
||||||
|
* views: number;
|
||||||
|
* }
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
interface SessionData {
|
||||||
|
cookie: Cookie;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface CookieOptions {
|
||||||
|
/**
|
||||||
|
* Specifies the number (in milliseconds) to use when calculating the `Expires Set-Cookie` attribute.
|
||||||
|
* This is done by taking the current server time and adding `maxAge` milliseconds to the value to calculate an `Expires` datetime. By default, no maximum age is set.
|
||||||
|
*
|
||||||
|
* If both `expires` and `maxAge` are set in the options, then the last one defined in the object is what is used.
|
||||||
|
* `maxAge` should be preferred over `expires`.
|
||||||
|
*
|
||||||
|
* @see expires
|
||||||
|
*/
|
||||||
|
maxAge?: number | undefined;
|
||||||
|
|
||||||
|
signed?: boolean | undefined;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies the `Date` object to be the value for the `Expires Set-Cookie` attribute.
|
||||||
|
* By default, no expiration is set, and most clients will consider this a "non-persistent cookie" and will delete it on a condition like exiting a web browser application.
|
||||||
|
*
|
||||||
|
* If both `expires` and `maxAge` are set in the options, then the last one defined in the object is what is used.
|
||||||
|
*
|
||||||
|
* @deprecated The `expires` option should not be set directly; instead only use the `maxAge` option
|
||||||
|
* @see maxAge
|
||||||
|
*/
|
||||||
|
expires?: Date | undefined;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies the boolean value for the `HttpOnly Set-Cookie` attribute. When truthy, the `HttpOnly` attribute is set, otherwise it is not.
|
||||||
|
* By default, the `HttpOnly` attribute is set.
|
||||||
|
*
|
||||||
|
* Be careful when setting this to `true`, as compliant clients will not allow client-side JavaScript to see the cookie in `document.cookie`.
|
||||||
|
*/
|
||||||
|
httpOnly?: boolean | undefined;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies the value for the `Path Set-Cookie` attribute.
|
||||||
|
* By default, this is set to '/', which is the root path of the domain.
|
||||||
|
*/
|
||||||
|
path?: string | undefined;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies the value for the `Domain Set-Cookie` attribute.
|
||||||
|
* By default, no domain is set, and most clients will consider the cookie to apply to only the current domain.
|
||||||
|
*/
|
||||||
|
domain?: string | undefined;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies the boolean value for the `Secure Set-Cookie` attribute. When truthy, the `Secure` attribute is set, otherwise it is not. By default, the `Secure` attribute is not set.
|
||||||
|
* Be careful when setting this to true, as compliant clients will not send the cookie back to the server in the future if the browser does not have an HTTPS connection.
|
||||||
|
*
|
||||||
|
* Please note that `secure: true` is a **recommended option**.
|
||||||
|
* However, it requires an https-enabled website, i.e., HTTPS is necessary for secure cookies.
|
||||||
|
* If `secure` is set, and you access your site over HTTP, **the cookie will not be set**.
|
||||||
|
*
|
||||||
|
* The cookie.secure option can also be set to the special value `auto` to have this setting automatically match the determined security of the connection.
|
||||||
|
* Be careful when using this setting if the site is available both as HTTP and HTTPS, as once the cookie is set on HTTPS, it will no longer be visible over HTTP.
|
||||||
|
* This is useful when the Express "trust proxy" setting is properly setup to simplify development vs production configuration.
|
||||||
|
*
|
||||||
|
* If you have your node.js behind a proxy and are using `secure: true`, you need to set "trust proxy" in express. Please see the [README](https://github.com/expressjs/session) for details.
|
||||||
|
*
|
||||||
|
* Please see the [README](https://github.com/expressjs/session) for an example of using secure cookies in production, but allowing for testing in development based on NODE_ENV.
|
||||||
|
*/
|
||||||
|
secure?: boolean | 'auto' | undefined;
|
||||||
|
|
||||||
|
encode?: ((val: string) => string) | undefined;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies the boolean or string to be the value for the `SameSite Set-Cookie` attribute.
|
||||||
|
* - `true` will set the `SameSite` attribute to `Strict` for strict same site enforcement.
|
||||||
|
* - `false` will not set the `SameSite` attribute.
|
||||||
|
* - `lax` will set the `SameSite` attribute to `Lax` for lax same site enforcement.
|
||||||
|
* - `none` will set the `SameSite` attribute to `None` for an explicit cross-site cookie.
|
||||||
|
* - `strict` will set the `SameSite` attribute to `Strict` for strict same site enforcement.
|
||||||
|
*
|
||||||
|
* More information about the different enforcement levels can be found in the specification.
|
||||||
|
*
|
||||||
|
* **Note:** This is an attribute that has not yet been fully standardized, and may change in the future.
|
||||||
|
* This also means many clients may ignore this attribute until they understand it.
|
||||||
|
*/
|
||||||
|
sameSite?: boolean | 'lax' | 'strict' | 'none' | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
class Cookie implements CookieOptions {
|
||||||
|
/** Returns the original `maxAge` (time-to-live), in milliseconds, of the session cookie. */
|
||||||
|
originalMaxAge: number;
|
||||||
|
|
||||||
|
maxAge?: number | undefined;
|
||||||
|
signed?: boolean | undefined;
|
||||||
|
expires?: Date | undefined;
|
||||||
|
httpOnly?: boolean | undefined;
|
||||||
|
path?: string | undefined;
|
||||||
|
domain?: string | undefined;
|
||||||
|
secure?: boolean | 'auto' | undefined;
|
||||||
|
sameSite?: boolean | 'lax' | 'strict' | 'none' | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract class Store extends EventEmitter {
|
||||||
|
regenerate(req: express.Request, callback: (err?: any) => any): void;
|
||||||
|
load(sid: string, callback: (err: any, session?: SessionData) => any): void;
|
||||||
|
createSession(req: express.Request, session: SessionData): Session & SessionData;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the session from the store given a session ID and passes it to `callback`.
|
||||||
|
*
|
||||||
|
* The `session` argument should be a `Session` object if found, otherwise `null` or `undefined` if the session was not found and there was no error.
|
||||||
|
* A special case is made when `error.code === 'ENOENT'` to act like `callback(null, null)`.
|
||||||
|
*/
|
||||||
|
abstract get(sid: string, callback: (err: any, session?: SessionData | null) => void): void;
|
||||||
|
|
||||||
|
/** Upsert a session in the store given a session ID and `SessionData` */
|
||||||
|
abstract set(sid: string, session: SessionData, callback?: (err?: any) => void): void;
|
||||||
|
|
||||||
|
/** Destroys the dession with the given session ID. */
|
||||||
|
abstract destroy(sid: string, callback?: (err?: any) => void): void;
|
||||||
|
|
||||||
|
/** Returns all sessions in the store */
|
||||||
|
// https://github.com/DefinitelyTyped/DefinitelyTyped/pull/38783, https://github.com/expressjs/session/pull/700#issuecomment-540855551
|
||||||
|
all?(callback: (err: any, obj?: SessionData[] | { [sid: string]: SessionData; } | null) => void): void;
|
||||||
|
|
||||||
|
/** Returns the amount of sessions in the store. */
|
||||||
|
length?(callback: (err: any, length: number) => void): void;
|
||||||
|
|
||||||
|
/** Delete all sessions from the store. */
|
||||||
|
clear?(callback?: (err?: any) => void): void;
|
||||||
|
|
||||||
|
/** "Touches" a given session, resetting the idle timer. */
|
||||||
|
touch?(sid: string, session: SessionData, callback?: () => void): void;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* **Warning:** the default server-side session storage, `MemoryStore`, is purposely not designed for a production environment.
|
||||||
|
* It will leak memory under most conditions, does not scale past a single process, and is only meant for debugging and developing.
|
||||||
|
*/
|
||||||
|
class MemoryStore extends Store {
|
||||||
|
get(sid: string, callback: (err: any, session?: SessionData | null) => void): void;
|
||||||
|
set(sid: string, session: SessionData, callback?: (err?: any) => void): void;
|
||||||
|
destroy(sid: string, callback?: (err?: any) => void): void;
|
||||||
|
|
||||||
|
all(callback: (err: any, obj?: { [sid: string]: SessionData; } | null) => void): void;
|
||||||
|
length(callback: (err: any, length: number) => void): void;
|
||||||
|
clear(callback?: (err?: any) => void): void;
|
||||||
|
touch(sid: string, session: SessionData, callback?: () => void): void;
|
||||||
|
}
|
||||||
|
}
|
||||||
57
srcs/requirements/nestjs/api_back/node_modules/@types/express-session/package.json
generated
vendored
Executable file
57
srcs/requirements/nestjs/api_back/node_modules/@types/express-session/package.json
generated
vendored
Executable file
@@ -0,0 +1,57 @@
|
|||||||
|
{
|
||||||
|
"name": "@types/express-session",
|
||||||
|
"version": "1.17.5",
|
||||||
|
"description": "TypeScript definitions for express-session",
|
||||||
|
"homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/express-session",
|
||||||
|
"license": "MIT",
|
||||||
|
"contributors": [
|
||||||
|
{
|
||||||
|
"name": "Hiroki Horiuchi",
|
||||||
|
"url": "https://github.com/horiuchi",
|
||||||
|
"githubUsername": "horiuchi"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Jacob Bogers",
|
||||||
|
"url": "https://github.com/jacobbogers",
|
||||||
|
"githubUsername": "jacobbogers"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Naoto Yokoyama",
|
||||||
|
"url": "https://github.com/builtinnya",
|
||||||
|
"githubUsername": "builtinnya"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Ryan Cannon",
|
||||||
|
"url": "https://github.com/ry7n",
|
||||||
|
"githubUsername": "ry7n"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Tom Spencer",
|
||||||
|
"url": "https://github.com/fiznool",
|
||||||
|
"githubUsername": "fiznool"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Piotr Błażejewicz",
|
||||||
|
"url": "https://github.com/peterblazejewicz",
|
||||||
|
"githubUsername": "peterblazejewicz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Ravi van Rooijen",
|
||||||
|
"url": "https://github.com/HoldYourWaffle",
|
||||||
|
"githubUsername": "HoldYourWaffle"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"main": "",
|
||||||
|
"types": "index.d.ts",
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
|
||||||
|
"directory": "types/express-session"
|
||||||
|
},
|
||||||
|
"scripts": {},
|
||||||
|
"dependencies": {
|
||||||
|
"@types/express": "*"
|
||||||
|
},
|
||||||
|
"typesPublisherContentHash": "9d0551cf0bdb891e1753ebd24dae4983885b37ebda7a3502c34346e1eb58cd12",
|
||||||
|
"typeScriptVersion": "4.0"
|
||||||
|
}
|
||||||
442
srcs/requirements/nestjs/api_back/node_modules/express-session/HISTORY.md
generated
vendored
Normal file
442
srcs/requirements/nestjs/api_back/node_modules/express-session/HISTORY.md
generated
vendored
Normal file
@@ -0,0 +1,442 @@
|
|||||||
|
1.17.3 / 2022-05-11
|
||||||
|
===================
|
||||||
|
|
||||||
|
* Fix resaving already-saved new session at end of request
|
||||||
|
* deps: cookie@0.4.2
|
||||||
|
|
||||||
|
1.17.2 / 2021-05-19
|
||||||
|
===================
|
||||||
|
|
||||||
|
* Fix `res.end` patch to always commit headers
|
||||||
|
* deps: cookie@0.4.1
|
||||||
|
* deps: safe-buffer@5.2.1
|
||||||
|
|
||||||
|
1.17.1 / 2020-04-16
|
||||||
|
===================
|
||||||
|
|
||||||
|
* Fix internal method wrapping error on failed reloads
|
||||||
|
|
||||||
|
1.17.0 / 2019-10-10
|
||||||
|
===================
|
||||||
|
|
||||||
|
* deps: cookie@0.4.0
|
||||||
|
- Add `SameSite=None` support
|
||||||
|
* deps: safe-buffer@5.2.0
|
||||||
|
|
||||||
|
1.16.2 / 2019-06-12
|
||||||
|
===================
|
||||||
|
|
||||||
|
* Fix restoring `cookie.originalMaxAge` when store returns `Date`
|
||||||
|
* deps: parseurl@~1.3.3
|
||||||
|
|
||||||
|
1.16.1 / 2019-04-11
|
||||||
|
===================
|
||||||
|
|
||||||
|
* Fix error passing `data` option to `Cookie` constructor
|
||||||
|
* Fix uncaught error from bad session data
|
||||||
|
|
||||||
|
1.16.0 / 2019-04-10
|
||||||
|
===================
|
||||||
|
|
||||||
|
* Catch invalid `cookie.maxAge` value earlier
|
||||||
|
* Deprecate setting `cookie.maxAge` to a `Date` object
|
||||||
|
* Fix issue where `resave: false` may not save altered sessions
|
||||||
|
* Remove `utils-merge` dependency
|
||||||
|
* Use `safe-buffer` for improved Buffer API
|
||||||
|
* Use `Set-Cookie` as cookie header name for compatibility
|
||||||
|
* deps: depd@~2.0.0
|
||||||
|
- Replace internal `eval` usage with `Function` constructor
|
||||||
|
- Use instance methods on `process` to check for listeners
|
||||||
|
- perf: remove argument reassignment
|
||||||
|
* deps: on-headers@~1.0.2
|
||||||
|
- Fix `res.writeHead` patch missing return value
|
||||||
|
|
||||||
|
1.15.6 / 2017-09-26
|
||||||
|
===================
|
||||||
|
|
||||||
|
* deps: debug@2.6.9
|
||||||
|
* deps: parseurl@~1.3.2
|
||||||
|
- perf: reduce overhead for full URLs
|
||||||
|
- perf: unroll the "fast-path" `RegExp`
|
||||||
|
* deps: uid-safe@~2.1.5
|
||||||
|
- perf: remove only trailing `=`
|
||||||
|
* deps: utils-merge@1.0.1
|
||||||
|
|
||||||
|
1.15.5 / 2017-08-02
|
||||||
|
===================
|
||||||
|
|
||||||
|
* Fix `TypeError` when `req.url` is an empty string
|
||||||
|
* deps: depd@~1.1.1
|
||||||
|
- Remove unnecessary `Buffer` loading
|
||||||
|
|
||||||
|
1.15.4 / 2017-07-18
|
||||||
|
===================
|
||||||
|
|
||||||
|
* deps: debug@2.6.8
|
||||||
|
|
||||||
|
1.15.3 / 2017-05-17
|
||||||
|
===================
|
||||||
|
|
||||||
|
* deps: debug@2.6.7
|
||||||
|
- deps: ms@2.0.0
|
||||||
|
|
||||||
|
1.15.2 / 2017-03-26
|
||||||
|
===================
|
||||||
|
|
||||||
|
* deps: debug@2.6.3
|
||||||
|
- Fix `DEBUG_MAX_ARRAY_LENGTH`
|
||||||
|
* deps: uid-safe@~2.1.4
|
||||||
|
- Remove `base64-url` dependency
|
||||||
|
|
||||||
|
1.15.1 / 2017-02-10
|
||||||
|
===================
|
||||||
|
|
||||||
|
* deps: debug@2.6.1
|
||||||
|
- Fix deprecation messages in WebStorm and other editors
|
||||||
|
- Undeprecate `DEBUG_FD` set to `1` or `2`
|
||||||
|
|
||||||
|
1.15.0 / 2017-01-22
|
||||||
|
===================
|
||||||
|
|
||||||
|
* Fix detecting modified session when session contains "cookie" property
|
||||||
|
* Fix resaving already-saved reloaded session at end of request
|
||||||
|
* deps: crc@3.4.4
|
||||||
|
- perf: use `Buffer.from` when available
|
||||||
|
* deps: debug@2.6.0
|
||||||
|
- Allow colors in workers
|
||||||
|
- Deprecated `DEBUG_FD` environment variable
|
||||||
|
- Use same color for same namespace
|
||||||
|
- Fix error when running under React Native
|
||||||
|
- deps: ms@0.7.2
|
||||||
|
* perf: remove unreachable branch in set-cookie method
|
||||||
|
|
||||||
|
1.14.2 / 2016-10-30
|
||||||
|
===================
|
||||||
|
|
||||||
|
* deps: crc@3.4.1
|
||||||
|
- Fix deprecation warning in Node.js 7.x
|
||||||
|
* deps: uid-safe@~2.1.3
|
||||||
|
- deps: base64-url@1.3.3
|
||||||
|
|
||||||
|
1.14.1 / 2016-08-24
|
||||||
|
===================
|
||||||
|
|
||||||
|
* Fix not always resetting session max age before session save
|
||||||
|
* Fix the cookie `sameSite` option to actually alter the `Set-Cookie`
|
||||||
|
* deps: uid-safe@~2.1.2
|
||||||
|
- deps: base64-url@1.3.2
|
||||||
|
|
||||||
|
1.14.0 / 2016-07-01
|
||||||
|
===================
|
||||||
|
|
||||||
|
* Correctly inherit from `EventEmitter` class in `Store` base class
|
||||||
|
* Fix issue where `Set-Cookie` `Expires` was not always updated
|
||||||
|
* Methods are no longer enumerable on `req.session` object
|
||||||
|
* deps: cookie@0.3.1
|
||||||
|
- Add `sameSite` option
|
||||||
|
- Improve error message when `encode` is not a function
|
||||||
|
- Improve error message when `expires` is not a `Date`
|
||||||
|
- perf: enable strict mode
|
||||||
|
- perf: use for loop in parse
|
||||||
|
- perf: use string concatination for serialization
|
||||||
|
* deps: parseurl@~1.3.1
|
||||||
|
- perf: enable strict mode
|
||||||
|
* deps: uid-safe@~2.1.1
|
||||||
|
- Use `random-bytes` for byte source
|
||||||
|
- deps: base64-url@1.2.2
|
||||||
|
* perf: enable strict mode
|
||||||
|
* perf: remove argument reassignment
|
||||||
|
|
||||||
|
1.13.0 / 2016-01-10
|
||||||
|
===================
|
||||||
|
|
||||||
|
* Fix `rolling: true` to not set cookie when no session exists
|
||||||
|
- Better `saveUninitialized: false` + `rolling: true` behavior
|
||||||
|
* deps: crc@3.4.0
|
||||||
|
|
||||||
|
1.12.1 / 2015-10-29
|
||||||
|
===================
|
||||||
|
|
||||||
|
* deps: cookie@0.2.3
|
||||||
|
- Fix cookie `Max-Age` to never be a floating point number
|
||||||
|
|
||||||
|
1.12.0 / 2015-10-25
|
||||||
|
===================
|
||||||
|
|
||||||
|
* Support the value `'auto'` in the `cookie.secure` option
|
||||||
|
* deps: cookie@0.2.2
|
||||||
|
- Throw on invalid values provided to `serialize`
|
||||||
|
* deps: depd@~1.1.0
|
||||||
|
- Enable strict mode in more places
|
||||||
|
- Support web browser loading
|
||||||
|
* deps: on-headers@~1.0.1
|
||||||
|
- perf: enable strict mode
|
||||||
|
|
||||||
|
1.11.3 / 2015-05-22
|
||||||
|
===================
|
||||||
|
|
||||||
|
* deps: cookie@0.1.3
|
||||||
|
- Slight optimizations
|
||||||
|
* deps: crc@3.3.0
|
||||||
|
|
||||||
|
1.11.2 / 2015-05-10
|
||||||
|
===================
|
||||||
|
|
||||||
|
* deps: debug@~2.2.0
|
||||||
|
- deps: ms@0.7.1
|
||||||
|
* deps: uid-safe@~2.0.0
|
||||||
|
|
||||||
|
1.11.1 / 2015-04-08
|
||||||
|
===================
|
||||||
|
|
||||||
|
* Fix mutating `options.secret` value
|
||||||
|
|
||||||
|
1.11.0 / 2015-04-07
|
||||||
|
===================
|
||||||
|
|
||||||
|
* Support an array in `secret` option for key rotation
|
||||||
|
* deps: depd@~1.0.1
|
||||||
|
|
||||||
|
1.10.4 / 2015-03-15
|
||||||
|
===================
|
||||||
|
|
||||||
|
* deps: debug@~2.1.3
|
||||||
|
- Fix high intensity foreground color for bold
|
||||||
|
- deps: ms@0.7.0
|
||||||
|
|
||||||
|
1.10.3 / 2015-02-16
|
||||||
|
===================
|
||||||
|
|
||||||
|
* deps: cookie-signature@1.0.6
|
||||||
|
* deps: uid-safe@1.1.0
|
||||||
|
- Use `crypto.randomBytes`, if available
|
||||||
|
- deps: base64-url@1.2.1
|
||||||
|
|
||||||
|
1.10.2 / 2015-01-31
|
||||||
|
===================
|
||||||
|
|
||||||
|
* deps: uid-safe@1.0.3
|
||||||
|
- Fix error branch that would throw
|
||||||
|
- deps: base64-url@1.2.0
|
||||||
|
|
||||||
|
1.10.1 / 2015-01-08
|
||||||
|
===================
|
||||||
|
|
||||||
|
* deps: uid-safe@1.0.2
|
||||||
|
- Remove dependency on `mz`
|
||||||
|
|
||||||
|
1.10.0 / 2015-01-05
|
||||||
|
===================
|
||||||
|
|
||||||
|
* Add `store.touch` interface for session stores
|
||||||
|
* Fix `MemoryStore` expiration with `resave: false`
|
||||||
|
* deps: debug@~2.1.1
|
||||||
|
|
||||||
|
1.9.3 / 2014-12-02
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix error when `req.sessionID` contains a non-string value
|
||||||
|
|
||||||
|
1.9.2 / 2014-11-22
|
||||||
|
==================
|
||||||
|
|
||||||
|
* deps: crc@3.2.1
|
||||||
|
- Minor fixes
|
||||||
|
|
||||||
|
1.9.1 / 2014-10-22
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Remove unnecessary empty write call
|
||||||
|
- Fixes Node.js 0.11.14 behavior change
|
||||||
|
- Helps work-around Node.js 0.10.1 zlib bug
|
||||||
|
|
||||||
|
1.9.0 / 2014-09-16
|
||||||
|
==================
|
||||||
|
|
||||||
|
* deps: debug@~2.1.0
|
||||||
|
- Implement `DEBUG_FD` env variable support
|
||||||
|
* deps: depd@~1.0.0
|
||||||
|
|
||||||
|
1.8.2 / 2014-09-15
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Use `crc` instead of `buffer-crc32` for speed
|
||||||
|
* deps: depd@0.4.5
|
||||||
|
|
||||||
|
1.8.1 / 2014-09-08
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Keep `req.session.save` non-enumerable
|
||||||
|
* Prevent session prototype methods from being overwritten
|
||||||
|
|
||||||
|
1.8.0 / 2014-09-07
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Do not resave already-saved session at end of request
|
||||||
|
* deps: cookie-signature@1.0.5
|
||||||
|
* deps: debug@~2.0.0
|
||||||
|
|
||||||
|
1.7.6 / 2014-08-18
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix exception on `res.end(null)` calls
|
||||||
|
|
||||||
|
1.7.5 / 2014-08-10
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix parsing original URL
|
||||||
|
* deps: on-headers@~1.0.0
|
||||||
|
* deps: parseurl@~1.3.0
|
||||||
|
|
||||||
|
1.7.4 / 2014-08-05
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix response end delay for non-chunked responses
|
||||||
|
|
||||||
|
1.7.3 / 2014-08-05
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix `res.end` patch to call correct upstream `res.write`
|
||||||
|
|
||||||
|
1.7.2 / 2014-07-27
|
||||||
|
==================
|
||||||
|
|
||||||
|
* deps: depd@0.4.4
|
||||||
|
- Work-around v8 generating empty stack traces
|
||||||
|
|
||||||
|
1.7.1 / 2014-07-26
|
||||||
|
==================
|
||||||
|
|
||||||
|
* deps: depd@0.4.3
|
||||||
|
- Fix exception when global `Error.stackTraceLimit` is too low
|
||||||
|
|
||||||
|
1.7.0 / 2014-07-22
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Improve session-ending error handling
|
||||||
|
- Errors are passed to `next(err)` instead of `console.error`
|
||||||
|
* deps: debug@1.0.4
|
||||||
|
* deps: depd@0.4.2
|
||||||
|
- Add `TRACE_DEPRECATION` environment variable
|
||||||
|
- Remove non-standard grey color from color output
|
||||||
|
- Support `--no-deprecation` argument
|
||||||
|
- Support `--trace-deprecation` argument
|
||||||
|
|
||||||
|
1.6.5 / 2014-07-11
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Do not require `req.originalUrl`
|
||||||
|
* deps: debug@1.0.3
|
||||||
|
- Add support for multiple wildcards in namespaces
|
||||||
|
|
||||||
|
1.6.4 / 2014-07-07
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix blank responses for stores with synchronous operations
|
||||||
|
|
||||||
|
1.6.3 / 2014-07-04
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix resave deprecation message
|
||||||
|
|
||||||
|
1.6.2 / 2014-07-04
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix confusing option deprecation messages
|
||||||
|
|
||||||
|
1.6.1 / 2014-06-28
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix saveUninitialized deprecation message
|
||||||
|
|
||||||
|
1.6.0 / 2014-06-28
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Add deprecation message to undefined `resave` option
|
||||||
|
* Add deprecation message to undefined `saveUninitialized` option
|
||||||
|
* Fix `res.end` patch to return correct value
|
||||||
|
* Fix `res.end` patch to handle multiple `res.end` calls
|
||||||
|
* Reject cookies with missing signatures
|
||||||
|
|
||||||
|
1.5.2 / 2014-06-26
|
||||||
|
==================
|
||||||
|
|
||||||
|
* deps: cookie-signature@1.0.4
|
||||||
|
- fix for timing attacks
|
||||||
|
|
||||||
|
1.5.1 / 2014-06-21
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Move hard-to-track-down `req.secret` deprecation message
|
||||||
|
|
||||||
|
1.5.0 / 2014-06-19
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Debug name is now "express-session"
|
||||||
|
* Deprecate integration with `cookie-parser` middleware
|
||||||
|
* Deprecate looking for secret in `req.secret`
|
||||||
|
* Directly read cookies; `cookie-parser` no longer required
|
||||||
|
* Directly set cookies; `res.cookie` no longer required
|
||||||
|
* Generate session IDs with `uid-safe`, faster and even less collisions
|
||||||
|
|
||||||
|
1.4.0 / 2014-06-17
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Add `genid` option to generate custom session IDs
|
||||||
|
* Add `saveUninitialized` option to control saving uninitialized sessions
|
||||||
|
* Add `unset` option to control unsetting `req.session`
|
||||||
|
* Generate session IDs with `rand-token` by default; reduce collisions
|
||||||
|
* deps: buffer-crc32@0.2.3
|
||||||
|
|
||||||
|
1.3.1 / 2014-06-14
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Add description in package for npmjs.org listing
|
||||||
|
|
||||||
|
1.3.0 / 2014-06-14
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Integrate with express "trust proxy" by default
|
||||||
|
* deps: debug@1.0.2
|
||||||
|
|
||||||
|
1.2.1 / 2014-05-27
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix `resave` such that `resave: true` works
|
||||||
|
|
||||||
|
1.2.0 / 2014-05-19
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Add `resave` option to control saving unmodified sessions
|
||||||
|
|
||||||
|
1.1.0 / 2014-05-12
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Add `name` option; replacement for `key` option
|
||||||
|
* Use `setImmediate` in MemoryStore for node.js >= 0.10
|
||||||
|
|
||||||
|
1.0.4 / 2014-04-27
|
||||||
|
==================
|
||||||
|
|
||||||
|
* deps: debug@0.8.1
|
||||||
|
|
||||||
|
1.0.3 / 2014-04-19
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Use `res.cookie()` instead of `res.setHeader()`
|
||||||
|
* deps: cookie@0.1.2
|
||||||
|
|
||||||
|
1.0.2 / 2014-02-23
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Add missing dependency to `package.json`
|
||||||
|
|
||||||
|
1.0.1 / 2014-02-15
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Add missing dependencies to `package.json`
|
||||||
|
|
||||||
|
1.0.0 / 2014-02-15
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Genesis from `connect`
|
||||||
24
srcs/requirements/nestjs/api_back/node_modules/express-session/LICENSE
generated
vendored
Normal file
24
srcs/requirements/nestjs/api_back/node_modules/express-session/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
(The MIT License)
|
||||||
|
|
||||||
|
Copyright (c) 2010 Sencha Inc.
|
||||||
|
Copyright (c) 2011 TJ Holowaychuk <tj@vision-media.ca>
|
||||||
|
Copyright (c) 2014-2015 Douglas Christopher Wilson <doug@somethingdoug.com>
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
'Software'), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
985
srcs/requirements/nestjs/api_back/node_modules/express-session/README.md
generated
vendored
Normal file
985
srcs/requirements/nestjs/api_back/node_modules/express-session/README.md
generated
vendored
Normal file
@@ -0,0 +1,985 @@
|
|||||||
|
# express-session
|
||||||
|
|
||||||
|
[![NPM Version][npm-version-image]][npm-url]
|
||||||
|
[![NPM Downloads][npm-downloads-image]][node-url]
|
||||||
|
[![Build Status][ci-image]][ci-url]
|
||||||
|
[![Test Coverage][coveralls-image]][coveralls-url]
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
This is a [Node.js](https://nodejs.org/en/) module available through the
|
||||||
|
[npm registry](https://www.npmjs.com/). Installation is done using the
|
||||||
|
[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ npm install express-session
|
||||||
|
```
|
||||||
|
|
||||||
|
## API
|
||||||
|
|
||||||
|
```js
|
||||||
|
var session = require('express-session')
|
||||||
|
```
|
||||||
|
|
||||||
|
### session(options)
|
||||||
|
|
||||||
|
Create a session middleware with the given `options`.
|
||||||
|
|
||||||
|
**Note** Session data is _not_ saved in the cookie itself, just the session ID.
|
||||||
|
Session data is stored server-side.
|
||||||
|
|
||||||
|
**Note** Since version 1.5.0, the [`cookie-parser` middleware](https://www.npmjs.com/package/cookie-parser)
|
||||||
|
no longer needs to be used for this module to work. This module now directly reads
|
||||||
|
and writes cookies on `req`/`res`. Using `cookie-parser` may result in issues
|
||||||
|
if the `secret` is not the same between this module and `cookie-parser`.
|
||||||
|
|
||||||
|
**Warning** The default server-side session storage, `MemoryStore`, is _purposely_
|
||||||
|
not designed for a production environment. It will leak memory under most
|
||||||
|
conditions, does not scale past a single process, and is meant for debugging and
|
||||||
|
developing.
|
||||||
|
|
||||||
|
For a list of stores, see [compatible session stores](#compatible-session-stores).
|
||||||
|
|
||||||
|
#### Options
|
||||||
|
|
||||||
|
`express-session` accepts these properties in the options object.
|
||||||
|
|
||||||
|
##### cookie
|
||||||
|
|
||||||
|
Settings object for the session ID cookie. The default value is
|
||||||
|
`{ path: '/', httpOnly: true, secure: false, maxAge: null }`.
|
||||||
|
|
||||||
|
The following are options that can be set in this object.
|
||||||
|
|
||||||
|
##### cookie.domain
|
||||||
|
|
||||||
|
Specifies the value for the `Domain` `Set-Cookie` attribute. By default, no domain
|
||||||
|
is set, and most clients will consider the cookie to apply to only the current
|
||||||
|
domain.
|
||||||
|
|
||||||
|
##### cookie.expires
|
||||||
|
|
||||||
|
Specifies the `Date` object to be the value for the `Expires` `Set-Cookie` attribute.
|
||||||
|
By default, no expiration is set, and most clients will consider this a
|
||||||
|
"non-persistent cookie" and will delete it on a condition like exiting a web browser
|
||||||
|
application.
|
||||||
|
|
||||||
|
**Note** If both `expires` and `maxAge` are set in the options, then the last one
|
||||||
|
defined in the object is what is used.
|
||||||
|
|
||||||
|
**Note** The `expires` option should not be set directly; instead only use the `maxAge`
|
||||||
|
option.
|
||||||
|
|
||||||
|
##### cookie.httpOnly
|
||||||
|
|
||||||
|
Specifies the `boolean` value for the `HttpOnly` `Set-Cookie` attribute. When truthy,
|
||||||
|
the `HttpOnly` attribute is set, otherwise it is not. By default, the `HttpOnly`
|
||||||
|
attribute is set.
|
||||||
|
|
||||||
|
**Note** be careful when setting this to `true`, as compliant clients will not allow
|
||||||
|
client-side JavaScript to see the cookie in `document.cookie`.
|
||||||
|
|
||||||
|
##### cookie.maxAge
|
||||||
|
|
||||||
|
Specifies the `number` (in milliseconds) to use when calculating the `Expires`
|
||||||
|
`Set-Cookie` attribute. This is done by taking the current server time and adding
|
||||||
|
`maxAge` milliseconds to the value to calculate an `Expires` datetime. By default,
|
||||||
|
no maximum age is set.
|
||||||
|
|
||||||
|
**Note** If both `expires` and `maxAge` are set in the options, then the last one
|
||||||
|
defined in the object is what is used.
|
||||||
|
|
||||||
|
##### cookie.path
|
||||||
|
|
||||||
|
Specifies the value for the `Path` `Set-Cookie`. By default, this is set to `'/'`, which
|
||||||
|
is the root path of the domain.
|
||||||
|
|
||||||
|
##### cookie.sameSite
|
||||||
|
|
||||||
|
Specifies the `boolean` or `string` to be the value for the `SameSite` `Set-Cookie` attribute.
|
||||||
|
By default, this is `false`.
|
||||||
|
|
||||||
|
- `true` will set the `SameSite` attribute to `Strict` for strict same site enforcement.
|
||||||
|
- `false` will not set the `SameSite` attribute.
|
||||||
|
- `'lax'` will set the `SameSite` attribute to `Lax` for lax same site enforcement.
|
||||||
|
- `'none'` will set the `SameSite` attribute to `None` for an explicit cross-site cookie.
|
||||||
|
- `'strict'` will set the `SameSite` attribute to `Strict` for strict same site enforcement.
|
||||||
|
|
||||||
|
More information about the different enforcement levels can be found in
|
||||||
|
[the specification][rfc-6265bis-03-4.1.2.7].
|
||||||
|
|
||||||
|
**Note** This is an attribute that has not yet been fully standardized, and may change in
|
||||||
|
the future. This also means many clients may ignore this attribute until they understand it.
|
||||||
|
|
||||||
|
**Note** There is a [draft spec](https://tools.ietf.org/html/draft-west-cookie-incrementalism-01)
|
||||||
|
that requires that the `Secure` attribute be set to `true` when the `SameSite` attribute has been
|
||||||
|
set to `'none'`. Some web browsers or other clients may be adopting this specification.
|
||||||
|
|
||||||
|
##### cookie.secure
|
||||||
|
|
||||||
|
Specifies the `boolean` value for the `Secure` `Set-Cookie` attribute. When truthy,
|
||||||
|
the `Secure` attribute is set, otherwise it is not. By default, the `Secure`
|
||||||
|
attribute is not set.
|
||||||
|
|
||||||
|
**Note** be careful when setting this to `true`, as compliant clients will not send
|
||||||
|
the cookie back to the server in the future if the browser does not have an HTTPS
|
||||||
|
connection.
|
||||||
|
|
||||||
|
Please note that `secure: true` is a **recommended** option. However, it requires
|
||||||
|
an https-enabled website, i.e., HTTPS is necessary for secure cookies. If `secure`
|
||||||
|
is set, and you access your site over HTTP, the cookie will not be set. If you
|
||||||
|
have your node.js behind a proxy and are using `secure: true`, you need to set
|
||||||
|
"trust proxy" in express:
|
||||||
|
|
||||||
|
```js
|
||||||
|
var app = express()
|
||||||
|
app.set('trust proxy', 1) // trust first proxy
|
||||||
|
app.use(session({
|
||||||
|
secret: 'keyboard cat',
|
||||||
|
resave: false,
|
||||||
|
saveUninitialized: true,
|
||||||
|
cookie: { secure: true }
|
||||||
|
}))
|
||||||
|
```
|
||||||
|
|
||||||
|
For using secure cookies in production, but allowing for testing in development,
|
||||||
|
the following is an example of enabling this setup based on `NODE_ENV` in express:
|
||||||
|
|
||||||
|
```js
|
||||||
|
var app = express()
|
||||||
|
var sess = {
|
||||||
|
secret: 'keyboard cat',
|
||||||
|
cookie: {}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (app.get('env') === 'production') {
|
||||||
|
app.set('trust proxy', 1) // trust first proxy
|
||||||
|
sess.cookie.secure = true // serve secure cookies
|
||||||
|
}
|
||||||
|
|
||||||
|
app.use(session(sess))
|
||||||
|
```
|
||||||
|
|
||||||
|
The `cookie.secure` option can also be set to the special value `'auto'` to have
|
||||||
|
this setting automatically match the determined security of the connection. Be
|
||||||
|
careful when using this setting if the site is available both as HTTP and HTTPS,
|
||||||
|
as once the cookie is set on HTTPS, it will no longer be visible over HTTP. This
|
||||||
|
is useful when the Express `"trust proxy"` setting is properly setup to simplify
|
||||||
|
development vs production configuration.
|
||||||
|
|
||||||
|
##### genid
|
||||||
|
|
||||||
|
Function to call to generate a new session ID. Provide a function that returns
|
||||||
|
a string that will be used as a session ID. The function is given `req` as the
|
||||||
|
first argument if you want to use some value attached to `req` when generating
|
||||||
|
the ID.
|
||||||
|
|
||||||
|
The default value is a function which uses the `uid-safe` library to generate IDs.
|
||||||
|
|
||||||
|
**NOTE** be careful to generate unique IDs so your sessions do not conflict.
|
||||||
|
|
||||||
|
```js
|
||||||
|
app.use(session({
|
||||||
|
genid: function(req) {
|
||||||
|
return genuuid() // use UUIDs for session IDs
|
||||||
|
},
|
||||||
|
secret: 'keyboard cat'
|
||||||
|
}))
|
||||||
|
```
|
||||||
|
|
||||||
|
##### name
|
||||||
|
|
||||||
|
The name of the session ID cookie to set in the response (and read from in the
|
||||||
|
request).
|
||||||
|
|
||||||
|
The default value is `'connect.sid'`.
|
||||||
|
|
||||||
|
**Note** if you have multiple apps running on the same hostname (this is just
|
||||||
|
the name, i.e. `localhost` or `127.0.0.1`; different schemes and ports do not
|
||||||
|
name a different hostname), then you need to separate the session cookies from
|
||||||
|
each other. The simplest method is to simply set different `name`s per app.
|
||||||
|
|
||||||
|
##### proxy
|
||||||
|
|
||||||
|
Trust the reverse proxy when setting secure cookies (via the "X-Forwarded-Proto"
|
||||||
|
header).
|
||||||
|
|
||||||
|
The default value is `undefined`.
|
||||||
|
|
||||||
|
- `true` The "X-Forwarded-Proto" header will be used.
|
||||||
|
- `false` All headers are ignored and the connection is considered secure only
|
||||||
|
if there is a direct TLS/SSL connection.
|
||||||
|
- `undefined` Uses the "trust proxy" setting from express
|
||||||
|
|
||||||
|
##### resave
|
||||||
|
|
||||||
|
Forces the session to be saved back to the session store, even if the session
|
||||||
|
was never modified during the request. Depending on your store this may be
|
||||||
|
necessary, but it can also create race conditions where a client makes two
|
||||||
|
parallel requests to your server and changes made to the session in one
|
||||||
|
request may get overwritten when the other request ends, even if it made no
|
||||||
|
changes (this behavior also depends on what store you're using).
|
||||||
|
|
||||||
|
The default value is `true`, but using the default has been deprecated,
|
||||||
|
as the default will change in the future. Please research into this setting
|
||||||
|
and choose what is appropriate to your use-case. Typically, you'll want
|
||||||
|
`false`.
|
||||||
|
|
||||||
|
How do I know if this is necessary for my store? The best way to know is to
|
||||||
|
check with your store if it implements the `touch` method. If it does, then
|
||||||
|
you can safely set `resave: false`. If it does not implement the `touch`
|
||||||
|
method and your store sets an expiration date on stored sessions, then you
|
||||||
|
likely need `resave: true`.
|
||||||
|
|
||||||
|
##### rolling
|
||||||
|
|
||||||
|
Force the session identifier cookie to be set on every response. The expiration
|
||||||
|
is reset to the original [`maxAge`](#cookiemaxage), resetting the expiration
|
||||||
|
countdown.
|
||||||
|
|
||||||
|
The default value is `false`.
|
||||||
|
|
||||||
|
With this enabled, the session identifier cookie will expire in
|
||||||
|
[`maxAge`](#cookiemaxage) since the last response was sent instead of in
|
||||||
|
[`maxAge`](#cookiemaxage) since the session was last modified by the server.
|
||||||
|
|
||||||
|
This is typically used in conjuction with short, non-session-length
|
||||||
|
[`maxAge`](#cookiemaxage) values to provide a quick timeout of the session data
|
||||||
|
with reduced potential of it occurring during on going server interactions.
|
||||||
|
|
||||||
|
**Note** When this option is set to `true` but the `saveUninitialized` option is
|
||||||
|
set to `false`, the cookie will not be set on a response with an uninitialized
|
||||||
|
session. This option only modifies the behavior when an existing session was
|
||||||
|
loaded for the request.
|
||||||
|
|
||||||
|
##### saveUninitialized
|
||||||
|
|
||||||
|
Forces a session that is "uninitialized" to be saved to the store. A session is
|
||||||
|
uninitialized when it is new but not modified. Choosing `false` is useful for
|
||||||
|
implementing login sessions, reducing server storage usage, or complying with
|
||||||
|
laws that require permission before setting a cookie. Choosing `false` will also
|
||||||
|
help with race conditions where a client makes multiple parallel requests
|
||||||
|
without a session.
|
||||||
|
|
||||||
|
The default value is `true`, but using the default has been deprecated, as the
|
||||||
|
default will change in the future. Please research into this setting and
|
||||||
|
choose what is appropriate to your use-case.
|
||||||
|
|
||||||
|
**Note** if you are using Session in conjunction with PassportJS, Passport
|
||||||
|
will add an empty Passport object to the session for use after a user is
|
||||||
|
authenticated, which will be treated as a modification to the session, causing
|
||||||
|
it to be saved. *This has been fixed in PassportJS 0.3.0*
|
||||||
|
|
||||||
|
##### secret
|
||||||
|
|
||||||
|
**Required option**
|
||||||
|
|
||||||
|
This is the secret used to sign the session ID cookie. This can be either a string
|
||||||
|
for a single secret, or an array of multiple secrets. If an array of secrets is
|
||||||
|
provided, only the first element will be used to sign the session ID cookie, while
|
||||||
|
all the elements will be considered when verifying the signature in requests. The
|
||||||
|
secret itself should be not easily parsed by a human and would best be a random set
|
||||||
|
of characters. A best practice may include:
|
||||||
|
|
||||||
|
- The use of environment variables to store the secret, ensuring the secret itself
|
||||||
|
does not exist in your repository.
|
||||||
|
- Periodic updates of the secret, while ensuring the previous secret is in the
|
||||||
|
array.
|
||||||
|
|
||||||
|
Using a secret that cannot be guessed will reduce the ability to hijack a session to
|
||||||
|
only guessing the session ID (as determined by the `genid` option).
|
||||||
|
|
||||||
|
Changing the secret value will invalidate all existing sessions. In order to rotate
|
||||||
|
the secret without invalidating sessions, provide an array of secrets, with the new
|
||||||
|
secret as first element of the array, and including previous secrets as the later
|
||||||
|
elements.
|
||||||
|
|
||||||
|
##### store
|
||||||
|
|
||||||
|
The session store instance, defaults to a new `MemoryStore` instance.
|
||||||
|
|
||||||
|
##### unset
|
||||||
|
|
||||||
|
Control the result of unsetting `req.session` (through `delete`, setting to `null`,
|
||||||
|
etc.).
|
||||||
|
|
||||||
|
The default value is `'keep'`.
|
||||||
|
|
||||||
|
- `'destroy'` The session will be destroyed (deleted) when the response ends.
|
||||||
|
- `'keep'` The session in the store will be kept, but modifications made during
|
||||||
|
the request are ignored and not saved.
|
||||||
|
|
||||||
|
### req.session
|
||||||
|
|
||||||
|
To store or access session data, simply use the request property `req.session`,
|
||||||
|
which is (generally) serialized as JSON by the store, so nested objects
|
||||||
|
are typically fine. For example below is a user-specific view counter:
|
||||||
|
|
||||||
|
```js
|
||||||
|
// Use the session middleware
|
||||||
|
app.use(session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }}))
|
||||||
|
|
||||||
|
// Access the session as req.session
|
||||||
|
app.get('/', function(req, res, next) {
|
||||||
|
if (req.session.views) {
|
||||||
|
req.session.views++
|
||||||
|
res.setHeader('Content-Type', 'text/html')
|
||||||
|
res.write('<p>views: ' + req.session.views + '</p>')
|
||||||
|
res.write('<p>expires in: ' + (req.session.cookie.maxAge / 1000) + 's</p>')
|
||||||
|
res.end()
|
||||||
|
} else {
|
||||||
|
req.session.views = 1
|
||||||
|
res.end('welcome to the session demo. refresh!')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Session.regenerate(callback)
|
||||||
|
|
||||||
|
To regenerate the session simply invoke the method. Once complete,
|
||||||
|
a new SID and `Session` instance will be initialized at `req.session`
|
||||||
|
and the `callback` will be invoked.
|
||||||
|
|
||||||
|
```js
|
||||||
|
req.session.regenerate(function(err) {
|
||||||
|
// will have a new session here
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Session.destroy(callback)
|
||||||
|
|
||||||
|
Destroys the session and will unset the `req.session` property.
|
||||||
|
Once complete, the `callback` will be invoked.
|
||||||
|
|
||||||
|
```js
|
||||||
|
req.session.destroy(function(err) {
|
||||||
|
// cannot access session here
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Session.reload(callback)
|
||||||
|
|
||||||
|
Reloads the session data from the store and re-populates the
|
||||||
|
`req.session` object. Once complete, the `callback` will be invoked.
|
||||||
|
|
||||||
|
```js
|
||||||
|
req.session.reload(function(err) {
|
||||||
|
// session updated
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Session.save(callback)
|
||||||
|
|
||||||
|
Save the session back to the store, replacing the contents on the store with the
|
||||||
|
contents in memory (though a store may do something else--consult the store's
|
||||||
|
documentation for exact behavior).
|
||||||
|
|
||||||
|
This method is automatically called at the end of the HTTP response if the
|
||||||
|
session data has been altered (though this behavior can be altered with various
|
||||||
|
options in the middleware constructor). Because of this, typically this method
|
||||||
|
does not need to be called.
|
||||||
|
|
||||||
|
There are some cases where it is useful to call this method, for example,
|
||||||
|
redirects, long-lived requests or in WebSockets.
|
||||||
|
|
||||||
|
```js
|
||||||
|
req.session.save(function(err) {
|
||||||
|
// session saved
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Session.touch()
|
||||||
|
|
||||||
|
Updates the `.maxAge` property. Typically this is
|
||||||
|
not necessary to call, as the session middleware does this for you.
|
||||||
|
|
||||||
|
### req.session.id
|
||||||
|
|
||||||
|
Each session has a unique ID associated with it. This property is an
|
||||||
|
alias of [`req.sessionID`](#reqsessionid-1) and cannot be modified.
|
||||||
|
It has been added to make the session ID accessible from the `session`
|
||||||
|
object.
|
||||||
|
|
||||||
|
### req.session.cookie
|
||||||
|
|
||||||
|
Each session has a unique cookie object accompany it. This allows
|
||||||
|
you to alter the session cookie per visitor. For example we can
|
||||||
|
set `req.session.cookie.expires` to `false` to enable the cookie
|
||||||
|
to remain for only the duration of the user-agent.
|
||||||
|
|
||||||
|
#### Cookie.maxAge
|
||||||
|
|
||||||
|
Alternatively `req.session.cookie.maxAge` will return the time
|
||||||
|
remaining in milliseconds, which we may also re-assign a new value
|
||||||
|
to adjust the `.expires` property appropriately. The following
|
||||||
|
are essentially equivalent
|
||||||
|
|
||||||
|
```js
|
||||||
|
var hour = 3600000
|
||||||
|
req.session.cookie.expires = new Date(Date.now() + hour)
|
||||||
|
req.session.cookie.maxAge = hour
|
||||||
|
```
|
||||||
|
|
||||||
|
For example when `maxAge` is set to `60000` (one minute), and 30 seconds
|
||||||
|
has elapsed it will return `30000` until the current request has completed,
|
||||||
|
at which time `req.session.touch()` is called to reset
|
||||||
|
`req.session.cookie.maxAge` to its original value.
|
||||||
|
|
||||||
|
```js
|
||||||
|
req.session.cookie.maxAge // => 30000
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Cookie.originalMaxAge
|
||||||
|
|
||||||
|
The `req.session.cookie.originalMaxAge` property returns the original
|
||||||
|
`maxAge` (time-to-live), in milliseconds, of the session cookie.
|
||||||
|
|
||||||
|
### req.sessionID
|
||||||
|
|
||||||
|
To get the ID of the loaded session, access the request property
|
||||||
|
`req.sessionID`. This is simply a read-only value set when a session
|
||||||
|
is loaded/created.
|
||||||
|
|
||||||
|
## Session Store Implementation
|
||||||
|
|
||||||
|
Every session store _must_ be an `EventEmitter` and implement specific
|
||||||
|
methods. The following methods are the list of **required**, **recommended**,
|
||||||
|
and **optional**.
|
||||||
|
|
||||||
|
* Required methods are ones that this module will always call on the store.
|
||||||
|
* Recommended methods are ones that this module will call on the store if
|
||||||
|
available.
|
||||||
|
* Optional methods are ones this module does not call at all, but helps
|
||||||
|
present uniform stores to users.
|
||||||
|
|
||||||
|
For an example implementation view the [connect-redis](http://github.com/visionmedia/connect-redis) repo.
|
||||||
|
|
||||||
|
### store.all(callback)
|
||||||
|
|
||||||
|
**Optional**
|
||||||
|
|
||||||
|
This optional method is used to get all sessions in the store as an array. The
|
||||||
|
`callback` should be called as `callback(error, sessions)`.
|
||||||
|
|
||||||
|
### store.destroy(sid, callback)
|
||||||
|
|
||||||
|
**Required**
|
||||||
|
|
||||||
|
This required method is used to destroy/delete a session from the store given
|
||||||
|
a session ID (`sid`). The `callback` should be called as `callback(error)` once
|
||||||
|
the session is destroyed.
|
||||||
|
|
||||||
|
### store.clear(callback)
|
||||||
|
|
||||||
|
**Optional**
|
||||||
|
|
||||||
|
This optional method is used to delete all sessions from the store. The
|
||||||
|
`callback` should be called as `callback(error)` once the store is cleared.
|
||||||
|
|
||||||
|
### store.length(callback)
|
||||||
|
|
||||||
|
**Optional**
|
||||||
|
|
||||||
|
This optional method is used to get the count of all sessions in the store.
|
||||||
|
The `callback` should be called as `callback(error, len)`.
|
||||||
|
|
||||||
|
### store.get(sid, callback)
|
||||||
|
|
||||||
|
**Required**
|
||||||
|
|
||||||
|
This required method is used to get a session from the store given a session
|
||||||
|
ID (`sid`). The `callback` should be called as `callback(error, session)`.
|
||||||
|
|
||||||
|
The `session` argument should be a session if found, otherwise `null` or
|
||||||
|
`undefined` if the session was not found (and there was no error). A special
|
||||||
|
case is made when `error.code === 'ENOENT'` to act like `callback(null, null)`.
|
||||||
|
|
||||||
|
### store.set(sid, session, callback)
|
||||||
|
|
||||||
|
**Required**
|
||||||
|
|
||||||
|
This required method is used to upsert a session into the store given a
|
||||||
|
session ID (`sid`) and session (`session`) object. The callback should be
|
||||||
|
called as `callback(error)` once the session has been set in the store.
|
||||||
|
|
||||||
|
### store.touch(sid, session, callback)
|
||||||
|
|
||||||
|
**Recommended**
|
||||||
|
|
||||||
|
This recommended method is used to "touch" a given session given a
|
||||||
|
session ID (`sid`) and session (`session`) object. The `callback` should be
|
||||||
|
called as `callback(error)` once the session has been touched.
|
||||||
|
|
||||||
|
This is primarily used when the store will automatically delete idle sessions
|
||||||
|
and this method is used to signal to the store the given session is active,
|
||||||
|
potentially resetting the idle timer.
|
||||||
|
|
||||||
|
## Compatible Session Stores
|
||||||
|
|
||||||
|
The following modules implement a session store that is compatible with this
|
||||||
|
module. Please make a PR to add additional modules :)
|
||||||
|
|
||||||
|
[![★][aerospike-session-store-image] aerospike-session-store][aerospike-session-store-url] A session store using [Aerospike](http://www.aerospike.com/).
|
||||||
|
|
||||||
|
[aerospike-session-store-url]: https://www.npmjs.com/package/aerospike-session-store
|
||||||
|
[aerospike-session-store-image]: https://badgen.net/github/stars/aerospike/aerospike-session-store-expressjs?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][better-sqlite3-session-store-image] better-sqlite3-session-store][better-sqlite3-session-store-url] A session store based on [better-sqlite3](https://github.com/JoshuaWise/better-sqlite3).
|
||||||
|
|
||||||
|
[better-sqlite3-session-store-url]: https://www.npmjs.com/package/better-sqlite3-session-store
|
||||||
|
[better-sqlite3-session-store-image]: https://badgen.net/github/stars/timdaub/better-sqlite3-session-store?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][cassandra-store-image] cassandra-store][cassandra-store-url] An Apache Cassandra-based session store.
|
||||||
|
|
||||||
|
[cassandra-store-url]: https://www.npmjs.com/package/cassandra-store
|
||||||
|
[cassandra-store-image]: https://badgen.net/github/stars/webcc/cassandra-store?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][cluster-store-image] cluster-store][cluster-store-url] A wrapper for using in-process / embedded
|
||||||
|
stores - such as SQLite (via knex), leveldb, files, or memory - with node cluster (desirable for Raspberry Pi 2
|
||||||
|
and other multi-core embedded devices).
|
||||||
|
|
||||||
|
[cluster-store-url]: https://www.npmjs.com/package/cluster-store
|
||||||
|
[cluster-store-image]: https://badgen.net/github/stars/coolaj86/cluster-store?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][connect-arango-image] connect-arango][connect-arango-url] An ArangoDB-based session store.
|
||||||
|
|
||||||
|
[connect-arango-url]: https://www.npmjs.com/package/connect-arango
|
||||||
|
[connect-arango-image]: https://badgen.net/github/stars/AlexanderArvidsson/connect-arango?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][connect-azuretables-image] connect-azuretables][connect-azuretables-url] An [Azure Table Storage](https://azure.microsoft.com/en-gb/services/storage/tables/)-based session store.
|
||||||
|
|
||||||
|
[connect-azuretables-url]: https://www.npmjs.com/package/connect-azuretables
|
||||||
|
[connect-azuretables-image]: https://badgen.net/github/stars/mike-goodwin/connect-azuretables?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][connect-cloudant-store-image] connect-cloudant-store][connect-cloudant-store-url] An [IBM Cloudant](https://cloudant.com/)-based session store.
|
||||||
|
|
||||||
|
[connect-cloudant-store-url]: https://www.npmjs.com/package/connect-cloudant-store
|
||||||
|
[connect-cloudant-store-image]: https://badgen.net/github/stars/adriantanasa/connect-cloudant-store?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][connect-couchbase-image] connect-couchbase][connect-couchbase-url] A [couchbase](http://www.couchbase.com/)-based session store.
|
||||||
|
|
||||||
|
[connect-couchbase-url]: https://www.npmjs.com/package/connect-couchbase
|
||||||
|
[connect-couchbase-image]: https://badgen.net/github/stars/christophermina/connect-couchbase?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][connect-datacache-image] connect-datacache][connect-datacache-url] An [IBM Bluemix Data Cache](http://www.ibm.com/cloud-computing/bluemix/)-based session store.
|
||||||
|
|
||||||
|
[connect-datacache-url]: https://www.npmjs.com/package/connect-datacache
|
||||||
|
[connect-datacache-image]: https://badgen.net/github/stars/adriantanasa/connect-datacache?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][@google-cloud/connect-datastore-image] @google-cloud/connect-datastore][@google-cloud/connect-datastore-url] A [Google Cloud Datastore](https://cloud.google.com/datastore/docs/concepts/overview)-based session store.
|
||||||
|
|
||||||
|
[@google-cloud/connect-datastore-url]: https://www.npmjs.com/package/@google-cloud/connect-datastore
|
||||||
|
[@google-cloud/connect-datastore-image]: https://badgen.net/github/stars/GoogleCloudPlatform/cloud-datastore-session-node?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][connect-db2-image] connect-db2][connect-db2-url] An IBM DB2-based session store built using [ibm_db](https://www.npmjs.com/package/ibm_db) module.
|
||||||
|
|
||||||
|
[connect-db2-url]: https://www.npmjs.com/package/connect-db2
|
||||||
|
[connect-db2-image]: https://badgen.net/github/stars/wallali/connect-db2?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][connect-dynamodb-image] connect-dynamodb][connect-dynamodb-url] A DynamoDB-based session store.
|
||||||
|
|
||||||
|
[connect-dynamodb-url]: https://www.npmjs.com/package/connect-dynamodb
|
||||||
|
[connect-dynamodb-image]: https://badgen.net/github/stars/ca98am79/connect-dynamodb?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][@google-cloud/connect-firestore-image] @google-cloud/connect-firestore][@google-cloud/connect-firestore-url] A [Google Cloud Firestore](https://cloud.google.com/firestore/docs/overview)-based session store.
|
||||||
|
|
||||||
|
[@google-cloud/connect-firestore-url]: https://www.npmjs.com/package/@google-cloud/connect-firestore
|
||||||
|
[@google-cloud/connect-firestore-image]: https://badgen.net/github/stars/googleapis/nodejs-firestore-session?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][connect-hazelcast-image] connect-hazelcast][connect-hazelcast-url] Hazelcast session store for Connect and Express.
|
||||||
|
|
||||||
|
[connect-hazelcast-url]: https://www.npmjs.com/package/connect-hazelcast
|
||||||
|
[connect-hazelcast-image]: https://badgen.net/github/stars/huseyinbabal/connect-hazelcast?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][connect-loki-image] connect-loki][connect-loki-url] A Loki.js-based session store.
|
||||||
|
|
||||||
|
[connect-loki-url]: https://www.npmjs.com/package/connect-loki
|
||||||
|
[connect-loki-image]: https://badgen.net/github/stars/Requarks/connect-loki?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][connect-lowdb-image] connect-lowdb][connect-lowdb-url] A lowdb-based session store.
|
||||||
|
|
||||||
|
[connect-lowdb-url]: https://www.npmjs.com/package/connect-lowdb
|
||||||
|
[connect-lowdb-image]: https://badgen.net/github/stars/travishorn/connect-lowdb?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][connect-memcached-image] connect-memcached][connect-memcached-url] A memcached-based session store.
|
||||||
|
|
||||||
|
[connect-memcached-url]: https://www.npmjs.com/package/connect-memcached
|
||||||
|
[connect-memcached-image]: https://badgen.net/github/stars/balor/connect-memcached?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][connect-memjs-image] connect-memjs][connect-memjs-url] A memcached-based session store using
|
||||||
|
[memjs](https://www.npmjs.com/package/memjs) as the memcached client.
|
||||||
|
|
||||||
|
[connect-memjs-url]: https://www.npmjs.com/package/connect-memjs
|
||||||
|
[connect-memjs-image]: https://badgen.net/github/stars/liamdon/connect-memjs?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][connect-ml-image] connect-ml][connect-ml-url] A MarkLogic Server-based session store.
|
||||||
|
|
||||||
|
[connect-ml-url]: https://www.npmjs.com/package/connect-ml
|
||||||
|
[connect-ml-image]: https://badgen.net/github/stars/bluetorch/connect-ml?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][connect-monetdb-image] connect-monetdb][connect-monetdb-url] A MonetDB-based session store.
|
||||||
|
|
||||||
|
[connect-monetdb-url]: https://www.npmjs.com/package/connect-monetdb
|
||||||
|
[connect-monetdb-image]: https://badgen.net/github/stars/MonetDB/npm-connect-monetdb?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][connect-mongo-image] connect-mongo][connect-mongo-url] A MongoDB-based session store.
|
||||||
|
|
||||||
|
[connect-mongo-url]: https://www.npmjs.com/package/connect-mongo
|
||||||
|
[connect-mongo-image]: https://badgen.net/github/stars/kcbanner/connect-mongo?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][connect-mongodb-session-image] connect-mongodb-session][connect-mongodb-session-url] Lightweight MongoDB-based session store built and maintained by MongoDB.
|
||||||
|
|
||||||
|
[connect-mongodb-session-url]: https://www.npmjs.com/package/connect-mongodb-session
|
||||||
|
[connect-mongodb-session-image]: https://badgen.net/github/stars/mongodb-js/connect-mongodb-session?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][connect-mssql-v2-image] connect-mssql-v2][connect-mssql-v2-url] A Microsoft SQL Server-based session store based on [connect-mssql](https://www.npmjs.com/package/connect-mssql).
|
||||||
|
|
||||||
|
[connect-mssql-v2-url]: https://www.npmjs.com/package/connect-mssql-v2
|
||||||
|
[connect-mssql-v2-image]: https://badgen.net/github/stars/jluboff/connect-mssql-v2?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][connect-neo4j-image] connect-neo4j][connect-neo4j-url] A [Neo4j](https://neo4j.com)-based session store.
|
||||||
|
|
||||||
|
[connect-neo4j-url]: https://www.npmjs.com/package/connect-neo4j
|
||||||
|
[connect-neo4j-image]: https://badgen.net/github/stars/MaxAndersson/connect-neo4j?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][connect-pg-simple-image] connect-pg-simple][connect-pg-simple-url] A PostgreSQL-based session store.
|
||||||
|
|
||||||
|
[connect-pg-simple-url]: https://www.npmjs.com/package/connect-pg-simple
|
||||||
|
[connect-pg-simple-image]: https://badgen.net/github/stars/voxpelli/node-connect-pg-simple?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][connect-redis-image] connect-redis][connect-redis-url] A Redis-based session store.
|
||||||
|
|
||||||
|
[connect-redis-url]: https://www.npmjs.com/package/connect-redis
|
||||||
|
[connect-redis-image]: https://badgen.net/github/stars/tj/connect-redis?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][connect-session-firebase-image] connect-session-firebase][connect-session-firebase-url] A session store based on the [Firebase Realtime Database](https://firebase.google.com/docs/database/)
|
||||||
|
|
||||||
|
[connect-session-firebase-url]: https://www.npmjs.com/package/connect-session-firebase
|
||||||
|
[connect-session-firebase-image]: https://badgen.net/github/stars/benweier/connect-session-firebase?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][connect-session-knex-image] connect-session-knex][connect-session-knex-url] A session store using
|
||||||
|
[Knex.js](http://knexjs.org/), which is a SQL query builder for PostgreSQL, MySQL, MariaDB, SQLite3, and Oracle.
|
||||||
|
|
||||||
|
[connect-session-knex-url]: https://www.npmjs.com/package/connect-session-knex
|
||||||
|
[connect-session-knex-image]: https://badgen.net/github/stars/llambda/connect-session-knex?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][connect-session-sequelize-image] connect-session-sequelize][connect-session-sequelize-url] A session store using
|
||||||
|
[Sequelize.js](http://sequelizejs.com/), which is a Node.js / io.js ORM for PostgreSQL, MySQL, SQLite and MSSQL.
|
||||||
|
|
||||||
|
[connect-session-sequelize-url]: https://www.npmjs.com/package/connect-session-sequelize
|
||||||
|
[connect-session-sequelize-image]: https://badgen.net/github/stars/mweibel/connect-session-sequelize?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][connect-sqlite3-image] connect-sqlite3][connect-sqlite3-url] A [SQLite3](https://github.com/mapbox/node-sqlite3) session store modeled after the TJ's `connect-redis` store.
|
||||||
|
|
||||||
|
[connect-sqlite3-url]: https://www.npmjs.com/package/connect-sqlite3
|
||||||
|
[connect-sqlite3-image]: https://badgen.net/github/stars/rawberg/connect-sqlite3?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][connect-typeorm-image] connect-typeorm][connect-typeorm-url] A [TypeORM](https://github.com/typeorm/typeorm)-based session store.
|
||||||
|
|
||||||
|
[connect-typeorm-url]: https://www.npmjs.com/package/connect-typeorm
|
||||||
|
[connect-typeorm-image]: https://badgen.net/github/stars/makepost/connect-typeorm?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][couchdb-expression-image] couchdb-expression][couchdb-expression-url] A [CouchDB](https://couchdb.apache.org/)-based session store.
|
||||||
|
|
||||||
|
[couchdb-expression-url]: https://www.npmjs.com/package/couchdb-expression
|
||||||
|
[couchdb-expression-image]: https://badgen.net/github/stars/tkshnwesper/couchdb-expression?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][dynamodb-store-image] dynamodb-store][dynamodb-store-url] A DynamoDB-based session store.
|
||||||
|
|
||||||
|
[dynamodb-store-url]: https://www.npmjs.com/package/dynamodb-store
|
||||||
|
[dynamodb-store-image]: https://badgen.net/github/stars/rafaelrpinto/dynamodb-store?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][express-etcd-image] express-etcd][express-etcd-url] An [etcd](https://github.com/stianeikeland/node-etcd) based session store.
|
||||||
|
|
||||||
|
[express-etcd-url]: https://www.npmjs.com/package/express-etcd
|
||||||
|
[express-etcd-image]: https://badgen.net/github/stars/gildean/express-etcd?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][express-mysql-session-image] express-mysql-session][express-mysql-session-url] A session store using native
|
||||||
|
[MySQL](https://www.mysql.com/) via the [node-mysql](https://github.com/felixge/node-mysql) module.
|
||||||
|
|
||||||
|
[express-mysql-session-url]: https://www.npmjs.com/package/express-mysql-session
|
||||||
|
[express-mysql-session-image]: https://badgen.net/github/stars/chill117/express-mysql-session?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][express-nedb-session-image] express-nedb-session][express-nedb-session-url] A NeDB-based session store.
|
||||||
|
|
||||||
|
[express-nedb-session-url]: https://www.npmjs.com/package/express-nedb-session
|
||||||
|
[express-nedb-session-image]: https://badgen.net/github/stars/louischatriot/express-nedb-session?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][express-oracle-session-image] express-oracle-session][express-oracle-session-url] A session store using native
|
||||||
|
[oracle](https://www.oracle.com/) via the [node-oracledb](https://www.npmjs.com/package/oracledb) module.
|
||||||
|
|
||||||
|
[express-oracle-session-url]: https://www.npmjs.com/package/express-oracle-session
|
||||||
|
[express-oracle-session-image]: https://badgen.net/github/stars/slumber86/express-oracle-session?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][express-session-cache-manager-image] express-session-cache-manager][express-session-cache-manager-url]
|
||||||
|
A store that implements [cache-manager](https://www.npmjs.com/package/cache-manager), which supports
|
||||||
|
a [variety of storage types](https://www.npmjs.com/package/cache-manager#store-engines).
|
||||||
|
|
||||||
|
[express-session-cache-manager-url]: https://www.npmjs.com/package/express-session-cache-manager
|
||||||
|
[express-session-cache-manager-image]: https://badgen.net/github/stars/theogravity/express-session-cache-manager?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][express-session-etcd3-image] express-session-etcd3][express-session-etcd3-url] An [etcd3](https://github.com/mixer/etcd3) based session store.
|
||||||
|
|
||||||
|
[express-session-etcd3-url]: https://www.npmjs.com/package/express-session-etcd3
|
||||||
|
[express-session-etcd3-image]: https://badgen.net/github/stars/willgm/express-session-etcd3?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][express-session-level-image] express-session-level][express-session-level-url] A [LevelDB](https://github.com/Level/levelup) based session store.
|
||||||
|
|
||||||
|
[express-session-level-url]: https://www.npmjs.com/package/express-session-level
|
||||||
|
[express-session-level-image]: https://badgen.net/github/stars/tgohn/express-session-level?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][express-session-rsdb-image] express-session-rsdb][express-session-rsdb-url] Session store based on Rocket-Store: A very simple, super fast and yet powerfull, flat file database.
|
||||||
|
|
||||||
|
[express-session-rsdb-url]: https://www.npmjs.com/package/express-session-rsdb
|
||||||
|
[express-session-rsdb-image]: https://badgen.net/github/stars/paragi/express-session-rsdb?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][express-sessions-image] express-sessions][express-sessions-url] A session store supporting both MongoDB and Redis.
|
||||||
|
|
||||||
|
[express-sessions-url]: https://www.npmjs.com/package/express-sessions
|
||||||
|
[express-sessions-image]: https://badgen.net/github/stars/konteck/express-sessions?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][firestore-store-image] firestore-store][firestore-store-url] A [Firestore](https://github.com/hendrysadrak/firestore-store)-based session store.
|
||||||
|
|
||||||
|
[firestore-store-url]: https://www.npmjs.com/package/firestore-store
|
||||||
|
[firestore-store-image]: https://badgen.net/github/stars/hendrysadrak/firestore-store?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][fortune-session-image] fortune-session][fortune-session-url] A [Fortune.js](https://github.com/fortunejs/fortune)
|
||||||
|
based session store. Supports all backends supported by Fortune (MongoDB, Redis, Postgres, NeDB).
|
||||||
|
|
||||||
|
[fortune-session-url]: https://www.npmjs.com/package/fortune-session
|
||||||
|
[fortune-session-image]: https://badgen.net/github/stars/aliceklipper/fortune-session?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][hazelcast-store-image] hazelcast-store][hazelcast-store-url] A Hazelcast-based session store built on the [Hazelcast Node Client](https://www.npmjs.com/package/hazelcast-client).
|
||||||
|
|
||||||
|
[hazelcast-store-url]: https://www.npmjs.com/package/hazelcast-store
|
||||||
|
[hazelcast-store-image]: https://badgen.net/github/stars/jackspaniel/hazelcast-store?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][level-session-store-image] level-session-store][level-session-store-url] A LevelDB-based session store.
|
||||||
|
|
||||||
|
[level-session-store-url]: https://www.npmjs.com/package/level-session-store
|
||||||
|
[level-session-store-image]: https://badgen.net/github/stars/toddself/level-session-store?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][lowdb-session-store-image] lowdb-session-store][lowdb-session-store-url] A [lowdb](https://www.npmjs.com/package/lowdb)-based session store.
|
||||||
|
|
||||||
|
[lowdb-session-store-url]: https://www.npmjs.com/package/lowdb-session-store
|
||||||
|
[lowdb-session-store-image]: https://badgen.net/github/stars/fhellwig/lowdb-session-store?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][medea-session-store-image] medea-session-store][medea-session-store-url] A Medea-based session store.
|
||||||
|
|
||||||
|
[medea-session-store-url]: https://www.npmjs.com/package/medea-session-store
|
||||||
|
[medea-session-store-image]: https://badgen.net/github/stars/BenjaminVadant/medea-session-store?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][memorystore-image] memorystore][memorystore-url] A memory session store made for production.
|
||||||
|
|
||||||
|
[memorystore-url]: https://www.npmjs.com/package/memorystore
|
||||||
|
[memorystore-image]: https://badgen.net/github/stars/roccomuso/memorystore?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][mssql-session-store-image] mssql-session-store][mssql-session-store-url] A SQL Server-based session store.
|
||||||
|
|
||||||
|
[mssql-session-store-url]: https://www.npmjs.com/package/mssql-session-store
|
||||||
|
[mssql-session-store-image]: https://badgen.net/github/stars/jwathen/mssql-session-store?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][nedb-session-store-image] nedb-session-store][nedb-session-store-url] An alternate NeDB-based (either in-memory or file-persisted) session store.
|
||||||
|
|
||||||
|
[nedb-session-store-url]: https://www.npmjs.com/package/nedb-session-store
|
||||||
|
[nedb-session-store-image]: https://badgen.net/github/stars/JamesMGreene/nedb-session-store?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][@quixo3/prisma-session-store-image] @quixo3/prisma-session-store][@quixo3/prisma-session-store-url] A session store for the [Prisma Framework](https://www.prisma.io).
|
||||||
|
|
||||||
|
[@quixo3/prisma-session-store-url]: https://www.npmjs.com/package/@quixo3/prisma-session-store
|
||||||
|
[@quixo3/prisma-session-store-image]: https://badgen.net/github/stars/kleydon/prisma-session-store?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][restsession-image] restsession][restsession-url] Store sessions utilizing a RESTful API
|
||||||
|
|
||||||
|
[restsession-url]: https://www.npmjs.com/package/restsession
|
||||||
|
[restsession-image]: https://badgen.net/github/stars/jankal/restsession?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][sequelstore-connect-image] sequelstore-connect][sequelstore-connect-url] A session store using [Sequelize.js](http://sequelizejs.com/).
|
||||||
|
|
||||||
|
[sequelstore-connect-url]: https://www.npmjs.com/package/sequelstore-connect
|
||||||
|
[sequelstore-connect-image]: https://badgen.net/github/stars/MattMcFarland/sequelstore-connect?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][session-file-store-image] session-file-store][session-file-store-url] A file system-based session store.
|
||||||
|
|
||||||
|
[session-file-store-url]: https://www.npmjs.com/package/session-file-store
|
||||||
|
[session-file-store-image]: https://badgen.net/github/stars/valery-barysok/session-file-store?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][session-pouchdb-store-image] session-pouchdb-store][session-pouchdb-store-url] Session store for PouchDB / CouchDB. Accepts embedded, custom, or remote PouchDB instance and realtime synchronization.
|
||||||
|
|
||||||
|
[session-pouchdb-store-url]: https://www.npmjs.com/package/session-pouchdb-store
|
||||||
|
[session-pouchdb-store-image]: https://badgen.net/github/stars/solzimer/session-pouchdb-store?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][session-rethinkdb-image] session-rethinkdb][session-rethinkdb-url] A [RethinkDB](http://rethinkdb.com/)-based session store.
|
||||||
|
|
||||||
|
[session-rethinkdb-url]: https://www.npmjs.com/package/session-rethinkdb
|
||||||
|
[session-rethinkdb-image]: https://badgen.net/github/stars/llambda/session-rethinkdb?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][@databunker/session-store-image] @databunker/session-store][@databunker/session-store-url] A [Databunker](https://databunker.org/)-based encrypted session store.
|
||||||
|
|
||||||
|
[@databunker/session-store-url]: https://www.npmjs.com/package/@databunker/session-store
|
||||||
|
[@databunker/session-store-image]: https://badgen.net/github/stars/securitybunker/databunker-session-store?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][sessionstore-image] sessionstore][sessionstore-url] A session store that works with various databases.
|
||||||
|
|
||||||
|
[sessionstore-url]: https://www.npmjs.com/package/sessionstore
|
||||||
|
[sessionstore-image]: https://badgen.net/github/stars/adrai/sessionstore?label=%E2%98%85
|
||||||
|
|
||||||
|
[![★][tch-nedb-session-image] tch-nedb-session][tch-nedb-session-url] A file system session store based on NeDB.
|
||||||
|
|
||||||
|
[tch-nedb-session-url]: https://www.npmjs.com/package/tch-nedb-session
|
||||||
|
[tch-nedb-session-image]: https://badgen.net/github/stars/tomaschyly/NeDBSession?label=%E2%98%85
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
### View counter
|
||||||
|
|
||||||
|
A simple example using `express-session` to store page views for a user.
|
||||||
|
|
||||||
|
```js
|
||||||
|
var express = require('express')
|
||||||
|
var parseurl = require('parseurl')
|
||||||
|
var session = require('express-session')
|
||||||
|
|
||||||
|
var app = express()
|
||||||
|
|
||||||
|
app.use(session({
|
||||||
|
secret: 'keyboard cat',
|
||||||
|
resave: false,
|
||||||
|
saveUninitialized: true
|
||||||
|
}))
|
||||||
|
|
||||||
|
app.use(function (req, res, next) {
|
||||||
|
if (!req.session.views) {
|
||||||
|
req.session.views = {}
|
||||||
|
}
|
||||||
|
|
||||||
|
// get the url pathname
|
||||||
|
var pathname = parseurl(req).pathname
|
||||||
|
|
||||||
|
// count the views
|
||||||
|
req.session.views[pathname] = (req.session.views[pathname] || 0) + 1
|
||||||
|
|
||||||
|
next()
|
||||||
|
})
|
||||||
|
|
||||||
|
app.get('/foo', function (req, res, next) {
|
||||||
|
res.send('you viewed this page ' + req.session.views['/foo'] + ' times')
|
||||||
|
})
|
||||||
|
|
||||||
|
app.get('/bar', function (req, res, next) {
|
||||||
|
res.send('you viewed this page ' + req.session.views['/bar'] + ' times')
|
||||||
|
})
|
||||||
|
|
||||||
|
app.listen(3000)
|
||||||
|
```
|
||||||
|
|
||||||
|
### User login
|
||||||
|
|
||||||
|
A simple example using `express-session` to keep a user log in session.
|
||||||
|
|
||||||
|
```js
|
||||||
|
var escapeHtml = require('escape-html')
|
||||||
|
var express = require('express')
|
||||||
|
var session = require('express-session')
|
||||||
|
|
||||||
|
var app = express()
|
||||||
|
|
||||||
|
app.use(session({
|
||||||
|
secret: 'keyboard cat',
|
||||||
|
resave: false,
|
||||||
|
saveUninitialized: true
|
||||||
|
}))
|
||||||
|
|
||||||
|
// middleware to test if authenticated
|
||||||
|
function isAuthenticated (req, res, next) {
|
||||||
|
if (req.session.user) next()
|
||||||
|
else next('route')
|
||||||
|
}
|
||||||
|
|
||||||
|
app.get('/', isAuthenticated, function (req, res) {
|
||||||
|
// this is only called when there is an authentication user due to isAuthenticated
|
||||||
|
res.send('hello, ' + escapeHtml(req.session.user) + '!' +
|
||||||
|
' <a href="/logout">Logout</a>')
|
||||||
|
})
|
||||||
|
|
||||||
|
app.get('/', function (req, res) {
|
||||||
|
res.send('<form action="/login" method="post">' +
|
||||||
|
'Username: <input name="user"><br>' +
|
||||||
|
'Password: <input name="pass" type="password"><br>' +
|
||||||
|
'<input type="submit" text="Login"></form>')
|
||||||
|
})
|
||||||
|
|
||||||
|
app.post('/login', express.urlencoded({ extended: false }), function (req, res) {
|
||||||
|
// login logic to validate req.body.user and req.body.pass
|
||||||
|
// would be implemented here. for this example any combo works
|
||||||
|
|
||||||
|
// regenerate the session, which is good practice to help
|
||||||
|
// guard against forms of session fixation
|
||||||
|
req.session.regenerate(function (err) {
|
||||||
|
if (err) next(err)
|
||||||
|
|
||||||
|
// store user information in session, typically a user id
|
||||||
|
req.session.user = req.body.user
|
||||||
|
|
||||||
|
// save the session before redirection to ensure page
|
||||||
|
// load does not happen before session is saved
|
||||||
|
req.session.save(function (err) {
|
||||||
|
if (err) return next(err)
|
||||||
|
res.redirect('/')
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
app.get('/logout', function (req, res, next) {
|
||||||
|
// logout logic
|
||||||
|
|
||||||
|
// clear the user from the session object and save.
|
||||||
|
// this will ensure that re-using the old session id
|
||||||
|
// does not have a logged in user
|
||||||
|
req.session.user = null
|
||||||
|
req.session.save(function (err) {
|
||||||
|
if (err) next(err)
|
||||||
|
|
||||||
|
// regenerate the session, which is good practice to help
|
||||||
|
// guard against forms of session fixation
|
||||||
|
req.session.regenerate(function (err) {
|
||||||
|
if (err) next(err)
|
||||||
|
res.redirect('/')
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
app.listen(3000)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Debugging
|
||||||
|
|
||||||
|
This module uses the [debug](https://www.npmjs.com/package/debug) module
|
||||||
|
internally to log information about session operations.
|
||||||
|
|
||||||
|
To see all the internal logs, set the `DEBUG` environment variable to
|
||||||
|
`express-session` when launching your app (`npm start`, in this example):
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ DEBUG=express-session npm start
|
||||||
|
```
|
||||||
|
|
||||||
|
On Windows, use the corresponding command;
|
||||||
|
|
||||||
|
```sh
|
||||||
|
> set DEBUG=express-session & npm start
|
||||||
|
```
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
[MIT](LICENSE)
|
||||||
|
|
||||||
|
[rfc-6265bis-03-4.1.2.7]: https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03#section-4.1.2.7
|
||||||
|
[ci-image]: https://badgen.net/github/checks/expressjs/session/master?label=ci
|
||||||
|
[ci-url]: https://github.com/expressjs/session/actions?query=workflow%3Aci
|
||||||
|
[coveralls-image]: https://badgen.net/coveralls/c/github/expressjs/session/master
|
||||||
|
[coveralls-url]: https://coveralls.io/r/expressjs/session?branch=master
|
||||||
|
[node-url]: https://nodejs.org/en/download
|
||||||
|
[npm-downloads-image]: https://badgen.net/npm/dm/express-session
|
||||||
|
[npm-url]: https://npmjs.org/package/express-session
|
||||||
|
[npm-version-image]: https://badgen.net/npm/v/express-session
|
||||||
685
srcs/requirements/nestjs/api_back/node_modules/express-session/index.js
generated
vendored
Normal file
685
srcs/requirements/nestjs/api_back/node_modules/express-session/index.js
generated
vendored
Normal file
@@ -0,0 +1,685 @@
|
|||||||
|
/*!
|
||||||
|
* express-session
|
||||||
|
* Copyright(c) 2010 Sencha Inc.
|
||||||
|
* Copyright(c) 2011 TJ Holowaychuk
|
||||||
|
* Copyright(c) 2014-2015 Douglas Christopher Wilson
|
||||||
|
* MIT Licensed
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module dependencies.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
var Buffer = require('safe-buffer').Buffer
|
||||||
|
var cookie = require('cookie');
|
||||||
|
var crypto = require('crypto')
|
||||||
|
var debug = require('debug')('express-session');
|
||||||
|
var deprecate = require('depd')('express-session');
|
||||||
|
var onHeaders = require('on-headers')
|
||||||
|
var parseUrl = require('parseurl');
|
||||||
|
var signature = require('cookie-signature')
|
||||||
|
var uid = require('uid-safe').sync
|
||||||
|
|
||||||
|
var Cookie = require('./session/cookie')
|
||||||
|
var MemoryStore = require('./session/memory')
|
||||||
|
var Session = require('./session/session')
|
||||||
|
var Store = require('./session/store')
|
||||||
|
|
||||||
|
// environment
|
||||||
|
|
||||||
|
var env = process.env.NODE_ENV;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Expose the middleware.
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports = module.exports = session;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Expose constructors.
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.Store = Store;
|
||||||
|
exports.Cookie = Cookie;
|
||||||
|
exports.Session = Session;
|
||||||
|
exports.MemoryStore = MemoryStore;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Warning message for `MemoryStore` usage in production.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
var warning = 'Warning: connect.session() MemoryStore is not\n'
|
||||||
|
+ 'designed for a production environment, as it will leak\n'
|
||||||
|
+ 'memory, and will not scale past a single process.';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Node.js 0.8+ async implementation.
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* istanbul ignore next */
|
||||||
|
var defer = typeof setImmediate === 'function'
|
||||||
|
? setImmediate
|
||||||
|
: function(fn){ process.nextTick(fn.bind.apply(fn, arguments)) }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setup session store with the given `options`.
|
||||||
|
*
|
||||||
|
* @param {Object} [options]
|
||||||
|
* @param {Object} [options.cookie] Options for cookie
|
||||||
|
* @param {Function} [options.genid]
|
||||||
|
* @param {String} [options.name=connect.sid] Session ID cookie name
|
||||||
|
* @param {Boolean} [options.proxy]
|
||||||
|
* @param {Boolean} [options.resave] Resave unmodified sessions back to the store
|
||||||
|
* @param {Boolean} [options.rolling] Enable/disable rolling session expiration
|
||||||
|
* @param {Boolean} [options.saveUninitialized] Save uninitialized sessions to the store
|
||||||
|
* @param {String|Array} [options.secret] Secret for signing session ID
|
||||||
|
* @param {Object} [options.store=MemoryStore] Session store
|
||||||
|
* @param {String} [options.unset]
|
||||||
|
* @return {Function} middleware
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
function session(options) {
|
||||||
|
var opts = options || {}
|
||||||
|
|
||||||
|
// get the cookie options
|
||||||
|
var cookieOptions = opts.cookie || {}
|
||||||
|
|
||||||
|
// get the session id generate function
|
||||||
|
var generateId = opts.genid || generateSessionId
|
||||||
|
|
||||||
|
// get the session cookie name
|
||||||
|
var name = opts.name || opts.key || 'connect.sid'
|
||||||
|
|
||||||
|
// get the session store
|
||||||
|
var store = opts.store || new MemoryStore()
|
||||||
|
|
||||||
|
// get the trust proxy setting
|
||||||
|
var trustProxy = opts.proxy
|
||||||
|
|
||||||
|
// get the resave session option
|
||||||
|
var resaveSession = opts.resave;
|
||||||
|
|
||||||
|
// get the rolling session option
|
||||||
|
var rollingSessions = Boolean(opts.rolling)
|
||||||
|
|
||||||
|
// get the save uninitialized session option
|
||||||
|
var saveUninitializedSession = opts.saveUninitialized
|
||||||
|
|
||||||
|
// get the cookie signing secret
|
||||||
|
var secret = opts.secret
|
||||||
|
|
||||||
|
if (typeof generateId !== 'function') {
|
||||||
|
throw new TypeError('genid option must be a function');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (resaveSession === undefined) {
|
||||||
|
deprecate('undefined resave option; provide resave option');
|
||||||
|
resaveSession = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (saveUninitializedSession === undefined) {
|
||||||
|
deprecate('undefined saveUninitialized option; provide saveUninitialized option');
|
||||||
|
saveUninitializedSession = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (opts.unset && opts.unset !== 'destroy' && opts.unset !== 'keep') {
|
||||||
|
throw new TypeError('unset option must be "destroy" or "keep"');
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: switch to "destroy" on next major
|
||||||
|
var unsetDestroy = opts.unset === 'destroy'
|
||||||
|
|
||||||
|
if (Array.isArray(secret) && secret.length === 0) {
|
||||||
|
throw new TypeError('secret option array must contain one or more strings');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (secret && !Array.isArray(secret)) {
|
||||||
|
secret = [secret];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!secret) {
|
||||||
|
deprecate('req.secret; provide secret option');
|
||||||
|
}
|
||||||
|
|
||||||
|
// notify user that this store is not
|
||||||
|
// meant for a production environment
|
||||||
|
/* istanbul ignore next: not tested */
|
||||||
|
if (env === 'production' && store instanceof MemoryStore) {
|
||||||
|
console.warn(warning);
|
||||||
|
}
|
||||||
|
|
||||||
|
// generates the new session
|
||||||
|
store.generate = function(req){
|
||||||
|
req.sessionID = generateId(req);
|
||||||
|
req.session = new Session(req);
|
||||||
|
req.session.cookie = new Cookie(cookieOptions);
|
||||||
|
|
||||||
|
if (cookieOptions.secure === 'auto') {
|
||||||
|
req.session.cookie.secure = issecure(req, trustProxy);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var storeImplementsTouch = typeof store.touch === 'function';
|
||||||
|
|
||||||
|
// register event listeners for the store to track readiness
|
||||||
|
var storeReady = true
|
||||||
|
store.on('disconnect', function ondisconnect() {
|
||||||
|
storeReady = false
|
||||||
|
})
|
||||||
|
store.on('connect', function onconnect() {
|
||||||
|
storeReady = true
|
||||||
|
})
|
||||||
|
|
||||||
|
return function session(req, res, next) {
|
||||||
|
// self-awareness
|
||||||
|
if (req.session) {
|
||||||
|
next()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle connection as if there is no session if
|
||||||
|
// the store has temporarily disconnected etc
|
||||||
|
if (!storeReady) {
|
||||||
|
debug('store is disconnected')
|
||||||
|
next()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// pathname mismatch
|
||||||
|
var originalPath = parseUrl.original(req).pathname || '/'
|
||||||
|
if (originalPath.indexOf(cookieOptions.path || '/') !== 0) return next();
|
||||||
|
|
||||||
|
// ensure a secret is available or bail
|
||||||
|
if (!secret && !req.secret) {
|
||||||
|
next(new Error('secret option required for sessions'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// backwards compatibility for signed cookies
|
||||||
|
// req.secret is passed from the cookie parser middleware
|
||||||
|
var secrets = secret || [req.secret];
|
||||||
|
|
||||||
|
var originalHash;
|
||||||
|
var originalId;
|
||||||
|
var savedHash;
|
||||||
|
var touched = false
|
||||||
|
|
||||||
|
// expose store
|
||||||
|
req.sessionStore = store;
|
||||||
|
|
||||||
|
// get the session ID from the cookie
|
||||||
|
var cookieId = req.sessionID = getcookie(req, name, secrets);
|
||||||
|
|
||||||
|
// set-cookie
|
||||||
|
onHeaders(res, function(){
|
||||||
|
if (!req.session) {
|
||||||
|
debug('no session');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!shouldSetCookie(req)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// only send secure cookies via https
|
||||||
|
if (req.session.cookie.secure && !issecure(req, trustProxy)) {
|
||||||
|
debug('not secured');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!touched) {
|
||||||
|
// touch session
|
||||||
|
req.session.touch()
|
||||||
|
touched = true
|
||||||
|
}
|
||||||
|
|
||||||
|
// set cookie
|
||||||
|
setcookie(res, name, req.sessionID, secrets[0], req.session.cookie.data);
|
||||||
|
});
|
||||||
|
|
||||||
|
// proxy end() to commit the session
|
||||||
|
var _end = res.end;
|
||||||
|
var _write = res.write;
|
||||||
|
var ended = false;
|
||||||
|
res.end = function end(chunk, encoding) {
|
||||||
|
if (ended) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
ended = true;
|
||||||
|
|
||||||
|
var ret;
|
||||||
|
var sync = true;
|
||||||
|
|
||||||
|
function writeend() {
|
||||||
|
if (sync) {
|
||||||
|
ret = _end.call(res, chunk, encoding);
|
||||||
|
sync = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_end.call(res);
|
||||||
|
}
|
||||||
|
|
||||||
|
function writetop() {
|
||||||
|
if (!sync) {
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!res._header) {
|
||||||
|
res._implicitHeader()
|
||||||
|
}
|
||||||
|
|
||||||
|
if (chunk == null) {
|
||||||
|
ret = true;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
var contentLength = Number(res.getHeader('Content-Length'));
|
||||||
|
|
||||||
|
if (!isNaN(contentLength) && contentLength > 0) {
|
||||||
|
// measure chunk
|
||||||
|
chunk = !Buffer.isBuffer(chunk)
|
||||||
|
? Buffer.from(chunk, encoding)
|
||||||
|
: chunk;
|
||||||
|
encoding = undefined;
|
||||||
|
|
||||||
|
if (chunk.length !== 0) {
|
||||||
|
debug('split response');
|
||||||
|
ret = _write.call(res, chunk.slice(0, chunk.length - 1));
|
||||||
|
chunk = chunk.slice(chunk.length - 1, chunk.length);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = _write.call(res, chunk, encoding);
|
||||||
|
sync = false;
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (shouldDestroy(req)) {
|
||||||
|
// destroy session
|
||||||
|
debug('destroying');
|
||||||
|
store.destroy(req.sessionID, function ondestroy(err) {
|
||||||
|
if (err) {
|
||||||
|
defer(next, err);
|
||||||
|
}
|
||||||
|
|
||||||
|
debug('destroyed');
|
||||||
|
writeend();
|
||||||
|
});
|
||||||
|
|
||||||
|
return writetop();
|
||||||
|
}
|
||||||
|
|
||||||
|
// no session to save
|
||||||
|
if (!req.session) {
|
||||||
|
debug('no session');
|
||||||
|
return _end.call(res, chunk, encoding);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!touched) {
|
||||||
|
// touch session
|
||||||
|
req.session.touch()
|
||||||
|
touched = true
|
||||||
|
}
|
||||||
|
|
||||||
|
if (shouldSave(req)) {
|
||||||
|
req.session.save(function onsave(err) {
|
||||||
|
if (err) {
|
||||||
|
defer(next, err);
|
||||||
|
}
|
||||||
|
|
||||||
|
writeend();
|
||||||
|
});
|
||||||
|
|
||||||
|
return writetop();
|
||||||
|
} else if (storeImplementsTouch && shouldTouch(req)) {
|
||||||
|
// store implements touch method
|
||||||
|
debug('touching');
|
||||||
|
store.touch(req.sessionID, req.session, function ontouch(err) {
|
||||||
|
if (err) {
|
||||||
|
defer(next, err);
|
||||||
|
}
|
||||||
|
|
||||||
|
debug('touched');
|
||||||
|
writeend();
|
||||||
|
});
|
||||||
|
|
||||||
|
return writetop();
|
||||||
|
}
|
||||||
|
|
||||||
|
return _end.call(res, chunk, encoding);
|
||||||
|
};
|
||||||
|
|
||||||
|
// generate the session
|
||||||
|
function generate() {
|
||||||
|
store.generate(req);
|
||||||
|
originalId = req.sessionID;
|
||||||
|
originalHash = hash(req.session);
|
||||||
|
wrapmethods(req.session);
|
||||||
|
}
|
||||||
|
|
||||||
|
// inflate the session
|
||||||
|
function inflate (req, sess) {
|
||||||
|
store.createSession(req, sess)
|
||||||
|
originalId = req.sessionID
|
||||||
|
originalHash = hash(sess)
|
||||||
|
|
||||||
|
if (!resaveSession) {
|
||||||
|
savedHash = originalHash
|
||||||
|
}
|
||||||
|
|
||||||
|
wrapmethods(req.session)
|
||||||
|
}
|
||||||
|
|
||||||
|
function rewrapmethods (sess, callback) {
|
||||||
|
return function () {
|
||||||
|
if (req.session !== sess) {
|
||||||
|
wrapmethods(req.session)
|
||||||
|
}
|
||||||
|
|
||||||
|
callback.apply(this, arguments)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// wrap session methods
|
||||||
|
function wrapmethods(sess) {
|
||||||
|
var _reload = sess.reload
|
||||||
|
var _save = sess.save;
|
||||||
|
|
||||||
|
function reload(callback) {
|
||||||
|
debug('reloading %s', this.id)
|
||||||
|
_reload.call(this, rewrapmethods(this, callback))
|
||||||
|
}
|
||||||
|
|
||||||
|
function save() {
|
||||||
|
debug('saving %s', this.id);
|
||||||
|
savedHash = hash(this);
|
||||||
|
_save.apply(this, arguments);
|
||||||
|
}
|
||||||
|
|
||||||
|
Object.defineProperty(sess, 'reload', {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
value: reload,
|
||||||
|
writable: true
|
||||||
|
})
|
||||||
|
|
||||||
|
Object.defineProperty(sess, 'save', {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: false,
|
||||||
|
value: save,
|
||||||
|
writable: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// check if session has been modified
|
||||||
|
function isModified(sess) {
|
||||||
|
return originalId !== sess.id || originalHash !== hash(sess);
|
||||||
|
}
|
||||||
|
|
||||||
|
// check if session has been saved
|
||||||
|
function isSaved(sess) {
|
||||||
|
return originalId === sess.id && savedHash === hash(sess);
|
||||||
|
}
|
||||||
|
|
||||||
|
// determine if session should be destroyed
|
||||||
|
function shouldDestroy(req) {
|
||||||
|
return req.sessionID && unsetDestroy && req.session == null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// determine if session should be saved to store
|
||||||
|
function shouldSave(req) {
|
||||||
|
// cannot set cookie without a session ID
|
||||||
|
if (typeof req.sessionID !== 'string') {
|
||||||
|
debug('session ignored because of bogus req.sessionID %o', req.sessionID);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return !saveUninitializedSession && !savedHash && cookieId !== req.sessionID
|
||||||
|
? isModified(req.session)
|
||||||
|
: !isSaved(req.session)
|
||||||
|
}
|
||||||
|
|
||||||
|
// determine if session should be touched
|
||||||
|
function shouldTouch(req) {
|
||||||
|
// cannot set cookie without a session ID
|
||||||
|
if (typeof req.sessionID !== 'string') {
|
||||||
|
debug('session ignored because of bogus req.sessionID %o', req.sessionID);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return cookieId === req.sessionID && !shouldSave(req);
|
||||||
|
}
|
||||||
|
|
||||||
|
// determine if cookie should be set on response
|
||||||
|
function shouldSetCookie(req) {
|
||||||
|
// cannot set cookie without a session ID
|
||||||
|
if (typeof req.sessionID !== 'string') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return cookieId !== req.sessionID
|
||||||
|
? saveUninitializedSession || isModified(req.session)
|
||||||
|
: rollingSessions || req.session.cookie.expires != null && isModified(req.session);
|
||||||
|
}
|
||||||
|
|
||||||
|
// generate a session if the browser doesn't send a sessionID
|
||||||
|
if (!req.sessionID) {
|
||||||
|
debug('no SID sent, generating session');
|
||||||
|
generate();
|
||||||
|
next();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// generate the session object
|
||||||
|
debug('fetching %s', req.sessionID);
|
||||||
|
store.get(req.sessionID, function(err, sess){
|
||||||
|
// error handling
|
||||||
|
if (err && err.code !== 'ENOENT') {
|
||||||
|
debug('error %j', err);
|
||||||
|
next(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (err || !sess) {
|
||||||
|
debug('no session found')
|
||||||
|
generate()
|
||||||
|
} else {
|
||||||
|
debug('session found')
|
||||||
|
inflate(req, sess)
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
next(e)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
next()
|
||||||
|
});
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate a session ID for a new session.
|
||||||
|
*
|
||||||
|
* @return {String}
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
function generateSessionId(sess) {
|
||||||
|
return uid(24);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the session ID cookie from request.
|
||||||
|
*
|
||||||
|
* @return {string}
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
function getcookie(req, name, secrets) {
|
||||||
|
var header = req.headers.cookie;
|
||||||
|
var raw;
|
||||||
|
var val;
|
||||||
|
|
||||||
|
// read from cookie header
|
||||||
|
if (header) {
|
||||||
|
var cookies = cookie.parse(header);
|
||||||
|
|
||||||
|
raw = cookies[name];
|
||||||
|
|
||||||
|
if (raw) {
|
||||||
|
if (raw.substr(0, 2) === 's:') {
|
||||||
|
val = unsigncookie(raw.slice(2), secrets);
|
||||||
|
|
||||||
|
if (val === false) {
|
||||||
|
debug('cookie signature invalid');
|
||||||
|
val = undefined;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
debug('cookie unsigned')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// back-compat read from cookieParser() signedCookies data
|
||||||
|
if (!val && req.signedCookies) {
|
||||||
|
val = req.signedCookies[name];
|
||||||
|
|
||||||
|
if (val) {
|
||||||
|
deprecate('cookie should be available in req.headers.cookie');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// back-compat read from cookieParser() cookies data
|
||||||
|
if (!val && req.cookies) {
|
||||||
|
raw = req.cookies[name];
|
||||||
|
|
||||||
|
if (raw) {
|
||||||
|
if (raw.substr(0, 2) === 's:') {
|
||||||
|
val = unsigncookie(raw.slice(2), secrets);
|
||||||
|
|
||||||
|
if (val) {
|
||||||
|
deprecate('cookie should be available in req.headers.cookie');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (val === false) {
|
||||||
|
debug('cookie signature invalid');
|
||||||
|
val = undefined;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
debug('cookie unsigned')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hash the given `sess` object omitting changes to `.cookie`.
|
||||||
|
*
|
||||||
|
* @param {Object} sess
|
||||||
|
* @return {String}
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
function hash(sess) {
|
||||||
|
// serialize
|
||||||
|
var str = JSON.stringify(sess, function (key, val) {
|
||||||
|
// ignore sess.cookie property
|
||||||
|
if (this === sess && key === 'cookie') {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
return val
|
||||||
|
})
|
||||||
|
|
||||||
|
// hash
|
||||||
|
return crypto
|
||||||
|
.createHash('sha1')
|
||||||
|
.update(str, 'utf8')
|
||||||
|
.digest('hex')
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine if request is secure.
|
||||||
|
*
|
||||||
|
* @param {Object} req
|
||||||
|
* @param {Boolean} [trustProxy]
|
||||||
|
* @return {Boolean}
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
function issecure(req, trustProxy) {
|
||||||
|
// socket is https server
|
||||||
|
if (req.connection && req.connection.encrypted) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// do not trust proxy
|
||||||
|
if (trustProxy === false) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// no explicit trust; try req.secure from express
|
||||||
|
if (trustProxy !== true) {
|
||||||
|
return req.secure === true
|
||||||
|
}
|
||||||
|
|
||||||
|
// read the proto from x-forwarded-proto header
|
||||||
|
var header = req.headers['x-forwarded-proto'] || '';
|
||||||
|
var index = header.indexOf(',');
|
||||||
|
var proto = index !== -1
|
||||||
|
? header.substr(0, index).toLowerCase().trim()
|
||||||
|
: header.toLowerCase().trim()
|
||||||
|
|
||||||
|
return proto === 'https';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set cookie on response.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
function setcookie(res, name, val, secret, options) {
|
||||||
|
var signed = 's:' + signature.sign(val, secret);
|
||||||
|
var data = cookie.serialize(name, signed, options);
|
||||||
|
|
||||||
|
debug('set-cookie %s', data);
|
||||||
|
|
||||||
|
var prev = res.getHeader('Set-Cookie') || []
|
||||||
|
var header = Array.isArray(prev) ? prev.concat(data) : [prev, data];
|
||||||
|
|
||||||
|
res.setHeader('Set-Cookie', header)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verify and decode the given `val` with `secrets`.
|
||||||
|
*
|
||||||
|
* @param {String} val
|
||||||
|
* @param {Array} secrets
|
||||||
|
* @returns {String|Boolean}
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
function unsigncookie(val, secrets) {
|
||||||
|
for (var i = 0; i < secrets.length; i++) {
|
||||||
|
var result = signature.unsign(val, secrets[i]);
|
||||||
|
|
||||||
|
if (result !== false) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
134
srcs/requirements/nestjs/api_back/node_modules/express-session/node_modules/cookie/HISTORY.md
generated
vendored
Normal file
134
srcs/requirements/nestjs/api_back/node_modules/express-session/node_modules/cookie/HISTORY.md
generated
vendored
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
0.4.2 / 2022-02-02
|
||||||
|
==================
|
||||||
|
|
||||||
|
* pref: read value only when assigning in parse
|
||||||
|
* pref: remove unnecessary regexp in parse
|
||||||
|
|
||||||
|
0.4.1 / 2020-04-21
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix `maxAge` option to reject invalid values
|
||||||
|
|
||||||
|
0.4.0 / 2019-05-15
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Add `SameSite=None` support
|
||||||
|
|
||||||
|
0.3.1 / 2016-05-26
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix `sameSite: true` to work with draft-7 clients
|
||||||
|
- `true` now sends `SameSite=Strict` instead of `SameSite`
|
||||||
|
|
||||||
|
0.3.0 / 2016-05-26
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Add `sameSite` option
|
||||||
|
- Replaces `firstPartyOnly` option, never implemented by browsers
|
||||||
|
* Improve error message when `encode` is not a function
|
||||||
|
* Improve error message when `expires` is not a `Date`
|
||||||
|
|
||||||
|
0.2.4 / 2016-05-20
|
||||||
|
==================
|
||||||
|
|
||||||
|
* perf: enable strict mode
|
||||||
|
* perf: use for loop in parse
|
||||||
|
* perf: use string concatination for serialization
|
||||||
|
|
||||||
|
0.2.3 / 2015-10-25
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix cookie `Max-Age` to never be a floating point number
|
||||||
|
|
||||||
|
0.2.2 / 2015-09-17
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix regression when setting empty cookie value
|
||||||
|
- Ease the new restriction, which is just basic header-level validation
|
||||||
|
* Fix typo in invalid value errors
|
||||||
|
|
||||||
|
0.2.1 / 2015-09-17
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Throw on invalid values provided to `serialize`
|
||||||
|
- Ensures the resulting string is a valid HTTP header value
|
||||||
|
|
||||||
|
0.2.0 / 2015-08-13
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Add `firstPartyOnly` option
|
||||||
|
* Throw better error for invalid argument to parse
|
||||||
|
* perf: hoist regular expression
|
||||||
|
|
||||||
|
0.1.5 / 2015-09-17
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix regression when setting empty cookie value
|
||||||
|
- Ease the new restriction, which is just basic header-level validation
|
||||||
|
* Fix typo in invalid value errors
|
||||||
|
|
||||||
|
0.1.4 / 2015-09-17
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Throw better error for invalid argument to parse
|
||||||
|
* Throw on invalid values provided to `serialize`
|
||||||
|
- Ensures the resulting string is a valid HTTP header value
|
||||||
|
|
||||||
|
0.1.3 / 2015-05-19
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Reduce the scope of try-catch deopt
|
||||||
|
* Remove argument reassignments
|
||||||
|
|
||||||
|
0.1.2 / 2014-04-16
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Remove unnecessary files from npm package
|
||||||
|
|
||||||
|
0.1.1 / 2014-02-23
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix bad parse when cookie value contained a comma
|
||||||
|
* Fix support for `maxAge` of `0`
|
||||||
|
|
||||||
|
0.1.0 / 2013-05-01
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Add `decode` option
|
||||||
|
* Add `encode` option
|
||||||
|
|
||||||
|
0.0.6 / 2013-04-08
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Ignore cookie parts missing `=`
|
||||||
|
|
||||||
|
0.0.5 / 2012-10-29
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Return raw cookie value if value unescape errors
|
||||||
|
|
||||||
|
0.0.4 / 2012-06-21
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Use encode/decodeURIComponent for cookie encoding/decoding
|
||||||
|
- Improve server/client interoperability
|
||||||
|
|
||||||
|
0.0.3 / 2012-06-06
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Only escape special characters per the cookie RFC
|
||||||
|
|
||||||
|
0.0.2 / 2012-06-01
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix `maxAge` option to not throw error
|
||||||
|
|
||||||
|
0.0.1 / 2012-05-28
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Add more tests
|
||||||
|
|
||||||
|
0.0.0 / 2012-05-28
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Initial release
|
||||||
24
srcs/requirements/nestjs/api_back/node_modules/express-session/node_modules/cookie/LICENSE
generated
vendored
Normal file
24
srcs/requirements/nestjs/api_back/node_modules/express-session/node_modules/cookie/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
(The MIT License)
|
||||||
|
|
||||||
|
Copyright (c) 2012-2014 Roman Shtylman <shtylman@gmail.com>
|
||||||
|
Copyright (c) 2015 Douglas Christopher Wilson <doug@somethingdoug.com>
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
'Software'), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
286
srcs/requirements/nestjs/api_back/node_modules/express-session/node_modules/cookie/README.md
generated
vendored
Normal file
286
srcs/requirements/nestjs/api_back/node_modules/express-session/node_modules/cookie/README.md
generated
vendored
Normal file
@@ -0,0 +1,286 @@
|
|||||||
|
# cookie
|
||||||
|
|
||||||
|
[![NPM Version][npm-version-image]][npm-url]
|
||||||
|
[![NPM Downloads][npm-downloads-image]][npm-url]
|
||||||
|
[![Node.js Version][node-version-image]][node-version-url]
|
||||||
|
[![Build Status][github-actions-ci-image]][github-actions-ci-url]
|
||||||
|
[![Test Coverage][coveralls-image]][coveralls-url]
|
||||||
|
|
||||||
|
Basic HTTP cookie parser and serializer for HTTP servers.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
This is a [Node.js](https://nodejs.org/en/) module available through the
|
||||||
|
[npm registry](https://www.npmjs.com/). Installation is done using the
|
||||||
|
[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ npm install cookie
|
||||||
|
```
|
||||||
|
|
||||||
|
## API
|
||||||
|
|
||||||
|
```js
|
||||||
|
var cookie = require('cookie');
|
||||||
|
```
|
||||||
|
|
||||||
|
### cookie.parse(str, options)
|
||||||
|
|
||||||
|
Parse an HTTP `Cookie` header string and returning an object of all cookie name-value pairs.
|
||||||
|
The `str` argument is the string representing a `Cookie` header value and `options` is an
|
||||||
|
optional object containing additional parsing options.
|
||||||
|
|
||||||
|
```js
|
||||||
|
var cookies = cookie.parse('foo=bar; equation=E%3Dmc%5E2');
|
||||||
|
// { foo: 'bar', equation: 'E=mc^2' }
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Options
|
||||||
|
|
||||||
|
`cookie.parse` accepts these properties in the options object.
|
||||||
|
|
||||||
|
##### decode
|
||||||
|
|
||||||
|
Specifies a function that will be used to decode a cookie's value. Since the value of a cookie
|
||||||
|
has a limited character set (and must be a simple string), this function can be used to decode
|
||||||
|
a previously-encoded cookie value into a JavaScript string or other object.
|
||||||
|
|
||||||
|
The default function is the global `decodeURIComponent`, which will decode any URL-encoded
|
||||||
|
sequences into their byte representations.
|
||||||
|
|
||||||
|
**note** if an error is thrown from this function, the original, non-decoded cookie value will
|
||||||
|
be returned as the cookie's value.
|
||||||
|
|
||||||
|
### cookie.serialize(name, value, options)
|
||||||
|
|
||||||
|
Serialize a cookie name-value pair into a `Set-Cookie` header string. The `name` argument is the
|
||||||
|
name for the cookie, the `value` argument is the value to set the cookie to, and the `options`
|
||||||
|
argument is an optional object containing additional serialization options.
|
||||||
|
|
||||||
|
```js
|
||||||
|
var setCookie = cookie.serialize('foo', 'bar');
|
||||||
|
// foo=bar
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Options
|
||||||
|
|
||||||
|
`cookie.serialize` accepts these properties in the options object.
|
||||||
|
|
||||||
|
##### domain
|
||||||
|
|
||||||
|
Specifies the value for the [`Domain` `Set-Cookie` attribute][rfc-6265-5.2.3]. By default, no
|
||||||
|
domain is set, and most clients will consider the cookie to apply to only the current domain.
|
||||||
|
|
||||||
|
##### encode
|
||||||
|
|
||||||
|
Specifies a function that will be used to encode a cookie's value. Since value of a cookie
|
||||||
|
has a limited character set (and must be a simple string), this function can be used to encode
|
||||||
|
a value into a string suited for a cookie's value.
|
||||||
|
|
||||||
|
The default function is the global `encodeURIComponent`, which will encode a JavaScript string
|
||||||
|
into UTF-8 byte sequences and then URL-encode any that fall outside of the cookie range.
|
||||||
|
|
||||||
|
##### expires
|
||||||
|
|
||||||
|
Specifies the `Date` object to be the value for the [`Expires` `Set-Cookie` attribute][rfc-6265-5.2.1].
|
||||||
|
By default, no expiration is set, and most clients will consider this a "non-persistent cookie" and
|
||||||
|
will delete it on a condition like exiting a web browser application.
|
||||||
|
|
||||||
|
**note** the [cookie storage model specification][rfc-6265-5.3] states that if both `expires` and
|
||||||
|
`maxAge` are set, then `maxAge` takes precedence, but it is possible not all clients by obey this,
|
||||||
|
so if both are set, they should point to the same date and time.
|
||||||
|
|
||||||
|
##### httpOnly
|
||||||
|
|
||||||
|
Specifies the `boolean` value for the [`HttpOnly` `Set-Cookie` attribute][rfc-6265-5.2.6]. When truthy,
|
||||||
|
the `HttpOnly` attribute is set, otherwise it is not. By default, the `HttpOnly` attribute is not set.
|
||||||
|
|
||||||
|
**note** be careful when setting this to `true`, as compliant clients will not allow client-side
|
||||||
|
JavaScript to see the cookie in `document.cookie`.
|
||||||
|
|
||||||
|
##### maxAge
|
||||||
|
|
||||||
|
Specifies the `number` (in seconds) to be the value for the [`Max-Age` `Set-Cookie` attribute][rfc-6265-5.2.2].
|
||||||
|
The given number will be converted to an integer by rounding down. By default, no maximum age is set.
|
||||||
|
|
||||||
|
**note** the [cookie storage model specification][rfc-6265-5.3] states that if both `expires` and
|
||||||
|
`maxAge` are set, then `maxAge` takes precedence, but it is possible not all clients by obey this,
|
||||||
|
so if both are set, they should point to the same date and time.
|
||||||
|
|
||||||
|
##### path
|
||||||
|
|
||||||
|
Specifies the value for the [`Path` `Set-Cookie` attribute][rfc-6265-5.2.4]. By default, the path
|
||||||
|
is considered the ["default path"][rfc-6265-5.1.4].
|
||||||
|
|
||||||
|
##### sameSite
|
||||||
|
|
||||||
|
Specifies the `boolean` or `string` to be the value for the [`SameSite` `Set-Cookie` attribute][rfc-6265bis-03-4.1.2.7].
|
||||||
|
|
||||||
|
- `true` will set the `SameSite` attribute to `Strict` for strict same site enforcement.
|
||||||
|
- `false` will not set the `SameSite` attribute.
|
||||||
|
- `'lax'` will set the `SameSite` attribute to `Lax` for lax same site enforcement.
|
||||||
|
- `'none'` will set the `SameSite` attribute to `None` for an explicit cross-site cookie.
|
||||||
|
- `'strict'` will set the `SameSite` attribute to `Strict` for strict same site enforcement.
|
||||||
|
|
||||||
|
More information about the different enforcement levels can be found in
|
||||||
|
[the specification][rfc-6265bis-03-4.1.2.7].
|
||||||
|
|
||||||
|
**note** This is an attribute that has not yet been fully standardized, and may change in the future.
|
||||||
|
This also means many clients may ignore this attribute until they understand it.
|
||||||
|
|
||||||
|
##### secure
|
||||||
|
|
||||||
|
Specifies the `boolean` value for the [`Secure` `Set-Cookie` attribute][rfc-6265-5.2.5]. When truthy,
|
||||||
|
the `Secure` attribute is set, otherwise it is not. By default, the `Secure` attribute is not set.
|
||||||
|
|
||||||
|
**note** be careful when setting this to `true`, as compliant clients will not send the cookie back to
|
||||||
|
the server in the future if the browser does not have an HTTPS connection.
|
||||||
|
|
||||||
|
## Example
|
||||||
|
|
||||||
|
The following example uses this module in conjunction with the Node.js core HTTP server
|
||||||
|
to prompt a user for their name and display it back on future visits.
|
||||||
|
|
||||||
|
```js
|
||||||
|
var cookie = require('cookie');
|
||||||
|
var escapeHtml = require('escape-html');
|
||||||
|
var http = require('http');
|
||||||
|
var url = require('url');
|
||||||
|
|
||||||
|
function onRequest(req, res) {
|
||||||
|
// Parse the query string
|
||||||
|
var query = url.parse(req.url, true, true).query;
|
||||||
|
|
||||||
|
if (query && query.name) {
|
||||||
|
// Set a new cookie with the name
|
||||||
|
res.setHeader('Set-Cookie', cookie.serialize('name', String(query.name), {
|
||||||
|
httpOnly: true,
|
||||||
|
maxAge: 60 * 60 * 24 * 7 // 1 week
|
||||||
|
}));
|
||||||
|
|
||||||
|
// Redirect back after setting cookie
|
||||||
|
res.statusCode = 302;
|
||||||
|
res.setHeader('Location', req.headers.referer || '/');
|
||||||
|
res.end();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parse the cookies on the request
|
||||||
|
var cookies = cookie.parse(req.headers.cookie || '');
|
||||||
|
|
||||||
|
// Get the visitor name set in the cookie
|
||||||
|
var name = cookies.name;
|
||||||
|
|
||||||
|
res.setHeader('Content-Type', 'text/html; charset=UTF-8');
|
||||||
|
|
||||||
|
if (name) {
|
||||||
|
res.write('<p>Welcome back, <b>' + escapeHtml(name) + '</b>!</p>');
|
||||||
|
} else {
|
||||||
|
res.write('<p>Hello, new visitor!</p>');
|
||||||
|
}
|
||||||
|
|
||||||
|
res.write('<form method="GET">');
|
||||||
|
res.write('<input placeholder="enter your name" name="name"> <input type="submit" value="Set Name">');
|
||||||
|
res.end('</form>');
|
||||||
|
}
|
||||||
|
|
||||||
|
http.createServer(onRequest).listen(3000);
|
||||||
|
```
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ npm test
|
||||||
|
```
|
||||||
|
|
||||||
|
## Benchmark
|
||||||
|
|
||||||
|
```
|
||||||
|
$ npm run bench
|
||||||
|
|
||||||
|
> cookie@0.4.1 bench
|
||||||
|
> node benchmark/index.js
|
||||||
|
|
||||||
|
node@16.13.1
|
||||||
|
v8@9.4.146.24-node.14
|
||||||
|
uv@1.42.0
|
||||||
|
zlib@1.2.11
|
||||||
|
brotli@1.0.9
|
||||||
|
ares@1.18.1
|
||||||
|
modules@93
|
||||||
|
nghttp2@1.45.1
|
||||||
|
napi@8
|
||||||
|
llhttp@6.0.4
|
||||||
|
openssl@1.1.1l+quic
|
||||||
|
cldr@39.0
|
||||||
|
icu@69.1
|
||||||
|
tz@2021a
|
||||||
|
unicode@13.0
|
||||||
|
ngtcp2@0.1.0-DEV
|
||||||
|
nghttp3@0.1.0-DEV
|
||||||
|
|
||||||
|
> node benchmark/parse-top.js
|
||||||
|
|
||||||
|
cookie.parse - top sites
|
||||||
|
|
||||||
|
15 tests completed.
|
||||||
|
|
||||||
|
parse accounts.google.com x 504,358 ops/sec ±6.55% (171 runs sampled)
|
||||||
|
parse apple.com x 1,369,991 ops/sec ±0.84% (189 runs sampled)
|
||||||
|
parse cloudflare.com x 360,669 ops/sec ±3.75% (182 runs sampled)
|
||||||
|
parse docs.google.com x 521,496 ops/sec ±4.90% (180 runs sampled)
|
||||||
|
parse drive.google.com x 553,514 ops/sec ±0.59% (189 runs sampled)
|
||||||
|
parse en.wikipedia.org x 286,052 ops/sec ±0.62% (188 runs sampled)
|
||||||
|
parse linkedin.com x 178,817 ops/sec ±0.61% (192 runs sampled)
|
||||||
|
parse maps.google.com x 284,585 ops/sec ±0.68% (188 runs sampled)
|
||||||
|
parse microsoft.com x 161,230 ops/sec ±0.56% (192 runs sampled)
|
||||||
|
parse play.google.com x 352,144 ops/sec ±1.01% (181 runs sampled)
|
||||||
|
parse plus.google.com x 275,204 ops/sec ±7.78% (156 runs sampled)
|
||||||
|
parse support.google.com x 339,493 ops/sec ±1.02% (191 runs sampled)
|
||||||
|
parse www.google.com x 286,110 ops/sec ±0.90% (191 runs sampled)
|
||||||
|
parse youtu.be x 548,557 ops/sec ±0.60% (184 runs sampled)
|
||||||
|
parse youtube.com x 545,293 ops/sec ±0.65% (191 runs sampled)
|
||||||
|
|
||||||
|
> node benchmark/parse.js
|
||||||
|
|
||||||
|
cookie.parse - generic
|
||||||
|
|
||||||
|
6 tests completed.
|
||||||
|
|
||||||
|
simple x 1,266,646 ops/sec ±0.65% (191 runs sampled)
|
||||||
|
decode x 838,413 ops/sec ±0.60% (191 runs sampled)
|
||||||
|
unquote x 877,820 ops/sec ±0.72% (189 runs sampled)
|
||||||
|
duplicates x 516,680 ops/sec ±0.61% (191 runs sampled)
|
||||||
|
10 cookies x 156,874 ops/sec ±0.52% (189 runs sampled)
|
||||||
|
100 cookies x 14,663 ops/sec ±0.53% (191 runs sampled)
|
||||||
|
```
|
||||||
|
|
||||||
|
## References
|
||||||
|
|
||||||
|
- [RFC 6265: HTTP State Management Mechanism][rfc-6265]
|
||||||
|
- [Same-site Cookies][rfc-6265bis-03-4.1.2.7]
|
||||||
|
|
||||||
|
[rfc-6265bis-03-4.1.2.7]: https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03#section-4.1.2.7
|
||||||
|
[rfc-6265]: https://tools.ietf.org/html/rfc6265
|
||||||
|
[rfc-6265-5.1.4]: https://tools.ietf.org/html/rfc6265#section-5.1.4
|
||||||
|
[rfc-6265-5.2.1]: https://tools.ietf.org/html/rfc6265#section-5.2.1
|
||||||
|
[rfc-6265-5.2.2]: https://tools.ietf.org/html/rfc6265#section-5.2.2
|
||||||
|
[rfc-6265-5.2.3]: https://tools.ietf.org/html/rfc6265#section-5.2.3
|
||||||
|
[rfc-6265-5.2.4]: https://tools.ietf.org/html/rfc6265#section-5.2.4
|
||||||
|
[rfc-6265-5.2.5]: https://tools.ietf.org/html/rfc6265#section-5.2.5
|
||||||
|
[rfc-6265-5.2.6]: https://tools.ietf.org/html/rfc6265#section-5.2.6
|
||||||
|
[rfc-6265-5.3]: https://tools.ietf.org/html/rfc6265#section-5.3
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
[MIT](LICENSE)
|
||||||
|
|
||||||
|
[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/cookie/master
|
||||||
|
[coveralls-url]: https://coveralls.io/r/jshttp/cookie?branch=master
|
||||||
|
[github-actions-ci-image]: https://img.shields.io/github/workflow/status/jshttp/cookie/ci/master?label=ci
|
||||||
|
[github-actions-ci-url]: https://github.com/jshttp/cookie/actions/workflows/ci.yml
|
||||||
|
[node-version-image]: https://badgen.net/npm/node/cookie
|
||||||
|
[node-version-url]: https://nodejs.org/en/download
|
||||||
|
[npm-downloads-image]: https://badgen.net/npm/dm/cookie
|
||||||
|
[npm-url]: https://npmjs.org/package/cookie
|
||||||
|
[npm-version-image]: https://badgen.net/npm/v/cookie
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user