@spinajs/http 1.0.12 → 1.2.103
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -0
- package/lib/config/http.js +17 -17
- package/lib/config/http.js.map +1 -1
- package/lib/controllers.d.ts +6 -4
- package/lib/controllers.js +53 -183
- package/lib/controllers.js.map +1 -1
- package/lib/decorators.d.ts +49 -24
- package/lib/decorators.js +97 -40
- package/lib/decorators.js.map +1 -1
- package/lib/exceptions.d.ts +0 -0
- package/lib/exceptions.js +1 -0
- package/lib/exceptions.js.map +1 -0
- package/lib/http.d.ts +0 -0
- package/lib/http.js +1 -0
- package/lib/http.js.map +1 -0
- package/lib/hydrators/datetime.d.ts +8 -0
- package/lib/hydrators/datetime.js +63 -0
- package/lib/hydrators/datetime.js.map +1 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +8 -3
- package/lib/index.js.map +1 -1
- package/lib/interfaces.d.ts +46 -16
- package/lib/interfaces.js +31 -12
- package/lib/interfaces.js.map +1 -1
- package/lib/response-methods/badRequest.d.ts +3 -2
- package/lib/response-methods/badRequest.js +1 -1
- package/lib/response-methods/badRequest.js.map +1 -1
- package/lib/response-methods/conflict.d.ts +3 -2
- package/lib/response-methods/conflict.js +1 -1
- package/lib/response-methods/conflict.js.map +1 -1
- package/lib/response-methods/cookieResponse.d.ts +3 -2
- package/lib/response-methods/cookieResponse.js +9 -5
- package/lib/response-methods/cookieResponse.js.map +1 -1
- package/lib/response-methods/created.d.ts +3 -2
- package/lib/response-methods/created.js +1 -1
- package/lib/response-methods/created.js.map +1 -1
- package/lib/response-methods/file.d.ts +16 -2
- package/lib/response-methods/file.js +67 -5
- package/lib/response-methods/file.js.map +1 -1
- package/lib/response-methods/forbidden.d.ts +3 -2
- package/lib/response-methods/forbidden.js +1 -1
- package/lib/response-methods/forbidden.js.map +1 -1
- package/lib/response-methods/index.js +6 -2
- package/lib/response-methods/index.js.map +1 -1
- package/lib/response-methods/noContent.d.ts +3 -2
- package/lib/response-methods/noContent.js +1 -1
- package/lib/response-methods/noContent.js.map +1 -1
- package/lib/response-methods/notFound.d.ts +3 -2
- package/lib/response-methods/notFound.js +1 -1
- package/lib/response-methods/notFound.js.map +1 -1
- package/lib/response-methods/ok.d.ts +3 -2
- package/lib/response-methods/ok.js +1 -1
- package/lib/response-methods/ok.js.map +1 -1
- package/lib/response-methods/pug.d.ts +3 -2
- package/lib/response-methods/pug.js +1 -1
- package/lib/response-methods/pug.js.map +1 -1
- package/lib/response-methods/redirect.d.ts +2 -2
- package/lib/response-methods/redirect.js +2 -4
- package/lib/response-methods/redirect.js.map +1 -1
- package/lib/response-methods/serverError.d.ts +3 -2
- package/lib/response-methods/serverError.js +1 -1
- package/lib/response-methods/serverError.js.map +1 -1
- package/lib/response-methods/unauthorized.d.ts +3 -2
- package/lib/response-methods/unauthorized.js +1 -1
- package/lib/response-methods/unauthorized.js.map +1 -1
- package/lib/responses.d.ts +1 -1
- package/lib/responses.js +28 -11
- package/lib/responses.js.map +1 -1
- package/lib/route-args/ArgAsRequest.d.ts +11 -0
- package/lib/{transformers/PureFormatter.js → route-args/ArgAsRequest.js} +13 -12
- package/lib/route-args/ArgAsRequest.js.map +1 -0
- package/lib/route-args/ArgAsResponse.d.ts +10 -0
- package/lib/{dto/order-dto.js → route-args/ArgAsResponse.js} +16 -18
- package/lib/route-args/ArgAsResponse.js.map +1 -0
- package/lib/route-args/ArgHydrator.d.ts +3 -0
- package/lib/route-args/ArgHydrator.js +7 -0
- package/lib/route-args/ArgHydrator.js.map +1 -0
- package/lib/route-args/FromBody.d.ts +10 -0
- package/lib/route-args/FromBody.js +44 -0
- package/lib/route-args/FromBody.js.map +1 -0
- package/lib/route-args/FromCoockie.d.ts +13 -0
- package/lib/route-args/FromCoockie.js +71 -0
- package/lib/route-args/FromCoockie.js.map +1 -0
- package/lib/route-args/FromCookie.d.ts +13 -0
- package/lib/route-args/FromCookie.js +74 -0
- package/lib/route-args/FromCookie.js.map +1 -0
- package/lib/route-args/FromDi.d.ts +14 -0
- package/lib/route-args/FromDi.js +36 -0
- package/lib/route-args/FromDi.js.map +1 -0
- package/lib/route-args/FromForm.d.ts +82 -0
- package/lib/route-args/FromForm.js +259 -0
- package/lib/route-args/FromForm.js.map +1 -0
- package/lib/route-args/FromHeaderArg.d.ts +12 -0
- package/lib/route-args/FromHeaderArg.js +30 -0
- package/lib/route-args/FromHeaderArg.js.map +1 -0
- package/lib/route-args/FromParams.d.ts +10 -0
- package/lib/route-args/FromParams.js +25 -0
- package/lib/route-args/FromParams.js.map +1 -0
- package/lib/route-args/FromQuery.d.ts +10 -0
- package/lib/{dto/limit-dto.js → route-args/FromQuery.js} +16 -18
- package/lib/route-args/FromQuery.js.map +1 -0
- package/lib/route-args/RouteArgs.d.ts +19 -0
- package/lib/route-args/RouteArgs.js +64 -0
- package/lib/route-args/RouteArgs.js.map +1 -0
- package/lib/route-args/index.d.ts +11 -0
- package/lib/route-args/index.js +28 -0
- package/lib/route-args/index.js.map +1 -0
- package/lib/schemas/RouteArgsSchemas.d.ts +15 -0
- package/lib/schemas/RouteArgsSchemas.js +19 -0
- package/lib/schemas/RouteArgsSchemas.js.map +1 -0
- package/lib/server.d.ts +3 -2
- package/lib/server.js +30 -14
- package/lib/server.js.map +1 -1
- package/lib/transformers/PureTransformer.d.ts +1 -1
- package/lib/transformers/PureTransformer.js +2 -2
- package/lib/transformers/PureTransformer.js.map +1 -1
- package/package.json +27 -54
- package/lib/dto/index.d.ts +0 -2
- package/lib/dto/index.js +0 -15
- package/lib/dto/index.js.map +0 -1
- package/lib/dto/limit-dto.d.ts +0 -32
- package/lib/dto/limit-dto.js.map +0 -1
- package/lib/dto/order-dto.d.ts +0 -32
- package/lib/dto/order-dto.js.map +0 -1
- package/lib/schemas.d.ts +0 -24
- package/lib/schemas.js +0 -96
- package/lib/schemas.js.map +0 -1
- package/lib/static/favicon.ico +0 -0
- package/lib/static/style.css +0 -15
- package/lib/transformers/PureFormatter.d.ts +0 -7
- package/lib/transformers/PureFormatter.js.map +0 -1
- package/lib/views/responses/badRequest.pug +0 -13
- package/lib/views/responses/conflict.pug +0 -13
- package/lib/views/responses/forbidden.pug +0 -13
- package/lib/views/responses/noContent.pug +0 -13
- package/lib/views/responses/notFound.pug +0 -13
- package/lib/views/responses/ok.pug +0 -12
- package/lib/views/responses/serverError.pug +0 -13
- package/lib/views/responses/unauthorized.pug +0 -13
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ROUTE_ARG_SCHEMA = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Default schema for common route parameters taken from url
|
|
6
|
+
*/
|
|
7
|
+
exports.ROUTE_ARG_SCHEMA = {
|
|
8
|
+
Number: {
|
|
9
|
+
type: 'number',
|
|
10
|
+
},
|
|
11
|
+
String: {
|
|
12
|
+
type: 'string',
|
|
13
|
+
maxLength: 512,
|
|
14
|
+
},
|
|
15
|
+
Boolean: {
|
|
16
|
+
type: 'boolean',
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=RouteArgsSchemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouteArgsSchemas.js","sourceRoot":"","sources":["../../src/schemas/RouteArgsSchemas.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,gBAAgB,GAAG;IAC9B,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;KACf;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,GAAG;KACf;IACD,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;KAChB;CACF,CAAC"}
|
package/lib/server.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { RequestHandler } from 'express';
|
|
|
7
7
|
import Express = require('express');
|
|
8
8
|
export declare class HttpServer extends AsyncModule {
|
|
9
9
|
protected Configuration: Configuration;
|
|
10
|
+
protected Container: IContainer;
|
|
10
11
|
/**
|
|
11
12
|
* Express app instance
|
|
12
13
|
*/
|
|
@@ -20,11 +21,11 @@ export declare class HttpServer extends AsyncModule {
|
|
|
20
21
|
*/
|
|
21
22
|
protected Log: Log;
|
|
22
23
|
constructor();
|
|
23
|
-
resolveAsync(
|
|
24
|
+
resolveAsync(): Promise<void>;
|
|
24
25
|
/**
|
|
25
26
|
* Starts http server & express
|
|
26
27
|
*/
|
|
27
|
-
start(): Promise<
|
|
28
|
+
start(): Promise<void>;
|
|
28
29
|
stop(): void;
|
|
29
30
|
/**
|
|
30
31
|
* Registers global middleware to express app
|
package/lib/server.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -20,7 +24,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
20
24
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
21
25
|
if (mod && mod.__esModule) return mod;
|
|
22
26
|
var result = {};
|
|
23
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
27
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
24
28
|
__setModuleDefault(result, mod);
|
|
25
29
|
return result;
|
|
26
30
|
};
|
|
@@ -38,29 +42,30 @@ const fs = __importStar(require("fs"));
|
|
|
38
42
|
const exceptions_1 = require("@spinajs/exceptions");
|
|
39
43
|
const response_methods_1 = require("./response-methods");
|
|
40
44
|
const Express = require("express");
|
|
45
|
+
const validation_1 = require("@spinajs/validation");
|
|
41
46
|
let HttpServer = class HttpServer extends di_1.AsyncModule {
|
|
42
47
|
constructor() {
|
|
43
48
|
super();
|
|
44
49
|
}
|
|
45
|
-
async resolveAsync(
|
|
50
|
+
async resolveAsync() {
|
|
46
51
|
this.Express = Express();
|
|
47
52
|
/**
|
|
48
53
|
* Register default middlewares from cfg
|
|
49
54
|
*/
|
|
50
|
-
this.Configuration.get('http.middlewares', []).forEach(m => {
|
|
55
|
+
this.Configuration.get('http.middlewares', []).forEach((m) => {
|
|
51
56
|
this.use(m);
|
|
52
57
|
});
|
|
53
58
|
/**
|
|
54
59
|
* Server static files
|
|
55
60
|
*/
|
|
56
|
-
this.Configuration.get('http.Static', []).forEach(s => {
|
|
61
|
+
this.Configuration.get('http.Static', []).forEach((s) => {
|
|
57
62
|
if (!fs.existsSync(s.Path)) {
|
|
58
63
|
this.Log.error(`static file path ${s.Path} not exists`);
|
|
59
64
|
return;
|
|
60
65
|
}
|
|
61
66
|
this.Log.info(`Serving static content from: ${s.Path} at prefix: ${s.Route}`);
|
|
62
67
|
this.Express.use(s.Route, Express.static(s.Path));
|
|
63
|
-
|
|
68
|
+
this.Container.register(PureTransformer_1.PureDataTransformer).as(interfaces_1.DataTransformer);
|
|
64
69
|
});
|
|
65
70
|
}
|
|
66
71
|
/**
|
|
@@ -69,12 +74,17 @@ let HttpServer = class HttpServer extends di_1.AsyncModule {
|
|
|
69
74
|
start() {
|
|
70
75
|
// start http server & express
|
|
71
76
|
const port = this.Configuration.get('http.port', 1337);
|
|
72
|
-
return new Promise(res => {
|
|
77
|
+
return new Promise((res, rej) => {
|
|
73
78
|
this.handleResponse();
|
|
74
79
|
this.handleErrors();
|
|
75
80
|
this.Server = this.Express.listen(port, () => {
|
|
76
81
|
this.Log.info(`Http server started at port ${port}`);
|
|
77
82
|
res();
|
|
83
|
+
}).on('error', (err) => {
|
|
84
|
+
if (err.errno === 'EADDRINUSE') {
|
|
85
|
+
this.Log.error(`----- Port ${port} is busy -----`);
|
|
86
|
+
}
|
|
87
|
+
rej(err);
|
|
78
88
|
});
|
|
79
89
|
});
|
|
80
90
|
}
|
|
@@ -98,7 +108,7 @@ let HttpServer = class HttpServer extends di_1.AsyncModule {
|
|
|
98
108
|
handleResponse() {
|
|
99
109
|
const wrapper = (req, res, next) => {
|
|
100
110
|
if (!res.locals.response) {
|
|
101
|
-
next(new exceptions_1.ResourceNotFound(`
|
|
111
|
+
next(new exceptions_1.ResourceNotFound(`Resource not found ${req.method}:${req.originalUrl}`));
|
|
102
112
|
return;
|
|
103
113
|
}
|
|
104
114
|
res.locals.response.execute(req, res).then((callback) => {
|
|
@@ -122,7 +132,7 @@ let HttpServer = class HttpServer extends di_1.AsyncModule {
|
|
|
122
132
|
return next();
|
|
123
133
|
}
|
|
124
134
|
this.Log.error(`Route error: ${err}, stack: ${err.stack}`, err.parameter);
|
|
125
|
-
const error = Object.assign(Object.assign({}, err), { stack: {} });
|
|
135
|
+
const error = Object.assign(Object.assign({}, err), { message: err.message, stack: {} });
|
|
126
136
|
if (process.env.NODE_ENV === 'development') {
|
|
127
137
|
error.stack = err.stack ? err.stack : err.parameter && err.parameter.stack;
|
|
128
138
|
}
|
|
@@ -139,7 +149,7 @@ let HttpServer = class HttpServer extends di_1.AsyncModule {
|
|
|
139
149
|
break;
|
|
140
150
|
case exceptions_1.InvalidArgument:
|
|
141
151
|
case exceptions_1.BadRequest:
|
|
142
|
-
case
|
|
152
|
+
case validation_1.ValidationFailed:
|
|
143
153
|
case exceptions_1.JsonValidationFailed:
|
|
144
154
|
case exceptions_1.ExpectedResponseUnacceptable:
|
|
145
155
|
response = new response_methods_1.BadRequest({ error });
|
|
@@ -155,7 +165,9 @@ let HttpServer = class HttpServer extends di_1.AsyncModule {
|
|
|
155
165
|
break;
|
|
156
166
|
}
|
|
157
167
|
response.execute(req, res).then((callback) => {
|
|
158
|
-
callback
|
|
168
|
+
if (callback) {
|
|
169
|
+
callback(req, res);
|
|
170
|
+
}
|
|
159
171
|
});
|
|
160
172
|
};
|
|
161
173
|
Object.defineProperty(wrapper, 'name', {
|
|
@@ -166,15 +178,19 @@ let HttpServer = class HttpServer extends di_1.AsyncModule {
|
|
|
166
178
|
}
|
|
167
179
|
};
|
|
168
180
|
__decorate([
|
|
169
|
-
di_1.Autoinject(configuration_1.Configuration),
|
|
181
|
+
(0, di_1.Autoinject)(configuration_1.Configuration),
|
|
170
182
|
__metadata("design:type", configuration_1.Configuration)
|
|
171
183
|
], HttpServer.prototype, "Configuration", void 0);
|
|
172
184
|
__decorate([
|
|
173
|
-
|
|
185
|
+
(0, di_1.Autoinject)(di_1.Container),
|
|
174
186
|
__metadata("design:type", Object)
|
|
187
|
+
], HttpServer.prototype, "Container", void 0);
|
|
188
|
+
__decorate([
|
|
189
|
+
(0, log_1.Logger)('http'),
|
|
190
|
+
__metadata("design:type", log_1.Log)
|
|
175
191
|
], HttpServer.prototype, "Log", void 0);
|
|
176
192
|
HttpServer = __decorate([
|
|
177
|
-
di_1.Injectable(),
|
|
193
|
+
(0, di_1.Injectable)(),
|
|
178
194
|
__metadata("design:paramtypes", [])
|
|
179
195
|
], HttpServer);
|
|
180
196
|
exports.HttpServer = HttpServer;
|
package/lib/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,14 +14,14 @@ const di_1 = require("@spinajs/di");
|
|
|
14
14
|
*/
|
|
15
15
|
let PureDataTransformer = class PureDataTransformer extends interfaces_1.DataTransformer {
|
|
16
16
|
get Type() {
|
|
17
|
-
return
|
|
17
|
+
return 'pure';
|
|
18
18
|
}
|
|
19
19
|
transform(data, _request) {
|
|
20
20
|
return data;
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
23
|
PureDataTransformer = __decorate([
|
|
24
|
-
di_1.Singleton()
|
|
24
|
+
(0, di_1.Singleton)()
|
|
25
25
|
], PureDataTransformer);
|
|
26
26
|
exports.PureDataTransformer = PureDataTransformer;
|
|
27
27
|
//# sourceMappingURL=PureTransformer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PureTransformer.js","sourceRoot":"","sources":["../../src/transformers/PureTransformer.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8CAAgD;AAChD,oCAAwC;AAGxC;;GAEG;AAEH,IAAa,mBAAmB,GAAhC,MAAa,mBAAuB,SAAQ,
|
|
1
|
+
{"version":3,"file":"PureTransformer.js","sourceRoot":"","sources":["../../src/transformers/PureTransformer.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8CAAgD;AAChD,oCAAwC;AAGxC;;GAEG;AAEH,IAAa,mBAAmB,GAAhC,MAAa,mBAAuB,SAAQ,4BAAqB;IAC/D,IAAW,IAAI;QACb,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,SAAS,CAAC,IAAO,EAAE,QAAyB;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AARY,mBAAmB;IAD/B,IAAA,cAAS,GAAE;GACC,mBAAmB,CAQ/B;AARY,kDAAmB"}
|
package/package.json
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spinajs/http",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "framework
|
|
3
|
+
"version": "1.2.103",
|
|
4
|
+
"description": "framework HTTP module base on express.js",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"private": false,
|
|
7
7
|
"scripts": {
|
|
8
|
+
"build": "npm run clean && npm run compile",
|
|
9
|
+
"compile": "tsc -p tsconfig.build.json",
|
|
10
|
+
"clean": "",
|
|
8
11
|
"test": "ts-mocha -p tsconfig.json test/**/*.test.ts",
|
|
9
12
|
"coverage": "nyc npm run test",
|
|
10
13
|
"build-docs": "rimraf docs && typedoc --options typedoc.json src/",
|
|
11
|
-
"build": "tsc && cpx src/views/**/* lib/views && cpx src/static/**/* lib/static",
|
|
12
14
|
"prepare": "npm run build",
|
|
13
|
-
"format": "prettier --write \"src/**/*.ts\"
|
|
14
|
-
"lint": "
|
|
15
|
-
"prepublishOnly": "",
|
|
15
|
+
"format": "prettier --write \"src/**/*.ts\"",
|
|
16
|
+
"lint": "eslint -c .eslintrc.js --ext .ts src --fix",
|
|
17
|
+
"prepublishOnly": "npm test && npm run lint",
|
|
16
18
|
"preversion": "npm run lint",
|
|
17
19
|
"version": "npm run format && git add -A src",
|
|
18
20
|
"postversion": "git push && git push --tags"
|
|
@@ -20,73 +22,44 @@
|
|
|
20
22
|
"files": [
|
|
21
23
|
"lib/**/*"
|
|
22
24
|
],
|
|
25
|
+
"types": "lib",
|
|
23
26
|
"repository": {
|
|
24
27
|
"type": "git",
|
|
25
|
-
"url": "git+https://github.com/spinajs/
|
|
28
|
+
"url": "git+https://github.com/spinajs/main.git"
|
|
26
29
|
},
|
|
27
30
|
"keywords": [
|
|
28
|
-
"di",
|
|
29
|
-
"container",
|
|
30
31
|
"spinajs",
|
|
31
|
-
"
|
|
32
|
+
"http"
|
|
32
33
|
],
|
|
33
|
-
"author": "SpinaJS <spinajs@coderush.pl> (https://github.com/spinajs/
|
|
34
|
+
"author": "SpinaJS <spinajs@coderush.pl> (https://github.com/spinajs/main)",
|
|
34
35
|
"license": "MIT",
|
|
35
36
|
"bugs": {
|
|
36
|
-
"url": "https://github.com/spinajs/
|
|
37
|
+
"url": "https://github.com/spinajs/main/issues"
|
|
37
38
|
},
|
|
38
|
-
"homepage": "https://github.com/spinajs/
|
|
39
|
+
"homepage": "https://github.com/spinajs/main#readme",
|
|
39
40
|
"dependencies": {
|
|
40
|
-
"@spinajs/
|
|
41
|
-
"@spinajs/
|
|
42
|
-
"
|
|
43
|
-
"
|
|
41
|
+
"@spinajs/configuration": "^1.2.81",
|
|
42
|
+
"@spinajs/di": "^1.2.81",
|
|
43
|
+
"@spinajs/exceptions": "^1.2.81",
|
|
44
|
+
"@spinajs/internal-logger": "^1.2.81",
|
|
45
|
+
"@spinajs/log": "^1.2.103",
|
|
46
|
+
"@spinajs/reflection": "^1.2.103",
|
|
44
47
|
"compression": "^1.7.4",
|
|
45
48
|
"cookie-parser": "^1.4.5",
|
|
46
49
|
"cookie-signature": "^1.1.0",
|
|
47
50
|
"cors": "^2.8.5",
|
|
48
51
|
"express": "^4.17.1",
|
|
49
|
-
"
|
|
52
|
+
"fast-csv": "^4.3.6",
|
|
53
|
+
"formidable": "^2.0.1",
|
|
50
54
|
"glob": "^7.1.4",
|
|
51
55
|
"helmet": "^3.23.0",
|
|
52
56
|
"lodash": "^4.17.14",
|
|
57
|
+
"luxon": "^2.3.0",
|
|
53
58
|
"mime": "^2.4.6",
|
|
54
59
|
"pug": "^3.0.0",
|
|
55
|
-
"randomstring": "^1.1.5"
|
|
60
|
+
"randomstring": "^1.1.5",
|
|
61
|
+
"tempfile": "3.0.0",
|
|
62
|
+
"uuid": "^8.3.2"
|
|
56
63
|
},
|
|
57
|
-
"
|
|
58
|
-
"@types/bunyan": "^1.8.6",
|
|
59
|
-
"@types/chai": "^4.1.7",
|
|
60
|
-
"@types/chai-as-promised": "^7.1.0",
|
|
61
|
-
"@types/compression": "^1.7.0",
|
|
62
|
-
"@types/cookie-parser": "^1.4.2",
|
|
63
|
-
"@types/cookie-signature": "^1.0.3",
|
|
64
|
-
"@types/cors": "^2.8.6",
|
|
65
|
-
"@types/express": "^4.17.6",
|
|
66
|
-
"@types/formidable": "^1.0.31",
|
|
67
|
-
"@types/helmet": "^0.0.47",
|
|
68
|
-
"@types/lodash": "^4.14.136",
|
|
69
|
-
"@types/mocha": "^5.2.7",
|
|
70
|
-
"@types/pug": "^2.0.4",
|
|
71
|
-
"@types/randomstring": "^1.1.6",
|
|
72
|
-
"@types/sinon": "^7.0.13",
|
|
73
|
-
"chai": "^4.2.0",
|
|
74
|
-
"chai-as-promised": "^7.1.1",
|
|
75
|
-
"chai-dom": "^1.8.2",
|
|
76
|
-
"chai-http": "^4.3.0",
|
|
77
|
-
"cpx": "^1.5.0",
|
|
78
|
-
"mocha": "^6.1.4",
|
|
79
|
-
"nyc": "^14.1.1",
|
|
80
|
-
"prettier": "^1.18.2",
|
|
81
|
-
"sinon": "^7.3.2",
|
|
82
|
-
"ts-mocha": "^6.0.0",
|
|
83
|
-
"ts-node": "^8.3.0",
|
|
84
|
-
"tslint": "^5.20.1",
|
|
85
|
-
"tslint-circular-dependencies": "^0.1.0",
|
|
86
|
-
"tslint-config-prettier": "^1.18.0",
|
|
87
|
-
"tslint-config-standard": "^8.0.1",
|
|
88
|
-
"tslint-no-unused-expression-chai": "^0.1.4",
|
|
89
|
-
"typedoc": "^0.14.2",
|
|
90
|
-
"typescript": "^3.7.3"
|
|
91
|
-
}
|
|
64
|
+
"gitHead": "18a08cf4cd3e4d2c728d2d372e3a42ddde071be8"
|
|
92
65
|
}
|
package/lib/dto/index.d.ts
DELETED
package/lib/dto/index.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
|
|
11
|
-
};
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
__exportStar(require("./limit-dto"), exports);
|
|
14
|
-
__exportStar(require("./order-dto"), exports);
|
|
15
|
-
//# sourceMappingURL=index.js.map
|
package/lib/dto/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dto/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA4B;AAC5B,8CAA4B"}
|
package/lib/dto/limit-dto.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
export declare const LimitDtoSchema: {
|
|
2
|
-
$schema: string;
|
|
3
|
-
title: string;
|
|
4
|
-
type: string;
|
|
5
|
-
properties: ({
|
|
6
|
-
Page: {
|
|
7
|
-
type: string;
|
|
8
|
-
minimum: number;
|
|
9
|
-
};
|
|
10
|
-
PerPage?: undefined;
|
|
11
|
-
} | {
|
|
12
|
-
PerPage: {
|
|
13
|
-
type: string;
|
|
14
|
-
minimum: number;
|
|
15
|
-
};
|
|
16
|
-
Page?: undefined;
|
|
17
|
-
})[];
|
|
18
|
-
required: string[];
|
|
19
|
-
};
|
|
20
|
-
/**
|
|
21
|
-
* Limit dto for queries
|
|
22
|
-
*/
|
|
23
|
-
export declare class LimitDto {
|
|
24
|
-
/**
|
|
25
|
-
* Page to get
|
|
26
|
-
*/
|
|
27
|
-
Page: number;
|
|
28
|
-
/**
|
|
29
|
-
* How much to take. min is 1
|
|
30
|
-
*/
|
|
31
|
-
PerPage: number;
|
|
32
|
-
}
|
package/lib/dto/limit-dto.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"limit-dto.js","sourceRoot":"","sources":["../../src/dto/limit-dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8CAAuC;AAE1B,QAAA,cAAc,GAAG;IAC5B,OAAO,EAAE,yCAAyC;IAClD,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;IACnG,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF;;GAEG;AAEH,IAAa,QAAQ,GAArB,MAAa,QAAQ;CAUpB,CAAA;AAVY,QAAQ;IADpB,mBAAM,CAAC,sBAAc,CAAC;GACV,QAAQ,CAUpB;AAVY,4BAAQ"}
|
package/lib/dto/order-dto.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
export declare const OrderDtoSchema: {
|
|
2
|
-
$schema: string;
|
|
3
|
-
title: string;
|
|
4
|
-
type: string;
|
|
5
|
-
properties: ({
|
|
6
|
-
Column: {
|
|
7
|
-
type: string;
|
|
8
|
-
minLength: number;
|
|
9
|
-
};
|
|
10
|
-
Order?: undefined;
|
|
11
|
-
} | {
|
|
12
|
-
Order: {
|
|
13
|
-
type: string;
|
|
14
|
-
enum: string[];
|
|
15
|
-
};
|
|
16
|
-
Column?: undefined;
|
|
17
|
-
})[];
|
|
18
|
-
required: string[];
|
|
19
|
-
};
|
|
20
|
-
/**
|
|
21
|
-
* Order dto for queries
|
|
22
|
-
*/
|
|
23
|
-
export declare class OrderDto {
|
|
24
|
-
/**
|
|
25
|
-
* Column to sort
|
|
26
|
-
*/
|
|
27
|
-
Column: string;
|
|
28
|
-
/**
|
|
29
|
-
* Order - asc / desc
|
|
30
|
-
*/
|
|
31
|
-
Order: string;
|
|
32
|
-
}
|
package/lib/dto/order-dto.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"order-dto.js","sourceRoot":"","sources":["../../src/dto/order-dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8CAAuC;AAE1B,QAAA,cAAc,GAAG;IAC5B,OAAO,EAAE,yCAAyC;IAClD,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;IAC/G,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF;;GAEG;AAEH,IAAa,QAAQ,GAArB,MAAa,QAAQ;CAUpB,CAAA;AAVY,QAAQ;IADpB,mBAAM,CAAC,sBAAc,CAAC;GACV,QAAQ,CAUpB;AAVY,4BAAQ"}
|
package/lib/schemas.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { AsyncModule, IContainer } from "@spinajs/di";
|
|
2
|
-
import * as AJV from "ajv";
|
|
3
|
-
import { Configuration } from "@spinajs/configuration";
|
|
4
|
-
import { Log } from "@spinajs/log";
|
|
5
|
-
export interface IValidatorResult {
|
|
6
|
-
valid: boolean;
|
|
7
|
-
errors?: AJV.ErrorObject[];
|
|
8
|
-
}
|
|
9
|
-
export declare class DataValidator extends AsyncModule {
|
|
10
|
-
protected Validator: AJV.Ajv;
|
|
11
|
-
protected Schemas: any[];
|
|
12
|
-
protected Configuration: Configuration;
|
|
13
|
-
protected Container: IContainer;
|
|
14
|
-
protected Log: Log;
|
|
15
|
-
resolveAsync(container: IContainer): Promise<void>;
|
|
16
|
-
/**
|
|
17
|
-
* Validate data using schema
|
|
18
|
-
* Schema will be compiled and cached (using serialized JSON as key, [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize by default).
|
|
19
|
-
* @param {string|object|Boolean} schemaKeyRef key, ref or schema object
|
|
20
|
-
* @param {Any} data to be validated
|
|
21
|
-
* @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).
|
|
22
|
-
*/
|
|
23
|
-
validate(schemaKeyRef: object | string | boolean, data: any): IValidatorResult;
|
|
24
|
-
}
|
package/lib/schemas.js
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
15
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
16
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
17
|
-
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;
|
|
18
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
19
|
-
};
|
|
20
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
21
|
-
if (mod && mod.__esModule) return mod;
|
|
22
|
-
var result = {};
|
|
23
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
24
|
-
__setModuleDefault(result, mod);
|
|
25
|
-
return result;
|
|
26
|
-
};
|
|
27
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
28
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
29
|
-
};
|
|
30
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
-
exports.DataValidator = void 0;
|
|
32
|
-
const di_1 = require("@spinajs/di");
|
|
33
|
-
const AJV = __importStar(require("ajv"));
|
|
34
|
-
const configuration_1 = require("@spinajs/configuration");
|
|
35
|
-
const fs = __importStar(require("fs"));
|
|
36
|
-
const glob = __importStar(require("glob"));
|
|
37
|
-
const path = __importStar(require("path"));
|
|
38
|
-
const log_1 = require("@spinajs/log");
|
|
39
|
-
;
|
|
40
|
-
class DataValidator extends di_1.AsyncModule {
|
|
41
|
-
async resolveAsync(container) {
|
|
42
|
-
this.Container = container;
|
|
43
|
-
this.Validator = new AJV.default();
|
|
44
|
-
this.Configuration = await container.resolve(configuration_1.Configuration);
|
|
45
|
-
// add $merge & $patch for json schema
|
|
46
|
-
require("ajv-merge-patch")(this.Validator);
|
|
47
|
-
this.Configuration.get("system.dirs.schemas", [])
|
|
48
|
-
.filter(dir => fs.existsSync(dir))
|
|
49
|
-
.flatMap((d) => glob.sync(path.join(d, "*.json")))
|
|
50
|
-
.map(f => {
|
|
51
|
-
return {
|
|
52
|
-
schema: require(f),
|
|
53
|
-
file: path.basename(f)
|
|
54
|
-
};
|
|
55
|
-
})
|
|
56
|
-
.filter(s => {
|
|
57
|
-
const isValid = this.Validator.validateSchema(s.schema);
|
|
58
|
-
if (!isValid) {
|
|
59
|
-
this.Log.warn(`Schema is not valid %s`, s.file);
|
|
60
|
-
return false;
|
|
61
|
-
}
|
|
62
|
-
return true;
|
|
63
|
-
})
|
|
64
|
-
.forEach(s => {
|
|
65
|
-
var _a;
|
|
66
|
-
const schemaId = (_a = s.schema.$id) !== null && _a !== void 0 ? _a : path.basename(s.file);
|
|
67
|
-
this.Log.trace(`Added schema ${schemaId}`);
|
|
68
|
-
this.Validator.addSchema(s.schema, schemaId);
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Validate data using schema
|
|
73
|
-
* Schema will be compiled and cached (using serialized JSON as key, [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize by default).
|
|
74
|
-
* @param {string|object|Boolean} schemaKeyRef key, ref or schema object
|
|
75
|
-
* @param {Any} data to be validated
|
|
76
|
-
* @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).
|
|
77
|
-
*/
|
|
78
|
-
validate(schemaKeyRef, data) {
|
|
79
|
-
const result = this.Validator.validate(schemaKeyRef, data);
|
|
80
|
-
if (!result) {
|
|
81
|
-
return {
|
|
82
|
-
valid: false,
|
|
83
|
-
errors: Object.assign({}, this.Validator.errors)
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
return {
|
|
87
|
-
valid: true
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
__decorate([
|
|
92
|
-
log_1.Logger(),
|
|
93
|
-
__metadata("design:type", Object)
|
|
94
|
-
], DataValidator.prototype, "Log", void 0);
|
|
95
|
-
exports.DataValidator = DataValidator;
|
|
96
|
-
//# sourceMappingURL=schemas.js.map
|
package/lib/schemas.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAAsD;AACtD,yCAA2B;AAC3B,0DAAuD;AACvD,uCAAyB;AACzB,2CAA6B;AAC7B,2CAA6B;AAC7B,sCAA2C;AAK1C,CAAC;AAEF,MAAa,aAAc,SAAQ,gBAAW;IAYnC,KAAK,CAAC,YAAY,CAAC,SAAqB;QAE3C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,6BAAa,CAAC,CAAC;QAE5D,sCAAsC;QACtC,OAAO,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE3C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAW,qBAAqB,EAAE,EAAE,CAAC;aACtD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aACjC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;aACzD,GAAG,CAAC,CAAC,CAAC,EAAE;YACL,OAAO;gBACH,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;gBAClB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;aACzB,CAAC;QACN,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAE;YACR,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAExD,IAAI,CAAC,OAAO,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gBAChD,OAAO,KAAK,CAAC;aAChB;YAED,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;aACD,OAAO,CAAC,CAAC,CAAC,EAAE;;YACT,MAAM,QAAQ,SAAG,CAAC,CAAC,MAAM,CAAC,GAAG,mCAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACvD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,QAAQ,EAAE,CAAC,CAAC;YAC3C,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACX,CAAC;IAED;;;;;;OAMG;IACI,QAAQ,CAAC,YAAuC,EAAE,IAAS;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,EAAE;YACT,OAAO;gBACH,KAAK,EAAE,KAAK;gBACZ,MAAM,oBAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAE;aACvC,CAAA;SACJ;QAED,OAAO;YACH,KAAK,EAAE,IAAI;SACd,CAAA;IACL,CAAC;CACJ;AAzDG;IADC,YAAM,EAAE;;0CACU;AAVvB,sCAmEC"}
|
package/lib/static/favicon.ico
DELETED
|
Binary file
|
package/lib/static/style.css
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PureFormatter.js","sourceRoot":"","sources":["../../src/transformers/PureFormatter.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8CAAgD;AAChD,oCAAwC;AAExC;;GAEG;AAEH,IAAa,mBAAmB,GAAhC,MAAa,mBAAuB,SAAQ,4BAAoB;IACrD,SAAS,CAAC,IAAO;QACpB,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ,CAAA;AAJY,mBAAmB;IAD/B,cAAS,EAAE;GACC,mBAAmB,CAI/B;AAJY,kDAAmB"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
html
|
|
2
|
-
head
|
|
3
|
-
link(rel="icon", type="image/x-icon", href="/static/favicon.ico")
|
|
4
|
-
|
|
5
|
-
title #{__("Bad request")}
|
|
6
|
-
|
|
7
|
-
link(href="/static/style.css",rel="stylesheet")
|
|
8
|
-
body
|
|
9
|
-
div(class="container")
|
|
10
|
-
div(class="item")
|
|
11
|
-
div(class="entry")
|
|
12
|
-
h1 400 - #{__("Bad request")}
|
|
13
|
-
div #{__(error.message)}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
html
|
|
2
|
-
head
|
|
3
|
-
link(rel="icon", type="image/x-icon", href="/static/favicon.ico")
|
|
4
|
-
|
|
5
|
-
title #{__("Conflict")}
|
|
6
|
-
|
|
7
|
-
link(href="/static/style.css",rel="stylesheet")
|
|
8
|
-
body
|
|
9
|
-
div(class="container")
|
|
10
|
-
div(class="item")
|
|
11
|
-
div(class="entry")
|
|
12
|
-
h1 409 - #{__("Conflict")}
|
|
13
|
-
div #{__(error.message)}
|