@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.
Files changed (139) hide show
  1. package/README.md +11 -0
  2. package/lib/config/http.js +17 -17
  3. package/lib/config/http.js.map +1 -1
  4. package/lib/controllers.d.ts +6 -4
  5. package/lib/controllers.js +53 -183
  6. package/lib/controllers.js.map +1 -1
  7. package/lib/decorators.d.ts +49 -24
  8. package/lib/decorators.js +97 -40
  9. package/lib/decorators.js.map +1 -1
  10. package/lib/exceptions.d.ts +0 -0
  11. package/lib/exceptions.js +1 -0
  12. package/lib/exceptions.js.map +1 -0
  13. package/lib/http.d.ts +0 -0
  14. package/lib/http.js +1 -0
  15. package/lib/http.js.map +1 -0
  16. package/lib/hydrators/datetime.d.ts +8 -0
  17. package/lib/hydrators/datetime.js +63 -0
  18. package/lib/hydrators/datetime.js.map +1 -0
  19. package/lib/index.d.ts +1 -1
  20. package/lib/index.js +8 -3
  21. package/lib/index.js.map +1 -1
  22. package/lib/interfaces.d.ts +46 -16
  23. package/lib/interfaces.js +31 -12
  24. package/lib/interfaces.js.map +1 -1
  25. package/lib/response-methods/badRequest.d.ts +3 -2
  26. package/lib/response-methods/badRequest.js +1 -1
  27. package/lib/response-methods/badRequest.js.map +1 -1
  28. package/lib/response-methods/conflict.d.ts +3 -2
  29. package/lib/response-methods/conflict.js +1 -1
  30. package/lib/response-methods/conflict.js.map +1 -1
  31. package/lib/response-methods/cookieResponse.d.ts +3 -2
  32. package/lib/response-methods/cookieResponse.js +9 -5
  33. package/lib/response-methods/cookieResponse.js.map +1 -1
  34. package/lib/response-methods/created.d.ts +3 -2
  35. package/lib/response-methods/created.js +1 -1
  36. package/lib/response-methods/created.js.map +1 -1
  37. package/lib/response-methods/file.d.ts +16 -2
  38. package/lib/response-methods/file.js +67 -5
  39. package/lib/response-methods/file.js.map +1 -1
  40. package/lib/response-methods/forbidden.d.ts +3 -2
  41. package/lib/response-methods/forbidden.js +1 -1
  42. package/lib/response-methods/forbidden.js.map +1 -1
  43. package/lib/response-methods/index.js +6 -2
  44. package/lib/response-methods/index.js.map +1 -1
  45. package/lib/response-methods/noContent.d.ts +3 -2
  46. package/lib/response-methods/noContent.js +1 -1
  47. package/lib/response-methods/noContent.js.map +1 -1
  48. package/lib/response-methods/notFound.d.ts +3 -2
  49. package/lib/response-methods/notFound.js +1 -1
  50. package/lib/response-methods/notFound.js.map +1 -1
  51. package/lib/response-methods/ok.d.ts +3 -2
  52. package/lib/response-methods/ok.js +1 -1
  53. package/lib/response-methods/ok.js.map +1 -1
  54. package/lib/response-methods/pug.d.ts +3 -2
  55. package/lib/response-methods/pug.js +1 -1
  56. package/lib/response-methods/pug.js.map +1 -1
  57. package/lib/response-methods/redirect.d.ts +2 -2
  58. package/lib/response-methods/redirect.js +2 -4
  59. package/lib/response-methods/redirect.js.map +1 -1
  60. package/lib/response-methods/serverError.d.ts +3 -2
  61. package/lib/response-methods/serverError.js +1 -1
  62. package/lib/response-methods/serverError.js.map +1 -1
  63. package/lib/response-methods/unauthorized.d.ts +3 -2
  64. package/lib/response-methods/unauthorized.js +1 -1
  65. package/lib/response-methods/unauthorized.js.map +1 -1
  66. package/lib/responses.d.ts +1 -1
  67. package/lib/responses.js +28 -11
  68. package/lib/responses.js.map +1 -1
  69. package/lib/route-args/ArgAsRequest.d.ts +11 -0
  70. package/lib/{transformers/PureFormatter.js → route-args/ArgAsRequest.js} +13 -12
  71. package/lib/route-args/ArgAsRequest.js.map +1 -0
  72. package/lib/route-args/ArgAsResponse.d.ts +10 -0
  73. package/lib/{dto/order-dto.js → route-args/ArgAsResponse.js} +16 -18
  74. package/lib/route-args/ArgAsResponse.js.map +1 -0
  75. package/lib/route-args/ArgHydrator.d.ts +3 -0
  76. package/lib/route-args/ArgHydrator.js +7 -0
  77. package/lib/route-args/ArgHydrator.js.map +1 -0
  78. package/lib/route-args/FromBody.d.ts +10 -0
  79. package/lib/route-args/FromBody.js +44 -0
  80. package/lib/route-args/FromBody.js.map +1 -0
  81. package/lib/route-args/FromCoockie.d.ts +13 -0
  82. package/lib/route-args/FromCoockie.js +71 -0
  83. package/lib/route-args/FromCoockie.js.map +1 -0
  84. package/lib/route-args/FromCookie.d.ts +13 -0
  85. package/lib/route-args/FromCookie.js +74 -0
  86. package/lib/route-args/FromCookie.js.map +1 -0
  87. package/lib/route-args/FromDi.d.ts +14 -0
  88. package/lib/route-args/FromDi.js +36 -0
  89. package/lib/route-args/FromDi.js.map +1 -0
  90. package/lib/route-args/FromForm.d.ts +82 -0
  91. package/lib/route-args/FromForm.js +259 -0
  92. package/lib/route-args/FromForm.js.map +1 -0
  93. package/lib/route-args/FromHeaderArg.d.ts +12 -0
  94. package/lib/route-args/FromHeaderArg.js +30 -0
  95. package/lib/route-args/FromHeaderArg.js.map +1 -0
  96. package/lib/route-args/FromParams.d.ts +10 -0
  97. package/lib/route-args/FromParams.js +25 -0
  98. package/lib/route-args/FromParams.js.map +1 -0
  99. package/lib/route-args/FromQuery.d.ts +10 -0
  100. package/lib/{dto/limit-dto.js → route-args/FromQuery.js} +16 -18
  101. package/lib/route-args/FromQuery.js.map +1 -0
  102. package/lib/route-args/RouteArgs.d.ts +19 -0
  103. package/lib/route-args/RouteArgs.js +64 -0
  104. package/lib/route-args/RouteArgs.js.map +1 -0
  105. package/lib/route-args/index.d.ts +11 -0
  106. package/lib/route-args/index.js +28 -0
  107. package/lib/route-args/index.js.map +1 -0
  108. package/lib/schemas/RouteArgsSchemas.d.ts +15 -0
  109. package/lib/schemas/RouteArgsSchemas.js +19 -0
  110. package/lib/schemas/RouteArgsSchemas.js.map +1 -0
  111. package/lib/server.d.ts +3 -2
  112. package/lib/server.js +30 -14
  113. package/lib/server.js.map +1 -1
  114. package/lib/transformers/PureTransformer.d.ts +1 -1
  115. package/lib/transformers/PureTransformer.js +2 -2
  116. package/lib/transformers/PureTransformer.js.map +1 -1
  117. package/package.json +27 -54
  118. package/lib/dto/index.d.ts +0 -2
  119. package/lib/dto/index.js +0 -15
  120. package/lib/dto/index.js.map +0 -1
  121. package/lib/dto/limit-dto.d.ts +0 -32
  122. package/lib/dto/limit-dto.js.map +0 -1
  123. package/lib/dto/order-dto.d.ts +0 -32
  124. package/lib/dto/order-dto.js.map +0 -1
  125. package/lib/schemas.d.ts +0 -24
  126. package/lib/schemas.js +0 -96
  127. package/lib/schemas.js.map +0 -1
  128. package/lib/static/favicon.ico +0 -0
  129. package/lib/static/style.css +0 -15
  130. package/lib/transformers/PureFormatter.d.ts +0 -7
  131. package/lib/transformers/PureFormatter.js.map +0 -1
  132. package/lib/views/responses/badRequest.pug +0 -13
  133. package/lib/views/responses/conflict.pug +0 -13
  134. package/lib/views/responses/forbidden.pug +0 -13
  135. package/lib/views/responses/noContent.pug +0 -13
  136. package/lib/views/responses/notFound.pug +0 -13
  137. package/lib/views/responses/ok.pug +0 -12
  138. package/lib/views/responses/serverError.pug +0 -13
  139. package/lib/views/responses/unauthorized.pug +0 -13
package/lib/decorators.js CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Schema = exports.Post = exports.Get = exports.Put = exports.Del = exports.Patch = exports.Head = exports.Cookie = exports.Model = exports.Res = exports.Req = exports.UuidPkey = exports.IncPkey = exports.FormField = exports.Form = exports.Upload = exports.FromModel = exports.Param = exports.Body = exports.Query = exports.Inject = exports.BasePath = exports.Middleware = exports.Policy = exports.SCHEMA_SYMBOL = exports.CONTROLLED_DESCRIPTOR_SYMBOL = void 0;
3
+ exports.Post = exports.Get = exports.Put = exports.Del = exports.Patch = exports.Head = exports.Cookie = exports.Model = exports.Res = exports.Req = exports.Uuid = exports.PKey = exports.FormField = exports.Form = exports.JsonFile = exports.CsvFile = exports.File = exports.Header = exports.FromModel = exports.Param = exports.Body = exports.Query = exports.FromDI = exports.BasePath = exports.Middleware = exports.Policy = exports.Hydrator = exports.CONTROLLED_DESCRIPTOR_SYMBOL = void 0;
4
4
  const interfaces_1 = require("./interfaces");
5
+ const RouteArgsSchemas_1 = require("./schemas/RouteArgsSchemas");
5
6
  exports.CONTROLLED_DESCRIPTOR_SYMBOL = Symbol('CONTROLLER_SYMBOL');
6
- exports.SCHEMA_SYMBOL = Symbol('SCHEMA_SYMBOL');
7
7
  function Controller(callback) {
8
8
  return (target, propertyKey, indexOrDescriptor) => {
9
9
  let metadata = Reflect.getMetadata(exports.CONTROLLED_DESCRIPTOR_SYMBOL, target.prototype || target);
@@ -49,17 +49,48 @@ function Route(callback) {
49
49
  }
50
50
  function Parameter(type, schema, options) {
51
51
  return (_, route, target, propertyKey, index) => {
52
+ const rType = Reflect.getMetadata('design:paramtypes', target.prototype || target, propertyKey)[index];
53
+ let tSchema = null;
54
+ if (!schema) {
55
+ switch (rType.name) {
56
+ case 'Number':
57
+ tSchema = RouteArgsSchemas_1.ROUTE_ARG_SCHEMA.Number;
58
+ break;
59
+ case 'String':
60
+ tSchema = RouteArgsSchemas_1.ROUTE_ARG_SCHEMA.String;
61
+ break;
62
+ case 'Boolean':
63
+ tSchema = RouteArgsSchemas_1.ROUTE_ARG_SCHEMA.Boolean;
64
+ }
65
+ }
52
66
  const param = {
53
67
  Index: index,
54
68
  Name: '',
55
- RuntimeType: Reflect.getMetadata('design:paramtypes', target.prototype || target, propertyKey)[index],
56
- Schema: schema,
69
+ RuntimeType: rType,
70
+ Schema: schema !== null && schema !== void 0 ? schema : tSchema,
57
71
  Options: options,
58
72
  Type: type,
59
73
  };
60
74
  route.Parameters.set(index, param);
61
75
  };
62
76
  }
77
+ /**
78
+ * Tells controller how to fill up incoming parameters in controller actions
79
+ *
80
+ * @param hydrator - hydrator class that will fill up incoming argument
81
+ * @param options - additional options passed to hydrator
82
+ */
83
+ function Hydrator(hydrator, ...options) {
84
+ return (target) => {
85
+ if (!Reflect.getMetadata('custom:arg_hydrator', target)) {
86
+ Reflect.defineMetadata('custom:arg_hydrator', {
87
+ hydrator,
88
+ options,
89
+ }, target);
90
+ }
91
+ };
92
+ }
93
+ exports.Hydrator = Hydrator;
63
94
  function Policy(policy, ...options) {
64
95
  return Route((controller, route, _, _1, _2) => {
65
96
  const pDesc = {
@@ -96,14 +127,14 @@ function BasePath(path) {
96
127
  });
97
128
  }
98
129
  exports.BasePath = BasePath;
99
- function Inject() {
130
+ function FromDI() {
100
131
  return Route(Parameter(interfaces_1.ParameterType.FromDi));
101
132
  }
102
- exports.Inject = Inject;
133
+ exports.FromDI = FromDI;
103
134
  /**
104
135
  * Route parameter taken from query string eg. route?id=1
105
136
  *
106
- * @param schema parameter json schema for optional validation
137
+ * @param schema - parameter json schema for optional validation
107
138
  */
108
139
  function Query(schema) {
109
140
  return Route(Parameter(interfaces_1.ParameterType.FromQuery, schema));
@@ -112,7 +143,7 @@ exports.Query = Query;
112
143
  /**
113
144
  * Route parameter taken from message body (POST)
114
145
  *
115
- * @param schema parameter json schema for optional validation
146
+ * @param schema - parameter json schema for optional validation
116
147
  */
117
148
  function Body(schema) {
118
149
  return Route(Parameter(interfaces_1.ParameterType.FromBody, schema));
@@ -121,7 +152,7 @@ exports.Body = Body;
121
152
  /**
122
153
  * Route parameter taken from url parameters eg. route/:id
123
154
  *
124
- * @param schema parameter json schema for optional validation
155
+ * @param schema - parameter json schema for optional validation
125
156
  */
126
157
  function Param(schema) {
127
158
  return Route(Parameter(interfaces_1.ParameterType.FromParams, schema));
@@ -131,34 +162,70 @@ function FromModel(schema) {
131
162
  return Route(Parameter(interfaces_1.ParameterType.FromModel, schema));
132
163
  }
133
164
  exports.FromModel = FromModel;
165
+ /**
166
+ * Gets parameter from request header. If not keyname is provided
167
+ * variable name is used as header key name
168
+ *
169
+ * @param keyName - header key name ( optional )
170
+ * @param schema - schema for validation ( optional )
171
+ * @returns
172
+ */
173
+ function Header(keyName, schema) {
174
+ return Route(Parameter(interfaces_1.ParameterType.FromHeader, schema, { key: keyName }));
175
+ }
176
+ exports.Header = Header;
134
177
  /**
135
178
  *
136
179
  * Parameter as file
137
180
  *
138
- * @param options upload options
181
+ * @param options - upload options
139
182
  */
140
- function Upload(options) {
183
+ function File(options) {
141
184
  return Route(Parameter(interfaces_1.ParameterType.FromFile, null, options));
142
185
  }
143
- exports.Upload = Upload;
186
+ exports.File = File;
187
+ /**
188
+ * Data taken from cvs file that is uploaded. Actions receives parsed data
189
+ *
190
+ * @param options - upload options
191
+ * @param cvsParseOptions - cvs parser options
192
+ * @param schema - optional schema for data validation
193
+ */
194
+ function CsvFile(options, cvsParseOptions, schema) {
195
+ return Route(Parameter(interfaces_1.ParameterType.FromCSV, schema, {
196
+ uploadOptions: options,
197
+ cvsOptions: cvsParseOptions,
198
+ }));
199
+ }
200
+ exports.CsvFile = CsvFile;
201
+ /**
202
+ * Data taken from cvs file that is uploaded. Actions receives parsed data
203
+ *
204
+ * @param options - upload options
205
+ * @param schema - optional schema for data validation
206
+ */
207
+ function JsonFile(options, schema) {
208
+ return Route(Parameter(interfaces_1.ParameterType.FromJSONFile, schema, options));
209
+ }
210
+ exports.JsonFile = JsonFile;
144
211
  /**
145
212
  *
146
213
  * Parameter taken from form data (multipart-form)
147
214
  *
148
- * @param options upload options
215
+ * @param options - upload options
149
216
  */
150
- function Form(schema) {
151
- return Route(Parameter(interfaces_1.ParameterType.FromForm, schema));
217
+ function Form(schema, options) {
218
+ return Route(Parameter(interfaces_1.ParameterType.FromForm, schema, options));
152
219
  }
153
220
  exports.Form = Form;
154
221
  /**
155
222
  *
156
223
  * Parameter taken from form data (multipart-form)
157
224
  *
158
- * @param options upload options
225
+ * @param options - upload options
159
226
  */
160
- function FormField() {
161
- return Route(Parameter(interfaces_1.ParameterType.FormField, null));
227
+ function FormField(schema, options) {
228
+ return Route(Parameter(interfaces_1.ParameterType.FormField, schema, options));
162
229
  }
163
230
  exports.FormField = FormField;
164
231
  /**
@@ -166,19 +233,21 @@ exports.FormField = FormField;
166
233
  * Shortcut for parameter as autoincrement primary key ( number greater than 0)
167
234
  *
168
235
  */
169
- function IncPkey() {
170
- return Route(Parameter(interfaces_1.ParameterType.FromParams, { type: 'number', minimum: 0 }));
236
+ function PKey(type) {
237
+ return Route(Parameter(type ? type : interfaces_1.ParameterType.FromParams, { type: 'number', minimum: 0 }));
171
238
  }
172
- exports.IncPkey = IncPkey;
239
+ exports.PKey = PKey;
173
240
  /**
174
241
  *
175
242
  * Shortcut for parameter as uuid primary key ( string with 32 length )
176
243
  *
177
244
  */
178
- function UuidPkey() {
179
- return Route(Parameter(interfaces_1.ParameterType.FromParams, { type: 'string', minLength: 32, maxLength: 32 }));
245
+ function Uuid(type, version) {
246
+ return Route(Parameter(type ? type : interfaces_1.ParameterType.FromParams, { type: 'string', minLength: 36, maxLength: 36, pattern: '^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$' }, {
247
+ version: version !== null && version !== void 0 ? version : interfaces_1.UuidVersion.v4,
248
+ }));
180
249
  }
181
- exports.UuidPkey = UuidPkey;
250
+ exports.Uuid = Uuid;
182
251
  /**
183
252
  *
184
253
  * Express request
@@ -201,7 +270,7 @@ exports.Res = Res;
201
270
  *
202
271
  * Parameter taken from model
203
272
  *
204
- * @param options upload options
273
+ * @param options - upload options
205
274
  */
206
275
  function Model(model) {
207
276
  return Route(Parameter(interfaces_1.ParameterType.FromModel, null, { type: model }));
@@ -209,9 +278,9 @@ function Model(model) {
209
278
  exports.Model = Model;
210
279
  /**
211
280
  *
212
- * Parameter taken from model
281
+ * Parameter taken from coockie
213
282
  *
214
- * @param options upload options
283
+ * @param options - upload options
215
284
  */
216
285
  function Cookie() {
217
286
  return Route(Parameter(interfaces_1.ParameterType.FromCookie, { type: 'string' }));
@@ -285,22 +354,10 @@ exports.Get = Get;
285
354
  */
286
355
  function Post(path) {
287
356
  return Route((_, route) => {
288
- route.Type = interfaces_1.RouteType.GET;
357
+ route.Type = interfaces_1.RouteType.POST;
289
358
  route.InternalType = interfaces_1.RouteType.POST;
290
359
  route.Path = path;
291
360
  });
292
361
  }
293
362
  exports.Post = Post;
294
- /**
295
- *
296
- * Add schema for object eg. model or dto
297
- *
298
- * @param schema schema for object
299
- */
300
- function Schema(schema) {
301
- return (target) => {
302
- Reflect.defineMetadata(exports.SCHEMA_SYMBOL, schema, target);
303
- };
304
- }
305
- exports.Schema = Schema;
306
363
  //# sourceMappingURL=decorators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"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"}
File without changes
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=exceptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../src/exceptions.ts"],"names":[],"mappings":""}
package/lib/http.d.ts ADDED
File without changes
package/lib/http.js ADDED
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/config/http.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ export declare namespace DateTime {
2
+ class FromUnix {
3
+ }
4
+ class FromHTTP {
5
+ }
6
+ class FromISO {
7
+ }
8
+ }
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.DateTime = void 0;
13
+ const validation_1 = require("@spinajs/validation");
14
+ const lodash_1 = __importDefault(require("lodash"));
15
+ const luxon_1 = require("luxon");
16
+ const decorators_1 = require("../decorators");
17
+ const ArgHydrator_1 = require("../route-args/ArgHydrator");
18
+ var DateTime;
19
+ (function (DateTime) {
20
+ class DateFromUnixHydrator extends ArgHydrator_1.ArgHydrator {
21
+ async hydrate(input) {
22
+ return luxon_1.DateTime.fromSeconds(lodash_1.default.isString(input) ? Number(input) : input);
23
+ }
24
+ }
25
+ class DateFromIsoHydrator extends ArgHydrator_1.ArgHydrator {
26
+ async hydrate(input) {
27
+ return luxon_1.DateTime.fromISO(input);
28
+ }
29
+ }
30
+ class DateFromHttpHydrator extends ArgHydrator_1.ArgHydrator {
31
+ async hydrate(input) {
32
+ return luxon_1.DateTime.fromHTTP(input.startsWith('Date:') ? input.substring(5).trim() : input.trim());
33
+ }
34
+ }
35
+ let FromUnix = class FromUnix {
36
+ };
37
+ FromUnix = __decorate([
38
+ (0, validation_1.Schema)({
39
+ type: 'number',
40
+ minimum: 0,
41
+ maximum: 2147483647,
42
+ }),
43
+ (0, decorators_1.Hydrator)(DateFromUnixHydrator)
44
+ ], FromUnix);
45
+ DateTime.FromUnix = FromUnix;
46
+ let FromHTTP = class FromHTTP {
47
+ };
48
+ FromHTTP = __decorate([
49
+ (0, decorators_1.Hydrator)(DateFromHttpHydrator)
50
+ ], FromHTTP);
51
+ DateTime.FromHTTP = FromHTTP;
52
+ let FromISO = class FromISO {
53
+ };
54
+ FromISO = __decorate([
55
+ (0, validation_1.Schema)({
56
+ type: 'string',
57
+ format: 'iso-date-time',
58
+ }),
59
+ (0, decorators_1.Hydrator)(DateFromIsoHydrator)
60
+ ], FromISO);
61
+ DateTime.FromISO = FromISO;
62
+ })(DateTime = exports.DateTime || (exports.DateTime = {}));
63
+ //# sourceMappingURL=datetime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datetime.js","sourceRoot":"","sources":["../../src/hydrators/datetime.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA6C;AAC7C,oDAAuB;AACvB,iCAA8C;AAC9C,8CAAyC;AACzC,2DAAwD;AAExD,IAAiB,QAAQ,CAoCxB;AApCD,WAAiB,QAAQ;IACvB,MAAM,oBAAqB,SAAQ,yBAAW;QACrC,KAAK,CAAC,OAAO,CAAC,KAAU;YAC7B,OAAO,gBAAS,CAAC,WAAW,CAAC,gBAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC1E,CAAC;KACF;IAED,MAAM,mBAAoB,SAAQ,yBAAW;QACpC,KAAK,CAAC,OAAO,CAAC,KAAU;YAC7B,OAAO,gBAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;KACF;IAED,MAAM,oBAAqB,SAAQ,yBAAW;QACrC,KAAK,CAAC,OAAO,CAAC,KAAU;YAC7B,OAAO,gBAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAClG,CAAC;KACF;IAQD,IAAa,QAAQ,GAArB,MAAa,QAAQ;KAAG,CAAA;IAAX,QAAQ;QANpB,IAAA,mBAAM,EAAC;YACN,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,UAAU;SACpB,CAAC;QACD,IAAA,qBAAQ,EAAC,oBAAoB,CAAC;OAClB,QAAQ,CAAG;IAAX,iBAAQ,WAAG,CAAA;IAGxB,IAAa,QAAQ,GAArB,MAAa,QAAQ;KAAG,CAAA;IAAX,QAAQ;QADpB,IAAA,qBAAQ,EAAC,oBAAoB,CAAC;OAClB,QAAQ,CAAG;IAAX,iBAAQ,WAAG,CAAA;IAOxB,IAAa,OAAO,GAApB,MAAa,OAAO;KAAG,CAAA;IAAV,OAAO;QALnB,IAAA,mBAAM,EAAC;YACN,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,eAAe;SACxB,CAAC;QACD,IAAA,qBAAQ,EAAC,mBAAmB,CAAC;OACjB,OAAO,CAAG;IAAV,gBAAO,UAAG,CAAA;AACzB,CAAC,EApCgB,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAoCxB"}
package/lib/index.d.ts CHANGED
@@ -2,6 +2,6 @@ export * from './interfaces';
2
2
  export * from './response-methods';
3
3
  export * from './decorators';
4
4
  export * from './responses';
5
+ export * from './route-args';
5
6
  export * from './controllers';
6
7
  export * from './server';
7
- export * from './dto';
package/lib/index.js CHANGED
@@ -1,20 +1,25 @@
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.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
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];
8
12
  }));
9
13
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
15
  };
12
16
  Object.defineProperty(exports, "__esModule", { value: true });
13
17
  __exportStar(require("./interfaces"), exports);
14
18
  __exportStar(require("./response-methods"), exports);
19
+ //export * from './hydrators/datetime';
15
20
  __exportStar(require("./decorators"), exports);
16
21
  __exportStar(require("./responses"), exports);
22
+ __exportStar(require("./route-args"), exports);
17
23
  __exportStar(require("./controllers"), exports);
18
24
  __exportStar(require("./server"), exports);
19
- __exportStar(require("./dto"), exports);
20
25
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAA6B;AAC7B,qDAAmC;AACnC,+CAA6B;AAC7B,8CAA4B;AAC5B,gDAA8B;AAC9B,2CAAyB;AACzB,wCAAsB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,qDAAmC;AACnC,uCAAuC;AACvC,+CAA6B;AAC7B,8CAA4B;AAC5B,+CAA6B;AAC7B,gDAA8B;AAC9B,2CAAyB"}
@@ -1,5 +1,6 @@
1
1
  import * as express from 'express';
2
2
  import { Constructor } from '@spinajs/di';
3
+ import { Configuration } from '@spinajs/configuration';
3
4
  /**
4
5
  * Accept header enum
5
6
  */
@@ -142,6 +143,12 @@ export declare enum RouteType {
142
143
  FILE = "file",
143
144
  UNKNOWN = "unknown"
144
145
  }
146
+ export declare enum UuidVersion {
147
+ v1 = 0,
148
+ v3 = 1,
149
+ v4 = 2,
150
+ v5 = 3
151
+ }
145
152
  /**
146
153
  * Avaible route parameters type
147
154
  */
@@ -149,44 +156,59 @@ export declare enum ParameterType {
149
156
  /**
150
157
  * Parameter is injected from DI container & resolved
151
158
  */
152
- FromDi = 0,
159
+ FromDi = "FromDi",
153
160
  /**
154
161
  * Parameter value is taken from query string eg. `?name=flavio`
155
162
  */
156
- FromQuery = 1,
163
+ FromQuery = "FromQuery",
157
164
  /**
158
165
  * From message body, eg. POST json object
159
166
  */
160
- FromBody = 2,
167
+ FromBody = "FromBody",
161
168
  /**
162
169
  * From url params eg: `/:id`
163
170
  */
164
- FromParams = 3,
171
+ FromParams = "FromParams",
165
172
  /**
166
173
  * From form file field
167
174
  */
168
- FromFile = 4,
175
+ FromFile = "FromFile",
169
176
  /**
170
177
  * From form
171
178
  */
172
- FromForm = 5,
179
+ FromForm = "FromForm",
180
+ /**
181
+ * From cvs file
182
+ */
183
+ FromCSV = "FromCSV",
184
+ /**
185
+ * From JSON file
186
+ */
187
+ FromJSONFile = "FromJSONFile",
173
188
  /**
174
189
  * From form field
175
190
  */
176
- FormField = 6,
191
+ FormField = "FromFormField",
177
192
  /**
178
193
  * From model object
179
194
  */
180
- FromModel = 7,
195
+ FromModel = "FromModel",
181
196
  /**
182
197
  * Data from coockie
183
198
  */
184
- FromCookie = 8,
199
+ FromCookie = "FromCookie",
200
+ /**
201
+ * From http header
202
+ */
203
+ FromHeader = "FromHeader",
185
204
  /**
186
205
  * Req from express
187
206
  */
188
- Req = 9,
189
- Res = 10
207
+ Req = "Req",
208
+ Res = "Res"
209
+ }
210
+ export interface IFormOptions {
211
+ multiples: boolean;
190
212
  }
191
213
  export interface IFormOptions {
192
214
  /**
@@ -210,15 +232,15 @@ export interface IUploadOptions {
210
232
  /**
211
233
  * default os.tmpdir(); the directory for placing file uploads in. You can move them later by using fs.rename()
212
234
  */
213
- uploadDir?: string | (() => string);
235
+ uploadDir?: string | ((cfg: Configuration) => string);
214
236
  /**
215
237
  * default false; when you call the .parse method, the files argument (of the callback) will contain arrays of files for inputs which submit multiple files using the HTML5 multiple attribute. Also, the fields argument will contain arrays of values for fields that have names ending with '[]'.
216
238
  */
217
239
  multiples?: boolean;
218
240
  enabledPlugins?: string[];
219
241
  /**
220
- * default 200 * 1024 * 1024 (200mb); limit the size of uploaded file.
221
- */
242
+ * default 200 * 1024 * 1024 (200mb); limit the size of uploaded file.
243
+ */
222
244
  maxFileSize?: number;
223
245
  /**
224
246
  * default false; to include the extensions of the original files or not
@@ -254,6 +276,14 @@ export interface IRouteParameter {
254
276
  */
255
277
  Name: string;
256
278
  }
279
+ /**
280
+ * Route action call spefici data. Used to pass data / arguments when parsing
281
+ * action parameters for specific call. Eg. to parse form data, and extract it
282
+ * as different arguments.
283
+ */
284
+ export interface IRouteCall {
285
+ Payload: any;
286
+ }
257
287
  export interface IRoute {
258
288
  /**
259
289
  * url path eg. /foo/bar/:id
@@ -384,11 +414,11 @@ export interface IControllerDescriptor {
384
414
  * to easily transform data for some client
385
415
  * eg. plain array to format that datatables.net can easily read
386
416
  */
387
- export declare abstract class DataTransformer<T, U> {
417
+ export declare abstract class DataTransformer<T = any, U = any> {
388
418
  /**
389
419
  * Transforms data from one format to another
390
420
  *
391
- * @param data input data
421
+ * @param data - input data
392
422
  */
393
423
  abstract transform(data: T, request: express.Request): U;
394
424
  abstract get Type(): string;
package/lib/interfaces.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DataTransformer = exports.BasePolicy = exports.BaseMiddleware = exports.ParameterType = exports.RouteType = exports.HTTP_STATUS_CODE = exports.HttpAcceptHeaders = void 0;
3
+ exports.DataTransformer = exports.BasePolicy = exports.BaseMiddleware = exports.ParameterType = exports.UuidVersion = exports.RouteType = exports.HTTP_STATUS_CODE = exports.HttpAcceptHeaders = void 0;
4
4
  /**
5
5
  * Accept header enum
6
6
  */
@@ -122,6 +122,13 @@ var RouteType;
122
122
  RouteType["FILE"] = "file";
123
123
  RouteType["UNKNOWN"] = "unknown";
124
124
  })(RouteType = exports.RouteType || (exports.RouteType = {}));
125
+ var UuidVersion;
126
+ (function (UuidVersion) {
127
+ UuidVersion[UuidVersion["v1"] = 0] = "v1";
128
+ UuidVersion[UuidVersion["v3"] = 1] = "v3";
129
+ UuidVersion[UuidVersion["v4"] = 2] = "v4";
130
+ UuidVersion[UuidVersion["v5"] = 3] = "v5";
131
+ })(UuidVersion = exports.UuidVersion || (exports.UuidVersion = {}));
125
132
  /**
126
133
  * Avaible route parameters type
127
134
  */
@@ -130,45 +137,57 @@ var ParameterType;
130
137
  /**
131
138
  * Parameter is injected from DI container & resolved
132
139
  */
133
- ParameterType[ParameterType["FromDi"] = 0] = "FromDi";
140
+ ParameterType["FromDi"] = "FromDi";
134
141
  /**
135
142
  * Parameter value is taken from query string eg. `?name=flavio`
136
143
  */
137
- ParameterType[ParameterType["FromQuery"] = 1] = "FromQuery";
144
+ ParameterType["FromQuery"] = "FromQuery";
138
145
  /**
139
146
  * From message body, eg. POST json object
140
147
  */
141
- ParameterType[ParameterType["FromBody"] = 2] = "FromBody";
148
+ ParameterType["FromBody"] = "FromBody";
142
149
  /**
143
150
  * From url params eg: `/:id`
144
151
  */
145
- ParameterType[ParameterType["FromParams"] = 3] = "FromParams";
152
+ ParameterType["FromParams"] = "FromParams";
146
153
  /**
147
154
  * From form file field
148
155
  */
149
- ParameterType[ParameterType["FromFile"] = 4] = "FromFile";
156
+ ParameterType["FromFile"] = "FromFile";
150
157
  /**
151
158
  * From form
152
159
  */
153
- ParameterType[ParameterType["FromForm"] = 5] = "FromForm";
160
+ ParameterType["FromForm"] = "FromForm";
161
+ /**
162
+ * From cvs file
163
+ */
164
+ ParameterType["FromCSV"] = "FromCSV";
165
+ /**
166
+ * From JSON file
167
+ */
168
+ ParameterType["FromJSONFile"] = "FromJSONFile";
154
169
  /**
155
170
  * From form field
156
171
  */
157
- ParameterType[ParameterType["FormField"] = 6] = "FormField";
172
+ ParameterType["FormField"] = "FromFormField";
158
173
  /**
159
174
  * From model object
160
175
  */
161
- ParameterType[ParameterType["FromModel"] = 7] = "FromModel";
176
+ ParameterType["FromModel"] = "FromModel";
162
177
  /**
163
178
  * Data from coockie
164
179
  */
165
- ParameterType[ParameterType["FromCookie"] = 8] = "FromCookie";
180
+ ParameterType["FromCookie"] = "FromCookie";
181
+ /**
182
+ * From http header
183
+ */
184
+ ParameterType["FromHeader"] = "FromHeader";
166
185
  /**
167
186
  * Req from express
168
187
  */
169
- ParameterType[ParameterType["Req"] = 9] = "Req";
188
+ ParameterType["Req"] = "Req";
170
189
  // Res from express
171
- ParameterType[ParameterType["Res"] = 10] = "Res";
190
+ ParameterType["Res"] = "Res";
172
191
  })(ParameterType = exports.ParameterType || (exports.ParameterType = {}));
173
192
  /**
174
193
  * Middlewares are classes that can change request object or perform specific task before & after route execution