@teever/ez-hook-effect 0.5.0 → 0.5.19

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 (58) hide show
  1. package/dist/errors/WebhookError.d.ts +295 -0
  2. package/dist/errors/WebhookError.js +322 -0
  3. package/dist/errors/WebhookError.js.map +1 -0
  4. package/dist/errors/index.d.ts +1 -0
  5. package/dist/errors/index.js +2 -0
  6. package/dist/errors/index.js.map +1 -0
  7. package/dist/index.d.ts +89 -0
  8. package/dist/index.js +17 -965
  9. package/dist/index.js.map +5 -13
  10. package/dist/layers/Config.d.ts +48 -0
  11. package/dist/layers/Config.js +166 -0
  12. package/dist/layers/Config.js.map +1 -0
  13. package/dist/layers/Default.d.ts +6 -0
  14. package/dist/layers/Default.js +9 -0
  15. package/dist/layers/Default.js.map +1 -0
  16. package/dist/layers/HttpClient.d.ts +84 -0
  17. package/dist/layers/HttpClient.js +209 -0
  18. package/dist/layers/HttpClient.js.map +1 -0
  19. package/dist/layers/index.d.ts +2 -0
  20. package/dist/layers/index.js +3 -0
  21. package/dist/layers/index.js.map +1 -0
  22. package/dist/pipes/Embed.d.ts +51 -0
  23. package/dist/pipes/Embed.js +198 -0
  24. package/dist/pipes/Embed.js.map +1 -0
  25. package/dist/pipes/Webhook.d.ts +38 -0
  26. package/dist/pipes/Webhook.js +46 -0
  27. package/dist/pipes/Webhook.js.map +1 -0
  28. package/dist/pipes/index.d.ts +2 -0
  29. package/dist/pipes/index.js +3 -0
  30. package/dist/pipes/index.js.map +1 -0
  31. package/dist/schemas/Common.d.ts +10 -0
  32. package/dist/schemas/Common.js +30 -0
  33. package/dist/schemas/Common.js.map +1 -0
  34. package/dist/schemas/Discord.d.ts +16 -0
  35. package/dist/schemas/Discord.js +19 -0
  36. package/dist/schemas/Discord.js.map +1 -0
  37. package/dist/schemas/Embed.d.ts +143 -0
  38. package/dist/schemas/Embed.js +139 -0
  39. package/dist/schemas/Embed.js.map +1 -0
  40. package/dist/schemas/Field.d.ts +24 -0
  41. package/dist/schemas/Field.js +25 -0
  42. package/dist/schemas/Field.js.map +1 -0
  43. package/dist/schemas/Webhook.d.ts +88 -0
  44. package/dist/schemas/Webhook.js +87 -0
  45. package/dist/schemas/Webhook.js.map +1 -0
  46. package/dist/schemas/index.d.ts +5 -0
  47. package/dist/schemas/index.js +6 -0
  48. package/dist/schemas/index.js.map +1 -0
  49. package/dist/services/WebhookService.d.ts +94 -0
  50. package/dist/services/WebhookService.js +116 -0
  51. package/dist/services/WebhookService.js.map +1 -0
  52. package/dist/services/index.d.ts +1 -0
  53. package/dist/services/index.js +2 -0
  54. package/dist/services/index.js.map +1 -0
  55. package/dist/utils/normalize.d.ts +1 -0
  56. package/dist/utils/normalize.js +17 -0
  57. package/dist/utils/normalize.js.map +1 -0
  58. package/package.json +56 -55
@@ -0,0 +1,89 @@
1
+ /**
2
+ * ez-hook-effect - Discord webhook library built with Effect
3
+ *
4
+ * Type-safe, composable, and resilient Discord webhook client.
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * import { Webhook, Embed, sendWebhook, WebhookServiceLive, makeConfigLayer, HttpClientLive } from "ez-hook-effect";
9
+ * import { Effect, Layer, pipe } from "effect";
10
+ *
11
+ * const webhook = pipe(
12
+ * Webhook.make,
13
+ * Webhook.setContent("Hello from Effect!"),
14
+ * Webhook.build
15
+ * );
16
+ *
17
+ * const layer = WebhookServiceLive.pipe(
18
+ * Layer.provide(makeConfigLayer("https://discord.com/api/webhooks/...")),
19
+ * Layer.provide(HttpClientLive)
20
+ * );
21
+ *
22
+ * Effect.gen(function* () {
23
+ * const msg = yield* webhook;
24
+ * yield* sendWebhook(msg);
25
+ * }).pipe(Effect.provide(layer), Effect.runPromise);
26
+ * ```
27
+ *
28
+ * @packageDocumentation
29
+ */
30
+ /** Error types for handling webhook failures */
31
+ export { ConfigError, FileError, formatWebhookError, HttpError, type HttpErrorResponse, makeIssue, NetworkError, parseErrorToIssues, RateLimitError, ValidationError, type ValidationIssue, webhookErrorToLogObject, WebhookError, type WebhookErrors, } from "./errors";
32
+ /**
33
+ * Configuration service and layers.
34
+ * Use makeConfigLayer for programmatic config or ConfigFromEnv for environment variables.
35
+ */
36
+ export { Config, ConfigFromEnv, makeConfig, makeConfigLayer, parseWebhookUrl, type WebhookConfig, } from "./layers/Config";
37
+ /**
38
+ * HTTP client service and layers.
39
+ * Provides fetch-based HTTP client with retry and rate limit support.
40
+ */
41
+ export { createRetrySchedule, defaultRetryConfig, FetchHttpClient, HttpClient, HttpClientLive, type HttpRequest, type HttpResponse, makeHttpClientLayer, makeTestHttpClient, parseRateLimitHeaders, type RateLimitInfo, type RetryConfig, } from "./layers/HttpClient";
42
+ /**
43
+ * Convenience layer to wire Config + HttpClient + WebhookService.
44
+ */
45
+ export { makeDefaultLayer } from "./layers/Default";
46
+ /**
47
+ * Embed builder namespace.
48
+ * Pipe-first API for building Discord embed objects.
49
+ *
50
+ * @example
51
+ * ```ts
52
+ * import { Embed } from "ez-hook-effect";
53
+ * import { pipe } from "effect";
54
+ *
55
+ * const embed = pipe(
56
+ * Embed.make,
57
+ * Embed.setTitle("Hello"),
58
+ * Embed.setDescription("World"),
59
+ * Embed.setColor("#5865F2"),
60
+ * Embed.build
61
+ * );
62
+ * ```
63
+ */
64
+ export * as Embed from "./pipes/Embed";
65
+ /**
66
+ * Webhook builder namespace.
67
+ * Pipe-first API for building Discord webhook payloads.
68
+ *
69
+ * @example
70
+ * ```ts
71
+ * import { Webhook } from "ez-hook-effect";
72
+ * import { pipe } from "effect";
73
+ *
74
+ * const webhook = pipe(
75
+ * Webhook.make,
76
+ * Webhook.setUsername("Bot"),
77
+ * Webhook.setContent("Hello!"),
78
+ * Webhook.build
79
+ * );
80
+ * ```
81
+ */
82
+ export * as Webhook from "./pipes/Webhook";
83
+ /** Schema types for Discord webhook payloads */
84
+ export * from "./schemas";
85
+ /**
86
+ * Webhook service and module-level accessors.
87
+ * Use these with Effect.flatMap or Effect.gen for sending webhooks.
88
+ */
89
+ export { deleteWebhook, getWebhook, makeWebhookService, modifyWebhook, sendWebhook, sendWebhookRaw, validateWebhook, type SendWebhookRawResult, WebhookService, WebhookServiceLive, } from "./services/WebhookService";