@shipfox/api-integration-core-dto 12.2.0 → 15.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.
@@ -1,2 +1,2 @@
1
1
  $ shipfox-swc
2
- Successfully compiled: 8 files with swc (390.78ms)
2
+ Successfully compiled: 8 files with swc (240.87ms)
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @shipfox/api-integration-core-dto
2
2
 
3
+ ## 15.0.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [a7804a8]
8
+ - @shipfox/regex@0.3.0
9
+
10
+ ## 14.0.0
11
+
12
+ ### Major Changes
13
+
14
+ - 18e9bad: Adds source-control ref resolution that pins branch and tag names to commits.
15
+
16
+ ### Minor Changes
17
+
18
+ - c44641f: Adds provider capabilities to the `integrations.connection.available` event, so subscribers can tell a tool connection from a source-control connection. The publisher now carries the capabilities the connection DTO already exposes.
19
+ - 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.
20
+
3
21
  ## 12.2.0
4
22
 
5
23
  ### Minor Changes
package/dist/events.d.ts CHANGED
@@ -18,6 +18,10 @@ export declare const integrationConnectionAvailableSchema: z.ZodObject<{
18
18
  workspaceId: z.ZodString;
19
19
  connectionId: z.ZodString;
20
20
  slug: z.ZodString;
21
+ capabilities: z.ZodDefault<z.ZodArray<z.ZodEnum<{
22
+ agent_tools: "agent_tools";
23
+ source_control: "source_control";
24
+ }>>>;
21
25
  }, z.core.$strip>;
22
26
  export type IntegrationConnectionAvailableEvent = z.infer<typeof integrationConnectionAvailableSchema>;
23
27
  export declare const sourcePushSchema: z.ZodObject<{
@@ -95,6 +99,10 @@ export declare const integrationsEventSchemas: {
95
99
  workspaceId: z.ZodString;
96
100
  connectionId: z.ZodString;
97
101
  slug: z.ZodString;
102
+ capabilities: z.ZodDefault<z.ZodArray<z.ZodEnum<{
103
+ agent_tools: "agent_tools";
104
+ source_control: "source_control";
105
+ }>>>;
98
106
  }, z.core.$strip>;
99
107
  "integrations.event.received": z.ZodObject<{
100
108
  provider: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,eAAO,MAAM,0BAA0B,EAAG,6BAAsC,CAAC;AACjF,eAAO,MAAM,gCAAgC,EAAG,mCAA4C,CAAC;AAO7F,eAAO,MAAM,8BAA8B;;;;;;;;;;iBAYzC,CAAC;AACH,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAE3F,eAAO,MAAM,oCAAoC;;;;;iBAK/C,CAAC;AACH,MAAM,MAAM,mCAAmC,GAAG,CAAC,CAAC,KAAK,CACvD,OAAO,oCAAoC,CAC5C,CAAC;AAIF,eAAO,MAAM,gBAAgB;;;;;;iBAM3B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEjE,eAAO,MAAM,gCAAgC,EAC3C,2CAAoD,CAAC;AAKvD,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;iBAO9C,CAAC;AACH,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CACtD,OAAO,mCAAmC,CAC3C,CAAC;AAEF,eAAO,MAAM,8BAA8B;;;;;iBAKzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,qCAAqC,EAChD,gDAAyD,CAAC;AAK5D,eAAO,MAAM,wCAAwC;;;;;;;;;;;;iBAOnD,CAAC;AACH,MAAM,MAAM,uCAAuC,GAAG,CAAC,CAAC,KAAK,CAC3D,OAAO,wCAAwC,CAChD,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAKD,eAAO,MAAM,oBAAoB,YAC/B,SAAS,EACT,UAAU,EACV,UAAU,EACV,UAAU,EACV,YAAY,CACJ,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,MAAM,WAAW,oBAAoB;IACnC,CAAC,gCAAgC,CAAC,EAAE,mCAAmC,CAAC;IACxE,CAAC,0BAA0B,CAAC,EAAE,6BAA6B,CAAC;IAC5D,CAAC,gCAAgC,CAAC,EAAE,kCAAkC,CAAC;IACvE,CAAC,qCAAqC,CAAC,EAAE,uCAAuC,CAAC;CAClF;AAED,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKoB,CAAC"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,0BAA0B,EAAG,6BAAsC,CAAC;AACjF,eAAO,MAAM,gCAAgC,EAAG,mCAA4C,CAAC;AAO7F,eAAO,MAAM,8BAA8B;;;;;;;;;;iBAYzC,CAAC;AACH,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAE3F,eAAO,MAAM,oCAAoC;;;;;;;;;iBAU/C,CAAC;AACH,MAAM,MAAM,mCAAmC,GAAG,CAAC,CAAC,KAAK,CACvD,OAAO,oCAAoC,CAC5C,CAAC;AAIF,eAAO,MAAM,gBAAgB;;;;;;iBAM3B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEjE,eAAO,MAAM,gCAAgC,EAC3C,2CAAoD,CAAC;AAKvD,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;iBAO9C,CAAC;AACH,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CACtD,OAAO,mCAAmC,CAC3C,CAAC;AAEF,eAAO,MAAM,8BAA8B;;;;;iBAKzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,qCAAqC,EAChD,gDAAyD,CAAC;AAK5D,eAAO,MAAM,wCAAwC;;;;;;;;;;;;iBAOnD,CAAC;AACH,MAAM,MAAM,uCAAuC,GAAG,CAAC,CAAC,KAAK,CAC3D,OAAO,wCAAwC,CAChD,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAKD,eAAO,MAAM,oBAAoB,YAC/B,SAAS,EACT,UAAU,EACV,UAAU,EACV,UAAU,EACV,YAAY,CACJ,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,MAAM,WAAW,oBAAoB;IACnC,CAAC,gCAAgC,CAAC,EAAE,mCAAmC,CAAC;IACxE,CAAC,0BAA0B,CAAC,EAAE,6BAA6B,CAAC;IAC5D,CAAC,gCAAgC,CAAC,EAAE,kCAAkC,CAAC;IACvE,CAAC,qCAAqC,CAAC,EAAE,uCAAuC,CAAC;CAClF;AAED,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKoB,CAAC"}
package/dist/events.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ import { integrationCapabilitySchema } from './schemas/integrations.js';
2
3
  export const INTEGRATION_EVENT_RECEIVED = 'integrations.event.received';
3
4
  export const INTEGRATION_CONNECTION_AVAILABLE = 'integrations.connection.available';
4
5
  const nonEmptyStringSchema = z.string().nonempty();
@@ -22,7 +23,12 @@ export const integrationConnectionAvailableSchema = z.object({
22
23
  provider: nonEmptyStringSchema,
23
24
  workspaceId: nonEmptyStringSchema,
24
25
  connectionId: nonEmptyStringSchema,
25
- slug: nonEmptyStringSchema
26
+ slug: nonEmptyStringSchema,
27
+ // Provider registry capabilities, so subscribers can tell a tool connection
28
+ // from a source-control connection without their own provider table.
29
+ // Defaulting keeps availability events written before this field existed
30
+ // deliverable while every new event is still constrained to known capabilities.
31
+ capabilities: z.array(integrationCapabilitySchema).max(16).default([])
26
32
  });
27
33
  // A source-control push, normalized by the producing provider and carried by
28
34
  // `INTEGRATION_SOURCE_COMMIT_PUSHED` for domain consumers.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/events.ts"],"sourcesContent":["import {z} from 'zod';\n\nexport const INTEGRATION_EVENT_RECEIVED = 'integrations.event.received' as const;\nexport const INTEGRATION_CONNECTION_AVAILABLE = 'integrations.connection.available' as const;\n\nconst nonEmptyStringSchema = z.string().nonempty();\nconst isoDateTimeSchema = z.string().datetime();\nconst requiredUnknownSchema = z.custom<unknown>((value) => value !== undefined);\nconst nullableConnectionNameSchema = nonEmptyStringSchema.nullish().default(null);\n\nexport const integrationEventReceivedSchema = z.object({\n provider: nonEmptyStringSchema,\n source: nonEmptyStringSchema,\n event: nonEmptyStringSchema,\n workspaceId: nonEmptyStringSchema,\n connectionId: nonEmptyStringSchema,\n // Denormalized so trigger consumers can render the connection name without a\n // synchronous callback into the integrations module.\n connectionName: nullableConnectionNameSchema,\n deliveryId: nonEmptyStringSchema,\n receivedAt: isoDateTimeSchema,\n payload: requiredUnknownSchema,\n});\nexport type IntegrationEventReceivedEvent = z.infer<typeof integrationEventReceivedSchema>;\n\nexport const integrationConnectionAvailableSchema = z.object({\n provider: nonEmptyStringSchema,\n workspaceId: nonEmptyStringSchema,\n connectionId: nonEmptyStringSchema,\n slug: nonEmptyStringSchema,\n});\nexport type IntegrationConnectionAvailableEvent = z.infer<\n typeof integrationConnectionAvailableSchema\n>;\n\n// A source-control push, normalized by the producing provider and carried by\n// `INTEGRATION_SOURCE_COMMIT_PUSHED` for domain consumers.\nexport const sourcePushSchema = z.object({\n externalRepositoryId: nonEmptyStringSchema,\n ref: nonEmptyStringSchema,\n headCommitSha: nonEmptyStringSchema,\n defaultBranch: nonEmptyStringSchema,\n isDefaultBranch: z.boolean(),\n});\nexport type SourcePushPayload = z.infer<typeof sourcePushSchema>;\n\nexport const INTEGRATION_SOURCE_COMMIT_PUSHED =\n 'integrations.source_control.commit_pushed' as const;\n\n// Typed, provider-agnostic source-control event. The producing provider owns the\n// translation from its raw webhook into this shape, so domain consumers never decode\n// provider payloads. `isDefaultBranch` is a fact; the branch policy lives in the consumer.\nexport const integrationSourceCommitPushedSchema = z.object({\n provider: nonEmptyStringSchema,\n workspaceId: nonEmptyStringSchema,\n connectionId: nonEmptyStringSchema,\n deliveryId: nonEmptyStringSchema,\n receivedAt: isoDateTimeSchema,\n push: sourcePushSchema,\n});\nexport type IntegrationSourceCommitPushedEvent = z.infer<\n typeof integrationSourceCommitPushedSchema\n>;\n\nexport const sourceRepositoryIdentitySchema = z.object({\n externalRepositoryId: nonEmptyStringSchema,\n owner: nonEmptyStringSchema,\n name: nonEmptyStringSchema,\n defaultBranch: nonEmptyStringSchema,\n});\nexport type SourceRepositoryIdentity = z.infer<typeof sourceRepositoryIdentitySchema>;\n\nexport const INTEGRATION_SOURCE_REPOSITORY_UPDATED =\n 'integrations.source_control.repository_updated' as const;\n\n// Typed, provider-agnostic source-control event. The producing provider owns the\n// translation from its raw webhook into this shape, so domain consumers never decode\n// provider payloads.\nexport const integrationSourceRepositoryUpdatedSchema = z.object({\n provider: nonEmptyStringSchema,\n workspaceId: nonEmptyStringSchema,\n connectionId: nonEmptyStringSchema,\n deliveryId: nonEmptyStringSchema,\n receivedAt: isoDateTimeSchema,\n repository: sourceRepositoryIdentitySchema,\n});\nexport type IntegrationSourceRepositoryUpdatedEvent = z.infer<\n typeof integrationSourceRepositoryUpdatedSchema\n>;\n\nexport interface SentryIssuePayload {\n action: SentryIssueAction;\n issueId: string;\n shortId: string | null;\n title: string;\n culprit: string | null;\n level: string | null;\n status: string | null;\n platform: string | null;\n webUrl: string | null;\n issueUrl: string | null;\n projectUrl: string | null;\n firstSeenAt: string | null;\n lastSeenAt: string | null;\n}\n\n// Single source of truth for Sentry issue actions: the sentry-dto webhook schema\n// builds its z.enum from this tuple, so accepted webhook actions and the published\n// SentryIssuePayload contract cannot drift.\nexport const SENTRY_ISSUE_ACTIONS = [\n 'created',\n 'resolved',\n 'assigned',\n 'archived',\n 'unresolved',\n] as const;\n\nexport type SentryIssueAction = (typeof SENTRY_ISSUE_ACTIONS)[number];\n\nexport interface IntegrationsEventMap {\n [INTEGRATION_CONNECTION_AVAILABLE]: IntegrationConnectionAvailableEvent;\n [INTEGRATION_EVENT_RECEIVED]: IntegrationEventReceivedEvent;\n [INTEGRATION_SOURCE_COMMIT_PUSHED]: IntegrationSourceCommitPushedEvent;\n [INTEGRATION_SOURCE_REPOSITORY_UPDATED]: IntegrationSourceRepositoryUpdatedEvent;\n}\n\nexport const integrationsEventSchemas = {\n [INTEGRATION_CONNECTION_AVAILABLE]: integrationConnectionAvailableSchema,\n [INTEGRATION_EVENT_RECEIVED]: integrationEventReceivedSchema,\n [INTEGRATION_SOURCE_COMMIT_PUSHED]: integrationSourceCommitPushedSchema,\n [INTEGRATION_SOURCE_REPOSITORY_UPDATED]: integrationSourceRepositoryUpdatedSchema,\n} satisfies Record<keyof IntegrationsEventMap, z.ZodType>;\n"],"names":["z","INTEGRATION_EVENT_RECEIVED","INTEGRATION_CONNECTION_AVAILABLE","nonEmptyStringSchema","string","nonempty","isoDateTimeSchema","datetime","requiredUnknownSchema","custom","value","undefined","nullableConnectionNameSchema","nullish","default","integrationEventReceivedSchema","object","provider","source","event","workspaceId","connectionId","connectionName","deliveryId","receivedAt","payload","integrationConnectionAvailableSchema","slug","sourcePushSchema","externalRepositoryId","ref","headCommitSha","defaultBranch","isDefaultBranch","boolean","INTEGRATION_SOURCE_COMMIT_PUSHED","integrationSourceCommitPushedSchema","push","sourceRepositoryIdentitySchema","owner","name","INTEGRATION_SOURCE_REPOSITORY_UPDATED","integrationSourceRepositoryUpdatedSchema","repository","SENTRY_ISSUE_ACTIONS","integrationsEventSchemas"],"mappings":"AAAA,SAAQA,CAAC,QAAO,MAAM;AAEtB,OAAO,MAAMC,6BAA6B,8BAAuC;AACjF,OAAO,MAAMC,mCAAmC,oCAA6C;AAE7F,MAAMC,uBAAuBH,EAAEI,MAAM,GAAGC,QAAQ;AAChD,MAAMC,oBAAoBN,EAAEI,MAAM,GAAGG,QAAQ;AAC7C,MAAMC,wBAAwBR,EAAES,MAAM,CAAU,CAACC,QAAUA,UAAUC;AACrE,MAAMC,+BAA+BT,qBAAqBU,OAAO,GAAGC,OAAO,CAAC;AAE5E,OAAO,MAAMC,iCAAiCf,EAAEgB,MAAM,CAAC;IACrDC,UAAUd;IACVe,QAAQf;IACRgB,OAAOhB;IACPiB,aAAajB;IACbkB,cAAclB;IACd,6EAA6E;IAC7E,qDAAqD;IACrDmB,gBAAgBV;IAChBW,YAAYpB;IACZqB,YAAYlB;IACZmB,SAASjB;AACX,GAAG;AAGH,OAAO,MAAMkB,uCAAuC1B,EAAEgB,MAAM,CAAC;IAC3DC,UAAUd;IACViB,aAAajB;IACbkB,cAAclB;IACdwB,MAAMxB;AACR,GAAG;AAKH,6EAA6E;AAC7E,2DAA2D;AAC3D,OAAO,MAAMyB,mBAAmB5B,EAAEgB,MAAM,CAAC;IACvCa,sBAAsB1B;IACtB2B,KAAK3B;IACL4B,eAAe5B;IACf6B,eAAe7B;IACf8B,iBAAiBjC,EAAEkC,OAAO;AAC5B,GAAG;AAGH,OAAO,MAAMC,mCACX,4CAAqD;AAEvD,iFAAiF;AACjF,qFAAqF;AACrF,2FAA2F;AAC3F,OAAO,MAAMC,sCAAsCpC,EAAEgB,MAAM,CAAC;IAC1DC,UAAUd;IACViB,aAAajB;IACbkB,cAAclB;IACdoB,YAAYpB;IACZqB,YAAYlB;IACZ+B,MAAMT;AACR,GAAG;AAKH,OAAO,MAAMU,iCAAiCtC,EAAEgB,MAAM,CAAC;IACrDa,sBAAsB1B;IACtBoC,OAAOpC;IACPqC,MAAMrC;IACN6B,eAAe7B;AACjB,GAAG;AAGH,OAAO,MAAMsC,wCACX,iDAA0D;AAE5D,iFAAiF;AACjF,qFAAqF;AACrF,qBAAqB;AACrB,OAAO,MAAMC,2CAA2C1C,EAAEgB,MAAM,CAAC;IAC/DC,UAAUd;IACViB,aAAajB;IACbkB,cAAclB;IACdoB,YAAYpB;IACZqB,YAAYlB;IACZqC,YAAYL;AACd,GAAG;AAqBH,iFAAiF;AACjF,mFAAmF;AACnF,4CAA4C;AAC5C,OAAO,MAAMM,uBAAuB;IAClC;IACA;IACA;IACA;IACA;CACD,CAAU;AAWX,OAAO,MAAMC,2BAA2B;IACtC,CAAC3C,iCAAiC,EAAEwB;IACpC,CAACzB,2BAA2B,EAAEc;IAC9B,CAACoB,iCAAiC,EAAEC;IACpC,CAACK,sCAAsC,EAAEC;AAC3C,EAA0D"}
1
+ {"version":3,"sources":["../src/events.ts"],"sourcesContent":["import {z} from 'zod';\nimport {integrationCapabilitySchema} from './schemas/integrations.js';\n\nexport const INTEGRATION_EVENT_RECEIVED = 'integrations.event.received' as const;\nexport const INTEGRATION_CONNECTION_AVAILABLE = 'integrations.connection.available' as const;\n\nconst nonEmptyStringSchema = z.string().nonempty();\nconst isoDateTimeSchema = z.string().datetime();\nconst requiredUnknownSchema = z.custom<unknown>((value) => value !== undefined);\nconst nullableConnectionNameSchema = nonEmptyStringSchema.nullish().default(null);\n\nexport const integrationEventReceivedSchema = z.object({\n provider: nonEmptyStringSchema,\n source: nonEmptyStringSchema,\n event: nonEmptyStringSchema,\n workspaceId: nonEmptyStringSchema,\n connectionId: nonEmptyStringSchema,\n // Denormalized so trigger consumers can render the connection name without a\n // synchronous callback into the integrations module.\n connectionName: nullableConnectionNameSchema,\n deliveryId: nonEmptyStringSchema,\n receivedAt: isoDateTimeSchema,\n payload: requiredUnknownSchema,\n});\nexport type IntegrationEventReceivedEvent = z.infer<typeof integrationEventReceivedSchema>;\n\nexport const integrationConnectionAvailableSchema = z.object({\n provider: nonEmptyStringSchema,\n workspaceId: nonEmptyStringSchema,\n connectionId: nonEmptyStringSchema,\n slug: nonEmptyStringSchema,\n // Provider registry capabilities, so subscribers can tell a tool connection\n // from a source-control connection without their own provider table.\n // Defaulting keeps availability events written before this field existed\n // deliverable while every new event is still constrained to known capabilities.\n capabilities: z.array(integrationCapabilitySchema).max(16).default([]),\n});\nexport type IntegrationConnectionAvailableEvent = z.infer<\n typeof integrationConnectionAvailableSchema\n>;\n\n// A source-control push, normalized by the producing provider and carried by\n// `INTEGRATION_SOURCE_COMMIT_PUSHED` for domain consumers.\nexport const sourcePushSchema = z.object({\n externalRepositoryId: nonEmptyStringSchema,\n ref: nonEmptyStringSchema,\n headCommitSha: nonEmptyStringSchema,\n defaultBranch: nonEmptyStringSchema,\n isDefaultBranch: z.boolean(),\n});\nexport type SourcePushPayload = z.infer<typeof sourcePushSchema>;\n\nexport const INTEGRATION_SOURCE_COMMIT_PUSHED =\n 'integrations.source_control.commit_pushed' as const;\n\n// Typed, provider-agnostic source-control event. The producing provider owns the\n// translation from its raw webhook into this shape, so domain consumers never decode\n// provider payloads. `isDefaultBranch` is a fact; the branch policy lives in the consumer.\nexport const integrationSourceCommitPushedSchema = z.object({\n provider: nonEmptyStringSchema,\n workspaceId: nonEmptyStringSchema,\n connectionId: nonEmptyStringSchema,\n deliveryId: nonEmptyStringSchema,\n receivedAt: isoDateTimeSchema,\n push: sourcePushSchema,\n});\nexport type IntegrationSourceCommitPushedEvent = z.infer<\n typeof integrationSourceCommitPushedSchema\n>;\n\nexport const sourceRepositoryIdentitySchema = z.object({\n externalRepositoryId: nonEmptyStringSchema,\n owner: nonEmptyStringSchema,\n name: nonEmptyStringSchema,\n defaultBranch: nonEmptyStringSchema,\n});\nexport type SourceRepositoryIdentity = z.infer<typeof sourceRepositoryIdentitySchema>;\n\nexport const INTEGRATION_SOURCE_REPOSITORY_UPDATED =\n 'integrations.source_control.repository_updated' as const;\n\n// Typed, provider-agnostic source-control event. The producing provider owns the\n// translation from its raw webhook into this shape, so domain consumers never decode\n// provider payloads.\nexport const integrationSourceRepositoryUpdatedSchema = z.object({\n provider: nonEmptyStringSchema,\n workspaceId: nonEmptyStringSchema,\n connectionId: nonEmptyStringSchema,\n deliveryId: nonEmptyStringSchema,\n receivedAt: isoDateTimeSchema,\n repository: sourceRepositoryIdentitySchema,\n});\nexport type IntegrationSourceRepositoryUpdatedEvent = z.infer<\n typeof integrationSourceRepositoryUpdatedSchema\n>;\n\nexport interface SentryIssuePayload {\n action: SentryIssueAction;\n issueId: string;\n shortId: string | null;\n title: string;\n culprit: string | null;\n level: string | null;\n status: string | null;\n platform: string | null;\n webUrl: string | null;\n issueUrl: string | null;\n projectUrl: string | null;\n firstSeenAt: string | null;\n lastSeenAt: string | null;\n}\n\n// Single source of truth for Sentry issue actions: the sentry-dto webhook schema\n// builds its z.enum from this tuple, so accepted webhook actions and the published\n// SentryIssuePayload contract cannot drift.\nexport const SENTRY_ISSUE_ACTIONS = [\n 'created',\n 'resolved',\n 'assigned',\n 'archived',\n 'unresolved',\n] as const;\n\nexport type SentryIssueAction = (typeof SENTRY_ISSUE_ACTIONS)[number];\n\nexport interface IntegrationsEventMap {\n [INTEGRATION_CONNECTION_AVAILABLE]: IntegrationConnectionAvailableEvent;\n [INTEGRATION_EVENT_RECEIVED]: IntegrationEventReceivedEvent;\n [INTEGRATION_SOURCE_COMMIT_PUSHED]: IntegrationSourceCommitPushedEvent;\n [INTEGRATION_SOURCE_REPOSITORY_UPDATED]: IntegrationSourceRepositoryUpdatedEvent;\n}\n\nexport const integrationsEventSchemas = {\n [INTEGRATION_CONNECTION_AVAILABLE]: integrationConnectionAvailableSchema,\n [INTEGRATION_EVENT_RECEIVED]: integrationEventReceivedSchema,\n [INTEGRATION_SOURCE_COMMIT_PUSHED]: integrationSourceCommitPushedSchema,\n [INTEGRATION_SOURCE_REPOSITORY_UPDATED]: integrationSourceRepositoryUpdatedSchema,\n} satisfies Record<keyof IntegrationsEventMap, z.ZodType>;\n"],"names":["z","integrationCapabilitySchema","INTEGRATION_EVENT_RECEIVED","INTEGRATION_CONNECTION_AVAILABLE","nonEmptyStringSchema","string","nonempty","isoDateTimeSchema","datetime","requiredUnknownSchema","custom","value","undefined","nullableConnectionNameSchema","nullish","default","integrationEventReceivedSchema","object","provider","source","event","workspaceId","connectionId","connectionName","deliveryId","receivedAt","payload","integrationConnectionAvailableSchema","slug","capabilities","array","max","sourcePushSchema","externalRepositoryId","ref","headCommitSha","defaultBranch","isDefaultBranch","boolean","INTEGRATION_SOURCE_COMMIT_PUSHED","integrationSourceCommitPushedSchema","push","sourceRepositoryIdentitySchema","owner","name","INTEGRATION_SOURCE_REPOSITORY_UPDATED","integrationSourceRepositoryUpdatedSchema","repository","SENTRY_ISSUE_ACTIONS","integrationsEventSchemas"],"mappings":"AAAA,SAAQA,CAAC,QAAO,MAAM;AACtB,SAAQC,2BAA2B,QAAO,4BAA4B;AAEtE,OAAO,MAAMC,6BAA6B,8BAAuC;AACjF,OAAO,MAAMC,mCAAmC,oCAA6C;AAE7F,MAAMC,uBAAuBJ,EAAEK,MAAM,GAAGC,QAAQ;AAChD,MAAMC,oBAAoBP,EAAEK,MAAM,GAAGG,QAAQ;AAC7C,MAAMC,wBAAwBT,EAAEU,MAAM,CAAU,CAACC,QAAUA,UAAUC;AACrE,MAAMC,+BAA+BT,qBAAqBU,OAAO,GAAGC,OAAO,CAAC;AAE5E,OAAO,MAAMC,iCAAiChB,EAAEiB,MAAM,CAAC;IACrDC,UAAUd;IACVe,QAAQf;IACRgB,OAAOhB;IACPiB,aAAajB;IACbkB,cAAclB;IACd,6EAA6E;IAC7E,qDAAqD;IACrDmB,gBAAgBV;IAChBW,YAAYpB;IACZqB,YAAYlB;IACZmB,SAASjB;AACX,GAAG;AAGH,OAAO,MAAMkB,uCAAuC3B,EAAEiB,MAAM,CAAC;IAC3DC,UAAUd;IACViB,aAAajB;IACbkB,cAAclB;IACdwB,MAAMxB;IACN,4EAA4E;IAC5E,qEAAqE;IACrE,yEAAyE;IACzE,gFAAgF;IAChFyB,cAAc7B,EAAE8B,KAAK,CAAC7B,6BAA6B8B,GAAG,CAAC,IAAIhB,OAAO,CAAC,EAAE;AACvE,GAAG;AAKH,6EAA6E;AAC7E,2DAA2D;AAC3D,OAAO,MAAMiB,mBAAmBhC,EAAEiB,MAAM,CAAC;IACvCgB,sBAAsB7B;IACtB8B,KAAK9B;IACL+B,eAAe/B;IACfgC,eAAehC;IACfiC,iBAAiBrC,EAAEsC,OAAO;AAC5B,GAAG;AAGH,OAAO,MAAMC,mCACX,4CAAqD;AAEvD,iFAAiF;AACjF,qFAAqF;AACrF,2FAA2F;AAC3F,OAAO,MAAMC,sCAAsCxC,EAAEiB,MAAM,CAAC;IAC1DC,UAAUd;IACViB,aAAajB;IACbkB,cAAclB;IACdoB,YAAYpB;IACZqB,YAAYlB;IACZkC,MAAMT;AACR,GAAG;AAKH,OAAO,MAAMU,iCAAiC1C,EAAEiB,MAAM,CAAC;IACrDgB,sBAAsB7B;IACtBuC,OAAOvC;IACPwC,MAAMxC;IACNgC,eAAehC;AACjB,GAAG;AAGH,OAAO,MAAMyC,wCACX,iDAA0D;AAE5D,iFAAiF;AACjF,qFAAqF;AACrF,qBAAqB;AACrB,OAAO,MAAMC,2CAA2C9C,EAAEiB,MAAM,CAAC;IAC/DC,UAAUd;IACViB,aAAajB;IACbkB,cAAclB;IACdoB,YAAYpB;IACZqB,YAAYlB;IACZwC,YAAYL;AACd,GAAG;AAqBH,iFAAiF;AACjF,mFAAmF;AACnF,4CAA4C;AAC5C,OAAO,MAAMM,uBAAuB;IAClC;IACA;IACA;IACA;IACA;CACD,CAAU;AAWX,OAAO,MAAMC,2BAA2B;IACtC,CAAC9C,iCAAiC,EAAEwB;IACpC,CAACzB,2BAA2B,EAAEc;IAC9B,CAACuB,iCAAiC,EAAEC;IACpC,CAACK,sCAAsC,EAAEC;AAC3C,EAA0D"}
@@ -113,6 +113,52 @@ export declare const integrationsInterModuleContract: import("@shipfox/inter-mod
113
113
  }, z.core.$strip>;
114
114
  };
115
115
  };
116
+ resolveSourceRef: {
117
+ input: z.ZodObject<{
118
+ workspaceId: z.ZodString;
119
+ connectionId: z.ZodString;
120
+ externalRepositoryId: z.ZodString;
121
+ ref: z.ZodString;
122
+ }, z.core.$strip>;
123
+ output: z.ZodObject<{
124
+ ref: z.ZodString;
125
+ commit: z.ZodString;
126
+ }, z.core.$strip>;
127
+ errors: {
128
+ 'connection-not-found': z.ZodObject<{
129
+ connectionId: z.ZodString;
130
+ }, z.core.$strip>;
131
+ 'connection-inactive': z.ZodObject<{
132
+ connectionId: z.ZodString;
133
+ }, z.core.$strip>;
134
+ 'connection-workspace-mismatch': z.ZodObject<{
135
+ connectionId: z.ZodString;
136
+ }, z.core.$strip>;
137
+ 'provider-unavailable': z.ZodObject<{
138
+ provider: z.ZodString;
139
+ }, z.core.$strip>;
140
+ 'capability-unavailable': z.ZodObject<{
141
+ provider: z.ZodString;
142
+ capability: z.ZodEnum<{
143
+ agent_tools: "agent_tools";
144
+ source_control: "source_control";
145
+ }>;
146
+ }, z.core.$strip>;
147
+ 'checkout-unsupported': z.ZodObject<{
148
+ provider: z.ZodString;
149
+ }, z.core.$strip>;
150
+ 'provider-failure': z.ZodObject<{
151
+ reason: z.ZodString;
152
+ retryAfterSeconds: z.ZodOptional<z.ZodNumber>;
153
+ }, z.core.$strip>;
154
+ 'ref-not-found': z.ZodObject<{
155
+ ref: z.ZodString;
156
+ }, z.core.$strip>;
157
+ 'ref-invalid': z.ZodObject<{
158
+ ref: z.ZodString;
159
+ }, z.core.$strip>;
160
+ };
161
+ };
116
162
  listSourceFiles: {
117
163
  input: z.ZodObject<{
118
164
  workspaceId: z.ZodString;
@@ -314,6 +360,11 @@ export declare const integrationsInterModuleContract: import("@shipfox/inter-mod
314
360
  source_control: "source_control";
315
361
  }>>;
316
362
  }, z.core.$strip>>;
363
+ eventCatalogs: z.ZodArray<z.ZodObject<{
364
+ provider: z.ZodString;
365
+ events: z.ZodArray<z.ZodString>;
366
+ }, z.core.$strip>>;
367
+ fixedEventProviders: z.ZodArray<z.ZodString>;
317
368
  defaultConnection: z.ZodNullable<z.ZodObject<{
318
369
  id: z.ZodString;
319
370
  slug: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"inter-module.d.ts","sourceRoot":"","sources":["../src/inter-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAqCtB,kFAAkF;AAClF,eAAO,MAAM,+BAA+B;;;QAGxC,uBAAuB;YACrB,KAAK;;;;;YACL,MAAM;;;;;;;;;;;;;;;;;;;;;;YACN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAER,iBAAiB;YACf,KAAK;;;;YACL,MAAM;;;;;;QAER,uBAAuB;YACrB,KAAK;;;;;YACL,MAAM;;;;;;YACN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAER,eAAe;YACb,KAAK;;;;;;;;;YAML,MAAM;;;;;;;;YAMN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAER,eAAe;YACb,KAAK;;;;;;;YACL,MAAM;;;;;YACN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAER,kBAAkB;YAChB,KAAK;;;;;;;;;;;;YAIL,MAAM;;;;;;;;;;;;;YAQN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAER,oBAAoB;YAClB,KAAK;;;;YACL,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA8CN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGV,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,CAAC,OAAO,+BAA+B,CAAC,CAAC"}
1
+ {"version":3,"file":"inter-module.d.ts","sourceRoot":"","sources":["../src/inter-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AAExF,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AA4CtB,kFAAkF;AAClF,eAAO,MAAM,+BAA+B;;;QAGxC,uBAAuB;YACrB,KAAK;;;;;YACL,MAAM;;;;;;;;;;;;;;;;;;;;;;YACN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAER,iBAAiB;YACf,KAAK;;;;YACL,MAAM;;;;;;QAER,uBAAuB;YACrB,KAAK;;;;;YACL,MAAM;;;;;;YACN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAER,gBAAgB;YACd,KAAK;;;;;;YACL,MAAM;;;;YACN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAER,eAAe;YACb,KAAK;;;;;;;;;YAML,MAAM;;;;;;;;YAMN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAER,eAAe;YACb,KAAK;;;;;;;YACL,MAAM;;;;;YACN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAER,kBAAkB;YAChB,KAAK;;;;;;;;;;;;YAIL,MAAM;;;;;;;;;;;;;YAQN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAER,oBAAoB;YAClB,KAAK;;;;YACL,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAgDN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGV,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,CAAC,OAAO,+BAA+B,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { defineInterModuleContract } from '@shipfox/inter-module';
2
+ import { isSafeRefInput } from '@shipfox/regex';
2
3
  import { z } from 'zod';
3
4
  const id = z.string().uuid();
4
5
  const provider = z.string().min(1);
@@ -6,6 +7,7 @@ const capability = z.enum([
6
7
  'source_control',
7
8
  'agent_tools'
8
9
  ]);
10
+ const safeRef = z.string().refine(isSafeRefInput, 'Ref contains a control character');
9
11
  const connection = z.object({
10
12
  id,
11
13
  provider,
@@ -63,6 +65,15 @@ const sourceErrors = {
63
65
  }),
64
66
  'provider-failure': providerError
65
67
  };
68
+ const refErrors = {
69
+ ...sourceErrors,
70
+ 'ref-not-found': z.object({
71
+ ref: safeRef
72
+ }),
73
+ 'ref-invalid': z.object({
74
+ ref: safeRef
75
+ })
76
+ };
66
77
  /** Producer-owned synchronous operations for the Integrations bounded context. */ export const integrationsInterModuleContract = defineInterModuleContract({
67
78
  module: 'integrations',
68
79
  methods: {
@@ -90,6 +101,16 @@ const sourceErrors = {
90
101
  output: triggerReference.nullable(),
91
102
  errors: sourceErrors
92
103
  },
104
+ resolveSourceRef: {
105
+ input: sourceInput.extend({
106
+ ref: safeRef
107
+ }),
108
+ output: z.object({
109
+ ref: z.string(),
110
+ commit: z.string()
111
+ }),
112
+ errors: refErrors
113
+ },
93
114
  listSourceFiles: {
94
115
  input: sourceInput.extend({
95
116
  ref: z.string(),
@@ -198,6 +219,11 @@ const sourceErrors = {
198
219
  provider,
199
220
  capabilities: z.array(capability)
200
221
  })),
222
+ eventCatalogs: z.array(z.object({
223
+ provider,
224
+ events: z.array(z.string())
225
+ })),
226
+ fixedEventProviders: z.array(provider),
201
227
  defaultConnection: z.object({
202
228
  id,
203
229
  slug: z.string(),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/inter-module.ts"],"sourcesContent":["import {defineInterModuleContract, type InterModuleClient} from '@shipfox/inter-module';\nimport {z} from 'zod';\n\nconst id = z.string().uuid();\nconst provider = z.string().min(1);\nconst capability = z.enum(['source_control', 'agent_tools']);\nconst connection = z.object({id, provider, slug: z.string().min(1)});\nconst repository = z.object({\n externalRepositoryId: z.string(),\n owner: z.string(),\n name: z.string(),\n fullName: z.string(),\n defaultBranch: z.string(),\n visibility: z.enum(['public', 'private', 'internal', 'unknown']),\n cloneUrl: z.string(),\n htmlUrl: z.string(),\n});\nconst triggerReference = z.object({\n externalRepositoryId: z.string(),\n ref: z.string(),\n commit: z.string(),\n actor: z.string().nullable(),\n});\nconst sourceInput = z.object({workspaceId: id, connectionId: id, externalRepositoryId: z.string()});\nconst providerError = z.object({\n reason: z.string(),\n retryAfterSeconds: z.number().int().positive().optional(),\n});\nconst sourceErrors = {\n 'connection-not-found': z.object({connectionId: id}),\n 'connection-inactive': z.object({connectionId: id}),\n 'connection-workspace-mismatch': z.object({connectionId: id}),\n 'provider-unavailable': z.object({provider}),\n 'capability-unavailable': z.object({provider, capability}),\n 'checkout-unsupported': z.object({provider}),\n 'provider-failure': providerError,\n};\n\n/** Producer-owned synchronous operations for the Integrations bounded context. */\nexport const integrationsInterModuleContract = defineInterModuleContract({\n module: 'integrations',\n methods: {\n resolveSourceRepository: {\n input: sourceInput,\n output: z.object({connection, repository}),\n errors: sourceErrors,\n },\n resolveConnection: {\n input: z.object({workspaceId: id, slug: z.string().min(1)}),\n output: connection.nullable(),\n },\n resolveTriggerReference: {\n input: z.object({workspaceId: id, connectionId: id, payload: z.unknown()}),\n output: triggerReference.nullable(),\n errors: sourceErrors,\n },\n listSourceFiles: {\n input: sourceInput.extend({\n ref: z.string(),\n prefix: z.string(),\n limit: z.number().int().positive(),\n cursor: z.string().optional(),\n }),\n output: z.object({\n files: z.array(\n z.object({path: z.string(), type: z.literal('file'), size: z.number().int().nullable()}),\n ),\n nextCursor: z.string().nullable(),\n }),\n errors: sourceErrors,\n },\n fetchSourceFile: {\n input: sourceInput.extend({ref: z.string(), path: z.string()}),\n output: z.object({path: z.string(), ref: z.string(), content: z.string()}),\n errors: sourceErrors,\n },\n createCheckoutSpec: {\n input: sourceInput.extend({\n ref: z.string().optional(),\n permissions: z.object({contents: z.enum(['read', 'write'])}).optional(),\n }),\n output: z.object({\n repositoryUrl: z.string(),\n ref: z.string(),\n credentials: z\n .object({username: z.string(), token: z.string(), expiresAt: z.string().datetime()})\n .optional(),\n gitAuthor: z.object({name: z.string(), email: z.string()}).optional(),\n }),\n errors: sourceErrors,\n },\n getAgentToolsContext: {\n input: z.object({workspaceId: id, defaultConnectionId: id}),\n output: z.object({\n selectionCatalogs: z.array(\n z.object({\n provider,\n selectors: z.array(\n z.object({\n token: z.string(),\n kind: z.enum(['family', 'family_wildcard', 'method', 'standalone']),\n sensitivity: z.enum(['read', 'write']),\n sensitive: z.boolean(),\n }),\n ),\n }),\n ),\n catalogs: z.array(\n z.object({\n provider,\n tools: z.array(\n z.object({\n id: z.string(),\n description: z.string(),\n sensitivity: z.enum(['read', 'write']),\n sensitive: z.boolean(),\n requiredScope: z.unknown(),\n inputSchema: z.record(z.string(), z.unknown()),\n outputSchema: z.record(z.string(), z.unknown()).optional(),\n methods: z\n .array(\n z.object({\n id: z.string(),\n description: z.string(),\n sensitivity: z.enum(['read', 'write']),\n sensitive: z.boolean(),\n requiredScope: z.unknown(),\n }),\n )\n .optional(),\n }),\n ),\n }),\n ),\n workspaceConnections: z.array(\n z.object({slug: z.string(), id, provider, capabilities: z.array(capability)}),\n ),\n defaultConnection: z.object({id, slug: z.string(), provider}).nullable(),\n }),\n errors: sourceErrors,\n },\n },\n});\n\nexport type IntegrationsModuleClient = InterModuleClient<typeof integrationsInterModuleContract>;\n"],"names":["defineInterModuleContract","z","id","string","uuid","provider","min","capability","enum","connection","object","slug","repository","externalRepositoryId","owner","name","fullName","defaultBranch","visibility","cloneUrl","htmlUrl","triggerReference","ref","commit","actor","nullable","sourceInput","workspaceId","connectionId","providerError","reason","retryAfterSeconds","number","int","positive","optional","sourceErrors","integrationsInterModuleContract","module","methods","resolveSourceRepository","input","output","errors","resolveConnection","resolveTriggerReference","payload","unknown","listSourceFiles","extend","prefix","limit","cursor","files","array","path","type","literal","size","nextCursor","fetchSourceFile","content","createCheckoutSpec","permissions","contents","repositoryUrl","credentials","username","token","expiresAt","datetime","gitAuthor","email","getAgentToolsContext","defaultConnectionId","selectionCatalogs","selectors","kind","sensitivity","sensitive","boolean","catalogs","tools","description","requiredScope","inputSchema","record","outputSchema","workspaceConnections","capabilities","defaultConnection"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/inter-module.ts"],"sourcesContent":["import {defineInterModuleContract, type InterModuleClient} from '@shipfox/inter-module';\nimport {isSafeRefInput} from '@shipfox/regex';\nimport {z} from 'zod';\n\nconst id = z.string().uuid();\nconst provider = z.string().min(1);\nconst capability = z.enum(['source_control', 'agent_tools']);\nconst safeRef = z.string().refine(isSafeRefInput, 'Ref contains a control character');\nconst connection = z.object({id, provider, slug: z.string().min(1)});\nconst repository = z.object({\n externalRepositoryId: z.string(),\n owner: z.string(),\n name: z.string(),\n fullName: z.string(),\n defaultBranch: z.string(),\n visibility: z.enum(['public', 'private', 'internal', 'unknown']),\n cloneUrl: z.string(),\n htmlUrl: z.string(),\n});\nconst triggerReference = z.object({\n externalRepositoryId: z.string(),\n ref: z.string(),\n commit: z.string(),\n actor: z.string().nullable(),\n});\nconst sourceInput = z.object({workspaceId: id, connectionId: id, externalRepositoryId: z.string()});\nconst providerError = z.object({\n reason: z.string(),\n retryAfterSeconds: z.number().int().positive().optional(),\n});\nconst sourceErrors = {\n 'connection-not-found': z.object({connectionId: id}),\n 'connection-inactive': z.object({connectionId: id}),\n 'connection-workspace-mismatch': z.object({connectionId: id}),\n 'provider-unavailable': z.object({provider}),\n 'capability-unavailable': z.object({provider, capability}),\n 'checkout-unsupported': z.object({provider}),\n 'provider-failure': providerError,\n};\n\nconst refErrors = {\n ...sourceErrors,\n 'ref-not-found': z.object({ref: safeRef}),\n 'ref-invalid': z.object({ref: safeRef}),\n};\n\n/** Producer-owned synchronous operations for the Integrations bounded context. */\nexport const integrationsInterModuleContract = defineInterModuleContract({\n module: 'integrations',\n methods: {\n resolveSourceRepository: {\n input: sourceInput,\n output: z.object({connection, repository}),\n errors: sourceErrors,\n },\n resolveConnection: {\n input: z.object({workspaceId: id, slug: z.string().min(1)}),\n output: connection.nullable(),\n },\n resolveTriggerReference: {\n input: z.object({workspaceId: id, connectionId: id, payload: z.unknown()}),\n output: triggerReference.nullable(),\n errors: sourceErrors,\n },\n resolveSourceRef: {\n input: sourceInput.extend({ref: safeRef}),\n output: z.object({ref: z.string(), commit: z.string()}),\n errors: refErrors,\n },\n listSourceFiles: {\n input: sourceInput.extend({\n ref: z.string(),\n prefix: z.string(),\n limit: z.number().int().positive(),\n cursor: z.string().optional(),\n }),\n output: z.object({\n files: z.array(\n z.object({path: z.string(), type: z.literal('file'), size: z.number().int().nullable()}),\n ),\n nextCursor: z.string().nullable(),\n }),\n errors: sourceErrors,\n },\n fetchSourceFile: {\n input: sourceInput.extend({ref: z.string(), path: z.string()}),\n output: z.object({path: z.string(), ref: z.string(), content: z.string()}),\n errors: sourceErrors,\n },\n createCheckoutSpec: {\n input: sourceInput.extend({\n ref: z.string().optional(),\n permissions: z.object({contents: z.enum(['read', 'write'])}).optional(),\n }),\n output: z.object({\n repositoryUrl: z.string(),\n ref: z.string(),\n credentials: z\n .object({username: z.string(), token: z.string(), expiresAt: z.string().datetime()})\n .optional(),\n gitAuthor: z.object({name: z.string(), email: z.string()}).optional(),\n }),\n errors: sourceErrors,\n },\n getAgentToolsContext: {\n input: z.object({workspaceId: id, defaultConnectionId: id}),\n output: z.object({\n selectionCatalogs: z.array(\n z.object({\n provider,\n selectors: z.array(\n z.object({\n token: z.string(),\n kind: z.enum(['family', 'family_wildcard', 'method', 'standalone']),\n sensitivity: z.enum(['read', 'write']),\n sensitive: z.boolean(),\n }),\n ),\n }),\n ),\n catalogs: z.array(\n z.object({\n provider,\n tools: z.array(\n z.object({\n id: z.string(),\n description: z.string(),\n sensitivity: z.enum(['read', 'write']),\n sensitive: z.boolean(),\n requiredScope: z.unknown(),\n inputSchema: z.record(z.string(), z.unknown()),\n outputSchema: z.record(z.string(), z.unknown()).optional(),\n methods: z\n .array(\n z.object({\n id: z.string(),\n description: z.string(),\n sensitivity: z.enum(['read', 'write']),\n sensitive: z.boolean(),\n requiredScope: z.unknown(),\n }),\n )\n .optional(),\n }),\n ),\n }),\n ),\n workspaceConnections: z.array(\n z.object({slug: z.string(), id, provider, capabilities: z.array(capability)}),\n ),\n eventCatalogs: z.array(z.object({provider, events: z.array(z.string())})),\n fixedEventProviders: z.array(provider),\n defaultConnection: z.object({id, slug: z.string(), provider}).nullable(),\n }),\n errors: sourceErrors,\n },\n },\n});\n\nexport type IntegrationsModuleClient = InterModuleClient<typeof integrationsInterModuleContract>;\n"],"names":["defineInterModuleContract","isSafeRefInput","z","id","string","uuid","provider","min","capability","enum","safeRef","refine","connection","object","slug","repository","externalRepositoryId","owner","name","fullName","defaultBranch","visibility","cloneUrl","htmlUrl","triggerReference","ref","commit","actor","nullable","sourceInput","workspaceId","connectionId","providerError","reason","retryAfterSeconds","number","int","positive","optional","sourceErrors","refErrors","integrationsInterModuleContract","module","methods","resolveSourceRepository","input","output","errors","resolveConnection","resolveTriggerReference","payload","unknown","resolveSourceRef","extend","listSourceFiles","prefix","limit","cursor","files","array","path","type","literal","size","nextCursor","fetchSourceFile","content","createCheckoutSpec","permissions","contents","repositoryUrl","credentials","username","token","expiresAt","datetime","gitAuthor","email","getAgentToolsContext","defaultConnectionId","selectionCatalogs","selectors","kind","sensitivity","sensitive","boolean","catalogs","tools","description","requiredScope","inputSchema","record","outputSchema","workspaceConnections","capabilities","eventCatalogs","events","fixedEventProviders","defaultConnection"],"mappings":"AAAA,SAAQA,yBAAyB,QAA+B,wBAAwB;AACxF,SAAQC,cAAc,QAAO,iBAAiB;AAC9C,SAAQC,CAAC,QAAO,MAAM;AAEtB,MAAMC,KAAKD,EAAEE,MAAM,GAAGC,IAAI;AAC1B,MAAMC,WAAWJ,EAAEE,MAAM,GAAGG,GAAG,CAAC;AAChC,MAAMC,aAAaN,EAAEO,IAAI,CAAC;IAAC;IAAkB;CAAc;AAC3D,MAAMC,UAAUR,EAAEE,MAAM,GAAGO,MAAM,CAACV,gBAAgB;AAClD,MAAMW,aAAaV,EAAEW,MAAM,CAAC;IAACV;IAAIG;IAAUQ,MAAMZ,EAAEE,MAAM,GAAGG,GAAG,CAAC;AAAE;AAClE,MAAMQ,aAAab,EAAEW,MAAM,CAAC;IAC1BG,sBAAsBd,EAAEE,MAAM;IAC9Ba,OAAOf,EAAEE,MAAM;IACfc,MAAMhB,EAAEE,MAAM;IACde,UAAUjB,EAAEE,MAAM;IAClBgB,eAAelB,EAAEE,MAAM;IACvBiB,YAAYnB,EAAEO,IAAI,CAAC;QAAC;QAAU;QAAW;QAAY;KAAU;IAC/Da,UAAUpB,EAAEE,MAAM;IAClBmB,SAASrB,EAAEE,MAAM;AACnB;AACA,MAAMoB,mBAAmBtB,EAAEW,MAAM,CAAC;IAChCG,sBAAsBd,EAAEE,MAAM;IAC9BqB,KAAKvB,EAAEE,MAAM;IACbsB,QAAQxB,EAAEE,MAAM;IAChBuB,OAAOzB,EAAEE,MAAM,GAAGwB,QAAQ;AAC5B;AACA,MAAMC,cAAc3B,EAAEW,MAAM,CAAC;IAACiB,aAAa3B;IAAI4B,cAAc5B;IAAIa,sBAAsBd,EAAEE,MAAM;AAAE;AACjG,MAAM4B,gBAAgB9B,EAAEW,MAAM,CAAC;IAC7BoB,QAAQ/B,EAAEE,MAAM;IAChB8B,mBAAmBhC,EAAEiC,MAAM,GAAGC,GAAG,GAAGC,QAAQ,GAAGC,QAAQ;AACzD;AACA,MAAMC,eAAe;IACnB,wBAAwBrC,EAAEW,MAAM,CAAC;QAACkB,cAAc5B;IAAE;IAClD,uBAAuBD,EAAEW,MAAM,CAAC;QAACkB,cAAc5B;IAAE;IACjD,iCAAiCD,EAAEW,MAAM,CAAC;QAACkB,cAAc5B;IAAE;IAC3D,wBAAwBD,EAAEW,MAAM,CAAC;QAACP;IAAQ;IAC1C,0BAA0BJ,EAAEW,MAAM,CAAC;QAACP;QAAUE;IAAU;IACxD,wBAAwBN,EAAEW,MAAM,CAAC;QAACP;IAAQ;IAC1C,oBAAoB0B;AACtB;AAEA,MAAMQ,YAAY;IAChB,GAAGD,YAAY;IACf,iBAAiBrC,EAAEW,MAAM,CAAC;QAACY,KAAKf;IAAO;IACvC,eAAeR,EAAEW,MAAM,CAAC;QAACY,KAAKf;IAAO;AACvC;AAEA,gFAAgF,GAChF,OAAO,MAAM+B,kCAAkCzC,0BAA0B;IACvE0C,QAAQ;IACRC,SAAS;QACPC,yBAAyB;YACvBC,OAAOhB;YACPiB,QAAQ5C,EAAEW,MAAM,CAAC;gBAACD;gBAAYG;YAAU;YACxCgC,QAAQR;QACV;QACAS,mBAAmB;YACjBH,OAAO3C,EAAEW,MAAM,CAAC;gBAACiB,aAAa3B;gBAAIW,MAAMZ,EAAEE,MAAM,GAAGG,GAAG,CAAC;YAAE;YACzDuC,QAAQlC,WAAWgB,QAAQ;QAC7B;QACAqB,yBAAyB;YACvBJ,OAAO3C,EAAEW,MAAM,CAAC;gBAACiB,aAAa3B;gBAAI4B,cAAc5B;gBAAI+C,SAAShD,EAAEiD,OAAO;YAAE;YACxEL,QAAQtB,iBAAiBI,QAAQ;YACjCmB,QAAQR;QACV;QACAa,kBAAkB;YAChBP,OAAOhB,YAAYwB,MAAM,CAAC;gBAAC5B,KAAKf;YAAO;YACvCoC,QAAQ5C,EAAEW,MAAM,CAAC;gBAACY,KAAKvB,EAAEE,MAAM;gBAAIsB,QAAQxB,EAAEE,MAAM;YAAE;YACrD2C,QAAQP;QACV;QACAc,iBAAiB;YACfT,OAAOhB,YAAYwB,MAAM,CAAC;gBACxB5B,KAAKvB,EAAEE,MAAM;gBACbmD,QAAQrD,EAAEE,MAAM;gBAChBoD,OAAOtD,EAAEiC,MAAM,GAAGC,GAAG,GAAGC,QAAQ;gBAChCoB,QAAQvD,EAAEE,MAAM,GAAGkC,QAAQ;YAC7B;YACAQ,QAAQ5C,EAAEW,MAAM,CAAC;gBACf6C,OAAOxD,EAAEyD,KAAK,CACZzD,EAAEW,MAAM,CAAC;oBAAC+C,MAAM1D,EAAEE,MAAM;oBAAIyD,MAAM3D,EAAE4D,OAAO,CAAC;oBAASC,MAAM7D,EAAEiC,MAAM,GAAGC,GAAG,GAAGR,QAAQ;gBAAE;gBAExFoC,YAAY9D,EAAEE,MAAM,GAAGwB,QAAQ;YACjC;YACAmB,QAAQR;QACV;QACA0B,iBAAiB;YACfpB,OAAOhB,YAAYwB,MAAM,CAAC;gBAAC5B,KAAKvB,EAAEE,MAAM;gBAAIwD,MAAM1D,EAAEE,MAAM;YAAE;YAC5D0C,QAAQ5C,EAAEW,MAAM,CAAC;gBAAC+C,MAAM1D,EAAEE,MAAM;gBAAIqB,KAAKvB,EAAEE,MAAM;gBAAI8D,SAAShE,EAAEE,MAAM;YAAE;YACxE2C,QAAQR;QACV;QACA4B,oBAAoB;YAClBtB,OAAOhB,YAAYwB,MAAM,CAAC;gBACxB5B,KAAKvB,EAAEE,MAAM,GAAGkC,QAAQ;gBACxB8B,aAAalE,EAAEW,MAAM,CAAC;oBAACwD,UAAUnE,EAAEO,IAAI,CAAC;wBAAC;wBAAQ;qBAAQ;gBAAC,GAAG6B,QAAQ;YACvE;YACAQ,QAAQ5C,EAAEW,MAAM,CAAC;gBACfyD,eAAepE,EAAEE,MAAM;gBACvBqB,KAAKvB,EAAEE,MAAM;gBACbmE,aAAarE,EACVW,MAAM,CAAC;oBAAC2D,UAAUtE,EAAEE,MAAM;oBAAIqE,OAAOvE,EAAEE,MAAM;oBAAIsE,WAAWxE,EAAEE,MAAM,GAAGuE,QAAQ;gBAAE,GACjFrC,QAAQ;gBACXsC,WAAW1E,EAAEW,MAAM,CAAC;oBAACK,MAAMhB,EAAEE,MAAM;oBAAIyE,OAAO3E,EAAEE,MAAM;gBAAE,GAAGkC,QAAQ;YACrE;YACAS,QAAQR;QACV;QACAuC,sBAAsB;YACpBjC,OAAO3C,EAAEW,MAAM,CAAC;gBAACiB,aAAa3B;gBAAI4E,qBAAqB5E;YAAE;YACzD2C,QAAQ5C,EAAEW,MAAM,CAAC;gBACfmE,mBAAmB9E,EAAEyD,KAAK,CACxBzD,EAAEW,MAAM,CAAC;oBACPP;oBACA2E,WAAW/E,EAAEyD,KAAK,CAChBzD,EAAEW,MAAM,CAAC;wBACP4D,OAAOvE,EAAEE,MAAM;wBACf8E,MAAMhF,EAAEO,IAAI,CAAC;4BAAC;4BAAU;4BAAmB;4BAAU;yBAAa;wBAClE0E,aAAajF,EAAEO,IAAI,CAAC;4BAAC;4BAAQ;yBAAQ;wBACrC2E,WAAWlF,EAAEmF,OAAO;oBACtB;gBAEJ;gBAEFC,UAAUpF,EAAEyD,KAAK,CACfzD,EAAEW,MAAM,CAAC;oBACPP;oBACAiF,OAAOrF,EAAEyD,KAAK,CACZzD,EAAEW,MAAM,CAAC;wBACPV,IAAID,EAAEE,MAAM;wBACZoF,aAAatF,EAAEE,MAAM;wBACrB+E,aAAajF,EAAEO,IAAI,CAAC;4BAAC;4BAAQ;yBAAQ;wBACrC2E,WAAWlF,EAAEmF,OAAO;wBACpBI,eAAevF,EAAEiD,OAAO;wBACxBuC,aAAaxF,EAAEyF,MAAM,CAACzF,EAAEE,MAAM,IAAIF,EAAEiD,OAAO;wBAC3CyC,cAAc1F,EAAEyF,MAAM,CAACzF,EAAEE,MAAM,IAAIF,EAAEiD,OAAO,IAAIb,QAAQ;wBACxDK,SAASzC,EACNyD,KAAK,CACJzD,EAAEW,MAAM,CAAC;4BACPV,IAAID,EAAEE,MAAM;4BACZoF,aAAatF,EAAEE,MAAM;4BACrB+E,aAAajF,EAAEO,IAAI,CAAC;gCAAC;gCAAQ;6BAAQ;4BACrC2E,WAAWlF,EAAEmF,OAAO;4BACpBI,eAAevF,EAAEiD,OAAO;wBAC1B,IAEDb,QAAQ;oBACb;gBAEJ;gBAEFuD,sBAAsB3F,EAAEyD,KAAK,CAC3BzD,EAAEW,MAAM,CAAC;oBAACC,MAAMZ,EAAEE,MAAM;oBAAID;oBAAIG;oBAAUwF,cAAc5F,EAAEyD,KAAK,CAACnD;gBAAW;gBAE7EuF,eAAe7F,EAAEyD,KAAK,CAACzD,EAAEW,MAAM,CAAC;oBAACP;oBAAU0F,QAAQ9F,EAAEyD,KAAK,CAACzD,EAAEE,MAAM;gBAAG;gBACtE6F,qBAAqB/F,EAAEyD,KAAK,CAACrD;gBAC7B4F,mBAAmBhG,EAAEW,MAAM,CAAC;oBAACV;oBAAIW,MAAMZ,EAAEE,MAAM;oBAAIE;gBAAQ,GAAGsB,QAAQ;YACxE;YACAmB,QAAQR;QACV;IACF;AACF,GAAG"}
@@ -1,2 +1,2 @@
1
- export { CONNECTION_SLUG_MAX_LENGTH, connectionSlugSchema, type IntegrationCapabilityDto, type IntegrationConnectionDto, type IntegrationConnectionLifecycleStatusDto, type IntegrationProviderDto, type IntegrationProviderKindDto, integrationCapabilitySchema, integrationConnectionDtoSchema, integrationConnectionLifecycleStatusSchema, integrationProviderDtoSchema, integrationProviderKindSchema, type ListIntegrationConnectionsQueryDto, type ListIntegrationConnectionsResponseDto, type ListIntegrationProvidersQueryDto, type ListIntegrationProvidersResponseDto, type ListRepositoriesParamsDto, type ListRepositoriesQueryDto, type ListRepositoriesResponseDto, listIntegrationConnectionsQuerySchema, listIntegrationConnectionsResponseSchema, listIntegrationProvidersQuerySchema, listIntegrationProvidersResponseSchema, listRepositoriesParamsSchema, listRepositoriesQuerySchema, listRepositoriesResponseSchema, type RepositoryDto, type RepositoryVisibilityDto, repositoryDtoSchema, repositoryVisibilitySchema, type UpdateIntegrationConnectionBodyDto, type UpdateIntegrationConnectionLifecycleStatusDto, updateIntegrationConnectionBodySchema, updateIntegrationConnectionLifecycleStatusSchema, } from './integrations.js';
1
+ export { CONNECTION_SLUG_MAX_LENGTH, connectionSlugSchema, type IntegrationCapabilityDto, type IntegrationConnectionDto, type IntegrationConnectionLifecycleStatusDto, type IntegrationProviderDto, type IntegrationProviderKindDto, integrationCapabilitySchema, integrationConnectionDtoSchema, integrationConnectionLifecycleStatusSchema, integrationProviderDtoSchema, integrationProviderKindSchema, type ListIntegrationConnectionsQueryDto, type ListIntegrationConnectionsResponseDto, type ListIntegrationProvidersQueryDto, type ListIntegrationProvidersResponseDto, type ListRepositoriesParamsDto, type ListRepositoriesQueryDto, type ListRepositoriesResponseDto, listIntegrationConnectionsQuerySchema, listIntegrationConnectionsResponseSchema, listIntegrationProvidersQuerySchema, listIntegrationProvidersResponseSchema, listRepositoriesParamsSchema, listRepositoriesQuerySchema, listRepositoriesResponseSchema, RESERVED_CONNECTION_SLUGS, type RepositoryDto, type RepositoryVisibilityDto, repositoryDtoSchema, repositoryVisibilitySchema, type UpdateIntegrationConnectionBodyDto, type UpdateIntegrationConnectionLifecycleStatusDto, updateIntegrationConnectionBodySchema, updateIntegrationConnectionLifecycleStatusSchema, } from './integrations.js';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,uCAAuC,EAC5C,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,2BAA2B,EAC3B,8BAA8B,EAC9B,0CAA0C,EAC1C,4BAA4B,EAC5B,6BAA6B,EAC7B,KAAK,kCAAkC,EACvC,KAAK,qCAAqC,EAC1C,KAAK,gCAAgC,EACrC,KAAK,mCAAmC,EACxC,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,2BAA2B,EAChC,qCAAqC,EACrC,wCAAwC,EACxC,mCAAmC,EACnC,sCAAsC,EACtC,4BAA4B,EAC5B,2BAA2B,EAC3B,8BAA8B,EAC9B,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC5B,mBAAmB,EACnB,0BAA0B,EAC1B,KAAK,kCAAkC,EACvC,KAAK,6CAA6C,EAClD,qCAAqC,EACrC,gDAAgD,GACjD,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,uCAAuC,EAC5C,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,2BAA2B,EAC3B,8BAA8B,EAC9B,0CAA0C,EAC1C,4BAA4B,EAC5B,6BAA6B,EAC7B,KAAK,kCAAkC,EACvC,KAAK,qCAAqC,EAC1C,KAAK,gCAAgC,EACrC,KAAK,mCAAmC,EACxC,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,2BAA2B,EAChC,qCAAqC,EACrC,wCAAwC,EACxC,mCAAmC,EACnC,sCAAsC,EACtC,4BAA4B,EAC5B,2BAA2B,EAC3B,8BAA8B,EAC9B,yBAAyB,EACzB,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC5B,mBAAmB,EACnB,0BAA0B,EAC1B,KAAK,kCAAkC,EACvC,KAAK,6CAA6C,EAClD,qCAAqC,EACrC,gDAAgD,GACjD,MAAM,mBAAmB,CAAC"}
@@ -1,3 +1,3 @@
1
- export { CONNECTION_SLUG_MAX_LENGTH, connectionSlugSchema, integrationCapabilitySchema, integrationConnectionDtoSchema, integrationConnectionLifecycleStatusSchema, integrationProviderDtoSchema, integrationProviderKindSchema, listIntegrationConnectionsQuerySchema, listIntegrationConnectionsResponseSchema, listIntegrationProvidersQuerySchema, listIntegrationProvidersResponseSchema, listRepositoriesParamsSchema, listRepositoriesQuerySchema, listRepositoriesResponseSchema, repositoryDtoSchema, repositoryVisibilitySchema, updateIntegrationConnectionBodySchema, updateIntegrationConnectionLifecycleStatusSchema } from './integrations.js';
1
+ export { CONNECTION_SLUG_MAX_LENGTH, connectionSlugSchema, integrationCapabilitySchema, integrationConnectionDtoSchema, integrationConnectionLifecycleStatusSchema, integrationProviderDtoSchema, integrationProviderKindSchema, listIntegrationConnectionsQuerySchema, listIntegrationConnectionsResponseSchema, listIntegrationProvidersQuerySchema, listIntegrationProvidersResponseSchema, listRepositoriesParamsSchema, listRepositoriesQuerySchema, listRepositoriesResponseSchema, RESERVED_CONNECTION_SLUGS, repositoryDtoSchema, repositoryVisibilitySchema, updateIntegrationConnectionBodySchema, updateIntegrationConnectionLifecycleStatusSchema } from './integrations.js';
2
2
 
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schemas/index.ts"],"sourcesContent":["export {\n CONNECTION_SLUG_MAX_LENGTH,\n connectionSlugSchema,\n type IntegrationCapabilityDto,\n type IntegrationConnectionDto,\n type IntegrationConnectionLifecycleStatusDto,\n type IntegrationProviderDto,\n type IntegrationProviderKindDto,\n integrationCapabilitySchema,\n integrationConnectionDtoSchema,\n integrationConnectionLifecycleStatusSchema,\n integrationProviderDtoSchema,\n integrationProviderKindSchema,\n type ListIntegrationConnectionsQueryDto,\n type ListIntegrationConnectionsResponseDto,\n type ListIntegrationProvidersQueryDto,\n type ListIntegrationProvidersResponseDto,\n type ListRepositoriesParamsDto,\n type ListRepositoriesQueryDto,\n type ListRepositoriesResponseDto,\n listIntegrationConnectionsQuerySchema,\n listIntegrationConnectionsResponseSchema,\n listIntegrationProvidersQuerySchema,\n listIntegrationProvidersResponseSchema,\n listRepositoriesParamsSchema,\n listRepositoriesQuerySchema,\n listRepositoriesResponseSchema,\n type RepositoryDto,\n type RepositoryVisibilityDto,\n repositoryDtoSchema,\n repositoryVisibilitySchema,\n type UpdateIntegrationConnectionBodyDto,\n type UpdateIntegrationConnectionLifecycleStatusDto,\n updateIntegrationConnectionBodySchema,\n updateIntegrationConnectionLifecycleStatusSchema,\n} from './integrations.js';\n"],"names":["CONNECTION_SLUG_MAX_LENGTH","connectionSlugSchema","integrationCapabilitySchema","integrationConnectionDtoSchema","integrationConnectionLifecycleStatusSchema","integrationProviderDtoSchema","integrationProviderKindSchema","listIntegrationConnectionsQuerySchema","listIntegrationConnectionsResponseSchema","listIntegrationProvidersQuerySchema","listIntegrationProvidersResponseSchema","listRepositoriesParamsSchema","listRepositoriesQuerySchema","listRepositoriesResponseSchema","repositoryDtoSchema","repositoryVisibilitySchema","updateIntegrationConnectionBodySchema","updateIntegrationConnectionLifecycleStatusSchema"],"mappings":"AAAA,SACEA,0BAA0B,EAC1BC,oBAAoB,EAMpBC,2BAA2B,EAC3BC,8BAA8B,EAC9BC,0CAA0C,EAC1CC,4BAA4B,EAC5BC,6BAA6B,EAQ7BC,qCAAqC,EACrCC,wCAAwC,EACxCC,mCAAmC,EACnCC,sCAAsC,EACtCC,4BAA4B,EAC5BC,2BAA2B,EAC3BC,8BAA8B,EAG9BC,mBAAmB,EACnBC,0BAA0B,EAG1BC,qCAAqC,EACrCC,gDAAgD,QAC3C,oBAAoB"}
1
+ {"version":3,"sources":["../../src/schemas/index.ts"],"sourcesContent":["export {\n CONNECTION_SLUG_MAX_LENGTH,\n connectionSlugSchema,\n type IntegrationCapabilityDto,\n type IntegrationConnectionDto,\n type IntegrationConnectionLifecycleStatusDto,\n type IntegrationProviderDto,\n type IntegrationProviderKindDto,\n integrationCapabilitySchema,\n integrationConnectionDtoSchema,\n integrationConnectionLifecycleStatusSchema,\n integrationProviderDtoSchema,\n integrationProviderKindSchema,\n type ListIntegrationConnectionsQueryDto,\n type ListIntegrationConnectionsResponseDto,\n type ListIntegrationProvidersQueryDto,\n type ListIntegrationProvidersResponseDto,\n type ListRepositoriesParamsDto,\n type ListRepositoriesQueryDto,\n type ListRepositoriesResponseDto,\n listIntegrationConnectionsQuerySchema,\n listIntegrationConnectionsResponseSchema,\n listIntegrationProvidersQuerySchema,\n listIntegrationProvidersResponseSchema,\n listRepositoriesParamsSchema,\n listRepositoriesQuerySchema,\n listRepositoriesResponseSchema,\n RESERVED_CONNECTION_SLUGS,\n type RepositoryDto,\n type RepositoryVisibilityDto,\n repositoryDtoSchema,\n repositoryVisibilitySchema,\n type UpdateIntegrationConnectionBodyDto,\n type UpdateIntegrationConnectionLifecycleStatusDto,\n updateIntegrationConnectionBodySchema,\n updateIntegrationConnectionLifecycleStatusSchema,\n} from './integrations.js';\n"],"names":["CONNECTION_SLUG_MAX_LENGTH","connectionSlugSchema","integrationCapabilitySchema","integrationConnectionDtoSchema","integrationConnectionLifecycleStatusSchema","integrationProviderDtoSchema","integrationProviderKindSchema","listIntegrationConnectionsQuerySchema","listIntegrationConnectionsResponseSchema","listIntegrationProvidersQuerySchema","listIntegrationProvidersResponseSchema","listRepositoriesParamsSchema","listRepositoriesQuerySchema","listRepositoriesResponseSchema","RESERVED_CONNECTION_SLUGS","repositoryDtoSchema","repositoryVisibilitySchema","updateIntegrationConnectionBodySchema","updateIntegrationConnectionLifecycleStatusSchema"],"mappings":"AAAA,SACEA,0BAA0B,EAC1BC,oBAAoB,EAMpBC,2BAA2B,EAC3BC,8BAA8B,EAC9BC,0CAA0C,EAC1CC,4BAA4B,EAC5BC,6BAA6B,EAQ7BC,qCAAqC,EACrCC,wCAAwC,EACxCC,mCAAmC,EACnCC,sCAAsC,EACtCC,4BAA4B,EAC5BC,2BAA2B,EAC3BC,8BAA8B,EAC9BC,yBAAyB,EAGzBC,mBAAmB,EACnBC,0BAA0B,EAG1BC,qCAAqC,EACrCC,gDAAgD,QAC3C,oBAAoB"}
@@ -1,5 +1,11 @@
1
1
  import { z } from 'zod';
2
2
  export declare const CONNECTION_SLUG_MAX_LENGTH = 100;
3
+ /**
4
+ * Slugs sync classifies by literal: a source equal to one of these names is a
5
+ * built-in trigger source, never a connection. No provider may allocate a
6
+ * connection holding one of them.
7
+ */
8
+ export declare const RESERVED_CONNECTION_SLUGS: readonly ['manual', 'cron'];
3
9
  export declare const connectionSlugSchema: z.ZodString;
4
10
  export declare const integrationProviderKindSchema: z.ZodString;
5
11
  export type IntegrationProviderKindDto = z.infer<typeof integrationProviderKindSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"integrations.d.ts","sourceRoot":"","sources":["../../src/schemas/integrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C,eAAO,MAAM,oBAAoB,aAIQ,CAAC;AAE1C,eAAO,MAAM,6BAA6B,aAAoB,CAAC;AAC/D,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEvF,eAAO,MAAM,2BAA2B;;;EAA4C,CAAC;AACrF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEnF,eAAO,MAAM,0CAA0C;;;;EAA0C,CAAC;AAClG,MAAM,MAAM,uCAAuC,GAAG,CAAC,CAAC,KAAK,CAC3D,OAAO,0CAA0C,CAClD,CAAC;AACF,eAAO,MAAM,gDAAgD;;;EAAiC,CAAC;AAC/F,MAAM,MAAM,6CAA6C,GAAG,CAAC,CAAC,KAAK,CACjE,OAAO,gDAAgD,CACxD,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;EAAuD,CAAC;AAC/F,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAEjF,eAAO,MAAM,4BAA4B;;;;;;;iBAIvC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,mCAAmC;;;;;iBAE9C,CAAC;AACH,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAEnG,eAAO,MAAM,sCAAsC;;;;;;;;;iBAEjD,CAAC;AACH,MAAM,MAAM,mCAAmC,GAAG,CAAC,CAAC,KAAK,CACvD,OAAO,sCAAsC,CAC9C,CAAC;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;iBAYzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,qCAAqC;;;;;;iBAGhD,CAAC;AACH,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CACtD,OAAO,qCAAqC,CAC7C,CAAC;AAEF,eAAO,MAAM,wCAAwC;;;;;;;;;;;;;;;;;;;;;iBAEnD,CAAC;AACH,MAAM,MAAM,qCAAqC,GAAG,CAAC,CAAC,KAAK,CACzD,OAAO,wCAAwC,CAChD,CAAC;AAEF,eAAO,MAAM,qCAAqC;;;;;iBAEhD,CAAC;AACH,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CACtD,OAAO,qCAAqC,CAC7C,CAAC;AAEF,eAAO,MAAM,4BAA4B;;iBAEvC,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAErF,eAAO,MAAM,2BAA2B;;;;iBAItC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEnF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;iBAU9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;iBAGzC,CAAC;AACH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC"}
1
+ {"version":3,"file":"integrations.d.ts","sourceRoot":"","sources":["../../src/schemas/integrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,YAAI,QAAQ,EAAE,MAAM,CAAU,CAAC;AAErE,eAAO,MAAM,oBAAoB,aAIQ,CAAC;AAE1C,eAAO,MAAM,6BAA6B,aAAoB,CAAC;AAC/D,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEvF,eAAO,MAAM,2BAA2B;;;EAA4C,CAAC;AACrF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEnF,eAAO,MAAM,0CAA0C;;;;EAA0C,CAAC;AAClG,MAAM,MAAM,uCAAuC,GAAG,CAAC,CAAC,KAAK,CAC3D,OAAO,0CAA0C,CAClD,CAAC;AACF,eAAO,MAAM,gDAAgD;;;EAAiC,CAAC;AAC/F,MAAM,MAAM,6CAA6C,GAAG,CAAC,CAAC,KAAK,CACjE,OAAO,gDAAgD,CACxD,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;EAAuD,CAAC;AAC/F,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAEjF,eAAO,MAAM,4BAA4B;;;;;;;iBAIvC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,mCAAmC;;;;;iBAE9C,CAAC;AACH,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAEnG,eAAO,MAAM,sCAAsC;;;;;;;;;iBAEjD,CAAC;AACH,MAAM,MAAM,mCAAmC,GAAG,CAAC,CAAC,KAAK,CACvD,OAAO,sCAAsC,CAC9C,CAAC;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;iBAYzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,qCAAqC;;;;;;iBAGhD,CAAC;AACH,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CACtD,OAAO,qCAAqC,CAC7C,CAAC;AAEF,eAAO,MAAM,wCAAwC;;;;;;;;;;;;;;;;;;;;;iBAEnD,CAAC;AACH,MAAM,MAAM,qCAAqC,GAAG,CAAC,CAAC,KAAK,CACzD,OAAO,wCAAwC,CAChD,CAAC;AAEF,eAAO,MAAM,qCAAqC;;;;;iBAEhD,CAAC;AACH,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CACtD,OAAO,qCAAqC,CAC7C,CAAC;AAEF,eAAO,MAAM,4BAA4B;;iBAEvC,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAErF,eAAO,MAAM,2BAA2B;;;;iBAItC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEnF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;iBAU9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;iBAGzC,CAAC;AACH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC"}
@@ -1,5 +1,13 @@
1
1
  import { z } from 'zod';
2
2
  export const CONNECTION_SLUG_MAX_LENGTH = 100;
3
+ /**
4
+ * Slugs sync classifies by literal: a source equal to one of these names is a
5
+ * built-in trigger source, never a connection. No provider may allocate a
6
+ * connection holding one of them.
7
+ */ export const RESERVED_CONNECTION_SLUGS = [
8
+ 'manual',
9
+ 'cron'
10
+ ];
3
11
  export const connectionSlugSchema = z.string().min(1).max(CONNECTION_SLUG_MAX_LENGTH).regex(/^[a-z0-9]+(?:[_-][a-z0-9]+)*$/);
4
12
  export const integrationProviderKindSchema = z.string().min(1);
5
13
  export const integrationCapabilitySchema = z.enum([
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schemas/integrations.ts"],"sourcesContent":["import {z} from 'zod';\n\nexport const CONNECTION_SLUG_MAX_LENGTH = 100;\n\nexport const connectionSlugSchema = z\n .string()\n .min(1)\n .max(CONNECTION_SLUG_MAX_LENGTH)\n .regex(/^[a-z0-9]+(?:[_-][a-z0-9]+)*$/);\n\nexport const integrationProviderKindSchema = z.string().min(1);\nexport type IntegrationProviderKindDto = z.infer<typeof integrationProviderKindSchema>;\n\nexport const integrationCapabilitySchema = z.enum(['source_control', 'agent_tools']);\nexport type IntegrationCapabilityDto = z.infer<typeof integrationCapabilitySchema>;\n\nexport const integrationConnectionLifecycleStatusSchema = z.enum(['active', 'disabled', 'error']);\nexport type IntegrationConnectionLifecycleStatusDto = z.infer<\n typeof integrationConnectionLifecycleStatusSchema\n>;\nexport const updateIntegrationConnectionLifecycleStatusSchema = z.enum(['active', 'disabled']);\nexport type UpdateIntegrationConnectionLifecycleStatusDto = z.infer<\n typeof updateIntegrationConnectionLifecycleStatusSchema\n>;\n\nexport const repositoryVisibilitySchema = z.enum(['public', 'private', 'internal', 'unknown']);\nexport type RepositoryVisibilityDto = z.infer<typeof repositoryVisibilitySchema>;\n\nexport const integrationProviderDtoSchema = z.object({\n provider: integrationProviderKindSchema,\n display_name: z.string(),\n capabilities: z.array(integrationCapabilitySchema),\n});\nexport type IntegrationProviderDto = z.infer<typeof integrationProviderDtoSchema>;\n\nexport const listIntegrationProvidersQuerySchema = z.object({\n capability: integrationCapabilitySchema.optional(),\n});\nexport type ListIntegrationProvidersQueryDto = z.infer<typeof listIntegrationProvidersQuerySchema>;\n\nexport const listIntegrationProvidersResponseSchema = z.object({\n providers: z.array(integrationProviderDtoSchema),\n});\nexport type ListIntegrationProvidersResponseDto = z.infer<\n typeof listIntegrationProvidersResponseSchema\n>;\n\nexport const integrationConnectionDtoSchema = z.object({\n id: z.string().uuid(),\n workspace_id: z.string().uuid(),\n provider: integrationProviderKindSchema,\n external_account_id: z.string(),\n slug: connectionSlugSchema,\n display_name: z.string(),\n lifecycle_status: integrationConnectionLifecycleStatusSchema,\n capabilities: z.array(integrationCapabilitySchema),\n external_url: z.string().url().optional(),\n created_at: z.string(),\n updated_at: z.string(),\n});\nexport type IntegrationConnectionDto = z.infer<typeof integrationConnectionDtoSchema>;\n\nexport const listIntegrationConnectionsQuerySchema = z.object({\n workspace_id: z.string().uuid(),\n capability: integrationCapabilitySchema.optional(),\n});\nexport type ListIntegrationConnectionsQueryDto = z.infer<\n typeof listIntegrationConnectionsQuerySchema\n>;\n\nexport const listIntegrationConnectionsResponseSchema = z.object({\n connections: z.array(integrationConnectionDtoSchema),\n});\nexport type ListIntegrationConnectionsResponseDto = z.infer<\n typeof listIntegrationConnectionsResponseSchema\n>;\n\nexport const updateIntegrationConnectionBodySchema = z.object({\n lifecycle_status: updateIntegrationConnectionLifecycleStatusSchema,\n});\nexport type UpdateIntegrationConnectionBodyDto = z.infer<\n typeof updateIntegrationConnectionBodySchema\n>;\n\nexport const listRepositoriesParamsSchema = z.object({\n connectionId: z.string().uuid(),\n});\nexport type ListRepositoriesParamsDto = z.infer<typeof listRepositoriesParamsSchema>;\n\nexport const listRepositoriesQuerySchema = z.object({\n limit: z.coerce.number().int().min(1).max(100).default(50),\n cursor: z.string().optional(),\n search: z.string().min(1).max(100).optional(),\n});\nexport type ListRepositoriesQueryDto = z.infer<typeof listRepositoriesQuerySchema>;\n\nexport const repositoryDtoSchema = z.object({\n connection_id: z.string().uuid(),\n external_repository_id: z.string(),\n owner: z.string(),\n name: z.string(),\n full_name: z.string(),\n default_branch: z.string(),\n visibility: repositoryVisibilitySchema,\n clone_url: z.string(),\n html_url: z.string(),\n});\nexport type RepositoryDto = z.infer<typeof repositoryDtoSchema>;\n\nexport const listRepositoriesResponseSchema = z.object({\n repositories: z.array(repositoryDtoSchema),\n next_cursor: z.string().nullable(),\n});\nexport type ListRepositoriesResponseDto = z.infer<typeof listRepositoriesResponseSchema>;\n"],"names":["z","CONNECTION_SLUG_MAX_LENGTH","connectionSlugSchema","string","min","max","regex","integrationProviderKindSchema","integrationCapabilitySchema","enum","integrationConnectionLifecycleStatusSchema","updateIntegrationConnectionLifecycleStatusSchema","repositoryVisibilitySchema","integrationProviderDtoSchema","object","provider","display_name","capabilities","array","listIntegrationProvidersQuerySchema","capability","optional","listIntegrationProvidersResponseSchema","providers","integrationConnectionDtoSchema","id","uuid","workspace_id","external_account_id","slug","lifecycle_status","external_url","url","created_at","updated_at","listIntegrationConnectionsQuerySchema","listIntegrationConnectionsResponseSchema","connections","updateIntegrationConnectionBodySchema","listRepositoriesParamsSchema","connectionId","listRepositoriesQuerySchema","limit","coerce","number","int","default","cursor","search","repositoryDtoSchema","connection_id","external_repository_id","owner","name","full_name","default_branch","visibility","clone_url","html_url","listRepositoriesResponseSchema","repositories","next_cursor","nullable"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/schemas/integrations.ts"],"sourcesContent":["import {z} from 'zod';\n\nexport const CONNECTION_SLUG_MAX_LENGTH = 100;\n\n/**\n * Slugs sync classifies by literal: a source equal to one of these names is a\n * built-in trigger source, never a connection. No provider may allocate a\n * connection holding one of them.\n */\nexport const RESERVED_CONNECTION_SLUGS = ['manual', 'cron'] as const;\n\nexport const connectionSlugSchema = z\n .string()\n .min(1)\n .max(CONNECTION_SLUG_MAX_LENGTH)\n .regex(/^[a-z0-9]+(?:[_-][a-z0-9]+)*$/);\n\nexport const integrationProviderKindSchema = z.string().min(1);\nexport type IntegrationProviderKindDto = z.infer<typeof integrationProviderKindSchema>;\n\nexport const integrationCapabilitySchema = z.enum(['source_control', 'agent_tools']);\nexport type IntegrationCapabilityDto = z.infer<typeof integrationCapabilitySchema>;\n\nexport const integrationConnectionLifecycleStatusSchema = z.enum(['active', 'disabled', 'error']);\nexport type IntegrationConnectionLifecycleStatusDto = z.infer<\n typeof integrationConnectionLifecycleStatusSchema\n>;\nexport const updateIntegrationConnectionLifecycleStatusSchema = z.enum(['active', 'disabled']);\nexport type UpdateIntegrationConnectionLifecycleStatusDto = z.infer<\n typeof updateIntegrationConnectionLifecycleStatusSchema\n>;\n\nexport const repositoryVisibilitySchema = z.enum(['public', 'private', 'internal', 'unknown']);\nexport type RepositoryVisibilityDto = z.infer<typeof repositoryVisibilitySchema>;\n\nexport const integrationProviderDtoSchema = z.object({\n provider: integrationProviderKindSchema,\n display_name: z.string(),\n capabilities: z.array(integrationCapabilitySchema),\n});\nexport type IntegrationProviderDto = z.infer<typeof integrationProviderDtoSchema>;\n\nexport const listIntegrationProvidersQuerySchema = z.object({\n capability: integrationCapabilitySchema.optional(),\n});\nexport type ListIntegrationProvidersQueryDto = z.infer<typeof listIntegrationProvidersQuerySchema>;\n\nexport const listIntegrationProvidersResponseSchema = z.object({\n providers: z.array(integrationProviderDtoSchema),\n});\nexport type ListIntegrationProvidersResponseDto = z.infer<\n typeof listIntegrationProvidersResponseSchema\n>;\n\nexport const integrationConnectionDtoSchema = z.object({\n id: z.string().uuid(),\n workspace_id: z.string().uuid(),\n provider: integrationProviderKindSchema,\n external_account_id: z.string(),\n slug: connectionSlugSchema,\n display_name: z.string(),\n lifecycle_status: integrationConnectionLifecycleStatusSchema,\n capabilities: z.array(integrationCapabilitySchema),\n external_url: z.string().url().optional(),\n created_at: z.string(),\n updated_at: z.string(),\n});\nexport type IntegrationConnectionDto = z.infer<typeof integrationConnectionDtoSchema>;\n\nexport const listIntegrationConnectionsQuerySchema = z.object({\n workspace_id: z.string().uuid(),\n capability: integrationCapabilitySchema.optional(),\n});\nexport type ListIntegrationConnectionsQueryDto = z.infer<\n typeof listIntegrationConnectionsQuerySchema\n>;\n\nexport const listIntegrationConnectionsResponseSchema = z.object({\n connections: z.array(integrationConnectionDtoSchema),\n});\nexport type ListIntegrationConnectionsResponseDto = z.infer<\n typeof listIntegrationConnectionsResponseSchema\n>;\n\nexport const updateIntegrationConnectionBodySchema = z.object({\n lifecycle_status: updateIntegrationConnectionLifecycleStatusSchema,\n});\nexport type UpdateIntegrationConnectionBodyDto = z.infer<\n typeof updateIntegrationConnectionBodySchema\n>;\n\nexport const listRepositoriesParamsSchema = z.object({\n connectionId: z.string().uuid(),\n});\nexport type ListRepositoriesParamsDto = z.infer<typeof listRepositoriesParamsSchema>;\n\nexport const listRepositoriesQuerySchema = z.object({\n limit: z.coerce.number().int().min(1).max(100).default(50),\n cursor: z.string().optional(),\n search: z.string().min(1).max(100).optional(),\n});\nexport type ListRepositoriesQueryDto = z.infer<typeof listRepositoriesQuerySchema>;\n\nexport const repositoryDtoSchema = z.object({\n connection_id: z.string().uuid(),\n external_repository_id: z.string(),\n owner: z.string(),\n name: z.string(),\n full_name: z.string(),\n default_branch: z.string(),\n visibility: repositoryVisibilitySchema,\n clone_url: z.string(),\n html_url: z.string(),\n});\nexport type RepositoryDto = z.infer<typeof repositoryDtoSchema>;\n\nexport const listRepositoriesResponseSchema = z.object({\n repositories: z.array(repositoryDtoSchema),\n next_cursor: z.string().nullable(),\n});\nexport type ListRepositoriesResponseDto = z.infer<typeof listRepositoriesResponseSchema>;\n"],"names":["z","CONNECTION_SLUG_MAX_LENGTH","RESERVED_CONNECTION_SLUGS","connectionSlugSchema","string","min","max","regex","integrationProviderKindSchema","integrationCapabilitySchema","enum","integrationConnectionLifecycleStatusSchema","updateIntegrationConnectionLifecycleStatusSchema","repositoryVisibilitySchema","integrationProviderDtoSchema","object","provider","display_name","capabilities","array","listIntegrationProvidersQuerySchema","capability","optional","listIntegrationProvidersResponseSchema","providers","integrationConnectionDtoSchema","id","uuid","workspace_id","external_account_id","slug","lifecycle_status","external_url","url","created_at","updated_at","listIntegrationConnectionsQuerySchema","listIntegrationConnectionsResponseSchema","connections","updateIntegrationConnectionBodySchema","listRepositoriesParamsSchema","connectionId","listRepositoriesQuerySchema","limit","coerce","number","int","default","cursor","search","repositoryDtoSchema","connection_id","external_repository_id","owner","name","full_name","default_branch","visibility","clone_url","html_url","listRepositoriesResponseSchema","repositories","next_cursor","nullable"],"mappings":"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"}