ntfy-reverse-proxy 2.0.4 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -0
- package/README.md +10 -0
- package/build/src/cli/commands/config-io.d.ts +3 -3
- package/build/src/cli/commands/config-io.d.ts.map +1 -1
- package/build/src/cli/commands/config-io.js +1 -1
- package/build/src/cli/commands/config-io.js.map +1 -1
- package/build/src/cli/commands/context.d.ts +7 -7
- package/build/src/cli/commands/context.d.ts.map +1 -1
- package/build/src/cli/commands/context.js +1 -1
- package/build/src/cli/commands/context.js.map +1 -1
- package/build/src/cli/commands/deploy.d.ts +2 -2
- package/build/src/cli/commands/deploy.d.ts.map +1 -1
- package/build/src/cli/commands/deploy.js +72 -30
- package/build/src/cli/commands/deploy.js.map +1 -1
- package/build/src/cli/commands/generate.d.ts +2 -2
- package/build/src/cli/commands/generate.d.ts.map +1 -1
- package/build/src/cli/commands/generate.js +3 -3
- package/build/src/cli/commands/generate.js.map +1 -1
- package/build/src/cli/commands/server.d.ts +5 -5
- package/build/src/cli/commands/server.d.ts.map +1 -1
- package/build/src/cli/commands/server.js.map +1 -1
- package/build/src/cli/commands/settings.d.ts +3 -3
- package/build/src/cli/commands/settings.d.ts.map +1 -1
- package/build/src/cli/commands/settings.js.map +1 -1
- package/build/src/cli/commands/validate.d.ts +2 -2
- package/build/src/cli/commands/validate.d.ts.map +1 -1
- package/build/src/cli/commands/validate.js +3 -0
- package/build/src/cli/commands/validate.js.map +1 -1
- package/build/src/cli/index.d.ts +2 -2
- package/build/src/cli/index.d.ts.map +1 -1
- package/build/src/cli/index.js +4 -4
- package/build/src/cli/index.js.map +1 -1
- package/build/src/cli/menu/interactive.d.ts +2 -2
- package/build/src/cli/menu/interactive.d.ts.map +1 -1
- package/build/src/cli/menu/interactive.js +174 -84
- package/build/src/cli/menu/interactive.js.map +1 -1
- package/build/src/lib/regex.d.ts +4 -1
- package/build/src/lib/regex.d.ts.map +1 -1
- package/build/src/lib/regex.js +4 -1
- package/build/src/lib/regex.js.map +1 -1
- package/build/src/lib/schema.d.ts +24 -0
- package/build/src/lib/schema.d.ts.map +1 -1
- package/build/src/lib/schema.js +11 -2
- package/build/src/lib/schema.js.map +1 -1
- package/build/src/lib/utility.d.ts +2 -2
- package/build/src/lib/utility.d.ts.map +1 -1
- package/build/src/lib/utility.js +1 -1
- package/build/src/lib/utility.js.map +1 -1
- package/build/src/types/cli/commands/config-io.d.ts +12 -12
- package/build/src/types/cli/commands/context.d.ts +96 -58
- package/build/src/types/cli/commands/deploy.d.ts +342 -298
- package/build/src/types/cli/commands/generate.d.ts +40 -24
- package/build/src/types/cli/commands/server.d.ts +23 -23
- package/build/src/types/cli/commands/settings.d.ts +8 -8
- package/build/src/types/cli/commands/validate.d.ts +16 -16
- package/build/src/types/cli/index.d.ts +16 -20
- package/build/src/types/cli/menu/interactive.d.ts +233 -178
- package/build/src/types/lib/schema.d.ts +89 -81
- package/build/src/types/lib/utility.d.ts +4 -2
- package/build/src/types/shared.d.ts +85 -0
- package/build/src/types/tests/cli/commands/context.test.d.ts +102 -31
- package/build/src/types/tests/cli/commands/generate.test.d.ts +50 -4
- package/build/src/types/tests/cli/commands/server.test.d.ts +88 -23
- package/build/src/types/tests/cli/commands/settings.test.d.ts +65 -21
- package/build/src/types/tests/cli/commands/validate.test.d.ts +69 -8
- package/build/src/types/tests/cli/menu/interactive.test.d.ts +2 -2
- package/build/src/types/tests/lib/schema.test.d.ts +258 -3
- package/build/src/types/tests/worker/index.test.d.ts +166 -8
- package/build/src/types/tests/worker/interpreters/ntfy-json.test.d.ts +94 -10
- package/build/src/types/tests/worker/interpreters/pfsense.test.d.ts +163 -4
- package/build/src/types/tests/worker/interpreters/plain-text.test.d.ts +67 -4
- package/build/src/types/tests/worker/interpreters/seerr.test.d.ts +138 -3
- package/build/src/types/tests/worker/interpreters/statuspage.test.d.ts +235 -30
- package/build/src/types/tests/worker/interpreters/synology.test.d.ts +61 -3
- package/build/src/types/tests/worker/interpreters/unifi.test.d.ts +93 -3
- package/build/src/types/tests/worker/landing/page.test.d.ts +73 -50
- package/build/src/types/tests/worker/pipeline/accumulate.test.d.ts +226 -15
- package/build/src/types/tests/worker/pipeline/authenticate.test.d.ts +148 -4
- package/build/src/types/tests/worker/pipeline/email.test.d.ts +82 -8
- package/build/src/types/tests/worker/pipeline/format.test.d.ts +112 -32
- package/build/src/types/tests/worker/pipeline/interpret.test.d.ts +109 -17
- package/build/src/types/tests/worker/pipeline/parse.test.d.ts +70 -5
- package/build/src/types/tests/worker/pipeline/receive.test.d.ts +156 -15
- package/build/src/types/tests/worker/pipeline/respond.test.d.ts +129 -10
- package/build/src/types/tests/worker/pipeline/route.test.d.ts +412 -74
- package/build/src/types/tests/worker/pipeline/send.test.d.ts +58 -23
- package/build/src/types/tests/worker/pipeline/split.test.d.ts +47 -9
- package/build/src/types/worker/handlers.d.ts +193 -0
- package/build/src/types/worker/index.d.ts +58 -203
- package/build/src/types/worker/interpreters/ntfy-json.d.ts +10 -10
- package/build/src/types/worker/interpreters/pfsense.d.ts +57 -49
- package/build/src/types/worker/interpreters/plain-text.d.ts +7 -7
- package/build/src/types/worker/interpreters/seerr.d.ts +63 -61
- package/build/src/types/worker/interpreters/statuspage.d.ts +201 -116
- package/build/src/types/worker/interpreters/synology.d.ts +48 -46
- package/build/src/types/worker/interpreters/unifi.d.ts +79 -54
- package/build/src/types/worker/landing/page.d.ts +30 -23
- package/build/src/types/worker/pipeline/accumulate.d.ts +46 -32
- package/build/src/types/worker/pipeline/authenticate.d.ts +94 -34
- package/build/src/types/worker/pipeline/email.d.ts +114 -50
- package/build/src/types/worker/pipeline/format.d.ts +31 -23
- package/build/src/types/worker/pipeline/interpret.d.ts +34 -34
- package/build/src/types/worker/pipeline/parse.d.ts +25 -19
- package/build/src/types/worker/pipeline/receive.d.ts +36 -34
- package/build/src/types/worker/pipeline/respond.d.ts +119 -63
- package/build/src/types/worker/pipeline/route.d.ts +33 -16
- package/build/src/types/worker/pipeline/send.d.ts +116 -79
- package/build/src/types/worker/pipeline/split.d.ts +21 -16
- package/build/src/worker/handlers.d.ts +5 -4
- package/build/src/worker/handlers.d.ts.map +1 -1
- package/build/src/worker/handlers.js +238 -202
- package/build/src/worker/handlers.js.map +1 -1
- package/build/src/worker/index.d.ts +2 -2
- package/build/src/worker/index.d.ts.map +1 -1
- package/build/src/worker/index.js +37 -9
- package/build/src/worker/index.js.map +1 -1
- package/build/src/worker/interpreters/ntfy-json.d.ts +2 -2
- package/build/src/worker/interpreters/ntfy-json.d.ts.map +1 -1
- package/build/src/worker/interpreters/ntfy-json.js.map +1 -1
- package/build/src/worker/interpreters/pfsense.d.ts +2 -2
- package/build/src/worker/interpreters/pfsense.d.ts.map +1 -1
- package/build/src/worker/interpreters/pfsense.js +20 -27
- package/build/src/worker/interpreters/pfsense.js.map +1 -1
- package/build/src/worker/interpreters/plain-text.d.ts +2 -2
- package/build/src/worker/interpreters/plain-text.d.ts.map +1 -1
- package/build/src/worker/interpreters/plain-text.js.map +1 -1
- package/build/src/worker/interpreters/seerr.d.ts +2 -2
- package/build/src/worker/interpreters/seerr.d.ts.map +1 -1
- package/build/src/worker/interpreters/seerr.js +16 -12
- package/build/src/worker/interpreters/seerr.js.map +1 -1
- package/build/src/worker/interpreters/statuspage.d.ts +2 -2
- package/build/src/worker/interpreters/statuspage.d.ts.map +1 -1
- package/build/src/worker/interpreters/statuspage.js +98 -47
- package/build/src/worker/interpreters/statuspage.js.map +1 -1
- package/build/src/worker/interpreters/synology.d.ts +2 -2
- package/build/src/worker/interpreters/synology.d.ts.map +1 -1
- package/build/src/worker/interpreters/synology.js +9 -5
- package/build/src/worker/interpreters/synology.js.map +1 -1
- package/build/src/worker/interpreters/unifi.d.ts +2 -2
- package/build/src/worker/interpreters/unifi.d.ts.map +1 -1
- package/build/src/worker/interpreters/unifi.js +34 -20
- package/build/src/worker/interpreters/unifi.js.map +1 -1
- package/build/src/worker/landing/page.d.ts +2 -2
- package/build/src/worker/landing/page.d.ts.map +1 -1
- package/build/src/worker/landing/page.js +4 -3
- package/build/src/worker/landing/page.js.map +1 -1
- package/build/src/worker/pipeline/accumulate.d.ts +5 -6
- package/build/src/worker/pipeline/accumulate.d.ts.map +1 -1
- package/build/src/worker/pipeline/accumulate.js +4 -11
- package/build/src/worker/pipeline/accumulate.js.map +1 -1
- package/build/src/worker/pipeline/authenticate.d.ts +2 -2
- package/build/src/worker/pipeline/authenticate.d.ts.map +1 -1
- package/build/src/worker/pipeline/authenticate.js +25 -7
- package/build/src/worker/pipeline/authenticate.js.map +1 -1
- package/build/src/worker/pipeline/email.d.ts +2 -2
- package/build/src/worker/pipeline/email.d.ts.map +1 -1
- package/build/src/worker/pipeline/email.js +34 -11
- package/build/src/worker/pipeline/email.js.map +1 -1
- package/build/src/worker/pipeline/format.d.ts +2 -3
- package/build/src/worker/pipeline/format.d.ts.map +1 -1
- package/build/src/worker/pipeline/format.js +2 -1
- package/build/src/worker/pipeline/format.js.map +1 -1
- package/build/src/worker/pipeline/interpret.d.ts +4 -3
- package/build/src/worker/pipeline/interpret.d.ts.map +1 -1
- package/build/src/worker/pipeline/interpret.js +7 -7
- package/build/src/worker/pipeline/interpret.js.map +1 -1
- package/build/src/worker/pipeline/parse.d.ts +2 -2
- package/build/src/worker/pipeline/parse.d.ts.map +1 -1
- package/build/src/worker/pipeline/parse.js +14 -7
- package/build/src/worker/pipeline/parse.js.map +1 -1
- package/build/src/worker/pipeline/receive.d.ts +2 -2
- package/build/src/worker/pipeline/receive.d.ts.map +1 -1
- package/build/src/worker/pipeline/receive.js +6 -6
- package/build/src/worker/pipeline/receive.js.map +1 -1
- package/build/src/worker/pipeline/respond.d.ts +2 -2
- package/build/src/worker/pipeline/respond.d.ts.map +1 -1
- package/build/src/worker/pipeline/respond.js +1 -1
- package/build/src/worker/pipeline/respond.js.map +1 -1
- package/build/src/worker/pipeline/route.d.ts +2 -3
- package/build/src/worker/pipeline/route.d.ts.map +1 -1
- package/build/src/worker/pipeline/route.js.map +1 -1
- package/build/src/worker/pipeline/send.d.ts +2 -2
- package/build/src/worker/pipeline/send.d.ts.map +1 -1
- package/build/src/worker/pipeline/send.js +80 -41
- package/build/src/worker/pipeline/send.js.map +1 -1
- package/build/src/worker/pipeline/split.d.ts +2 -2
- package/build/src/worker/pipeline/split.d.ts.map +1 -1
- package/build/src/worker/pipeline/split.js +4 -2
- package/build/src/worker/pipeline/split.js.map +1 -1
- package/package.json +7 -6
- package/build/src/types/tests/type-declarations.test.d.ts +0 -173
- package/build/src/types/worker/pipeline/shared.d.ts +0 -85
|
@@ -9,7 +9,7 @@ function respond(sendResult, options) {
|
|
|
9
9
|
const parts = options['parts'];
|
|
10
10
|
const hasAttachment = options['hasAttachment'];
|
|
11
11
|
const anySuccess = results.some((result) => result['success'] === true);
|
|
12
|
-
const allSuccess = results.every((result) => result['success'] === true);
|
|
12
|
+
const allSuccess = results.length > 0 && results.every((result) => result['success'] === true);
|
|
13
13
|
const partialStatus = (anySuccess === true) ? 'partial' : 'failed';
|
|
14
14
|
const status = (allSuccess === true) ? 'success' : partialStatus;
|
|
15
15
|
const httpStatus = (anySuccess === true) ? 200 : 502;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"respond.js","sourceRoot":"","sources":["../../../../src/worker/pipeline/respond.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"respond.js","sourceRoot":"","sources":["../../../../src/worker/pipeline/respond.ts"],"names":[],"mappings":"AA+BA,SAAS,OAAO,CAAC,UAA8C,EAAE,OAAwC;IACvG,MAAM,OAAO,GAA4C,UAAU,CAAC,SAAS,CAAC,CAAC;IAC/E,MAAM,YAAY,GAAiD,UAAU,CAAC,cAAc,CAAC,CAAC;IAC9F,MAAM,kBAAkB,GAA+C,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACrG,MAAM,WAAW,GAAwC,OAAO,CAAC,aAAa,CAAC,CAAC;IAChF,MAAM,eAAe,GAA4C,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC5F,MAAM,YAAY,GAAyC,OAAO,CAAC,cAAc,CAAC,CAAC;IACnF,MAAM,QAAQ,GAAqC,OAAO,CAAC,UAAU,CAAC,CAAC;IACvE,MAAM,KAAK,GAAkC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9D,MAAM,aAAa,GAA0C,OAAO,CAAC,eAAe,CAAC,CAAC;IAEtF,MAAM,UAAU,GAAuC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,CAAC;IAC5G,MAAM,UAAU,GAAuC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,CAAC;IAEnI,MAAM,aAAa,GAAkD,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;IAClH,MAAM,MAAM,GAAmC,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC;IAEjG,MAAM,UAAU,GAAuC,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAEzF,MAAM,IAAI,GAAiC;QACzC,MAAM;KACP,CAAC;IAEF,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,kBAAkB,KAAK,IAAI,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;QAElD,MAAM,OAAO,GAA4C,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAChF,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;YACxB,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC;YAC1B,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;SACzB,CAAC,CAAC,CAAC;QAEJ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAEtC,MAAM,OAAO,GAA4C;YACvD,KAAK,EAAE,YAAY;YACnB,SAAS,EAAE,QAAQ;YACnB,KAAK;YACL,cAAc,EAAE,aAAa;SAC9B,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;QACjD,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;KACF,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EACL,OAAO,GACR,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
declare function route(routeType: WorkerPipelineRouteType, identifier: WorkerPipelineRouteIdentifier, config: LibSchemaConfigSchema): WorkerPipelineRouteResult;
|
|
1
|
+
import type { Worker_Pipeline_Route_Config, Worker_Pipeline_Route_Identifier, Worker_Pipeline_Route_Returns, Worker_Pipeline_Route_RouteType } from '../../types/worker/pipeline/route.d.ts';
|
|
2
|
+
declare function route(routeType: Worker_Pipeline_Route_RouteType, identifier: Worker_Pipeline_Route_Identifier, config: Worker_Pipeline_Route_Config): Worker_Pipeline_Route_Returns;
|
|
4
3
|
export { route, };
|
|
5
4
|
//# sourceMappingURL=route.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../src/worker/pipeline/route.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../src/worker/pipeline/route.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,4BAA4B,EAE5B,gCAAgC,EAEhC,6BAA6B,EAE7B,+BAA+B,EAChC,MAAM,wCAAwC,CAAC;AAUhD,iBAAS,KAAK,CAAC,SAAS,EAAE,+BAA+B,EAAE,UAAU,EAAE,gCAAgC,EAAE,MAAM,EAAE,4BAA4B,GAAG,6BAA6B,CA0B5K;AAED,OAAO,EACL,KAAK,GACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../src/worker/pipeline/route.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../../../src/worker/pipeline/route.ts"],"names":[],"mappings":"AAmBA,SAAS,KAAK,CAAC,SAA0C,EAAE,UAA4C,EAAE,MAAoC;IAC3I,MAAM,OAAO,GAAkC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,CAAC;IAEvI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO;YACL,OAAO,EAAE,SAAS;YAClB,eAAe,EAAE,SAAS;YAC1B,aAAa,EAAE,SAAS;YACxB,KAAK,EAAE,wBAAwB,SAAS,gBAAgB,UAAU,EAAE;SACrE,CAAC;IACJ,CAAC;IAED,MAAM,eAAe,GAAgD,OAAO,CAAC,SAAS,CAAC;SACpF,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC,CAAC;SACtF,MAAM,CAAC,CAAC,MAAM,EAAqC,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IAE/E,MAAM,aAAa,GAAwC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAC/E,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,gBAAgB,CAAC,CACzD,CAAC;IAEF,OAAO;QACL,OAAO;QACP,eAAe;QACf,aAAa;QACb,KAAK,EAAE,SAAS;KACjB,CAAC;AACJ,CAAC;AAED,OAAO,EACL,KAAK,GACN,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
declare function send(options:
|
|
1
|
+
import type { Worker_Pipeline_Send_Options, Worker_Pipeline_Send_Returns } from '../../types/worker/pipeline/send.d.ts';
|
|
2
|
+
declare function send(options: Worker_Pipeline_Send_Options): Worker_Pipeline_Send_Returns;
|
|
3
3
|
export { send, };
|
|
4
4
|
//# sourceMappingURL=send.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../../src/worker/pipeline/send.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../../src/worker/pipeline/send.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAUV,4BAA4B,EAI5B,4BAA4B,EAoC7B,MAAM,uCAAuC,CAAC;AA0J/C,iBAAe,IAAI,CAAC,OAAO,EAAE,4BAA4B,GAAG,4BAA4B,CA+GvF;AAED,OAAO,EACL,IAAI,GACL,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { REGEX_TITLE_PART_SUFFIX } from '../../lib/regex.js';
|
|
2
|
+
const MAX_BYTES = 4000;
|
|
1
3
|
async function sendToServer(server, messages, topic, visitorIp, attachment, filename, attachmentHeaders) {
|
|
2
4
|
const stages = [];
|
|
3
5
|
const url = `${server['server']}/${topic}`;
|
|
@@ -19,25 +21,22 @@ async function sendToServer(server, messages, topic, visitorIp, attachment, file
|
|
|
19
21
|
headers,
|
|
20
22
|
body: message['body'],
|
|
21
23
|
});
|
|
22
|
-
lastStatus = response
|
|
23
|
-
if (response
|
|
24
|
-
|
|
25
|
-
stages.push(stage);
|
|
24
|
+
lastStatus = response['status'];
|
|
25
|
+
if (response['ok'] === false) {
|
|
26
|
+
stages.push(`${partLabel}: failed (HTTP ${String(response['status'])})`);
|
|
26
27
|
return {
|
|
27
28
|
name: server['name'],
|
|
28
29
|
success: false,
|
|
29
|
-
status: response
|
|
30
|
+
status: response['status'],
|
|
30
31
|
stages,
|
|
31
|
-
error: `HTTP ${String(response
|
|
32
|
+
error: `HTTP ${String(response['status'])}`,
|
|
32
33
|
};
|
|
33
34
|
}
|
|
34
|
-
|
|
35
|
-
stages.push(okStage);
|
|
35
|
+
stages.push(`${partLabel}: ok`);
|
|
36
36
|
}
|
|
37
37
|
catch (err) {
|
|
38
38
|
const errorMessage = (err instanceof Error) ? err.message : 'Unknown error';
|
|
39
|
-
|
|
40
|
-
stages.push(stage);
|
|
39
|
+
stages.push(`${partLabel}: failed (${errorMessage})`);
|
|
41
40
|
return {
|
|
42
41
|
name: server['name'],
|
|
43
42
|
success: false,
|
|
@@ -49,47 +48,44 @@ async function sendToServer(server, messages, topic, visitorIp, attachment, file
|
|
|
49
48
|
partIndex += 1;
|
|
50
49
|
}
|
|
51
50
|
if (attachment !== undefined) {
|
|
52
|
-
const
|
|
51
|
+
const attachmentRequestHeaders = {
|
|
53
52
|
Authorization: `Bearer ${server['token']}`,
|
|
54
53
|
...attachmentHeaders,
|
|
55
54
|
};
|
|
56
55
|
if (visitorIp !== undefined) {
|
|
57
|
-
Reflect.set(
|
|
56
|
+
Reflect.set(attachmentRequestHeaders, 'X-Forwarded-For', visitorIp);
|
|
58
57
|
}
|
|
59
58
|
if (filename !== undefined) {
|
|
60
|
-
Reflect.set(
|
|
59
|
+
Reflect.set(attachmentRequestHeaders, 'X-Filename', filename);
|
|
61
60
|
}
|
|
62
61
|
try {
|
|
63
|
-
const
|
|
62
|
+
const attachmentResponse = await fetch(url, {
|
|
64
63
|
method: 'PUT',
|
|
65
|
-
headers,
|
|
64
|
+
headers: attachmentRequestHeaders,
|
|
66
65
|
body: attachment,
|
|
67
66
|
});
|
|
68
|
-
lastStatus =
|
|
69
|
-
if (
|
|
70
|
-
|
|
71
|
-
stages.push(stage);
|
|
67
|
+
lastStatus = attachmentResponse['status'];
|
|
68
|
+
if (attachmentResponse['ok'] === false) {
|
|
69
|
+
stages.push(`stage-2: failed (HTTP ${String(attachmentResponse['status'])})`);
|
|
72
70
|
return {
|
|
73
71
|
name: server['name'],
|
|
74
72
|
success: false,
|
|
75
|
-
status:
|
|
73
|
+
status: attachmentResponse['status'],
|
|
76
74
|
stages,
|
|
77
|
-
error: `HTTP ${String(
|
|
75
|
+
error: `HTTP ${String(attachmentResponse['status'])}`,
|
|
78
76
|
};
|
|
79
77
|
}
|
|
80
|
-
|
|
81
|
-
stages.push(okStage);
|
|
78
|
+
stages.push('stage-2: ok');
|
|
82
79
|
}
|
|
83
80
|
catch (err) {
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
stages.push(stage);
|
|
81
|
+
const attachmentErrorMessage = (err instanceof Error) ? err.message : 'Unknown error';
|
|
82
|
+
stages.push(`stage-2: failed (${attachmentErrorMessage})`);
|
|
87
83
|
return {
|
|
88
84
|
name: server['name'],
|
|
89
85
|
success: false,
|
|
90
86
|
status: 0,
|
|
91
87
|
stages,
|
|
92
|
-
error:
|
|
88
|
+
error: attachmentErrorMessage,
|
|
93
89
|
};
|
|
94
90
|
}
|
|
95
91
|
}
|
|
@@ -121,34 +117,77 @@ async function send(options) {
|
|
|
121
117
|
primaryServer,
|
|
122
118
|
...servers.filter((server) => server['name'] !== primaryServer['name']),
|
|
123
119
|
];
|
|
124
|
-
const
|
|
120
|
+
const fallbackResults = [];
|
|
125
121
|
for (const server of orderedServers) {
|
|
126
122
|
const isFallback = server['name'] !== primaryServer['name'];
|
|
127
123
|
let messagesToSend = messages;
|
|
128
124
|
if (isFallback === true && messages.length > 0) {
|
|
129
125
|
const fallbackNote = `\u26A0\uFE0F Primary server "${primaryServer['name']}" was unreachable. This notification was delivered via "${server['name']}".\n\n`;
|
|
130
|
-
const
|
|
131
|
-
const
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
126
|
+
const combinedBody = `${fallbackNote}${messages[0]['body']}`;
|
|
127
|
+
const encoder = new TextEncoder();
|
|
128
|
+
const combinedByteLength = encoder.encode(combinedBody).length;
|
|
129
|
+
if (combinedByteLength > MAX_BYTES) {
|
|
130
|
+
let currentChunk = '';
|
|
131
|
+
let currentBytes = 0;
|
|
132
|
+
for (const char of combinedBody) {
|
|
133
|
+
const charBytes = encoder.encode(char).length;
|
|
134
|
+
if (currentBytes + charBytes > MAX_BYTES) {
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
currentChunk += char;
|
|
138
|
+
currentBytes += charBytes;
|
|
139
|
+
}
|
|
140
|
+
const overflowChunk = combinedBody.slice(currentChunk.length);
|
|
141
|
+
const baseTitle = (messages[0]['headers']['X-Title'] ?? 'Message').replace(new RegExp(REGEX_TITLE_PART_SUFFIX), '');
|
|
142
|
+
const newTotal = messages.length + 1;
|
|
143
|
+
const renumberedMessages = [
|
|
144
|
+
{
|
|
145
|
+
body: currentChunk,
|
|
146
|
+
headers: {
|
|
147
|
+
...messages[0]['headers'],
|
|
148
|
+
'X-Title': `${baseTitle} (1/${newTotal})`,
|
|
149
|
+
},
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
body: overflowChunk,
|
|
153
|
+
headers: {
|
|
154
|
+
...messages[0]['headers'],
|
|
155
|
+
'X-Title': `${baseTitle} (2/${newTotal})`,
|
|
156
|
+
},
|
|
157
|
+
},
|
|
158
|
+
...messages.slice(1).map((msg, index) => ({
|
|
159
|
+
body: msg['body'],
|
|
160
|
+
headers: {
|
|
161
|
+
...msg['headers'],
|
|
162
|
+
'X-Title': `${baseTitle} (${index + 3}/${newTotal})`,
|
|
163
|
+
},
|
|
164
|
+
})),
|
|
165
|
+
];
|
|
166
|
+
messagesToSend = renumberedMessages;
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
messagesToSend = [
|
|
170
|
+
{
|
|
171
|
+
body: combinedBody,
|
|
172
|
+
headers: messages[0]['headers'],
|
|
173
|
+
},
|
|
174
|
+
...messages.slice(1),
|
|
175
|
+
];
|
|
176
|
+
}
|
|
138
177
|
}
|
|
139
|
-
const
|
|
140
|
-
|
|
141
|
-
if (
|
|
178
|
+
const serverResult = await sendToServer(server, messagesToSend, topic, visitorIp, attachment, filename, attachmentHeaders);
|
|
179
|
+
fallbackResults.push(serverResult);
|
|
180
|
+
if (serverResult['success'] === true) {
|
|
142
181
|
const fallbackDeliveryNote = `Delivered via fallback server "${server['name']}"`;
|
|
143
182
|
return {
|
|
144
|
-
results,
|
|
183
|
+
results: fallbackResults,
|
|
145
184
|
fallbackUsed: isFallback,
|
|
146
185
|
fallbackNote: (isFallback === true) ? fallbackDeliveryNote : undefined,
|
|
147
186
|
};
|
|
148
187
|
}
|
|
149
188
|
}
|
|
150
189
|
return {
|
|
151
|
-
results,
|
|
190
|
+
results: fallbackResults,
|
|
152
191
|
fallbackUsed: false,
|
|
153
192
|
};
|
|
154
193
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../../../src/worker/pipeline/send.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../../../src/worker/pipeline/send.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
declare function split(body:
|
|
1
|
+
import type { Worker_Pipeline_Split_Returns, Worker_Pipeline_Split_Split_Body, Worker_Pipeline_Split_Split_Headers } from '../../types/worker/pipeline/split.d.ts';
|
|
2
|
+
declare function split(body: Worker_Pipeline_Split_Split_Body, headers: Worker_Pipeline_Split_Split_Headers): Worker_Pipeline_Split_Returns;
|
|
3
3
|
export { split, };
|
|
4
4
|
//# sourceMappingURL=split.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"split.d.ts","sourceRoot":"","sources":["../../../../src/worker/pipeline/split.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"split.d.ts","sourceRoot":"","sources":["../../../../src/worker/pipeline/split.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6BAA6B,EAE7B,gCAAgC,EAMhC,mCAAmC,EAGpC,MAAM,wCAAwC,CAAC;AAoBhD,iBAAS,KAAK,CAAC,IAAI,EAAE,gCAAgC,EAAE,OAAO,EAAE,mCAAmC,GAAG,6BAA6B,CA6ClI;AAED,OAAO,EACL,KAAK,GACN,CAAC"}
|
|
@@ -3,7 +3,8 @@ function split(body, headers) {
|
|
|
3
3
|
const encoder = new TextEncoder();
|
|
4
4
|
if (encoder.encode(body).length <= MAX_BYTES) {
|
|
5
5
|
return [{
|
|
6
|
-
body,
|
|
6
|
+
body,
|
|
7
|
+
headers,
|
|
7
8
|
}];
|
|
8
9
|
}
|
|
9
10
|
const chunks = [];
|
|
@@ -32,7 +33,8 @@ function split(body, headers) {
|
|
|
32
33
|
'X-Title': `${baseTitle} (${index + 1}/${total})`,
|
|
33
34
|
};
|
|
34
35
|
return {
|
|
35
|
-
body: chunkBody,
|
|
36
|
+
body: chunkBody,
|
|
37
|
+
headers: partHeaders,
|
|
36
38
|
};
|
|
37
39
|
});
|
|
38
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"split.js","sourceRoot":"","sources":["../../../../src/worker/pipeline/split.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"split.js","sourceRoot":"","sources":["../../../../src/worker/pipeline/split.ts"],"names":[],"mappings":"AAsBA,MAAM,SAAS,GAAG,IAAI,CAAC;AAUvB,SAAS,KAAK,CAAC,IAAsC,EAAE,OAA4C;IACjG,MAAM,OAAO,GAAwC,IAAI,WAAW,EAAE,CAAC;IAEvE,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC7C,OAAO,CAAC;gBACN,IAAI;gBACJ,OAAO;aACR,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAuC,EAAE,CAAC;IACtD,IAAI,YAAY,GAA6C,EAAE,CAAC;IAChE,IAAI,YAAY,GAA6C,CAAC,CAAC;IAE/D,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,SAAS,GAA0C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QAErF,IAAI,YAAY,GAAG,SAAS,GAAG,SAAS,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1B,YAAY,GAAG,IAAI,CAAC;YACpB,YAAY,GAAG,SAAS,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,YAAY,IAAI,IAAI,CAAC;YACrB,YAAY,IAAI,SAAS,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,KAAK,GAAsC,MAAM,CAAC,MAAM,CAAC;IAC/D,MAAM,SAAS,GAA0C,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;IAEzF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;QACrC,MAAM,WAAW,GAA4C;YAC3D,GAAG,OAAO;YACV,SAAS,EAAE,GAAG,SAAS,KAAK,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG;SAClD,CAAC;QAEF,OAAO;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,WAAW;SACrB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EACL,KAAK,GACN,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ntfy-reverse-proxy",
|
|
3
|
-
"version": "2.0
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "Notification gateway on Cloudflare Workers that routes webhooks and emails to ntfy with automatic server failover",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ntfy",
|
|
@@ -64,6 +64,7 @@
|
|
|
64
64
|
"check:lint": "eslint ./ --max-warnings=0",
|
|
65
65
|
"check:types-cli": "nova utility type-check --project tsconfig.cli.json",
|
|
66
66
|
"check:types-worker": "nova utility type-check --project tsconfig.worker.json",
|
|
67
|
+
"check:types-config": "nova utility type-check --project tsconfig.config.json",
|
|
67
68
|
"check:types-tests": "nova utility type-check --project tsconfig.tests.json",
|
|
68
69
|
"check:test": "vitest run",
|
|
69
70
|
"deploy": "nova utility run-scripts --sequential 'deploy:*'",
|
|
@@ -76,16 +77,16 @@
|
|
|
76
77
|
"node": "^22 || ^24"
|
|
77
78
|
},
|
|
78
79
|
"dependencies": {
|
|
79
|
-
"@cbnventures/nova": "0.
|
|
80
|
+
"@cbnventures/nova": "0.24.0",
|
|
80
81
|
"chalk": "5.6.2",
|
|
81
82
|
"commander": "14.0.3",
|
|
82
83
|
"prompts": "2.4.2",
|
|
83
|
-
"wrangler": "4.
|
|
84
|
+
"wrangler": "4.123.0",
|
|
84
85
|
"zod": "4.4.3"
|
|
85
86
|
},
|
|
86
87
|
"devDependencies": {
|
|
87
|
-
"@cloudflare/vitest-pool-workers": "0.
|
|
88
|
-
"@cloudflare/workers-types": "4.
|
|
88
|
+
"@cloudflare/vitest-pool-workers": "0.21.3",
|
|
89
|
+
"@cloudflare/workers-types": "4.20260702.1",
|
|
89
90
|
"@types/node": "25.6.0",
|
|
90
91
|
"@types/prompts": "2.4.9",
|
|
91
92
|
"eslint": "9.39.3",
|
|
@@ -93,6 +94,6 @@
|
|
|
93
94
|
"shx": "0.4.0",
|
|
94
95
|
"tsx": "4.21.0",
|
|
95
96
|
"typescript": "5.9.3",
|
|
96
|
-
"vitest": "4.1.
|
|
97
|
+
"vitest": "4.1.3"
|
|
97
98
|
}
|
|
98
99
|
}
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tests - Type Declarations.
|
|
3
|
-
*
|
|
4
|
-
* @since 0.15.0
|
|
5
|
-
*/
|
|
6
|
-
export type TestsTypeDeclarationsTestConfigStandaloneTypeFiles = string[];
|
|
7
|
-
|
|
8
|
-
export type TestsTypeDeclarationsTestConfigTypeRoots = string[];
|
|
9
|
-
|
|
10
|
-
export type TestsTypeDeclarationsTestConfig = {
|
|
11
|
-
standaloneTypeFiles: TestsTypeDeclarationsTestConfigStandaloneTypeFiles;
|
|
12
|
-
typeRoots: TestsTypeDeclarationsTestConfigTypeRoots;
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
export type TestsTypeDeclarationsFiles = string[];
|
|
16
|
-
|
|
17
|
-
export type TestsTypeDeclarationsCurrentDirectory = string;
|
|
18
|
-
|
|
19
|
-
export type TestsTypeDeclarationsRelativePath = string;
|
|
20
|
-
|
|
21
|
-
export type TestsTypeDeclarationsContent = string;
|
|
22
|
-
|
|
23
|
-
export type TestsTypeDeclarationsLines = string[];
|
|
24
|
-
|
|
25
|
-
export type TestsTypeDeclarationsClassPrefix = string;
|
|
26
|
-
|
|
27
|
-
export type TestsTypeDeclarationsImportedNames = Set<string>;
|
|
28
|
-
|
|
29
|
-
export type TestsTypeDeclarationsSections = TestsTypeDeclarationsSection[];
|
|
30
|
-
|
|
31
|
-
export type TestsTypeDeclarationsSectionPrefixes = string[];
|
|
32
|
-
|
|
33
|
-
export type TestsTypeDeclarationsViolations = string[];
|
|
34
|
-
|
|
35
|
-
export type TestsTypeDeclarationsCurrentSectionPrefix = string;
|
|
36
|
-
|
|
37
|
-
export type TestsTypeDeclarationsReferencedTypes = string[];
|
|
38
|
-
|
|
39
|
-
export type TestsTypeDeclarationsIsSameSection = boolean;
|
|
40
|
-
|
|
41
|
-
export type TestsTypeDeclarationsIsImported = boolean;
|
|
42
|
-
|
|
43
|
-
export type TestsTypeDeclarationsIsOtherSection = boolean;
|
|
44
|
-
|
|
45
|
-
export type TestsTypeDeclarationsViolation = string;
|
|
46
|
-
|
|
47
|
-
export type TestsTypeDeclarationsSectionIndex = number;
|
|
48
|
-
|
|
49
|
-
export type TestsTypeDeclarationsSectionPrefix = string;
|
|
50
|
-
|
|
51
|
-
export type TestsTypeDeclarationsSection = {
|
|
52
|
-
prefix: TestsTypeDeclarationsSectionPrefix;
|
|
53
|
-
typeLines: TestsTypeDeclarationsSectionTypeLines;
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
export type TestsTypeDeclarationsCompareResult = number;
|
|
57
|
-
|
|
58
|
-
export type TestsTypeDeclarationsSpecifierBuffer = string[];
|
|
59
|
-
|
|
60
|
-
export type TestsTypeDeclarationsInImportBlock = boolean;
|
|
61
|
-
|
|
62
|
-
export type TestsTypeDeclarationsMatch = RegExpMatchArray | null;
|
|
63
|
-
|
|
64
|
-
export type TestsTypeDeclarationsInlineMatchCapture = string;
|
|
65
|
-
|
|
66
|
-
export type TestsTypeDeclarationsSpecifiers = string[];
|
|
67
|
-
|
|
68
|
-
export type TestsTypeDeclarationsPreviousSpecifier = string | undefined;
|
|
69
|
-
|
|
70
|
-
export type TestsTypeDeclarationsCurrentSpecifier = string | undefined;
|
|
71
|
-
|
|
72
|
-
export type TestsTypeDeclarationsTrimmed = string;
|
|
73
|
-
|
|
74
|
-
export type TestsTypeDeclarationsSourcePath = string;
|
|
75
|
-
|
|
76
|
-
export type TestsTypeDeclarationsSourceExists = boolean;
|
|
77
|
-
|
|
78
|
-
export type TestsTypeDeclarationsSourcePathAlternative = string;
|
|
79
|
-
|
|
80
|
-
export type TestsTypeDeclarationsTypeNames = string[];
|
|
81
|
-
|
|
82
|
-
export type TestsTypeDeclarationsTypePositionName = string;
|
|
83
|
-
|
|
84
|
-
export type TestsTypeDeclarationsTypePositionSourceLine = number;
|
|
85
|
-
|
|
86
|
-
export type TestsTypeDeclarationsTypePositions = TestsTypeDeclarationsTypePosition[];
|
|
87
|
-
|
|
88
|
-
export type TestsTypeDeclarationsSourceLineIndex = number;
|
|
89
|
-
|
|
90
|
-
export type TestsTypeDeclarationsLineIndex = number;
|
|
91
|
-
|
|
92
|
-
export type TestsTypeDeclarationsTypePosition = {
|
|
93
|
-
name: TestsTypeDeclarationsTypePositionName;
|
|
94
|
-
sourceLine: TestsTypeDeclarationsTypePositionSourceLine;
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
export type TestsTypeDeclarationsDefinedTypes = Set<string>;
|
|
98
|
-
|
|
99
|
-
export type TestsTypeDeclarationsLine = string;
|
|
100
|
-
|
|
101
|
-
export type TestsTypeDeclarationsObjectTypeName = string;
|
|
102
|
-
|
|
103
|
-
export type TestsTypeDeclarationsObjectTypeLineIndex = number;
|
|
104
|
-
|
|
105
|
-
export type TestsTypeDeclarationsObjectPropertyLineIndex = number;
|
|
106
|
-
|
|
107
|
-
export type TestsTypeDeclarationsObjectProperty = {
|
|
108
|
-
key: TestsTypeDeclarationsPropertyKey;
|
|
109
|
-
valueType: TestsTypeDeclarationsPropertyValueType;
|
|
110
|
-
typeLineIndex: TestsTypeDeclarationsObjectPropertyLineIndex;
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
export type TestsTypeDeclarationsObjectType = {
|
|
114
|
-
name: TestsTypeDeclarationsObjectTypeName;
|
|
115
|
-
lineIndex: TestsTypeDeclarationsObjectTypeLineIndex;
|
|
116
|
-
properties: TestsTypeDeclarationsObjectProperties;
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
export type TestsTypeDeclarationsObjectTypes = TestsTypeDeclarationsObjectType[];
|
|
120
|
-
|
|
121
|
-
export type TestsTypeDeclarationsPropertyExpectedPrefix = string;
|
|
122
|
-
|
|
123
|
-
export type TestsTypeDeclarationsDiscoverTypeFilesReturns = Promise<TestsTypeDeclarationsFiles>;
|
|
124
|
-
|
|
125
|
-
export type TestsTypeDeclarationsPatterns = string[];
|
|
126
|
-
|
|
127
|
-
export type TestsTypeDeclarationsMatched = string[];
|
|
128
|
-
|
|
129
|
-
export type TestsTypeDeclarationsRelativeCleaned = string;
|
|
130
|
-
|
|
131
|
-
export type TestsTypeDeclarationsSegments = string[];
|
|
132
|
-
|
|
133
|
-
export type TestsTypeDeclarationsCurrentSection = TestsTypeDeclarationsSection | undefined;
|
|
134
|
-
|
|
135
|
-
export type TestsTypeDeclarationsSectionComment = RegExpMatchArray | null;
|
|
136
|
-
|
|
137
|
-
export type TestsTypeDeclarationsRawPrefix = string;
|
|
138
|
-
|
|
139
|
-
export type TestsTypeDeclarationsMethodName = string;
|
|
140
|
-
|
|
141
|
-
export type TestsTypeDeclarationsTypeName = string;
|
|
142
|
-
|
|
143
|
-
export type TestsTypeDeclarationsRightSide = string;
|
|
144
|
-
|
|
145
|
-
export type TestsTypeDeclarationsTypePattern = RegExp;
|
|
146
|
-
|
|
147
|
-
export type TestsTypeDeclarationsTypeMatch = RegExpExecArray | null;
|
|
148
|
-
|
|
149
|
-
export type TestsTypeDeclarationsReferencedType = string;
|
|
150
|
-
|
|
151
|
-
export type TestsTypeDeclarationsFileExistsReturns = Promise<boolean>;
|
|
152
|
-
|
|
153
|
-
export type TestsTypeDeclarationsPackageRoot = string;
|
|
154
|
-
|
|
155
|
-
export type TestsTypeDeclarationsCurrentFilePath = string;
|
|
156
|
-
|
|
157
|
-
export type TestsTypeDeclarationsCurrentFileDirectory = string;
|
|
158
|
-
|
|
159
|
-
export type TestsTypeDeclarationsSectionTypeLines = string[];
|
|
160
|
-
|
|
161
|
-
export type TestsTypeDeclarationsTypeNamePattern = RegExp;
|
|
162
|
-
|
|
163
|
-
export type TestsTypeDeclarationsTypeLineMap = Map<string, number>;
|
|
164
|
-
|
|
165
|
-
export type TestsTypeDeclarationsObjectProperties = TestsTypeDeclarationsObjectProperty[];
|
|
166
|
-
|
|
167
|
-
export type TestsTypeDeclarationsPropertyKey = string;
|
|
168
|
-
|
|
169
|
-
export type TestsTypeDeclarationsPropertyValueType = string;
|
|
170
|
-
|
|
171
|
-
export type TestsTypeDeclarationsExpectedPrefix = string;
|
|
172
|
-
|
|
173
|
-
export type TestsTypeDeclarationsObjectPropertyName = string;
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Worker - Pipeline - Shared.
|
|
3
|
-
*
|
|
4
|
-
* @since 2.0.0
|
|
5
|
-
*/
|
|
6
|
-
export type WorkerPipelineSharedComponentDiff = WorkerPipelineSharedComponentDiffEntry[];
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Worker - Pipeline - Shared.
|
|
10
|
-
*
|
|
11
|
-
* @since 2.0.0
|
|
12
|
-
*/
|
|
13
|
-
export type WorkerPipelineSharedComponentDiffEntryName = string;
|
|
14
|
-
|
|
15
|
-
export type WorkerPipelineSharedComponentDiffEntryNewStatus = string;
|
|
16
|
-
|
|
17
|
-
export type WorkerPipelineSharedComponentDiffEntryOldStatus = string | undefined;
|
|
18
|
-
|
|
19
|
-
export type WorkerPipelineSharedComponentDiffEntryChanged = boolean;
|
|
20
|
-
|
|
21
|
-
export type WorkerPipelineSharedComponentDiffEntry = {
|
|
22
|
-
name: WorkerPipelineSharedComponentDiffEntryName;
|
|
23
|
-
oldStatus: WorkerPipelineSharedComponentDiffEntryOldStatus;
|
|
24
|
-
newStatus: WorkerPipelineSharedComponentDiffEntryNewStatus;
|
|
25
|
-
changed: WorkerPipelineSharedComponentDiffEntryChanged;
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Worker - Pipeline - Shared.
|
|
30
|
-
*
|
|
31
|
-
* @since 2.0.0
|
|
32
|
-
*/
|
|
33
|
-
export type WorkerPipelineSharedComponentsMap = Record<string, WorkerPipelineSharedComponentState>;
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Worker - Pipeline - Shared.
|
|
37
|
-
*
|
|
38
|
-
* @since 2.0.0
|
|
39
|
-
*/
|
|
40
|
-
export type WorkerPipelineSharedComponentStateName = string;
|
|
41
|
-
|
|
42
|
-
export type WorkerPipelineSharedComponentStateStatus = string;
|
|
43
|
-
|
|
44
|
-
export type WorkerPipelineSharedComponentState = {
|
|
45
|
-
name: WorkerPipelineSharedComponentStateName;
|
|
46
|
-
status: WorkerPipelineSharedComponentStateStatus;
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Worker - Pipeline - Shared.
|
|
51
|
-
*
|
|
52
|
-
* @since 2.0.0
|
|
53
|
-
*/
|
|
54
|
-
export type WorkerPipelineSharedStoredStateIncidentId = string | undefined;
|
|
55
|
-
|
|
56
|
-
export type WorkerPipelineSharedStoredStateIncidentName = string | undefined;
|
|
57
|
-
|
|
58
|
-
export type WorkerPipelineSharedStoredStateStatus = string | undefined;
|
|
59
|
-
|
|
60
|
-
export type WorkerPipelineSharedStoredStateImpact = string | undefined;
|
|
61
|
-
|
|
62
|
-
export type WorkerPipelineSharedStoredStateBody = string | undefined;
|
|
63
|
-
|
|
64
|
-
export type WorkerPipelineSharedStoredStateShortlink = string | undefined;
|
|
65
|
-
|
|
66
|
-
export type WorkerPipelineSharedStoredStateServiceName = string;
|
|
67
|
-
|
|
68
|
-
export type WorkerPipelineSharedStoredStateUnsubscribeUrl = string | undefined;
|
|
69
|
-
|
|
70
|
-
export type WorkerPipelineSharedStoredStateUpdateId = string | undefined;
|
|
71
|
-
|
|
72
|
-
export type WorkerPipelineSharedStoredStateComponents = WorkerPipelineSharedComponentsMap;
|
|
73
|
-
|
|
74
|
-
export type WorkerPipelineSharedStoredState = {
|
|
75
|
-
incidentId: WorkerPipelineSharedStoredStateIncidentId;
|
|
76
|
-
incidentName: WorkerPipelineSharedStoredStateIncidentName;
|
|
77
|
-
status: WorkerPipelineSharedStoredStateStatus;
|
|
78
|
-
impact: WorkerPipelineSharedStoredStateImpact;
|
|
79
|
-
body: WorkerPipelineSharedStoredStateBody;
|
|
80
|
-
shortlink: WorkerPipelineSharedStoredStateShortlink;
|
|
81
|
-
serviceName: WorkerPipelineSharedStoredStateServiceName;
|
|
82
|
-
unsubscribeUrl: WorkerPipelineSharedStoredStateUnsubscribeUrl;
|
|
83
|
-
updateId: WorkerPipelineSharedStoredStateUpdateId;
|
|
84
|
-
components: WorkerPipelineSharedStoredStateComponents;
|
|
85
|
-
};
|