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.
Files changed (199) hide show
  1. package/README.md +48 -0
  2. package/build/src/cli/commands/config-io.d.ts +5 -0
  3. package/build/src/cli/commands/config-io.d.ts.map +1 -0
  4. package/build/src/cli/commands/config-io.js +19 -0
  5. package/build/src/cli/commands/config-io.js.map +1 -0
  6. package/build/src/cli/commands/context.d.ts +9 -0
  7. package/build/src/cli/commands/context.d.ts.map +1 -0
  8. package/build/src/cli/commands/context.js +108 -0
  9. package/build/src/cli/commands/context.js.map +1 -0
  10. package/build/src/cli/commands/deploy.d.ts +4 -0
  11. package/build/src/cli/commands/deploy.d.ts.map +1 -0
  12. package/build/src/cli/commands/deploy.js +496 -0
  13. package/build/src/cli/commands/deploy.js.map +1 -0
  14. package/build/src/cli/commands/generate.d.ts +4 -0
  15. package/build/src/cli/commands/generate.d.ts.map +1 -0
  16. package/build/src/cli/commands/generate.js +68 -0
  17. package/build/src/cli/commands/generate.js.map +1 -0
  18. package/build/src/cli/commands/server.d.ts +7 -0
  19. package/build/src/cli/commands/server.d.ts.map +1 -0
  20. package/build/src/cli/commands/server.js +43 -0
  21. package/build/src/cli/commands/server.js.map +1 -0
  22. package/build/src/cli/commands/settings.d.ts +5 -0
  23. package/build/src/cli/commands/settings.d.ts.map +1 -0
  24. package/build/src/cli/commands/settings.js +16 -0
  25. package/build/src/cli/commands/settings.js.map +1 -0
  26. package/build/src/cli/commands/validate.d.ts +4 -0
  27. package/build/src/cli/commands/validate.d.ts.map +1 -0
  28. package/build/src/cli/commands/validate.js +45 -0
  29. package/build/src/cli/commands/validate.js.map +1 -0
  30. package/build/src/cli/index.d.ts +5 -0
  31. package/build/src/cli/index.d.ts.map +1 -0
  32. package/build/src/cli/index.js +118 -0
  33. package/build/src/cli/index.js.map +1 -0
  34. package/build/src/cli/menu/interactive.d.ts +4 -0
  35. package/build/src/cli/menu/interactive.d.ts.map +1 -0
  36. package/build/src/cli/menu/interactive.js +902 -0
  37. package/build/src/cli/menu/interactive.js.map +1 -0
  38. package/build/src/lib/item.d.ts +3 -0
  39. package/build/src/lib/item.d.ts.map +1 -0
  40. package/build/src/lib/item.js +3 -0
  41. package/build/src/lib/item.js.map +1 -0
  42. package/build/src/lib/regex.d.ts +30 -0
  43. package/build/src/lib/regex.d.ts.map +1 -0
  44. package/build/src/lib/regex.js +30 -0
  45. package/build/src/lib/regex.js.map +1 -0
  46. package/build/src/lib/schema.d.ts +167 -0
  47. package/build/src/lib/schema.d.ts.map +1 -0
  48. package/build/src/lib/schema.js +70 -0
  49. package/build/src/lib/schema.js.map +1 -0
  50. package/build/src/lib/utility.d.ts +4 -0
  51. package/build/src/lib/utility.d.ts.map +1 -0
  52. package/build/src/lib/utility.js +14 -0
  53. package/build/src/lib/utility.js.map +1 -0
  54. package/build/src/types/cli/commands/config-io.d.ts +38 -0
  55. package/build/src/types/cli/commands/context.d.ts +131 -0
  56. package/build/src/types/cli/commands/deploy.d.ts +622 -0
  57. package/build/src/types/cli/commands/generate.d.ts +51 -0
  58. package/build/src/types/cli/commands/server.d.ts +65 -0
  59. package/build/src/types/cli/commands/settings.d.ts +25 -0
  60. package/build/src/types/cli/commands/validate.d.ts +37 -0
  61. package/build/src/types/cli/index.d.ts +55 -0
  62. package/build/src/types/cli/menu/interactive.d.ts +381 -0
  63. package/build/src/types/fetch-response.d.ts +11 -0
  64. package/build/src/types/lib/schema.d.ts +134 -0
  65. package/build/src/types/lib/utility.d.ts +8 -0
  66. package/build/src/types/tests/cli/commands/context.test.d.ts +57 -0
  67. package/build/src/types/tests/cli/commands/generate.test.d.ts +12 -0
  68. package/build/src/types/tests/cli/commands/server.test.d.ts +45 -0
  69. package/build/src/types/tests/cli/commands/settings.test.d.ts +40 -0
  70. package/build/src/types/tests/cli/commands/validate.test.d.ts +19 -0
  71. package/build/src/types/tests/cli/menu/interactive.test.d.ts +6 -0
  72. package/build/src/types/tests/lib/schema.test.d.ts +10 -0
  73. package/build/src/types/tests/type-declarations.test.d.ts +173 -0
  74. package/build/src/types/tests/worker/index.test.d.ts +20 -0
  75. package/build/src/types/tests/worker/interpreters/ntfy-json.test.d.ts +19 -0
  76. package/build/src/types/tests/worker/interpreters/pfsense.test.d.ts +10 -0
  77. package/build/src/types/tests/worker/interpreters/plain-text.test.d.ts +10 -0
  78. package/build/src/types/tests/worker/interpreters/seerr.test.d.ts +8 -0
  79. package/build/src/types/tests/worker/interpreters/statuspage.test.d.ts +58 -0
  80. package/build/src/types/tests/worker/interpreters/synology.test.d.ts +8 -0
  81. package/build/src/types/tests/worker/interpreters/unifi.test.d.ts +8 -0
  82. package/build/src/types/tests/worker/landing/page.test.d.ts +55 -0
  83. package/build/src/types/tests/worker/pipeline/accumulate.test.d.ts +28 -0
  84. package/build/src/types/tests/worker/pipeline/authenticate.test.d.ts +9 -0
  85. package/build/src/types/tests/worker/pipeline/email.test.d.ts +15 -0
  86. package/build/src/types/tests/worker/pipeline/format.test.d.ts +38 -0
  87. package/build/src/types/tests/worker/pipeline/interpret.test.d.ts +43 -0
  88. package/build/src/types/tests/worker/pipeline/parse.test.d.ts +17 -0
  89. package/build/src/types/tests/worker/pipeline/receive.test.d.ts +23 -0
  90. package/build/src/types/tests/worker/pipeline/respond.test.d.ts +20 -0
  91. package/build/src/types/tests/worker/pipeline/route.test.d.ts +80 -0
  92. package/build/src/types/tests/worker/pipeline/send.test.d.ts +37 -0
  93. package/build/src/types/tests/worker/pipeline/split.test.d.ts +17 -0
  94. package/build/src/types/worker/index.d.ts +232 -0
  95. package/build/src/types/worker/interpreters/ntfy-json.d.ts +28 -0
  96. package/build/src/types/worker/interpreters/pfsense.d.ts +97 -0
  97. package/build/src/types/worker/interpreters/plain-text.d.ts +24 -0
  98. package/build/src/types/worker/interpreters/seerr.d.ts +124 -0
  99. package/build/src/types/worker/interpreters/statuspage.d.ts +239 -0
  100. package/build/src/types/worker/interpreters/synology.d.ts +99 -0
  101. package/build/src/types/worker/interpreters/unifi.d.ts +111 -0
  102. package/build/src/types/worker/landing/page.d.ts +44 -0
  103. package/build/src/types/worker/pipeline/accumulate.d.ts +79 -0
  104. package/build/src/types/worker/pipeline/authenticate.d.ts +68 -0
  105. package/build/src/types/worker/pipeline/email.d.ts +108 -0
  106. package/build/src/types/worker/pipeline/format.d.ts +47 -0
  107. package/build/src/types/worker/pipeline/interpret.d.ts +63 -0
  108. package/build/src/types/worker/pipeline/parse.d.ts +39 -0
  109. package/build/src/types/worker/pipeline/receive.d.ts +64 -0
  110. package/build/src/types/worker/pipeline/respond.d.ts +113 -0
  111. package/build/src/types/worker/pipeline/route.d.ts +34 -0
  112. package/build/src/types/worker/pipeline/send.d.ts +143 -0
  113. package/build/src/types/worker/pipeline/shared.d.ts +85 -0
  114. package/build/src/types/worker/pipeline/split.d.ts +35 -0
  115. package/build/src/worker/handlers.d.ts +5 -0
  116. package/build/src/worker/handlers.d.ts.map +1 -0
  117. package/build/src/worker/handlers.js +360 -0
  118. package/build/src/worker/handlers.js.map +1 -0
  119. package/build/src/worker/index.d.ts +4 -0
  120. package/build/src/worker/index.d.ts.map +1 -0
  121. package/build/src/worker/index.js +52 -0
  122. package/build/src/worker/index.js.map +1 -0
  123. package/build/src/worker/interpreters/ntfy-json.d.ts +4 -0
  124. package/build/src/worker/interpreters/ntfy-json.d.ts.map +1 -0
  125. package/build/src/worker/interpreters/ntfy-json.js +49 -0
  126. package/build/src/worker/interpreters/ntfy-json.js.map +1 -0
  127. package/build/src/worker/interpreters/pfsense.d.ts +4 -0
  128. package/build/src/worker/interpreters/pfsense.d.ts.map +1 -0
  129. package/build/src/worker/interpreters/pfsense.js +150 -0
  130. package/build/src/worker/interpreters/pfsense.js.map +1 -0
  131. package/build/src/worker/interpreters/plain-text.d.ts +4 -0
  132. package/build/src/worker/interpreters/plain-text.d.ts.map +1 -0
  133. package/build/src/worker/interpreters/plain-text.js +18 -0
  134. package/build/src/worker/interpreters/plain-text.js.map +1 -0
  135. package/build/src/worker/interpreters/seerr.d.ts +4 -0
  136. package/build/src/worker/interpreters/seerr.d.ts.map +1 -0
  137. package/build/src/worker/interpreters/seerr.js +173 -0
  138. package/build/src/worker/interpreters/seerr.js.map +1 -0
  139. package/build/src/worker/interpreters/statuspage.d.ts +4 -0
  140. package/build/src/worker/interpreters/statuspage.d.ts.map +1 -0
  141. package/build/src/worker/interpreters/statuspage.js +266 -0
  142. package/build/src/worker/interpreters/statuspage.js.map +1 -0
  143. package/build/src/worker/interpreters/synology.d.ts +4 -0
  144. package/build/src/worker/interpreters/synology.d.ts.map +1 -0
  145. package/build/src/worker/interpreters/synology.js +177 -0
  146. package/build/src/worker/interpreters/synology.js.map +1 -0
  147. package/build/src/worker/interpreters/unifi.d.ts +4 -0
  148. package/build/src/worker/interpreters/unifi.d.ts.map +1 -0
  149. package/build/src/worker/interpreters/unifi.js +152 -0
  150. package/build/src/worker/interpreters/unifi.js.map +1 -0
  151. package/build/src/worker/landing/page.d.ts +4 -0
  152. package/build/src/worker/landing/page.d.ts.map +1 -0
  153. package/build/src/worker/landing/page.js +260 -0
  154. package/build/src/worker/landing/page.js.map +1 -0
  155. package/build/src/worker/pipeline/accumulate.d.ts +7 -0
  156. package/build/src/worker/pipeline/accumulate.d.ts.map +1 -0
  157. package/build/src/worker/pipeline/accumulate.js +53 -0
  158. package/build/src/worker/pipeline/accumulate.js.map +1 -0
  159. package/build/src/worker/pipeline/authenticate.d.ts +4 -0
  160. package/build/src/worker/pipeline/authenticate.d.ts.map +1 -0
  161. package/build/src/worker/pipeline/authenticate.js +53 -0
  162. package/build/src/worker/pipeline/authenticate.js.map +1 -0
  163. package/build/src/worker/pipeline/email.d.ts +4 -0
  164. package/build/src/worker/pipeline/email.d.ts.map +1 -0
  165. package/build/src/worker/pipeline/email.js +149 -0
  166. package/build/src/worker/pipeline/email.js.map +1 -0
  167. package/build/src/worker/pipeline/format.d.ts +5 -0
  168. package/build/src/worker/pipeline/format.d.ts.map +1 -0
  169. package/build/src/worker/pipeline/format.js +48 -0
  170. package/build/src/worker/pipeline/format.js.map +1 -0
  171. package/build/src/worker/pipeline/interpret.d.ts +4 -0
  172. package/build/src/worker/pipeline/interpret.d.ts.map +1 -0
  173. package/build/src/worker/pipeline/interpret.js +30 -0
  174. package/build/src/worker/pipeline/interpret.js.map +1 -0
  175. package/build/src/worker/pipeline/parse.d.ts +4 -0
  176. package/build/src/worker/pipeline/parse.d.ts.map +1 -0
  177. package/build/src/worker/pipeline/parse.js +59 -0
  178. package/build/src/worker/pipeline/parse.js.map +1 -0
  179. package/build/src/worker/pipeline/receive.d.ts +4 -0
  180. package/build/src/worker/pipeline/receive.d.ts.map +1 -0
  181. package/build/src/worker/pipeline/receive.js +52 -0
  182. package/build/src/worker/pipeline/receive.js.map +1 -0
  183. package/build/src/worker/pipeline/respond.d.ts +4 -0
  184. package/build/src/worker/pipeline/respond.d.ts.map +1 -0
  185. package/build/src/worker/pipeline/respond.js +48 -0
  186. package/build/src/worker/pipeline/respond.js.map +1 -0
  187. package/build/src/worker/pipeline/route.d.ts +5 -0
  188. package/build/src/worker/pipeline/route.d.ts.map +1 -0
  189. package/build/src/worker/pipeline/route.js +23 -0
  190. package/build/src/worker/pipeline/route.js.map +1 -0
  191. package/build/src/worker/pipeline/send.d.ts +4 -0
  192. package/build/src/worker/pipeline/send.d.ts.map +1 -0
  193. package/build/src/worker/pipeline/send.js +156 -0
  194. package/build/src/worker/pipeline/send.js.map +1 -0
  195. package/build/src/worker/pipeline/split.d.ts +4 -0
  196. package/build/src/worker/pipeline/split.d.ts.map +1 -0
  197. package/build/src/worker/pipeline/split.js +40 -0
  198. package/build/src/worker/pipeline/split.js.map +1 -0
  199. package/package.json +95 -2
@@ -0,0 +1,143 @@
1
+ import type { LibSchemaServerConfig } from '../../lib/schema.d.ts';
2
+ import type { WorkerPipelineSplitMessagePart } from './split.d.ts';
3
+
4
+ /**
5
+ * Worker - Pipeline - Send.
6
+ *
7
+ * @since 2.0.0
8
+ */
9
+ export type WorkerPipelineSendServerResultName = string;
10
+
11
+ export type WorkerPipelineSendServerResultSuccess = boolean;
12
+
13
+ export type WorkerPipelineSendServerResultStatus = number;
14
+
15
+ export type WorkerPipelineSendServerResultStages = string[];
16
+
17
+ export type WorkerPipelineSendServerResultError = string | undefined;
18
+
19
+ export type WorkerPipelineSendOptionsMessages = WorkerPipelineSplitMessagePart[];
20
+
21
+ export type WorkerPipelineSendOptionsServers = LibSchemaServerConfig[];
22
+
23
+ export type WorkerPipelineSendOptionsPrimaryServer = LibSchemaServerConfig;
24
+
25
+ export type WorkerPipelineSendOptionsTopic = string;
26
+
27
+ export type WorkerPipelineSendOptionsMode = 'send-once' | 'send-all';
28
+
29
+ export type WorkerPipelineSendOptionsVisitorIp = string | undefined;
30
+
31
+ export type WorkerPipelineSendOptionsAttachment = ArrayBuffer | undefined;
32
+
33
+ export type WorkerPipelineSendOptionsFilename = string | undefined;
34
+
35
+ export type WorkerPipelineSendOptionsAttachmentHeaders = Record<string, string> | undefined;
36
+
37
+ export type WorkerPipelineSendResultResults = WorkerPipelineSendServerResult[];
38
+
39
+ export type WorkerPipelineSendResultFallbackUsed = boolean;
40
+
41
+ export type WorkerPipelineSendResultFallbackNote = string | undefined;
42
+
43
+ export type WorkerPipelineSendResult = {
44
+ results: WorkerPipelineSendResultResults;
45
+ fallbackUsed: WorkerPipelineSendResultFallbackUsed;
46
+ fallbackNote?: WorkerPipelineSendResultFallbackNote;
47
+ };
48
+
49
+ export type WorkerPipelineSendMessage = WorkerPipelineSplitMessagePart;
50
+
51
+ export type WorkerPipelineSendToServerServer = LibSchemaServerConfig;
52
+
53
+ export type WorkerPipelineSendToServerMessages = WorkerPipelineSplitMessagePart[];
54
+
55
+ export type WorkerPipelineSendToServerTopic = string;
56
+
57
+ export type WorkerPipelineSendToServerVisitorIp = string | undefined;
58
+
59
+ export type WorkerPipelineSendToServerAttachment = ArrayBuffer | undefined;
60
+
61
+ export type WorkerPipelineSendToServerFilename = string | undefined;
62
+
63
+ export type WorkerPipelineSendToServerAttachmentHeaders = Record<string, string> | undefined;
64
+
65
+ export type WorkerPipelineSendToServerReturns = Promise<WorkerPipelineSendServerResult>;
66
+
67
+ export type WorkerPipelineSendStages = WorkerPipelineSendStage[];
68
+
69
+ export type WorkerPipelineSendUrl = string;
70
+
71
+ export type WorkerPipelineSendLastStatus = number;
72
+
73
+ export type WorkerPipelineSendTotalParts = number;
74
+
75
+ export type WorkerPipelineSendPartIndex = number;
76
+
77
+ export type WorkerPipelineSendPartLabel = string;
78
+
79
+ export type WorkerPipelineSendHeaders = Record<string, string>;
80
+
81
+ export type WorkerPipelineSendResponse = Response;
82
+
83
+ export type WorkerPipelineSendStage = string;
84
+
85
+ export type WorkerPipelineSendErrorMessage = string;
86
+
87
+ export type WorkerPipelineSendOptions = {
88
+ messages: WorkerPipelineSendOptionsMessages;
89
+ servers: WorkerPipelineSendOptionsServers;
90
+ primaryServer: WorkerPipelineSendOptionsPrimaryServer;
91
+ topic: WorkerPipelineSendOptionsTopic;
92
+ mode: WorkerPipelineSendOptionsMode;
93
+ visitorIp?: WorkerPipelineSendOptionsVisitorIp;
94
+ attachment?: WorkerPipelineSendOptionsAttachment;
95
+ filename?: WorkerPipelineSendOptionsFilename;
96
+ attachmentHeaders?: WorkerPipelineSendOptionsAttachmentHeaders;
97
+ };
98
+
99
+ export type WorkerPipelineSendReturns = Promise<WorkerPipelineSendResult>;
100
+
101
+ export type WorkerPipelineSendMessages = WorkerPipelineSendOptionsMessages;
102
+
103
+ export type WorkerPipelineSendServers = WorkerPipelineSendOptionsServers;
104
+
105
+ export type WorkerPipelineSendPrimaryServer = WorkerPipelineSendOptionsPrimaryServer;
106
+
107
+ export type WorkerPipelineSendTopic = WorkerPipelineSendOptionsTopic;
108
+
109
+ export type WorkerPipelineSendMode = WorkerPipelineSendOptionsMode;
110
+
111
+ export type WorkerPipelineSendVisitorIp = WorkerPipelineSendOptionsVisitorIp;
112
+
113
+ export type WorkerPipelineSendAttachment = WorkerPipelineSendOptionsAttachment;
114
+
115
+ export type WorkerPipelineSendFilename = WorkerPipelineSendOptionsFilename;
116
+
117
+ export type WorkerPipelineSendAttachmentHeaders = WorkerPipelineSendOptionsAttachmentHeaders;
118
+
119
+ export type WorkerPipelineSendSendAllPromises = Promise<WorkerPipelineSendServerResult>[];
120
+
121
+ export type WorkerPipelineSendSendAllResults = WorkerPipelineSendServerResult[];
122
+
123
+ export type WorkerPipelineSendOrderedServers = LibSchemaServerConfig[];
124
+
125
+ export type WorkerPipelineSendResultsList = WorkerPipelineSendServerResult[];
126
+
127
+ export type WorkerPipelineSendIsFallback = boolean;
128
+
129
+ export type WorkerPipelineSendMessagesToSend = WorkerPipelineSplitMessagePart[];
130
+
131
+ export type WorkerPipelineSendFallbackNote = string;
132
+
133
+ export type WorkerPipelineSendFirstMessage = WorkerPipelineSplitMessagePart;
134
+
135
+ export type WorkerPipelineSendModifiedMessages = WorkerPipelineSplitMessagePart[];
136
+
137
+ export type WorkerPipelineSendServerResult = {
138
+ name: WorkerPipelineSendServerResultName;
139
+ success: WorkerPipelineSendServerResultSuccess;
140
+ status: WorkerPipelineSendServerResultStatus;
141
+ stages: WorkerPipelineSendServerResultStages;
142
+ error?: WorkerPipelineSendServerResultError;
143
+ };
@@ -0,0 +1,85 @@
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
+ };
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Worker - Pipeline - Split.
3
+ *
4
+ * @since 2.0.0
5
+ */
6
+ export type WorkerPipelineSplitMessagePartBody = string;
7
+
8
+ export type WorkerPipelineSplitMessagePartHeaders = Record<string, string>;
9
+
10
+ export type WorkerPipelineSplitMessagePart = {
11
+ body: WorkerPipelineSplitMessagePartBody;
12
+ headers: WorkerPipelineSplitMessagePartHeaders;
13
+ };
14
+
15
+ export type WorkerPipelineSplitBody = string;
16
+
17
+ export type WorkerPipelineSplitHeaders = WorkerPipelineSplitMessagePartHeaders;
18
+
19
+ export type WorkerPipelineSplitReturns = WorkerPipelineSplitMessagePart[];
20
+
21
+ export type WorkerPipelineSplitEncoder = TextEncoder;
22
+
23
+ export type WorkerPipelineSplitChunks = string[];
24
+
25
+ export type WorkerPipelineSplitCurrentChunk = string;
26
+
27
+ export type WorkerPipelineSplitCurrentBytes = number;
28
+
29
+ export type WorkerPipelineSplitCharBytes = number;
30
+
31
+ export type WorkerPipelineSplitTotal = number;
32
+
33
+ export type WorkerPipelineSplitBaseTitle = string;
34
+
35
+ export type WorkerPipelineSplitPartHeaders = WorkerPipelineSplitMessagePartHeaders;
@@ -0,0 +1,5 @@
1
+ import type { WorkerHandleEmailConfig, WorkerHandleEmailFrom, WorkerHandleEmailKv, WorkerHandleEmailRawEmail, WorkerHandleEmailReturn, WorkerHandleRequestConfig, WorkerHandleRequestKv, WorkerHandleRequestRequest, WorkerHandleRequestReturn } from '../types/worker/index.d.ts';
2
+ declare function handleRequest(request: WorkerHandleRequestRequest, config: WorkerHandleRequestConfig, kv: WorkerHandleRequestKv): WorkerHandleRequestReturn;
3
+ declare function handleEmail(rawEmail: WorkerHandleEmailRawEmail, from: WorkerHandleEmailFrom, config: WorkerHandleEmailConfig, kv: WorkerHandleEmailKv): WorkerHandleEmailReturn;
4
+ export { handleEmail, handleRequest, };
5
+ //# sourceMappingURL=handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/worker/handlers.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EA6BV,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,qBAAqB,EACrB,0BAA0B,EAC1B,yBAAyB,EAiB1B,MAAM,4BAA4B,CAAC;AAUpC,iBAAe,aAAa,CAAC,OAAO,EAAE,0BAA0B,EAAE,MAAM,EAAE,yBAAyB,EAAE,EAAE,EAAE,qBAAqB,GAAG,yBAAyB,CAkQzJ;AAUD,iBAAe,WAAW,CAAC,QAAQ,EAAE,yBAAyB,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,uBAAuB,EAAE,EAAE,EAAE,mBAAmB,GAAG,uBAAuB,CA8K9K;AAED,OAAO,EACL,WAAW,EACX,aAAa,GACd,CAAC"}
@@ -0,0 +1,360 @@
1
+ import { landingPage } from './landing/page.js';
2
+ import { authenticate } from './pipeline/authenticate.js';
3
+ import { parseEmail } from './pipeline/email.js';
4
+ import { format } from './pipeline/format.js';
5
+ import { interpret } from './pipeline/interpret.js';
6
+ import { parse } from './pipeline/parse.js';
7
+ import { receive } from './pipeline/receive.js';
8
+ import { respond } from './pipeline/respond.js';
9
+ import { route } from './pipeline/route.js';
10
+ import { send } from './pipeline/send.js';
11
+ import { split } from './pipeline/split.js';
12
+ async function handleRequest(request, config, kv) {
13
+ try {
14
+ const received = await receive(request, config['settings']['base_domain']);
15
+ if (received['redirect'] !== undefined) {
16
+ return Response.redirect(received['redirect'], 301);
17
+ }
18
+ if (received['error'] !== undefined) {
19
+ return new Response(JSON.stringify({
20
+ status: 'error', message: received['error'],
21
+ }, null, 2), {
22
+ status: 405,
23
+ headers: { 'Content-Type': 'application/json' },
24
+ });
25
+ }
26
+ if (received['isGet'] === true) {
27
+ return landingPage(config);
28
+ }
29
+ const subdomain = received['hostname'].split('.')[0] ?? '';
30
+ const routed = route('http', subdomain, config);
31
+ if (routed['error'] !== undefined
32
+ || routed['context'] === undefined
33
+ || routed['resolvedServers'] === undefined
34
+ || routed['primaryServer'] === undefined) {
35
+ return new Response(JSON.stringify({
36
+ status: 'error', message: routed['error'] ?? 'No context found',
37
+ }, null, 2), {
38
+ status: 404,
39
+ headers: { 'Content-Type': 'application/json' },
40
+ });
41
+ }
42
+ const ctx = routed['context'];
43
+ const resolvedServers = routed['resolvedServers'];
44
+ const primaryServer = routed['primaryServer'];
45
+ const authResult = authenticate({
46
+ type: 'http', ...(ctx['token'] !== undefined ? { token: ctx['token'] } : {}),
47
+ }, {
48
+ authorization: received['headers'].get('authorization') ?? undefined, from: undefined,
49
+ });
50
+ if (authResult['authenticated'] === false) {
51
+ if (ctx['error_topic'] !== undefined) {
52
+ try {
53
+ const errorAttachmentHeaders = Object.fromEntries([...received['headers'].entries()].filter((entry) => entry[0].toLowerCase() !== 'authorization'));
54
+ const errorAttachmentData = {
55
+ timestamp: new Date().toISOString(),
56
+ error: {
57
+ type: 'authentication',
58
+ message: authResult['reason'],
59
+ },
60
+ context: {
61
+ name: ctx['name'],
62
+ interpreter: ctx['interpreter'],
63
+ },
64
+ request: {
65
+ method: received['method'],
66
+ url: received['url'],
67
+ headers: errorAttachmentHeaders,
68
+ ...(received['cfProperties'] !== undefined ? { cf: received['cfProperties'] } : {}),
69
+ },
70
+ };
71
+ const errorAttachmentJson = JSON.stringify(errorAttachmentData, null, 2);
72
+ const errorAttachmentBuffer = new TextEncoder().encode(errorAttachmentJson).buffer;
73
+ await send({
74
+ messages: [],
75
+ servers: resolvedServers,
76
+ primaryServer,
77
+ topic: ctx['error_topic'],
78
+ mode: ctx['mode'],
79
+ visitorIp: received['headers'].get('cf-connecting-ip') ?? undefined,
80
+ attachment: errorAttachmentBuffer,
81
+ filename: 'error-debug.json',
82
+ attachmentHeaders: { 'X-Title': 'Authentication Error' },
83
+ });
84
+ }
85
+ catch {
86
+ }
87
+ }
88
+ return new Response(JSON.stringify({
89
+ status: 'error', message: 'Unauthorized',
90
+ }, null, 2), {
91
+ status: 403,
92
+ headers: { 'Content-Type': 'application/json' },
93
+ });
94
+ }
95
+ const parsed = parse(received['rawBody'], received['headers']);
96
+ if (parsed['type'] === 'unknown') {
97
+ return new Response(JSON.stringify({
98
+ status: 'error', message: 'Unknown content type',
99
+ }, null, 2), {
100
+ status: 400,
101
+ headers: { 'Content-Type': 'application/json' },
102
+ });
103
+ }
104
+ const rawBodyJsonStr = (parsed['json'] !== undefined) ? JSON.stringify(parsed['json']) : '';
105
+ const rawBodyText = parsed['text'] ?? ((rawBodyJsonStr.length > 0) ? rawBodyJsonStr : undefined);
106
+ const debugRawRequestStr = JSON.stringify({
107
+ debug: 'raw_request', type: parsed['type'], body: rawBodyText ?? '(binary)',
108
+ });
109
+ console.info(debugRawRequestStr);
110
+ const input = parsed['json']
111
+ ?? parsed['text']
112
+ ?? parsed['binary']
113
+ ?? '';
114
+ let interpreted = undefined;
115
+ try {
116
+ interpreted = await interpret(ctx['interpreter'], input, (kv !== undefined) ? { kv } : {});
117
+ }
118
+ catch (err) {
119
+ const errorMessage = (err instanceof Error) ? err.message : 'Unknown interpretation error';
120
+ if (ctx['error_topic'] !== undefined) {
121
+ try {
122
+ const errorAttachmentHeaders = Object.fromEntries([...received['headers'].entries()].filter((entry) => entry[0].toLowerCase() !== 'authorization'));
123
+ const errorAttachmentData = {
124
+ timestamp: new Date().toISOString(),
125
+ error: {
126
+ type: 'interpretation',
127
+ message: errorMessage,
128
+ },
129
+ context: {
130
+ name: ctx['name'],
131
+ interpreter: ctx['interpreter'],
132
+ },
133
+ request: {
134
+ method: received['method'],
135
+ url: received['url'],
136
+ headers: errorAttachmentHeaders,
137
+ ...(received['cfProperties'] !== undefined ? { cf: received['cfProperties'] } : {}),
138
+ },
139
+ body: {
140
+ type: parsed['type'],
141
+ ...(parsed['json'] !== undefined ? { json: parsed['json'] } : {}),
142
+ ...(parsed['text'] !== undefined ? { text: parsed['text'] } : {}),
143
+ },
144
+ };
145
+ const errorAttachmentJson = JSON.stringify(errorAttachmentData, null, 2);
146
+ const errorAttachmentBuffer = new TextEncoder().encode(errorAttachmentJson).buffer;
147
+ await send({
148
+ messages: [],
149
+ servers: resolvedServers,
150
+ primaryServer,
151
+ topic: ctx['error_topic'],
152
+ mode: ctx['mode'],
153
+ visitorIp: received['headers'].get('cf-connecting-ip') ?? undefined,
154
+ attachment: errorAttachmentBuffer,
155
+ filename: 'error-debug.json',
156
+ attachmentHeaders: { 'X-Title': 'Interpretation Error' },
157
+ });
158
+ }
159
+ catch {
160
+ }
161
+ }
162
+ return new Response(JSON.stringify({
163
+ status: 'error', message: errorMessage,
164
+ }, null, 2), {
165
+ status: 422,
166
+ headers: { 'Content-Type': 'application/json' },
167
+ });
168
+ }
169
+ if (interpreted === null) {
170
+ return new Response(JSON.stringify({ status: 'ignored' }, null, 2), {
171
+ status: 200,
172
+ headers: { 'Content-Type': 'application/json' },
173
+ });
174
+ }
175
+ if (interpreted['notification']['title'] === undefined) {
176
+ Reflect.set(interpreted['notification'], 'title', ctx['name']);
177
+ }
178
+ const visitorIpHeader = received['headers'].get('cf-connecting-ip');
179
+ const formatted = format(interpreted['notification'], {
180
+ showVisitorInfo: ctx['show_visitor_info'],
181
+ ...((visitorIpHeader !== null) ? { visitorIp: visitorIpHeader } : {}),
182
+ ...((received['cfProperties'] !== undefined) ? { cfProperties: received['cfProperties'] } : {}),
183
+ });
184
+ const messages = split(formatted['body'], formatted['headers']);
185
+ const sendResult = await send({
186
+ messages,
187
+ servers: resolvedServers,
188
+ primaryServer,
189
+ topic: ctx['topic'],
190
+ mode: ctx['mode'],
191
+ visitorIp: received['headers'].get('cf-connecting-ip') ?? undefined,
192
+ attachment: interpreted['attachment'],
193
+ filename: interpreted['notification']['filename'],
194
+ });
195
+ const response = respond(sendResult, {
196
+ showResponseOutput: config['settings']['show_response_output'],
197
+ contextName: ctx['name'],
198
+ interpreterName: ctx['interpreter'],
199
+ messageTitle: interpreted['notification']['title'],
200
+ bodySize: formatted['body'].length,
201
+ parts: messages.length,
202
+ hasAttachment: interpreted['attachment'] !== undefined,
203
+ });
204
+ const cloned = response.clone();
205
+ const responseBody = await cloned.text();
206
+ console.info(responseBody);
207
+ return response;
208
+ }
209
+ catch (err) {
210
+ const errorMessage = (err instanceof Error) ? err.message : 'Internal server error';
211
+ const body = (config['settings']['show_response_output'] === true) ? {
212
+ status: 'error', message: errorMessage,
213
+ } : {
214
+ status: 'error', message: 'Internal server error',
215
+ };
216
+ return new Response(JSON.stringify(body, null, 2), {
217
+ status: 500,
218
+ headers: { 'Content-Type': 'application/json' },
219
+ });
220
+ }
221
+ }
222
+ async function handleEmail(rawEmail, from, config, kv) {
223
+ const parsed = await parseEmail(rawEmail);
224
+ const debugRawEmailStr = JSON.stringify({
225
+ debug: 'raw_email', from, to: parsed['to'], subject: parsed['subject'], rawEmail,
226
+ });
227
+ console.info(debugRawEmailStr);
228
+ const recipientLocalPart = parsed['to'].split('@')[0] ?? '';
229
+ const routed = route('email', recipientLocalPart, config);
230
+ if (routed['error'] !== undefined
231
+ || routed['context'] === undefined
232
+ || routed['resolvedServers'] === undefined
233
+ || routed['primaryServer'] === undefined) {
234
+ return;
235
+ }
236
+ const ctx = routed['context'];
237
+ const resolvedServers = routed['resolvedServers'];
238
+ const primaryServer = routed['primaryServer'];
239
+ const authResult = authenticate({
240
+ type: 'email', ...(ctx['allowed_from'] !== undefined ? { allowed_from: ctx['allowed_from'] } : {}),
241
+ }, {
242
+ authorization: undefined, from,
243
+ });
244
+ if (authResult['authenticated'] === false) {
245
+ if (ctx['error_topic'] !== undefined) {
246
+ try {
247
+ const errorAttachmentData = {
248
+ timestamp: new Date().toISOString(),
249
+ error: {
250
+ type: 'authentication',
251
+ message: authResult['reason'],
252
+ },
253
+ context: {
254
+ name: ctx['name'],
255
+ interpreter: ctx['interpreter'],
256
+ },
257
+ email: {
258
+ from,
259
+ to: parsed['to'],
260
+ subject: parsed['subject'],
261
+ },
262
+ };
263
+ const errorAttachmentJson = JSON.stringify(errorAttachmentData, null, 2);
264
+ const errorAttachmentBuffer = new TextEncoder().encode(errorAttachmentJson).buffer;
265
+ await send({
266
+ messages: [],
267
+ servers: resolvedServers,
268
+ primaryServer,
269
+ topic: ctx['error_topic'],
270
+ mode: ctx['mode'],
271
+ attachment: errorAttachmentBuffer,
272
+ filename: 'error-debug.json',
273
+ attachmentHeaders: { 'X-Title': 'Email Authentication Error' },
274
+ });
275
+ }
276
+ catch {
277
+ }
278
+ }
279
+ return;
280
+ }
281
+ const emailInput = {
282
+ subject: parsed['subject'],
283
+ textBody: parsed['textBody'],
284
+ from: parsed['from'],
285
+ to: parsed['to'],
286
+ };
287
+ let interpreted = undefined;
288
+ try {
289
+ interpreted = await interpret(ctx['interpreter'], emailInput, (kv !== undefined) ? { kv } : {});
290
+ }
291
+ catch (err) {
292
+ const errorMessage = (err instanceof Error) ? err.message : 'Unknown interpretation error';
293
+ if (ctx['error_topic'] !== undefined) {
294
+ try {
295
+ const errorAttachmentData = {
296
+ timestamp: new Date().toISOString(),
297
+ error: {
298
+ type: 'interpretation',
299
+ message: errorMessage,
300
+ },
301
+ context: {
302
+ name: ctx['name'],
303
+ interpreter: ctx['interpreter'],
304
+ },
305
+ email: {
306
+ from,
307
+ to: parsed['to'],
308
+ subject: parsed['subject'],
309
+ textBody: parsed['textBody'],
310
+ },
311
+ };
312
+ const errorAttachmentJson = JSON.stringify(errorAttachmentData, null, 2);
313
+ const errorAttachmentBuffer = new TextEncoder().encode(errorAttachmentJson).buffer;
314
+ await send({
315
+ messages: [],
316
+ servers: resolvedServers,
317
+ primaryServer,
318
+ topic: ctx['error_topic'],
319
+ mode: ctx['mode'],
320
+ attachment: errorAttachmentBuffer,
321
+ filename: 'error-debug.json',
322
+ attachmentHeaders: { 'X-Title': 'Email Interpretation Error' },
323
+ });
324
+ }
325
+ catch {
326
+ }
327
+ }
328
+ return;
329
+ }
330
+ if (interpreted === null) {
331
+ return;
332
+ }
333
+ if (interpreted['notification']['title'] === undefined) {
334
+ Reflect.set(interpreted['notification'], 'title', ctx['name']);
335
+ }
336
+ const formatted = format(interpreted['notification'], {
337
+ showVisitorInfo: ctx['show_visitor_info'],
338
+ });
339
+ const messages = split(formatted['body'], formatted['headers']);
340
+ const sendResult = await send({
341
+ messages,
342
+ servers: resolvedServers,
343
+ primaryServer,
344
+ topic: ctx['topic'],
345
+ mode: ctx['mode'],
346
+ attachment: interpreted['attachment'],
347
+ filename: interpreted['notification']['filename'],
348
+ });
349
+ const debugLogStr = JSON.stringify({
350
+ context: ctx['name'],
351
+ interpreter: ctx['interpreter'],
352
+ servers: sendResult['results'],
353
+ bodySize: formatted['body'].length,
354
+ parts: messages.length,
355
+ }, null, 2);
356
+ console.info(debugLogStr);
357
+ return;
358
+ }
359
+ export { handleEmail, handleRequest, };
360
+ //# sourceMappingURL=handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/worker/handlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { WorkerModuleExports } from '../types/worker/index.d.ts';
2
+ declare const moduleExports: WorkerModuleExports;
3
+ export default moduleExports;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/worker/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAwBV,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AAEpC,QAAA,MAAM,aAAa,EAAE,mBA0DpB,CAAC;AAEF,eAAe,aAAa,CAAC"}