@shipfox/api-integration-sentry 12.5.0 → 14.0.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.
- package/.turbo/turbo-build.log +4 -4
- package/CHANGELOG.md +13 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.test.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/connection-external-url.test.ts +7 -0
- package/src/index.ts +2 -0
- package/tsconfig.build.tsbuildinfo +1 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
$ shipfox-swc && shipfox-temporal-bundle dist/temporal/workflows/index.js
|
|
2
|
-
Successfully compiled: 23 files with swc (
|
|
3
|
-
2026-08-
|
|
2
|
+
Successfully compiled: 23 files with swc (329.74ms)
|
|
3
|
+
2026-08-23T20:26:23.504Z [INFO] asset workflow-bundle-46314ad53629a6893a6d.js 3.17 MiB [emitted] [immutable] (name: main)
|
|
4
4
|
orphan modules 33.5 KiB [orphan] 21 modules
|
|
5
5
|
runtime modules 1.13 KiB 5 modules
|
|
6
6
|
modules by path ../../../../node_modules/.pnpm/ 970 KiB 196 modules
|
|
@@ -12,6 +12,6 @@ optional modules 30 bytes [optional]
|
|
|
12
12
|
__temporal_custom_payload_converter (ignored) 15 bytes [optional] [built] [code generated]
|
|
13
13
|
__temporal_custom_failure_converter (ignored) 15 bytes [optional] [built] [code generated]
|
|
14
14
|
../../../shared/node/temporal/dist/workflow-error-interceptor.js 1.21 KiB [built] [code generated]
|
|
15
|
-
webpack 5.107.2 compiled successfully in
|
|
16
|
-
2026-08-
|
|
15
|
+
webpack 5.107.2 compiled successfully in 7275 ms
|
|
16
|
+
2026-08-23T20:26:23.516Z [INFO] Workflow bundle created { size: '3.17MB' }
|
|
17
17
|
/home/runner/work/shipfox/shipfox/libs/api/integration/sentry/dist/temporal/workflows/index.js: 3323961 bytes
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @shipfox/api-integration-sentry
|
|
2
2
|
|
|
3
|
+
## 14.0.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 1b71a66: Exposes each provider's event catalog and the fixed-event providers on the integration validation context. Every provider now refuses the reserved `manual` and `cron` connection slugs.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [18e9bad]
|
|
12
|
+
- Updated dependencies [1b71a66]
|
|
13
|
+
- @shipfox/api-integration-spi@2.0.0
|
|
14
|
+
- @shipfox/api-integration-sentry-dto@14.0.0
|
|
15
|
+
|
|
3
16
|
## 12.5.0
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -29,6 +29,16 @@ export interface CreateSentryIntegrationProviderOptions extends Omit<CreateSentr
|
|
|
29
29
|
export declare function createSentryIntegrationProvider(options: CreateSentryIntegrationProviderOptions): {
|
|
30
30
|
provider: 'sentry';
|
|
31
31
|
displayName: string;
|
|
32
|
+
eventCatalog: {
|
|
33
|
+
readonly provider: 'Sentry';
|
|
34
|
+
readonly events: {
|
|
35
|
+
name: string;
|
|
36
|
+
summary: "A Sentry issue is archived." | "A Sentry issue is assigned." | "A Sentry issue is created." | "A Sentry issue is resolved." | "A resolved Sentry issue becomes unresolved.";
|
|
37
|
+
emittedWhen: string;
|
|
38
|
+
payloadKind: "shipfox-normalized";
|
|
39
|
+
payloadDocUrl: string;
|
|
40
|
+
}[];
|
|
41
|
+
};
|
|
32
42
|
connectionExternalUrl(connection: {
|
|
33
43
|
id: string;
|
|
34
44
|
}): Promise<string | undefined>;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,8BAA8B,EAC9B,iCAAiC,EACjC,oBAAoB,EACpB,4CAA4C,EAC7C,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAwB,KAAK,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAE3E,OAAO,EAAC,OAAO,EAAE,EAAE,EAAC,MAAM,WAAW,CAAC;AACtC,OAAO,EACL,mCAAmC,EACnC,oCAAoC,EACrC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACjD,OAAO,EACL,KAAK,oCAAoC,EAE1C,MAAM,iCAAiC,CAAC;AAKzC,YAAY,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AACpD,OAAO,EACL,6BAA6B,EAC7B,oCAAoC,EACpC,8BAA8B,EAC9B,8BAA8B,EAC9B,iCAAiC,GAClC,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,8BAA8B,EAC9B,2CAA2C,GAC5C,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,qCAAqC,GACtC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAC/B,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,mCAAmC,EACnC,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAC,4BAA4B,EAAC,MAAM,4BAA4B,CAAC;AACxE,YAAY,EACV,0CAA0C,EAC1C,kBAAkB,EAClB,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,uCAAuC,EACvC,oCAAoC,EACpC,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,OAAO,EAAE,EAAE,EAAE,cAAc,EAAC,CAAC;AAErC,MAAM,WAAW,sCACf,SAAQ,IAAI,CACV,oCAAoC,EACpC,QAAQ,GAAG,sCAAsC,CAClD;IACD,MAAM,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IACrC,MAAM,EAAE,MAAM,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD,+BAA+B,EAAE,iCAAiC,CAAC;IACnE,kBAAkB,EAAE,oBAAoB,CAAC;IACzC,4BAA4B,EAAE,8BAA8B,CAAC;IAC7D,+BAA+B,EAAE,4CAA4C,CAAC;IAC9E,mCAAmC,CAAC,EAAE,OAAO,mCAAmC,GAAG,SAAS,CAAC;IAC7F,oCAAoC,CAAC,EAAE,OAAO,oCAAoC,GAAG,SAAS,CAAC;CAChG;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,sCAAsC;cAgBjF,QAAQ;;;;;;;;;;;;sCAGsB;QAAC,EAAE,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;;;4BAuBlD,QAAQ;;;EAE3C;AAKD,wBAAgB,6BAA6B,IAAI,YAAY,CAa5D"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { dirname, resolve } from 'node:path';
|
|
2
2
|
import { fileURLToPath } from 'node:url';
|
|
3
|
+
import { sentryEventCatalog } from '@shipfox/api-integration-sentry-dto';
|
|
3
4
|
import { createSentryApiClient } from '#api/client.js';
|
|
4
5
|
import { createSentryWebhookProcessor } from '#core/webhook-processor.js';
|
|
5
6
|
import { closeDb, db } from '#db/db.js';
|
|
@@ -30,6 +31,7 @@ export function createSentryIntegrationProvider(options) {
|
|
|
30
31
|
return {
|
|
31
32
|
provider: 'sentry',
|
|
32
33
|
displayName: 'Sentry',
|
|
34
|
+
eventCatalog: sentryEventCatalog,
|
|
33
35
|
async connectionExternalUrl (connection) {
|
|
34
36
|
const installation = await getInstallationByConnectionId(connection.id);
|
|
35
37
|
if (!installation?.orgSlug) return undefined;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {dirname, resolve} from 'node:path';\nimport {fileURLToPath} from 'node:url';\nimport type {\n GetIntegrationConnectionByIdFn,\n PublishIntegrationEventReceivedFn,\n RecordDeliveryOnlyFn,\n UpdateIntegrationConnectionLifecycleStatusFn,\n} from '@shipfox/api-integration-spi';\nimport type {ModuleWorker} from '@shipfox/node-module';\nimport type {NodePgDatabase} from 'drizzle-orm/node-postgres';\nimport {createSentryApiClient, type SentryApiClient} from '#api/client.js';\nimport {createSentryWebhookProcessor} from '#core/webhook-processor.js';\nimport {closeDb, db} from '#db/db.js';\nimport {\n getSentryInstallationByConnectionId,\n persistVerifiedUnclaimedInstallation,\n} from '#db/installations.js';\nimport {migrationsPath} from '#db/migrations.js';\nimport {\n type CreateSentryIntegrationRoutesOptions,\n createSentryIntegrationRoutes,\n} from '#presentation/routes/install.js';\nimport {createSentryWebhookRoutes} from '#presentation/routes/webhooks.js';\nimport {createSentryMaintenanceActivities} from '#temporal/activities/index.js';\nimport {SENTRY_MAINTENANCE_TASK_QUEUE} from '#temporal/constants.js';\n\nexport type {SentryApiClient} from '#api/client.js';\nexport {\n SentryClaimProofMismatchError,\n SentryInstallationAlreadyLinkedError,\n SentryInstallationDeletedError,\n SentryIntegrationProviderError,\n SentryVerificationInProgressError,\n} from '#core/errors.js';\nexport type {\n ConnectSentryInstallationInput,\n VerifyAndPersistUnclaimedInstallationParams,\n} from '#core/install.js';\nexport {\n handleSentryConnect,\n hashAuthorizationCode,\n verifyAndPersistUnclaimedInstallation,\n} from '#core/install.js';\nexport {\n handleSentryInstallationCreated,\n handleSentryInstallationDeleted,\n handleSentryIssueEvent,\n} from '#core/webhook.js';\nexport type {\n CreateSentryWebhookProcessorOptions,\n SentryWebhookProcessor,\n} from '#core/webhook-processor.js';\nexport {createSentryWebhookProcessor} from '#core/webhook-processor.js';\nexport type {\n PersistVerifiedUnclaimedInstallationParams,\n SentryInstallation,\n SentryInstallationStatus,\n UpsertSentryInstallationParams,\n} from '#db/installations.js';\nexport {\n getSentryInstallationByInstallationUuid,\n persistVerifiedUnclaimedInstallation,\n upsertSentryInstallation,\n} from '#db/installations.js';\nexport {closeDb, db, migrationsPath};\n\nexport interface CreateSentryIntegrationProviderOptions\n extends Omit<\n CreateSentryIntegrationRoutesOptions,\n 'sentry' | 'persistVerifiedUnclaimedInstallation'\n > {\n sentry?: SentryApiClient | undefined;\n coreDb: () => NodePgDatabase<Record<string, unknown>>;\n publishIntegrationEventReceived: PublishIntegrationEventReceivedFn;\n recordDeliveryOnly: RecordDeliveryOnlyFn;\n getIntegrationConnectionById: GetIntegrationConnectionByIdFn;\n updateConnectionLifecycleStatus: UpdateIntegrationConnectionLifecycleStatusFn;\n getSentryInstallationByConnectionId?: typeof getSentryInstallationByConnectionId | undefined;\n persistVerifiedUnclaimedInstallation?: typeof persistVerifiedUnclaimedInstallation | undefined;\n}\n\nexport function createSentryIntegrationProvider(options: CreateSentryIntegrationProviderOptions) {\n const sentry = options.sentry ?? createSentryApiClient();\n const getInstallationByConnectionId =\n options.getSentryInstallationByConnectionId ?? getSentryInstallationByConnectionId;\n const persistUnclaimed =\n options.persistVerifiedUnclaimedInstallation ?? persistVerifiedUnclaimedInstallation;\n const webhookProcessor = createSentryWebhookProcessor({\n sentry,\n coreDb: options.coreDb,\n publishIntegrationEventReceived: options.publishIntegrationEventReceived,\n recordDeliveryOnly: options.recordDeliveryOnly,\n getIntegrationConnectionById: options.getIntegrationConnectionById,\n updateConnectionLifecycleStatus: options.updateConnectionLifecycleStatus,\n });\n\n return {\n provider: 'sentry' as const,\n displayName: 'Sentry',\n async connectionExternalUrl(connection: {id: string}): Promise<string | undefined> {\n const installation = await getInstallationByConnectionId(connection.id);\n if (!installation?.orgSlug) return undefined;\n return `https://sentry.io/organizations/${encodeURIComponent(installation.orgSlug)}/`;\n },\n routes: [\n createSentryIntegrationRoutes({\n sentry,\n getSentryInstallation: options.getSentryInstallation,\n getConnectionById: options.getConnectionById,\n connectSentryInstallation: options.connectSentryInstallation,\n persistVerifiedUnclaimedInstallation: persistUnclaimed,\n }),\n createSentryWebhookRoutes({\n sentry,\n coreDb: options.coreDb,\n publishIntegrationEventReceived: options.publishIntegrationEventReceived,\n recordDeliveryOnly: options.recordDeliveryOnly,\n getIntegrationConnectionById: options.getIntegrationConnectionById,\n updateConnectionLifecycleStatus: options.updateConnectionLifecycleStatus,\n processor: webhookProcessor,\n }),\n ],\n webhookProcessors: [{routeIds: ['sentry'] as const, processor: webhookProcessor}],\n };\n}\n\nconst packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), '..');\nconst maintenanceWorkflowsPath = resolve(packageRoot, 'dist/temporal/workflows/index.js');\n\nexport function createSentryMaintenanceWorker(): ModuleWorker {\n return {\n taskQueue: SENTRY_MAINTENANCE_TASK_QUEUE,\n workflowsPath: maintenanceWorkflowsPath,\n activities: createSentryMaintenanceActivities,\n workflows: [\n {\n name: 'pruneUnclaimedSentryInstallationsCron',\n id: 'sentry-prune-unclaimed-installations',\n cronSchedule: '0 4 * * *',\n },\n ],\n };\n}\n"],"names":["dirname","resolve","fileURLToPath","createSentryApiClient","createSentryWebhookProcessor","closeDb","db","getSentryInstallationByConnectionId","persistVerifiedUnclaimedInstallation","migrationsPath","createSentryIntegrationRoutes","createSentryWebhookRoutes","createSentryMaintenanceActivities","SENTRY_MAINTENANCE_TASK_QUEUE","SentryClaimProofMismatchError","SentryInstallationAlreadyLinkedError","SentryInstallationDeletedError","SentryIntegrationProviderError","SentryVerificationInProgressError","handleSentryConnect","hashAuthorizationCode","verifyAndPersistUnclaimedInstallation","handleSentryInstallationCreated","handleSentryInstallationDeleted","handleSentryIssueEvent","getSentryInstallationByInstallationUuid","upsertSentryInstallation","createSentryIntegrationProvider","options","sentry","getInstallationByConnectionId","persistUnclaimed","webhookProcessor","coreDb","publishIntegrationEventReceived","recordDeliveryOnly","getIntegrationConnectionById","updateConnectionLifecycleStatus","provider","displayName","connectionExternalUrl","connection","installation","id","orgSlug","undefined","encodeURIComponent","routes","getSentryInstallation","getConnectionById","connectSentryInstallation","processor","webhookProcessors","routeIds","packageRoot","url","maintenanceWorkflowsPath","createSentryMaintenanceWorker","taskQueue","workflowsPath","activities","workflows","name","cronSchedule"],"mappings":"AAAA,SAAQA,OAAO,EAAEC,OAAO,QAAO,YAAY;AAC3C,SAAQC,aAAa,QAAO,WAAW;
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {dirname, resolve} from 'node:path';\nimport {fileURLToPath} from 'node:url';\nimport {sentryEventCatalog} from '@shipfox/api-integration-sentry-dto';\nimport type {\n GetIntegrationConnectionByIdFn,\n PublishIntegrationEventReceivedFn,\n RecordDeliveryOnlyFn,\n UpdateIntegrationConnectionLifecycleStatusFn,\n} from '@shipfox/api-integration-spi';\nimport type {ModuleWorker} from '@shipfox/node-module';\nimport type {NodePgDatabase} from 'drizzle-orm/node-postgres';\nimport {createSentryApiClient, type SentryApiClient} from '#api/client.js';\nimport {createSentryWebhookProcessor} from '#core/webhook-processor.js';\nimport {closeDb, db} from '#db/db.js';\nimport {\n getSentryInstallationByConnectionId,\n persistVerifiedUnclaimedInstallation,\n} from '#db/installations.js';\nimport {migrationsPath} from '#db/migrations.js';\nimport {\n type CreateSentryIntegrationRoutesOptions,\n createSentryIntegrationRoutes,\n} from '#presentation/routes/install.js';\nimport {createSentryWebhookRoutes} from '#presentation/routes/webhooks.js';\nimport {createSentryMaintenanceActivities} from '#temporal/activities/index.js';\nimport {SENTRY_MAINTENANCE_TASK_QUEUE} from '#temporal/constants.js';\n\nexport type {SentryApiClient} from '#api/client.js';\nexport {\n SentryClaimProofMismatchError,\n SentryInstallationAlreadyLinkedError,\n SentryInstallationDeletedError,\n SentryIntegrationProviderError,\n SentryVerificationInProgressError,\n} from '#core/errors.js';\nexport type {\n ConnectSentryInstallationInput,\n VerifyAndPersistUnclaimedInstallationParams,\n} from '#core/install.js';\nexport {\n handleSentryConnect,\n hashAuthorizationCode,\n verifyAndPersistUnclaimedInstallation,\n} from '#core/install.js';\nexport {\n handleSentryInstallationCreated,\n handleSentryInstallationDeleted,\n handleSentryIssueEvent,\n} from '#core/webhook.js';\nexport type {\n CreateSentryWebhookProcessorOptions,\n SentryWebhookProcessor,\n} from '#core/webhook-processor.js';\nexport {createSentryWebhookProcessor} from '#core/webhook-processor.js';\nexport type {\n PersistVerifiedUnclaimedInstallationParams,\n SentryInstallation,\n SentryInstallationStatus,\n UpsertSentryInstallationParams,\n} from '#db/installations.js';\nexport {\n getSentryInstallationByInstallationUuid,\n persistVerifiedUnclaimedInstallation,\n upsertSentryInstallation,\n} from '#db/installations.js';\nexport {closeDb, db, migrationsPath};\n\nexport interface CreateSentryIntegrationProviderOptions\n extends Omit<\n CreateSentryIntegrationRoutesOptions,\n 'sentry' | 'persistVerifiedUnclaimedInstallation'\n > {\n sentry?: SentryApiClient | undefined;\n coreDb: () => NodePgDatabase<Record<string, unknown>>;\n publishIntegrationEventReceived: PublishIntegrationEventReceivedFn;\n recordDeliveryOnly: RecordDeliveryOnlyFn;\n getIntegrationConnectionById: GetIntegrationConnectionByIdFn;\n updateConnectionLifecycleStatus: UpdateIntegrationConnectionLifecycleStatusFn;\n getSentryInstallationByConnectionId?: typeof getSentryInstallationByConnectionId | undefined;\n persistVerifiedUnclaimedInstallation?: typeof persistVerifiedUnclaimedInstallation | undefined;\n}\n\nexport function createSentryIntegrationProvider(options: CreateSentryIntegrationProviderOptions) {\n const sentry = options.sentry ?? createSentryApiClient();\n const getInstallationByConnectionId =\n options.getSentryInstallationByConnectionId ?? getSentryInstallationByConnectionId;\n const persistUnclaimed =\n options.persistVerifiedUnclaimedInstallation ?? persistVerifiedUnclaimedInstallation;\n const webhookProcessor = createSentryWebhookProcessor({\n sentry,\n coreDb: options.coreDb,\n publishIntegrationEventReceived: options.publishIntegrationEventReceived,\n recordDeliveryOnly: options.recordDeliveryOnly,\n getIntegrationConnectionById: options.getIntegrationConnectionById,\n updateConnectionLifecycleStatus: options.updateConnectionLifecycleStatus,\n });\n\n return {\n provider: 'sentry' as const,\n displayName: 'Sentry',\n eventCatalog: sentryEventCatalog,\n async connectionExternalUrl(connection: {id: string}): Promise<string | undefined> {\n const installation = await getInstallationByConnectionId(connection.id);\n if (!installation?.orgSlug) return undefined;\n return `https://sentry.io/organizations/${encodeURIComponent(installation.orgSlug)}/`;\n },\n routes: [\n createSentryIntegrationRoutes({\n sentry,\n getSentryInstallation: options.getSentryInstallation,\n getConnectionById: options.getConnectionById,\n connectSentryInstallation: options.connectSentryInstallation,\n persistVerifiedUnclaimedInstallation: persistUnclaimed,\n }),\n createSentryWebhookRoutes({\n sentry,\n coreDb: options.coreDb,\n publishIntegrationEventReceived: options.publishIntegrationEventReceived,\n recordDeliveryOnly: options.recordDeliveryOnly,\n getIntegrationConnectionById: options.getIntegrationConnectionById,\n updateConnectionLifecycleStatus: options.updateConnectionLifecycleStatus,\n processor: webhookProcessor,\n }),\n ],\n webhookProcessors: [{routeIds: ['sentry'] as const, processor: webhookProcessor}],\n };\n}\n\nconst packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), '..');\nconst maintenanceWorkflowsPath = resolve(packageRoot, 'dist/temporal/workflows/index.js');\n\nexport function createSentryMaintenanceWorker(): ModuleWorker {\n return {\n taskQueue: SENTRY_MAINTENANCE_TASK_QUEUE,\n workflowsPath: maintenanceWorkflowsPath,\n activities: createSentryMaintenanceActivities,\n workflows: [\n {\n name: 'pruneUnclaimedSentryInstallationsCron',\n id: 'sentry-prune-unclaimed-installations',\n cronSchedule: '0 4 * * *',\n },\n ],\n };\n}\n"],"names":["dirname","resolve","fileURLToPath","sentryEventCatalog","createSentryApiClient","createSentryWebhookProcessor","closeDb","db","getSentryInstallationByConnectionId","persistVerifiedUnclaimedInstallation","migrationsPath","createSentryIntegrationRoutes","createSentryWebhookRoutes","createSentryMaintenanceActivities","SENTRY_MAINTENANCE_TASK_QUEUE","SentryClaimProofMismatchError","SentryInstallationAlreadyLinkedError","SentryInstallationDeletedError","SentryIntegrationProviderError","SentryVerificationInProgressError","handleSentryConnect","hashAuthorizationCode","verifyAndPersistUnclaimedInstallation","handleSentryInstallationCreated","handleSentryInstallationDeleted","handleSentryIssueEvent","getSentryInstallationByInstallationUuid","upsertSentryInstallation","createSentryIntegrationProvider","options","sentry","getInstallationByConnectionId","persistUnclaimed","webhookProcessor","coreDb","publishIntegrationEventReceived","recordDeliveryOnly","getIntegrationConnectionById","updateConnectionLifecycleStatus","provider","displayName","eventCatalog","connectionExternalUrl","connection","installation","id","orgSlug","undefined","encodeURIComponent","routes","getSentryInstallation","getConnectionById","connectSentryInstallation","processor","webhookProcessors","routeIds","packageRoot","url","maintenanceWorkflowsPath","createSentryMaintenanceWorker","taskQueue","workflowsPath","activities","workflows","name","cronSchedule"],"mappings":"AAAA,SAAQA,OAAO,EAAEC,OAAO,QAAO,YAAY;AAC3C,SAAQC,aAAa,QAAO,WAAW;AACvC,SAAQC,kBAAkB,QAAO,sCAAsC;AASvE,SAAQC,qBAAqB,QAA6B,iBAAiB;AAC3E,SAAQC,4BAA4B,QAAO,6BAA6B;AACxE,SAAQC,OAAO,EAAEC,EAAE,QAAO,YAAY;AACtC,SACEC,mCAAmC,EACnCC,oCAAoC,QAC/B,uBAAuB;AAC9B,SAAQC,cAAc,QAAO,oBAAoB;AACjD,SAEEC,6BAA6B,QACxB,kCAAkC;AACzC,SAAQC,yBAAyB,QAAO,mCAAmC;AAC3E,SAAQC,iCAAiC,QAAO,gCAAgC;AAChF,SAAQC,6BAA6B,QAAO,yBAAyB;AAGrE,SACEC,6BAA6B,EAC7BC,oCAAoC,EACpCC,8BAA8B,EAC9BC,8BAA8B,EAC9BC,iCAAiC,QAC5B,kBAAkB;AAKzB,SACEC,mBAAmB,EACnBC,qBAAqB,EACrBC,qCAAqC,QAChC,mBAAmB;AAC1B,SACEC,+BAA+B,EAC/BC,+BAA+B,EAC/BC,sBAAsB,QACjB,mBAAmB;AAK1B,SAAQpB,4BAA4B,QAAO,6BAA6B;AAOxE,SACEqB,uCAAuC,EACvCjB,oCAAoC,EACpCkB,wBAAwB,QACnB,uBAAuB;AAC9B,SAAQrB,OAAO,EAAEC,EAAE,EAAEG,cAAc,GAAE;AAiBrC,OAAO,SAASkB,gCAAgCC,OAA+C;IAC7F,MAAMC,SAASD,QAAQC,MAAM,IAAI1B;IACjC,MAAM2B,gCACJF,QAAQrB,mCAAmC,IAAIA;IACjD,MAAMwB,mBACJH,QAAQpB,oCAAoC,IAAIA;IAClD,MAAMwB,mBAAmB5B,6BAA6B;QACpDyB;QACAI,QAAQL,QAAQK,MAAM;QACtBC,iCAAiCN,QAAQM,+BAA+B;QACxEC,oBAAoBP,QAAQO,kBAAkB;QAC9CC,8BAA8BR,QAAQQ,4BAA4B;QAClEC,iCAAiCT,QAAQS,+BAA+B;IAC1E;IAEA,OAAO;QACLC,UAAU;QACVC,aAAa;QACbC,cAActC;QACd,MAAMuC,uBAAsBC,UAAwB;YAClD,MAAMC,eAAe,MAAMb,8BAA8BY,WAAWE,EAAE;YACtE,IAAI,CAACD,cAAcE,SAAS,OAAOC;YACnC,OAAO,CAAC,gCAAgC,EAAEC,mBAAmBJ,aAAaE,OAAO,EAAE,CAAC,CAAC;QACvF;QACAG,QAAQ;YACNtC,8BAA8B;gBAC5BmB;gBACAoB,uBAAuBrB,QAAQqB,qBAAqB;gBACpDC,mBAAmBtB,QAAQsB,iBAAiB;gBAC5CC,2BAA2BvB,QAAQuB,yBAAyB;gBAC5D3C,sCAAsCuB;YACxC;YACApB,0BAA0B;gBACxBkB;gBACAI,QAAQL,QAAQK,MAAM;gBACtBC,iCAAiCN,QAAQM,+BAA+B;gBACxEC,oBAAoBP,QAAQO,kBAAkB;gBAC9CC,8BAA8BR,QAAQQ,4BAA4B;gBAClEC,iCAAiCT,QAAQS,+BAA+B;gBACxEe,WAAWpB;YACb;SACD;QACDqB,mBAAmB;YAAC;gBAACC,UAAU;oBAAC;iBAAS;gBAAWF,WAAWpB;YAAgB;SAAE;IACnF;AACF;AAEA,MAAMuB,cAAcvD,QAAQD,QAAQE,cAAc,YAAYuD,GAAG,IAAI;AACrE,MAAMC,2BAA2BzD,QAAQuD,aAAa;AAEtD,OAAO,SAASG;IACd,OAAO;QACLC,WAAW9C;QACX+C,eAAeH;QACfI,YAAYjD;QACZkD,WAAW;YACT;gBACEC,MAAM;gBACNnB,IAAI;gBACJoB,cAAc;YAChB;SACD;IACH;AACF"}
|