@shivaedev/github 0.0.0 → 0.5.1

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 (103) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +238 -1
  3. package/dist/GitHub.d.ts +93 -0
  4. package/dist/GitHub.d.ts.map +1 -0
  5. package/dist/GitHub.js +53 -0
  6. package/dist/GitHub.js.map +1 -0
  7. package/dist/GitHubConfig.d.ts +6 -0
  8. package/dist/GitHubConfig.d.ts.map +1 -0
  9. package/dist/GitHubConfig.js +5 -0
  10. package/dist/GitHubConfig.js.map +1 -0
  11. package/dist/GitHubToken.d.ts +9 -0
  12. package/dist/GitHubToken.d.ts.map +1 -0
  13. package/dist/GitHubToken.js +8 -0
  14. package/dist/GitHubToken.js.map +1 -0
  15. package/dist/TokenRefresh.d.ts +5 -0
  16. package/dist/TokenRefresh.d.ts.map +1 -0
  17. package/dist/TokenRefresh.js +5 -0
  18. package/dist/TokenRefresh.js.map +1 -0
  19. package/dist/appJwt.d.ts +8 -0
  20. package/dist/appJwt.d.ts.map +1 -0
  21. package/dist/appJwt.js +16 -0
  22. package/dist/appJwt.js.map +1 -0
  23. package/dist/artifacts.d.ts +16 -0
  24. package/dist/artifacts.d.ts.map +1 -0
  25. package/dist/artifacts.js +31 -0
  26. package/dist/artifacts.js.map +1 -0
  27. package/dist/authenticatedRequest.d.ts +8 -0
  28. package/dist/authenticatedRequest.d.ts.map +1 -0
  29. package/dist/authenticatedRequest.js +42 -0
  30. package/dist/authenticatedRequest.js.map +1 -0
  31. package/dist/cache.d.ts +12 -0
  32. package/dist/cache.d.ts.map +1 -0
  33. package/dist/cache.js +17 -0
  34. package/dist/cache.js.map +1 -0
  35. package/dist/checkRuns.d.ts +104 -0
  36. package/dist/checkRuns.d.ts.map +1 -0
  37. package/dist/checkRuns.js +42 -0
  38. package/dist/checkRuns.js.map +1 -0
  39. package/dist/errors.d.ts +44 -0
  40. package/dist/errors.d.ts.map +1 -0
  41. package/dist/errors.js +35 -0
  42. package/dist/errors.js.map +1 -0
  43. package/dist/githubApp.d.ts +24 -0
  44. package/dist/githubApp.d.ts.map +1 -0
  45. package/dist/githubApp.js +55 -0
  46. package/dist/githubApp.js.map +1 -0
  47. package/dist/json.d.ts +7 -0
  48. package/dist/json.d.ts.map +1 -0
  49. package/dist/json.js +14 -0
  50. package/dist/json.js.map +1 -0
  51. package/dist/markdown.d.ts +4 -0
  52. package/dist/markdown.d.ts.map +1 -0
  53. package/dist/markdown.js +24 -0
  54. package/dist/markdown.js.map +1 -0
  55. package/dist/markdownRows.d.ts +6 -0
  56. package/dist/markdownRows.d.ts.map +1 -0
  57. package/dist/markdownRows.js +26 -0
  58. package/dist/markdownRows.js.map +1 -0
  59. package/dist/rateLimits.d.ts +20 -0
  60. package/dist/rateLimits.d.ts.map +1 -0
  61. package/dist/rateLimits.js +43 -0
  62. package/dist/rateLimits.js.map +1 -0
  63. package/dist/representations.d.ts +18 -0
  64. package/dist/representations.d.ts.map +1 -0
  65. package/dist/representations.js +28 -0
  66. package/dist/representations.js.map +1 -0
  67. package/dist/requests.d.ts +10 -0
  68. package/dist/requests.d.ts.map +1 -0
  69. package/dist/requests.js +34 -0
  70. package/dist/requests.js.map +1 -0
  71. package/dist/status.d.ts +7 -0
  72. package/dist/status.d.ts.map +1 -0
  73. package/dist/status.js +57 -0
  74. package/dist/status.js.map +1 -0
  75. package/dist/stickyComments.d.ts +46 -0
  76. package/dist/stickyComments.d.ts.map +1 -0
  77. package/dist/stickyComments.js +37 -0
  78. package/dist/stickyComments.js.map +1 -0
  79. package/dist/verifyWebhook.d.ts +4 -0
  80. package/dist/verifyWebhook.d.ts.map +1 -0
  81. package/dist/verifyWebhook.js +14 -0
  82. package/dist/verifyWebhook.js.map +1 -0
  83. package/package.json +71 -4
  84. package/src/GitHub.ts +68 -0
  85. package/src/GitHubConfig.ts +5 -0
  86. package/src/GitHubToken.ts +16 -0
  87. package/src/TokenRefresh.ts +7 -0
  88. package/src/appJwt.ts +21 -0
  89. package/src/artifacts.ts +57 -0
  90. package/src/authenticatedRequest.ts +55 -0
  91. package/src/cache.ts +25 -0
  92. package/src/checkRuns.ts +48 -0
  93. package/src/errors.ts +34 -0
  94. package/src/githubApp.ts +87 -0
  95. package/src/json.ts +16 -0
  96. package/src/markdown.ts +25 -0
  97. package/src/markdownRows.ts +30 -0
  98. package/src/rateLimits.ts +56 -0
  99. package/src/representations.ts +57 -0
  100. package/src/requests.ts +44 -0
  101. package/src/status.ts +64 -0
  102. package/src/stickyComments.ts +49 -0
  103. package/src/verifyWebhook.ts +19 -0
@@ -0,0 +1,19 @@
1
+ import { createHmac, timingSafeEqual } from "node:crypto";
2
+ import { Effect, Redacted, Schema } from "effect";
3
+ import { GitHubWebhookSignatureError } from "./errors.ts";
4
+
5
+ export const verifyWebhook = Effect.fnUntraced(function* <TSchema extends Schema.Constraint>(
6
+ body: Uint8Array,
7
+ signature: string | undefined,
8
+ secret: Redacted.Redacted<string>,
9
+ schema: TSchema,
10
+ ) {
11
+ if (signature === undefined || !/^sha256=[0-9a-f]{64}$/u.test(signature)) {
12
+ return yield* new GitHubWebhookSignatureError();
13
+ }
14
+ const expected = createHmac("sha256", Redacted.value(secret)).update(body).digest();
15
+ if (!timingSafeEqual(expected, Buffer.from(signature.slice(7), "hex"))) {
16
+ return yield* new GitHubWebhookSignatureError();
17
+ }
18
+ return yield* Schema.decodeUnknownEffect(Schema.fromJsonString(schema))(new TextDecoder().decode(body));
19
+ });