@buape/carbon 0.14.0 → 0.16.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 (182) hide show
  1. package/LICENSE +1 -1
  2. package/dist/package.json +11 -9
  3. package/dist/src/abstracts/BaseChannel.d.ts +24 -2
  4. package/dist/src/abstracts/BaseChannel.d.ts.map +1 -1
  5. package/dist/src/abstracts/BaseChannel.js +45 -4
  6. package/dist/src/abstracts/BaseChannel.js.map +1 -1
  7. package/dist/src/abstracts/BaseCommand.d.ts +15 -3
  8. package/dist/src/abstracts/BaseCommand.d.ts.map +1 -1
  9. package/dist/src/abstracts/BaseCommand.js +32 -3
  10. package/dist/src/abstracts/BaseCommand.js.map +1 -1
  11. package/dist/src/abstracts/BaseInteraction.d.ts +1 -1
  12. package/dist/src/abstracts/BaseInteraction.d.ts.map +1 -1
  13. package/dist/src/abstracts/BaseInteraction.js +3 -3
  14. package/dist/src/abstracts/BaseInteraction.js.map +1 -1
  15. package/dist/src/abstracts/BaseListener.d.ts +7 -4
  16. package/dist/src/abstracts/BaseListener.d.ts.map +1 -1
  17. package/dist/src/abstracts/BaseListener.js.map +1 -1
  18. package/dist/src/abstracts/Plugin.d.ts +6 -0
  19. package/dist/src/abstracts/Plugin.d.ts.map +1 -1
  20. package/dist/src/abstracts/Plugin.js.map +1 -1
  21. package/dist/src/adapters/bun/index.d.ts +1 -1
  22. package/dist/src/adapters/bun/index.d.ts.map +1 -1
  23. package/dist/src/adapters/bun/index.js +6 -0
  24. package/dist/src/adapters/bun/index.js.map +1 -1
  25. package/dist/src/adapters/fetch/index.d.ts.map +1 -1
  26. package/dist/src/adapters/fetch/index.js +6 -0
  27. package/dist/src/adapters/fetch/index.js.map +1 -1
  28. package/dist/src/classes/Client.d.ts +97 -6
  29. package/dist/src/classes/Client.d.ts.map +1 -1
  30. package/dist/src/classes/Client.js +187 -12
  31. package/dist/src/classes/Client.js.map +1 -1
  32. package/dist/src/classes/EntryPointCommand.d.ts +11 -0
  33. package/dist/src/classes/EntryPointCommand.d.ts.map +1 -0
  34. package/dist/src/classes/EntryPointCommand.js +13 -0
  35. package/dist/src/classes/EntryPointCommand.js.map +1 -0
  36. package/dist/src/classes/Listener.d.ts +83 -81
  37. package/dist/src/classes/Listener.d.ts.map +1 -1
  38. package/dist/src/classes/Listener.js +15 -4
  39. package/dist/src/classes/Listener.js.map +1 -1
  40. package/dist/src/classes/RequestClient.d.ts +92 -17
  41. package/dist/src/classes/RequestClient.d.ts.map +1 -1
  42. package/dist/src/classes/RequestClient.js +207 -136
  43. package/dist/src/classes/RequestClient.js.map +1 -1
  44. package/dist/src/errors/RatelimitError.d.ts +4 -1
  45. package/dist/src/errors/RatelimitError.d.ts.map +1 -1
  46. package/dist/src/errors/RatelimitError.js +7 -1
  47. package/dist/src/errors/RatelimitError.js.map +1 -1
  48. package/dist/src/functions/channelFactory.d.ts +4 -12
  49. package/dist/src/functions/channelFactory.d.ts.map +1 -1
  50. package/dist/src/functions/channelFactory.js +39 -13
  51. package/dist/src/functions/channelFactory.js.map +1 -1
  52. package/dist/src/index.d.ts +1 -0
  53. package/dist/src/index.d.ts.map +1 -1
  54. package/dist/src/index.js +1 -0
  55. package/dist/src/index.js.map +1 -1
  56. package/dist/src/internals/BoundedExecutor.d.ts +12 -0
  57. package/dist/src/internals/BoundedExecutor.d.ts.map +1 -0
  58. package/dist/src/internals/BoundedExecutor.js +60 -0
  59. package/dist/src/internals/BoundedExecutor.js.map +1 -0
  60. package/dist/src/internals/CommandHandler.d.ts.map +1 -1
  61. package/dist/src/internals/CommandHandler.js +53 -6
  62. package/dist/src/internals/CommandHandler.js.map +1 -1
  63. package/dist/src/internals/ComponentHandler.d.ts +2 -1
  64. package/dist/src/internals/ComponentHandler.d.ts.map +1 -1
  65. package/dist/src/internals/ComponentHandler.js +11 -4
  66. package/dist/src/internals/ComponentHandler.js.map +1 -1
  67. package/dist/src/internals/EventHandler.d.ts +18 -3
  68. package/dist/src/internals/EventHandler.d.ts.map +1 -1
  69. package/dist/src/internals/EventQueue.d.ts +43 -12
  70. package/dist/src/internals/EventQueue.d.ts.map +1 -1
  71. package/dist/src/internals/EventQueue.js +294 -62
  72. package/dist/src/internals/EventQueue.js.map +1 -1
  73. package/dist/src/internals/FieldsHandler.d.ts.map +1 -1
  74. package/dist/src/internals/FieldsHandler.js +10 -1
  75. package/dist/src/internals/FieldsHandler.js.map +1 -1
  76. package/dist/src/internals/RequestBody.d.ts +6 -0
  77. package/dist/src/internals/RequestBody.d.ts.map +1 -0
  78. package/dist/src/internals/RequestBody.js +74 -0
  79. package/dist/src/internals/RequestBody.js.map +1 -0
  80. package/dist/src/internals/RequestScheduler.d.ts +131 -0
  81. package/dist/src/internals/RequestScheduler.d.ts.map +1 -0
  82. package/dist/src/internals/RequestScheduler.js +245 -0
  83. package/dist/src/internals/RequestScheduler.js.map +1 -0
  84. package/dist/src/internals/TemporaryListenerManager.d.ts +3 -3
  85. package/dist/src/internals/TemporaryListenerManager.d.ts.map +1 -1
  86. package/dist/src/internals/TemporaryListenerManager.js +1 -1
  87. package/dist/src/internals/TemporaryListenerManager.js.map +1 -1
  88. package/dist/src/plugins/client-manager/ClientManager.d.ts +30 -2
  89. package/dist/src/plugins/client-manager/ClientManager.d.ts.map +1 -1
  90. package/dist/src/plugins/client-manager/ClientManager.js +86 -16
  91. package/dist/src/plugins/client-manager/ClientManager.js.map +1 -1
  92. package/dist/src/plugins/cloudflare-gateway/CloudflareGatewayDurableObject.d.ts +43 -0
  93. package/dist/src/plugins/cloudflare-gateway/CloudflareGatewayDurableObject.d.ts.map +1 -0
  94. package/dist/src/plugins/cloudflare-gateway/CloudflareGatewayDurableObject.js +210 -0
  95. package/dist/src/plugins/cloudflare-gateway/CloudflareGatewayDurableObject.js.map +1 -0
  96. package/dist/src/plugins/cloudflare-gateway/CloudflareGatewayPlugin.d.ts +16 -0
  97. package/dist/src/plugins/cloudflare-gateway/CloudflareGatewayPlugin.d.ts.map +1 -0
  98. package/dist/src/plugins/cloudflare-gateway/CloudflareGatewayPlugin.js +129 -0
  99. package/dist/src/plugins/cloudflare-gateway/CloudflareGatewayPlugin.js.map +1 -0
  100. package/dist/src/plugins/cloudflare-gateway/index.d.ts +4 -0
  101. package/dist/src/plugins/cloudflare-gateway/index.d.ts.map +1 -0
  102. package/dist/src/plugins/cloudflare-gateway/index.js +4 -0
  103. package/dist/src/plugins/cloudflare-gateway/index.js.map +1 -0
  104. package/dist/src/plugins/cloudflare-gateway/types.d.ts +63 -0
  105. package/dist/src/plugins/cloudflare-gateway/types.d.ts.map +1 -0
  106. package/dist/src/plugins/cloudflare-gateway/types.js +2 -0
  107. package/dist/src/plugins/cloudflare-gateway/types.js.map +1 -0
  108. package/dist/src/plugins/gateway/GatewayPlugin.d.ts +108 -19
  109. package/dist/src/plugins/gateway/GatewayPlugin.d.ts.map +1 -1
  110. package/dist/src/plugins/gateway/GatewayPlugin.js +564 -253
  111. package/dist/src/plugins/gateway/GatewayPlugin.js.map +1 -1
  112. package/dist/src/plugins/gateway/types.d.ts +33 -1
  113. package/dist/src/plugins/gateway/types.d.ts.map +1 -1
  114. package/dist/src/plugins/gateway/types.js +21 -0
  115. package/dist/src/plugins/gateway/types.js.map +1 -1
  116. package/dist/src/plugins/gateway/utils/heartbeat.d.ts.map +1 -1
  117. package/dist/src/plugins/gateway/utils/heartbeat.js +10 -4
  118. package/dist/src/plugins/gateway/utils/heartbeat.js.map +1 -1
  119. package/dist/src/plugins/gateway/utils/payload.d.ts.map +1 -1
  120. package/dist/src/plugins/gateway/utils/payload.js +0 -4
  121. package/dist/src/plugins/gateway/utils/payload.js.map +1 -1
  122. package/dist/src/plugins/gateway-forwarder/GatewayForwarderPlugin.d.ts +56 -3
  123. package/dist/src/plugins/gateway-forwarder/GatewayForwarderPlugin.d.ts.map +1 -1
  124. package/dist/src/plugins/gateway-forwarder/GatewayForwarderPlugin.js +224 -21
  125. package/dist/src/plugins/gateway-forwarder/GatewayForwarderPlugin.js.map +1 -1
  126. package/dist/src/plugins/paginator/index.d.ts +1 -1
  127. package/dist/src/plugins/paginator/index.d.ts.map +1 -1
  128. package/dist/src/plugins/paginator/index.js +1 -1
  129. package/dist/src/plugins/paginator/index.js.map +1 -1
  130. package/dist/src/plugins/voice/VoicePlugin.d.ts.map +1 -1
  131. package/dist/src/plugins/voice/VoicePlugin.js +5 -1
  132. package/dist/src/plugins/voice/VoicePlugin.js.map +1 -1
  133. package/dist/src/plugins/voice/VoiceServerUpdateListener.d.ts +10 -0
  134. package/dist/src/plugins/voice/VoiceServerUpdateListener.d.ts.map +1 -0
  135. package/dist/src/plugins/voice/VoiceServerUpdateListener.js +16 -0
  136. package/dist/src/plugins/voice/VoiceServerUpdateListener.js.map +1 -0
  137. package/dist/src/plugins/voice/VoiceStateUpdateListener.d.ts +10 -0
  138. package/dist/src/plugins/voice/VoiceStateUpdateListener.d.ts.map +1 -0
  139. package/dist/src/plugins/voice/VoiceStateUpdateListener.js +21 -0
  140. package/dist/src/plugins/voice/VoiceStateUpdateListener.js.map +1 -0
  141. package/dist/src/structures/GroupDmChannel.d.ts +5 -1
  142. package/dist/src/structures/GroupDmChannel.d.ts.map +1 -1
  143. package/dist/src/structures/GroupDmChannel.js +10 -1
  144. package/dist/src/structures/GroupDmChannel.js.map +1 -1
  145. package/dist/src/structures/Guild.d.ts +13 -4
  146. package/dist/src/structures/Guild.d.ts.map +1 -1
  147. package/dist/src/structures/Guild.js +9 -1
  148. package/dist/src/structures/Guild.js.map +1 -1
  149. package/dist/src/structures/GuildMediaChannel.d.ts +1 -1
  150. package/dist/src/structures/GuildMediaChannel.d.ts.map +1 -1
  151. package/dist/src/structures/GuildMediaChannel.js.map +1 -1
  152. package/dist/src/structures/Message.d.ts +1 -1
  153. package/dist/src/structures/Poll.d.ts +1 -1
  154. package/dist/src/structures/Poll.d.ts.map +1 -1
  155. package/dist/src/structures/Webhook.d.ts +4 -2
  156. package/dist/src/structures/Webhook.d.ts.map +1 -1
  157. package/dist/src/structures/Webhook.js +42 -29
  158. package/dist/src/structures/Webhook.js.map +1 -1
  159. package/dist/src/types/channels.d.ts +33 -0
  160. package/dist/src/types/channels.d.ts.map +1 -0
  161. package/dist/src/types/channels.js +2 -0
  162. package/dist/src/types/channels.js.map +1 -0
  163. package/dist/src/types/commandMiddleware.d.ts +64 -0
  164. package/dist/src/types/commandMiddleware.d.ts.map +1 -0
  165. package/dist/src/types/commandMiddleware.js +2 -0
  166. package/dist/src/types/commandMiddleware.js.map +1 -0
  167. package/dist/src/types/index.d.ts +10 -5
  168. package/dist/src/types/index.d.ts.map +1 -1
  169. package/dist/src/types/index.js +2 -0
  170. package/dist/src/types/index.js.map +1 -1
  171. package/dist/src/types/listeners.d.ts +13 -4
  172. package/dist/src/types/listeners.d.ts.map +1 -1
  173. package/dist/src/types/listeners.js.map +1 -1
  174. package/dist/src/utils/payload.d.ts.map +1 -1
  175. package/dist/src/utils/payload.js +16 -0
  176. package/dist/src/utils/payload.js.map +1 -1
  177. package/dist/tsconfig.tsbuildinfo +1 -1
  178. package/package.json +11 -9
  179. package/dist/src/adapters/node/index.d.ts +0 -13
  180. package/dist/src/adapters/node/index.d.ts.map +0 -1
  181. package/dist/src/adapters/node/index.js +0 -17
  182. package/dist/src/adapters/node/index.js.map +0 -1
@@ -6,7 +6,7 @@ import { Client } from "../../classes/Client.js";
6
6
  *
7
7
  * To use with a database, extend this class and override:
8
8
  * - getClient(clientId) - Return the client for a specific ID (or create it)
9
- * - getAllClients() - Return all available clients
9
+ * - getClients() - Return all available clients
10
10
  * - getClientIds() - Return all available client IDs
11
11
  *
12
12
  * Then call setupClient(credentials) to create clients on-demand.
@@ -33,6 +33,7 @@ export class ClientManager {
33
33
  staticApplications;
34
34
  initialHandlers;
35
35
  initialPlugins;
36
+ startupPromise;
36
37
  /**
37
38
  * Creates a new ClientManager
38
39
  * @param options Configuration options including shared settings and per-app credentials
@@ -45,15 +46,78 @@ export class ClientManager {
45
46
  this.initialHandlers = handlers;
46
47
  this.initialPlugins = plugins;
47
48
  this.setupRoutes();
48
- this.getApplications().then(async (applications) => {
49
- applications.map(async (application) => {
50
- this.setupClient({
51
- clientId: application.clientId,
52
- publicKey: application.publicKey,
53
- token: application.token
54
- }, options.initialSetupOptions);
55
- });
49
+ this.startupPromise = this.initializeClients(options.initialSetupOptions, options.startup);
50
+ void this.startupPromise.catch((error) => {
51
+ console.error("[ClientManager] Startup failed", error);
52
+ });
53
+ }
54
+ async whenReady() {
55
+ return this.startupPromise;
56
+ }
57
+ async initializeClients(initialSetupOptions, startupOptions) {
58
+ const applications = await this.getApplications();
59
+ if (applications.length === 0) {
60
+ return {
61
+ total: 0,
62
+ successes: 0,
63
+ failures: 0,
64
+ completedAt: Date.now(),
65
+ results: []
66
+ };
67
+ }
68
+ const concurrency = Math.max(1, startupOptions?.concurrency ?? 4);
69
+ const failFast = startupOptions?.failFast ?? false;
70
+ let shouldStop = false;
71
+ let nextIndex = 0;
72
+ const results = [];
73
+ const workers = Array.from({ length: Math.min(concurrency, applications.length) }, async () => {
74
+ while (true) {
75
+ if (shouldStop)
76
+ return;
77
+ const application = applications[nextIndex];
78
+ nextIndex += 1;
79
+ if (!application)
80
+ return;
81
+ try {
82
+ await this.setupClient({
83
+ clientId: application.clientId,
84
+ publicKey: application.publicKey,
85
+ token: application.token
86
+ }, initialSetupOptions);
87
+ results.push({
88
+ clientId: application.clientId,
89
+ status: "success"
90
+ });
91
+ }
92
+ catch (error) {
93
+ const message = error instanceof Error ? error.message : String(error);
94
+ results.push({
95
+ clientId: application.clientId,
96
+ status: "error",
97
+ error: message
98
+ });
99
+ if (failFast) {
100
+ shouldStop = true;
101
+ }
102
+ }
103
+ }
56
104
  });
105
+ await Promise.all(workers);
106
+ const failures = results.filter((result) => result.status === "error").length;
107
+ const startupResult = {
108
+ total: applications.length,
109
+ successes: results.length - failures,
110
+ failures,
111
+ completedAt: Date.now(),
112
+ results
113
+ };
114
+ if (failFast && failures > 0) {
115
+ throw new Error(`ClientManager startup failed with ${failures} error(s): ${results
116
+ .filter((result) => result.status === "error")
117
+ .map((result) => `${result.clientId}: ${result.error ?? "unknown"}`)
118
+ .join("; ")}`);
119
+ }
120
+ return startupResult;
57
121
  }
58
122
  /**
59
123
  * Setup a client from credentials.
@@ -143,7 +207,7 @@ export class ClientManager {
143
207
  if (!client)
144
208
  continue;
145
209
  try {
146
- await client.handleDeployRequest();
210
+ await client.handleDeployRequest(req);
147
211
  results.push({ clientId, status: "success" });
148
212
  }
149
213
  catch (error) {
@@ -161,15 +225,13 @@ export class ClientManager {
161
225
  * @param ctx Optional context (for Cloudflare Workers, etc.)
162
226
  */
163
227
  async handleRequest(req, ctx) {
164
- const url = new URL(req.url);
165
- const baseUrl = new URL(this.baseUrl);
166
- const basePathname = baseUrl.pathname.replace(/\/$/, "");
167
- const reqPathname = url.pathname.replace(/\/$/, "");
168
- if (!reqPathname.startsWith(basePathname)) {
228
+ const url = new URL(req.url, "http://localhost");
229
+ const pathname = resolveRequestPathname(new URL(this.baseUrl), url);
230
+ if (!pathname) {
169
231
  await req.text().catch(() => { });
170
232
  return new Response("Not Found: Invalid base URL", { status: 404 });
171
233
  }
172
- const truePathname = reqPathname.slice(basePathname.length);
234
+ const truePathname = pathname;
173
235
  if (truePathname === "/deploy" && req.method === "GET") {
174
236
  return this.handleGlobalDeploy(req);
175
237
  }
@@ -250,4 +312,12 @@ export class ClientManager {
250
312
  return /^\d{17,19}$/.test(id);
251
313
  }
252
314
  }
315
+ function resolveRequestPathname(baseUrl, reqUrl) {
316
+ // Need to use pathname only due to host name being different in Cloudflare Tunnel
317
+ const basePathname = baseUrl.pathname.replace(/\/$/, "");
318
+ const reqPathname = reqUrl.pathname.replace(/\/$/, "");
319
+ if (!reqPathname.startsWith(basePathname))
320
+ return null;
321
+ return reqPathname.slice(basePathname.length);
322
+ }
253
323
  //# sourceMappingURL=ClientManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClientManager.js","sourceRoot":"","sources":["../../../../src/plugins/client-manager/ClientManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClientManager.js","sourceRoot":"","sources":["../../../../src/plugins/client-manager/ClientManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAE9C,OAAO,EAAE,MAAM,EAAsB,MAAM,yBAAyB,CAAA;AA8FpE;;;;;;;;;;GAUG;AACH,MAAM,OAAO,aAAa;IACzB;;OAEG;IACH,MAAM,GAAY,EAAE,CAAA;IAEpB;;OAEG;IACO,YAAY,CAAS;IAE/B;;OAEG;IACO,OAAO,CAAQ;IAEzB;;;OAGG;IACO,aAAa,CAGtB;IAES,OAAO,GAAwB,IAAI,GAAG,EAAE,CAAA;IACxC,kBAAkB,CAA0B;IAC5C,eAAe,CAAyC;IACxD,cAAc,CAAyC;IACzD,cAAc,CAAqC;IAE3D;;;OAGG;IACH,YACC,OAA6B,EAC7B,QAAiD,EACjD,OAAgD;QAEhD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;QAC1C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QAC9B,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAA;QACpD,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAA;QAC/B,IAAI,CAAC,cAAc,GAAG,OAAO,CAAA;QAE7B,IAAI,CAAC,WAAW,EAAE,CAAA;QAElB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAC3C,OAAO,CAAC,mBAAmB,EAC3B,OAAO,CAAC,OAAO,CACf,CAAA;QACD,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACxC,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAA;QACvD,CAAC,CAAC,CAAA;IACH,CAAC;IAEM,KAAK,CAAC,SAAS;QACrB,OAAO,IAAI,CAAC,cAAc,CAAA;IAC3B,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC9B,mBAAwC,EACxC,cAA4C;QAE5C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAA;QACjD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO;gBACN,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE,CAAC;gBACZ,QAAQ,EAAE,CAAC;gBACX,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;gBACvB,OAAO,EAAE,EAAE;aACX,CAAA;QACF,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,EAAE,WAAW,IAAI,CAAC,CAAC,CAAA;QACjE,MAAM,QAAQ,GAAG,cAAc,EAAE,QAAQ,IAAI,KAAK,CAAA;QAClD,IAAI,UAAU,GAAG,KAAK,CAAA;QACtB,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,MAAM,OAAO,GAA0C,EAAE,CAAA;QAEzD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CACzB,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,EACtD,KAAK,IAAI,EAAE;YACV,OAAO,IAAI,EAAE,CAAC;gBACb,IAAI,UAAU;oBAAE,OAAM;gBACtB,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,CAAA;gBAC3C,SAAS,IAAI,CAAC,CAAA;gBACd,IAAI,CAAC,WAAW;oBAAE,OAAM;gBAExB,IAAI,CAAC;oBACJ,MAAM,IAAI,CAAC,WAAW,CACrB;wBACC,QAAQ,EAAE,WAAW,CAAC,QAAQ;wBAC9B,SAAS,EAAE,WAAW,CAAC,SAAS;wBAChC,KAAK,EAAE,WAAW,CAAC,KAAK;qBACxB,EACD,mBAAmB,CACnB,CAAA;oBACD,OAAO,CAAC,IAAI,CAAC;wBACZ,QAAQ,EAAE,WAAW,CAAC,QAAQ;wBAC9B,MAAM,EAAE,SAAS;qBACjB,CAAC,CAAA;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,MAAM,OAAO,GACZ,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;oBACvD,OAAO,CAAC,IAAI,CAAC;wBACZ,QAAQ,EAAE,WAAW,CAAC,QAAQ;wBAC9B,MAAM,EAAE,OAAO;wBACf,KAAK,EAAE,OAAO;qBACd,CAAC,CAAA;oBACF,IAAI,QAAQ,EAAE,CAAC;wBACd,UAAU,GAAG,IAAI,CAAA;oBAClB,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC,CACD,CAAA;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAE1B,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAC9B,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,CACrC,CAAC,MAAM,CAAA;QACR,MAAM,aAAa,GAA+B;YACjD,KAAK,EAAE,YAAY,CAAC,MAAM;YAC1B,SAAS,EAAE,OAAO,CAAC,MAAM,GAAG,QAAQ;YACpC,QAAQ;YACR,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;YACvB,OAAO;SACP,CAAA;QAED,IAAI,QAAQ,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACd,qCAAqC,QAAQ,cAAc,OAAO;iBAChE,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC;iBAC7C,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC;iBACnE,IAAI,CAAC,IAAI,CAAC,EAAE,CACd,CAAA;QACF,CAAC;QAED,OAAO,aAAa,CAAA;IACrB,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,WAAW,CACvB,WAAmC,EACnC,UAA8B;QAC7B,QAAQ,EAAE,KAAK;QACf,6BAA6B,EAAE,KAAK;QACpC,uBAAuB,EAAE,KAAK;KAC9B;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QACrD,IAAI,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACd,UAAU,WAAW,CAAC,QAAQ,mFAAmF,CACjH,CAAA;QACF,CAAC;QAED,IAAI,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QAC1C,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CACd,sBAAsB,WAAW,CAAC,QAAQ,+DAA+D,CACzG,CAAA;QACF,CAAC;QAED,MAAM,aAAa,GAAkB;YACpC,GAAG,IAAI,CAAC,aAAa;YACrB,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE;YAClD,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,KAAK,EAAE,WAAW,CAAC,KAAK;SACxB,CAAA;QAED,MAAM,MAAM,GAAG,IAAI,MAAM,CACxB,aAAa,EACb,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,cAAc,CACnB,CAAA;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAE9C,IACC,OAAO,CAAC,6BAA6B;YACrC,OAAO,CAAC,uBAAuB,EAC9B,CAAC;YACF,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE,EAAE;gBACpD,IAAI,EAAE;oBACL,yBAAyB,EAAE,OAAO,CAAC,6BAA6B;wBAC/D,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,IAAI,WAAW,CAAC,QAAQ,eAAe;wBACxD,CAAC,CAAC,SAAS;oBACZ,kBAAkB,EAAE,OAAO,CAAC,uBAAuB;wBAClD,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,IAAI,WAAW,CAAC,QAAQ,SAAS;wBAClD,CAAC,CAAC,SAAS;iBACZ;aACD,CAAC,CAAA;QACH,CAAC;QAED,OAAO,MAAM,CAAA;IACd,CAAC;IAED;;OAEG;IACO,WAAW;QACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAChB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC3C,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,CAAC,IAAI,CAAC,YAAY;SAC5B,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAChB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;SAC3C,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAChB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;SAC3C,CAAC,CAAA;IACH,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,kBAAkB,CAAC,GAAY;QAC9C,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAC5B,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAC7C,IAAI,MAAM,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;gBAChC,OAAO,IAAI,QAAQ,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;YACrD,CAAC;QACF,CAAC;QAED,MAAM,OAAO,GAA2C,EAAE,CAAA;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;QAErC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;YACvC,IAAI,CAAC,MAAM;gBAAE,SAAQ;YAErB,IAAI,CAAC;gBACJ,MAAM,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;gBACrC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAA;YAC9C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC;oBACZ,QAAQ;oBACR,MAAM,EAAE,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;iBAC1E,CAAC,CAAA;YACH,CAAC;QACF,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;IAC/C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,GAAY,EAAE,GAAa;QAC9C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAA;QAChD,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAA;QACnE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;YAChC,OAAO,IAAI,QAAQ,CAAC,6BAA6B,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QACpE,CAAC;QAED,MAAM,YAAY,GAAG,QAAQ,CAAA;QAC7B,IAAI,YAAY,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;QACpC,CAAC;QAED,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACzD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;YAChC,OAAO,IAAI,QAAQ,CAAC,kCAAkC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QACzE,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;YAChC,OAAO,IAAI,QAAQ,CAAC,gCAAgC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QACvE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;YAChC,OAAO,IAAI,QAAQ,CAClB,4CAA4C,QAAQ,EAAE,EACtD;gBACC,MAAM,EAAE,GAAG;aACX,CACD,CAAA;QACF,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;QACxD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,QAAQ,CACzE,CAAA;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;YAChC,OAAO,IAAI,QAAQ,CAClB,uBAAuB,GAAG,CAAC,MAAM,IAAI,aAAa,EAAE,EACpD;gBACC,MAAM,EAAE,GAAG;aACX,CACD,CAAA;QACF,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAC7C,IAAI,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBAC5C,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;gBAChC,OAAO,IAAI,QAAQ,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;YACrD,CAAC;QACF,CAAC;QAED,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAC/B,CAAC;IAES,KAAK,CAAC,kBAAkB,CACjC,GAAY,EACZ,GAAa;QAEb,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACpC,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,QAAgB;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAClC,CAAC;IAED;;OAEG;IACH,UAAU;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IACzC,CAAC;IAED;;OAEG;IACH,YAAY;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;IACvC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAA;IAC/B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc,CACnB,QAAgB;QAEhB,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAA;IACxE,CAAC;IAED;;OAEG;IACO,eAAe,CAAC,EAAU;QACnC,OAAO,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC9B,CAAC;CACD;AAED,SAAS,sBAAsB,CAAC,OAAY,EAAE,MAAW;IACxD,kFAAkF;IAClF,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACxD,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACtD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAA;IACtD,OAAO,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;AAC9C,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { GatewayPlugin } from "../gateway/GatewayPlugin.js";
2
+ import type { CloudflareGatewayDurableObjectConfig, CloudflareGatewayForwardPayload } from "./types.js";
3
+ export declare class CloudflareGatewayDurableObject {
4
+ protected state: {
5
+ storage: {
6
+ get<T>(key: string): Promise<T | undefined>;
7
+ put(key: string, value: unknown): Promise<void>;
8
+ delete(key: string): Promise<boolean | number | undefined>;
9
+ setAlarm(time: number | Date): Promise<void>;
10
+ deleteAlarm?(): Promise<void>;
11
+ };
12
+ };
13
+ protected config: CloudflareGatewayDurableObjectConfig | null;
14
+ protected gateway: GatewayPlugin | null;
15
+ protected bootstrap: Promise<void>;
16
+ protected connecting: Promise<void> | null;
17
+ constructor(state: {
18
+ storage: {
19
+ get<T>(key: string): Promise<T | undefined>;
20
+ put(key: string, value: unknown): Promise<void>;
21
+ delete(key: string): Promise<boolean | number | undefined>;
22
+ setAlarm(time: number | Date): Promise<void>;
23
+ deleteAlarm?(): Promise<void>;
24
+ };
25
+ }, _env: unknown);
26
+ fetch(request: Request): Promise<Response>;
27
+ alarm(): Promise<void>;
28
+ protected restore(): Promise<void>;
29
+ protected ensureConnected(): Promise<void>;
30
+ protected scheduleReconnectAlarm(): Promise<void>;
31
+ protected createClientBridge(config: CloudflareGatewayDurableObjectConfig): {
32
+ options: {
33
+ token: string;
34
+ clientId: string;
35
+ };
36
+ registerListener(): void;
37
+ eventHandler: {
38
+ handleEvent: (data: CloudflareGatewayForwardPayload["data"], type: CloudflareGatewayForwardPayload["type"]) => boolean;
39
+ };
40
+ };
41
+ protected forwardEvent(config: CloudflareGatewayDurableObjectConfig, type: CloudflareGatewayForwardPayload["type"], data: CloudflareGatewayForwardPayload["data"]): Promise<void>;
42
+ }
43
+ //# sourceMappingURL=CloudflareGatewayDurableObject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CloudflareGatewayDurableObject.d.ts","sourceRoot":"","sources":["../../../../src/plugins/cloudflare-gateway/CloudflareGatewayDurableObject.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,KAAK,EACX,oCAAoC,EACpC,+BAA+B,EAC/B,MAAM,YAAY,CAAA;AAUnB,qBAAa,8BAA8B;IAC1C,SAAS,CAAC,KAAK,EAAE;QAChB,OAAO,EAAE;YACR,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;YAC3C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;YAC/C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC,CAAA;YAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;YAC5C,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;SAC7B,CAAA;KACD,CAAA;IACD,SAAS,CAAC,MAAM,EAAE,oCAAoC,GAAG,IAAI,CAAO;IACpE,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAO;IAC9C,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAO;gBAGhD,KAAK,EAAE;QACN,OAAO,EAAE;YACR,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;YAC3C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;YAC/C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC,CAAA;YAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;YAC5C,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;SAC7B,CAAA;KACD,EACD,IAAI,EAAE,OAAO;IAMR,KAAK,CAAC,OAAO,EAAE,OAAO;IA6CtB,KAAK;cASK,OAAO;cAiBP,eAAe;cAwCf,sBAAsB;IAOtC,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,oCAAoC;;;;;;;gCAS/D,+BAA+B,CAAC,MAAM,CAAC,QACvC,+BAA+B,CAAC,MAAM,CAAC;;;cASjC,YAAY,CAC3B,MAAM,EAAE,oCAAoC,EAC5C,IAAI,EAAE,+BAA+B,CAAC,MAAM,CAAC,EAC7C,IAAI,EAAE,+BAA+B,CAAC,MAAM,CAAC;CA0B9C"}
@@ -0,0 +1,210 @@
1
+ import { GatewayPlugin } from "../gateway/GatewayPlugin.js";
2
+ const gatewayConfigStorageKey = "gateway-config";
3
+ const connectPath = "/connect";
4
+ const disconnectPath = "/disconnect";
5
+ const statusPath = "/status";
6
+ const reconnectAlarmIntervalMs = 60_000;
7
+ const defaultForwardPath = "/__carbon/gateway-events";
8
+ const defaultSecretHeader = "x-carbon-gateway-secret";
9
+ export class CloudflareGatewayDurableObject {
10
+ state;
11
+ config = null;
12
+ gateway = null;
13
+ bootstrap;
14
+ connecting = null;
15
+ constructor(state, _env) {
16
+ this.state = state;
17
+ this.bootstrap = this.restore();
18
+ }
19
+ async fetch(request) {
20
+ await this.bootstrap;
21
+ const url = new URL(request.url);
22
+ if (request.method === "POST" && url.pathname === connectPath) {
23
+ const payload = (await request.json());
24
+ const normalized = normalizeGatewayConfig(payload);
25
+ if (!normalized) {
26
+ return new Response("Bad Request", { status: 400 });
27
+ }
28
+ const hasChanged = !this.config ||
29
+ JSON.stringify(this.config) !== JSON.stringify(normalized);
30
+ this.config = normalized;
31
+ await this.state.storage.put(gatewayConfigStorageKey, normalized);
32
+ if (hasChanged && this.gateway) {
33
+ this.gateway.disconnect();
34
+ this.gateway = null;
35
+ }
36
+ await this.ensureConnected();
37
+ await this.scheduleReconnectAlarm();
38
+ return Response.json({ status: "connected" });
39
+ }
40
+ if (request.method === "POST" && url.pathname === disconnectPath) {
41
+ this.gateway?.disconnect();
42
+ this.gateway = null;
43
+ this.config = null;
44
+ await this.state.storage.delete(gatewayConfigStorageKey);
45
+ await this.state.storage.deleteAlarm?.();
46
+ return Response.json({ status: "disconnected" });
47
+ }
48
+ if (request.method === "GET" && url.pathname === statusPath) {
49
+ return Response.json({
50
+ configured: Boolean(this.config),
51
+ connected: Boolean(this.gateway?.isConnected)
52
+ });
53
+ }
54
+ return new Response("Not Found", { status: 404 });
55
+ }
56
+ async alarm() {
57
+ await this.bootstrap;
58
+ if (!this.config) {
59
+ return;
60
+ }
61
+ await this.ensureConnected();
62
+ await this.scheduleReconnectAlarm();
63
+ }
64
+ async restore() {
65
+ const stored = await this.state.storage.get(gatewayConfigStorageKey);
66
+ const normalized = normalizeGatewayConfig(stored);
67
+ if (!normalized) {
68
+ this.config = null;
69
+ return;
70
+ }
71
+ this.config = normalized;
72
+ if (JSON.stringify(stored) !== JSON.stringify(normalized)) {
73
+ await this.state.storage.put(gatewayConfigStorageKey, normalized);
74
+ }
75
+ await this.ensureConnected();
76
+ await this.scheduleReconnectAlarm();
77
+ }
78
+ async ensureConnected() {
79
+ if (!this.config) {
80
+ return;
81
+ }
82
+ if (this.connecting) {
83
+ await this.connecting;
84
+ return;
85
+ }
86
+ if (this.gateway?.isConnected) {
87
+ return;
88
+ }
89
+ if (this.gateway) {
90
+ this.gateway.connect(true);
91
+ return;
92
+ }
93
+ this.connecting = (async () => {
94
+ if (!this.config) {
95
+ return;
96
+ }
97
+ const gateway = new GatewayPlugin({
98
+ intents: this.config.gateway.intents,
99
+ autoInteractions: this.config.gateway.autoInteractions,
100
+ reconnect: this.config.gateway.reconnect
101
+ });
102
+ await gateway.registerClient(this.createClientBridge(this.config));
103
+ this.gateway = gateway;
104
+ })();
105
+ try {
106
+ await this.connecting;
107
+ }
108
+ finally {
109
+ this.connecting = null;
110
+ }
111
+ }
112
+ async scheduleReconnectAlarm() {
113
+ if (!this.config) {
114
+ return;
115
+ }
116
+ await this.state.storage.setAlarm(Date.now() + reconnectAlarmIntervalMs);
117
+ }
118
+ createClientBridge(config) {
119
+ return {
120
+ options: {
121
+ token: config.token,
122
+ clientId: config.clientId
123
+ },
124
+ registerListener() { },
125
+ eventHandler: {
126
+ handleEvent: (data, type) => {
127
+ void this.forwardEvent(config, type, data);
128
+ return true;
129
+ }
130
+ }
131
+ };
132
+ }
133
+ async forwardEvent(config, type, data) {
134
+ try {
135
+ const response = await fetch(`${config.baseUrl}${config.forwardPath}`, {
136
+ method: "POST",
137
+ headers: {
138
+ "content-type": "application/json",
139
+ [config.secretHeader]: config.deploySecret
140
+ },
141
+ body: JSON.stringify({
142
+ type,
143
+ data
144
+ })
145
+ });
146
+ if (!response.ok) {
147
+ console.error(`[CloudflareGatewayDurableObject] Failed to forward event ${String(type)}: ${response.status}`);
148
+ }
149
+ }
150
+ catch (error) {
151
+ console.error(`[CloudflareGatewayDurableObject] Failed to forward event ${String(type)}`, error);
152
+ }
153
+ }
154
+ }
155
+ function normalizeGatewayConfig(value) {
156
+ if (!value || typeof value !== "object") {
157
+ return null;
158
+ }
159
+ const payload = value;
160
+ const baseUrl = typeof payload.baseUrl === "string"
161
+ ? payload.baseUrl.replace(/\/+$/, "")
162
+ : "";
163
+ const deploySecret = typeof payload.deploySecret === "string" ? payload.deploySecret : "";
164
+ const token = typeof payload.token === "string" ? payload.token : "";
165
+ const clientId = typeof payload.clientId === "string" ? payload.clientId : "";
166
+ if (!baseUrl || !deploySecret || !token || !clientId) {
167
+ return null;
168
+ }
169
+ const nestedGateway = payload.gateway;
170
+ const hasNestedGateway = nestedGateway && typeof nestedGateway === "object";
171
+ const intents = hasNestedGateway && typeof nestedGateway.intents === "number"
172
+ ? nestedGateway.intents
173
+ : typeof payload.intents === "number"
174
+ ? payload.intents
175
+ : null;
176
+ if (intents === null) {
177
+ return null;
178
+ }
179
+ const autoInteractions = hasNestedGateway
180
+ ? typeof nestedGateway.autoInteractions === "boolean"
181
+ ? nestedGateway.autoInteractions
182
+ : undefined
183
+ : typeof payload.autoInteractions === "boolean"
184
+ ? payload.autoInteractions
185
+ : undefined;
186
+ const reconnect = hasNestedGateway
187
+ ? nestedGateway.reconnect
188
+ : payload.reconnect;
189
+ const forwardPath = typeof payload.forwardPath === "string" &&
190
+ payload.forwardPath.startsWith("/")
191
+ ? payload.forwardPath
192
+ : defaultForwardPath;
193
+ const secretHeader = typeof payload.secretHeader === "string"
194
+ ? payload.secretHeader
195
+ : defaultSecretHeader;
196
+ return {
197
+ baseUrl,
198
+ deploySecret,
199
+ token,
200
+ clientId,
201
+ forwardPath,
202
+ secretHeader,
203
+ gateway: {
204
+ intents,
205
+ autoInteractions,
206
+ reconnect: reconnect
207
+ }
208
+ };
209
+ }
210
+ //# sourceMappingURL=CloudflareGatewayDurableObject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CloudflareGatewayDurableObject.js","sourceRoot":"","sources":["../../../../src/plugins/cloudflare-gateway/CloudflareGatewayDurableObject.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { type Context, Plugin } from "../../abstracts/Plugin.js";
2
+ import type { Client } from "../../classes/Client.js";
3
+ import type { CloudflareGatewayPluginOptions } from "./types.js";
4
+ export declare class CloudflareGatewayPlugin extends Plugin {
5
+ readonly id = "cloudflare-gateway";
6
+ readonly options: Required<Omit<CloudflareGatewayPluginOptions, "reconnect" | "autoInteractions">> & Pick<CloudflareGatewayPluginOptions, "reconnect" | "autoInteractions">;
7
+ protected client?: Client;
8
+ protected lastConnectAttempt: number;
9
+ constructor(options: CloudflareGatewayPluginOptions);
10
+ registerClient(client: Client): void;
11
+ registerRoutes(client: Client): void;
12
+ onRequest(req: Request, ctx: Context): undefined;
13
+ protected handleForwardRequest(req: Request): Promise<Response>;
14
+ protected connectDurableObject(env: Record<string, unknown>): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=CloudflareGatewayPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CloudflareGatewayPlugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/cloudflare-gateway/CloudflareGatewayPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAMrD,OAAO,KAAK,EAGX,8BAA8B,EAC9B,MAAM,YAAY,CAAA;AAWnB,qBAAa,uBAAwB,SAAQ,MAAM;IAClD,QAAQ,CAAC,EAAE,wBAAuB;IAClC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CACzB,IAAI,CAAC,8BAA8B,EAAE,WAAW,GAAG,kBAAkB,CAAC,CACtE,GACA,IAAI,CAAC,8BAA8B,EAAE,WAAW,GAAG,kBAAkB,CAAC,CAAA;IACvE,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,kBAAkB,SAAI;gBAEpB,OAAO,EAAE,8BAA8B;IAQnD,cAAc,CAAC,MAAM,EAAE,MAAM;IAM7B,cAAc,CAAC,MAAM,EAAE,MAAM;IAQ7B,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,GAAG,SAAS;cAgChC,oBAAoB,CAAC,GAAG,EAAE,OAAO;cA8BjC,oBAAoB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAqEjE"}
@@ -0,0 +1,129 @@
1
+ import { Plugin } from "../../abstracts/Plugin.js";
2
+ const defaults = {
3
+ forwardPath: "/__carbon/gateway-events",
4
+ secretHeader: "x-carbon-gateway-secret",
5
+ durableObjectBinding: "CARBON_GATEWAY",
6
+ durableObjectName: "default",
7
+ connectPath: "/connect",
8
+ connectDebounceMs: 10_000
9
+ };
10
+ export class CloudflareGatewayPlugin extends Plugin {
11
+ id = "cloudflare-gateway";
12
+ options;
13
+ client;
14
+ lastConnectAttempt = 0;
15
+ constructor(options) {
16
+ super();
17
+ this.options = {
18
+ ...defaults,
19
+ ...options
20
+ };
21
+ }
22
+ registerClient(client) {
23
+ this.client = client;
24
+ // Workers + forwarded gateway listeners should avoid cross-request scheduler promises.
25
+ client.rest.options.queueRequests = false;
26
+ }
27
+ registerRoutes(client) {
28
+ client.routes.push({
29
+ method: "POST",
30
+ path: this.options.forwardPath,
31
+ handler: this.handleForwardRequest.bind(this)
32
+ });
33
+ }
34
+ onRequest(req, ctx) {
35
+ if (!this.client) {
36
+ return;
37
+ }
38
+ const now = Date.now();
39
+ if (now - this.lastConnectAttempt < this.options.connectDebounceMs) {
40
+ return;
41
+ }
42
+ const url = new URL(req.url);
43
+ if (url.pathname === this.options.forwardPath) {
44
+ return;
45
+ }
46
+ const envValue = ctx && typeof ctx === "object" ? Reflect.get(ctx, "env") : null;
47
+ if (!envValue || typeof envValue !== "object") {
48
+ return;
49
+ }
50
+ const env = envValue;
51
+ this.lastConnectAttempt = now;
52
+ const connectPromise = this.connectDurableObject(env).catch((error) => {
53
+ console.error("[CloudflareGatewayPlugin] Failed to connect durable object", error);
54
+ });
55
+ ctx.waitUntil?.(connectPromise);
56
+ }
57
+ async handleForwardRequest(req) {
58
+ if (!this.client) {
59
+ return new Response("Service Unavailable", { status: 503 });
60
+ }
61
+ const deploySecret = typeof process === "undefined" ? "" : (process.env?.DEPLOY_SECRET ?? "");
62
+ if (req.headers.get(this.options.secretHeader) !== deploySecret) {
63
+ return new Response("Unauthorized", { status: 401 });
64
+ }
65
+ const payload = (await req.json());
66
+ if (!payload.type || !payload.data) {
67
+ return new Response("Bad Request", { status: 400 });
68
+ }
69
+ const type = payload.type;
70
+ const rawPayload = {
71
+ ...payload.data,
72
+ clientId: this.client.options.clientId
73
+ };
74
+ const accepted = this.client.eventHandler.handleEvent(rawPayload, type);
75
+ if (!accepted) {
76
+ return new Response("Service Unavailable", { status: 503 });
77
+ }
78
+ return new Response(null, { status: 204 });
79
+ }
80
+ async connectDurableObject(env) {
81
+ const namespaceValue = env[this.options.durableObjectBinding];
82
+ if (!namespaceValue || typeof namespaceValue !== "object") {
83
+ return;
84
+ }
85
+ const namespaceMethods = namespaceValue;
86
+ if (typeof namespaceMethods.idFromName !== "function" ||
87
+ typeof namespaceMethods.get !== "function") {
88
+ return;
89
+ }
90
+ const processEnv = typeof process === "undefined" ? undefined : process.env;
91
+ const baseUrl = processEnv?.BASE_URL ?? env.BASE_URL ?? "";
92
+ const deploySecret = processEnv?.DEPLOY_SECRET ??
93
+ env.DEPLOY_SECRET ??
94
+ "";
95
+ const token = processEnv?.DISCORD_BOT_TOKEN ??
96
+ env.DISCORD_BOT_TOKEN ??
97
+ "";
98
+ const clientId = processEnv?.DISCORD_CLIENT_ID ??
99
+ env.DISCORD_CLIENT_ID ??
100
+ "";
101
+ if (!baseUrl || !deploySecret || !token || !clientId) {
102
+ return;
103
+ }
104
+ const config = {
105
+ baseUrl,
106
+ deploySecret,
107
+ token,
108
+ clientId,
109
+ forwardPath: this.options.forwardPath,
110
+ secretHeader: this.options.secretHeader,
111
+ gateway: {
112
+ intents: this.options.intents,
113
+ autoInteractions: this.options.autoInteractions,
114
+ reconnect: this.options.reconnect
115
+ }
116
+ };
117
+ const namespace = namespaceValue;
118
+ const id = namespace.idFromName(this.options.durableObjectName);
119
+ const stub = namespace.get(id);
120
+ await stub.fetch(`https://carbon.gateway${this.options.connectPath}`, {
121
+ method: "POST",
122
+ headers: {
123
+ "content-type": "application/json"
124
+ },
125
+ body: JSON.stringify(config)
126
+ });
127
+ }
128
+ }
129
+ //# sourceMappingURL=CloudflareGatewayPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CloudflareGatewayPlugin.js","sourceRoot":"","sources":["../../../../src/plugins/cloudflare-gateway/CloudflareGatewayPlugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from "./CloudflareGatewayDurableObject.js";
2
+ export * from "./CloudflareGatewayPlugin.js";
3
+ export * from "./types.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/cloudflare-gateway/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAA;AACnD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,YAAY,CAAA"}
@@ -0,0 +1,4 @@
1
+ export * from "./CloudflareGatewayDurableObject.js";
2
+ export * from "./CloudflareGatewayPlugin.js";
3
+ export * from "./types.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/cloudflare-gateway/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAA;AACnD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,YAAY,CAAA"}