@junando/webhook 0.10.0 → 0.10.1
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/dist/handler.cjs +71 -7
- package/package.json +2 -2
package/dist/handler.cjs
CHANGED
|
@@ -25843,6 +25843,55 @@ Respond ONLY with raw JSON, no markdown, no text before or after:
|
|
|
25843
25843
|
}
|
|
25844
25844
|
});
|
|
25845
25845
|
|
|
25846
|
+
// ../core/src/shared/factory-registry.ts
|
|
25847
|
+
var FactoryRegistry;
|
|
25848
|
+
var init_factory_registry = __esm({
|
|
25849
|
+
"../core/src/shared/factory-registry.ts"() {
|
|
25850
|
+
FactoryRegistry = class {
|
|
25851
|
+
_factories = /* @__PURE__ */ new Map();
|
|
25852
|
+
_default = () => {
|
|
25853
|
+
throw new Error(`No factory registered and no default available`);
|
|
25854
|
+
};
|
|
25855
|
+
/**
|
|
25856
|
+
* Register a factory for a given key.
|
|
25857
|
+
* Overwrites any existing registration for that key.
|
|
25858
|
+
*/
|
|
25859
|
+
register(key, factory) {
|
|
25860
|
+
this._factories.set(key, factory);
|
|
25861
|
+
}
|
|
25862
|
+
/**
|
|
25863
|
+
* Set the default factory to use when no key matches.
|
|
25864
|
+
*/
|
|
25865
|
+
registerDefault(factory) {
|
|
25866
|
+
this._default = factory;
|
|
25867
|
+
}
|
|
25868
|
+
/**
|
|
25869
|
+
* Resolve the factory for a given key.
|
|
25870
|
+
* Returns the default if no specific factory is registered for that key.
|
|
25871
|
+
*/
|
|
25872
|
+
resolve(key) {
|
|
25873
|
+
const factory = this._factories.get(key);
|
|
25874
|
+
if (factory) {
|
|
25875
|
+
return factory();
|
|
25876
|
+
}
|
|
25877
|
+
return this._default();
|
|
25878
|
+
}
|
|
25879
|
+
/**
|
|
25880
|
+
* Check if a factory is registered for a given key.
|
|
25881
|
+
*/
|
|
25882
|
+
has(key) {
|
|
25883
|
+
return this._factories.has(key);
|
|
25884
|
+
}
|
|
25885
|
+
/**
|
|
25886
|
+
* Return all registered keys.
|
|
25887
|
+
*/
|
|
25888
|
+
keys() {
|
|
25889
|
+
return Array.from(this._factories.keys());
|
|
25890
|
+
}
|
|
25891
|
+
};
|
|
25892
|
+
}
|
|
25893
|
+
});
|
|
25894
|
+
|
|
25846
25895
|
// ../core/src/infrastructure/notifier/slack.adapter.ts
|
|
25847
25896
|
function sanitizeEndpointPath(endpointPath) {
|
|
25848
25897
|
if (!endpointPath) return "unknown";
|
|
@@ -26189,17 +26238,30 @@ var init_teams_adapter = __esm({
|
|
|
26189
26238
|
});
|
|
26190
26239
|
|
|
26191
26240
|
// ../core/src/infrastructure/notifier/factory.ts
|
|
26241
|
+
function buildNotifierRegistry(config) {
|
|
26242
|
+
const registry2 = new FactoryRegistry();
|
|
26243
|
+
registry2.register("teams", () => {
|
|
26244
|
+
if (!config.teamsWebhookUrl) {
|
|
26245
|
+
throw new Error("NOTIFIER_TYPE=teams requires TEAMS_WEBHOOK_URL to be set");
|
|
26246
|
+
}
|
|
26247
|
+
return new TeamsNotifier(config.teamsWebhookUrl);
|
|
26248
|
+
});
|
|
26249
|
+
registry2.register("slack", () => {
|
|
26250
|
+
if (!config.slackBotToken || !config.slackChannel) {
|
|
26251
|
+
throw new Error("NOTIFIER_TYPE=slack requires SLACK_BOT_TOKEN and SLACK_CHANNEL to be set");
|
|
26252
|
+
}
|
|
26253
|
+
return new SlackNotifier(config.slackBotToken, config.slackChannel);
|
|
26254
|
+
});
|
|
26255
|
+
registry2.registerDefault(() => new SlackNotifier("dummy-token", "#alerts"));
|
|
26256
|
+
return registry2;
|
|
26257
|
+
}
|
|
26192
26258
|
function createNotifier(config) {
|
|
26193
|
-
|
|
26194
|
-
|
|
26195
|
-
return new TeamsNotifier(config.teamsWebhookUrl);
|
|
26196
|
-
case "slack":
|
|
26197
|
-
default:
|
|
26198
|
-
return new SlackNotifier(config.slackBotToken, config.slackChannel);
|
|
26199
|
-
}
|
|
26259
|
+
const registry2 = buildNotifierRegistry(config);
|
|
26260
|
+
return registry2.resolve(config.notifierType);
|
|
26200
26261
|
}
|
|
26201
26262
|
var init_factory = __esm({
|
|
26202
26263
|
"../core/src/infrastructure/notifier/factory.ts"() {
|
|
26264
|
+
init_factory_registry();
|
|
26203
26265
|
init_slack_adapter();
|
|
26204
26266
|
init_teams_adapter();
|
|
26205
26267
|
}
|
|
@@ -68789,6 +68851,7 @@ __export(src_exports, {
|
|
|
68789
68851
|
ConsoleNotifier: () => ConsoleNotifier,
|
|
68790
68852
|
DEDUP_TTL_MS_MULTIPLIER: () => DEDUP_TTL_MS_MULTIPLIER,
|
|
68791
68853
|
DEV_SERVER_PORT: () => DEV_SERVER_PORT,
|
|
68854
|
+
FactoryRegistry: () => FactoryRegistry,
|
|
68792
68855
|
Fingerprint: () => Fingerprint,
|
|
68793
68856
|
GeminiProvider: () => GeminiProvider,
|
|
68794
68857
|
HOUR_MS: () => HOUR_MS,
|
|
@@ -68851,6 +68914,7 @@ var init_src3 = __esm({
|
|
|
68851
68914
|
init_loki_trace_adapter();
|
|
68852
68915
|
init_config7();
|
|
68853
68916
|
init_constants();
|
|
68917
|
+
init_factory_registry();
|
|
68854
68918
|
init_logger();
|
|
68855
68919
|
init_loki_transport();
|
|
68856
68920
|
init_metrics2();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@junando/webhook",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.1",
|
|
4
4
|
"description": "AWS Lambda webhook handler — receives and enqueues external alert payloads for Junando",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@aws-sdk/client-sqs": "^3.600.0",
|
|
22
22
|
"zod": "^3.23.0",
|
|
23
|
-
"@junando/core": "0.10.
|
|
23
|
+
"@junando/core": "0.10.1"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@types/aws-lambda": "^8.10.145",
|