@spinajs/http 1.0.13 → 1.2.107

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 -184
  6. package/lib/controllers.js.map +1 -1
  7. package/lib/decorators.d.ts +51 -24
  8. package/lib/decorators.js +99 -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 +45 -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/limit-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 +35 -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/order-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
@@ -4,7 +4,7 @@ export declare type ResponseFunction = (req: express.Request, res: express.Respo
4
4
  export declare abstract class Response {
5
5
  protected responseData: any;
6
6
  constructor(responseData: any);
7
- abstract execute(req: express.Request, res: express.Response, next?: express.NextFunction): Promise<ResponseFunction>;
7
+ abstract execute(req: express.Request, res: express.Response, next?: express.NextFunction): Promise<ResponseFunction | void>;
8
8
  }
9
9
  /**
10
10
  * Sends data & sets proper header as json
package/lib/responses.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.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];
@@ -14,7 +18,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
14
18
  var __importStar = (this && this.__importStar) || function (mod) {
15
19
  if (mod && mod.__esModule) return mod;
16
20
  var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
22
  __setModuleDefault(result, mod);
19
23
  return result;
20
24
  };
@@ -111,22 +115,31 @@ const __translateH = (text) => {
111
115
  * @param status - optional status code
112
116
  */
113
117
  function pugResponse(file, model, status) {
114
- const cfg = di_1.DI.resolve(configuration_1.Configuration);
118
+ const cfg = di_1.DI.get(configuration_1.Configuration);
115
119
  return (req, res) => {
120
+ if (!req.accepts('html')) {
121
+ httpResponse({
122
+ error: {
123
+ message: 'invalid request content type',
124
+ code: 400,
125
+ },
126
+ }, interfaces_1.HTTP_STATUS_CODE.BAD_REQUEST, 'responses/serverError.pug')(req, res);
127
+ return;
128
+ }
116
129
  res.set('Content-Type', 'text/html');
117
130
  try {
118
131
  try {
119
132
  _render(file, model, status);
120
133
  }
121
134
  catch (err) {
122
- const log = di_1.DI.get(log_1.LogModule).getLogger();
135
+ const log = di_1.DI.resolve(log_1.Log, ['http']);
123
136
  log.warn(`Cannot render pug file ${file}, error: ${err.message}:${err.stack}`, err);
124
137
  // try to render server error response
125
138
  _render('responses/serverError.pug', { error: err }, interfaces_1.HTTP_STATUS_CODE.INTERNAL_ERROR);
126
139
  }
127
140
  }
128
141
  catch (err) {
129
- const log = di_1.DI.resolve(log_1.LogModule).getLogger();
142
+ const log = di_1.DI.resolve(log_1.Log, ['http']);
130
143
  // final fallback rendering error fails, we render embedded html error page
131
144
  const ticketNo = randomstring.generate(7);
132
145
  log.warn(`Cannot render pug file error: ${err.message}, ticket: ${ticketNo}`, err);
@@ -149,8 +162,8 @@ function pugResponse(file, model, status) {
149
162
  function getView(viewFile) {
150
163
  const views = cfg
151
164
  .get('system.dirs.views')
152
- .map(p => path_1.normalize(path_1.join(p, viewFile)))
153
- .filter(f => fs.existsSync(f));
165
+ .map((p) => (0, path_1.normalize)((0, path_1.join)(p, viewFile)))
166
+ .filter((f) => fs.existsSync(f));
154
167
  if (_.isEmpty(views)) {
155
168
  throw new exceptions_1.IOFail(`View file ${viewFile} not exists.`);
156
169
  }
@@ -170,21 +183,25 @@ exports.pugResponse = pugResponse;
170
183
  * to `Accept` header
171
184
  */
172
185
  function httpResponse(model, code, template) {
173
- const cfg = di_1.DI.resolve(configuration_1.Configuration);
186
+ const cfg = di_1.DI.get(configuration_1.Configuration);
174
187
  const acceptedHeaders = cfg.get('http.AcceptHeaders');
175
- const transformers = di_1.DI.resolve(Array.ofType(interfaces_1.DataTransformer));
176
188
  return (req, res) => {
177
189
  if (req.accepts('html') && (acceptedHeaders & interfaces_1.HttpAcceptHeaders.HTML) === interfaces_1.HttpAcceptHeaders.HTML) {
178
190
  pugResponse(`${template}.pug`, model, code)(req, res);
179
191
  }
180
192
  else if (req.accepts('json') && (acceptedHeaders & interfaces_1.HttpAcceptHeaders.JSON) === interfaces_1.HttpAcceptHeaders.JSON) {
181
193
  if (req.headers['x-data-transform']) {
182
- const transformer = transformers.find(x => x.Type === req.headers['x-data-transform']);
194
+ const transformer = di_1.DI.resolve(req.headers['x-data-transform']);
183
195
  if (transformer) {
184
196
  jsonResponse(transformer.transform(model, req), code)(req, res);
185
197
  }
186
198
  else {
187
- jsonResponse(transformer.transform(model, req), code)(req, res);
199
+ jsonResponse({
200
+ error: {
201
+ message: "invalid data transformer, remove header 'x-data-transform' to return raw data or set proper data transformer",
202
+ code: 400,
203
+ },
204
+ }, interfaces_1.HTTP_STATUS_CODE.BAD_REQUEST)(req, res);
188
205
  }
189
206
  }
190
207
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"responses.js","sourceRoot":"","sources":["../src/responses.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"responses.js","sourceRoot":"","sources":["../src/responses.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAAoF;AACpF,0DAAuD;AACvD,oCAAiC;AACjC,sCAAyC;AACzC,iDAAmC;AACnC,+BAAuC;AACvC,uCAAyB;AACzB,0CAA4B;AAC5B,oDAA6C;AAC7C,2DAA6C;AAC7C,wCAAyD;AAIzD,MAAsB,QAAQ;IAG5B,YAAY,YAAiB;QAC3B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;CAGF;AARD,4BAQC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,KAAU,EAAE,MAAyB;IAChE,OAAO,CAAC,IAAqB,EAAE,GAAqB,EAAE,EAAE;QACtD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,6BAAgB,CAAC,EAAE,CAAC,CAAC;QAElD,IAAI,KAAK,EAAE;YACT,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACjB;aAAM;YACL,GAAG,CAAC,IAAI,EAAE,CAAC;SACZ;IACH,CAAC,CAAC;AACJ,CAAC;AAVD,oCAUC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,KAAU,EAAE,MAAyB;IAChE,OAAO,CAAC,IAAqB,EAAE,GAAqB,EAAE,EAAE;QACtD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,6BAAgB,CAAC,EAAE,CAAC,CAAC;QAElD,IAAI,KAAK,EAAE;YACT,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;YACtC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;SACjC;IACH,CAAC,CAAC;AACJ,CAAC;AATD,oCASC;AAED,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE;IACnC,OAAO,CAAC,IAAiC,EAAE,GAAG,IAAW,EAAE,EAAE;QAC3D,MAAM,IAAI,GAAG,OAAE,CAAC,GAAG,CAAO,WAAI,CAAC,CAAC;QAChC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,OAAO,IAAI,CAAC,EAAE,CACZ;gBACE,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,IAAI;aACb,EACD,GAAG,IAAI,CACR,CAAC;SACH;QAED,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAChC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAE,EAAE;IACzC,OAAO,CAAC,IAAiC,EAAE,KAAa,EAAE,EAAE;QAC1D,MAAM,IAAI,GAAG,OAAE,CAAC,GAAG,CAAO,WAAI,CAAC,CAAC;QAChC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,OAAO,IAAI,CAAC,GAAG,CACb;gBACE,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,IAAI;aACb,EACD,KAAK,CACN,CAAC;SACH;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE;IACpC,MAAM,IAAI,GAAG,OAAE,CAAC,GAAG,CAAO,WAAI,CAAC,CAAC;IAChC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC,CAAC;AACF,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE;IACpC,MAAM,IAAI,GAAG,OAAE,CAAC,GAAG,CAAO,WAAI,CAAC,CAAC;IAChC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,SAAgB,WAAW,CAAC,IAAY,EAAE,KAAU,EAAE,MAAyB;IAC7E,MAAM,GAAG,GAAkB,OAAE,CAAC,GAAG,CAAC,6BAAa,CAAC,CAAC;IAEjD,OAAO,CAAC,GAAoB,EAAE,GAAqB,EAAE,EAAE;QACrD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACxB,YAAY,CACV;gBACE,KAAK,EAAE;oBACL,OAAO,EAAE,8BAA8B;oBACvC,IAAI,EAAE,GAAG;iBACV;aACF,EACD,6BAAgB,CAAC,WAAW,EAC5B,2BAA2B,CAC5B,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACZ,OAAO;SACR;QAED,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAErC,IAAI;YACF,IAAI;gBACF,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;aAC9B;YAAC,OAAO,GAAG,EAAE;gBACZ,MAAM,GAAG,GAAS,OAAE,CAAC,OAAO,CAAC,SAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;gBAE5C,GAAG,CAAC,IAAI,CAAC,0BAA0B,IAAI,YAAY,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;gBAEpF,sCAAsC;gBACtC,OAAO,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,6BAAgB,CAAC,cAAc,CAAC,CAAC;aACvF;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,GAAG,GAAS,OAAE,CAAC,OAAO,CAAC,SAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YAE5C,2EAA2E;YAC3E,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAE1C,GAAG,CAAC,IAAI,CAAC,iCAAiC,GAAG,CAAC,OAAO,aAAa,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC;YAEnF,GAAG,CAAC,MAAM,CAAC,6BAAgB,CAAC,cAAc,CAAC,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAS,oBAAoB,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;SAC/E;QAED,SAAS,OAAO,CAAC,CAAS,EAAE,CAAM,EAAE,CAAmB;YACrD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,QAAQ,GAAW,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAS,qBAAqB,CAAC,CAAQ,CAAC;YAElF,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,CACpC,IAAI,EACJ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;gBACT,gCAAgC;gBAChC,EAAE,EAAE,WAAW,CAAC,QAAQ,CAAC;gBACzB,GAAG,EAAE,iBAAiB,CAAC,QAAQ,CAAC;gBAChC,GAAG,EAAE,YAAY;gBACjB,GAAG,EAAE,YAAY;aAClB,CAAC,CACH,CAAC;YAEF,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6BAAgB,CAAC,EAAE,CAAC,CAAC;YACxC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC;QAED,SAAS,OAAO,CAAC,QAAgB;YAC/B,MAAM,KAAK,GAAG,GAAG;iBACd,GAAG,CAAW,mBAAmB,CAAC;iBAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,gBAAS,EAAC,IAAA,WAAI,EAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;iBACxC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAEnC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACpB,MAAM,IAAI,mBAAM,CAAC,aAAa,QAAQ,cAAc,CAAC,CAAC;aACvD;YAED,4FAA4F;YAC5F,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AA5ED,kCA4EC;AAED;;;;;;;;GAQG;AACH,SAAgB,YAAY,CAAC,KAAU,EAAE,IAAsB,EAAE,QAAgB;IAC/E,MAAM,GAAG,GAAkB,OAAE,CAAC,GAAG,CAAC,6BAAa,CAAC,CAAC;IACjD,MAAM,eAAe,GAAG,GAAG,CAAC,GAAG,CAAoB,oBAAoB,CAAC,CAAC;IAEzE,OAAO,CAAC,GAAoB,EAAE,GAAqB,EAAE,EAAE;QACrD,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,GAAG,8BAAiB,CAAC,IAAI,CAAC,KAAK,8BAAiB,CAAC,IAAI,EAAE;YAChG,WAAW,CAAC,GAAG,QAAQ,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SACvD;aAAM,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,GAAG,8BAAiB,CAAC,IAAI,CAAC,KAAK,8BAAiB,CAAC,IAAI,EAAE;YACvG,IAAI,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE;gBACnC,MAAM,WAAW,GAAG,OAAE,CAAC,OAAO,CAAkB,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAW,CAAC,CAAC;gBAC3F,IAAI,WAAW,EAAE;oBACf,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;iBACjE;qBAAM;oBACL,YAAY,CACV;wBACE,KAAK,EAAE;4BACL,OAAO,EAAE,8GAA8G;4BACvH,IAAI,EAAE,GAAG;yBACV;qBACF,EACD,6BAAgB,CAAC,WAAW,CAC7B,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;iBACb;aACF;iBAAM;gBACL,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;aACrC;SACF;aAAM;YACL,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SACrC;IACH,CAAC,CAAC;AACJ,CAAC;AA9BD,oCA8BC"}
@@ -0,0 +1,11 @@
1
+ /// <reference types="qs" />
2
+ import { RouteArgs } from './RouteArgs';
3
+ import { IRouteParameter, ParameterType, IRouteCall } from '../interfaces';
4
+ import * as express from 'express';
5
+ export declare class ArgAsRequest extends RouteArgs {
6
+ get SupportedType(): ParameterType;
7
+ extract(callData: IRouteCall, _param: IRouteParameter, req: express.Request): Promise<{
8
+ CallData: IRouteCall;
9
+ Args: express.Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>;
10
+ }>;
11
+ }
@@ -6,19 +6,20 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.PureDataTransformer = void 0;
9
+ exports.ArgAsRequest = void 0;
10
+ const RouteArgs_1 = require("./RouteArgs");
10
11
  const interfaces_1 = require("../interfaces");
11
12
  const di_1 = require("@spinajs/di");
12
- /**
13
- * Default transformer that does nothing. Output data is exacly same as input.
14
- */
15
- let PureDataTransformer = class PureDataTransformer extends interfaces_1.DataTransformer {
16
- transform(data) {
17
- return data;
13
+ let ArgAsRequest = class ArgAsRequest extends RouteArgs_1.RouteArgs {
14
+ get SupportedType() {
15
+ return interfaces_1.ParameterType.Req;
16
+ }
17
+ async extract(callData, _param, req) {
18
+ return { CallData: callData, Args: req };
18
19
  }
19
20
  };
20
- PureDataTransformer = __decorate([
21
- di_1.Singleton()
22
- ], PureDataTransformer);
23
- exports.PureDataTransformer = PureDataTransformer;
24
- //# sourceMappingURL=PureFormatter.js.map
21
+ ArgAsRequest = __decorate([
22
+ (0, di_1.Injectable)()
23
+ ], ArgAsRequest);
24
+ exports.ArgAsRequest = ArgAsRequest;
25
+ //# sourceMappingURL=ArgAsRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArgAsRequest.js","sourceRoot":"","sources":["../../src/route-args/ArgAsRequest.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,8CAA2E;AAE3E,oCAAyC;AAGzC,IAAa,YAAY,GAAzB,MAAa,YAAa,SAAQ,qBAAS;IACzC,IAAW,aAAa;QACtB,OAAO,0BAAa,CAAC,GAAG,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,MAAuB,EAAE,GAAoB;QACtF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC3C,CAAC;CACF,CAAA;AARY,YAAY;IADxB,IAAA,eAAU,GAAE;GACA,YAAY,CAQxB;AARY,oCAAY"}
@@ -0,0 +1,10 @@
1
+ import { RouteArgs } from './RouteArgs';
2
+ import { IRouteParameter, ParameterType, IRouteCall } from '../interfaces';
3
+ import * as express from 'express';
4
+ export declare class ArgAsResponse extends RouteArgs {
5
+ get SupportedType(): ParameterType;
6
+ extract(callData: IRouteCall, _param: IRouteParameter, _req: express.Request, res: express.Response): Promise<{
7
+ CallData: IRouteCall;
8
+ Args: express.Response<any, Record<string, any>>;
9
+ }>;
10
+ }
@@ -6,22 +6,20 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.LimitDto = exports.LimitDtoSchema = void 0;
10
- const decorators_1 = require("../decorators");
11
- exports.LimitDtoSchema = {
12
- $schema: 'http://json-schema.org/draft-07/schema#',
13
- title: 'Limit DTO',
14
- type: 'object',
15
- properties: [{ Page: { type: 'number', minimum: 0 } }, { PerPage: { type: 'number', minimum: 1 } }],
16
- required: ['PerPage', 'Page'],
9
+ exports.ArgAsResponse = void 0;
10
+ const RouteArgs_1 = require("./RouteArgs");
11
+ const interfaces_1 = require("../interfaces");
12
+ const di_1 = require("@spinajs/di");
13
+ let ArgAsResponse = class ArgAsResponse extends RouteArgs_1.RouteArgs {
14
+ get SupportedType() {
15
+ return interfaces_1.ParameterType.Res;
16
+ }
17
+ async extract(callData, _param, _req, res) {
18
+ return { CallData: callData, Args: res };
19
+ }
17
20
  };
18
- /**
19
- * Limit dto for queries
20
- */
21
- let LimitDto = class LimitDto {
22
- };
23
- LimitDto = __decorate([
24
- decorators_1.Schema(exports.LimitDtoSchema)
25
- ], LimitDto);
26
- exports.LimitDto = LimitDto;
27
- //# sourceMappingURL=limit-dto.js.map
21
+ ArgAsResponse = __decorate([
22
+ (0, di_1.Injectable)()
23
+ ], ArgAsResponse);
24
+ exports.ArgAsResponse = ArgAsResponse;
25
+ //# sourceMappingURL=ArgAsResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArgAsResponse.js","sourceRoot":"","sources":["../../src/route-args/ArgAsResponse.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,8CAA2E;AAE3E,oCAAyC;AAGzC,IAAa,aAAa,GAA1B,MAAa,aAAc,SAAQ,qBAAS;IAC1C,IAAW,aAAa;QACtB,OAAO,0BAAa,CAAC,GAAG,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,MAAuB,EAAE,IAAqB,EAAE,GAAqB;QAC9G,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC3C,CAAC;CACF,CAAA;AARY,aAAa;IADzB,IAAA,eAAU,GAAE;GACA,aAAa,CAQzB;AARY,sCAAa"}
@@ -0,0 +1,3 @@
1
+ export declare abstract class ArgHydrator {
2
+ abstract hydrate(input: any): Promise<any>;
3
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ArgHydrator = void 0;
4
+ class ArgHydrator {
5
+ }
6
+ exports.ArgHydrator = ArgHydrator;
7
+ //# sourceMappingURL=ArgHydrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArgHydrator.js","sourceRoot":"","sources":["../../src/route-args/ArgHydrator.ts"],"names":[],"mappings":";;;AAAA,MAAsB,WAAW;CAEhC;AAFD,kCAEC"}
@@ -0,0 +1,10 @@
1
+ import { RouteArgs } from './RouteArgs';
2
+ import { IRouteParameter, ParameterType, IRouteCall, IRoute } from '../interfaces';
3
+ import * as express from 'express';
4
+ export declare class FromBody extends RouteArgs {
5
+ get SupportedType(): ParameterType;
6
+ extract(callData: IRouteCall, param: IRouteParameter, req: express.Request, _res: express.Response, route: IRoute): Promise<{
7
+ CallData: IRouteCall;
8
+ Args: any;
9
+ }>;
10
+ }
@@ -0,0 +1,44 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.FromBody = void 0;
10
+ const RouteArgs_1 = require("./RouteArgs");
11
+ const interfaces_1 = require("../interfaces");
12
+ const di_1 = require("@spinajs/di");
13
+ let FromBody = class FromBody extends RouteArgs_1.RouteArgs {
14
+ get SupportedType() {
15
+ return interfaces_1.ParameterType.FromBody;
16
+ }
17
+ async extract(callData, param, req, _res, route) {
18
+ const arg = req.body[param.Name] ? req.body[param.Name] : route.Parameters.size === 1 ? req.body : null;
19
+ let result = null;
20
+ const [hydrated, hValue] = await this.tryHydrateObject(arg, param);
21
+ if (hydrated) {
22
+ result = hValue;
23
+ }
24
+ else {
25
+ switch (param.RuntimeType.name) {
26
+ case 'String':
27
+ case 'Number':
28
+ case 'Boolean':
29
+ case 'Object':
30
+ result = arg;
31
+ break;
32
+ default:
33
+ result = param.RuntimeType.name === 'Array' ? arg : new param.RuntimeType(arg);
34
+ break;
35
+ }
36
+ }
37
+ return { CallData: callData, Args: result };
38
+ }
39
+ };
40
+ FromBody = __decorate([
41
+ (0, di_1.Injectable)()
42
+ ], FromBody);
43
+ exports.FromBody = FromBody;
44
+ //# sourceMappingURL=FromBody.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FromBody.js","sourceRoot":"","sources":["../../src/route-args/FromBody.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,8CAAmF;AAEnF,oCAAyC;AAGzC,IAAa,QAAQ,GAArB,MAAa,QAAS,SAAQ,qBAAS;IACrC,IAAW,aAAa;QACtB,OAAO,0BAAa,CAAC,QAAQ,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAsB,EAAE,GAAoB,EAAE,IAAsB,EAAE,KAAa;QAC5H,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACxG,IAAI,MAAM,GAAG,IAAI,CAAC;QAElB,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACnE,IAAI,QAAQ,EAAE;YACZ,MAAM,GAAG,MAAM,CAAC;SACjB;aAAM;YACL,QAAQ,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE;gBAC9B,KAAK,QAAQ,CAAC;gBACd,KAAK,QAAQ,CAAC;gBACd,KAAK,SAAS,CAAC;gBACf,KAAK,QAAQ;oBACX,MAAM,GAAG,GAAG,CAAC;oBACb,MAAM;gBACR;oBACE,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;oBAC/E,MAAM;aACT;SACF;QAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC9C,CAAC;CACF,CAAA;AA5BY,QAAQ;IADpB,IAAA,eAAU,GAAE;GACA,QAAQ,CA4BpB;AA5BY,4BAAQ"}
@@ -0,0 +1,13 @@
1
+ import { RouteArgs } from './RouteArgs';
2
+ import { IRouteParameter, ParameterType, IRouteCall } from '../interfaces';
3
+ import * as express from 'express';
4
+ import { Configuration } from '@spinajs/configuration';
5
+ export declare class FromCoockie extends RouteArgs {
6
+ protected _coockieSecret: string;
7
+ constructor(cfg: Configuration);
8
+ get SupportedType(): ParameterType;
9
+ extract(callData: IRouteCall, param: IRouteParameter, req: express.Request): Promise<{
10
+ CallData: IRouteCall;
11
+ Args: string | false;
12
+ }>;
13
+ }
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = 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);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ 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;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ var __metadata = (this && this.__metadata) || function (k, v) {
32
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.FromCoockie = void 0;
36
+ const RouteArgs_1 = require("./RouteArgs");
37
+ const interfaces_1 = require("../interfaces");
38
+ const di_1 = require("@spinajs/di");
39
+ const configuration_1 = require("@spinajs/configuration");
40
+ const cs = __importStar(require("cookie-signature"));
41
+ let FromCoockie = class FromCoockie extends RouteArgs_1.RouteArgs {
42
+ constructor(cfg) {
43
+ super();
44
+ this._coockieSecret = cfg.get('http.coockie.secret');
45
+ }
46
+ get SupportedType() {
47
+ return interfaces_1.ParameterType.FromCookie;
48
+ }
49
+ async extract(callData, param, req) {
50
+ const arg = req.cookies[param.Name];
51
+ if (arg !== null) {
52
+ let result = cs.unsign(arg, this._coockieSecret);
53
+ if (result === false) {
54
+ return { CallData: callData, Args: null };
55
+ }
56
+ const [hydrated, hValue] = await this.tryHydrateObject(arg, param);
57
+ if (hydrated) {
58
+ result = hValue;
59
+ }
60
+ return { CallData: callData, Args: result };
61
+ }
62
+ return { CallData: callData, Args: null };
63
+ }
64
+ };
65
+ FromCoockie = __decorate([
66
+ (0, di_1.Inject)(configuration_1.Configuration),
67
+ (0, di_1.Injectable)(RouteArgs_1.RouteArgs),
68
+ __metadata("design:paramtypes", [configuration_1.Configuration])
69
+ ], FromCoockie);
70
+ exports.FromCoockie = FromCoockie;
71
+ //# sourceMappingURL=FromCoockie.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FromCoockie.js","sourceRoot":"","sources":["../../src/route-args/FromCoockie.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAwC;AACxC,8CAA2E;AAE3E,oCAAiD;AACjD,0DAAuD;AACvD,qDAAuC;AAIvC,IAAa,WAAW,GAAxB,MAAa,WAAY,SAAQ,qBAAS;IAGxC,YAAY,GAAkB;QAC5B,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,GAAG,CAAS,qBAAqB,CAAC,CAAC;IAC/D,CAAC;IAED,IAAW,aAAa;QACtB,OAAO,0BAAa,CAAC,UAAU,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAsB,EAAE,GAAoB;QACrF,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEpC,IAAI,GAAG,KAAK,IAAI,EAAE;YAChB,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAEjD,IAAI,MAAM,KAAK,KAAK,EAAE;gBACpB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;aAC3C;YAED,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACnE,IAAI,QAAQ,EAAE;gBACZ,MAAM,GAAG,MAAM,CAAC;aACjB;YAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;SAC7C;QAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC;CACF,CAAA;AAjCY,WAAW;IAFvB,IAAA,WAAM,EAAC,6BAAa,CAAC;IACrB,IAAA,eAAU,EAAC,qBAAS,CAAC;qCAIH,6BAAa;GAHnB,WAAW,CAiCvB;AAjCY,kCAAW"}
@@ -0,0 +1,13 @@
1
+ import { RouteArgs } from './RouteArgs';
2
+ import { IRouteParameter, ParameterType, IRouteCall } from '../interfaces';
3
+ import * as express from 'express';
4
+ import { Configuration } from '@spinajs/configuration';
5
+ export declare class FromCookie extends RouteArgs {
6
+ protected _coockieSecret: string;
7
+ constructor(cfg: Configuration);
8
+ get SupportedType(): ParameterType;
9
+ extract(callData: IRouteCall, param: IRouteParameter, req: express.Request): Promise<{
10
+ CallData: IRouteCall;
11
+ Args: any;
12
+ }>;
13
+ }
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = 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);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ 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;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ var __metadata = (this && this.__metadata) || function (k, v) {
32
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.FromCookie = void 0;
36
+ const RouteArgs_1 = require("./RouteArgs");
37
+ const interfaces_1 = require("../interfaces");
38
+ const di_1 = require("@spinajs/di");
39
+ const configuration_1 = require("@spinajs/configuration");
40
+ const cs = __importStar(require("cookie-signature"));
41
+ let FromCookie = class FromCookie extends RouteArgs_1.RouteArgs {
42
+ constructor(cfg) {
43
+ super();
44
+ this._coockieSecret = cfg.get('http.coockie.secret');
45
+ }
46
+ get SupportedType() {
47
+ return interfaces_1.ParameterType.FromCookie;
48
+ }
49
+ async extract(callData, param, req) {
50
+ var _a;
51
+ const arg = req.cookies[param.Name];
52
+ if (arg !== null) {
53
+ let result = null;
54
+ if ((_a = param.Options) === null || _a === void 0 ? void 0 : _a.secure) {
55
+ result = cs.unsign(arg, this._coockieSecret);
56
+ if (result === false) {
57
+ return { CallData: callData, Args: null };
58
+ }
59
+ }
60
+ else {
61
+ result = arg;
62
+ }
63
+ return { CallData: callData, Args: await this.tryHydrateParam(result, param) };
64
+ }
65
+ return { CallData: callData, Args: null };
66
+ }
67
+ };
68
+ FromCookie = __decorate([
69
+ (0, di_1.Inject)(configuration_1.Configuration),
70
+ (0, di_1.Injectable)(),
71
+ __metadata("design:paramtypes", [configuration_1.Configuration])
72
+ ], FromCookie);
73
+ exports.FromCookie = FromCookie;
74
+ //# sourceMappingURL=FromCookie.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FromCookie.js","sourceRoot":"","sources":["../../src/route-args/FromCookie.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAwC;AACxC,8CAA2E;AAE3E,oCAAiD;AACjD,0DAAuD;AACvD,qDAAuC;AAIvC,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,qBAAS;IAGvC,YAAY,GAAkB;QAC5B,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,GAAG,CAAS,qBAAqB,CAAC,CAAC;IAC/D,CAAC;IAED,IAAW,aAAa;QACtB,OAAO,0BAAa,CAAC,UAAU,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAsB,EAAE,GAAoB;;QACrF,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEpC,IAAI,GAAG,KAAK,IAAI,EAAE;YAChB,IAAI,MAAM,GAAG,IAAI,CAAC;YAClB,IAAI,MAAA,KAAK,CAAC,OAAO,0CAAE,MAAM,EAAE;gBACzB,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC7C,IAAI,MAAM,KAAK,KAAK,EAAE;oBACpB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;iBAC3C;aACF;iBAAM;gBACL,MAAM,GAAG,GAAG,CAAC;aACd;YAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;SAChF;QAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC;CACF,CAAA;AAhCY,UAAU;IAFtB,IAAA,WAAM,EAAC,6BAAa,CAAC;IACrB,IAAA,eAAU,GAAE;qCAIM,6BAAa;GAHnB,UAAU,CAgCtB;AAhCY,gCAAU"}
@@ -0,0 +1,14 @@
1
+ import { IRouteArgs } from './RouteArgs';
2
+ import { IRouteParameter, ParameterType, IRouteCall } from '../interfaces';
3
+ import * as express from 'express';
4
+ import { AsyncModule, IContainer } from '@spinajs/di';
5
+ export declare class FromDi extends AsyncModule implements IRouteArgs {
6
+ protected Container: IContainer;
7
+ constructor(c: IContainer);
8
+ resolveAsync(): Promise<void>;
9
+ get SupportedType(): ParameterType;
10
+ extract(callData: IRouteCall, param: IRouteParameter, _req: express.Request): Promise<{
11
+ CallData: IRouteCall;
12
+ Args: unknown;
13
+ }>;
14
+ }
@@ -0,0 +1,35 @@
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 __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.FromDi = void 0;
13
+ const interfaces_1 = require("../interfaces");
14
+ const di_1 = require("@spinajs/di");
15
+ let FromDi = class FromDi extends di_1.AsyncModule {
16
+ constructor(c) {
17
+ super();
18
+ this.Container = c;
19
+ }
20
+ async resolveAsync() { }
21
+ get SupportedType() {
22
+ return interfaces_1.ParameterType.FromDi;
23
+ }
24
+ async extract(callData, param, _req) {
25
+ const srv = await this.Container.resolve(param.RuntimeType, param.Options);
26
+ return { CallData: callData, Args: srv };
27
+ }
28
+ };
29
+ FromDi = __decorate([
30
+ (0, di_1.Injectable)(),
31
+ (0, di_1.Inject)(di_1.Container),
32
+ __metadata("design:paramtypes", [Object])
33
+ ], FromDi);
34
+ exports.FromDi = FromDi;
35
+ //# sourceMappingURL=FromDi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FromDi.js","sourceRoot":"","sources":["../../src/route-args/FromDi.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,8CAA2E;AAE3E,oCAAqF;AAIrF,IAAa,MAAM,GAAnB,MAAa,MAAO,SAAQ,gBAAW;IAGrC,YAAY,CAAa;QACvB,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,YAAY,KAAmB,CAAC;IAEtC,IAAW,aAAa;QACtB,OAAO,0BAAa,CAAC,MAAM,CAAC;IAC9B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAsB,EAAE,IAAqB;QACtF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC3C,CAAC;CACF,CAAA;AAnBY,MAAM;IAFlB,IAAA,eAAU,GAAE;IACZ,IAAA,WAAM,EAAC,cAAS,CAAC;;GACL,MAAM,CAmBlB;AAnBY,wBAAM"}