@bett3r-dev/pv3-types 1.0.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 (122) hide show
  1. package/build/authentication.d.ts +261 -0
  2. package/build/authentication.d.ts.map +1 -0
  3. package/build/authentication.js +108 -0
  4. package/build/authentication.js.map +1 -0
  5. package/build/cache.d.ts +101 -0
  6. package/build/cache.d.ts.map +1 -0
  7. package/build/cache.js +3 -0
  8. package/build/cache.js.map +1 -0
  9. package/build/clusterAdministration.d.ts +642 -0
  10. package/build/clusterAdministration.d.ts.map +1 -0
  11. package/build/clusterAdministration.js +177 -0
  12. package/build/clusterAdministration.js.map +1 -0
  13. package/build/configuration.d.ts +66 -0
  14. package/build/configuration.d.ts.map +1 -0
  15. package/build/configuration.js +3 -0
  16. package/build/configuration.js.map +1 -0
  17. package/build/database.d.ts +120 -0
  18. package/build/database.d.ts.map +1 -0
  19. package/build/database.js +41 -0
  20. package/build/database.js.map +1 -0
  21. package/build/endpoints.d.ts +183 -0
  22. package/build/endpoints.d.ts.map +1 -0
  23. package/build/endpoints.js +78 -0
  24. package/build/endpoints.js.map +1 -0
  25. package/build/evenstore.d.ts +26 -0
  26. package/build/evenstore.d.ts.map +1 -0
  27. package/build/evenstore.js +12 -0
  28. package/build/evenstore.js.map +1 -0
  29. package/build/eventsourcing/aggregateBuilder.d.ts +10 -0
  30. package/build/eventsourcing/aggregateBuilder.d.ts.map +1 -0
  31. package/build/eventsourcing/aggregateBuilder.js +3 -0
  32. package/build/eventsourcing/aggregateBuilder.js.map +1 -0
  33. package/build/eventsourcing/commandBuilder.d.ts +58 -0
  34. package/build/eventsourcing/commandBuilder.d.ts.map +1 -0
  35. package/build/eventsourcing/commandBuilder.js +6 -0
  36. package/build/eventsourcing/commandBuilder.js.map +1 -0
  37. package/build/eventsourcing/commandHandlers.d.ts +104 -0
  38. package/build/eventsourcing/commandHandlers.d.ts.map +1 -0
  39. package/build/eventsourcing/commandHandlers.js +28 -0
  40. package/build/eventsourcing/commandHandlers.js.map +1 -0
  41. package/build/eventsourcing/eventHandlers.d.ts +102 -0
  42. package/build/eventsourcing/eventHandlers.d.ts.map +1 -0
  43. package/build/eventsourcing/eventHandlers.js +33 -0
  44. package/build/eventsourcing/eventHandlers.js.map +1 -0
  45. package/build/eventsourcing/eventHandlersBuilder.d.ts +36 -0
  46. package/build/eventsourcing/eventHandlersBuilder.d.ts.map +1 -0
  47. package/build/eventsourcing/eventHandlersBuilder.js +13 -0
  48. package/build/eventsourcing/eventHandlersBuilder.js.map +1 -0
  49. package/build/eventsourcing/externalSystemBuilder.d.ts +14 -0
  50. package/build/eventsourcing/externalSystemBuilder.d.ts.map +1 -0
  51. package/build/eventsourcing/externalSystemBuilder.js +3 -0
  52. package/build/eventsourcing/externalSystemBuilder.js.map +1 -0
  53. package/build/eventsourcing/index.d.ts +386 -0
  54. package/build/eventsourcing/index.d.ts.map +1 -0
  55. package/build/eventsourcing/index.js +47 -0
  56. package/build/eventsourcing/index.js.map +1 -0
  57. package/build/eventsourcing/invariants.d.ts +19 -0
  58. package/build/eventsourcing/invariants.d.ts.map +1 -0
  59. package/build/eventsourcing/invariants.js +3 -0
  60. package/build/eventsourcing/invariants.js.map +1 -0
  61. package/build/eventsourcing/utils.d.ts +4 -0
  62. package/build/eventsourcing/utils.d.ts.map +1 -0
  63. package/build/eventsourcing/utils.js +3 -0
  64. package/build/eventsourcing/utils.js.map +1 -0
  65. package/build/index.d.ts +16 -0
  66. package/build/index.d.ts.map +1 -0
  67. package/build/index.js +32 -0
  68. package/build/index.js.map +1 -0
  69. package/build/infrastructure.d.ts +40 -0
  70. package/build/infrastructure.d.ts.map +1 -0
  71. package/build/infrastructure.js +11 -0
  72. package/build/infrastructure.js.map +1 -0
  73. package/build/logger.d.ts +32 -0
  74. package/build/logger.d.ts.map +1 -0
  75. package/build/logger.js +29 -0
  76. package/build/logger.js.map +1 -0
  77. package/build/outboxManager.d.ts +38 -0
  78. package/build/outboxManager.d.ts.map +1 -0
  79. package/build/outboxManager.js +21 -0
  80. package/build/outboxManager.js.map +1 -0
  81. package/build/ports.d.ts +39 -0
  82. package/build/ports.d.ts.map +1 -0
  83. package/build/ports.js +3 -0
  84. package/build/ports.js.map +1 -0
  85. package/build/routesAuth.d.ts +58 -0
  86. package/build/routesAuth.d.ts.map +1 -0
  87. package/build/routesAuth.js +37 -0
  88. package/build/routesAuth.js.map +1 -0
  89. package/build/typedEventEmitter.d.ts +23 -0
  90. package/build/typedEventEmitter.d.ts.map +1 -0
  91. package/build/typedEventEmitter.js +55 -0
  92. package/build/typedEventEmitter.js.map +1 -0
  93. package/build/validation.d.ts +64 -0
  94. package/build/validation.d.ts.map +1 -0
  95. package/build/validation.js +57 -0
  96. package/build/validation.js.map +1 -0
  97. package/package.json +15 -0
  98. package/src/authentication.ts +273 -0
  99. package/src/cache.ts +109 -0
  100. package/src/clusterAdministration.ts +216 -0
  101. package/src/configuration.ts +71 -0
  102. package/src/database.ts +157 -0
  103. package/src/endpoints.ts +198 -0
  104. package/src/evenstore.ts +27 -0
  105. package/src/eventsourcing/aggregateBuilder.ts +11 -0
  106. package/src/eventsourcing/commandBuilder.ts +64 -0
  107. package/src/eventsourcing/commandHandlers.ts +137 -0
  108. package/src/eventsourcing/eventHandlers.ts +118 -0
  109. package/src/eventsourcing/eventHandlersBuilder.ts +42 -0
  110. package/src/eventsourcing/externalSystemBuilder.ts +20 -0
  111. package/src/eventsourcing/index.ts +111 -0
  112. package/src/eventsourcing/invariants.ts +27 -0
  113. package/src/eventsourcing/utils.ts +4 -0
  114. package/src/index.ts +15 -0
  115. package/src/infrastructure.ts +41 -0
  116. package/src/logger.ts +45 -0
  117. package/src/outboxManager.ts +36 -0
  118. package/src/ports.ts +42 -0
  119. package/src/routesAuth.ts +58 -0
  120. package/src/typedEventEmitter.ts +73 -0
  121. package/src/validation.ts +89 -0
  122. package/tsconfig.json +15 -0
@@ -0,0 +1,32 @@
1
+ import { AdapterBase } from './ports';
2
+ export declare const LoggerConfigSchema: import("@bett3r-dev/jsonschema-definer").ObjectSchema<{
3
+ logLevel?: "info" | "silly" | "debug" | "log" | "warn" | "error" | undefined;
4
+ modulesWhitelist?: string[] | undefined;
5
+ modulesBlacklist?: string[] | undefined;
6
+ }, false>;
7
+ export type LoggerConfig = typeof LoggerConfigSchema.type;
8
+ export type LogLevels = 'silly' | 'debug' | 'log' | 'info' | 'warn' | 'error';
9
+ export declare const LogLevelMap: {
10
+ error: number;
11
+ warn: number;
12
+ info: number;
13
+ log: number;
14
+ debug: number;
15
+ silly: number;
16
+ };
17
+ export declare const LevelLogMap: Record<number, LogLevels>;
18
+ export type LoggerAdapter = AdapterBase & {
19
+ log: (originalArgs: any[], level: LogLevels, module: string) => void;
20
+ };
21
+ export type LoggerPort = {
22
+ createLoggerInstance: (module: string) => LoggerType;
23
+ };
24
+ export type LoggerType = {
25
+ silly: (...args: any[]) => void;
26
+ debug: (...args: any[]) => void;
27
+ log: (...args: any[]) => void;
28
+ info: (...args: any[]) => void;
29
+ warn: (...args: any[]) => void;
30
+ error: (...args: any[]) => void;
31
+ };
32
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,eAAO,MAAM,kBAAkB;;;;SAIlB,CAAC;AACd,MAAM,MAAM,YAAY,GAAG,OAAO,kBAAkB,CAAC,IAAI,CAAC;AAE1D,MAAM,MAAM,SAAS,GAAG,OAAO,GAAE,OAAO,GAAE,KAAK,GAAE,MAAM,GAAE,MAAM,GAAE,OAAO,CAAC;AAEzE,eAAO,MAAM,WAAW;;;;;;;CAOvB,CAAC;AACF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAOjD,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG;IACxC,GAAG,EAAE,CAAE,YAAY,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAG,MAAM,EAAE,MAAM,KAAM,IAAI,CAAA;CACxE,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,oBAAoB,EAAE,CAAE,MAAM,EAAE,MAAM,KAAM,UAAU,CAAA;CACvD,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,CAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAG,IAAI,CAAA;IAC9B,KAAK,EAAE,CAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAG,IAAI,CAAA;IAC9B,GAAG,EAAE,CAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAG,IAAI,CAAA;IAC5B,IAAI,EAAE,CAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAG,IAAI,CAAA;IAC7B,IAAI,EAAE,CAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAG,IAAI,CAAA;IAC7B,KAAK,EAAE,CAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAG,IAAI,CAAA;CAC/B,CAAA"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LevelLogMap = exports.LogLevelMap = exports.LoggerConfigSchema = void 0;
7
+ const jsonschema_definer_1 = __importDefault(require("@bett3r-dev/jsonschema-definer"));
8
+ exports.LoggerConfigSchema = jsonschema_definer_1.default.shape({
9
+ logLevel: jsonschema_definer_1.default.string().enum('silly', 'debug', 'log', 'info', 'warn', 'error').optional(),
10
+ modulesWhitelist: jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string()).optional(),
11
+ modulesBlacklist: jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string()).optional()
12
+ }).optional();
13
+ exports.LogLevelMap = {
14
+ error: 0,
15
+ warn: 1,
16
+ info: 2,
17
+ log: 3,
18
+ debug: 4,
19
+ silly: 5,
20
+ };
21
+ exports.LevelLogMap = {
22
+ 0: 'error',
23
+ 1: 'warn',
24
+ 2: 'info',
25
+ 3: 'log',
26
+ 4: 'debug',
27
+ 5: 'silly',
28
+ };
29
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;;;;AAAA,wFAA+C;AAGlC,QAAA,kBAAkB,GAAG,4BAAC,CAAC,KAAK,CAAC;IACxC,QAAQ,EAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAE,CAAC,QAAQ,EAAE;IACxF,gBAAgB,EAAE,4BAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzD,gBAAgB,EAAE,4BAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC1D,CAAC,CAAC,QAAQ,EAAE,CAAC;AAKD,QAAA,WAAW,GAAG;IACzB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;CACT,CAAC;AACW,QAAA,WAAW,GAA8B;IACpD,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,KAAK;IACR,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;CACX,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { CommittedEvent } from '@bett3r-dev/pv3-types';
2
+ export declare const UdpConfigSchema: import("@bett3r-dev/jsonschema-definer").ObjectSchema<{
3
+ port?: number | undefined;
4
+ multicastAddress?: string | undefined;
5
+ ttl?: number | undefined;
6
+ }, true>;
7
+ export type UdpConfigType = typeof UdpConfigSchema.type;
8
+ export declare const AdminServicesConfigSchema: import("@bett3r-dev/jsonschema-definer").ObjectSchema<{
9
+ udp?: {
10
+ port?: number | undefined;
11
+ multicastAddress?: string | undefined;
12
+ ttl?: number | undefined;
13
+ } | undefined;
14
+ structure?: {
15
+ structureEventstoreStream?: string | undefined;
16
+ structureAggregateCollection?: string | undefined;
17
+ structureEventstoreCollection?: string | undefined;
18
+ } | undefined;
19
+ infrastructure?: {
20
+ infrastructureLeaderRandomBackoff?: number | undefined;
21
+ } | undefined;
22
+ metricsInterval?: number | undefined;
23
+ }, true>;
24
+ export type AdminServicesConfigType = typeof AdminServicesConfigSchema.type;
25
+ export type OutboxManagerType = {
26
+ start: (activateDiscoveredSubscriptions?: boolean) => Promise<void>;
27
+ stop: () => Promise<void>;
28
+ };
29
+ export type TcpEventMessageRequest = {
30
+ endpoint: string;
31
+ event: CommittedEvent;
32
+ };
33
+ export type TcpEventMessageResponse = {
34
+ id: number;
35
+ status: number;
36
+ error?: string;
37
+ };
38
+ //# sourceMappingURL=outboxManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outboxManager.d.ts","sourceRoot":"","sources":["../src/outboxManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,eAAO,MAAM,eAAe;;;;QAI1B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,eAAe,CAAC,IAAI,CAAC;AAGxD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;QAKpC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,OAAO,yBAAyB,CAAC,IAAI,CAAC;AAE5E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,CAAE,+BAA+B,CAAC,EAAE,OAAO,KAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,cAAc,CAAA;CACtB,CAAA;AACD,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AdminServicesConfigSchema = exports.UdpConfigSchema = void 0;
7
+ const jsonschema_definer_1 = __importDefault(require("@bett3r-dev/jsonschema-definer"));
8
+ const pv3_types_1 = require("@bett3r-dev/pv3-types");
9
+ const pv3_types_2 = require("@bett3r-dev/pv3-types");
10
+ exports.UdpConfigSchema = jsonschema_definer_1.default.shape({
11
+ port: jsonschema_definer_1.default.number().default(16706).optional(),
12
+ multicastAddress: jsonschema_definer_1.default.string().default('224.0.1.50').optional(),
13
+ ttl: jsonschema_definer_1.default.number().optional()
14
+ });
15
+ exports.AdminServicesConfigSchema = jsonschema_definer_1.default.shape({
16
+ udp: exports.UdpConfigSchema.optional().default({}),
17
+ structure: pv3_types_2.ClusterStructureConfigSchema.optional().default({}),
18
+ infrastructure: pv3_types_1.InfrastructureConfigSchema.optional().default({}),
19
+ metricsInterval: jsonschema_definer_1.default.number().optional().default(1000)
20
+ });
21
+ //# sourceMappingURL=outboxManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outboxManager.js","sourceRoot":"","sources":["../src/outboxManager.ts"],"names":[],"mappings":";;;;;;AAAA,wFAA+C;AAC/C,qDAAmE;AAEnE,qDAAqE;AAExD,QAAA,eAAe,GAAG,4BAAC,CAAC,KAAK,CAAC;IACrC,IAAI,EAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAE,KAAK,CAAE,CAAC,QAAQ,EAAE;IAC5C,gBAAgB,EAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAE,YAAY,CAAE,CAAC,QAAQ,EAAE;IAC/D,GAAG,EAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC3B,CAAC,CAAC;AAIU,QAAA,yBAAyB,GAAG,4BAAC,CAAC,KAAK,CAAC;IAC/C,GAAG,EAAE,uBAAe,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3C,SAAS,EAAE,wCAA4B,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9D,cAAc,EAAE,sCAA0B,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACjE,eAAe,EAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAE,IAAI,CAAE;CACvD,CAAC,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { AuthenticationPort } from './authentication';
2
+ import { CachePort } from './cache';
3
+ import { ConfigurationPort } from './configuration';
4
+ import { DatabasePort } from './database';
5
+ import { EndpointsPort } from './endpoints';
6
+ import { EventStorePort } from './evenstore';
7
+ import { EventSourcingPort } from './eventsourcing';
8
+ import { InfrastructurePortType } from './infrastructure';
9
+ import { LoggerPort } from './logger';
10
+ import { TypedEventEmitter } from './typedEventEmitter';
11
+ export type PortEmitterEvents = {
12
+ started: void;
13
+ };
14
+ /**
15
+ * Base type for Porst that exposes an EventEmitter interface for handling the 'started' event.
16
+ */
17
+ export type PortEmitter = {
18
+ isStarted: boolean;
19
+ emitter: TypedEventEmitter<PortEmitterEvents>;
20
+ onStarted: (fn: () => void) => void;
21
+ };
22
+ export type AdapterBase<T = any> = {
23
+ name: string;
24
+ _adapter: () => T;
25
+ start: () => Promise<void>;
26
+ stop: () => Promise<void>;
27
+ };
28
+ export type Ports = {
29
+ configuration: ConfigurationPort;
30
+ logger: LoggerPort;
31
+ cache: CachePort;
32
+ endpoints: EndpointsPort;
33
+ database: DatabasePort;
34
+ eventstore: EventStorePort;
35
+ eventsourcing: EventSourcingPort;
36
+ authentication: AuthenticationPort;
37
+ infrastructure: InfrastructurePortType;
38
+ };
39
+ //# sourceMappingURL=ports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../src/ports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,IAAI,CAAC;CACf,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAC9C,SAAS,EAAE,CAAE,EAAE,EAAE,MAAM,IAAI,KAAM,IAAI,CAAA;CACtC,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,GAAG,IAAI;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B,CAAA;AAED,MAAM,MAAM,KAAK,GAAG;IAClB,aAAa,EAAE,iBAAiB,CAAC;IACjC,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,aAAa,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,UAAU,EAAE,cAAc,CAAC;IAC3B,aAAa,EAAE,iBAAiB,CAAC;IACjC,cAAc,EAAE,kBAAkB,CAAC;IACnC,cAAc,EAAE,sBAAsB,CAAA;CACvC,CAAA"}
package/build/ports.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ports.js","sourceRoot":"","sources":["../src/ports.ts"],"names":[],"mappings":""}
@@ -0,0 +1,58 @@
1
+ import { Ports } from './ports';
2
+ import { ClusterRoutesConfigType } from './clusterAdministration';
3
+ export declare const ClusterRoutesAggregateSchema: import("@bett3r-dev/jsonschema-definer").ObjectSchema<{
4
+ roles?: string[] | undefined;
5
+ isPublic?: boolean | undefined;
6
+ id: string;
7
+ method: string;
8
+ }, true>;
9
+ export type ClusterRoutesAggregateType = typeof ClusterRoutesAggregateSchema.type;
10
+ export type RouteManagerEndpointAuth = ClusterRoutesAggregateType;
11
+ export declare const UpsertRouteCommandSchema: import("@bett3r-dev/jsonschema-definer").ObjectSchema<{
12
+ [x: string]: {
13
+ roles?: string[] | undefined;
14
+ isPublic?: boolean | undefined;
15
+ id: string;
16
+ method: string;
17
+ };
18
+ }, true>;
19
+ export declare const DeleteRouteCommandSchema: import("@bett3r-dev/jsonschema-definer").ArraySchema<string, true>;
20
+ export declare const ClusterManagerEvents: {
21
+ RoutesUpserted: () => import("./eventsourcing").EventInstance<{
22
+ [x: string]: {
23
+ roles?: string[] | undefined;
24
+ isPublic?: boolean | undefined;
25
+ id: string;
26
+ method: string;
27
+ };
28
+ }, any>;
29
+ RouteDeleted: () => import("./eventsourcing").EventInstance<string[], any>;
30
+ };
31
+ /**
32
+ * Represents the place where the routes are stored and consumed by an authorization server.
33
+ * Usually this store will live in a Cache and holds all the endpoints of the application
34
+ * and their access requirements. That means if the resource is public, or what roles can have access.
35
+ */
36
+ export type RoutesAuthManagerType = {
37
+ getAllRoutes: () => Promise<RouteManagerEndpointAuth[]>;
38
+ getRoute: (method: string, route: string) => Promise<Pick<RouteManagerEndpointAuth, 'isPublic' | 'roles'> | false>;
39
+ upsertRoute: (endpoint: RouteManagerEndpointAuth) => Promise<RouteManagerEndpointAuth>;
40
+ subscribeToRoutesAuthChanges: (onStructureChanges: (change: ClusterRoutesAggregateType) => void) => Promise<{
41
+ unsubscribe: () => void;
42
+ }>;
43
+ stop: () => Promise<void>;
44
+ };
45
+ export type RouteAuthManagerFactory = (ports: Pick<Ports, 'database' | 'eventstore'>, config: ClusterRoutesConfigType, eventstore?: Ports['eventstore']) => RoutesAuthManagerType;
46
+ export declare const EndpointMarkedAsPublicSchema: import("@bett3r-dev/jsonschema-definer").ObjectSchema<{
47
+ isPublic?: boolean | undefined;
48
+ id: string;
49
+ method: string;
50
+ }, true>;
51
+ export type EndpointMarkedAsPublic = typeof EndpointMarkedAsPublicSchema.type;
52
+ export declare const EndpointRolesUpsertedSchema: import("@bett3r-dev/jsonschema-definer").ObjectSchema<{
53
+ id: string;
54
+ roles: string[];
55
+ method: string;
56
+ }, true>;
57
+ export type EndpointRolesUpserted = typeof EndpointRolesUpsertedSchema.type;
58
+ //# sourceMappingURL=routesAuth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routesAuth.d.ts","sourceRoot":"","sources":["../src/routesAuth.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAElE,eAAO,MAAM,4BAA4B;;;;;QAKvC,CAAC;AACH,MAAM,MAAM,0BAA0B,GAAG,OAAO,4BAA4B,CAAC,IAAI,CAAC;AAElF,MAAM,MAAM,wBAAwB,GAAG,0BAA0B,CAAC;AAElE,eAAO,MAAM,wBAAwB;;;;;;;QAAmE,CAAC;AACzG,eAAO,MAAM,wBAAwB,oEAA+B,CAAC;AAErE,eAAO,MAAM,oBAAoB;;;;;;;;;;CAOhC,CAAC;AAGF;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,YAAY,EAAE,MAAM,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACxD,QAAQ,EAAE,CAAE,MAAM,EAAC,MAAM,EAAE,KAAK,EAAE,MAAM,KAAM,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,UAAU,GAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAA;IACjH,WAAW,EAAE,CAAE,QAAQ,EAAE,wBAAwB,KAAM,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACzF,4BAA4B,EAAE,CAAE,kBAAkB,EAAE,CAAE,MAAM,EAAE,0BAA0B,KAAM,IAAI,KAAM,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC,CAAC;IAC7I,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,CAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,GAAC,YAAY,CAAC,EAAE,MAAM,EAAE,uBAAuB,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,qBAAqB,CAAA;AAGhL,eAAO,MAAM,4BAA4B;;;;QAIvC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,OAAO,4BAA4B,CAAC,IAAI,CAAA;AAE7E,eAAO,MAAM,2BAA2B;;;;QAItC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,OAAO,2BAA2B,CAAC,IAAI,CAAA"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.EndpointRolesUpsertedSchema = exports.EndpointMarkedAsPublicSchema = exports.ClusterManagerEvents = exports.DeleteRouteCommandSchema = exports.UpsertRouteCommandSchema = exports.ClusterRoutesAggregateSchema = void 0;
7
+ const jsonschema_definer_1 = __importDefault(require("@bett3r-dev/jsonschema-definer"));
8
+ const http_1 = require("http");
9
+ const eventsourcing_1 = require("./eventsourcing");
10
+ exports.ClusterRoutesAggregateSchema = jsonschema_definer_1.default.shape({
11
+ method: jsonschema_definer_1.default.string().enum(...http_1.METHODS.map(m => m.toLocaleLowerCase())),
12
+ id: jsonschema_definer_1.default.string(),
13
+ isPublic: jsonschema_definer_1.default.boolean().optional(),
14
+ roles: jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string()).optional(),
15
+ });
16
+ exports.UpsertRouteCommandSchema = jsonschema_definer_1.default.shape({}).additionalProperties(exports.ClusterRoutesAggregateSchema);
17
+ exports.DeleteRouteCommandSchema = jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string());
18
+ exports.ClusterManagerEvents = {
19
+ RoutesUpserted: () => (0, eventsourcing_1.Event)({
20
+ schema: exports.UpsertRouteCommandSchema
21
+ }),
22
+ RouteDeleted: () => (0, eventsourcing_1.Event)({
23
+ schema: exports.DeleteRouteCommandSchema
24
+ })
25
+ };
26
+ // Endpoints Schemas
27
+ exports.EndpointMarkedAsPublicSchema = jsonschema_definer_1.default.shape({
28
+ method: jsonschema_definer_1.default.string().enum(...http_1.METHODS.map(m => m.toLocaleLowerCase())),
29
+ id: jsonschema_definer_1.default.string(),
30
+ isPublic: jsonschema_definer_1.default.boolean().optional()
31
+ });
32
+ exports.EndpointRolesUpsertedSchema = jsonschema_definer_1.default.shape({
33
+ method: jsonschema_definer_1.default.string().enum(...http_1.METHODS.map(m => m.toLocaleLowerCase())),
34
+ id: jsonschema_definer_1.default.string(),
35
+ roles: jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string()),
36
+ });
37
+ //# sourceMappingURL=routesAuth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routesAuth.js","sourceRoot":"","sources":["../src/routesAuth.ts"],"names":[],"mappings":";;;;;;AAAA,wFAA+C;AAC/C,+BAA+B;AAC/B,mDAAwC;AAI3B,QAAA,4BAA4B,GAAG,4BAAC,CAAC,KAAK,CAAC;IAClD,MAAM,EAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAE,GAAG,cAAO,CAAC,GAAG,CAAE,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACnE,EAAE,EAAE,4BAAC,CAAC,MAAM,EAAE;IACd,QAAQ,EAAE,4BAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,KAAK,EAAE,4BAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC/C,CAAC,CAAC;AAKU,QAAA,wBAAwB,GAAG,4BAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAE,oCAA4B,CAAE,CAAC;AAC5F,QAAA,wBAAwB,GAAG,4BAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAExD,QAAA,oBAAoB,GAAG;IAClC,cAAc,EAAE,GAAG,EAAE,CAAC,IAAA,qBAAK,EAAC;QAC1B,MAAM,EAAE,gCAAwB;KACjC,CAAC;IACF,YAAY,EAAE,GAAG,EAAE,CAAC,IAAA,qBAAK,EAAC;QACxB,MAAM,EAAE,gCAAwB;KACjC,CAAC;CACH,CAAC;AAkBF,oBAAoB;AACP,QAAA,4BAA4B,GAAG,4BAAC,CAAC,KAAK,CAAC;IAClD,MAAM,EAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAE,GAAG,cAAO,CAAC,GAAG,CAAE,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACnE,EAAE,EAAE,4BAAC,CAAC,MAAM,EAAE;IACd,QAAQ,EAAE,4BAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAGU,QAAA,2BAA2B,GAAG,4BAAC,CAAC,KAAK,CAAC;IACjD,MAAM,EAAE,4BAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAE,GAAG,cAAO,CAAC,GAAG,CAAE,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACnE,EAAE,EAAE,4BAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,4BAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAE,4BAAC,CAAC,MAAM,EAAE,CAAC;CACpC,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ declare module 'events' {
2
+ interface EventEmitter {
3
+ on<K extends keyof any>(event: K, listener: (...args: any[]) => void): this;
4
+ emit<K extends keyof any>(event: K, ...args: any[]): boolean;
5
+ }
6
+ }
7
+ export declare class TypedEventEmitter<T> {
8
+ private emitter;
9
+ on<K extends keyof T>(event: K, listener: (arg: T[K]) => void): this;
10
+ emit<K extends keyof T>(event: K, arg?: T[K]): boolean;
11
+ off<K extends keyof T>(event: K, listener: (arg: T[K]) => void): this;
12
+ once<K extends keyof T>(event: K, listener: (arg: T[K]) => void): this;
13
+ removeAllListeners<K extends keyof T>(event?: K): this;
14
+ listeners<K extends keyof T>(event: K): Function[];
15
+ rawListeners<K extends keyof T>(event: K): Function[];
16
+ listenerCount<K extends keyof T>(event: K): number;
17
+ prependListener<K extends keyof T>(event: K, listener: (arg: T[K]) => void): this;
18
+ prependOnceListener<K extends keyof T>(event: K, listener: (arg: T[K]) => void): this;
19
+ eventNames(): (keyof T)[];
20
+ getMaxListeners(): number;
21
+ setMaxListeners(n: number): this;
22
+ }
23
+ //# sourceMappingURL=typedEventEmitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typedEventEmitter.d.ts","sourceRoot":"","sources":["../src/typedEventEmitter.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,QAAQ,CAAC;IACtB,UAAU,YAAY;QACpB,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,EAAG,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAI,IAAI,CAAC;QAC/E,IAAI,CAAC,CAAC,SAAS,MAAM,GAAG,EAAG,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;KAC/D;CACF;AAED,qBAAa,iBAAiB,CAAC,CAAC;IAE9B,OAAO,CAAC,OAAO,CAA4B;IAE3C,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAG,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAI,IAAI;IAKvE,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,EAAG,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO;IAIvD,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAG,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAI,IAAI;IAKxE,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,EAAG,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAI,IAAI;IAKzE,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,EAAG,KAAK,CAAC,EAAE,CAAC,GAAI,IAAI;IAKxD,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,EAAG,KAAK,EAAE,CAAC,GAAI,QAAQ,EAAE;IAIpD,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,EAAG,KAAK,EAAE,CAAC,GAAI,QAAQ,EAAE;IAIvD,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,EAAG,KAAK,EAAE,CAAC,GAAI,MAAM;IAIpD,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,EAAG,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAI,IAAI;IAKpF,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,EAAG,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAI,IAAI;IAKxF,UAAU,IAAI,CAAE,MAAM,CAAC,CAAE,EAAE;IAI3B,eAAe,IAAI,MAAM;IAIzB,eAAe,CAAE,CAAC,EAAE,MAAM,GAAI,IAAI;CAKnC"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TypedEventEmitter = void 0;
4
+ const events_1 = require("events");
5
+ class TypedEventEmitter {
6
+ emitter = new events_1.EventEmitter();
7
+ on(event, listener) {
8
+ this.emitter.on(event, listener);
9
+ return this;
10
+ }
11
+ emit(event, arg) {
12
+ return this.emitter.emit(event, arg);
13
+ }
14
+ off(event, listener) {
15
+ this.emitter.off(event, listener);
16
+ return this;
17
+ }
18
+ once(event, listener) {
19
+ this.emitter.once(event, listener);
20
+ return this;
21
+ }
22
+ removeAllListeners(event) {
23
+ this.emitter.removeAllListeners(event);
24
+ return this;
25
+ }
26
+ listeners(event) {
27
+ return this.emitter.listeners(event);
28
+ }
29
+ rawListeners(event) {
30
+ return this.emitter.rawListeners(event);
31
+ }
32
+ listenerCount(event) {
33
+ return this.emitter.listenerCount(event);
34
+ }
35
+ prependListener(event, listener) {
36
+ this.emitter.prependListener(event, listener);
37
+ return this;
38
+ }
39
+ prependOnceListener(event, listener) {
40
+ this.emitter.prependOnceListener(event, listener);
41
+ return this;
42
+ }
43
+ eventNames() {
44
+ return this.emitter.eventNames();
45
+ }
46
+ getMaxListeners() {
47
+ return this.emitter.getMaxListeners();
48
+ }
49
+ setMaxListeners(n) {
50
+ this.emitter.setMaxListeners(n);
51
+ return this;
52
+ }
53
+ }
54
+ exports.TypedEventEmitter = TypedEventEmitter;
55
+ //# sourceMappingURL=typedEventEmitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typedEventEmitter.js","sourceRoot":"","sources":["../src/typedEventEmitter.ts"],"names":[],"mappings":";;;AAAA,mCAA4D;AAS5D,MAAa,iBAAiB;IAEpB,OAAO,GAAG,IAAI,qBAAkB,EAAE,CAAC;IAE3C,EAAE,CAAqB,KAAQ,EAAE,QAA8B;QAC7D,IAAI,CAAC,OAAO,CAAC,EAAE,CAAE,KAAe,EAAE,QAAQ,CAAE,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAqB,KAAQ,EAAE,GAAU;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAE,KAAe,EAAE,GAAG,CAAE,CAAC;IACnD,CAAC;IAED,GAAG,CAAqB,KAAQ,EAAE,QAA8B;QAC9D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAE,KAAe,EAAE,QAAQ,CAAE,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAqB,KAAQ,EAAE,QAA8B;QAC/D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAE,KAAe,EAAE,QAAQ,CAAE,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kBAAkB,CAAqB,KAAS;QAC9C,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAE,KAAe,CAAE,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,CAAqB,KAAQ;QACpC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAE,KAAe,CAAE,CAAC;IACnD,CAAC;IAED,YAAY,CAAqB,KAAQ;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAE,KAAe,CAAE,CAAC;IACtD,CAAC;IAED,aAAa,CAAqB,KAAQ;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAE,KAAe,CAAE,CAAC;IACvD,CAAC;IAED,eAAe,CAAqB,KAAQ,EAAE,QAA8B;QAC1E,IAAI,CAAC,OAAO,CAAC,eAAe,CAAE,KAAe,EAAE,QAAQ,CAAE,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mBAAmB,CAAqB,KAAQ,EAAE,QAA8B;QAC9E,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAE,KAAe,EAAE,QAAQ,CAAE,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAmB,CAAC;IACpD,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC;IAED,eAAe,CAAE,CAAS;QACxB,IAAI,CAAC,OAAO,CAAC,eAAe,CAAE,CAAC,CAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;CAEF;AA/DD,8CA+DC"}
@@ -0,0 +1,64 @@
1
+ import { BaseSchema } from '@bett3r-dev/jsonschema-definer';
2
+ export type AppErrorInstance<ErrorPayload = unknown> = Error & AppErrorData<ErrorPayload>;
3
+ export type AppErrorData<ErrorPayload = unknown> = {
4
+ error?: string;
5
+ description?: string;
6
+ type: ErrorTypes;
7
+ details?: ErrorPayload;
8
+ status?: number;
9
+ };
10
+ export type AppErrorType<ErrorPayload = any> = AppErrorData<ErrorPayload> & {
11
+ schema?: BaseSchema<ErrorPayload>;
12
+ };
13
+ /**
14
+ * @hidden
15
+ */
16
+ export declare const errorStatusCodeMap: {
17
+ BadRequestError: number;
18
+ UnauthorizedError: number;
19
+ PaymentRequiredError: number;
20
+ ForbiddenError: number;
21
+ NotFoundError: number;
22
+ MethodNotAllowedError: number;
23
+ NotAcceptableError: number;
24
+ ProxyAuthenticationRequiredError: number;
25
+ RequestTimeoutError: number;
26
+ ConflictError: number;
27
+ ConcurrencyError: number;
28
+ GoneError: number;
29
+ LengthRequiredError: number;
30
+ PreconditionFailedError: number;
31
+ PayloadTooLargeError: number;
32
+ TooManyRequestsError: number;
33
+ InternalServerError: number;
34
+ NotImplementedError: number;
35
+ BadGatewayError: number;
36
+ ServiceUnavailableError: number;
37
+ GatewayTimeoutError: number;
38
+ };
39
+ export declare const statusCodeErrorMap: {
40
+ 400: string;
41
+ 401: string;
42
+ 402: string;
43
+ 403: string;
44
+ 404: string;
45
+ 405: string;
46
+ 406: string;
47
+ 407: string;
48
+ 408: string;
49
+ 409: string;
50
+ 410: string;
51
+ 411: string;
52
+ 412: string;
53
+ 413: string;
54
+ 429: string;
55
+ 500: string;
56
+ 501: string;
57
+ 502: string;
58
+ 503: string;
59
+ 504: string;
60
+ };
61
+ declare const ErrorTypesSchema: BaseSchema<"BadRequestError" | "UnauthorizedError" | "PaymentRequiredError" | "ForbiddenError" | "NotFoundError" | "MethodNotAllowedError" | "NotAcceptableError" | "ProxyAuthenticationRequiredError" | "RequestTimeoutError" | "ConflictError" | "ConcurrencyError" | "GoneError" | "LengthRequiredError" | "PreconditionFailedError" | "PayloadTooLargeError" | "TooManyRequestsError" | "InternalServerError" | "NotImplementedError" | "BadGatewayError" | "ServiceUnavailableError" | "GatewayTimeoutError", true, Readonly<import("@bett3r-dev/jsonschema-definer/dist/base").BaseJsonSchema>>;
62
+ export type ErrorTypes = typeof ErrorTypesSchema.type;
63
+ export {};
64
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAU,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE/D,MAAM,MAAM,gBAAgB,CAAC,YAAY,GAAG,OAAO,IAAI,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,CAAA;AACzF,MAAM,MAAM,YAAY,CAAC,YAAY,GAAG,OAAO,IAAI;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,MAAM,CAAC,EAAC,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,YAAY,CAAC,YAAY,GAAG,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,GAAG;IAAC,MAAM,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAA;CAAC,CAAA;AAE/G;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;CAsB9B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;CAqB9B,CAAC;AAGF,QAAA,MAAM,gBAAgB,ukBAsBrB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAC"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.statusCodeErrorMap = exports.errorStatusCodeMap = void 0;
7
+ const jsonschema_definer_1 = __importDefault(require("@bett3r-dev/jsonschema-definer"));
8
+ /**
9
+ * @hidden
10
+ */
11
+ exports.errorStatusCodeMap = {
12
+ BadRequestError: 400,
13
+ UnauthorizedError: 401,
14
+ PaymentRequiredError: 402,
15
+ ForbiddenError: 403,
16
+ NotFoundError: 404,
17
+ MethodNotAllowedError: 405,
18
+ NotAcceptableError: 406,
19
+ ProxyAuthenticationRequiredError: 407,
20
+ RequestTimeoutError: 408,
21
+ ConflictError: 409,
22
+ ConcurrencyError: 409,
23
+ GoneError: 410,
24
+ LengthRequiredError: 411,
25
+ PreconditionFailedError: 412,
26
+ PayloadTooLargeError: 413,
27
+ TooManyRequestsError: 429,
28
+ InternalServerError: 500,
29
+ NotImplementedError: 501,
30
+ BadGatewayError: 502,
31
+ ServiceUnavailableError: 503,
32
+ GatewayTimeoutError: 504,
33
+ };
34
+ exports.statusCodeErrorMap = {
35
+ 400: 'BadRequestError',
36
+ 401: 'UnauthorizedError',
37
+ 402: 'PaymentRequiredError',
38
+ 403: 'ForbiddenError',
39
+ 404: 'NotFoundError',
40
+ 405: 'MethodNotAllowedError',
41
+ 406: 'NotAcceptableError',
42
+ 407: 'ProxyAuthenticationRequiredError',
43
+ 408: 'RequestTimeoutError',
44
+ 409: 'ConcurrencyError',
45
+ 410: 'GoneError',
46
+ 411: 'LengthRequiredError',
47
+ 412: 'PreconditionFailedError',
48
+ 413: 'PayloadTooLargeError',
49
+ 429: 'TooManyRequestsError',
50
+ 500: 'InternalServerError',
51
+ 501: 'NotImplementedError',
52
+ 502: 'BadGatewayError',
53
+ 503: 'ServiceUnavailableError',
54
+ 504: 'GatewayTimeoutError',
55
+ };
56
+ const ErrorTypesSchema = jsonschema_definer_1.default.string().enum('BadRequestError', 'UnauthorizedError', 'PaymentRequiredError', 'ForbiddenError', 'NotFoundError', 'MethodNotAllowedError', 'NotAcceptableError', 'ProxyAuthenticationRequiredError', 'RequestTimeoutError', 'ConflictError', 'ConcurrencyError', 'GoneError', 'LengthRequiredError', 'PreconditionFailedError', 'PayloadTooLargeError', 'TooManyRequestsError', 'InternalServerError', 'NotImplementedError', 'BadGatewayError', 'ServiceUnavailableError', 'GatewayTimeoutError');
57
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":";;;;;;AAAA,wFAA+D;AAa/D;;GAEG;AACU,QAAA,kBAAkB,GAAG;IAChC,eAAe,EAAE,GAAG;IACpB,iBAAiB,EAAE,GAAG;IACtB,oBAAoB,EAAE,GAAG;IACzB,cAAc,EAAE,GAAG;IACnB,aAAa,EAAE,GAAG;IAClB,qBAAqB,EAAE,GAAG;IAC1B,kBAAkB,EAAE,GAAG;IACvB,gCAAgC,EAAE,GAAG;IACrC,mBAAmB,EAAE,GAAG;IACxB,aAAa,EAAE,GAAG;IAClB,gBAAgB,EAAE,GAAG;IACrB,SAAS,EAAE,GAAG;IACd,mBAAmB,EAAE,GAAG;IACxB,uBAAuB,EAAE,GAAG;IAC5B,oBAAoB,EAAE,GAAG;IACzB,oBAAoB,EAAE,GAAG;IACzB,mBAAmB,EAAE,GAAG;IACxB,mBAAmB,EAAE,GAAG;IACxB,eAAe,EAAE,GAAG;IACpB,uBAAuB,EAAE,GAAG;IAC5B,mBAAmB,EAAE,GAAG;CACzB,CAAC;AAEW,QAAA,kBAAkB,GAAG;IAChC,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,sBAAsB;IAC3B,GAAG,EAAE,gBAAgB;IACrB,GAAG,EAAE,eAAe;IACpB,GAAG,EAAE,uBAAuB;IAC5B,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,kCAAkC;IACvC,GAAG,EAAE,qBAAqB;IAC1B,GAAG,EAAE,kBAAkB;IACvB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,qBAAqB;IAC1B,GAAG,EAAE,yBAAyB;IAC9B,GAAG,EAAE,sBAAsB;IAC3B,GAAG,EAAE,sBAAsB;IAC3B,GAAG,EAAE,qBAAqB;IAC1B,GAAG,EAAE,qBAAqB;IAC1B,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,yBAAyB;IAC9B,GAAG,EAAE,qBAAqB;CAC3B,CAAC;AAGF,MAAM,gBAAgB,GAAG,4BAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CACtC,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,kCAAkC,EAClC,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,CACtB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "@bett3r-dev/pv3-types",
3
+ "version": "1.0.0",
4
+ "main": "build/index.js",
5
+ "types": "build/index.d.ts",
6
+ "license": "MIT",
7
+ "scripts": {
8
+ "clean": "yarn run -T tsc --build --clean",
9
+ "prebuild": "yarn clean",
10
+ "build": "yarn run -T tsc --build --verbose"
11
+ },
12
+ "dependencies": {
13
+ "@bett3r-dev/jsonschema-definer": "^1.4.4"
14
+ }
15
+ }