@keystrokehq/sentry 0.0.1 → 0.0.4

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 (57) hide show
  1. package/LICENSE +21 -0
  2. package/dist/_official/index.d.mts +45 -2
  3. package/dist/_official/index.mjs +1 -1
  4. package/dist/_runtime/index.d.mts +1 -1
  5. package/dist/_runtime/index.mjs +1 -1
  6. package/dist/alerts.d.mts +22 -22
  7. package/dist/alerts.mjs +1 -1
  8. package/dist/connection.d.mts +1 -1
  9. package/dist/connection.mjs +1 -1
  10. package/dist/dashboards.d.mts +10 -10
  11. package/dist/dashboards.mjs +1 -1
  12. package/dist/debug-files.d.mts +6 -6
  13. package/dist/debug-files.mjs +1 -1
  14. package/dist/deploys.d.mts +4 -4
  15. package/dist/deploys.mjs +1 -1
  16. package/dist/discover.d.mts +10 -10
  17. package/dist/discover.mjs +1 -1
  18. package/dist/{endpoint-factory-BwjbcPwW.mjs → endpoint-factory-haY-k3xe.mjs} +1 -1
  19. package/dist/environments.d.mts +8 -8
  20. package/dist/environments.mjs +1 -1
  21. package/dist/events-api.d.mts +14 -14
  22. package/dist/events-api.mjs +1 -1
  23. package/dist/feedback.d.mts +4 -4
  24. package/dist/feedback.mjs +1 -1
  25. package/dist/{integration-C8KHkeNG.d.mts → integration-BaLZqIqf.d.mts} +1 -1
  26. package/dist/{integration-WwY95cWE.mjs → integration-CsUeRf7e.mjs} +2 -2
  27. package/dist/issues.d.mts +36 -36
  28. package/dist/issues.mjs +1 -1
  29. package/dist/members.d.mts +14 -14
  30. package/dist/members.mjs +1 -1
  31. package/dist/monitors.d.mts +20 -20
  32. package/dist/monitors.mjs +1 -1
  33. package/dist/notifications.d.mts +10 -10
  34. package/dist/notifications.mjs +1 -1
  35. package/dist/organizations.d.mts +32 -32
  36. package/dist/organizations.mjs +1 -1
  37. package/dist/project-keys.d.mts +10 -10
  38. package/dist/project-keys.mjs +1 -1
  39. package/dist/projects.d.mts +38 -38
  40. package/dist/projects.mjs +1 -1
  41. package/dist/releases.d.mts +42 -42
  42. package/dist/releases.mjs +1 -1
  43. package/dist/replays.d.mts +18 -18
  44. package/dist/replays.mjs +1 -1
  45. package/dist/schemas.d.mts +2 -2
  46. package/dist/scim.d.mts +22 -22
  47. package/dist/scim.mjs +1 -1
  48. package/dist/teams.d.mts +28 -28
  49. package/dist/teams.mjs +1 -1
  50. package/dist/triggers.d.mts +6 -48
  51. package/dist/triggers.mjs +6 -213
  52. package/dist/user-emails.d.mts +8 -8
  53. package/dist/user-emails.mjs +1 -1
  54. package/dist/webhooks.d.mts +10 -10
  55. package/dist/webhooks.mjs +1 -1
  56. package/package.json +19 -20
  57. package/dist/provider-app-BANn4KOL.d.mts +0 -45
package/dist/triggers.mjs CHANGED
@@ -1,212 +1,8 @@
1
- import { i as sentryAppCredentialSet, t as sentry } from "./integration-WwY95cWE.mjs";
2
1
  import { createSentryClient } from "./client.mjs";
3
- import { sentryCommentCreatedEventSchema, sentryCommentDeletedEventSchema, sentryCommentUpdatedEventSchema, sentryDiscoverEventsPollResponseSchema, sentryErrorCreatedEventSchema, sentryEventAlertTriggeredEventSchema, sentryInstallationCreatedEventSchema, sentryInstallationDeletedEventSchema, sentryIssueArchivedEventSchema, sentryIssueAssignedEventSchema, sentryIssueCreatedEventSchema, sentryIssueIgnoredEventSchema, sentryIssueResolvedEventSchema, sentryIssueUnresolvedEventSchema, sentryMetricAlertCriticalEventSchema, sentryMetricAlertResolvedEventSchema, sentryMetricAlertWarningEventSchema, sentryPreprodArtifactBuildDistributionCompletedEventSchema, sentryPreprodArtifactSizeAnalysisCompletedEventSchema, sentrySeerCodingCompletedEventSchema, sentrySeerCodingStartedEventSchema, sentrySeerPrCreatedEventSchema, sentrySeerRootCauseCompletedEventSchema, sentrySeerRootCauseStartedEventSchema, sentrySeerSolutionCompletedEventSchema, sentrySeerSolutionStartedEventSchema, sentryServiceHookEventAlertSchema } from "./events.mjs";
4
- import { createPollingTriggerBindingFactory, createWebhookTriggerBindingFactory } from "@keystrokehq/integration-authoring";
2
+ import { sentryDiscoverEventsPollResponseSchema } from "./events.mjs";
3
+ import { createPollingTriggerBindingFactory } from "@keystrokehq/integration-authoring";
5
4
 
6
5
  //#region src/triggers.ts
7
- const INTEGRATION_WEBHOOK_PATH = "/sentry";
8
- const SERVICE_HOOK_PATH = "/sentry/service-hook";
9
- const integrationCredentialSets = [sentry, sentryAppCredentialSet];
10
- const serviceHookCredentialSets = [sentry];
11
- const discoverPollingCredentialSets = [sentry];
12
- function createIntegrationWebhookBinding(config) {
13
- return createWebhookTriggerBindingFactory({
14
- defaultName: config.defaultName,
15
- defaultDescription: config.defaultDescription,
16
- path: INTEGRATION_WEBHOOK_PATH,
17
- method: "POST",
18
- payload: config.payload,
19
- credentialSets: integrationCredentialSets,
20
- idempotencyKey: (payload) => config.idempotencyKey(payload)
21
- });
22
- }
23
- const installationCreatedBind = createIntegrationWebhookBinding({
24
- defaultName: "Sentry Installation Created",
25
- defaultDescription: "Fired when the Sentry app is installed on an organization.",
26
- payload: sentryInstallationCreatedEventSchema,
27
- idempotencyKey: (p) => `installation.created:${p.installation.uuid}`
28
- });
29
- const installationDeletedBind = createIntegrationWebhookBinding({
30
- defaultName: "Sentry Installation Deleted",
31
- defaultDescription: "Fired when the Sentry app is uninstalled from an organization.",
32
- payload: sentryInstallationDeletedEventSchema,
33
- idempotencyKey: (p) => `installation.deleted:${p.installation.uuid}`
34
- });
35
- const issueCreatedBind = createIntegrationWebhookBinding({
36
- defaultName: "Sentry Issue Created",
37
- defaultDescription: "Fired when a new Sentry issue is created.",
38
- payload: sentryIssueCreatedEventSchema,
39
- idempotencyKey: (p) => `issue.created:${p.data.issue.id}`
40
- });
41
- const issueResolvedBind = createIntegrationWebhookBinding({
42
- defaultName: "Sentry Issue Resolved",
43
- defaultDescription: "Fired when a Sentry issue transitions to resolved.",
44
- payload: sentryIssueResolvedEventSchema,
45
- idempotencyKey: (p) => `issue.resolved:${p.data.issue.id}`
46
- });
47
- const issueAssignedBind = createIntegrationWebhookBinding({
48
- defaultName: "Sentry Issue Assigned",
49
- defaultDescription: "Fired when a Sentry issue is assigned to a team or user.",
50
- payload: sentryIssueAssignedEventSchema,
51
- idempotencyKey: (p) => `issue.assigned:${p.data.issue.id}:${String(p.actor?.id ?? "anon")}`
52
- });
53
- const issueUnresolvedBind = createIntegrationWebhookBinding({
54
- defaultName: "Sentry Issue Unresolved",
55
- defaultDescription: "Fired when a Sentry issue regresses or is re-opened.",
56
- payload: sentryIssueUnresolvedEventSchema,
57
- idempotencyKey: (p) => `issue.unresolved:${p.data.issue.id}`
58
- });
59
- const issueIgnoredBind = createIntegrationWebhookBinding({
60
- defaultName: "Sentry Issue Ignored",
61
- defaultDescription: "Fired when a Sentry issue is ignored/muted (legacy action; superseded by `archived`).",
62
- payload: sentryIssueIgnoredEventSchema,
63
- idempotencyKey: (p) => `issue.ignored:${p.data.issue.id}`
64
- });
65
- const issueArchivedBind = createIntegrationWebhookBinding({
66
- defaultName: "Sentry Issue Archived",
67
- defaultDescription: "Fired when a Sentry issue is archived (new state model).",
68
- payload: sentryIssueArchivedEventSchema,
69
- idempotencyKey: (p) => `issue.archived:${p.data.issue.id}`
70
- });
71
- const errorCreatedBind = createIntegrationWebhookBinding({
72
- defaultName: "Sentry Error Created",
73
- defaultDescription: "Fired for every new error event delivered when the integration subscribes to the `error` resource. This is high volume — always pair with a filter.",
74
- payload: sentryErrorCreatedEventSchema,
75
- idempotencyKey: (p) => `error.created:${p.data.error.event_id ?? "unknown"}`
76
- });
77
- const commentCreatedBind = createIntegrationWebhookBinding({
78
- defaultName: "Sentry Comment Created",
79
- defaultDescription: "Fired when a new comment is posted on a Sentry issue.",
80
- payload: sentryCommentCreatedEventSchema,
81
- idempotencyKey: (p) => `comment.created:${String(p.data.comment_id ?? "unknown")}:${String(p.data.timestamp ?? "")}`
82
- });
83
- const commentUpdatedBind = createIntegrationWebhookBinding({
84
- defaultName: "Sentry Comment Updated",
85
- defaultDescription: "Fired when a Sentry issue comment is edited.",
86
- payload: sentryCommentUpdatedEventSchema,
87
- idempotencyKey: (p) => `comment.updated:${String(p.data.comment_id ?? "unknown")}:${String(p.data.timestamp ?? "")}`
88
- });
89
- const commentDeletedBind = createIntegrationWebhookBinding({
90
- defaultName: "Sentry Comment Deleted",
91
- defaultDescription: "Fired when a Sentry issue comment is removed.",
92
- payload: sentryCommentDeletedEventSchema,
93
- idempotencyKey: (p) => `comment.deleted:${String(p.data.comment_id ?? "unknown")}`
94
- });
95
- const eventAlertTriggeredBind = createIntegrationWebhookBinding({
96
- defaultName: "Sentry Event Alert Triggered",
97
- defaultDescription: "Fired when a Sentry issue-alert-rule condition fires.",
98
- payload: sentryEventAlertTriggeredEventSchema,
99
- idempotencyKey: (p) => `event_alert.triggered:${String(p.data.triggered_rule ?? "rule")}:${String(p.data.issue_id ?? "no-issue")}`
100
- });
101
- const metricAlertCriticalBind = createIntegrationWebhookBinding({
102
- defaultName: "Sentry Metric Alert Critical",
103
- defaultDescription: "Fired when a Sentry metric alert crosses the critical threshold.",
104
- payload: sentryMetricAlertCriticalEventSchema,
105
- idempotencyKey: (p) => `metric_alert.critical:${String(p.data.metric_alert.id)}:${String(p.data.metric_alert.status ?? "")}`
106
- });
107
- const metricAlertWarningBind = createIntegrationWebhookBinding({
108
- defaultName: "Sentry Metric Alert Warning",
109
- defaultDescription: "Fired when a Sentry metric alert crosses the warning threshold.",
110
- payload: sentryMetricAlertWarningEventSchema,
111
- idempotencyKey: (p) => `metric_alert.warning:${String(p.data.metric_alert.id)}:${String(p.data.metric_alert.status ?? "")}`
112
- });
113
- const metricAlertResolvedBind = createIntegrationWebhookBinding({
114
- defaultName: "Sentry Metric Alert Resolved",
115
- defaultDescription: "Fired when a Sentry metric alert returns to a healthy state.",
116
- payload: sentryMetricAlertResolvedEventSchema,
117
- idempotencyKey: (p) => `metric_alert.resolved:${String(p.data.metric_alert.id)}:${String(p.data.metric_alert.status ?? "")}`
118
- });
119
- const seerRootCauseStartedBind = createIntegrationWebhookBinding({
120
- defaultName: "Sentry Seer Root Cause Started",
121
- defaultDescription: "Fired when Seer root-cause analysis begins.",
122
- payload: sentrySeerRootCauseStartedEventSchema,
123
- idempotencyKey: (p) => `seer.root_cause_started:${p.data.run_id}`
124
- });
125
- const seerRootCauseCompletedBind = createIntegrationWebhookBinding({
126
- defaultName: "Sentry Seer Root Cause Completed",
127
- defaultDescription: "Fired when Seer root-cause analysis completes.",
128
- payload: sentrySeerRootCauseCompletedEventSchema,
129
- idempotencyKey: (p) => `seer.root_cause_completed:${p.data.run_id}`
130
- });
131
- const seerSolutionStartedBind = createIntegrationWebhookBinding({
132
- defaultName: "Sentry Seer Solution Started",
133
- defaultDescription: "Fired when Seer solution generation begins.",
134
- payload: sentrySeerSolutionStartedEventSchema,
135
- idempotencyKey: (p) => `seer.solution_started:${p.data.run_id}`
136
- });
137
- const seerSolutionCompletedBind = createIntegrationWebhookBinding({
138
- defaultName: "Sentry Seer Solution Completed",
139
- defaultDescription: "Fired when Seer has generated a solution.",
140
- payload: sentrySeerSolutionCompletedEventSchema,
141
- idempotencyKey: (p) => `seer.solution_completed:${p.data.run_id}`
142
- });
143
- const seerCodingStartedBind = createIntegrationWebhookBinding({
144
- defaultName: "Sentry Seer Coding Started",
145
- defaultDescription: "Fired when the Seer coding step begins.",
146
- payload: sentrySeerCodingStartedEventSchema,
147
- idempotencyKey: (p) => `seer.coding_started:${p.data.run_id}`
148
- });
149
- const seerCodingCompletedBind = createIntegrationWebhookBinding({
150
- defaultName: "Sentry Seer Coding Completed",
151
- defaultDescription: "Fired when Seer code changes are ready.",
152
- payload: sentrySeerCodingCompletedEventSchema,
153
- idempotencyKey: (p) => `seer.coding_completed:${p.data.run_id}`
154
- });
155
- const seerPrCreatedBind = createIntegrationWebhookBinding({
156
- defaultName: "Sentry Seer PR Created",
157
- defaultDescription: "Fired when Seer opens a pull request with the fix.",
158
- payload: sentrySeerPrCreatedEventSchema,
159
- idempotencyKey: (p) => `seer.pr_created:${p.data.run_id}`
160
- });
161
- const preprodSizeAnalysisCompletedBind = createIntegrationWebhookBinding({
162
- defaultName: "Sentry Preprod Size Analysis Completed",
163
- defaultDescription: "Fired when mobile-build size analysis completes or fails.",
164
- payload: sentryPreprodArtifactSizeAnalysisCompletedEventSchema,
165
- idempotencyKey: (p) => `preprod_artifact.size_analysis_completed:${p.data.buildId}`
166
- });
167
- const preprodBuildDistributionCompletedBind = createIntegrationWebhookBinding({
168
- defaultName: "Sentry Preprod Build Distribution Completed",
169
- defaultDescription: "Fired when build-distribution processing completes or fails for a mobile artifact.",
170
- payload: sentryPreprodArtifactBuildDistributionCompletedEventSchema,
171
- idempotencyKey: (p) => `preprod_artifact.build_distribution_completed:${p.data.buildId}`
172
- });
173
- const serviceHookEventAlertBind = createWebhookTriggerBindingFactory({
174
- defaultName: "Sentry Project Service Hook",
175
- defaultDescription: "Legacy per-project service-hook delivery. Signed with a per-hook secret.",
176
- path: SERVICE_HOOK_PATH,
177
- method: "POST",
178
- payload: sentryServiceHookEventAlertSchema,
179
- credentialSets: serviceHookCredentialSets,
180
- idempotencyKey: (payload) => payload.event_id != null ? `service_hook.event.alert:${payload.event_id}` : void 0
181
- });
182
- const on = Object.freeze({
183
- installationCreated: installationCreatedBind,
184
- installationDeleted: installationDeletedBind,
185
- issueCreated: issueCreatedBind,
186
- issueResolved: issueResolvedBind,
187
- issueAssigned: issueAssignedBind,
188
- issueUnresolved: issueUnresolvedBind,
189
- issueIgnored: issueIgnoredBind,
190
- issueArchived: issueArchivedBind,
191
- errorCreated: errorCreatedBind,
192
- commentCreated: commentCreatedBind,
193
- commentUpdated: commentUpdatedBind,
194
- commentDeleted: commentDeletedBind,
195
- eventAlertTriggered: eventAlertTriggeredBind,
196
- metricAlertCritical: metricAlertCriticalBind,
197
- metricAlertWarning: metricAlertWarningBind,
198
- metricAlertResolved: metricAlertResolvedBind,
199
- seerRootCauseStarted: seerRootCauseStartedBind,
200
- seerRootCauseCompleted: seerRootCauseCompletedBind,
201
- seerSolutionStarted: seerSolutionStartedBind,
202
- seerSolutionCompleted: seerSolutionCompletedBind,
203
- seerCodingStarted: seerCodingStartedBind,
204
- seerCodingCompleted: seerCodingCompletedBind,
205
- seerPrCreated: seerPrCreatedBind,
206
- preprodSizeAnalysisCompleted: preprodSizeAnalysisCompletedBind,
207
- preprodBuildDistributionCompleted: preprodBuildDistributionCompletedBind
208
- });
209
- const webhooks = Object.freeze({ serviceHookEventAlert: serviceHookEventAlertBind });
210
6
  function withDefaultSchedule(schedule) {
211
7
  if (schedule === void 0) return "5m";
212
8
  return schedule;
@@ -243,21 +39,18 @@ function computeDiscoverEventsPollIdempotencyKey(response) {
243
39
  }
244
40
  function bindDiscoverEventsPollingTrigger(params, options) {
245
41
  return createPollingTriggerBindingFactory({
246
- defaultName: "Sentry Discover Events Poll",
42
+ defaultId: "sentry.discover_events.poll",
247
43
  defaultDescription: "Poll the Sentry Discover events endpoint on a schedule and emit new rows as triggers.",
248
44
  schedule: withDefaultSchedule(options?.schedule),
249
- credentialSets: discoverPollingCredentialSets,
250
45
  response: sentryDiscoverEventsPollResponseSchema,
251
- poll: async (ctx) => executeDiscoverEventsPoll(params, ctx.credentials.sentry),
252
- idempotencyKey: (response) => computeDiscoverEventsPollIdempotencyKey(response)
46
+ poll: async (ctx) => executeDiscoverEventsPoll(params, ctx.credentials.sentry)
253
47
  })({
254
- ...options?.name ? { name: options.name } : {},
48
+ ...options?.id ? { id: options.id } : {},
255
49
  ...options?.description ? { description: options.description } : {},
256
- ...options?.filter ? { filter: options.filter } : {},
257
50
  ...options?.transform ? { transform: options.transform } : {}
258
51
  });
259
52
  }
260
53
  const polling = Object.freeze({ discoverEvents: bindDiscoverEventsPollingTrigger });
261
54
 
262
55
  //#endregion
263
- export { computeDiscoverEventsPollIdempotencyKey, executeDiscoverEventsPoll, on, polling, webhooks };
56
+ export { computeDiscoverEventsPollIdempotencyKey, executeDiscoverEventsPoll, polling };
@@ -7,7 +7,7 @@ declare const retrieveUserEmailInformation: _keystrokehq_core0.Operation<z.ZodOb
7
7
  email: z.ZodString;
8
8
  isPrimary: z.ZodOptional<z.ZodBoolean>;
9
9
  isVerified: z.ZodOptional<z.ZodBoolean>;
10
- }, z.core.$loose>>, readonly [_keystrokehq_core0.CredentialSet<"sentry", z.ZodObject<{
10
+ }, z.core.$loose>>, readonly [_keystrokehq_core0.CredentialSet<"keystroke:sentry", z.ZodObject<{
11
11
  SENTRY_ACCESS_TOKEN: z.ZodString;
12
12
  SENTRY_REGION_URL: z.ZodOptional<z.ZodString>;
13
13
  SENTRY_ORG_SLUG: z.ZodOptional<z.ZodString>;
@@ -22,7 +22,7 @@ declare const addRemoveUserEmailById: _keystrokehq_core0.Operation<z.ZodObject<{
22
22
  email: z.ZodString;
23
23
  isPrimary: z.ZodOptional<z.ZodBoolean>;
24
24
  isVerified: z.ZodOptional<z.ZodBoolean>;
25
- }, z.core.$loose>, readonly [_keystrokehq_core0.CredentialSet<"sentry", z.ZodObject<{
25
+ }, z.core.$loose>, readonly [_keystrokehq_core0.CredentialSet<"keystroke:sentry", z.ZodObject<{
26
26
  SENTRY_ACCESS_TOKEN: z.ZodString;
27
27
  SENTRY_REGION_URL: z.ZodOptional<z.ZodString>;
28
28
  SENTRY_ORG_SLUG: z.ZodOptional<z.ZodString>;
@@ -37,7 +37,7 @@ declare const updateUserEmail: _keystrokehq_core0.Operation<z.ZodObject<{
37
37
  email: z.ZodString;
38
38
  isPrimary: z.ZodOptional<z.ZodBoolean>;
39
39
  isVerified: z.ZodOptional<z.ZodBoolean>;
40
- }, z.core.$loose>, readonly [_keystrokehq_core0.CredentialSet<"sentry", z.ZodObject<{
40
+ }, z.core.$loose>, readonly [_keystrokehq_core0.CredentialSet<"keystroke:sentry", z.ZodObject<{
41
41
  SENTRY_ACCESS_TOKEN: z.ZodString;
42
42
  SENTRY_REGION_URL: z.ZodOptional<z.ZodString>;
43
43
  SENTRY_ORG_SLUG: z.ZodOptional<z.ZodString>;
@@ -48,7 +48,7 @@ declare const updateUserEmail: _keystrokehq_core0.Operation<z.ZodObject<{
48
48
  }, z.core.$strip>>[] | undefined>], undefined>;
49
49
  declare const deleteUserEmailsById: _keystrokehq_core0.Operation<z.ZodObject<{
50
50
  email: z.ZodString;
51
- }, z.core.$strip>, z.ZodUnknown, readonly [_keystrokehq_core0.CredentialSet<"sentry", z.ZodObject<{
51
+ }, z.core.$strip>, z.ZodUnknown, readonly [_keystrokehq_core0.CredentialSet<"keystroke:sentry", z.ZodObject<{
52
52
  SENTRY_ACCESS_TOKEN: z.ZodString;
53
53
  SENTRY_REGION_URL: z.ZodOptional<z.ZodString>;
54
54
  SENTRY_ORG_SLUG: z.ZodOptional<z.ZodString>;
@@ -62,7 +62,7 @@ declare const sentryUserEmailOperations: {
62
62
  email: z.ZodString;
63
63
  isPrimary: z.ZodOptional<z.ZodBoolean>;
64
64
  isVerified: z.ZodOptional<z.ZodBoolean>;
65
- }, z.core.$loose>>, readonly [_keystrokehq_core0.CredentialSet<"sentry", z.ZodObject<{
65
+ }, z.core.$loose>>, readonly [_keystrokehq_core0.CredentialSet<"keystroke:sentry", z.ZodObject<{
66
66
  SENTRY_ACCESS_TOKEN: z.ZodString;
67
67
  SENTRY_REGION_URL: z.ZodOptional<z.ZodString>;
68
68
  SENTRY_ORG_SLUG: z.ZodOptional<z.ZodString>;
@@ -77,7 +77,7 @@ declare const sentryUserEmailOperations: {
77
77
  email: z.ZodString;
78
78
  isPrimary: z.ZodOptional<z.ZodBoolean>;
79
79
  isVerified: z.ZodOptional<z.ZodBoolean>;
80
- }, z.core.$loose>, readonly [_keystrokehq_core0.CredentialSet<"sentry", z.ZodObject<{
80
+ }, z.core.$loose>, readonly [_keystrokehq_core0.CredentialSet<"keystroke:sentry", z.ZodObject<{
81
81
  SENTRY_ACCESS_TOKEN: z.ZodString;
82
82
  SENTRY_REGION_URL: z.ZodOptional<z.ZodString>;
83
83
  SENTRY_ORG_SLUG: z.ZodOptional<z.ZodString>;
@@ -92,7 +92,7 @@ declare const sentryUserEmailOperations: {
92
92
  email: z.ZodString;
93
93
  isPrimary: z.ZodOptional<z.ZodBoolean>;
94
94
  isVerified: z.ZodOptional<z.ZodBoolean>;
95
- }, z.core.$loose>, readonly [_keystrokehq_core0.CredentialSet<"sentry", z.ZodObject<{
95
+ }, z.core.$loose>, readonly [_keystrokehq_core0.CredentialSet<"keystroke:sentry", z.ZodObject<{
96
96
  SENTRY_ACCESS_TOKEN: z.ZodString;
97
97
  SENTRY_REGION_URL: z.ZodOptional<z.ZodString>;
98
98
  SENTRY_ORG_SLUG: z.ZodOptional<z.ZodString>;
@@ -103,7 +103,7 @@ declare const sentryUserEmailOperations: {
103
103
  }, z.core.$strip>>[] | undefined>], undefined>;
104
104
  readonly deleteUserEmailsById: _keystrokehq_core0.Operation<z.ZodObject<{
105
105
  email: z.ZodString;
106
- }, z.core.$strip>, z.ZodUnknown, readonly [_keystrokehq_core0.CredentialSet<"sentry", z.ZodObject<{
106
+ }, z.core.$strip>, z.ZodUnknown, readonly [_keystrokehq_core0.CredentialSet<"keystroke:sentry", z.ZodObject<{
107
107
  SENTRY_ACCESS_TOKEN: z.ZodString;
108
108
  SENTRY_REGION_URL: z.ZodOptional<z.ZodString>;
109
109
  SENTRY_ORG_SLUG: z.ZodOptional<z.ZodString>;
@@ -1,5 +1,5 @@
1
1
  import { sentryUserEmailSchema } from "./schemas.mjs";
2
- import { t as defineSentryEndpoint } from "./endpoint-factory-BwjbcPwW.mjs";
2
+ import { t as defineSentryEndpoint } from "./endpoint-factory-haY-k3xe.mjs";
3
3
  import { z } from "zod";
4
4
 
5
5
  //#region src/user-emails.ts
@@ -14,7 +14,7 @@ declare const createProjectWebhookSubscription: _keystrokehq_core0.Operation<z.Z
14
14
  events: z.ZodArray<z.ZodString>;
15
15
  dateCreated: z.ZodOptional<z.ZodISODateTime>;
16
16
  disabled: z.ZodOptional<z.ZodBoolean>;
17
- }, z.core.$loose>, readonly [_keystrokehq_core0.CredentialSet<"sentry", z.ZodObject<{
17
+ }, z.core.$loose>, readonly [_keystrokehq_core0.CredentialSet<"keystroke:sentry", z.ZodObject<{
18
18
  SENTRY_ACCESS_TOKEN: z.ZodString;
19
19
  SENTRY_REGION_URL: z.ZodOptional<z.ZodString>;
20
20
  SENTRY_ORG_SLUG: z.ZodOptional<z.ZodString>;
@@ -35,7 +35,7 @@ declare const retrieveProjectHooks: _keystrokehq_core0.Operation<z.ZodObject<{
35
35
  events: z.ZodArray<z.ZodString>;
36
36
  dateCreated: z.ZodOptional<z.ZodISODateTime>;
37
37
  disabled: z.ZodOptional<z.ZodBoolean>;
38
- }, z.core.$loose>>, readonly [_keystrokehq_core0.CredentialSet<"sentry", z.ZodObject<{
38
+ }, z.core.$loose>>, readonly [_keystrokehq_core0.CredentialSet<"keystroke:sentry", z.ZodObject<{
39
39
  SENTRY_ACCESS_TOKEN: z.ZodString;
40
40
  SENTRY_REGION_URL: z.ZodOptional<z.ZodString>;
41
41
  SENTRY_ORG_SLUG: z.ZodOptional<z.ZodString>;
@@ -54,7 +54,7 @@ declare const getProjectHook: _keystrokehq_core0.Operation<z.ZodObject<{
54
54
  events: z.ZodArray<z.ZodString>;
55
55
  dateCreated: z.ZodOptional<z.ZodISODateTime>;
56
56
  disabled: z.ZodOptional<z.ZodBoolean>;
57
- }, z.core.$loose>, readonly [_keystrokehq_core0.CredentialSet<"sentry", z.ZodObject<{
57
+ }, z.core.$loose>, readonly [_keystrokehq_core0.CredentialSet<"keystroke:sentry", z.ZodObject<{
58
58
  SENTRY_ACCESS_TOKEN: z.ZodString;
59
59
  SENTRY_REGION_URL: z.ZodOptional<z.ZodString>;
60
60
  SENTRY_ORG_SLUG: z.ZodOptional<z.ZodString>;
@@ -76,7 +76,7 @@ declare const updateWebhookConfiguration: _keystrokehq_core0.Operation<z.ZodObje
76
76
  events: z.ZodArray<z.ZodString>;
77
77
  dateCreated: z.ZodOptional<z.ZodISODateTime>;
78
78
  disabled: z.ZodOptional<z.ZodBoolean>;
79
- }, z.core.$loose>, readonly [_keystrokehq_core0.CredentialSet<"sentry", z.ZodObject<{
79
+ }, z.core.$loose>, readonly [_keystrokehq_core0.CredentialSet<"keystroke:sentry", z.ZodObject<{
80
80
  SENTRY_ACCESS_TOKEN: z.ZodString;
81
81
  SENTRY_REGION_URL: z.ZodOptional<z.ZodString>;
82
82
  SENTRY_ORG_SLUG: z.ZodOptional<z.ZodString>;
@@ -89,7 +89,7 @@ declare const deleteProjectHook: _keystrokehq_core0.Operation<z.ZodObject<{
89
89
  organization_slug: z.ZodOptional<z.ZodString>;
90
90
  project_slug: z.ZodString;
91
91
  hook_id: z.ZodString;
92
- }, z.core.$strip>, z.ZodUnknown, readonly [_keystrokehq_core0.CredentialSet<"sentry", z.ZodObject<{
92
+ }, z.core.$strip>, z.ZodUnknown, readonly [_keystrokehq_core0.CredentialSet<"keystroke:sentry", z.ZodObject<{
93
93
  SENTRY_ACCESS_TOKEN: z.ZodString;
94
94
  SENTRY_REGION_URL: z.ZodOptional<z.ZodString>;
95
95
  SENTRY_ORG_SLUG: z.ZodOptional<z.ZodString>;
@@ -110,7 +110,7 @@ declare const sentryWebhookOperations: {
110
110
  events: z.ZodArray<z.ZodString>;
111
111
  dateCreated: z.ZodOptional<z.ZodISODateTime>;
112
112
  disabled: z.ZodOptional<z.ZodBoolean>;
113
- }, z.core.$loose>, readonly [_keystrokehq_core0.CredentialSet<"sentry", z.ZodObject<{
113
+ }, z.core.$loose>, readonly [_keystrokehq_core0.CredentialSet<"keystroke:sentry", z.ZodObject<{
114
114
  SENTRY_ACCESS_TOKEN: z.ZodString;
115
115
  SENTRY_REGION_URL: z.ZodOptional<z.ZodString>;
116
116
  SENTRY_ORG_SLUG: z.ZodOptional<z.ZodString>;
@@ -131,7 +131,7 @@ declare const sentryWebhookOperations: {
131
131
  events: z.ZodArray<z.ZodString>;
132
132
  dateCreated: z.ZodOptional<z.ZodISODateTime>;
133
133
  disabled: z.ZodOptional<z.ZodBoolean>;
134
- }, z.core.$loose>>, readonly [_keystrokehq_core0.CredentialSet<"sentry", z.ZodObject<{
134
+ }, z.core.$loose>>, readonly [_keystrokehq_core0.CredentialSet<"keystroke:sentry", z.ZodObject<{
135
135
  SENTRY_ACCESS_TOKEN: z.ZodString;
136
136
  SENTRY_REGION_URL: z.ZodOptional<z.ZodString>;
137
137
  SENTRY_ORG_SLUG: z.ZodOptional<z.ZodString>;
@@ -150,7 +150,7 @@ declare const sentryWebhookOperations: {
150
150
  events: z.ZodArray<z.ZodString>;
151
151
  dateCreated: z.ZodOptional<z.ZodISODateTime>;
152
152
  disabled: z.ZodOptional<z.ZodBoolean>;
153
- }, z.core.$loose>, readonly [_keystrokehq_core0.CredentialSet<"sentry", z.ZodObject<{
153
+ }, z.core.$loose>, readonly [_keystrokehq_core0.CredentialSet<"keystroke:sentry", z.ZodObject<{
154
154
  SENTRY_ACCESS_TOKEN: z.ZodString;
155
155
  SENTRY_REGION_URL: z.ZodOptional<z.ZodString>;
156
156
  SENTRY_ORG_SLUG: z.ZodOptional<z.ZodString>;
@@ -172,7 +172,7 @@ declare const sentryWebhookOperations: {
172
172
  events: z.ZodArray<z.ZodString>;
173
173
  dateCreated: z.ZodOptional<z.ZodISODateTime>;
174
174
  disabled: z.ZodOptional<z.ZodBoolean>;
175
- }, z.core.$loose>, readonly [_keystrokehq_core0.CredentialSet<"sentry", z.ZodObject<{
175
+ }, z.core.$loose>, readonly [_keystrokehq_core0.CredentialSet<"keystroke:sentry", z.ZodObject<{
176
176
  SENTRY_ACCESS_TOKEN: z.ZodString;
177
177
  SENTRY_REGION_URL: z.ZodOptional<z.ZodString>;
178
178
  SENTRY_ORG_SLUG: z.ZodOptional<z.ZodString>;
@@ -185,7 +185,7 @@ declare const sentryWebhookOperations: {
185
185
  organization_slug: z.ZodOptional<z.ZodString>;
186
186
  project_slug: z.ZodString;
187
187
  hook_id: z.ZodString;
188
- }, z.core.$strip>, z.ZodUnknown, readonly [_keystrokehq_core0.CredentialSet<"sentry", z.ZodObject<{
188
+ }, z.core.$strip>, z.ZodUnknown, readonly [_keystrokehq_core0.CredentialSet<"keystroke:sentry", z.ZodObject<{
189
189
  SENTRY_ACCESS_TOKEN: z.ZodString;
190
190
  SENTRY_REGION_URL: z.ZodOptional<z.ZodString>;
191
191
  SENTRY_ORG_SLUG: z.ZodOptional<z.ZodString>;
package/dist/webhooks.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { orgProjectScopeInputSchema, sentryIdSchema, sentryListInputSchema, sentryProjectHookSchema } from "./schemas.mjs";
2
- import { t as defineSentryEndpoint } from "./endpoint-factory-BwjbcPwW.mjs";
2
+ import { t as defineSentryEndpoint } from "./endpoint-factory-haY-k3xe.mjs";
3
3
  import { t as SENTRY_SCOPE } from "./scopes-RRU0vt-a.mjs";
4
4
  import { z } from "zod";
5
5
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keystrokehq/sentry",
3
- "version": "0.0.1",
3
+ "version": "0.0.4",
4
4
  "private": false,
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -135,28 +135,19 @@
135
135
  "README.md",
136
136
  "LICENSE"
137
137
  ],
138
- "scripts": {
139
- "typecheck": "tsgo --build",
140
- "build": "tsdown",
141
- "lint": "biome check .",
142
- "test:unit": "vitest run --passWithNoTests --project unit",
143
- "prepublishOnly": "pnpm build && pnpm test:unit",
144
- "lint:fix": "biome check --write .",
145
- "test:int": "vitest run --passWithNoTests --project int"
146
- },
147
138
  "dependencies": {
148
- "@keystrokehq/credential-connection": "^0.0.1",
149
- "@keystrokehq/integration-authoring": "^0.0.1",
150
- "@keystrokehq/core": "^0.0.5",
139
+ "@keystrokehq/core": "^0.0.7",
140
+ "@keystrokehq/credential-connection": "^0.0.3",
141
+ "@keystrokehq/integration-authoring": "^0.0.4",
151
142
  "zod": "^4.3.6"
152
143
  },
153
144
  "devDependencies": {
154
- "@types/node": "catalog:",
155
- "@keystrokehq/test-utils": "workspace:*",
156
- "@keystrokehq/typescript-config": "workspace:*",
157
- "tsdown": "catalog:",
158
- "typescript": "catalog:",
159
- "vitest": "catalog:"
145
+ "@types/node": "^22.19.11",
146
+ "tsdown": "^0.20.3",
147
+ "typescript": "^5.9.3",
148
+ "vitest": "^4.0.18",
149
+ "@keystrokehq/test-utils": "0.0.0",
150
+ "@keystrokehq/typescript-config": "0.0.0"
160
151
  },
161
152
  "keywords": [
162
153
  "sentry",
@@ -174,5 +165,13 @@
174
165
  "publishConfig": {
175
166
  "access": "public",
176
167
  "registry": "https://registry.npmjs.org/"
168
+ },
169
+ "scripts": {
170
+ "typecheck": "tsgo --build",
171
+ "build": "tsdown",
172
+ "lint": "biome check .",
173
+ "test:unit": "vitest run --passWithNoTests --project unit",
174
+ "lint:fix": "biome check --write .",
175
+ "test:int": "vitest run --passWithNoTests --project int"
177
176
  }
178
- }
177
+ }
@@ -1,45 +0,0 @@
1
- import { CredentialSet } from "@keystrokehq/core";
2
- import { z } from "zod";
3
- import * as _keystrokehq_core_credential_set0 from "@keystrokehq/core/credential-set";
4
- import { InferCredentialSetAuth } from "@keystrokehq/core/credential-set";
5
-
6
- //#region src/_official/provider-app.d.ts
7
- /**
8
- * Internal Keystroke-owned Sentry app credentials.
9
- *
10
- * For Sentry, `clientSecret` doubles as the webhook signing secret per
11
- * <https://docs.sentry.io/organization/integrations/integration-platform/webhooks/>,
12
- * so `webhookSecret` is kept as a discrete field for symmetry with other
13
- * integrations even though in practice platforms will populate both from the
14
- * same Sentry-issued value.
15
- */
16
- declare const sentryAppCredentialSet: CredentialSet<"sentry-app", z.ZodObject<{
17
- clientId: z.ZodString;
18
- clientSecret: z.ZodString;
19
- webhookSecret: z.ZodString;
20
- }, z.core.$strip>, readonly _keystrokehq_core_credential_set0.CredentialConnection<z.ZodObject<{
21
- clientId: z.ZodString;
22
- clientSecret: z.ZodString;
23
- webhookSecret: z.ZodString;
24
- }, z.core.$strip>>[] | undefined>;
25
- type SentryAppCredentials = InferCredentialSetAuth<typeof sentryAppCredentialSet>;
26
- declare const sentryPlatformProviderSeed: {
27
- readonly provider: "sentry";
28
- readonly appRef: "sentry-platform";
29
- readonly displayName: "Sentry Platform";
30
- readonly credentialSetName: "Keystroke Sentry Platform App";
31
- readonly envShape: {
32
- readonly KEYSTROKE_PLATFORM_SENTRY_CLIENT_ID: z.ZodOptional<z.ZodString>;
33
- readonly KEYSTROKE_PLATFORM_SENTRY_CLIENT_SECRET: z.ZodOptional<z.ZodString>;
34
- readonly KEYSTROKE_PLATFORM_SENTRY_WEBHOOK_SECRET: z.ZodOptional<z.ZodString>;
35
- };
36
- readonly requiredEnvKeys: readonly ["KEYSTROKE_PLATFORM_SENTRY_CLIENT_ID", "KEYSTROKE_PLATFORM_SENTRY_CLIENT_SECRET", "KEYSTROKE_PLATFORM_SENTRY_WEBHOOK_SECRET"];
37
- readonly externalAppIdEnvKey: "KEYSTROKE_PLATFORM_SENTRY_CLIENT_ID";
38
- readonly buildCredentials: (env: Record<string, string | undefined>) => {
39
- clientId: string | undefined;
40
- clientSecret: string | undefined;
41
- webhookSecret: string | undefined;
42
- };
43
- };
44
- //#endregion
45
- export { sentryAppCredentialSet as n, sentryPlatformProviderSeed as r, SentryAppCredentials as t };