alado 3.2.3 → 3.5.0

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 (35) hide show
  1. package/README.md +15 -6
  2. package/dist/alado-server/alado-server.js +4 -1
  3. package/dist/alado-server/alado-server.js.map +1 -1
  4. package/dist/constants/http-server.d.ts +1 -0
  5. package/dist/constants/http-server.js +2 -1
  6. package/dist/constants/http-server.js.map +1 -1
  7. package/dist/dto/property-definition.d.ts +1 -0
  8. package/dist/helpers/parser/access-control-checker.js +11 -3
  9. package/dist/helpers/parser/access-control-checker.js.map +1 -1
  10. package/dist/helpers/parser/body-parser.d.ts +14 -0
  11. package/dist/helpers/parser/body-parser.js +76 -17
  12. package/dist/helpers/parser/body-parser.js.map +1 -1
  13. package/dist/helpers/validate/alado-options/validate-alado-options.js +15 -0
  14. package/dist/helpers/validate/alado-options/validate-alado-options.js.map +1 -1
  15. package/dist/helpers/validate/built-in/validator.js +4 -1
  16. package/dist/helpers/validate/built-in/validator.js.map +1 -1
  17. package/dist/helpers/validate/context/file-signature.d.ts +5 -0
  18. package/dist/helpers/validate/context/file-signature.js +57 -0
  19. package/dist/helpers/validate/context/file-signature.js.map +1 -0
  20. package/dist/helpers/validate/context/validate-context.js +4 -1
  21. package/dist/helpers/validate/context/validate-context.js.map +1 -1
  22. package/dist/helpers/validate/context/validate-request-files.js +6 -1
  23. package/dist/helpers/validate/context/validate-request-files.js.map +1 -1
  24. package/dist/helpers/validate/context/validate-request-part.js +126 -49
  25. package/dist/helpers/validate/context/validate-request-part.js.map +1 -1
  26. package/dist/options/alado-server-options.d.ts +2 -0
  27. package/dist/options/request-processor-options.d.ts +1 -0
  28. package/dist/options/router-options.d.ts +1 -0
  29. package/dist/request-processor/request-processor.d.ts +14 -4
  30. package/dist/request-processor/request-processor.js +240 -88
  31. package/dist/request-processor/request-processor.js.map +1 -1
  32. package/dist/router/router.d.ts +14 -0
  33. package/dist/router/router.js +86 -13
  34. package/dist/router/router.js.map +1 -1
  35. package/package.json +1 -1
@@ -24,14 +24,23 @@ function toRoutePattern(path) {
24
24
  }
25
25
  class Router {
26
26
  routes = new Map();
27
+ // per-method lookup tables, rebuilt on every use(): exact (lower-cased) path -> route for
28
+ // routes without params, and an ordered list of pre-compiled matchers for the rest
29
+ staticRoutes = new Map();
30
+ dynamicRoutes = new Map();
31
+ meta = new Map();
27
32
  options;
28
33
  openApiDocObject;
29
34
  logger;
35
+ caseSensitive;
36
+ regExpFlags;
30
37
  constructor(options, openApiDocObject) {
31
38
  this.options = {
32
39
  cors: options.cors,
33
40
  openApiDoc: options.openApiDoc,
34
41
  };
42
+ this.caseSensitive = options.caseSensitiveRoutes !== false;
43
+ this.regExpFlags = this.caseSensitive ? '' : 'i';
35
44
  this.openApiDocObject = openApiDocObject;
36
45
  this.logger = options.logger;
37
46
  }
@@ -60,7 +69,9 @@ class Router {
60
69
  const pathData = {};
61
70
  let openApiRoute = uri;
62
71
  const openApiMethod = method.toLowerCase();
63
- const { pattern, params } = toRoutePattern((0, _helper_1.clearRoutePath)(uri));
72
+ const cleanUri = (0, _helper_1.clearRoutePath)(uri);
73
+ const { pattern, params } = toRoutePattern(cleanUri);
74
+ const literal = params.length ? undefined : this.routeKey(cleanUri);
64
75
  const route = `${method}${pattern}`;
65
76
  const optionsRoute = `${_const_1.HttpMethod.OPTIONS}${pattern}`;
66
77
  params.forEach((variable, i) => {
@@ -70,7 +81,14 @@ class Router {
70
81
  if (this.options.openApiDoc?.enable && !context?.options?.isHidden) {
71
82
  (0, _factory_1.openApiDocFactory)(openApiMethod, openApiRoute, context, this.openApiDocObject);
72
83
  }
73
- const routeRegEx = new RegExp(`^${route.replace(/\//g, '/')}\/?$`, 'i');
84
+ // after the OpenAPI doc is built; done once here rather than on every request
85
+ context.request = context.request || {};
86
+ context.request.headers = context.request.headers || {};
87
+ context.request.query = context.request.query || {};
88
+ context.request.body = context.request.body || {};
89
+ context.request.path = context.request.path || {};
90
+ context.request.files = context.request.files || {};
91
+ const routeRegEx = new RegExp(`^${route.replace(/\//g, '/')}\/?$`, this.regExpFlags);
74
92
  const optionsDataKey = this.getOptionsDataKey(method, routeRegEx);
75
93
  if (this.options.cors?.enable) {
76
94
  if (this.options.cors?.allowedMethods?.has(optionsDataKey)) {
@@ -81,7 +99,8 @@ class Router {
81
99
  _const_1.HttpMethod.OPTIONS,
82
100
  method,
83
101
  ]);
84
- const optionsRouteRegEx = new RegExp(`^${optionsRoute.replace(/\//g, '/')}\/?$`, 'i');
102
+ const optionsRouteRegEx = new RegExp(`^${optionsRoute.replace(/\//g, '/')}\/?$`, this.regExpFlags);
103
+ this.meta.set(optionsRouteRegEx, { method: _const_1.HttpMethod.OPTIONS, pattern, literal });
85
104
  this.routes.set(optionsRouteRegEx, {
86
105
  route: optionsRouteRegEx,
87
106
  path: pathData,
@@ -112,6 +131,7 @@ class Router {
112
131
  });
113
132
  }
114
133
  }
134
+ this.meta.set(routeRegEx, { method, pattern, literal });
115
135
  this.routes.set(routeRegEx, { route: routeRegEx, path: pathData, context, handler, optionsDataKey });
116
136
  this.sortRoutes();
117
137
  }
@@ -123,6 +143,30 @@ class Router {
123
143
  sortRoutes() {
124
144
  const paramCount = (route) => Object.keys(route.path || {}).length;
125
145
  this.routes = new Map([...this.routes.entries()].sort(([, a,], [, b,]) => paramCount(a) - paramCount(b)));
146
+ this.buildIndex();
147
+ }
148
+ buildIndex() {
149
+ this.staticRoutes = new Map();
150
+ this.dynamicRoutes = new Map();
151
+ for (const [route, data,] of this.routes) {
152
+ const meta = this.meta.get(route);
153
+ if (meta.literal !== undefined) {
154
+ const table = this.staticRoutes.get(meta.method) || new Map();
155
+ // first registration wins, as with the ordered scan
156
+ if (!table.has(meta.literal)) {
157
+ table.set(meta.literal, data);
158
+ }
159
+ this.staticRoutes.set(meta.method, table);
160
+ continue;
161
+ }
162
+ const list = this.dynamicRoutes.get(meta.method) || [];
163
+ list.push({
164
+ matcher: new RegExp(`^${meta.pattern}\\/?$`, this.regExpFlags),
165
+ data,
166
+ params: Object.entries(data.path || {}),
167
+ });
168
+ this.dynamicRoutes.set(meta.method, list);
169
+ }
126
170
  }
127
171
  getOptionsDataKey(method, routeRegEx) {
128
172
  return routeRegEx.toString().replace(`^${method}\\/`, '');
@@ -131,20 +175,49 @@ class Router {
131
175
  return this.options.cors?.allowedMethods?.get(key) || [];
132
176
  }
133
177
  parse(method, uri) {
134
- uri = (0, _helper_1.clearRoutePath)(uri);
135
- const p = `${method}${uri}`;
136
- const path = {};
137
- for (const [route, data,] of this.routes) {
138
- const matches = p.match(route);
139
- if (matches) {
140
- for (const k in data.path) {
141
- path[k] = matches[data.path[k]];
178
+ return this.match(method, (0, _helper_1.clearRoutePath)(uri));
179
+ }
180
+ /**
181
+ * Same as parse(), for a path that already went through clearRoutePath().
182
+ * Param-less routes are a hash lookup; only routes with params are tried as RegExps,
183
+ * and only those registered for the request method.
184
+ */
185
+ match(method, uri) {
186
+ const table = this.staticRoutes.get(method);
187
+ if (table !== undefined) {
188
+ const data = table.get(this.routeKey(uri));
189
+ if (data !== undefined) {
190
+ return this.toResult(data, {});
191
+ }
192
+ }
193
+ const list = this.dynamicRoutes.get(method);
194
+ if (list !== undefined) {
195
+ for (let i = 0; i < list.length; i++) {
196
+ const matches = list[i].matcher.exec(uri);
197
+ if (matches !== null) {
198
+ const path = {};
199
+ const params = list[i].params;
200
+ for (let j = 0; j < params.length; j++) {
201
+ path[params[j][0]] = matches[params[j][1]];
202
+ }
203
+ return this.toResult(list[i].data, path);
142
204
  }
143
- const allowedMethods = this.options.cors.allowedMethods.get(data.optionsDataKey ?? this.getOptionsDataKey(method, route));
144
- return { ...data, path, allowedMethods };
145
205
  }
146
206
  }
147
207
  }
208
+ routeKey(path) {
209
+ return this.caseSensitive ? path : path.toLowerCase();
210
+ }
211
+ toResult(data, path) {
212
+ return {
213
+ route: data.route,
214
+ path,
215
+ context: data.context,
216
+ handler: data.handler,
217
+ optionsDataKey: data.optionsDataKey,
218
+ allowedMethods: this.options.cors?.allowedMethods?.get(data.optionsDataKey),
219
+ };
220
+ }
148
221
  }
149
222
  exports.Router = Router;
150
223
  //# sourceMappingURL=router.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/router/router.ts"],"names":[],"mappings":";;;AAYA,wCAYC;AAxBD,mCAAiD;AAGjD,uCAA6C;AAC7C,qCAA0D;AAE1D,MAAM,iBAAiB,GAAG,WAAW,CAAC;AAEtC,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAgB,cAAc,CAAC,IAAY;IACzC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,OAAO,GAAW,EAAE,CAAC;IACzB,IAAI,IAAI,GAAW,CAAC,CAAC;IACrB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACrD,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACvD,OAAO,IAAI,UAAU,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,GAAI,KAAK,CAAC,KAAgB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACnD,CAAC;IACD,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC;AAeD,MAAa,MAAM;IACT,MAAM,GAA4B,IAAI,GAAG,EAAsB,CAAC;IACxD,OAAO,CAAgB;IACvB,gBAAgB,CAAM;IACtB,MAAM,CAAoB;IAE1C,YAAY,OAAsB,EAAE,gBAAqB;QACvD,IAAI,CAAC,OAAO,GAAG;YACb,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAA2B,CAAC;IACpD,CAAC;IAED,GAAG,CACD,MAAkB,EAClB,GAAW,EACX,OAAqB,EACrB,OAAqE;QAErE,IAAI,CAAC;YACH,IAAI,CAAC,oBAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,0BAA0B,oBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtE,CAAC;YAED,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,CAAC;YAED,IACE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM;gBAC/B,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,KAAK,IAAA,wBAAc,EAAC,GAAG,CAAC;gBACtD,MAAM,KAAK,mBAAU,CAAC,GAAG,EACzB,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,SAAS,IAAA,wBAAc,EAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;YACpF,CAAC;YAED,IAAA,yBAAe,EAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAE1D,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,+CAA+C,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC;YAChF,MAAM,CAAC,CAAC;QACV,CAAC;QAED,MAAM,QAAQ,GAAQ,EAAE,CAAC;QACzB,IAAI,YAAY,GAAW,GAAG,CAAC;QAC/B,MAAM,aAAa,GAAW,MAAM,CAAC,WAAW,EAAE,CAAC;QAEnD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,IAAA,wBAAc,EAAC,GAAG,CAAC,CAAC,CAAC;QAChE,MAAM,KAAK,GAAW,GAAG,MAAM,GAAG,OAAO,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAW,GAAG,mBAAU,CAAC,OAAO,GAAG,OAAO,EAAE,CAAC;QAC/D,MAAM,CAAC,OAAO,CAAC,CAAC,QAAgB,EAAE,CAAS,EAAE,EAAE;YAC7C,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC3B,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,QAAQ,EAAE,EAAE,IAAI,QAAQ,GAAG,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;YACnE,IAAA,4BAAiB,EAAC,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACjF,CAAC;QAED,MAAM,UAAU,GAAW,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChF,MAAM,cAAc,GAAW,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAE1E,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC3D,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtE,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,cAAc,EAAE;oBACpD,mBAAU,CAAC,OAAO;oBAClB,MAAM;iBACP,CAAC,CAAC;gBACH,MAAM,iBAAiB,GAAW,IAAI,MAAM,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAC9F,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE;oBACjC,KAAK,EAAE,iBAAiB;oBACxB,IAAI,EAAE,QAAQ;oBACd,OAAO;oBACP,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,mBAAU,CAAC,OAAO,EAAE,iBAAiB,CAAC;oBAC7E,OAAO,EAAE,CAAC,OAAgB,EAAE,EAAE;wBAC5B,MAAM,OAAO,GAA2B;4BACtC,8BAA8B,EAAE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;4BAC9E,8BAA8B,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;4BACnF,+BAA+B,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;4BACnF,kCAAkC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;4BAC5F,wBAAwB,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,OAAO;yBACjG,CAAC;wBACF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;4BACnD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAgB,CAAC,EAAE,CAAC;gCACvE,OAAO,CAAC,6BAA6B,CAAC,GAAG,OAAO,CAAC,MAAgB,CAAC;4BACpE,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,6BAA6B,CAAC;gCACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAwB,IAAK,OAAO,CAAC,MAAiB,CAAC;wBAC9E,CAAC;wBACD,OAAO;4BACL,UAAU,EAAE,GAAG;4BACf,OAAO;yBACR,CAAC;oBACJ,CAAC;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;QACrG,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACO,UAAU;QAClB,MAAM,UAAU,GAAG,CAAC,KAAiB,EAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACvF,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CACnB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAC7B,CACE,CACE,AADD,EAEC,CAAC,EACF,EACD,CACE,AADD,EAEC,CAAC,EACF,EACD,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CACnC,CACF,CAAC;IACJ,CAAC;IAES,iBAAiB,CAAC,MAAc,EAAE,UAAkB;QAC5D,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC;IAEM,cAAc,CAAC,GAAW;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,MAAkB,EAAE,GAAW;QACnC,GAAG,GAAG,IAAA,wBAAc,EAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,CAAC,GAAG,GAAG,MAAM,GAAG,GAAG,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAQ,EAAE,CAAC;QACrB,KAAK,MAAM,CACT,KAAK,EACL,IAAI,EACL,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,OAAO,GAA4B,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACxD,IAAI,OAAO,EAAE,CAAC;gBACZ,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC1B,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAsB,CAAC,CAAC;gBACvD,CAAC;gBACD,MAAM,cAAc,GAAiB,IAAI,CAAC,OAAO,CAAC,IAAK,CAAC,cAAe,CAAC,GAAG,CACzE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAC7D,CAAC;gBACF,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAhKD,wBAgKC"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/router/router.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "alado",
3
- "version": "3.2.3",
3
+ "version": "3.5.0",
4
4
  "description": "Fast, lightweight, robust framework for HTTP applications written in Node.js",
5
5
  "keywords": [
6
6
  "HTTP",