@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.
- package/LICENSE +21 -0
- package/dist/_official/index.d.mts +45 -2
- package/dist/_official/index.mjs +1 -1
- package/dist/_runtime/index.d.mts +1 -1
- package/dist/_runtime/index.mjs +1 -1
- package/dist/alerts.d.mts +22 -22
- package/dist/alerts.mjs +1 -1
- package/dist/connection.d.mts +1 -1
- package/dist/connection.mjs +1 -1
- package/dist/dashboards.d.mts +10 -10
- package/dist/dashboards.mjs +1 -1
- package/dist/debug-files.d.mts +6 -6
- package/dist/debug-files.mjs +1 -1
- package/dist/deploys.d.mts +4 -4
- package/dist/deploys.mjs +1 -1
- package/dist/discover.d.mts +10 -10
- package/dist/discover.mjs +1 -1
- package/dist/{endpoint-factory-BwjbcPwW.mjs → endpoint-factory-haY-k3xe.mjs} +1 -1
- package/dist/environments.d.mts +8 -8
- package/dist/environments.mjs +1 -1
- package/dist/events-api.d.mts +14 -14
- package/dist/events-api.mjs +1 -1
- package/dist/feedback.d.mts +4 -4
- package/dist/feedback.mjs +1 -1
- package/dist/{integration-C8KHkeNG.d.mts → integration-BaLZqIqf.d.mts} +1 -1
- package/dist/{integration-WwY95cWE.mjs → integration-CsUeRf7e.mjs} +2 -2
- package/dist/issues.d.mts +36 -36
- package/dist/issues.mjs +1 -1
- package/dist/members.d.mts +14 -14
- package/dist/members.mjs +1 -1
- package/dist/monitors.d.mts +20 -20
- package/dist/monitors.mjs +1 -1
- package/dist/notifications.d.mts +10 -10
- package/dist/notifications.mjs +1 -1
- package/dist/organizations.d.mts +32 -32
- package/dist/organizations.mjs +1 -1
- package/dist/project-keys.d.mts +10 -10
- package/dist/project-keys.mjs +1 -1
- package/dist/projects.d.mts +38 -38
- package/dist/projects.mjs +1 -1
- package/dist/releases.d.mts +42 -42
- package/dist/releases.mjs +1 -1
- package/dist/replays.d.mts +18 -18
- package/dist/replays.mjs +1 -1
- package/dist/schemas.d.mts +2 -2
- package/dist/scim.d.mts +22 -22
- package/dist/scim.mjs +1 -1
- package/dist/teams.d.mts +28 -28
- package/dist/teams.mjs +1 -1
- package/dist/triggers.d.mts +6 -48
- package/dist/triggers.mjs +6 -213
- package/dist/user-emails.d.mts +8 -8
- package/dist/user-emails.mjs +1 -1
- package/dist/webhooks.d.mts +10 -10
- package/dist/webhooks.mjs +1 -1
- package/package.json +19 -20
- 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 {
|
|
4
|
-
import { createPollingTriggerBindingFactory
|
|
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
|
-
|
|
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?.
|
|
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,
|
|
56
|
+
export { computeDiscoverEventsPollIdempotencyKey, executeDiscoverEventsPoll, polling };
|
package/dist/user-emails.d.mts
CHANGED
|
@@ -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>;
|
package/dist/user-emails.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { sentryUserEmailSchema } from "./schemas.mjs";
|
|
2
|
-
import { t as defineSentryEndpoint } from "./endpoint-factory-
|
|
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
|
package/dist/webhooks.d.mts
CHANGED
|
@@ -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-
|
|
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.
|
|
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/
|
|
149
|
-
"@keystrokehq/
|
|
150
|
-
"@keystrokehq/
|
|
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": "
|
|
155
|
-
"
|
|
156
|
-
"
|
|
157
|
-
"
|
|
158
|
-
"
|
|
159
|
-
"
|
|
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 };
|