ntfy-reverse-proxy 0.0.0 → 2.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/README.md +48 -0
- package/build/src/cli/commands/config-io.d.ts +5 -0
- package/build/src/cli/commands/config-io.d.ts.map +1 -0
- package/build/src/cli/commands/config-io.js +19 -0
- package/build/src/cli/commands/config-io.js.map +1 -0
- package/build/src/cli/commands/context.d.ts +9 -0
- package/build/src/cli/commands/context.d.ts.map +1 -0
- package/build/src/cli/commands/context.js +108 -0
- package/build/src/cli/commands/context.js.map +1 -0
- package/build/src/cli/commands/deploy.d.ts +4 -0
- package/build/src/cli/commands/deploy.d.ts.map +1 -0
- package/build/src/cli/commands/deploy.js +496 -0
- package/build/src/cli/commands/deploy.js.map +1 -0
- package/build/src/cli/commands/generate.d.ts +4 -0
- package/build/src/cli/commands/generate.d.ts.map +1 -0
- package/build/src/cli/commands/generate.js +68 -0
- package/build/src/cli/commands/generate.js.map +1 -0
- package/build/src/cli/commands/server.d.ts +7 -0
- package/build/src/cli/commands/server.d.ts.map +1 -0
- package/build/src/cli/commands/server.js +43 -0
- package/build/src/cli/commands/server.js.map +1 -0
- package/build/src/cli/commands/settings.d.ts +5 -0
- package/build/src/cli/commands/settings.d.ts.map +1 -0
- package/build/src/cli/commands/settings.js +16 -0
- package/build/src/cli/commands/settings.js.map +1 -0
- package/build/src/cli/commands/validate.d.ts +4 -0
- package/build/src/cli/commands/validate.d.ts.map +1 -0
- package/build/src/cli/commands/validate.js +45 -0
- package/build/src/cli/commands/validate.js.map +1 -0
- package/build/src/cli/index.d.ts +5 -0
- package/build/src/cli/index.d.ts.map +1 -0
- package/build/src/cli/index.js +118 -0
- package/build/src/cli/index.js.map +1 -0
- package/build/src/cli/menu/interactive.d.ts +4 -0
- package/build/src/cli/menu/interactive.d.ts.map +1 -0
- package/build/src/cli/menu/interactive.js +902 -0
- package/build/src/cli/menu/interactive.js.map +1 -0
- package/build/src/lib/item.d.ts +3 -0
- package/build/src/lib/item.d.ts.map +1 -0
- package/build/src/lib/item.js +3 -0
- package/build/src/lib/item.js.map +1 -0
- package/build/src/lib/regex.d.ts +30 -0
- package/build/src/lib/regex.d.ts.map +1 -0
- package/build/src/lib/regex.js +30 -0
- package/build/src/lib/regex.js.map +1 -0
- package/build/src/lib/schema.d.ts +167 -0
- package/build/src/lib/schema.d.ts.map +1 -0
- package/build/src/lib/schema.js +70 -0
- package/build/src/lib/schema.js.map +1 -0
- package/build/src/lib/utility.d.ts +4 -0
- package/build/src/lib/utility.d.ts.map +1 -0
- package/build/src/lib/utility.js +14 -0
- package/build/src/lib/utility.js.map +1 -0
- package/build/src/types/cli/commands/config-io.d.ts +38 -0
- package/build/src/types/cli/commands/context.d.ts +131 -0
- package/build/src/types/cli/commands/deploy.d.ts +622 -0
- package/build/src/types/cli/commands/generate.d.ts +51 -0
- package/build/src/types/cli/commands/server.d.ts +65 -0
- package/build/src/types/cli/commands/settings.d.ts +25 -0
- package/build/src/types/cli/commands/validate.d.ts +37 -0
- package/build/src/types/cli/index.d.ts +55 -0
- package/build/src/types/cli/menu/interactive.d.ts +381 -0
- package/build/src/types/fetch-response.d.ts +11 -0
- package/build/src/types/lib/schema.d.ts +134 -0
- package/build/src/types/lib/utility.d.ts +8 -0
- package/build/src/types/tests/cli/commands/context.test.d.ts +57 -0
- package/build/src/types/tests/cli/commands/generate.test.d.ts +12 -0
- package/build/src/types/tests/cli/commands/server.test.d.ts +45 -0
- package/build/src/types/tests/cli/commands/settings.test.d.ts +40 -0
- package/build/src/types/tests/cli/commands/validate.test.d.ts +19 -0
- package/build/src/types/tests/cli/menu/interactive.test.d.ts +6 -0
- package/build/src/types/tests/lib/schema.test.d.ts +10 -0
- package/build/src/types/tests/type-declarations.test.d.ts +173 -0
- package/build/src/types/tests/worker/index.test.d.ts +20 -0
- package/build/src/types/tests/worker/interpreters/ntfy-json.test.d.ts +19 -0
- package/build/src/types/tests/worker/interpreters/pfsense.test.d.ts +10 -0
- package/build/src/types/tests/worker/interpreters/plain-text.test.d.ts +10 -0
- package/build/src/types/tests/worker/interpreters/seerr.test.d.ts +8 -0
- package/build/src/types/tests/worker/interpreters/statuspage.test.d.ts +58 -0
- package/build/src/types/tests/worker/interpreters/synology.test.d.ts +8 -0
- package/build/src/types/tests/worker/interpreters/unifi.test.d.ts +8 -0
- package/build/src/types/tests/worker/landing/page.test.d.ts +55 -0
- package/build/src/types/tests/worker/pipeline/accumulate.test.d.ts +28 -0
- package/build/src/types/tests/worker/pipeline/authenticate.test.d.ts +9 -0
- package/build/src/types/tests/worker/pipeline/email.test.d.ts +15 -0
- package/build/src/types/tests/worker/pipeline/format.test.d.ts +38 -0
- package/build/src/types/tests/worker/pipeline/interpret.test.d.ts +43 -0
- package/build/src/types/tests/worker/pipeline/parse.test.d.ts +17 -0
- package/build/src/types/tests/worker/pipeline/receive.test.d.ts +23 -0
- package/build/src/types/tests/worker/pipeline/respond.test.d.ts +20 -0
- package/build/src/types/tests/worker/pipeline/route.test.d.ts +80 -0
- package/build/src/types/tests/worker/pipeline/send.test.d.ts +37 -0
- package/build/src/types/tests/worker/pipeline/split.test.d.ts +17 -0
- package/build/src/types/worker/index.d.ts +232 -0
- package/build/src/types/worker/interpreters/ntfy-json.d.ts +28 -0
- package/build/src/types/worker/interpreters/pfsense.d.ts +97 -0
- package/build/src/types/worker/interpreters/plain-text.d.ts +24 -0
- package/build/src/types/worker/interpreters/seerr.d.ts +124 -0
- package/build/src/types/worker/interpreters/statuspage.d.ts +239 -0
- package/build/src/types/worker/interpreters/synology.d.ts +99 -0
- package/build/src/types/worker/interpreters/unifi.d.ts +111 -0
- package/build/src/types/worker/landing/page.d.ts +44 -0
- package/build/src/types/worker/pipeline/accumulate.d.ts +79 -0
- package/build/src/types/worker/pipeline/authenticate.d.ts +68 -0
- package/build/src/types/worker/pipeline/email.d.ts +108 -0
- package/build/src/types/worker/pipeline/format.d.ts +47 -0
- package/build/src/types/worker/pipeline/interpret.d.ts +63 -0
- package/build/src/types/worker/pipeline/parse.d.ts +39 -0
- package/build/src/types/worker/pipeline/receive.d.ts +64 -0
- package/build/src/types/worker/pipeline/respond.d.ts +113 -0
- package/build/src/types/worker/pipeline/route.d.ts +34 -0
- package/build/src/types/worker/pipeline/send.d.ts +143 -0
- package/build/src/types/worker/pipeline/shared.d.ts +85 -0
- package/build/src/types/worker/pipeline/split.d.ts +35 -0
- package/build/src/worker/handlers.d.ts +5 -0
- package/build/src/worker/handlers.d.ts.map +1 -0
- package/build/src/worker/handlers.js +360 -0
- package/build/src/worker/handlers.js.map +1 -0
- package/build/src/worker/index.d.ts +4 -0
- package/build/src/worker/index.d.ts.map +1 -0
- package/build/src/worker/index.js +52 -0
- package/build/src/worker/index.js.map +1 -0
- package/build/src/worker/interpreters/ntfy-json.d.ts +4 -0
- package/build/src/worker/interpreters/ntfy-json.d.ts.map +1 -0
- package/build/src/worker/interpreters/ntfy-json.js +49 -0
- package/build/src/worker/interpreters/ntfy-json.js.map +1 -0
- package/build/src/worker/interpreters/pfsense.d.ts +4 -0
- package/build/src/worker/interpreters/pfsense.d.ts.map +1 -0
- package/build/src/worker/interpreters/pfsense.js +150 -0
- package/build/src/worker/interpreters/pfsense.js.map +1 -0
- package/build/src/worker/interpreters/plain-text.d.ts +4 -0
- package/build/src/worker/interpreters/plain-text.d.ts.map +1 -0
- package/build/src/worker/interpreters/plain-text.js +18 -0
- package/build/src/worker/interpreters/plain-text.js.map +1 -0
- package/build/src/worker/interpreters/seerr.d.ts +4 -0
- package/build/src/worker/interpreters/seerr.d.ts.map +1 -0
- package/build/src/worker/interpreters/seerr.js +173 -0
- package/build/src/worker/interpreters/seerr.js.map +1 -0
- package/build/src/worker/interpreters/statuspage.d.ts +4 -0
- package/build/src/worker/interpreters/statuspage.d.ts.map +1 -0
- package/build/src/worker/interpreters/statuspage.js +266 -0
- package/build/src/worker/interpreters/statuspage.js.map +1 -0
- package/build/src/worker/interpreters/synology.d.ts +4 -0
- package/build/src/worker/interpreters/synology.d.ts.map +1 -0
- package/build/src/worker/interpreters/synology.js +177 -0
- package/build/src/worker/interpreters/synology.js.map +1 -0
- package/build/src/worker/interpreters/unifi.d.ts +4 -0
- package/build/src/worker/interpreters/unifi.d.ts.map +1 -0
- package/build/src/worker/interpreters/unifi.js +152 -0
- package/build/src/worker/interpreters/unifi.js.map +1 -0
- package/build/src/worker/landing/page.d.ts +4 -0
- package/build/src/worker/landing/page.d.ts.map +1 -0
- package/build/src/worker/landing/page.js +260 -0
- package/build/src/worker/landing/page.js.map +1 -0
- package/build/src/worker/pipeline/accumulate.d.ts +7 -0
- package/build/src/worker/pipeline/accumulate.d.ts.map +1 -0
- package/build/src/worker/pipeline/accumulate.js +53 -0
- package/build/src/worker/pipeline/accumulate.js.map +1 -0
- package/build/src/worker/pipeline/authenticate.d.ts +4 -0
- package/build/src/worker/pipeline/authenticate.d.ts.map +1 -0
- package/build/src/worker/pipeline/authenticate.js +53 -0
- package/build/src/worker/pipeline/authenticate.js.map +1 -0
- package/build/src/worker/pipeline/email.d.ts +4 -0
- package/build/src/worker/pipeline/email.d.ts.map +1 -0
- package/build/src/worker/pipeline/email.js +149 -0
- package/build/src/worker/pipeline/email.js.map +1 -0
- package/build/src/worker/pipeline/format.d.ts +5 -0
- package/build/src/worker/pipeline/format.d.ts.map +1 -0
- package/build/src/worker/pipeline/format.js +48 -0
- package/build/src/worker/pipeline/format.js.map +1 -0
- package/build/src/worker/pipeline/interpret.d.ts +4 -0
- package/build/src/worker/pipeline/interpret.d.ts.map +1 -0
- package/build/src/worker/pipeline/interpret.js +30 -0
- package/build/src/worker/pipeline/interpret.js.map +1 -0
- package/build/src/worker/pipeline/parse.d.ts +4 -0
- package/build/src/worker/pipeline/parse.d.ts.map +1 -0
- package/build/src/worker/pipeline/parse.js +59 -0
- package/build/src/worker/pipeline/parse.js.map +1 -0
- package/build/src/worker/pipeline/receive.d.ts +4 -0
- package/build/src/worker/pipeline/receive.d.ts.map +1 -0
- package/build/src/worker/pipeline/receive.js +52 -0
- package/build/src/worker/pipeline/receive.js.map +1 -0
- package/build/src/worker/pipeline/respond.d.ts +4 -0
- package/build/src/worker/pipeline/respond.d.ts.map +1 -0
- package/build/src/worker/pipeline/respond.js +48 -0
- package/build/src/worker/pipeline/respond.js.map +1 -0
- package/build/src/worker/pipeline/route.d.ts +5 -0
- package/build/src/worker/pipeline/route.d.ts.map +1 -0
- package/build/src/worker/pipeline/route.js +23 -0
- package/build/src/worker/pipeline/route.js.map +1 -0
- package/build/src/worker/pipeline/send.d.ts +4 -0
- package/build/src/worker/pipeline/send.d.ts.map +1 -0
- package/build/src/worker/pipeline/send.js +156 -0
- package/build/src/worker/pipeline/send.js.map +1 -0
- package/build/src/worker/pipeline/split.d.ts +4 -0
- package/build/src/worker/pipeline/split.d.ts.map +1 -0
- package/build/src/worker/pipeline/split.js +40 -0
- package/build/src/worker/pipeline/split.js.map +1 -0
- package/package.json +95 -2
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { configSchema } from '../lib/schema.js';
|
|
2
|
+
import { handleEmail, handleRequest } from './handlers.js';
|
|
3
|
+
const moduleExports = {
|
|
4
|
+
async fetch(request, env) {
|
|
5
|
+
const settings = JSON.parse(env['SETTINGS']);
|
|
6
|
+
const servers = JSON.parse(env['SERVERS']);
|
|
7
|
+
const contexts = JSON.parse(env['CONTEXTS']);
|
|
8
|
+
const result = configSchema.safeParse({
|
|
9
|
+
settings, servers, contexts,
|
|
10
|
+
});
|
|
11
|
+
if (result['success'] === false) {
|
|
12
|
+
return new Response(JSON.stringify({
|
|
13
|
+
status: 'error', message: 'Invalid configuration', errors: result['error']['issues'],
|
|
14
|
+
}, null, 2), {
|
|
15
|
+
status: 500,
|
|
16
|
+
headers: { 'Content-Type': 'application/json' },
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
const kv = env['KV'];
|
|
20
|
+
return handleRequest(request, result['data'], kv);
|
|
21
|
+
},
|
|
22
|
+
async email(message, env) {
|
|
23
|
+
const settings = JSON.parse(env['SETTINGS']);
|
|
24
|
+
const servers = JSON.parse(env['SERVERS']);
|
|
25
|
+
const contexts = JSON.parse(env['CONTEXTS']);
|
|
26
|
+
const result = configSchema.safeParse({
|
|
27
|
+
settings, servers, contexts,
|
|
28
|
+
});
|
|
29
|
+
if (result['success'] === false) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const reader = message['raw'].getReader();
|
|
33
|
+
const chunks = [];
|
|
34
|
+
let done = false;
|
|
35
|
+
while (done === false) {
|
|
36
|
+
const readResult = await reader.read();
|
|
37
|
+
if (readResult['done'] === true) {
|
|
38
|
+
done = true;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
chunks.push(readResult['value']);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const decoder = new TextDecoder();
|
|
45
|
+
const rawEmail = chunks.map((chunk) => decoder.decode(chunk, { stream: true })).join('') + decoder.decode();
|
|
46
|
+
const kv = env['KV'];
|
|
47
|
+
await handleEmail(rawEmail, message['from'], result['data'], kv);
|
|
48
|
+
return;
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
export default moduleExports;
|
|
52
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/worker/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ntfy-json.d.ts","sourceRoot":"","sources":["../../../../src/worker/interpreters/ntfy-json.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,qCAAqC,EAMtC,MAAM,gDAAgD,CAAC;AA8CxD,QAAA,MAAM,mBAAmB,EAAE,qCA2B1B,CAAC;AAEF,OAAO,EACL,mBAAmB,GACpB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
const ntfyJsonTagsItem = z.string();
|
|
3
|
+
const ntfyJsonSchema = z.object({
|
|
4
|
+
title: z.string().optional(),
|
|
5
|
+
body: z.string(),
|
|
6
|
+
priority: z.union([
|
|
7
|
+
z.literal(1),
|
|
8
|
+
z.literal(2),
|
|
9
|
+
z.literal(3),
|
|
10
|
+
z.literal(4),
|
|
11
|
+
z.literal(5),
|
|
12
|
+
]).optional(),
|
|
13
|
+
tags: z.array(ntfyJsonTagsItem).optional(),
|
|
14
|
+
icon: z.string().optional(),
|
|
15
|
+
actions: z.string().optional(),
|
|
16
|
+
attach: z.string().optional(),
|
|
17
|
+
filename: z.string().optional(),
|
|
18
|
+
markdown: z.boolean().optional(),
|
|
19
|
+
});
|
|
20
|
+
const ntfyJsonInterpreter = (input) => {
|
|
21
|
+
let parsed = undefined;
|
|
22
|
+
if (typeof input === 'string') {
|
|
23
|
+
try {
|
|
24
|
+
parsed = JSON.parse(input);
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
else if (input instanceof ArrayBuffer) {
|
|
31
|
+
const decoder = new TextDecoder('utf-8');
|
|
32
|
+
const decodedBody = decoder.decode(input);
|
|
33
|
+
try {
|
|
34
|
+
parsed = JSON.parse(decodedBody);
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
parsed = input;
|
|
42
|
+
}
|
|
43
|
+
const notification = ntfyJsonSchema.parse(parsed);
|
|
44
|
+
return {
|
|
45
|
+
notification,
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
export { ntfyJsonInterpreter, };
|
|
49
|
+
//# sourceMappingURL=ntfy-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ntfy-json.js","sourceRoot":"","sources":["../../../../src/worker/interpreters/ntfy-json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoBxB,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;AAUpC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC;QAChB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;KACb,CAAC,CAAC,QAAQ,EAAE;IACb,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAUH,MAAM,mBAAmB,GAA0C,CAAC,KAAsC,EAAoC,EAAE;IAC9I,IAAI,MAAM,GAAwD,SAAS,CAAC;IAE5E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;SAAM,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;QACxC,MAAM,OAAO,GAAyD,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;QAC/F,MAAM,WAAW,GAA6D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEpG,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,YAAY,GAA8D,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAE7G,OAAO;QACL,YAAY;KACb,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EACL,mBAAmB,GACpB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pfsense.d.ts","sourceRoot":"","sources":["../../../../src/worker/interpreters/pfsense.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAMV,oCAAoC,EA0BrC,MAAM,8CAA8C,CAAC;AAuLtD,QAAA,MAAM,kBAAkB,EAAE,oCAgFzB,CAAC;AAEF,OAAO,EACL,kBAAkB,GACnB,CAAC"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
const mapKeywordsToPriority = (text) => {
|
|
2
|
+
const lower = text.toLowerCase();
|
|
3
|
+
if (lower.includes('is down') === true) {
|
|
4
|
+
return 5;
|
|
5
|
+
}
|
|
6
|
+
if (lower.includes('error') === true
|
|
7
|
+
|| lower.includes('bad sectors') === true) {
|
|
8
|
+
return 4;
|
|
9
|
+
}
|
|
10
|
+
if (lower.includes('packet loss') === true
|
|
11
|
+
|| lower.includes('high latency') === true
|
|
12
|
+
|| lower.includes('warning') === true) {
|
|
13
|
+
return 3;
|
|
14
|
+
}
|
|
15
|
+
if (lower.includes('is available') === true
|
|
16
|
+
|| lower.includes('restored') === true) {
|
|
17
|
+
return 2;
|
|
18
|
+
}
|
|
19
|
+
return 3;
|
|
20
|
+
};
|
|
21
|
+
const mapPriorityToEmojiTag = (priority) => {
|
|
22
|
+
switch (priority) {
|
|
23
|
+
case 5: {
|
|
24
|
+
return 'rotating_light';
|
|
25
|
+
}
|
|
26
|
+
case 4: {
|
|
27
|
+
return 'warning';
|
|
28
|
+
}
|
|
29
|
+
case 2: {
|
|
30
|
+
return 'white_check_mark';
|
|
31
|
+
}
|
|
32
|
+
default: {
|
|
33
|
+
return 'bell';
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
const extractContentTags = (text) => {
|
|
38
|
+
const lower = text.toLowerCase();
|
|
39
|
+
const tags = [];
|
|
40
|
+
if (lower.includes('gateway') === true) {
|
|
41
|
+
tags.push('gateway');
|
|
42
|
+
}
|
|
43
|
+
if (lower.includes('certificate') === true) {
|
|
44
|
+
tags.push('certificate');
|
|
45
|
+
}
|
|
46
|
+
if (lower.includes('firewall') === true
|
|
47
|
+
|| lower.includes('filter') === true) {
|
|
48
|
+
tags.push('firewall');
|
|
49
|
+
}
|
|
50
|
+
if (lower.includes('openvpn') === true
|
|
51
|
+
|| lower.includes('ipsec') === true
|
|
52
|
+
|| lower.includes('vpn') === true) {
|
|
53
|
+
tags.push('vpn');
|
|
54
|
+
}
|
|
55
|
+
if (lower.includes('dns') === true
|
|
56
|
+
|| lower.includes('resolver') === true) {
|
|
57
|
+
tags.push('dns');
|
|
58
|
+
}
|
|
59
|
+
return tags;
|
|
60
|
+
};
|
|
61
|
+
const parseNotifications = (textBody) => {
|
|
62
|
+
const lines = textBody.split('\n');
|
|
63
|
+
const notifications = [];
|
|
64
|
+
let pastSeparator = false;
|
|
65
|
+
for (const line of lines) {
|
|
66
|
+
const trimmed = line.trim();
|
|
67
|
+
if (trimmed.startsWith('====') === true) {
|
|
68
|
+
pastSeparator = true;
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
if (trimmed.startsWith('Notifications in this message') === true) {
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
if (trimmed === '') {
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
if (pastSeparator === true) {
|
|
78
|
+
notifications.push(trimmed);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
notifications.push(trimmed);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return notifications;
|
|
85
|
+
};
|
|
86
|
+
const pfsenseInterpreter = (input) => {
|
|
87
|
+
if (typeof input === 'string') {
|
|
88
|
+
const priority = mapKeywordsToPriority(input);
|
|
89
|
+
const emojiTag = mapPriorityToEmojiTag(priority);
|
|
90
|
+
return {
|
|
91
|
+
notification: {
|
|
92
|
+
title: 'pfSense',
|
|
93
|
+
body: input,
|
|
94
|
+
priority,
|
|
95
|
+
tags: [
|
|
96
|
+
'pfsense',
|
|
97
|
+
...extractContentTags(input),
|
|
98
|
+
emojiTag,
|
|
99
|
+
],
|
|
100
|
+
markdown: true,
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
if (input instanceof ArrayBuffer) {
|
|
105
|
+
const decoder = new TextDecoder('utf-8');
|
|
106
|
+
const body = decoder.decode(input);
|
|
107
|
+
const priority = mapKeywordsToPriority(body);
|
|
108
|
+
const emojiTag = mapPriorityToEmojiTag(priority);
|
|
109
|
+
return {
|
|
110
|
+
notification: {
|
|
111
|
+
title: 'pfSense',
|
|
112
|
+
body,
|
|
113
|
+
priority,
|
|
114
|
+
tags: [
|
|
115
|
+
'pfsense',
|
|
116
|
+
...extractContentTags(body),
|
|
117
|
+
emojiTag,
|
|
118
|
+
],
|
|
119
|
+
markdown: true,
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
const data = input;
|
|
124
|
+
const rawSubject = data['subject'];
|
|
125
|
+
const subject = (typeof rawSubject === 'string') ? rawSubject : '';
|
|
126
|
+
const rawTextBody = data['textBody'];
|
|
127
|
+
const textBody = (typeof rawTextBody === 'string') ? rawTextBody : JSON.stringify(data);
|
|
128
|
+
const hostname = (subject.includes(' - Notification') === true) ? subject.replace(' - Notification', '').trim() : 'pfSense';
|
|
129
|
+
const notifications = parseNotifications(textBody);
|
|
130
|
+
const priority = mapKeywordsToPriority(textBody);
|
|
131
|
+
const contentTags = extractContentTags(textBody);
|
|
132
|
+
const emojiTag = mapPriorityToEmojiTag(priority);
|
|
133
|
+
const tags = [
|
|
134
|
+
'pfsense',
|
|
135
|
+
...contentTags,
|
|
136
|
+
emojiTag,
|
|
137
|
+
];
|
|
138
|
+
const body = notifications.join('\n');
|
|
139
|
+
return {
|
|
140
|
+
notification: {
|
|
141
|
+
title: hostname,
|
|
142
|
+
body,
|
|
143
|
+
priority,
|
|
144
|
+
tags,
|
|
145
|
+
markdown: true,
|
|
146
|
+
},
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
export { pfsenseInterpreter, };
|
|
150
|
+
//# sourceMappingURL=pfsense.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pfsense.js","sourceRoot":"","sources":["../../../../src/worker/interpreters/pfsense.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plain-text.d.ts","sourceRoot":"","sources":["../../../../src/worker/interpreters/plain-text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,sCAAsC,EAIvC,MAAM,iDAAiD,CAAC;AAUzD,QAAA,MAAM,oBAAoB,EAAE,sCAgB3B,CAAC;AAEF,OAAO,EACL,oBAAoB,GACrB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const plainTextInterpreter = (input) => {
|
|
2
|
+
let body = undefined;
|
|
3
|
+
if (typeof input === 'string') {
|
|
4
|
+
body = input;
|
|
5
|
+
}
|
|
6
|
+
else if (input instanceof ArrayBuffer) {
|
|
7
|
+
const decoder = new TextDecoder('utf-8');
|
|
8
|
+
body = decoder.decode(input);
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
body = JSON.stringify(input, null, 2);
|
|
12
|
+
}
|
|
13
|
+
return {
|
|
14
|
+
notification: { body },
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export { plainTextInterpreter, };
|
|
18
|
+
//# sourceMappingURL=plain-text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plain-text.js","sourceRoot":"","sources":["../../../../src/worker/interpreters/plain-text.ts"],"names":[],"mappings":"AAgBA,MAAM,oBAAoB,GAA2C,CAAC,KAAuC,EAAqC,EAAE;IAClJ,IAAI,IAAI,GAAwD,SAAS,CAAC;IAE1E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,GAAG,KAAK,CAAC;IACf,CAAC;SAAM,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;QACxC,MAAM,OAAO,GAA2D,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;QAEjG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,OAAO;QACL,YAAY,EAAE,EAAE,IAAI,EAAE;KACvB,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EACL,oBAAoB,GACrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seerr.d.ts","sourceRoot":"","sources":["../../../../src/worker/interpreters/seerr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,kCAAkC,EA8CnC,MAAM,4CAA4C,CAAC;AA6GpD,QAAA,MAAM,gBAAgB,EAAE,kCAmJvB,CAAC;AAEF,OAAO,EACL,gBAAgB,GACjB,CAAC"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
const mapNotificationTypeToPriority = (notificationType) => {
|
|
2
|
+
switch (notificationType) {
|
|
3
|
+
case 'MEDIA_FAILED': {
|
|
4
|
+
return 4;
|
|
5
|
+
}
|
|
6
|
+
case 'ISSUE_CREATED':
|
|
7
|
+
case 'ISSUE_REOPENED':
|
|
8
|
+
case 'MEDIA_PENDING':
|
|
9
|
+
case 'MEDIA_APPROVED':
|
|
10
|
+
case 'MEDIA_AUTO_APPROVED':
|
|
11
|
+
case 'MEDIA_AUTO_REQUESTED':
|
|
12
|
+
case 'MEDIA_DECLINED':
|
|
13
|
+
case 'ISSUE_COMMENT': {
|
|
14
|
+
return 3;
|
|
15
|
+
}
|
|
16
|
+
case 'MEDIA_AVAILABLE':
|
|
17
|
+
case 'ISSUE_RESOLVED':
|
|
18
|
+
case 'TEST_NOTIFICATION': {
|
|
19
|
+
return 2;
|
|
20
|
+
}
|
|
21
|
+
default: {
|
|
22
|
+
return 3;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
const mapPriorityToEmojiTag = (priority) => {
|
|
27
|
+
switch (priority) {
|
|
28
|
+
case 5: {
|
|
29
|
+
return 'rotating_light';
|
|
30
|
+
}
|
|
31
|
+
case 4: {
|
|
32
|
+
return 'warning';
|
|
33
|
+
}
|
|
34
|
+
case 2: {
|
|
35
|
+
return 'white_check_mark';
|
|
36
|
+
}
|
|
37
|
+
default: {
|
|
38
|
+
return 'movie_camera';
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
const validateUrl = (rawUrl) => {
|
|
43
|
+
try {
|
|
44
|
+
const url = new URL(rawUrl);
|
|
45
|
+
return url.href;
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
const seerrInterpreter = (input) => {
|
|
52
|
+
let parsed = undefined;
|
|
53
|
+
if (typeof input === 'string') {
|
|
54
|
+
try {
|
|
55
|
+
parsed = JSON.parse(input);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return {
|
|
59
|
+
notification: {
|
|
60
|
+
title: '[Seerr] Notification',
|
|
61
|
+
body: input,
|
|
62
|
+
priority: 3,
|
|
63
|
+
tags: [
|
|
64
|
+
'seerr',
|
|
65
|
+
'movie_camera',
|
|
66
|
+
],
|
|
67
|
+
markdown: true,
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else if (input instanceof ArrayBuffer) {
|
|
73
|
+
const decoder = new TextDecoder('utf-8');
|
|
74
|
+
const decodedBody = decoder.decode(input);
|
|
75
|
+
try {
|
|
76
|
+
parsed = JSON.parse(decodedBody);
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return {
|
|
80
|
+
notification: {
|
|
81
|
+
title: '[Seerr] Notification',
|
|
82
|
+
body: decodedBody,
|
|
83
|
+
priority: 3,
|
|
84
|
+
tags: [
|
|
85
|
+
'seerr',
|
|
86
|
+
'movie_camera',
|
|
87
|
+
],
|
|
88
|
+
markdown: true,
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
parsed = input;
|
|
95
|
+
}
|
|
96
|
+
const data = parsed;
|
|
97
|
+
const notificationType = (typeof data['notification_type'] === 'string') ? data['notification_type'] : 'UNKNOWN';
|
|
98
|
+
const event = (typeof data['event'] === 'string') ? data['event'] : 'Notification';
|
|
99
|
+
const subject = (typeof data['subject'] === 'string') ? data['subject'] : '';
|
|
100
|
+
const message = (typeof data['message'] === 'string') ? data['message'] : '';
|
|
101
|
+
const image = (typeof data['image'] === 'string') ? data['image'] : undefined;
|
|
102
|
+
const rawMediaDefault = {};
|
|
103
|
+
const media = (data['media'] !== undefined) ? data['media'] : rawMediaDefault;
|
|
104
|
+
const mediaType = (typeof media['media_type'] === 'string') ? media['media_type'] : '';
|
|
105
|
+
const tmdbId = (typeof media['tmdbId'] === 'string') ? media['tmdbId'] : '';
|
|
106
|
+
const mediaStatus = (typeof media['status'] === 'string') ? media['status'] : '';
|
|
107
|
+
const rawRequestDefault = {};
|
|
108
|
+
const request = (data['request'] !== undefined) ? data['request'] : rawRequestDefault;
|
|
109
|
+
const requestedByUsername = (typeof request['requestedBy_username'] === 'string') ? request['requestedBy_username'] : '';
|
|
110
|
+
const rawIssueDefault = {};
|
|
111
|
+
const issue = (data['issue'] !== undefined) ? data['issue'] : rawIssueDefault;
|
|
112
|
+
const issueType = (typeof issue['issue_type'] === 'string') ? issue['issue_type'] : '';
|
|
113
|
+
const reportedByUsername = (typeof issue['reportedBy_username'] === 'string') ? issue['reportedBy_username'] : '';
|
|
114
|
+
const rawCommentDefault = {};
|
|
115
|
+
const comment = (data['comment'] !== undefined) ? data['comment'] : rawCommentDefault;
|
|
116
|
+
const commentMessage = (typeof comment['comment_message'] === 'string') ? comment['comment_message'] : '';
|
|
117
|
+
const commentedByUsername = (typeof comment['commentedBy_username'] === 'string') ? comment['commentedBy_username'] : '';
|
|
118
|
+
const title = `[Seerr] ${event}`;
|
|
119
|
+
const bodyLines = [];
|
|
120
|
+
if (subject !== '') {
|
|
121
|
+
bodyLines.push(`**${subject}**`);
|
|
122
|
+
}
|
|
123
|
+
if (message !== '') {
|
|
124
|
+
bodyLines.push(message);
|
|
125
|
+
}
|
|
126
|
+
if (mediaType !== '' || mediaStatus !== '') {
|
|
127
|
+
bodyLines.push(`**Type:** ${mediaType} | **Status:** ${mediaStatus}`);
|
|
128
|
+
}
|
|
129
|
+
if (requestedByUsername !== '') {
|
|
130
|
+
bodyLines.push(`**Requested by:** ${requestedByUsername}`);
|
|
131
|
+
}
|
|
132
|
+
if (reportedByUsername !== '' || issueType !== '') {
|
|
133
|
+
bodyLines.push(`**Reported by:** ${reportedByUsername} | **Type:** ${issueType}`);
|
|
134
|
+
}
|
|
135
|
+
if (commentedByUsername !== '' && commentMessage !== '') {
|
|
136
|
+
bodyLines.push(`**Comment by:** ${commentedByUsername}: ${commentMessage}`);
|
|
137
|
+
}
|
|
138
|
+
const body = bodyLines.join('\n');
|
|
139
|
+
const priority = mapNotificationTypeToPriority(notificationType);
|
|
140
|
+
const emojiTag = mapPriorityToEmojiTag(priority);
|
|
141
|
+
const tags = [
|
|
142
|
+
'seerr',
|
|
143
|
+
emojiTag,
|
|
144
|
+
];
|
|
145
|
+
const tmdbUrl = (tmdbId !== '' && mediaType !== '') ? `https://www.themoviedb.org/${mediaType}/${tmdbId}` : undefined;
|
|
146
|
+
const rawProxyConfigDefault = {};
|
|
147
|
+
const proxyConfig = (typeof data['ntfy-reverse-proxy'] === 'object' && data['ntfy-reverse-proxy'] !== null) ? data['ntfy-reverse-proxy'] : rawProxyConfigDefault;
|
|
148
|
+
const rawSeerrUrl = proxyConfig['url'];
|
|
149
|
+
let seerrUrl = undefined;
|
|
150
|
+
if (typeof rawSeerrUrl === 'string') {
|
|
151
|
+
seerrUrl = validateUrl(rawSeerrUrl);
|
|
152
|
+
}
|
|
153
|
+
const actions = [];
|
|
154
|
+
if (tmdbUrl !== undefined) {
|
|
155
|
+
actions.push(`view, View on TMDB, ${tmdbUrl}`);
|
|
156
|
+
}
|
|
157
|
+
if (seerrUrl !== undefined) {
|
|
158
|
+
actions.push(`view, Open Seerr, ${seerrUrl}`);
|
|
159
|
+
}
|
|
160
|
+
return {
|
|
161
|
+
notification: {
|
|
162
|
+
title,
|
|
163
|
+
body,
|
|
164
|
+
priority,
|
|
165
|
+
tags,
|
|
166
|
+
markdown: true,
|
|
167
|
+
...(image !== undefined ? { icon: image } : {}),
|
|
168
|
+
...(actions.length > 0 ? { actions: actions.join('; ') } : {}),
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
};
|
|
172
|
+
export { seerrInterpreter, };
|
|
173
|
+
//# sourceMappingURL=seerr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seerr.js","sourceRoot":"","sources":["../../../../src/worker/interpreters/seerr.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statuspage.d.ts","sourceRoot":"","sources":["../../../../src/worker/interpreters/statuspage.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EA+BV,uCAAuC,EA8DxC,MAAM,iDAAiD,CAAC;AAkNzD,QAAA,MAAM,qBAAqB,EAAE,uCAyJ5B,CAAC;AAEF,OAAO,EACL,qBAAqB,GACtB,CAAC"}
|