alado 2.0.1 → 2.1.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.
@@ -1,4 +1,3 @@
1
1
  github: databikers
2
2
  patreon: databikers
3
- open_collective: data-bikers
4
- custom: [ "https://dir.floss.fund/view/@databikers.com" ]
3
+ custom: ['https://dir.floss.fund/view/@databikers.com']
@@ -6,7 +6,7 @@ body:
6
6
  id: title
7
7
  attributes:
8
8
  label: Summary
9
- placeholder: "Short description of the bug"
9
+ placeholder: 'Short description of the bug'
10
10
  validations:
11
11
  required: true
12
12
 
@@ -14,7 +14,7 @@ body:
14
14
  id: steps
15
15
  attributes:
16
16
  label: Steps to Reproduce
17
- description: "What did you do? What did you expect?"
17
+ description: 'What did you do? What did you expect?'
18
18
  placeholder: |
19
19
  1. Run npm start
20
20
  2. Observe crash
@@ -6,7 +6,7 @@ body:
6
6
  id: title
7
7
  attributes:
8
8
  label: Feature Title
9
- placeholder: "e.g. add some feature"
9
+ placeholder: 'e.g. add some feature'
10
10
  validations:
11
11
  required: true
12
12
 
package/README.md CHANGED
@@ -6,8 +6,8 @@ it provides out-of-the-box such fully-functioning features as routing, CORS, aut
6
6
  parsing query and path parameters, and the request body, file uploading, request authentication, etc.
7
7
 
8
8
  # Documentation for version 2.0.0 and above:
9
- Version 2.0.0 comes with decorators that simplify the project structure and minimize the amount of code you need to write.
10
9
 
10
+ Version 2.0.0 comes with decorators that simplify the project structure and minimize the amount of code you need to write.
11
11
 
12
12
  There is an example of the API creating with Alado (version >= 2.0.0):
13
13
  [https://github.com/databikers/alado-decorators-api-example](https://github.com/databikers/alado-decorators-api-example)
@@ -26,6 +26,7 @@ head(path: string, options: HttpDecoratorOptions = {})
26
26
  ```
27
27
 
28
28
  #### Arguments
29
+
29
30
  - **path**: Route string (e.g., `/users/:id`).
30
31
  - **options**: `HttpDecoratorOptions` object, may include:
31
32
  - `appId`: Identifier of the application instance.
@@ -43,6 +44,7 @@ defineRequest(request: Partial<Record<keyof [Request](#request), AnyClass>>)
43
44
  ```
44
45
 
45
46
  #### Arguments
47
+
46
48
  - **request**: A partial mapping of keys from [Request](#request) to your DTO classes.
47
49
  - Keys can include:
48
50
  - `headers`, `query`, `path`, `body`: each a record of property definitions.
@@ -78,6 +80,7 @@ defineResponse(response: [Response](#response)<any>)
78
80
  ```
79
81
 
80
82
  #### Arguments
83
+
81
84
  - **response**: Response schema definition, including:
82
85
  - `title`: Short descriptive title.
83
86
  - `description`: Explanation of the response.
@@ -96,6 +99,7 @@ interface Response<T> {
96
99
  body?: T;
97
100
  }
98
101
  ```
102
+
99
103
  ---
100
104
 
101
105
  ### `withAuth` decorator
@@ -105,6 +109,7 @@ withAuth(requestAuthentication: [RequestAuthentication](#requestauthentication))
105
109
  ```
106
110
 
107
111
  #### Arguments
112
+
108
113
  - **requestAuthentication**: Defines authentication requirements, including:
109
114
  - `inputProperty`: Field name in request used for auth input.
110
115
  - `outputProperty`: Field name in request to store auth result.
@@ -126,7 +131,6 @@ interface RequestAuthentication {
126
131
  }
127
132
  ```
128
133
 
129
-
130
134
  ```typescript
131
135
  import { RequestAuthentication } from 'alado';
132
136
  import { DataStore } from '@data-store';
@@ -143,7 +147,6 @@ export const bearerAuth: RequestAuthentication = {
143
147
  message: 'Unauthorized',
144
148
  },
145
149
  };
146
-
147
150
  ```
148
151
 
149
152
  #### `AladoServerError`
@@ -154,11 +157,11 @@ type AladoServerError = {
154
157
  message: string;
155
158
  };
156
159
  ```
160
+
157
161
  ---
158
162
 
159
163
  Example of controller:
160
164
 
161
-
162
165
  ```ts
163
166
  export class UserController {
164
167
  @post('/user', { tags: ['User'] })
@@ -178,7 +181,7 @@ export class UserController {
178
181
  body: user,
179
182
  };
180
183
  }
181
-
184
+
182
185
  @patch('/user/:id', { tags: ['User'] })
183
186
  @withAuth(bearerAuth)
184
187
  @defineResponse({
@@ -247,7 +250,6 @@ export class UserController {
247
250
  body: {},
248
251
  };
249
252
  }
250
-
251
253
  }
252
254
  ```
253
255
 
@@ -262,6 +264,7 @@ fileUploadProperty(filePropertyDefinition: [FilePropertyDefinition](#filepropert
262
264
  ```
263
265
 
264
266
  #### Arguments
267
+
265
268
  - **filePropertyDefinition**: Object describing file upload rules, including:
266
269
  - `mimetypes`: Array of allowed MIME types.
267
270
  - `maxSize`: Maximum file size (bytes).
@@ -290,6 +293,7 @@ documentProperty(propertyDocumentation: [PropertyDocumentation](#propertydocumen
290
293
  ```
291
294
 
292
295
  #### Arguments
296
+
293
297
  - **propertyDocumentation**: Documentation metadata for a property, including:
294
298
  - `schema`: JSON Schema–like definition (`type`, `format`, validation structure).
295
299
  - `description`: Human-readable explanation.
@@ -343,6 +347,14 @@ interface PropertyDefinitionSchema {
343
347
 
344
348
  ---
345
349
 
350
+ ### `transformProperty`
351
+
352
+ ```ts
353
+ transformProperty(propertyTransformer: (value:any) => any | Promise<any>)
354
+
355
+ ```
356
+
357
+
346
358
  ### `validateProperty`
347
359
 
348
360
  ```ts
@@ -350,6 +362,7 @@ validateProperty(propertyValidation: [PropertyValidation](#propertyvalidation))
350
362
  ```
351
363
 
352
364
  #### Arguments
365
+
353
366
  - **propertyValidation**: Validation rules, including:
354
367
  - `required`: Whether the property is mandatory.
355
368
  - `handler`: Function to validate the property value (sync or async).
@@ -366,6 +379,7 @@ interface PropertyValidation {
366
379
  ```
367
380
 
368
381
  ---
382
+
369
383
  DTOs examples:
370
384
 
371
385
  ```typescript
@@ -389,10 +403,8 @@ export class Id {
389
403
  })
390
404
  id: string = '7ef5ed25-53b1-432f-96ec-8e35d830eb9c';
391
405
  }
392
-
393
406
  ```
394
407
 
395
-
396
408
  ```typescript
397
409
  import { fileUploadProperty } from 'alado';
398
410
 
@@ -416,7 +428,6 @@ export class UserFilesDto {
416
428
  })
417
429
  avatar: string = '/path/to/image.png';
418
430
  }
419
-
420
431
  ```
421
432
 
422
433
  ```typescript
@@ -459,7 +470,6 @@ export class CredentialsDto {
459
470
  }
460
471
 
461
472
  export const credentialsDto = new CredentialsDto();
462
-
463
473
  ```
464
474
 
465
475
  ---
@@ -475,14 +485,14 @@ import { UserController } from '@user';
475
485
 
476
486
  export const app = initializeApplication({
477
487
  serverOptions: aladoServerOptions,
478
- controllers: [UserController]
488
+ controllers: [UserController],
479
489
  });
480
490
 
481
491
  app.start(() => console.log('Application has been successfully started'));
482
-
483
492
  ```
484
493
 
485
494
  #### Arguments
495
+
486
496
  - **initializeApplicationOptions**: Object containing:
487
497
  - **serverOptions** ([AladoServerOptions](#aladoserveroptions)): Configuration for starting the server (e.g., `appId`, port, logger).
488
498
  - **controllers**: Array of controller classes to initialize at startup.
@@ -515,8 +525,6 @@ interface AladoServerLogger {
515
525
  }
516
526
  ```
517
527
 
518
-
519
-
520
528
  There is an example of the API creating with Alado (version < 2.0.0):
521
529
 
522
530
  The basis of use is a combination of interface simplicity and separation of the “routine” part of writing API
@@ -1 +1 @@
1
- {"version":3,"file":"alado-server.js","sourceRoot":"","sources":["../../src/alado-server/alado-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"alado-server.js","sourceRoot":"","sources":["../../src/alado-server/alado-server.ts"],"names":[],"mappings":";;;AAEA,mCAAsG;AAGtG,qCAAiC;AACjC,uCAA6C;AAC7C,qCAA+D;AAE/D,MAAa,WAAW;IACL,KAAK,CAAS;IACd,MAAM,CAAS;IACf,MAAM,CAAS;IACf,gBAAgB,CAAM;IAC/B,IAAI,CAAS;IACb,IAAI,CAAS;IACb,OAAO,CAAS;IACP,MAAM,CAAqB;IAE5C,YAAY,OAA2B;QACrC,IAAA,8BAAoB,EAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,mBAAU,CAAC;QACzC,IAAI,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC;YAC9B,OAAO,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,IAAA,wBAAc,EAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3E,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAK,OAA6B,CAAC;QAC/D,IAAI,CAAC,gBAAgB,GAAG,EAAE,GAAG,gCAAuB,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;QAC7F,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAM,CACtB;YACE,IAAI,EAAE;gBACJ,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM;gBAC5B,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,IAAI,GAAG;gBAClD,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,IAAI,EAAE;gBACnD,cAAc,EAAE,IAAI,GAAG,EAAY;gBACnC,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,IAAI,EAAE;gBACjD,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,IAAI,KAAK;aAC/D;YACD,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,EACD,IAAI,CAAC,gBAAgB,CACtB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,oBAAW,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,uBAAc,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,IAAA,4BAAiB,EAC7B;YACE,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM;YAChC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,EACD;YACE,GAAG,OAAO,CAAC,GAAG;YACd,GAAG,OAAO,CAAC,aAAa;SACzB,CACF,CAAC;IACJ,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAEM,GAAG,CAAC,IAAY,EAAE,OAAqB,EAAE,OAAiE;QAC/G,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAU,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAEM,IAAI,CAAC,IAAY,EAAE,OAAqB,EAAE,OAAiE;QAChH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAEM,GAAG,CAAC,IAAY,EAAE,OAAqB,EAAE,OAAiE;QAC/G,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAU,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAEM,KAAK,CAAC,IAAY,EAAE,OAAqB,EAAE,OAAiE;QACjH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAU,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAEM,MAAM,CACX,IAAY,EACZ,OAAqB,EACrB,OAAiE;QAEjE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAU,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAEM,IAAI,CAAC,IAAY,EAAE,OAAqB,EAAE,OAAiD;QAChG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAEM,KAAK,CAAC,EAA0B;QACrC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACnG,CAAC;IAEM,IAAI,CAAC,EAA2B;QACrC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IAC9D,CAAC;CACF;AA3FD,kCA2FC"}
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/decorators/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/decorators/http.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  export * from './initialize-application';
2
2
  export * from './document-property';
3
3
  export * from './validate-property';
4
+ export * from './transform-property';
4
5
  export * from './file-upload-property';
5
6
  export * from './with-auth';
6
7
  export * from './define-request';
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./initialize-application"), exports);
18
18
  __exportStar(require("./document-property"), exports);
19
19
  __exportStar(require("./validate-property"), exports);
20
+ __exportStar(require("./transform-property"), exports);
20
21
  __exportStar(require("./file-upload-property"), exports);
21
22
  __exportStar(require("./with-auth"), exports);
22
23
  __exportStar(require("./define-request"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,sDAAoC;AACpC,sDAAoC;AACpC,yDAAuC;AACvC,8CAA4B;AAC5B,mDAAiC;AACjC,oDAAkC;AAClC,yCAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,sDAAoC;AACpC,sDAAoC;AACpC,uDAAqC;AACrC,yDAAuC;AACvC,8CAA4B;AAC5B,mDAAiC;AACjC,oDAAkC;AAClC,yCAAuB"}
@@ -0,0 +1 @@
1
+ export declare function transformProperty(propertyTransformer: (value: any) => any | Promise<any>): (...args: any[]) => void;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transformProperty = void 0;
4
+ const _injector_1 = require("../injector");
5
+ const initialize_injector_1 = require("./initialize-injector");
6
+ function transformProperty(propertyTransformer) {
7
+ (0, initialize_injector_1.initializeInjector)();
8
+ return function (...args) {
9
+ if (!_injector_1.injector.injected.propertyDefinitionsMapping) {
10
+ _injector_1.injector.injected.propertyDefinitionsMapping = {};
11
+ }
12
+ const key = args[0].constructor.name;
13
+ _injector_1.injector.injected.propertyDefinitionsMapping[key] =
14
+ _injector_1.injector.injected.propertyDefinitionsMapping[key] || {};
15
+ _injector_1.injector.injected.propertyDefinitionsMapping[key][args[1]] =
16
+ _injector_1.injector.injected.propertyDefinitionsMapping[key][args[1]] || {};
17
+ _injector_1.injector.injected.propertyDefinitionsMapping[key][args[1]].transform =
18
+ propertyTransformer;
19
+ };
20
+ }
21
+ exports.transformProperty = transformProperty;
22
+ //# sourceMappingURL=transform-property.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform-property.js","sourceRoot":"","sources":["../../src/decorators/transform-property.ts"],"names":[],"mappings":";;;AACA,yCAAqC;AACrC,+DAA2D;AAE3D,SAAgB,iBAAiB,CAAC,mBAAuD;IACvF,IAAA,wCAAkB,GAAE,CAAC;IACrB,OAAO,UAAU,GAAG,IAAW;QAC7B,IAAI,CAAC,oBAAQ,CAAC,QAAQ,CAAC,0BAA0B,EAAE,CAAC;YAClD,oBAAQ,CAAC,QAAQ,CAAC,0BAA0B,GAAG,EAAE,CAAC;QACpD,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;QACrC,oBAAQ,CAAC,QAAQ,CAAC,0BAA0B,CAAC,GAAG,CAAC;YAC/C,oBAAQ,CAAC,QAAQ,CAAC,0BAA0B,CAAC,GAAG,CAAC,IAAK,EAAyC,CAAC;QAClG,oBAAQ,CAAC,QAAQ,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAW,CAAC;YAClE,oBAAQ,CAAC,QAAQ,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAW,CAAC,IAAK,EAAyB,CAAC;QACpG,oBAAQ,CAAC,QAAQ,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAW,CAAwB,CAAC,SAAS;YACpG,mBAAmB,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC;AAdD,8CAcC"}
@@ -1 +1 @@
1
- {"version":3,"file":"injector.js","sourceRoot":"","sources":["../../src/injector/injector.ts"],"names":[],"mappings":";;;AAEA,MAAM,IAAI,GAA8B,IAAI,GAAG,EAAe,CAAC;AAE/D,MAAM,MAAM,GAAG,CAAI,YAAwB,EAAQ,EAAE;IACnD,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,QAAkB,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAwB,IAAI,KAAK,CAC7C,EAAE,EACF;IACE,GAAG,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;QAClC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAkB,CAAC,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,GAAG,CAAC,QAAkB,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;CACF,CACF,CAAC;AAEF,MAAa,QAAQ;IACZ,MAAM,CAAC,IAAgB;QAC5B,OAAO,MAAM,CAAI,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,QAAa,CAAC;IACvB,CAAC;CACF;AARD,4BAQC;AAGY,QAAA,QAAQ,GAAG,IAAI,QAAQ,EAAmB,CAAC"}
1
+ {"version":3,"file":"injector.js","sourceRoot":"","sources":["../../src/injector/injector.ts"],"names":[],"mappings":";;;AAEA,MAAM,IAAI,GAA8B,IAAI,GAAG,EAAe,CAAC;AAE/D,MAAM,MAAM,GAAG,CAAI,YAAwB,EAAQ,EAAE;IACnD,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,QAAkB,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAwB,IAAI,KAAK,CAC7C,EAAE,EACF;IACE,GAAG,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;QAClC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAkB,CAAC,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,GAAG,CAAC,QAAkB,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;CACF,CACF,CAAC;AAEF,MAAa,QAAQ;IACZ,MAAM,CAAC,IAAgB;QAC5B,OAAO,MAAM,CAAI,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,QAAa,CAAC;IACvB,CAAC;CACF;AARD,4BAQC;AAEY,QAAA,QAAQ,GAAG,IAAI,QAAQ,EAAmB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "alado",
3
- "version": "2.0.1",
3
+ "version": "2.1.0",
4
4
  "description": "Extremely fast, lightweight, robust framework for HTTP applications written in Node.js",
5
5
  "keywords": [
6
6
  "HTTP",