@datacapy/server 0.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.
Files changed (112) hide show
  1. package/LICENSE +29 -0
  2. package/README.md +485 -0
  3. package/dist/acl/role-assessor/all.d.ts +7 -0
  4. package/dist/acl/role-assessor/all.d.ts.map +1 -0
  5. package/dist/acl/role-assessor/all.js +18 -0
  6. package/dist/acl/role-assessor/all.js.map +1 -0
  7. package/dist/acl/role-assessor/index.d.ts +4 -0
  8. package/dist/acl/role-assessor/index.d.ts.map +1 -0
  9. package/dist/acl/role-assessor/index.js +7 -0
  10. package/dist/acl/role-assessor/index.js.map +1 -0
  11. package/dist/acl/role-assessor.d.ts +13 -0
  12. package/dist/acl/role-assessor.d.ts.map +1 -0
  13. package/dist/acl/role-assessor.js +20 -0
  14. package/dist/acl/role-assessor.js.map +1 -0
  15. package/dist/acl.d.ts +41 -0
  16. package/dist/acl.d.ts.map +1 -0
  17. package/dist/acl.js +116 -0
  18. package/dist/acl.js.map +1 -0
  19. package/dist/api-config.d.ts +92 -0
  20. package/dist/api-config.d.ts.map +1 -0
  21. package/dist/api-config.js +3 -0
  22. package/dist/api-config.js.map +1 -0
  23. package/dist/error.d.ts +30 -0
  24. package/dist/error.d.ts.map +1 -0
  25. package/dist/error.js +72 -0
  26. package/dist/error.js.map +1 -0
  27. package/dist/index.d.ts +9 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +28 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/remote-object/body-parser-configurer.d.ts +28 -0
  32. package/dist/remote-object/body-parser-configurer.d.ts.map +1 -0
  33. package/dist/remote-object/body-parser-configurer.js +103 -0
  34. package/dist/remote-object/body-parser-configurer.js.map +1 -0
  35. package/dist/remote-object/endpoint-resolver.d.ts +12 -0
  36. package/dist/remote-object/endpoint-resolver.d.ts.map +1 -0
  37. package/dist/remote-object/endpoint-resolver.js +58 -0
  38. package/dist/remote-object/endpoint-resolver.js.map +1 -0
  39. package/dist/remote-object/error-handler.d.ts +16 -0
  40. package/dist/remote-object/error-handler.d.ts.map +1 -0
  41. package/dist/remote-object/error-handler.js +149 -0
  42. package/dist/remote-object/error-handler.js.map +1 -0
  43. package/dist/remote-object/index.d.ts +8 -0
  44. package/dist/remote-object/index.d.ts.map +1 -0
  45. package/dist/remote-object/index.js +24 -0
  46. package/dist/remote-object/index.js.map +1 -0
  47. package/dist/remote-object/interfaces.d.ts +42 -0
  48. package/dist/remote-object/interfaces.d.ts.map +1 -0
  49. package/dist/remote-object/interfaces.js +3 -0
  50. package/dist/remote-object/interfaces.js.map +1 -0
  51. package/dist/remote-object/middleware-factory.d.ts +14 -0
  52. package/dist/remote-object/middleware-factory.d.ts.map +1 -0
  53. package/dist/remote-object/middleware-factory.js +66 -0
  54. package/dist/remote-object/middleware-factory.js.map +1 -0
  55. package/dist/remote-object/request-data-parser.d.ts +18 -0
  56. package/dist/remote-object/request-data-parser.d.ts.map +1 -0
  57. package/dist/remote-object/request-data-parser.js +75 -0
  58. package/dist/remote-object/request-data-parser.js.map +1 -0
  59. package/dist/remote-object/response-handler.d.ts +6 -0
  60. package/dist/remote-object/response-handler.d.ts.map +1 -0
  61. package/dist/remote-object/response-handler.js +20 -0
  62. package/dist/remote-object/response-handler.js.map +1 -0
  63. package/dist/remote-object.d.ts +50 -0
  64. package/dist/remote-object.d.ts.map +1 -0
  65. package/dist/remote-object.js +102 -0
  66. package/dist/remote-object.js.map +1 -0
  67. package/dist/server/acl-registry.d.ts +12 -0
  68. package/dist/server/acl-registry.d.ts.map +1 -0
  69. package/dist/server/acl-registry.js +21 -0
  70. package/dist/server/acl-registry.js.map +1 -0
  71. package/dist/server/api-config-registry.d.ts +10 -0
  72. package/dist/server/api-config-registry.d.ts.map +1 -0
  73. package/dist/server/api-config-registry.js +19 -0
  74. package/dist/server/api-config-registry.js.map +1 -0
  75. package/dist/server/configuration-manager.d.ts +12 -0
  76. package/dist/server/configuration-manager.d.ts.map +1 -0
  77. package/dist/server/configuration-manager.js +62 -0
  78. package/dist/server/configuration-manager.js.map +1 -0
  79. package/dist/server/endpoint-registrar.d.ts +13 -0
  80. package/dist/server/endpoint-registrar.d.ts.map +1 -0
  81. package/dist/server/endpoint-registrar.js +92 -0
  82. package/dist/server/endpoint-registrar.js.map +1 -0
  83. package/dist/server/express-app-manager.d.ts +14 -0
  84. package/dist/server/express-app-manager.d.ts.map +1 -0
  85. package/dist/server/express-app-manager.js +33 -0
  86. package/dist/server/express-app-manager.js.map +1 -0
  87. package/dist/server/http-server-manager.d.ts +16 -0
  88. package/dist/server/http-server-manager.d.ts.map +1 -0
  89. package/dist/server/http-server-manager.js +40 -0
  90. package/dist/server/http-server-manager.js.map +1 -0
  91. package/dist/server/index.d.ts +9 -0
  92. package/dist/server/index.d.ts.map +1 -0
  93. package/dist/server/index.js +33 -0
  94. package/dist/server/index.js.map +1 -0
  95. package/dist/server/interfaces.d.ts +70 -0
  96. package/dist/server/interfaces.d.ts.map +1 -0
  97. package/dist/server/interfaces.js +3 -0
  98. package/dist/server/interfaces.js.map +1 -0
  99. package/dist/server/lifecycle-manager.d.ts +19 -0
  100. package/dist/server/lifecycle-manager.d.ts.map +1 -0
  101. package/dist/server/lifecycle-manager.js +60 -0
  102. package/dist/server/lifecycle-manager.js.map +1 -0
  103. package/dist/server-config.d.ts +10 -0
  104. package/dist/server-config.d.ts.map +1 -0
  105. package/dist/server-config.js +3 -0
  106. package/dist/server-config.js.map +1 -0
  107. package/dist/server.d.ts +53 -0
  108. package/dist/server.d.ts.map +1 -0
  109. package/dist/server.js +115 -0
  110. package/dist/server.js.map +1 -0
  111. package/package.json +66 -0
  112. package/tsconfig.json +27 -0
@@ -0,0 +1,70 @@
1
+ import { ServerConfig } from '../server-config';
2
+ import { ServerApiConfig } from '../api-config';
3
+ import ServerAclRoleAssessor from '../acl/role-assessor';
4
+ export interface LoggerInterface {
5
+ error(message: any, ...optionalParams: any[]): void;
6
+ warn?(message: any, ...optionalParams: any[]): void;
7
+ info?(message: any, ...optionalParams: any[]): void;
8
+ debug?(message: any, ...optionalParams: any[]): void;
9
+ }
10
+ export interface ModelManagerInterface {
11
+ services: {
12
+ [key: string]: any;
13
+ };
14
+ repos: {
15
+ [key: string]: any;
16
+ };
17
+ init(): Promise<any>;
18
+ shutdown(): Promise<any>;
19
+ setLogger(logger: any): void;
20
+ }
21
+ export interface ConfigurationManagerInterface {
22
+ getConfig(): ServerConfig;
23
+ getModelManager(): ModelManagerInterface;
24
+ setLogger(logger: LoggerInterface): void;
25
+ }
26
+ export interface LifecycleManagerInterface {
27
+ addInitialiser(initialiser: Function, stage?: string): void;
28
+ addInitialisers(initialisers: Function[], stage?: string): void;
29
+ runInitialisers(stage: string | undefined, context: any): Promise<void>;
30
+ addShutdownHandler(handler: Function, stage?: string): void;
31
+ addShutdownHandlers(handlers: Function[], stage?: string): void;
32
+ runShutdownHandlers(stage?: string): Promise<void>;
33
+ }
34
+ export interface ExpressAppManagerInterface {
35
+ getApp(): any;
36
+ getRouter(): any;
37
+ mountRouter(path: string): void;
38
+ setupErrorHandler(logger: LoggerInterface): void;
39
+ }
40
+ export interface HttpServerManagerInterface {
41
+ start(): Promise<void>;
42
+ shutdown(): Promise<any>;
43
+ getServer(): any;
44
+ }
45
+ export interface AclRegistryInterface {
46
+ addRoleAssessor(roleAssessor: ServerAclRoleAssessor): void;
47
+ addRoleAssessors(roleAssessors: ServerAclRoleAssessor[]): void;
48
+ getRoleAssessors(): {
49
+ [key: string]: any;
50
+ };
51
+ }
52
+ export interface ApiConfigRegistryInterface {
53
+ addApiConfig(config: ServerApiConfig): void;
54
+ addApiConfigs(configs: ServerApiConfig[]): void;
55
+ getApiConfigs(): ServerApiConfig[];
56
+ }
57
+ export interface EndpointRegistrarInterface {
58
+ registerEndpoints(): void;
59
+ }
60
+ export interface ServerInterface {
61
+ config: ServerConfig;
62
+ modelManager: ModelManagerInterface;
63
+ logger: LoggerInterface;
64
+ app: any;
65
+ router: any;
66
+ aclRoleAssessor: {
67
+ [key: string]: any;
68
+ };
69
+ }
70
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/server/interfaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/server/interfaces.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ import { LifecycleManagerInterface } from './interfaces';
2
+ export declare class LifecycleManager implements LifecycleManagerInterface {
3
+ private initialisers;
4
+ private shutdownHandlers;
5
+ constructor();
6
+ addInitialiser(initialiser: Function, stage?: string): void;
7
+ addInitialisers(initialisers: Function[], stage?: string): void;
8
+ runInitialisers(stage: string | undefined, context: any): Promise<void>;
9
+ addShutdownHandler(handler: Function, stage?: string): void;
10
+ addShutdownHandlers(handlers: Function[], stage?: string): void;
11
+ runShutdownHandlers(stage?: string): Promise<void>;
12
+ getInitialisers(): {
13
+ [key: string]: any[];
14
+ };
15
+ getShutdownHandlers(): {
16
+ [key: string]: any[];
17
+ };
18
+ }
19
+ //# sourceMappingURL=lifecycle-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle-manager.d.ts","sourceRoot":"","sources":["../../src/server/lifecycle-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AAMxD,qBAAa,gBAAiB,YAAW,yBAAyB;IAChE,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,gBAAgB,CAA0B;;IAOlD,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ3D,eAAe,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAMzD,eAAe,CACnB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,OAAO,EAAE,GAAG,GACX,OAAO,CAAC,IAAI,CAAC;IAYhB,kBAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ3D,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAMzD,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxD,eAAe,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,CAAA;KAAE;IAI3C,mBAAmB,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,CAAA;KAAE;CAGhD"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LifecycleManager = void 0;
4
+ class LifecycleManager {
5
+ constructor() {
6
+ this.initialisers = {};
7
+ this.shutdownHandlers = {};
8
+ }
9
+ addInitialiser(initialiser, stage) {
10
+ stage = stage ? stage : 'default';
11
+ if (this.initialisers[stage] === undefined) {
12
+ this.initialisers[stage] = [];
13
+ }
14
+ this.initialisers[stage].push(initialiser);
15
+ }
16
+ addInitialisers(initialisers, stage) {
17
+ initialisers.forEach((initialiser) => {
18
+ this.addInitialiser(initialiser, stage);
19
+ });
20
+ }
21
+ async runInitialisers(stage, context) {
22
+ stage = stage ? stage : 'default';
23
+ if (this.initialisers[stage]) {
24
+ for (const initFunction of this.initialisers[stage]) {
25
+ const shutdownHandler = await Promise.resolve(initFunction(context));
26
+ if (typeof shutdownHandler == 'function') {
27
+ this.addShutdownHandler(shutdownHandler, stage);
28
+ }
29
+ }
30
+ }
31
+ }
32
+ addShutdownHandler(handler, stage) {
33
+ stage = stage ? stage : 'default';
34
+ if (this.shutdownHandlers[stage] === undefined) {
35
+ this.shutdownHandlers[stage] = [];
36
+ }
37
+ this.shutdownHandlers[stage].unshift(handler);
38
+ }
39
+ addShutdownHandlers(handlers, stage) {
40
+ handlers.forEach((handler) => {
41
+ this.addShutdownHandler(handler, stage);
42
+ });
43
+ }
44
+ async runShutdownHandlers(stage) {
45
+ stage = stage ? stage : 'default';
46
+ if (this.shutdownHandlers[stage] && this.shutdownHandlers[stage].length) {
47
+ for (const handler of this.shutdownHandlers[stage]) {
48
+ await Promise.resolve(handler());
49
+ }
50
+ }
51
+ }
52
+ getInitialisers() {
53
+ return this.initialisers;
54
+ }
55
+ getShutdownHandlers() {
56
+ return this.shutdownHandlers;
57
+ }
58
+ }
59
+ exports.LifecycleManager = LifecycleManager;
60
+ //# sourceMappingURL=lifecycle-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle-manager.js","sourceRoot":"","sources":["../../src/server/lifecycle-manager.ts"],"names":[],"mappings":";;;AAMA,MAAa,gBAAgB;IAI3B;QACE,IAAI,CAAC,YAAY,GAAG,EAAE,CAAA;QACtB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAA;IAC5B,CAAC;IAED,cAAc,CAAC,WAAqB,EAAE,KAAc;QAClD,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;QACjC,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3C,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;QAC/B,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAC5C,CAAC;IAED,eAAe,CAAC,YAAwB,EAAE,KAAc;QACtD,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;YACnC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,KAAyB,EACzB,OAAY;QAEZ,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;QACjC,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpD,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAA;gBACpE,IAAI,OAAO,eAAe,IAAI,UAAU,EAAE,CAAC;oBACzC,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;gBACjD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,OAAiB,EAAE,KAAc;QAClD,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;QACjC,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;YAC/C,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;QACnC,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/C,CAAC;IAED,mBAAmB,CAAC,QAAoB,EAAE,KAAc;QACtD,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,KAAc;QACtC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;QACjC,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YACxE,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnD,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAGD,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAA;IAC9B,CAAC;CACF;AArED,4CAqEC"}
@@ -0,0 +1,10 @@
1
+ import { ModelManagerConfig } from '@datacapy/om';
2
+ export interface ServerConfig {
3
+ path: string;
4
+ port?: number;
5
+ appDir?: string;
6
+ model?: ModelManagerConfig;
7
+ [key: string]: any;
8
+ }
9
+ export default ServerConfig;
10
+ //# sourceMappingURL=server-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-config.d.ts","sourceRoot":"","sources":["../src/server-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEjD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,kBAAkB,CAAA;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB;AAED,eAAe,YAAY,CAAA"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=server-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-config.js","sourceRoot":"","sources":["../src/server-config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,53 @@
1
+ import * as _Http from 'http';
2
+ import express from 'express';
3
+ import { ModelManager } from '@datacapy/om';
4
+ import { ServerConfig } from './server-config';
5
+ import { ServerApiConfig } from './api-config';
6
+ import ServerAclRoleAssessor from './acl/role-assessor';
7
+ import { ErrorTranslator } from './remote-object/interfaces';
8
+ export declare class Server {
9
+ modelManager: ModelManager | any;
10
+ config: ServerConfig;
11
+ apiConfigs: Array<ServerApiConfig>;
12
+ app: express.Application;
13
+ server: _Http.Server | null;
14
+ router: express.Router;
15
+ aclRoleAssessor: {
16
+ [key: string]: any;
17
+ };
18
+ logger: any;
19
+ initialisers: {
20
+ [key: string]: any[];
21
+ };
22
+ shutdownHandlers: {
23
+ [key: string]: any[];
24
+ };
25
+ initialised: boolean;
26
+ private configurationManager;
27
+ private lifecycleManager;
28
+ private expressAppManager;
29
+ private httpServerManager;
30
+ private aclRegistry;
31
+ private apiConfigRegistry;
32
+ private endpointRegistrar;
33
+ constructor(options?: ServerConfig, modelManager?: ModelManager);
34
+ setLogger(logger: any): this;
35
+ setErrorTranslator(errorTranslator: ErrorTranslator): this;
36
+ init(): Promise<void>;
37
+ runInitialisers(stage?: string): Promise<void>;
38
+ addInitialiser(initialiser: any, stage?: string): void;
39
+ addInitialisers(initialisers: any, stage?: string): void;
40
+ addShutdownHandler(handler: any, stage?: string): void;
41
+ addShutdownHandlers(handlers: any, stage?: string): void;
42
+ runShutdownHandlers(stage?: string): Promise<void>;
43
+ addRoleAssessor(roleAssessor: ServerAclRoleAssessor): void;
44
+ addRoleAssessors(roleAssessors: ServerAclRoleAssessor[]): void;
45
+ addApiConfig(config: ServerApiConfig): void;
46
+ addApiConfigs(configs: Array<ServerApiConfig>): void;
47
+ registerEndpoints(): void;
48
+ registerEndpointsConfig(config: ServerApiConfig): void;
49
+ start(): Promise<void>;
50
+ shutdown(): Promise<any>;
51
+ }
52
+ export default Server;
53
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,CAAA;AAC7B,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,qBAAqB,MAAM,qBAAqB,CAAA;AAUvD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAM5D,qBAAa,MAAM;IAEjB,YAAY,EAAE,YAAY,GAAG,GAAG,CAAA;IAChC,MAAM,EAAE,YAAY,CAAA;IACpB,UAAU,EAAE,KAAK,CAAC,eAAe,CAAC,CAAA;IAClC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAA;IACxB,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAA;IAC3B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAA;IACtB,eAAe,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAA;IACvC,MAAM,EAAE,GAAG,CAAA;IACX,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,CAAA;KAAE,CAAA;IACtC,gBAAgB,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,CAAA;KAAE,CAAA;IAC1C,WAAW,EAAE,OAAO,CAAA;IAGpB,OAAO,CAAC,oBAAoB,CAAsB;IAClD,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,iBAAiB,CAAmB;gBAEhC,OAAO,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,YAAY;IAqD/D,SAAS,CAAC,MAAM,KAAA,GAAG,IAAI;IASvB,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAKpD,IAAI;IA2BJ,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM;IAIpC,cAAc,CAAC,WAAW,KAAA,EAAE,KAAK,CAAC,EAAE,MAAM;IAI1C,eAAe,CAAC,YAAY,KAAA,EAAE,KAAK,CAAC,EAAE,MAAM;IAI5C,kBAAkB,CAAC,OAAO,KAAA,EAAE,KAAK,CAAC,EAAE,MAAM;IAI1C,mBAAmB,CAAC,QAAQ,KAAA,EAAE,KAAK,CAAC,EAAE,MAAM;IAItC,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM;IAIxC,eAAe,CAAC,YAAY,EAAE,qBAAqB;IAInD,gBAAgB,CAAC,aAAa,EAAE,qBAAqB,EAAE;IAIvD,YAAY,CAAC,MAAM,EAAE,eAAe;IAIpC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,eAAe,CAAC;IAI7C,iBAAiB;IAIjB,uBAAuB,CAAC,MAAM,EAAE,eAAe;IAIzC,KAAK;IAIL,QAAQ;CAgBf;AAED,eAAe,MAAM,CAAA"}
package/dist/server.js ADDED
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Server = void 0;
4
+ const index_1 = require("./server/index");
5
+ class Server {
6
+ constructor(options, modelManager) {
7
+ this.configurationManager = new index_1.ConfigurationManager(options, modelManager);
8
+ this.lifecycleManager = new index_1.LifecycleManager();
9
+ this.expressAppManager = new index_1.ExpressAppManager(this.configurationManager.getConfig(), console);
10
+ this.aclRegistry = new index_1.AclRegistry();
11
+ this.apiConfigRegistry = new index_1.ApiConfigRegistry();
12
+ this.logger = console;
13
+ this.endpointRegistrar = new index_1.EndpointRegistrar(this.configurationManager, this.expressAppManager, this.aclRegistry, this.apiConfigRegistry, this.logger);
14
+ this.httpServerManager = new index_1.HttpServerManager(this.expressAppManager.getApp(), this.configurationManager.getConfig(), this.logger, () => this.shutdown());
15
+ this.config = this.configurationManager.getConfig();
16
+ this.modelManager = this.configurationManager.getModelManager();
17
+ this.app = this.expressAppManager.getApp();
18
+ this.router = this.expressAppManager.getRouter();
19
+ this.aclRoleAssessor = this.aclRegistry.getRoleAssessors();
20
+ this.apiConfigs = this.apiConfigRegistry.getApiConfigs();
21
+ this.server = null;
22
+ this.initialised = false;
23
+ Object.defineProperty(this, 'initialisers', {
24
+ get: () => this.lifecycleManager.getInitialisers(),
25
+ });
26
+ Object.defineProperty(this, 'shutdownHandlers', {
27
+ get: () => this.lifecycleManager.getShutdownHandlers(),
28
+ });
29
+ Object.defineProperty(this, 'server', {
30
+ get: () => this.httpServerManager.getServer(),
31
+ });
32
+ }
33
+ setLogger(logger) {
34
+ this.logger = logger;
35
+ this.configurationManager.setLogger(logger);
36
+ this.expressAppManager['logger'] = logger;
37
+ this.httpServerManager['logger'] = logger;
38
+ this.endpointRegistrar['logger'] = logger;
39
+ return this;
40
+ }
41
+ setErrorTranslator(errorTranslator) {
42
+ this.endpointRegistrar['errorTranslator'] = errorTranslator;
43
+ return this;
44
+ }
45
+ async init() {
46
+ if (!this.initialised) {
47
+ await this.lifecycleManager.runInitialisers(undefined, this);
48
+ await this.lifecycleManager.runInitialisers('00-init', this);
49
+ await this.modelManager.init();
50
+ await this.lifecycleManager.runInitialisers('01-model-initialised', this);
51
+ await this.lifecycleManager.runInitialisers('02-resources-loaded', this);
52
+ this.endpointRegistrar.registerEndpoints();
53
+ await this.lifecycleManager.runInitialisers('03-endpoints-registered', this);
54
+ this.expressAppManager.mountRouter(this.config.path);
55
+ await this.lifecycleManager.runInitialisers('04-router-mounted', this);
56
+ this.expressAppManager.setupErrorHandler(this.logger);
57
+ await this.lifecycleManager.runInitialisers('99-final', this);
58
+ this.initialised = true;
59
+ }
60
+ }
61
+ async runInitialisers(stage) {
62
+ await this.lifecycleManager.runInitialisers(stage, this);
63
+ }
64
+ addInitialiser(initialiser, stage) {
65
+ this.lifecycleManager.addInitialiser(initialiser, stage);
66
+ }
67
+ addInitialisers(initialisers, stage) {
68
+ this.lifecycleManager.addInitialisers(initialisers, stage);
69
+ }
70
+ addShutdownHandler(handler, stage) {
71
+ this.lifecycleManager.addShutdownHandler(handler, stage);
72
+ }
73
+ addShutdownHandlers(handlers, stage) {
74
+ this.lifecycleManager.addShutdownHandlers(handlers, stage);
75
+ }
76
+ async runShutdownHandlers(stage) {
77
+ await this.lifecycleManager.runShutdownHandlers(stage);
78
+ }
79
+ addRoleAssessor(roleAssessor) {
80
+ this.aclRegistry.addRoleAssessor(roleAssessor);
81
+ }
82
+ addRoleAssessors(roleAssessors) {
83
+ this.aclRegistry.addRoleAssessors(roleAssessors);
84
+ }
85
+ addApiConfig(config) {
86
+ this.apiConfigRegistry.addApiConfig(config);
87
+ }
88
+ addApiConfigs(configs) {
89
+ this.apiConfigRegistry.addApiConfigs(configs);
90
+ }
91
+ registerEndpoints() {
92
+ this.endpointRegistrar.registerEndpoints();
93
+ }
94
+ registerEndpointsConfig(config) {
95
+ this.endpointRegistrar['registerEndpointsConfig'](config);
96
+ }
97
+ async start() {
98
+ await this.httpServerManager.start();
99
+ }
100
+ async shutdown() {
101
+ this.logger.info('Shutting down');
102
+ await this.lifecycleManager.runShutdownHandlers('99-final');
103
+ await this.lifecycleManager.runShutdownHandlers('04-router-mounted');
104
+ await this.lifecycleManager.runShutdownHandlers('03-endpoints-registered');
105
+ await this.lifecycleManager.runShutdownHandlers('02-resources-loaded');
106
+ await this.lifecycleManager.runShutdownHandlers('01-model-initialised');
107
+ await this.modelManager.shutdown();
108
+ await this.lifecycleManager.runShutdownHandlers('00-init');
109
+ await this.lifecycleManager.runShutdownHandlers();
110
+ return this.httpServerManager.shutdown();
111
+ }
112
+ }
113
+ exports.Server = Server;
114
+ exports.default = Server;
115
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "@datacapy/server",
3
+ "type": "commonjs",
4
+ "version": "0.1.0",
5
+ "description": "Datacapy server: REST API server over the object model",
6
+ "main": "dist/index",
7
+ "types": "dist/index.d.ts",
8
+ "author": "Kevin Foster <kevin.foster.uk@gmail.com>",
9
+ "license": "BSD-3-Clause",
10
+ "homepage": "https://github.com/datacapy/datacapy#readme",
11
+ "bugs": {
12
+ "url": "https://github.com/datacapy/datacapy/issues"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+https://github.com/datacapy/datacapy.git",
17
+ "directory": "package/server"
18
+ },
19
+ "devDependencies": {
20
+ "@eslint/js": "^10.0.1",
21
+ "@types/bcrypt": "^6.0.0",
22
+ "@types/express": "^5.0.6",
23
+ "@types/jest": "^30.0.0",
24
+ "@types/node": "^25.9.8",
25
+ "eslint": "^10.11.0",
26
+ "husky": "^9.1.7",
27
+ "jest": "^30.5.2",
28
+ "lint-staged": "^15.5.2",
29
+ "prettier": "3.9.9",
30
+ "ts-jest": "^29.4.14",
31
+ "ts-node": "^10.9.2",
32
+ "typescript": "^6.0.3",
33
+ "typescript-eslint": "^8.71.0"
34
+ },
35
+ "dependencies": {
36
+ "bcryptjs": "^3.0.3",
37
+ "body-parser": "^2.3.0",
38
+ "express": "^5.2.1",
39
+ "merge": "^2.1.1",
40
+ "mongodb": "^6.21.0",
41
+ "@datacapy/om": "0.1.0"
42
+ },
43
+ "files": [
44
+ "/dist",
45
+ "/tsconfig.json"
46
+ ],
47
+ "lint-staged": {
48
+ "**/*": "prettier --write --ignore-unknown"
49
+ },
50
+ "publishConfig": {
51
+ "access": "public"
52
+ },
53
+ "scripts": {
54
+ "build": "pnpm run clean && tsc && pnpm run build-minimise",
55
+ "build-minimise": "find ./dist -type f -name '*.test.js' -delete && find ./dist -type f -name '*.test.js.map' -delete && find ./dist -type f -name '*.test.d.ts' -delete && find ./dist -type f -name '*.test.d.ts.map' -delete && find ./dist -type d -name 'test' -exec rm -rf {} + && find ./dist -type d -name 'test-utils' -exec rm -rf {} +",
56
+ "clean": "rm -fr ./dist/*",
57
+ "test": "jest",
58
+ "test:watch": "jest --watch",
59
+ "test:coverage": "jest --coverage",
60
+ "typecheck": "tsc --noEmit",
61
+ "test-fixtures-build": "cd ./src/test/fixtures && tsc",
62
+ "test-fixtures-clean": "find ./src/test/fixtures -type f \\( -name '*.js' -or -name '*.js.map' -or -name '*.d.ts' \\) -delete",
63
+ "prettier:check": "prettier --check src",
64
+ "format": "prettier --write src"
65
+ }
66
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "es2019",
4
+ "module": "commonjs",
5
+ "allowJs": false,
6
+ "strict": false,
7
+ "noImplicitAny": false,
8
+ "outDir": "./dist",
9
+ "rootDir": "./src",
10
+ "baseUrl": "./src",
11
+ "ignoreDeprecations": "6.0",
12
+ "paths": {
13
+ "*": ["*"]
14
+ },
15
+ "removeComments": true,
16
+ "esModuleInterop": true,
17
+ "declaration": true,
18
+ "declarationMap": true,
19
+ "sourceMap": true,
20
+ "skipLibCheck": true,
21
+ "types": ["node", "jest"],
22
+ "allowSyntheticDefaultImports": true,
23
+ "forceConsistentCasingInFileNames": true
24
+ },
25
+ "include": ["src/**/*", "src/**/_tests/*"],
26
+ "exclude": ["node_modules", "src/test-utils"]
27
+ }