@zerooneit/expressive-tea 1.3.0-beta.2 → 1.3.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/classes/Boot.d.ts CHANGED
@@ -2,7 +2,7 @@ import 'reflect-metadata';
2
2
  import '../inversify.config';
3
3
  import { Express } from 'express';
4
4
  import Settings from '../classes/Settings';
5
- import { ExpressiveTeaApplication } from '../libs/interfaces';
5
+ import { ExpressiveTeaApplication } from '@expressive-tea/commons/interfaces';
6
6
  /**
7
7
  * Expressive Tea Application interface is the response from an started application, contains the express application
8
8
  * and a node http server instance.
package/classes/Boot.js CHANGED
@@ -9,7 +9,7 @@ const fs = require("fs");
9
9
  const http = require("http");
10
10
  const https = require("https");
11
11
  const Settings_1 = require("../classes/Settings");
12
- const constants_1 = require("../libs/constants");
12
+ const constants_1 = require("@expressive-tea/commons/constants");
13
13
  const index_1 = require("../engines/http/index");
14
14
  const index_2 = require("../engines/websocket/index");
15
15
  const index_3 = require("../engines/teapot/index");
@@ -1,4 +1,4 @@
1
- import { ExpressiveTeaServerProps } from '../libs/interfaces';
1
+ import { ExpressiveTeaServerProps } from '@expressive-tea/commons/interfaces';
2
2
  /**
3
3
  * Declare the properties which the server will save into settings, is a semi dynamic object since is allowed to save
4
4
  * any property but is contains only one defined property to keep the port of the server.
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  const tslib_1 = require("tslib");
5
5
  const _ = require("lodash");
6
6
  const inversify_1 = require("inversify");
7
- const object_helper_1 = require("../helpers/object-helper");
7
+ const object_helper_1 = require("@expressive-tea/commons/helpers/object-helper");
8
8
  const server_1 = require("../helpers/server");
9
9
  /**
10
10
  * Declare the properties which the server will save into settings, is a semi dynamic object since is allowed to save
@@ -25,14 +25,6 @@ const server_1 = require("../helpers/server");
25
25
  * @summary Singleton Class to Store Server Settings
26
26
  */
27
27
  let Settings = Settings_1 = class Settings {
28
- constructor(options = { port: 3000, securePort: 4443 }, isIsolated = false) {
29
- if (Settings_1.instance && !isIsolated) {
30
- return Settings_1.instance;
31
- }
32
- const settingsFile = (0, server_1.fileSettings)();
33
- this.options = Object.assign({}, { port: 3000, securePort: 4443 }, settingsFile, options);
34
- Settings_1.instance = this;
35
- }
36
28
  /**
37
29
  * Reset Singleton instance to the default values, all changes will be erased is not recommendable to use it
38
30
  * multiple times since all your options will be lost. Unless you have an option how to recover this is not
@@ -65,6 +57,14 @@ let Settings = Settings_1 = class Settings {
65
57
  }
66
58
  return Settings_1.instance || new Settings_1();
67
59
  }
60
+ constructor(options = { port: 3000, securePort: 4443 }, isIsolated = false) {
61
+ if (Settings_1.instance && !isIsolated) {
62
+ return Settings_1.instance;
63
+ }
64
+ const settingsFile = (0, server_1.fileSettings)();
65
+ this.options = Object.assign({}, { port: 3000, securePort: 4443 }, settingsFile, options);
66
+ Settings_1.instance = this;
67
+ }
68
68
  /**
69
69
  * It will return the latest snapshot options registered at the time that this method is called, as Expressive Tea
70
70
  * is designed as async methods some time options should not be available.
@@ -1,4 +1,4 @@
1
- import { ParameterDecorator } from '../libs/types';
1
+ import { ParameterDecorator } from '@expressive-tea/commons/types';
2
2
  /**
3
3
  * Is passing directly to the decorated argument described <a href="http://expressjs.com/en/4x/api.html#req">here</a>.
4
4
  * @decorator {ParameterDecorator} request - Assign express Request instance to parameter.
@@ -1,20 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.param = exports.body = exports.query = exports.next = exports.response = exports.request = void 0;
4
- const MetaData_1 = require("../classes/MetaData");
5
- const constants_1 = require("../libs/constants");
4
+ const Metadata_1 = require("@expressive-tea/commons/classes/Metadata");
5
+ const constants_1 = require("@expressive-tea/commons/constants");
6
6
  /**
7
7
  * @module Decorators/Annotations
8
8
  */
9
9
  function addToArguments(target, propertyKey, parameterIndex, type, args) {
10
- const decoratedParameters = MetaData_1.default.get(constants_1.ARGUMENTS_KEY, target, propertyKey) || [];
10
+ const decoratedParameters = Metadata_1.default.get(constants_1.ARGUMENTS_KEY, target, propertyKey) || [];
11
11
  decoratedParameters.unshift({
12
12
  arguments: args,
13
13
  index: parameterIndex,
14
14
  key: propertyKey,
15
15
  type
16
16
  });
17
- MetaData_1.default.set(constants_1.ARGUMENTS_KEY, decoratedParameters, target, propertyKey);
17
+ Metadata_1.default.set(constants_1.ARGUMENTS_KEY, decoratedParameters, target, propertyKey);
18
18
  }
19
19
  /**
20
20
  * Is passing directly to the decorated argument described <a href="http://expressjs.com/en/4x/api.html#req">here</a>.
@@ -1,5 +1,5 @@
1
1
  import { Express, Router } from 'express';
2
- import { ExpressiveTeaModuleProps } from '../libs/interfaces';
2
+ import { ExpressiveTeaModuleProps } from '@expressive-tea/commons/interfaces';
3
3
  /**
4
4
  * @typedef {Object} ExpressiveTeaModuleProps
5
5
  * @property {Object[]} controllers Controllers Assigned to Module
@@ -1,4 +1,4 @@
1
- import { ExpressiveTeaProxyOptions, ExpressiveTeaProxyProperty, MethodDecorator } from '../libs/types';
1
+ import { ExpressiveTeaProxyOptions, ExpressiveTeaProxyProperty, MethodDecorator } from '@expressive-tea/commons/types';
2
2
  import { Express, RequestHandler } from 'express';
3
3
  export declare function ProxyContainer(source: string, targetUrl: string): <T extends new (...args: any[]) => any>(ProxyContainerClass: T) => {
4
4
  new (...args: any[]): {
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ProxyProperty = exports.ProxyOption = exports.ProxyContainer = void 0;
4
- const MetaData_1 = require("../classes/MetaData");
4
+ const Metadata_1 = require("@expressive-tea/commons/classes/Metadata");
5
5
  const httpProxy = require("express-http-proxy");
6
- const object_helper_1 = require("../helpers/object-helper");
6
+ const object_helper_1 = require("@expressive-tea/commons/helpers/object-helper");
7
7
  const lodash_1 = require("lodash");
8
8
  const RequestExceptions_1 = require("../exceptions/RequestExceptions");
9
- const constants_1 = require("../libs/constants");
9
+ const constants_1 = require("@expressive-tea/commons/constants");
10
10
  const NON_ASYNC_METHODS = ['host'];
11
11
  function ProxyContainer(source, targetUrl) {
12
12
  return (ProxyContainerClass) => {
@@ -16,14 +16,14 @@ function ProxyContainer(source, targetUrl) {
16
16
  this.source = source;
17
17
  this.target = targetUrl;
18
18
  const options = {};
19
- const host = MetaData_1.default.get(constants_1.PROXY_SETTING_KEY, this, constants_1.PROXY_METHODS.HOST);
19
+ const host = Metadata_1.default.get(constants_1.PROXY_SETTING_KEY, this, constants_1.PROXY_METHODS.HOST);
20
20
  for (const value of Object.values(constants_1.PROXY_METHODS)) {
21
21
  if (value !== constants_1.PROXY_METHODS.HOST) {
22
- options[value] = MetaData_1.default.get(constants_1.PROXY_SETTING_KEY, this, value);
22
+ options[value] = Metadata_1.default.get(constants_1.PROXY_SETTING_KEY, this, value);
23
23
  }
24
24
  }
25
25
  for (const value of Object.values(constants_1.PROXY_PROPERTIES)) {
26
- const key = MetaData_1.default.get(constants_1.PROXY_SETTING_KEY, this, value);
26
+ const key = Metadata_1.default.get(constants_1.PROXY_SETTING_KEY, this, value);
27
27
  if (!(0, lodash_1.isUndefined)(key)) {
28
28
  // @ts-ignore:next-line
29
29
  options[value] = this[key];
@@ -32,7 +32,7 @@ function ProxyContainer(source, targetUrl) {
32
32
  this.proxyHandler = httpProxy(host ? host.value.bind(this) : this.target);
33
33
  }
34
34
  __register(server) {
35
- const proxyMetadata = MetaData_1.default.get(constants_1.PROXY_SETTING_KEY, (0, object_helper_1.getClass)(this));
35
+ const proxyMetadata = Metadata_1.default.get(constants_1.PROXY_SETTING_KEY, (0, object_helper_1.getClass)(this));
36
36
  console.info(`[PROXY - ${proxyMetadata.name}] ${this.source} -> ${this.target}`);
37
37
  server.use(this.source, this.proxyHandler);
38
38
  }
@@ -43,7 +43,7 @@ function ProxyContainer(source, targetUrl) {
43
43
  targetUrl,
44
44
  name: ProxyContainerClass.name
45
45
  };
46
- MetaData_1.default.set(constants_1.PROXY_SETTING_KEY, settings, ProxyContainerClass);
46
+ Metadata_1.default.set(constants_1.PROXY_SETTING_KEY, settings, ProxyContainerClass);
47
47
  return ExpressiveTeaProxy;
48
48
  };
49
49
  }
@@ -53,13 +53,13 @@ function ProxyOption(option) {
53
53
  if (NON_ASYNC_METHODS.includes(option) && (0, object_helper_1.isAsyncFunction)(descriptor.value)) {
54
54
  throw new RequestExceptions_1.GenericRequestException(`${String(propertyKey)} must not be declared as Async Function.`);
55
55
  }
56
- MetaData_1.default.set(constants_1.PROXY_SETTING_KEY, descriptor, target, option);
56
+ Metadata_1.default.set(constants_1.PROXY_SETTING_KEY, descriptor, target, option);
57
57
  };
58
58
  }
59
59
  exports.ProxyOption = ProxyOption;
60
60
  function ProxyProperty(option, value) {
61
61
  return (target, propertyKey) => {
62
- MetaData_1.default.set(constants_1.PROXY_SETTING_KEY, propertyKey, target, option);
62
+ Metadata_1.default.set(constants_1.PROXY_SETTING_KEY, propertyKey, target, option);
63
63
  let currentValue = target[propertyKey];
64
64
  Object.defineProperty(target, propertyKey, {
65
65
  get: () => value,
@@ -1,6 +1,6 @@
1
1
  import { Router } from 'express';
2
- import { ExpressiveTeaHandlerOptions } from '../libs/interfaces';
3
- import { ClassDecorator, ExpressMiddlewareHandler, MethodDecorator } from '../libs/types';
2
+ import { ExpressiveTeaHandlerOptions } from '@expressive-tea/commons/interfaces';
3
+ import { ClassDecorator, ExpressMiddlewareHandler, MethodDecorator } from '@expressive-tea/commons/types';
4
4
  /**
5
5
  * @module Decorators/Router
6
6
  */
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.View = exports.Middleware = exports.Param = exports.Delete = exports.Patch = exports.Put = exports.Post = exports.Get = exports.Route = void 0;
4
4
  const express_1 = require("express");
5
5
  const lodash_1 = require("lodash");
6
- const MetaData_1 = require("../classes/MetaData");
6
+ const Metadata_1 = require("@expressive-tea/commons/classes/Metadata");
7
7
  const decorators_1 = require("../helpers/decorators");
8
8
  const server_1 = require("../helpers/server");
9
- const constants_1 = require("../libs/constants");
9
+ const constants_1 = require("@expressive-tea/commons/constants");
10
10
  /**
11
11
  * @module Decorators/Router
12
12
  */
@@ -28,7 +28,7 @@ function Route(mountpoint = '/') {
28
28
  return class ExpressiveTeaRoute extends RouterClass {
29
29
  constructor(...args) {
30
30
  super(...args);
31
- const handlers = MetaData_1.default.get(constants_1.ROUTER_HANDLERS_KEY, this) || [];
31
+ const handlers = Metadata_1.default.get(constants_1.ROUTER_HANDLERS_KEY, this) || [];
32
32
  this.router = (0, express_1.Router)();
33
33
  this.mountpoint = mountpoint;
34
34
  (0, lodash_1.each)(handlers, h => {
@@ -37,14 +37,14 @@ function Route(mountpoint = '/') {
37
37
  });
38
38
  }
39
39
  __mount(parent) {
40
- const rootMiddlewares = MetaData_1.default.get(constants_1.ROUTER_MIDDLEWARES_KEY, this) || [];
40
+ const rootMiddlewares = Metadata_1.default.get(constants_1.ROUTER_MIDDLEWARES_KEY, this) || [];
41
41
  parent.use(this.mountpoint, ...rootMiddlewares, this.router);
42
42
  return this;
43
43
  }
44
44
  __registerHandler(options) {
45
45
  const self = this;
46
- const decoratedArguments = MetaData_1.default.get(constants_1.ARGUMENTS_KEY, options.target, options.propertyKey);
47
- const annotations = MetaData_1.default.get(constants_1.ROUTER_ANNOTATIONS_KEY, options.target, options.propertyKey);
46
+ const decoratedArguments = Metadata_1.default.get(constants_1.ARGUMENTS_KEY, options.target, options.propertyKey);
47
+ const annotations = Metadata_1.default.get(constants_1.ROUTER_ANNOTATIONS_KEY, options.target, options.propertyKey);
48
48
  return server_1.executeRequest.bind({
49
49
  options,
50
50
  decoratedArguments,
@@ -262,9 +262,9 @@ function View(viewName, route) {
262
262
  }
263
263
  exports.View = View;
264
264
  function rootMiddleware(target, middleware) {
265
- const existedRoutesHandlers = MetaData_1.default.get(constants_1.ROUTER_MIDDLEWARES_KEY, target) || [];
265
+ const existedRoutesHandlers = Metadata_1.default.get(constants_1.ROUTER_MIDDLEWARES_KEY, target) || [];
266
266
  existedRoutesHandlers.unshift(middleware);
267
- MetaData_1.default.set(constants_1.ROUTER_MIDDLEWARES_KEY, existedRoutesHandlers, target);
267
+ Metadata_1.default.set(constants_1.ROUTER_MIDDLEWARES_KEY, existedRoutesHandlers, target);
268
268
  }
269
269
  function routeMiddleware(target, descriptor, middleware) {
270
270
  descriptor.value.$middlewares = descriptor.value.$middlewares || [];
@@ -1,6 +1,6 @@
1
1
  import { Express } from 'express';
2
- import { BOOT_STAGES } from '../libs/constants';
3
- import { ExpressiveTeaPotSettings, ExpressiveTeaServerProps, ExpressiveTeaStaticFileServer, ExpressiveTeaCupSettings } from '../libs/interfaces';
2
+ import { BOOT_STAGES } from '@expressive-tea/commons/constants';
3
+ import { ExpressiveTeaPotSettings, ExpressiveTeaServerProps, ExpressiveTeaStaticFileServer, ExpressiveTeaCupSettings } from '@expressive-tea/commons/interfaces';
4
4
  /**
5
5
  * Plug Class Decorator create a simple plugin to execute in one of the public stages defined on BOOT_STAGES, might
6
6
  * be useful to attach a simple Express Server configuration.
@@ -2,9 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Teacup = exports.Teapot = exports.RegisterModule = exports.Proxies = exports.Modules = exports.Setting = exports.ExpressDirective = exports.Static = exports.ServerSettings = exports.Pour = exports.Plug = void 0;
4
4
  const lodash_1 = require("lodash");
5
- const MetaData_1 = require("../classes/MetaData");
5
+ const Metadata_1 = require("@expressive-tea/commons/classes/Metadata");
6
6
  const Settings_1 = require("../classes/Settings");
7
- const constants_1 = require("../libs/constants");
7
+ const constants_1 = require("@expressive-tea/commons/constants");
8
8
  /**
9
9
  * Define the Main Plugins Properties.
10
10
  * @typedef {Object} ExpressiveTeaPluginProps
@@ -46,10 +46,10 @@ const constants_1 = require("../libs/constants");
46
46
  * @module Decorators/Server
47
47
  */
48
48
  function getStages(target) {
49
- return MetaData_1.default.get(constants_1.BOOT_STAGES_KEY, target) || {};
49
+ return Metadata_1.default.get(constants_1.BOOT_STAGES_KEY, target) || {};
50
50
  }
51
51
  function getRegisteredPlugins(target) {
52
- return MetaData_1.default.get(constants_1.PLUGINS_KEY, target) || [];
52
+ return Metadata_1.default.get(constants_1.PLUGINS_KEY, target) || [];
53
53
  }
54
54
  function getStage(stage, target) {
55
55
  const stages = getStages(target);
@@ -61,10 +61,10 @@ function getStage(stage, target) {
61
61
  function setStage(stage, value, target) {
62
62
  const stages = getStages(target);
63
63
  stages[stage] = value;
64
- MetaData_1.default.set(constants_1.BOOT_STAGES_KEY, stages, target);
64
+ Metadata_1.default.set(constants_1.BOOT_STAGES_KEY, stages, target);
65
65
  }
66
66
  function setPlugins(plugins, target) {
67
- MetaData_1.default.set(constants_1.PLUGINS_KEY, plugins, target);
67
+ Metadata_1.default.set(constants_1.PLUGINS_KEY, plugins, target);
68
68
  }
69
69
  /**
70
70
  * Plug Class Decorator create a simple plugin to execute in one of the public stages defined on BOOT_STAGES, might
@@ -145,9 +145,9 @@ function Static(root, virtual = null, options = {}) {
145
145
  if ((0, lodash_1.isNil)(root)) {
146
146
  throw new Error('Root must be defined');
147
147
  }
148
- const registeredStatics = MetaData_1.default.get(constants_1.REGISTERED_STATIC_KEY, target) || [];
148
+ const registeredStatics = Metadata_1.default.get(constants_1.REGISTERED_STATIC_KEY, target) || [];
149
149
  registeredStatics.unshift({ root, options, virtual });
150
- MetaData_1.default.set(constants_1.REGISTERED_STATIC_KEY, registeredStatics, target);
150
+ Metadata_1.default.set(constants_1.REGISTERED_STATIC_KEY, registeredStatics, target);
151
151
  };
152
152
  }
153
153
  exports.Static = Static;
@@ -165,9 +165,9 @@ function ExpressDirective(name, ...settings) {
165
165
  if (!constants_1.EXPRESS_DIRECTIVES.includes(name)) {
166
166
  throw new Error(`Directive Name ${name} is not valid express behavior setting`);
167
167
  }
168
- const registeredDirectives = MetaData_1.default.get(constants_1.REGISTERED_DIRECTIVES_KEY, target) || [];
168
+ const registeredDirectives = Metadata_1.default.get(constants_1.REGISTERED_DIRECTIVES_KEY, target) || [];
169
169
  registeredDirectives.unshift({ name, settings });
170
- MetaData_1.default.set(constants_1.REGISTERED_DIRECTIVES_KEY, registeredDirectives, target);
170
+ Metadata_1.default.set(constants_1.REGISTERED_DIRECTIVES_KEY, registeredDirectives, target);
171
171
  };
172
172
  }
173
173
  exports.ExpressDirective = ExpressDirective;
@@ -197,9 +197,9 @@ exports.Setting = Setting;
197
197
  function Modules(Modules) {
198
198
  return target => {
199
199
  for (const Module of Modules) {
200
- const registeredModules = MetaData_1.default.get(constants_1.REGISTERED_MODULE_KEY, target, 'start') || [];
200
+ const registeredModules = Metadata_1.default.get(constants_1.REGISTERED_MODULE_KEY, target, 'start') || [];
201
201
  registeredModules.unshift(Module);
202
- MetaData_1.default.set(constants_1.REGISTERED_MODULE_KEY, registeredModules, target, 'start');
202
+ Metadata_1.default.set(constants_1.REGISTERED_MODULE_KEY, registeredModules, target, 'start');
203
203
  }
204
204
  };
205
205
  }
@@ -207,9 +207,9 @@ exports.Modules = Modules;
207
207
  function Proxies(proxyContainers) {
208
208
  return target => {
209
209
  for (const proxyContainer of proxyContainers) {
210
- const registeredProxyContainers = MetaData_1.default.get(constants_1.ROUTER_PROXIES_KEY, target) || [];
210
+ const registeredProxyContainers = Metadata_1.default.get(constants_1.ROUTER_PROXIES_KEY, target) || [];
211
211
  registeredProxyContainers.unshift(proxyContainer);
212
- MetaData_1.default.set(constants_1.ROUTER_PROXIES_KEY, registeredProxyContainers, target);
212
+ Metadata_1.default.set(constants_1.ROUTER_PROXIES_KEY, registeredProxyContainers, target);
213
213
  }
214
214
  };
215
215
  }
@@ -227,23 +227,23 @@ function RegisterModule(Module) {
227
227
  if (property !== 'start') {
228
228
  throw new Error('Register Module needs to decorate ONLY start method');
229
229
  }
230
- const registeredModules = MetaData_1.default.get(constants_1.REGISTERED_MODULE_KEY, target, property) || [];
230
+ const registeredModules = Metadata_1.default.get(constants_1.REGISTERED_MODULE_KEY, target, property) || [];
231
231
  registeredModules.push(Module);
232
- MetaData_1.default.set(constants_1.REGISTERED_MODULE_KEY, registeredModules, target, property);
232
+ Metadata_1.default.set(constants_1.REGISTERED_MODULE_KEY, registeredModules, target, property);
233
233
  };
234
234
  }
235
235
  exports.RegisterModule = RegisterModule;
236
236
  function Teapot(teapotSettings) {
237
237
  return (target) => {
238
- MetaData_1.default.set(constants_1.ASSIGN_TEAPOT_KEY, true, target, 'isTeapotActive');
239
- MetaData_1.default.set(constants_1.ASSIGN_TEAPOT_KEY, teapotSettings, target);
238
+ Metadata_1.default.set(constants_1.ASSIGN_TEAPOT_KEY, true, target, 'isTeapotActive');
239
+ Metadata_1.default.set(constants_1.ASSIGN_TEAPOT_KEY, teapotSettings, target);
240
240
  };
241
241
  }
242
242
  exports.Teapot = Teapot;
243
243
  function Teacup(teacupSettings) {
244
244
  return (target) => {
245
- MetaData_1.default.set(constants_1.ASSIGN_TEACUP_KEY, true, target, 'isTeacupActive');
246
- MetaData_1.default.set(constants_1.ASSIGN_TEACUP_KEY, teacupSettings, target);
245
+ Metadata_1.default.set(constants_1.ASSIGN_TEACUP_KEY, true, target, 'isTeacupActive');
246
+ Metadata_1.default.set(constants_1.ASSIGN_TEACUP_KEY, teacupSettings, target);
247
247
  };
248
248
  }
249
249
  exports.Teacup = Teacup;
@@ -2,7 +2,7 @@
2
2
  /// <reference types="node" />
3
3
  import * as http from 'http';
4
4
  import * as https from 'https';
5
- import { BOOT_STAGES } from '../../libs/constants';
5
+ import { BOOT_STAGES } from '@expressive-tea/commons/constants';
6
6
  export default class HTTPEngine {
7
7
  private readonly settings;
8
8
  private readonly context;
@@ -4,9 +4,9 @@ const tslib_1 = require("tslib");
4
4
  const $P = require("bluebird");
5
5
  const inversify_1 = require("inversify");
6
6
  const boot_helper_1 = require("../../helpers/boot-helper");
7
- const constants_1 = require("../../libs/constants");
8
- const object_helper_1 = require("../../helpers/object-helper");
9
- const MetaData_1 = require("../../classes/MetaData");
7
+ const constants_1 = require("@expressive-tea/commons/constants");
8
+ const object_helper_1 = require("@expressive-tea/commons/helpers/object-helper");
9
+ const Metadata_1 = require("@expressive-tea/commons/classes/Metadata");
10
10
  let HTTPEngine = class HTTPEngine {
11
11
  constructor(ctx, server, serverSecure, settings) {
12
12
  this.context = ctx;
@@ -42,7 +42,7 @@ let HTTPEngine = class HTTPEngine {
42
42
  });
43
43
  }
44
44
  async resolveProxyContainers() {
45
- const ProxyContainers = MetaData_1.default.get(constants_1.ROUTER_PROXIES_KEY, (0, object_helper_1.getClass)(this.context)) || [];
45
+ const ProxyContainers = Metadata_1.default.get(constants_1.ROUTER_PROXIES_KEY, (0, object_helper_1.getClass)(this.context)) || [];
46
46
  for (const Container of ProxyContainers) {
47
47
  (0, boot_helper_1.resolveProxy)(Container, this.context.getApplication());
48
48
  }
@@ -6,18 +6,32 @@ const url = require("url");
6
6
  // tslint:disable-next-line:no-duplicate-imports
7
7
  const socket_io_client_1 = require("socket.io-client");
8
8
  const inversify_1 = require("inversify");
9
- const MetaData_1 = require("../../classes/MetaData");
10
- const constants_1 = require("../../libs/constants");
9
+ const Metadata_1 = require("@expressive-tea/commons/classes/Metadata");
10
+ const constants_1 = require("@expressive-tea/commons/constants");
11
11
  const teapot_helper_1 = require("../../helpers/teapot-helper");
12
- const object_helper_1 = require("../../helpers/object-helper");
12
+ const object_helper_1 = require("@expressive-tea/commons/helpers/object-helper");
13
13
  let TeacupEngine = class TeacupEngine {
14
+ header() {
15
+ console.log(chalk.white.bold('Teacup Engine is initializing...'));
16
+ console.log(chalk `
17
+ {grey ( (}
18
+ {white.bold ) )}
19
+ {magenta.bold ........}
20
+ {magenta.bold | |]}
21
+ {magenta.bold \\ /} {yellow.bold [${this.teacupSettings.address}]}
22
+ {magenta.bold \`----'}
23
+
24
+ {yellow.bold NOTICE:}
25
+ All Communication are encrypted to ensure intruder can not connected, however, please does not share any sensitive data like keys or passwords to avoid security issues.
26
+ `);
27
+ }
14
28
  constructor(ctx, settings, server, serverSecure) {
15
29
  this.server = server;
16
30
  this.serverSecure = serverSecure;
17
31
  this.settings = settings;
18
32
  this.context = ctx;
19
- this.teacupSettings = MetaData_1.default.get(constants_1.ASSIGN_TEACUP_KEY, (0, object_helper_1.getClass)(this.context));
20
- this.isActive = MetaData_1.default.get(constants_1.ASSIGN_TEACUP_KEY, (0, object_helper_1.getClass)(this.context), 'isTeacupActive');
33
+ this.teacupSettings = Metadata_1.default.get(constants_1.ASSIGN_TEACUP_KEY, (0, object_helper_1.getClass)(this.context));
34
+ this.isActive = Metadata_1.default.get(constants_1.ASSIGN_TEACUP_KEY, (0, object_helper_1.getClass)(this.context), 'isTeacupActive');
21
35
  if (!this.isActive) {
22
36
  return;
23
37
  }
@@ -32,20 +46,6 @@ let TeacupEngine = class TeacupEngine {
32
46
  autoConnect: false
33
47
  });
34
48
  }
35
- header() {
36
- console.log(chalk.white.bold('Teacup Engine is initializing...'));
37
- console.log(chalk `
38
- {grey ( (}
39
- {white.bold ) )}
40
- {magenta.bold ........}
41
- {magenta.bold | |]}
42
- {magenta.bold \\ /} {yellow.bold [${this.teacupSettings.address}]}
43
- {magenta.bold \`----'}
44
-
45
- {yellow.bold NOTICE:}
46
- All Communication are encrypted to ensure intruder can not connected, however, please does not share any sensitive data like keys or passwords to avoid security issues.
47
- `);
48
- }
49
49
  handshaked(data) {
50
50
  try {
51
51
  console.log(chalk `{cyan.bold [TEACUP]} - [{magenta.bold ${this.client.id}}]: {yellow.bold Started Verification}`);
@@ -5,32 +5,10 @@ const tslib_1 = require("tslib");
5
5
  const chalk = require("chalk");
6
6
  const inversify_1 = require("inversify");
7
7
  const ProxyRoute_1 = require("../../classes/ProxyRoute");
8
- const MetaData_1 = require("../../classes/MetaData");
9
- const constants_1 = require("../../libs/constants");
8
+ const Metadata_1 = require("@expressive-tea/commons/classes/Metadata");
9
+ const constants_1 = require("@expressive-tea/commons/constants");
10
10
  const teapot_helper_1 = require("../../helpers/teapot-helper");
11
11
  let TeapotEngine = TeapotEngine_1 = class TeapotEngine {
12
- constructor(ctx, server, serverSecure, settings) {
13
- this.clients = new Map();
14
- this.registeredRoute = new Map();
15
- this.settings = settings;
16
- this.context = ctx;
17
- this.server = server;
18
- this.serverSecure = serverSecure;
19
- this.isActive = MetaData_1.default.get(constants_1.ASSIGN_TEAPOT_KEY, this.context, 'isTeapotActive');
20
- this.teapotSettings = MetaData_1.default.get(constants_1.ASSIGN_TEAPOT_KEY, this.context);
21
- if (!this.isActive) {
22
- return;
23
- }
24
- const { publicKey, privateKey } = teapot_helper_1.default.generateKeys(this.teapotSettings.serverKey);
25
- this.publicKey = publicKey;
26
- this.privateKey = privateKey;
27
- this.serverSignature = teapot_helper_1.default.sign(this.teapotSettings.clientKey, privateKey, this.teapotSettings.serverKey);
28
- this.socketServer = require('socket.io')({
29
- path: '/teapot',
30
- wsEngine: require('eiows').Server,
31
- cookie: false
32
- });
33
- }
34
12
  static header(teapotSettings) {
35
13
  console.log(chalk.white.bold('Teapot Engine is initializing...'));
36
14
  console.log(chalk `
@@ -136,6 +114,27 @@ All Communication are encrypted to ensure intruder can not connected, however, p
136
114
  console.log(chalk `{cyan.bold [TEAPOT]} - {red.bold TEACUP} {magenta.bold ${self.id}}: Failed wiht next message: ${e.message}`);
137
115
  }
138
116
  }
117
+ constructor(ctx, server, serverSecure, settings) {
118
+ this.clients = new Map();
119
+ this.registeredRoute = new Map();
120
+ this.settings = settings;
121
+ this.context = ctx;
122
+ this.server = server;
123
+ this.serverSecure = serverSecure;
124
+ this.isActive = Metadata_1.default.get(constants_1.ASSIGN_TEAPOT_KEY, this.context, 'isTeapotActive');
125
+ this.teapotSettings = Metadata_1.default.get(constants_1.ASSIGN_TEAPOT_KEY, this.context);
126
+ if (!this.isActive) {
127
+ return;
128
+ }
129
+ const { publicKey, privateKey } = teapot_helper_1.default.generateKeys(this.teapotSettings.serverKey);
130
+ this.publicKey = publicKey;
131
+ this.privateKey = privateKey;
132
+ this.serverSignature = teapot_helper_1.default.sign(this.teapotSettings.clientKey, privateKey, this.teapotSettings.serverKey);
133
+ this.socketServer = require('socket.io')({
134
+ path: '/teapot',
135
+ cookie: false
136
+ });
137
+ }
139
138
  async start() {
140
139
  if (!this.isActive) {
141
140
  return;
@@ -1,4 +1,4 @@
1
- import { BOOT_STAGES } from '../libs/constants';
1
+ import { BOOT_STAGES } from '@expressive-tea/commons/constants';
2
2
  import { Express } from 'express';
3
3
  import Boot from '../classes/Boot';
4
4
  export declare function resolveStage(stage: BOOT_STAGES, ctx: Boot, server: Express, ...extraArgs: unknown[]): Promise<void>;
@@ -2,10 +2,10 @@
2
2
  // tslint:disable:no-duplicate-imports
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.resolveProxy = exports.resolveStatic = exports.resolveDirectives = exports.resolveStage = void 0;
5
- const constants_1 = require("../libs/constants");
5
+ const constants_1 = require("@expressive-tea/commons/constants");
6
6
  const express = require("express");
7
- const MetaData_1 = require("../classes/MetaData");
8
- const object_helper_1 = require("./object-helper");
7
+ const Metadata_1 = require("@expressive-tea/commons/classes/Metadata");
8
+ const object_helper_1 = require("@expressive-tea/commons/helpers/object-helper");
9
9
  const BootLoaderExceptions_1 = require("../exceptions/BootLoaderExceptions");
10
10
  async function resolveStage(stage, ctx, server, ...extraArgs) {
11
11
  try {
@@ -22,14 +22,14 @@ async function resolveStage(stage, ctx, server, ...extraArgs) {
22
22
  }
23
23
  exports.resolveStage = resolveStage;
24
24
  async function resolveDirectives(instance, server) {
25
- const registeredDirectives = MetaData_1.default.get(constants_1.REGISTERED_DIRECTIVES_KEY, (0, object_helper_1.getClass)(instance)) || [];
25
+ const registeredDirectives = Metadata_1.default.get(constants_1.REGISTERED_DIRECTIVES_KEY, (0, object_helper_1.getClass)(instance)) || [];
26
26
  registeredDirectives.forEach((options) => {
27
27
  server.set.call(server, options.name, ...options.settings);
28
28
  });
29
29
  }
30
30
  exports.resolveDirectives = resolveDirectives;
31
31
  async function resolveStatic(instance, server) {
32
- const registeredStatic = MetaData_1.default.get(constants_1.REGISTERED_STATIC_KEY, (0, object_helper_1.getClass)(instance)) || [];
32
+ const registeredStatic = Metadata_1.default.get(constants_1.REGISTERED_STATIC_KEY, (0, object_helper_1.getClass)(instance)) || [];
33
33
  registeredStatic.forEach((staticOptions) => {
34
34
  if (staticOptions.virtual) {
35
35
  server.use(staticOptions.virtual, express.static(staticOptions.root, staticOptions.options));
@@ -46,14 +46,14 @@ async function resolveProxy(ProxyContainer, server) {
46
46
  }
47
47
  exports.resolveProxy = resolveProxy;
48
48
  async function resolveModules(instance, server) {
49
- const registeredModules = MetaData_1.default.get(constants_1.REGISTERED_MODULE_KEY, instance, 'start') || [];
49
+ const registeredModules = Metadata_1.default.get(constants_1.REGISTERED_MODULE_KEY, instance, 'start') || [];
50
50
  registeredModules.forEach(Module => {
51
51
  const moduleInstance = new Module();
52
52
  moduleInstance.__register(server);
53
53
  });
54
54
  }
55
55
  async function bootloaderResolve(STAGE, server, instance, ...args) {
56
- const bootLoader = MetaData_1.default.get(constants_1.BOOT_STAGES_KEY, (0, object_helper_1.getClass)(instance)) || constants_1.STAGES_INIT;
56
+ const bootLoader = Metadata_1.default.get(constants_1.BOOT_STAGES_KEY, (0, object_helper_1.getClass)(instance)) || constants_1.STAGES_INIT;
57
57
  for (const loader of bootLoader[STAGE] || []) {
58
58
  try {
59
59
  await selectLoaderType(loader, server, ...args);
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.addAnnotation = void 0;
4
- const MetaData_1 = require("../classes/MetaData");
5
- const constants_1 = require("../libs/constants");
4
+ const Metadata_1 = require("@expressive-tea/commons/classes/Metadata");
5
+ const constants_1 = require("@expressive-tea/commons/constants");
6
6
  function addAnnotation(type, target, propertyKey, ...args) {
7
- const annotations = MetaData_1.default.get(constants_1.ROUTER_ANNOTATIONS_KEY, target, propertyKey) || [];
7
+ const annotations = Metadata_1.default.get(constants_1.ROUTER_ANNOTATIONS_KEY, target, propertyKey) || [];
8
8
  annotations.unshift({
9
9
  arguments: args,
10
10
  type
11
11
  });
12
- MetaData_1.default.set(constants_1.ROUTER_ANNOTATIONS_KEY, annotations, target, propertyKey);
12
+ Metadata_1.default.set(constants_1.ROUTER_ANNOTATIONS_KEY, annotations, target, propertyKey);
13
13
  }
14
14
  exports.addAnnotation = addAnnotation;
@@ -1,5 +1,5 @@
1
1
  import { NextFunction, Request, Response } from 'express';
2
- import { ExpressiveTeaAnnotations, ExpressiveTeaArgumentOptions } from '../libs/interfaces';
2
+ import { ExpressiveTeaAnnotations, ExpressiveTeaArgumentOptions } from '@expressive-tea/commons/interfaces';
3
3
  export declare function autoResponse(request: Request, response: Response, annotations: ExpressiveTeaAnnotations[], responseResult?: any): void;
4
4
  export declare function executeRequest(request: Request, response: Response, next: NextFunction): Promise<void>;
5
5
  export declare function mapArguments(decoratedArguments: ExpressiveTeaArgumentOptions[], request: Request, response: Response, next: NextFunction, introspectedArgs?: string[]): unknown[];