@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.
- package/build/authentication.d.ts +261 -0
- package/build/authentication.d.ts.map +1 -0
- package/build/authentication.js +108 -0
- package/build/authentication.js.map +1 -0
- package/build/cache.d.ts +101 -0
- package/build/cache.d.ts.map +1 -0
- package/build/cache.js +3 -0
- package/build/cache.js.map +1 -0
- package/build/clusterAdministration.d.ts +642 -0
- package/build/clusterAdministration.d.ts.map +1 -0
- package/build/clusterAdministration.js +177 -0
- package/build/clusterAdministration.js.map +1 -0
- package/build/configuration.d.ts +66 -0
- package/build/configuration.d.ts.map +1 -0
- package/build/configuration.js +3 -0
- package/build/configuration.js.map +1 -0
- package/build/database.d.ts +120 -0
- package/build/database.d.ts.map +1 -0
- package/build/database.js +41 -0
- package/build/database.js.map +1 -0
- package/build/endpoints.d.ts +183 -0
- package/build/endpoints.d.ts.map +1 -0
- package/build/endpoints.js +78 -0
- package/build/endpoints.js.map +1 -0
- package/build/evenstore.d.ts +26 -0
- package/build/evenstore.d.ts.map +1 -0
- package/build/evenstore.js +12 -0
- package/build/evenstore.js.map +1 -0
- package/build/eventsourcing/aggregateBuilder.d.ts +10 -0
- package/build/eventsourcing/aggregateBuilder.d.ts.map +1 -0
- package/build/eventsourcing/aggregateBuilder.js +3 -0
- package/build/eventsourcing/aggregateBuilder.js.map +1 -0
- package/build/eventsourcing/commandBuilder.d.ts +58 -0
- package/build/eventsourcing/commandBuilder.d.ts.map +1 -0
- package/build/eventsourcing/commandBuilder.js +6 -0
- package/build/eventsourcing/commandBuilder.js.map +1 -0
- package/build/eventsourcing/commandHandlers.d.ts +104 -0
- package/build/eventsourcing/commandHandlers.d.ts.map +1 -0
- package/build/eventsourcing/commandHandlers.js +28 -0
- package/build/eventsourcing/commandHandlers.js.map +1 -0
- package/build/eventsourcing/eventHandlers.d.ts +102 -0
- package/build/eventsourcing/eventHandlers.d.ts.map +1 -0
- package/build/eventsourcing/eventHandlers.js +33 -0
- package/build/eventsourcing/eventHandlers.js.map +1 -0
- package/build/eventsourcing/eventHandlersBuilder.d.ts +36 -0
- package/build/eventsourcing/eventHandlersBuilder.d.ts.map +1 -0
- package/build/eventsourcing/eventHandlersBuilder.js +13 -0
- package/build/eventsourcing/eventHandlersBuilder.js.map +1 -0
- package/build/eventsourcing/externalSystemBuilder.d.ts +14 -0
- package/build/eventsourcing/externalSystemBuilder.d.ts.map +1 -0
- package/build/eventsourcing/externalSystemBuilder.js +3 -0
- package/build/eventsourcing/externalSystemBuilder.js.map +1 -0
- package/build/eventsourcing/index.d.ts +386 -0
- package/build/eventsourcing/index.d.ts.map +1 -0
- package/build/eventsourcing/index.js +47 -0
- package/build/eventsourcing/index.js.map +1 -0
- package/build/eventsourcing/invariants.d.ts +19 -0
- package/build/eventsourcing/invariants.d.ts.map +1 -0
- package/build/eventsourcing/invariants.js +3 -0
- package/build/eventsourcing/invariants.js.map +1 -0
- package/build/eventsourcing/utils.d.ts +4 -0
- package/build/eventsourcing/utils.d.ts.map +1 -0
- package/build/eventsourcing/utils.js +3 -0
- package/build/eventsourcing/utils.js.map +1 -0
- package/build/index.d.ts +16 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +32 -0
- package/build/index.js.map +1 -0
- package/build/infrastructure.d.ts +40 -0
- package/build/infrastructure.d.ts.map +1 -0
- package/build/infrastructure.js +11 -0
- package/build/infrastructure.js.map +1 -0
- package/build/logger.d.ts +32 -0
- package/build/logger.d.ts.map +1 -0
- package/build/logger.js +29 -0
- package/build/logger.js.map +1 -0
- package/build/outboxManager.d.ts +38 -0
- package/build/outboxManager.d.ts.map +1 -0
- package/build/outboxManager.js +21 -0
- package/build/outboxManager.js.map +1 -0
- package/build/ports.d.ts +39 -0
- package/build/ports.d.ts.map +1 -0
- package/build/ports.js +3 -0
- package/build/ports.js.map +1 -0
- package/build/routesAuth.d.ts +58 -0
- package/build/routesAuth.d.ts.map +1 -0
- package/build/routesAuth.js +37 -0
- package/build/routesAuth.js.map +1 -0
- package/build/typedEventEmitter.d.ts +23 -0
- package/build/typedEventEmitter.d.ts.map +1 -0
- package/build/typedEventEmitter.js +55 -0
- package/build/typedEventEmitter.js.map +1 -0
- package/build/validation.d.ts +64 -0
- package/build/validation.d.ts.map +1 -0
- package/build/validation.js +57 -0
- package/build/validation.js.map +1 -0
- package/package.json +15 -0
- package/src/authentication.ts +273 -0
- package/src/cache.ts +109 -0
- package/src/clusterAdministration.ts +216 -0
- package/src/configuration.ts +71 -0
- package/src/database.ts +157 -0
- package/src/endpoints.ts +198 -0
- package/src/evenstore.ts +27 -0
- package/src/eventsourcing/aggregateBuilder.ts +11 -0
- package/src/eventsourcing/commandBuilder.ts +64 -0
- package/src/eventsourcing/commandHandlers.ts +137 -0
- package/src/eventsourcing/eventHandlers.ts +118 -0
- package/src/eventsourcing/eventHandlersBuilder.ts +42 -0
- package/src/eventsourcing/externalSystemBuilder.ts +20 -0
- package/src/eventsourcing/index.ts +111 -0
- package/src/eventsourcing/invariants.ts +27 -0
- package/src/eventsourcing/utils.ts +4 -0
- package/src/index.ts +15 -0
- package/src/infrastructure.ts +41 -0
- package/src/logger.ts +45 -0
- package/src/outboxManager.ts +36 -0
- package/src/ports.ts +42 -0
- package/src/routesAuth.ts +58 -0
- package/src/typedEventEmitter.ts +73 -0
- package/src/validation.ts +89 -0
- package/tsconfig.json +15 -0
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.ClusterStructureConfigSchema = exports.ClusterRoutesConfigSchema = exports.structureEvents = exports.AckStructureSchema = exports.RemoveBrokerCommandSchema = exports.RebalanceSubscriptionsCommandSchema = exports.SetStructureCommandSchema = exports.SetStructureUpsertHostCommandSchema = exports.RemoveHostCommandSchema = exports.UpsertHostCommandSchema = exports.DeleteSubscriptionCommandSchema = exports.EditSubscriptionCommandSchema = exports.AddSubscriptionsCommandSchema = exports.StructureAggregateSchema = exports.StructureBrokersSchema = exports.StructureServicesSchema = exports.StructureSubscriptionsSchema = exports.StructureBrokerSchema = exports.StructureBrokerSubscriptionSchema = exports.StructureSubscriptionSchema = exports.RetryableStatuses = exports.StructureServiceSchema = void 0;
|
|
27
|
+
const jsonschema_definer_1 = __importStar(require("@bett3r-dev/jsonschema-definer"));
|
|
28
|
+
const pv3_types_1 = require("@bett3r-dev/pv3-types");
|
|
29
|
+
exports.StructureServiceSchema = jsonschema_definer_1.default.shape({
|
|
30
|
+
hosts: jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string()),
|
|
31
|
+
port: jsonschema_definer_1.default.number().default(1984).optional(),
|
|
32
|
+
channel: jsonschema_definer_1.default.string().enum('tcp', 'http', 'local').default('http').optional(),
|
|
33
|
+
isExternal: jsonschema_definer_1.default.boolean().default(false).optional(),
|
|
34
|
+
possibleSubscriptions: jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string()).optional(),
|
|
35
|
+
possibleModules: jsonschema_definer_1.default.shape({}).additionalProperties(jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string())).optional(),
|
|
36
|
+
isService: jsonschema_definer_1.default.boolean().optional(),
|
|
37
|
+
isBroker: jsonschema_definer_1.default.boolean().optional(),
|
|
38
|
+
endpoints: jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string()).optional(),
|
|
39
|
+
openApiEndpoint: jsonschema_definer_1.default.string().optional().default('/documentation/json'),
|
|
40
|
+
produces: jsonschema_definer_1.default.shape({}).additionalProperties(jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string())).optional(),
|
|
41
|
+
consumes: jsonschema_definer_1.default.shape({}).additionalProperties(jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string())).optional(),
|
|
42
|
+
});
|
|
43
|
+
exports.RetryableStatuses = [429, 503, 504];
|
|
44
|
+
exports.StructureSubscriptionSchema = jsonschema_definer_1.default.shape({
|
|
45
|
+
producers: jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string()),
|
|
46
|
+
module: jsonschema_definer_1.default.string(),
|
|
47
|
+
consumer: jsonschema_definer_1.default.string(),
|
|
48
|
+
load: jsonschema_definer_1.default.number().optional(),
|
|
49
|
+
eventstore: jsonschema_definer_1.default.string().optional(),
|
|
50
|
+
events: jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string()).optional(),
|
|
51
|
+
manualDataSplits: jsonschema_definer_1.default.number().minimum(1).optional(),
|
|
52
|
+
mirrorDataSplitsWithConsumers: jsonschema_definer_1.default.boolean().optional().default(true),
|
|
53
|
+
customDataSplits: jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string())).optional(),
|
|
54
|
+
streams: jsonschema_definer_1.default.string().optional(),
|
|
55
|
+
endpoint: jsonschema_definer_1.default.string().optional(),
|
|
56
|
+
retryAfterSecs: jsonschema_definer_1.default.number().optional(),
|
|
57
|
+
retryableStatuses: jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.number()).default(exports.RetryableStatuses).optional(),
|
|
58
|
+
dataSplits: jsonschema_definer_1.default.shape({
|
|
59
|
+
custom: jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string()),
|
|
60
|
+
manual: jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string()),
|
|
61
|
+
automatic: jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string()),
|
|
62
|
+
}).partial().optional(),
|
|
63
|
+
});
|
|
64
|
+
exports.StructureBrokerSubscriptionSchema = jsonschema_definer_1.default.shape({
|
|
65
|
+
host: jsonschema_definer_1.default.string(),
|
|
66
|
+
index: jsonschema_definer_1.default.number(),
|
|
67
|
+
custom: jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string()).optional()
|
|
68
|
+
});
|
|
69
|
+
exports.StructureBrokerSchema = jsonschema_definer_1.default.shape({
|
|
70
|
+
host: jsonschema_definer_1.default.string(),
|
|
71
|
+
subscriptions: jsonschema_definer_1.default.shape({}).additionalProperties(jsonschema_definer_1.default.shape({}).additionalProperties(exports.StructureBrokerSubscriptionSchema)),
|
|
72
|
+
});
|
|
73
|
+
exports.StructureSubscriptionsSchema = jsonschema_definer_1.default.shape({})
|
|
74
|
+
.additionalProperties(exports.StructureSubscriptionSchema);
|
|
75
|
+
exports.StructureServicesSchema = jsonschema_definer_1.default.shape({})
|
|
76
|
+
.additionalProperties(exports.StructureServiceSchema);
|
|
77
|
+
exports.StructureBrokersSchema = jsonschema_definer_1.default.shape({})
|
|
78
|
+
.additionalProperties((0, jsonschema_definer_1.omitFromSchema)(exports.StructureBrokerSchema, ['host']));
|
|
79
|
+
exports.StructureAggregateSchema = jsonschema_definer_1.default.shape({
|
|
80
|
+
subscriptions: exports.StructureSubscriptionsSchema,
|
|
81
|
+
services: exports.StructureServicesSchema,
|
|
82
|
+
brokers: exports.StructureBrokersSchema,
|
|
83
|
+
clusterRevision: jsonschema_definer_1.default.number(),
|
|
84
|
+
servicesRevisionAck: jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string())
|
|
85
|
+
});
|
|
86
|
+
exports.AddSubscriptionsCommandSchema = jsonschema_definer_1.default.shape({
|
|
87
|
+
subscriptions: exports.StructureSubscriptionsSchema, doNotRebalance: jsonschema_definer_1.default.boolean().optional()
|
|
88
|
+
});
|
|
89
|
+
exports.EditSubscriptionCommandSchema = jsonschema_definer_1.default.shape({
|
|
90
|
+
id: jsonschema_definer_1.default.string(),
|
|
91
|
+
subscription: exports.StructureSubscriptionSchema.partial(),
|
|
92
|
+
doNotRebalance: jsonschema_definer_1.default.boolean().optional()
|
|
93
|
+
});
|
|
94
|
+
exports.DeleteSubscriptionCommandSchema = jsonschema_definer_1.default.shape({
|
|
95
|
+
id: jsonschema_definer_1.default.string(),
|
|
96
|
+
doNotRebalance: jsonschema_definer_1.default.boolean().optional()
|
|
97
|
+
});
|
|
98
|
+
exports.UpsertHostCommandSchema = (0, jsonschema_definer_1.mergeSchemas)((0, jsonschema_definer_1.omitFromSchema)(exports.StructureServiceSchema, ['hosts']), jsonschema_definer_1.default.shape({
|
|
99
|
+
service: jsonschema_definer_1.default.string(),
|
|
100
|
+
host: jsonschema_definer_1.default.string(),
|
|
101
|
+
doNotRebalance: jsonschema_definer_1.default.boolean().optional()
|
|
102
|
+
}));
|
|
103
|
+
exports.RemoveHostCommandSchema = jsonschema_definer_1.default.shape({ host: jsonschema_definer_1.default.string() });
|
|
104
|
+
exports.SetStructureUpsertHostCommandSchema = (0, jsonschema_definer_1.mergeSchemas)(exports.StructureServiceSchema, jsonschema_definer_1.default.shape({
|
|
105
|
+
service: jsonschema_definer_1.default.string(),
|
|
106
|
+
}));
|
|
107
|
+
exports.SetStructureCommandSchema = jsonschema_definer_1.default.shape({
|
|
108
|
+
upsertHosts: jsonschema_definer_1.default.array().items(exports.UpsertHostCommandSchema),
|
|
109
|
+
removeHosts: jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string()),
|
|
110
|
+
subscriptions: exports.StructureSubscriptionsSchema.optional()
|
|
111
|
+
});
|
|
112
|
+
exports.RebalanceSubscriptionsCommandSchema = jsonschema_definer_1.default.shape({})
|
|
113
|
+
.additionalProperties((0, jsonschema_definer_1.omitFromSchema)(exports.StructureBrokerSchema, ['host']));
|
|
114
|
+
exports.RemoveBrokerCommandSchema = jsonschema_definer_1.default.shape({ host: jsonschema_definer_1.default.string() });
|
|
115
|
+
exports.AckStructureSchema = jsonschema_definer_1.default.shape({ host: jsonschema_definer_1.default.string(), revision: jsonschema_definer_1.default.number() });
|
|
116
|
+
//*******************************************
|
|
117
|
+
// EVENTS
|
|
118
|
+
//*******************************************
|
|
119
|
+
exports.structureEvents = {
|
|
120
|
+
HostUpserted: () => (0, pv3_types_1.Event)({
|
|
121
|
+
schema: jsonschema_definer_1.default.shape({
|
|
122
|
+
services: exports.StructureServicesSchema,
|
|
123
|
+
brokers: exports.StructureBrokersSchema.optional(),
|
|
124
|
+
doNotRebalance: jsonschema_definer_1.default.boolean().optional(),
|
|
125
|
+
})
|
|
126
|
+
}),
|
|
127
|
+
HostRemoved: () => (0, pv3_types_1.Event)({
|
|
128
|
+
schema: jsonschema_definer_1.default.shape({
|
|
129
|
+
brokers: exports.StructureBrokersSchema,
|
|
130
|
+
host: jsonschema_definer_1.default.string(),
|
|
131
|
+
service: jsonschema_definer_1.default.string()
|
|
132
|
+
})
|
|
133
|
+
}),
|
|
134
|
+
SubscriptionsRebalanced: () => (0, pv3_types_1.Event)({
|
|
135
|
+
schema: jsonschema_definer_1.default.shape({
|
|
136
|
+
brokers: exports.StructureBrokersSchema,
|
|
137
|
+
})
|
|
138
|
+
}),
|
|
139
|
+
SubscriptionsAdded: () => (0, pv3_types_1.Event)({
|
|
140
|
+
schema: jsonschema_definer_1.default.shape({
|
|
141
|
+
brokers: exports.StructureBrokersSchema.optional(),
|
|
142
|
+
subscriptions: exports.StructureSubscriptionsSchema,
|
|
143
|
+
doNotRebalance: jsonschema_definer_1.default.boolean().optional(),
|
|
144
|
+
})
|
|
145
|
+
}),
|
|
146
|
+
SubscriptionEdited: () => (0, pv3_types_1.Event)({
|
|
147
|
+
schema: jsonschema_definer_1.default.shape({
|
|
148
|
+
brokers: exports.StructureBrokersSchema.optional(),
|
|
149
|
+
subscriptions: exports.StructureSubscriptionsSchema,
|
|
150
|
+
doNotRebalance: jsonschema_definer_1.default.boolean().optional(),
|
|
151
|
+
})
|
|
152
|
+
}),
|
|
153
|
+
SubscriptionDeleted: () => (0, pv3_types_1.Event)({
|
|
154
|
+
schema: jsonschema_definer_1.default.shape({
|
|
155
|
+
id: jsonschema_definer_1.default.string(),
|
|
156
|
+
doNotRebalance: jsonschema_definer_1.default.boolean().optional(),
|
|
157
|
+
brokers: exports.StructureBrokersSchema.optional(),
|
|
158
|
+
})
|
|
159
|
+
}),
|
|
160
|
+
StructureSet: () => (0, pv3_types_1.Event)({
|
|
161
|
+
schema: exports.StructureAggregateSchema
|
|
162
|
+
}),
|
|
163
|
+
StructureAcked: () => (0, pv3_types_1.Event)({
|
|
164
|
+
schema: exports.AckStructureSchema
|
|
165
|
+
})
|
|
166
|
+
};
|
|
167
|
+
exports.ClusterRoutesConfigSchema = jsonschema_definer_1.default.shape({
|
|
168
|
+
clusterRoutesAggregateCollection: jsonschema_definer_1.default.string().optional(),
|
|
169
|
+
clusterRoutesEventstoreCollection: jsonschema_definer_1.default.string().optional(),
|
|
170
|
+
clusterRoutesEventstoreStream: jsonschema_definer_1.default.string().optional(),
|
|
171
|
+
});
|
|
172
|
+
exports.ClusterStructureConfigSchema = jsonschema_definer_1.default.shape({
|
|
173
|
+
structureEventstoreStream: jsonschema_definer_1.default.string().default('environment').optional(),
|
|
174
|
+
structureAggregateCollection: jsonschema_definer_1.default.string().default('cluster_infrastructure').optional(),
|
|
175
|
+
structureEventstoreCollection: jsonschema_definer_1.default.string().default('cluster_eventstore').optional(),
|
|
176
|
+
});
|
|
177
|
+
//# sourceMappingURL=clusterAdministration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clusterAdministration.js","sourceRoot":"","sources":["../src/clusterAdministration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { ObjectSchema } from '@bett3r-dev/jsonschema-definer';
|
|
2
|
+
import { AdapterBase, PortEmitter, PortEmitterEvents } from './ports';
|
|
3
|
+
import { TypedEventEmitter } from './typedEventEmitter';
|
|
4
|
+
export type ConfigurationPortEmitterEvents = PortEmitterEvents & {
|
|
5
|
+
argsApplied: {
|
|
6
|
+
config: any;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Patches the configuration of the system with a specified object
|
|
11
|
+
* @param config The object to patch the configuration with
|
|
12
|
+
*/
|
|
13
|
+
export declare function applyConfig(config: Record<string, any>): Promise<Record<string, any>>;
|
|
14
|
+
/**
|
|
15
|
+
* @category Main Types
|
|
16
|
+
*/
|
|
17
|
+
export type ConfigurationAdapter = AdapterBase & {
|
|
18
|
+
applyConfig: typeof applyConfig;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Returns a configuration for an specific module in the system
|
|
22
|
+
* @category Configuration Port
|
|
23
|
+
* @param name The name of the key in the config file structure
|
|
24
|
+
* @param schema The schema of the specific configuration piece
|
|
25
|
+
*/
|
|
26
|
+
export declare function getModuleConfig<CONFIG extends object>(name: string, schema: ObjectSchema<CONFIG, true> | ObjectSchema<CONFIG, false>): {
|
|
27
|
+
config: CONFIG;
|
|
28
|
+
onArgsApplied: (callback: (config: CONFIG) => void) => void;
|
|
29
|
+
};
|
|
30
|
+
export type CliArgDefinition = {
|
|
31
|
+
type: 'string' | 'number' | 'boolean';
|
|
32
|
+
name: string;
|
|
33
|
+
alias?: string;
|
|
34
|
+
description?: string;
|
|
35
|
+
default?: any;
|
|
36
|
+
};
|
|
37
|
+
export type CliCommandDefinition = {
|
|
38
|
+
/** The name of the command, accepts positional arguments. Use <> for required and [] for optionals. Optionals might optionally accept and array like [optional..]
|
|
39
|
+
* @example
|
|
40
|
+
* 'test <required|requiredAlias> [optional1] [optional2..]'
|
|
41
|
+
*/
|
|
42
|
+
name: string;
|
|
43
|
+
alias?: string;
|
|
44
|
+
description?: string;
|
|
45
|
+
/** The descriptions for the positional arguements of the command. MUST BE SPECIFIED IN THE NAME FIRST */
|
|
46
|
+
arguments?: CliArgDefinition[];
|
|
47
|
+
handler: (args: Record<string, any>) => void;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* @category Main Types
|
|
51
|
+
*/
|
|
52
|
+
export type ConfigurationType = {
|
|
53
|
+
_getConfig: () => Record<string, any>;
|
|
54
|
+
getModuleConfig: typeof getModuleConfig;
|
|
55
|
+
getModules: () => string[];
|
|
56
|
+
getArgs: () => Promise<Record<string, any>>;
|
|
57
|
+
applyArgs: () => Promise<Record<string, any>>;
|
|
58
|
+
emitter: TypedEventEmitter<ConfigurationPortEmitterEvents>;
|
|
59
|
+
configureCliArg: (options: CliArgDefinition) => void;
|
|
60
|
+
configureCliCommand: (options: CliCommandDefinition) => void;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* @category Main Types
|
|
64
|
+
*/
|
|
65
|
+
export type ConfigurationPort = Omit<PortEmitter, 'emitter'> & ConfigurationType;
|
|
66
|
+
//# sourceMappingURL=configuration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../src/configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,MAAM,8BAA8B,GAAG,iBAAiB,GAAG;IAC/D,WAAW,EAAE;QAAC,MAAM,EAAE,GAAG,CAAA;KAAC,CAAC;CAC5B,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;AAEhG;;EAEE;AACF,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG;IAC/C,WAAW,EAAE,OAAO,WAAW,CAAA;CAChC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAE,MAAM,SAAS,MAAM,EAAG,IAAI,EAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,GAAI;IAChJ,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,CAAE,QAAQ,EAAE,CAAE,MAAM,EAAE,MAAM,KAAM,IAAI,KAAM,IAAI,CAAA;CAChE,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,GAAG,CAAA;CACd,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC;;;MAGE;IACF,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yGAAyG;IACzG,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,OAAO,EAAE,CAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAM,IAAI,CAAC;CAChD,CAAA;AAED;;EAEE;AACF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,UAAU,EAAE,MAAM,MAAM,EAAE,CAAC;IAC3B,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5C,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAC9C,OAAO,EAAE,iBAAiB,CAAC,8BAA8B,CAAC,CAAC;IAC3D,eAAe,EAAE,CAAE,OAAO,EAAE,gBAAgB,KAAM,IAAI,CAAC;IACvD,mBAAmB,EAAE,CAAE,OAAO,EAAE,oBAAoB,KAAM,IAAI,CAAC;CAChE,CAAA;AAED;;EAEE;AACF,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,iBAAiB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../src/configuration.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { AdapterBase, PortEmitter } from './ports';
|
|
2
|
+
export type Document = {
|
|
3
|
+
id: string | number;
|
|
4
|
+
[key: string]: any;
|
|
5
|
+
};
|
|
6
|
+
export type IndexOptions = {
|
|
7
|
+
isUnique: boolean;
|
|
8
|
+
};
|
|
9
|
+
export type DatabaseOps = 'eq' | 'neq' | 'lt' | 'gt' | 'lte' | 'gte' | 'in' | 'nin' | 'contains' | 'notContains' | 'some' | 'none' | 'every' | 'exists' | 'notExists';
|
|
10
|
+
export declare const filterOpMap: {
|
|
11
|
+
eq: <T>(a: T, b: T) => boolean;
|
|
12
|
+
neq: <T_1>(a: T_1, b: T_1) => boolean;
|
|
13
|
+
lt: <T_2>(a: T_2, b: T_2) => boolean;
|
|
14
|
+
gt: <T_3>(a: T_3, b: T_3) => boolean;
|
|
15
|
+
lte: <T_4>(a: T_4, b: T_4) => boolean;
|
|
16
|
+
gte: <T_5>(a: T_5, b: T_5) => boolean;
|
|
17
|
+
in: <T_6>(a: T_6, b: T_6[]) => boolean;
|
|
18
|
+
nin: <T_7>(a: T_7, b: T_7[]) => boolean;
|
|
19
|
+
contains: <T_8>(a: T_8[], b: T_8) => boolean;
|
|
20
|
+
notContains: <T_9>(a: T_9[], b: T_9) => boolean;
|
|
21
|
+
some: <T_10>(a: T_10[], b: T_10[]) => boolean;
|
|
22
|
+
none: <T_11>(a: T_11[], b: T_11[]) => boolean;
|
|
23
|
+
every: <T_12>(a: T_12[], b: T_12[]) => boolean;
|
|
24
|
+
exists: <T_13>(a: T_13) => boolean;
|
|
25
|
+
notExists: <T_14>(a: T_14) => boolean;
|
|
26
|
+
};
|
|
27
|
+
export declare const CollectionFilterSchema: import("@bett3r-dev/jsonschema-definer").ObjectSchema<{
|
|
28
|
+
value?: import("@bett3r-dev/jsonschema-definer/dist/base").Any;
|
|
29
|
+
field: string;
|
|
30
|
+
op: string[];
|
|
31
|
+
}, true>;
|
|
32
|
+
export type CollectionFilterOR<T extends Document = any> = {
|
|
33
|
+
OR: CollectionFilter<T>[];
|
|
34
|
+
};
|
|
35
|
+
export type CollectionFilterAND<T extends Document = any> = {
|
|
36
|
+
AND: CollectionFilter<T>[];
|
|
37
|
+
};
|
|
38
|
+
export type CollectionFilterInstance<Model extends Document> = {
|
|
39
|
+
field: keyof Model;
|
|
40
|
+
op: DatabaseOps;
|
|
41
|
+
value: any;
|
|
42
|
+
};
|
|
43
|
+
export type CollectionFilter<T extends Document = any> = Partial<CollectionFilterOR<T> & CollectionFilterAND<T> & CollectionFilterInstance<T>>;
|
|
44
|
+
export declare const CollectionSortSchema: import("@bett3r-dev/jsonschema-definer").ObjectSchema<{
|
|
45
|
+
field: string;
|
|
46
|
+
direction: string[];
|
|
47
|
+
}, true>;
|
|
48
|
+
export type CollectionSort<Model extends Document> = {
|
|
49
|
+
field: keyof Model;
|
|
50
|
+
direction?: 'asc' | 'desc';
|
|
51
|
+
};
|
|
52
|
+
export declare const CollectionQueryParamsSchema: import("@bett3r-dev/jsonschema-definer").ObjectSchema<{
|
|
53
|
+
limit?: number | undefined;
|
|
54
|
+
after?: string | undefined;
|
|
55
|
+
sort?: {
|
|
56
|
+
field: string;
|
|
57
|
+
direction: string[];
|
|
58
|
+
}[] | undefined;
|
|
59
|
+
filter?: {
|
|
60
|
+
value?: import("@bett3r-dev/jsonschema-definer/dist/base").Any;
|
|
61
|
+
field: string;
|
|
62
|
+
op: string[];
|
|
63
|
+
}[] | undefined;
|
|
64
|
+
select?: string[] | undefined;
|
|
65
|
+
}, true>;
|
|
66
|
+
export type CollectionQueryParams<Model extends Document> = {
|
|
67
|
+
id?: string | number;
|
|
68
|
+
limit?: number;
|
|
69
|
+
after?: string | number;
|
|
70
|
+
sort?: CollectionSort<Model>[];
|
|
71
|
+
filter?: CollectionFilter<Model>[];
|
|
72
|
+
select?: keyof Model | (keyof Model)[];
|
|
73
|
+
};
|
|
74
|
+
export type CollectionOperations<Model extends Document> = {
|
|
75
|
+
readById: (id: string | number) => Promise<Model | null>;
|
|
76
|
+
query: (params: CollectionQueryParams<Model>) => Promise<Model[]>;
|
|
77
|
+
forEach: (params: CollectionQueryParams<Model>, callback: (record: Model, stop: () => void) => void | Promise<void>) => Promise<void>;
|
|
78
|
+
upsert: (id: string | number, data: Partial<Model>) => Promise<Model>;
|
|
79
|
+
destroyById: (id: string | number) => Promise<void>;
|
|
80
|
+
createMany: (documents: Model[]) => Promise<Model[]>;
|
|
81
|
+
updateMany: (filter: CollectionFilter<Model>[], data: Partial<Model>) => Promise<Model[]>;
|
|
82
|
+
destroyMany: (filter: CollectionFilter<Model>[]) => Promise<number>;
|
|
83
|
+
atomicIncrement: (name: string, filter?: CollectionFilter<Model>, amount?: number) => Promise<number>;
|
|
84
|
+
};
|
|
85
|
+
export type DatabaseChange<Model extends Document = any> = {
|
|
86
|
+
changeType: 'insert' | 'update' | 'delete';
|
|
87
|
+
data?: Model;
|
|
88
|
+
previous?: Model;
|
|
89
|
+
};
|
|
90
|
+
export type Collection<Model extends Document> = CollectionOperations<Model> & {
|
|
91
|
+
ensureIndex: (properties: string[], options?: Partial<IndexOptions>) => Promise<void>;
|
|
92
|
+
destroyIndex: (properties: string[]) => Promise<void>;
|
|
93
|
+
watch: (changeTypes: ('insert' | 'update' | 'delete')[], onData: (data: DatabaseChange<Model>) => void, onError?: (e: Error) => void) => Promise<{
|
|
94
|
+
close: () => void;
|
|
95
|
+
}>;
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* @category Main Types
|
|
99
|
+
*/
|
|
100
|
+
export type DatabaseTransaction = {
|
|
101
|
+
getCollection: <Model extends Document>(collection: string) => CollectionOperations<Model>;
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* @category Main Types
|
|
105
|
+
*/
|
|
106
|
+
export type DatabaseType = {
|
|
107
|
+
getCollection: <Model extends Document>(name: string) => Collection<Model>;
|
|
108
|
+
initTransaction: <Result = any>(operations: (getCollection: <Model extends Document>(collection: string) => CollectionOperations<Model>) => Promise<Result | undefined>, retryBackoff?: number, options?: any) => Promise<Result>;
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* @category Main Types
|
|
112
|
+
*/
|
|
113
|
+
export type DatabasePort = PortEmitter & DatabaseType & {
|
|
114
|
+
_adapter: DatabaseAdapter;
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* @category Main Types
|
|
118
|
+
*/
|
|
119
|
+
export type DatabaseAdapter<T = any> = DatabaseType & AdapterBase<T>;
|
|
120
|
+
//# sourceMappingURL=database.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
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.CollectionQueryParamsSchema = exports.CollectionSortSchema = exports.CollectionFilterSchema = exports.filterOpMap = void 0;
|
|
7
|
+
const jsonschema_definer_1 = __importDefault(require("@bett3r-dev/jsonschema-definer"));
|
|
8
|
+
exports.filterOpMap = {
|
|
9
|
+
eq: (a, b) => a === b,
|
|
10
|
+
neq: (a, b) => a !== b,
|
|
11
|
+
lt: (a, b) => a < b,
|
|
12
|
+
gt: (a, b) => a > b,
|
|
13
|
+
lte: (a, b) => a <= b,
|
|
14
|
+
gte: (a, b) => a >= b,
|
|
15
|
+
in: (a, b) => b.includes(a),
|
|
16
|
+
nin: (a, b) => !b.includes(a),
|
|
17
|
+
contains: (a, b) => a.includes(b),
|
|
18
|
+
notContains: (a, b) => !a.includes(b),
|
|
19
|
+
some: (a, b) => a.some(x => b.includes(x)),
|
|
20
|
+
none: (a, b) => !a.some(x => b.includes(x)),
|
|
21
|
+
every: (a, b) => a.every(x => b.includes(x)),
|
|
22
|
+
exists: (a) => !!a,
|
|
23
|
+
notExists: (a) => !a
|
|
24
|
+
};
|
|
25
|
+
exports.CollectionFilterSchema = jsonschema_definer_1.default.shape({
|
|
26
|
+
field: jsonschema_definer_1.default.string(),
|
|
27
|
+
op: jsonschema_definer_1.default.enum(['eq', 'neq', 'lt', 'gt', 'lte', 'gte', 'in', 'nin', 'contains', 'notContains', 'some', 'every', 'exists', 'notExists']),
|
|
28
|
+
value: jsonschema_definer_1.default.any()
|
|
29
|
+
});
|
|
30
|
+
exports.CollectionSortSchema = jsonschema_definer_1.default.shape({
|
|
31
|
+
field: jsonschema_definer_1.default.string(),
|
|
32
|
+
direction: jsonschema_definer_1.default.enum(['asc', 'desc'])
|
|
33
|
+
});
|
|
34
|
+
exports.CollectionQueryParamsSchema = jsonschema_definer_1.default.shape({
|
|
35
|
+
sort: jsonschema_definer_1.default.array().items(exports.CollectionSortSchema).optional(),
|
|
36
|
+
filter: jsonschema_definer_1.default.array().items(exports.CollectionFilterSchema).optional(),
|
|
37
|
+
limit: jsonschema_definer_1.default.number().optional(),
|
|
38
|
+
after: jsonschema_definer_1.default.string().optional(),
|
|
39
|
+
select: jsonschema_definer_1.default.array().items(jsonschema_definer_1.default.string()).optional()
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=database.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { BaseSchema, ObjectSchema } from '@bett3r-dev/jsonschema-definer';
|
|
3
|
+
import { JSONSchema7 } from 'json-schema';
|
|
4
|
+
import { AddressInfo } from 'net';
|
|
5
|
+
import { OpenAPIV3_1 } from 'openapi-types';
|
|
6
|
+
import { AdapterBase, PortEmitter } from './ports';
|
|
7
|
+
export declare const HttpConfigSchema: ObjectSchema<{
|
|
8
|
+
port?: number | undefined;
|
|
9
|
+
cookie?: {
|
|
10
|
+
enabled: boolean;
|
|
11
|
+
} | undefined;
|
|
12
|
+
listeningEnabled?: boolean | undefined;
|
|
13
|
+
cors?: {
|
|
14
|
+
origin?: string | undefined;
|
|
15
|
+
methods?: string | undefined;
|
|
16
|
+
allowedHeaders?: string | string[] | undefined;
|
|
17
|
+
exposedHeaders?: string | string[] | undefined;
|
|
18
|
+
credentials?: boolean | undefined;
|
|
19
|
+
maxAge?: number | undefined;
|
|
20
|
+
preflightContinue?: boolean | undefined;
|
|
21
|
+
optionsSuccessStatus?: number | undefined;
|
|
22
|
+
enabled: boolean;
|
|
23
|
+
} | undefined;
|
|
24
|
+
compression?: {
|
|
25
|
+
chunkSize?: number | undefined;
|
|
26
|
+
level?: number | undefined;
|
|
27
|
+
memLevel?: number | undefined;
|
|
28
|
+
strategy?: number | undefined;
|
|
29
|
+
threshold?: number | undefined;
|
|
30
|
+
windowBits?: number | undefined;
|
|
31
|
+
enabled: boolean;
|
|
32
|
+
} | undefined;
|
|
33
|
+
metrics?: {
|
|
34
|
+
enabled?: boolean | undefined;
|
|
35
|
+
httpRequestDurations?: {
|
|
36
|
+
enabled?: boolean | undefined;
|
|
37
|
+
buckets?: number[] | undefined;
|
|
38
|
+
} | undefined;
|
|
39
|
+
} | undefined;
|
|
40
|
+
}, false>;
|
|
41
|
+
export type HttpConfig = typeof HttpConfigSchema.type;
|
|
42
|
+
export type EndpointsFetchInterfaceResponse<T = any> = Pick<Response, 'ok'> & {
|
|
43
|
+
json: () => Promise<T>;
|
|
44
|
+
text: () => Promise<T>;
|
|
45
|
+
};
|
|
46
|
+
export type RequestObject<RAW extends ReadableStream = any> = {
|
|
47
|
+
type: 'string';
|
|
48
|
+
raw?: RAW;
|
|
49
|
+
body: unknown;
|
|
50
|
+
query: unknown;
|
|
51
|
+
params: unknown;
|
|
52
|
+
method: string;
|
|
53
|
+
route: string;
|
|
54
|
+
filePaths: Record<string, string>;
|
|
55
|
+
headers: Record<string, string | string[]>;
|
|
56
|
+
};
|
|
57
|
+
export type ResponseObject<RAW extends WritableStream = any> = {
|
|
58
|
+
raw?: RAW;
|
|
59
|
+
send: (payload: unknown) => unknown;
|
|
60
|
+
header: (key: string, value: any) => ResponseObject;
|
|
61
|
+
};
|
|
62
|
+
export type EndpointActionParamsContext<USER = any> = {
|
|
63
|
+
res: ResponseObject;
|
|
64
|
+
req: RequestObject;
|
|
65
|
+
endpoint: Endpoint;
|
|
66
|
+
user: USER;
|
|
67
|
+
token?: string;
|
|
68
|
+
[key: string]: any;
|
|
69
|
+
};
|
|
70
|
+
export type EndpointActionParams<BODY = any, QUERY = any, PARAMS = any, USER = any> = {
|
|
71
|
+
query: QUERY;
|
|
72
|
+
params: PARAMS;
|
|
73
|
+
body: BODY;
|
|
74
|
+
context: Partial<EndpointActionParamsContext<USER>>;
|
|
75
|
+
};
|
|
76
|
+
export type EndpointSchemas<BODY, QUERY, PARAMS> = {
|
|
77
|
+
body?: BaseSchema<BODY>;
|
|
78
|
+
query?: BaseSchema<QUERY>;
|
|
79
|
+
params?: BaseSchema<PARAMS>;
|
|
80
|
+
headers?: ObjectSchema;
|
|
81
|
+
responses?: Record<number, {
|
|
82
|
+
schema: BaseSchema;
|
|
83
|
+
name: string;
|
|
84
|
+
}[]>;
|
|
85
|
+
errors?: Record<number, {
|
|
86
|
+
schema: BaseSchema;
|
|
87
|
+
name: string;
|
|
88
|
+
}[]>;
|
|
89
|
+
};
|
|
90
|
+
export type EndpointAction<BODY = any, RETURN = any, QUERY = any, PARAMS = any> = (params: EndpointActionParams<BODY, QUERY, PARAMS>) => Promise<RETURN>;
|
|
91
|
+
export type Endpoint<BODY = any, RETURN = any, QUERY = any, PARAMS = any> = {
|
|
92
|
+
route: string;
|
|
93
|
+
action: EndpointAction<BODY, RETURN, QUERY, PARAMS>;
|
|
94
|
+
module: string;
|
|
95
|
+
name?: string;
|
|
96
|
+
description?: string;
|
|
97
|
+
schemas?: EndpointSchemas<BODY, QUERY, PARAMS>;
|
|
98
|
+
shouldValidate?: boolean;
|
|
99
|
+
responseContentType?: string;
|
|
100
|
+
tags?: string[];
|
|
101
|
+
method?: 'DELETE' | 'GET' | 'HEAD' | 'PATCH' | 'POST' | 'PUT' | 'OPTIONS';
|
|
102
|
+
multipartProperties?: string[];
|
|
103
|
+
};
|
|
104
|
+
export declare const EndpointSchema: ObjectSchema<{
|
|
105
|
+
description?: string | undefined;
|
|
106
|
+
name?: string | undefined;
|
|
107
|
+
module?: string | undefined;
|
|
108
|
+
method?: "DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT" | "OPTIONS" | undefined;
|
|
109
|
+
tags?: string[] | undefined;
|
|
110
|
+
action?: import("@bett3r-dev/jsonschema-definer/dist/base").Any;
|
|
111
|
+
schemas?: import("@bett3r-dev/jsonschema-definer/dist/base").Any;
|
|
112
|
+
multipartProperties?: string[] | undefined;
|
|
113
|
+
route: string;
|
|
114
|
+
}, true>;
|
|
115
|
+
export type InjectHandlerContext<REQ = any, RES = any> = {
|
|
116
|
+
request: REQ;
|
|
117
|
+
response: RES;
|
|
118
|
+
callInactiveEvent: () => void;
|
|
119
|
+
callStartEvent: () => void;
|
|
120
|
+
};
|
|
121
|
+
export type CloudFunctionsAdapter = {
|
|
122
|
+
/**
|
|
123
|
+
* Function used when working on a cloud function environment. Internal function.
|
|
124
|
+
* @param context {InjectHandlerContext}
|
|
125
|
+
* @returns {Promise<void>}
|
|
126
|
+
*/
|
|
127
|
+
injectHandler: (context: InjectHandlerContext) => Promise<void>;
|
|
128
|
+
/**
|
|
129
|
+
* This method is called when the server is starting a new Events Related connection. Things like SSE, WS, TCP, etc.
|
|
130
|
+
* It is used internally in cloud function environments to keep the function alive.
|
|
131
|
+
* @returns {void}
|
|
132
|
+
*/
|
|
133
|
+
callEventConnectionsActive: () => void;
|
|
134
|
+
/**
|
|
135
|
+
* This method is called when the server has no more Events Related connection. Things like SSE, WS, TCP, etc.
|
|
136
|
+
* It is used internally in cloud function environments to mark the function as idle so it can be killed.
|
|
137
|
+
* @returns {void}
|
|
138
|
+
*/
|
|
139
|
+
callEventConnectionsInactive: () => void;
|
|
140
|
+
};
|
|
141
|
+
export type MetricBaseType = {
|
|
142
|
+
name: string;
|
|
143
|
+
help: string;
|
|
144
|
+
labelNames: string[];
|
|
145
|
+
};
|
|
146
|
+
export type CounterMetricsType = MetricBaseType & {};
|
|
147
|
+
export type GaugeMetricsType = MetricBaseType & {};
|
|
148
|
+
export type EndpointsAdapter<T = any> = AdapterBase<T> & Partial<CloudFunctionsAdapter> & {
|
|
149
|
+
adapterType?: 'httpHandler';
|
|
150
|
+
getServerAddress?: () => AddressInfo;
|
|
151
|
+
registerOpenApi?: (openapi: Record<string, any>) => void;
|
|
152
|
+
registerOpenApiDocument?: () => void;
|
|
153
|
+
registerEndpoint: (endpoint: Endpoint) => Endpoint;
|
|
154
|
+
serveStaticDirectory?: (path: string, endpoint?: string) => void;
|
|
155
|
+
onServicesDirectorySet?: (callback: (serviceDirectory: Record<string, string>) => void) => void;
|
|
156
|
+
metrics?: {
|
|
157
|
+
addCounter: (metric: CounterMetricsType) => (labels: string[]) => void;
|
|
158
|
+
addGauge: (metric: CounterMetricsType) => (labels: string[], value: number) => void;
|
|
159
|
+
};
|
|
160
|
+
};
|
|
161
|
+
export type EndpointsType = CloudFunctionsAdapter & {
|
|
162
|
+
getEndpoints?(): Endpoint[];
|
|
163
|
+
setServiceSupportedModules: (modules: Record<string, string[]>) => void;
|
|
164
|
+
getOpenApiSpec: () => OpenAPIV3_1.Document;
|
|
165
|
+
generateOpenApiSpec: (servicePath?: string) => Promise<OpenAPIV3_1.Document>;
|
|
166
|
+
registerEndpoint<BODY, RETURN, QUERY, PARAMS>(endpoint: Endpoint<BODY, RETURN, QUERY, PARAMS>): void;
|
|
167
|
+
registerSchema(name: string, schema: JSONSchema7, tags: string[]): void;
|
|
168
|
+
addOpenApiTag(name: string): void;
|
|
169
|
+
call<Type, R = Type>(route: string, method?: string, params?: Partial<Pick<EndpointActionParams<Type>, 'body' | 'context'>>): Promise<R>;
|
|
170
|
+
fetch(route: string, params: {
|
|
171
|
+
method: 'get' | 'post';
|
|
172
|
+
headers: Record<string, any>;
|
|
173
|
+
body: string;
|
|
174
|
+
}): Promise<EndpointsFetchInterfaceResponse>;
|
|
175
|
+
get<Type, R = Type>(route: string, params?: Partial<Pick<EndpointActionParams<Type>, 'body' | 'context'>>): Promise<R>;
|
|
176
|
+
post<Type, R = Type>(route: string, params?: Partial<Pick<EndpointActionParams<Type>, 'body' | 'context'>>): Promise<R>;
|
|
177
|
+
start: () => Promise<void>;
|
|
178
|
+
stop: () => Promise<void>;
|
|
179
|
+
};
|
|
180
|
+
export type EndpointsPort = PortEmitter & EndpointsType & {
|
|
181
|
+
_adapters: () => EndpointsAdapter[];
|
|
182
|
+
};
|
|
183
|
+
//# sourceMappingURL=endpoints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../src/endpoints.ts"],"names":[],"mappings":"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"}
|