@wildo-ai/external-connectors-models 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/dist/esm/core/commons.external-connectors-models.schemas.d.ts +195 -0
  2. package/dist/esm/core/commons.external-connectors-models.schemas.d.ts.map +1 -0
  3. package/dist/esm/core/commons.external-connectors-models.schemas.js +96 -0
  4. package/dist/esm/core/commons.external-connectors-models.schemas.js.map +1 -0
  5. package/dist/esm/core/lazy-loading.external-connectors-models.schemas.d.ts +127 -0
  6. package/dist/esm/core/lazy-loading.external-connectors-models.schemas.d.ts.map +1 -0
  7. package/dist/esm/core/lazy-loading.external-connectors-models.schemas.js +22 -0
  8. package/dist/esm/core/lazy-loading.external-connectors-models.schemas.js.map +1 -0
  9. package/dist/esm/core/oauth2.enums.d.ts +125 -0
  10. package/dist/esm/core/oauth2.enums.d.ts.map +1 -0
  11. package/dist/esm/core/oauth2.enums.js +134 -0
  12. package/dist/esm/core/oauth2.enums.js.map +1 -0
  13. package/dist/esm/core/operations.external-connectors-models.schemas.d.ts +46 -0
  14. package/dist/esm/core/operations.external-connectors-models.schemas.d.ts.map +1 -0
  15. package/dist/esm/core/operations.external-connectors-models.schemas.js +10 -0
  16. package/dist/esm/core/operations.external-connectors-models.schemas.js.map +1 -0
  17. package/dist/esm/core/protocols.external-connectors-models.schemas.d.ts +84 -0
  18. package/dist/esm/core/protocols.external-connectors-models.schemas.d.ts.map +1 -0
  19. package/dist/esm/core/protocols.external-connectors-models.schemas.js +1 -0
  20. package/dist/esm/core/protocols.external-connectors-models.schemas.js.map +1 -0
  21. package/dist/esm/core/providers.external-connectors-models.schemas.d.ts +80 -0
  22. package/dist/esm/core/providers.external-connectors-models.schemas.d.ts.map +1 -0
  23. package/dist/esm/core/providers.external-connectors-models.schemas.js +55 -0
  24. package/dist/esm/core/providers.external-connectors-models.schemas.js.map +1 -0
  25. package/dist/esm/core/security.external-connectors-models.schemas.d.ts +187 -0
  26. package/dist/esm/core/security.external-connectors-models.schemas.d.ts.map +1 -0
  27. package/dist/esm/core/security.external-connectors-models.schemas.js +233 -0
  28. package/dist/esm/core/security.external-connectors-models.schemas.js.map +1 -0
  29. package/dist/esm/features/core.external-connectors-models.schemas.d.ts +63 -0
  30. package/dist/esm/features/core.external-connectors-models.schemas.d.ts.map +1 -0
  31. package/dist/esm/features/core.external-connectors-models.schemas.js +101 -0
  32. package/dist/esm/features/core.external-connectors-models.schemas.js.map +1 -0
  33. package/dist/esm/features/email.external-connectors-models.schemas.d.ts +181 -0
  34. package/dist/esm/features/email.external-connectors-models.schemas.d.ts.map +1 -0
  35. package/dist/esm/features/email.external-connectors-models.schemas.js +34 -0
  36. package/dist/esm/features/email.external-connectors-models.schemas.js.map +1 -0
  37. package/dist/esm/features/hooks.external-connectors-models.schemas.d.ts +101 -0
  38. package/dist/esm/features/hooks.external-connectors-models.schemas.d.ts.map +1 -0
  39. package/dist/esm/features/hooks.external-connectors-models.schemas.js +11 -0
  40. package/dist/esm/features/hooks.external-connectors-models.schemas.js.map +1 -0
  41. package/dist/esm/features/sms.external-connectors-models.schemas.d.ts +21 -0
  42. package/dist/esm/features/sms.external-connectors-models.schemas.d.ts.map +1 -0
  43. package/dist/esm/features/sms.external-connectors-models.schemas.js +8 -0
  44. package/dist/esm/features/sms.external-connectors-models.schemas.js.map +1 -0
  45. package/dist/esm/index.d.ts +28 -0
  46. package/dist/esm/index.d.ts.map +1 -0
  47. package/dist/esm/index.js +31 -0
  48. package/dist/esm/index.js.map +1 -0
  49. package/dist/esm/protocols/a2a.external-connectors-models.schemas.d.ts +57 -0
  50. package/dist/esm/protocols/a2a.external-connectors-models.schemas.d.ts.map +1 -0
  51. package/dist/esm/protocols/a2a.external-connectors-models.schemas.js +73 -0
  52. package/dist/esm/protocols/a2a.external-connectors-models.schemas.js.map +1 -0
  53. package/dist/esm/protocols/billing.standard-interface.schemas.d.ts +315 -0
  54. package/dist/esm/protocols/billing.standard-interface.schemas.d.ts.map +1 -0
  55. package/dist/esm/protocols/billing.standard-interface.schemas.js +104 -0
  56. package/dist/esm/protocols/billing.standard-interface.schemas.js.map +1 -0
  57. package/dist/esm/protocols/cli-runtime.external-connectors-models.schemas.d.ts +214 -0
  58. package/dist/esm/protocols/cli-runtime.external-connectors-models.schemas.d.ts.map +1 -0
  59. package/dist/esm/protocols/cli-runtime.external-connectors-models.schemas.js +188 -0
  60. package/dist/esm/protocols/cli-runtime.external-connectors-models.schemas.js.map +1 -0
  61. package/dist/esm/protocols/email.external-connectors-models.schemas.d.ts +370 -0
  62. package/dist/esm/protocols/email.external-connectors-models.schemas.d.ts.map +1 -0
  63. package/dist/esm/protocols/email.external-connectors-models.schemas.js +368 -0
  64. package/dist/esm/protocols/email.external-connectors-models.schemas.js.map +1 -0
  65. package/dist/esm/protocols/email.standard-interface.schemas.d.ts +330 -0
  66. package/dist/esm/protocols/email.standard-interface.schemas.d.ts.map +1 -0
  67. package/dist/esm/protocols/email.standard-interface.schemas.js +275 -0
  68. package/dist/esm/protocols/email.standard-interface.schemas.js.map +1 -0
  69. package/dist/esm/protocols/frontend.external-connectors-models.schemas.d.ts +16 -0
  70. package/dist/esm/protocols/frontend.external-connectors-models.schemas.d.ts.map +1 -0
  71. package/dist/esm/protocols/frontend.external-connectors-models.schemas.js +10 -0
  72. package/dist/esm/protocols/frontend.external-connectors-models.schemas.js.map +1 -0
  73. package/dist/esm/protocols/git.external-connectors-models.schemas.d.ts +14 -0
  74. package/dist/esm/protocols/git.external-connectors-models.schemas.d.ts.map +1 -0
  75. package/dist/esm/protocols/git.external-connectors-models.schemas.js +9 -0
  76. package/dist/esm/protocols/git.external-connectors-models.schemas.js.map +1 -0
  77. package/dist/esm/protocols/grpc.external-connectors-models.schemas.d.ts +14 -0
  78. package/dist/esm/protocols/grpc.external-connectors-models.schemas.d.ts.map +1 -0
  79. package/dist/esm/protocols/grpc.external-connectors-models.schemas.js +9 -0
  80. package/dist/esm/protocols/grpc.external-connectors-models.schemas.js.map +1 -0
  81. package/dist/esm/protocols/hooks.external-connectors-models.schemas.d.ts +192 -0
  82. package/dist/esm/protocols/hooks.external-connectors-models.schemas.d.ts.map +1 -0
  83. package/dist/esm/protocols/hooks.external-connectors-models.schemas.js +103 -0
  84. package/dist/esm/protocols/hooks.external-connectors-models.schemas.js.map +1 -0
  85. package/dist/esm/protocols/llm.external-connectors-models.schemas.d.ts +499 -0
  86. package/dist/esm/protocols/llm.external-connectors-models.schemas.d.ts.map +1 -0
  87. package/dist/esm/protocols/llm.external-connectors-models.schemas.js +351 -0
  88. package/dist/esm/protocols/llm.external-connectors-models.schemas.js.map +1 -0
  89. package/dist/esm/protocols/mcp.external-connectors-models.schemas.d.ts +60 -0
  90. package/dist/esm/protocols/mcp.external-connectors-models.schemas.d.ts.map +1 -0
  91. package/dist/esm/protocols/mcp.external-connectors-models.schemas.js +35 -0
  92. package/dist/esm/protocols/mcp.external-connectors-models.schemas.js.map +1 -0
  93. package/dist/esm/protocols/oauth2.external-connectors-models.schemas.d.ts +570 -0
  94. package/dist/esm/protocols/oauth2.external-connectors-models.schemas.d.ts.map +1 -0
  95. package/dist/esm/protocols/oauth2.external-connectors-models.schemas.js +401 -0
  96. package/dist/esm/protocols/oauth2.external-connectors-models.schemas.js.map +1 -0
  97. package/dist/esm/protocols/rest-api.external-connectors-models.schemas.d.ts +125 -0
  98. package/dist/esm/protocols/rest-api.external-connectors-models.schemas.d.ts.map +1 -0
  99. package/dist/esm/protocols/rest-api.external-connectors-models.schemas.js +92 -0
  100. package/dist/esm/protocols/rest-api.external-connectors-models.schemas.js.map +1 -0
  101. package/dist/esm/protocols/saml.external-connectors-models.schemas.d.ts +135 -0
  102. package/dist/esm/protocols/saml.external-connectors-models.schemas.d.ts.map +1 -0
  103. package/dist/esm/protocols/saml.external-connectors-models.schemas.js +9 -0
  104. package/dist/esm/protocols/saml.external-connectors-models.schemas.js.map +1 -0
  105. package/dist/esm/protocols/sms.external-connectors-models.schemas.d.ts +55 -0
  106. package/dist/esm/protocols/sms.external-connectors-models.schemas.d.ts.map +1 -0
  107. package/dist/esm/protocols/sms.external-connectors-models.schemas.js +46 -0
  108. package/dist/esm/protocols/sms.external-connectors-models.schemas.js.map +1 -0
  109. package/dist/esm/protocols/sms.standard-interface.schemas.d.ts +35 -0
  110. package/dist/esm/protocols/sms.standard-interface.schemas.d.ts.map +1 -0
  111. package/dist/esm/protocols/sms.standard-interface.schemas.js +54 -0
  112. package/dist/esm/protocols/sms.standard-interface.schemas.js.map +1 -0
  113. package/dist/tsconfig.build.tsbuildinfo +1 -0
  114. package/package.json +47 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.external-connectors-models.schemas.d.ts","sourceRoot":"","sources":["../../../src/core/security.external-connectors-models.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,+BAA+B,EAC/B,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AAMxB;;;GAGG;AACH,oBAAY,0BAA0B;IACpC,iCAAiC;IACjC,IAAI,SAAS;IAEb,0CAA0C;IAC1C,OAAO,YAAY;IAEnB,gDAAgD;IAChD,MAAM,WAAW;IAEjB,gCAAgC;IAChC,KAAK,UAAU;IAEf,kEAAkE;IAClE,MAAM,WAAW;IAEjB,0CAA0C;IAC1C,cAAc,mBAAmB;IAEjC,+CAA+C;IAC/C,cAAc,mBAAmB;IAEjC,uCAAuC;IACvC,UAAU,eAAe;IAEzB,qDAAqD;IACrD,eAAe,oBAAoB;CACpC;AAMD,oBAAY,qCAAqC;IAC/C,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED,oBAAY,8CAA8C;IACxD,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAED,oBAAY,mCAAmC;IAC7C,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,mBAAmB,wBAAwB;CAC5C;AAMD;;;GAGG;AACH,eAAO,MAAM,yCAAyC;;;;;iBAYpD,CAAC;AAMH,eAAO,MAAM,6CAA6C;;;;;;;iBAkBxD,CAAC;AAMH,eAAO,MAAM,uCAAuC;;;;;;iBAelD,CAAC;AAMH,MAAM,MAAM,mCAAmC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yCAAyC,CAAC,CAAC;AAC5G,MAAM,MAAM,uCAAuC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6CAA6C,CAAC,CAAC;AACpH,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uCAAuC,CAAC,CAAC;AAMxG;;;GAGG;AACH,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAmI9C,CAAC;AACH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC"}
@@ -0,0 +1,233 @@
1
+ /**
2
+ * Security and Authentication Schemas for External Connectors
3
+ *
4
+ * This module defines authentication profiles that can be used across protocols.
5
+ * It integrates with OAuth2 to avoid duplication between API auth and OAuth2 config.
6
+ *
7
+ * Architecture:
8
+ * - ExternalProvider_Auth_Kind: The type of authentication
9
+ * - ExternalProvider_AuthProfile: How to authenticate with an API
10
+ * - OAuth2-linked profiles: Reference OAuth2 config instead of duplicating
11
+ *
12
+ * @see https://swagger.io/docs/specification/v3_0/authentication/
13
+ */
14
+ import { z } from "zod";
15
+ import { OAuth2_GrantType, OAuth2_TokenEndpoint_AuthMethod, OAuth2_PKCE_Method, OAuth2_Prompt, OAuth2_AccessType, } from './oauth2.enums.js';
16
+ // =============================================================================
17
+ // AUTH KIND ENUM
18
+ // =============================================================================
19
+ /**
20
+ * Authentication types supported by external providers
21
+ * Follows OpenAPI 3.0 Security Schemes with extensions
22
+ */
23
+ export var ExternalProvider_Auth_Kind;
24
+ (function (ExternalProvider_Auth_Kind) {
25
+ /** No authentication required */
26
+ ExternalProvider_Auth_Kind["NONE"] = "none";
27
+ /** API Key in header, query, or cookie */
28
+ ExternalProvider_Auth_Kind["API_KEY"] = "api_key";
29
+ /** Bearer token (OAuth2 access token or JWT) */
30
+ ExternalProvider_Auth_Kind["BEARER"] = "bearer";
31
+ /** HTTP Basic authentication */
32
+ ExternalProvider_Auth_Kind["BASIC"] = "basic";
33
+ /** OAuth2 authentication - links to OAuth2 provider definition */
34
+ ExternalProvider_Auth_Kind["OAUTH2"] = "oauth2";
35
+ /** HMAC signature-based authentication */
36
+ ExternalProvider_Auth_Kind["HMAC_SIGNATURE"] = "hmac_signature";
37
+ /** OpenID Connect (OAuth2 + identity layer) */
38
+ ExternalProvider_Auth_Kind["OPENID_CONNECT"] = "openid_connect";
39
+ /** Mutual TLS (client certificates) */
40
+ ExternalProvider_Auth_Kind["MUTUAL_TLS"] = "mutual_tls";
41
+ /** Frontend-specific secret (not exposed to user) */
42
+ ExternalProvider_Auth_Kind["FRONTEND_SECRET"] = "frontend_secret";
43
+ })(ExternalProvider_Auth_Kind || (ExternalProvider_Auth_Kind = {}));
44
+ // =============================================================================
45
+ // AUTH CONFIGURATION ENUMS
46
+ // =============================================================================
47
+ export var ExternalProvider_Auth_ApiKey_Location;
48
+ (function (ExternalProvider_Auth_ApiKey_Location) {
49
+ ExternalProvider_Auth_ApiKey_Location["HEADER"] = "header";
50
+ ExternalProvider_Auth_ApiKey_Location["QUERY"] = "query";
51
+ ExternalProvider_Auth_ApiKey_Location["COOKIE"] = "cookie";
52
+ })(ExternalProvider_Auth_ApiKey_Location || (ExternalProvider_Auth_ApiKey_Location = {}));
53
+ export var ExternalProvider_Auth_HMAC_Signature_Algorithm;
54
+ (function (ExternalProvider_Auth_HMAC_Signature_Algorithm) {
55
+ ExternalProvider_Auth_HMAC_Signature_Algorithm["SHA256"] = "sha256";
56
+ ExternalProvider_Auth_HMAC_Signature_Algorithm["SHA512"] = "sha512";
57
+ })(ExternalProvider_Auth_HMAC_Signature_Algorithm || (ExternalProvider_Auth_HMAC_Signature_Algorithm = {}));
58
+ export var ExternalProvider_Auth_Bearer_Format;
59
+ (function (ExternalProvider_Auth_Bearer_Format) {
60
+ ExternalProvider_Auth_Bearer_Format["JWT"] = "jwt";
61
+ ExternalProvider_Auth_Bearer_Format["API_KEY"] = "api_key";
62
+ ExternalProvider_Auth_Bearer_Format["OAUTH2_ACCESS_TOKEN"] = "oauth2_access_token";
63
+ })(ExternalProvider_Auth_Bearer_Format || (ExternalProvider_Auth_Bearer_Format = {}));
64
+ // =============================================================================
65
+ // AUTH CONFIGURATION SCHEMA
66
+ // =============================================================================
67
+ /**
68
+ * Auth Configuration - references a secret
69
+ * This is the runtime configuration that specifies which secret to use
70
+ */
71
+ export const ExternalProvider_Auth_ConfigurationSchema = z.object({
72
+ /** Type of authentication */
73
+ authKind: z.enum(ExternalProvider_Auth_Kind),
74
+ /** References to auth profiles this config applies to */
75
+ profileRefs: z.array(z.string()).optional(),
76
+ /** Is this the default auth for the provider? */
77
+ isDefault: z.boolean().optional(),
78
+ /** Reference to the secret (environment variable name or secret store key) */
79
+ secretRef: z.string(),
80
+ });
81
+ // =============================================================================
82
+ // RATE LIMIT CONFIGURATION
83
+ // =============================================================================
84
+ export const ExternalProvider_RateLimitConfigurationSchema = z.object({
85
+ /** Maximum concurrent requests */
86
+ maxConcurrent: z.number().positive().optional().default(10),
87
+ /** Minimum time (ms) between requests */
88
+ minTime: z.number().positive().optional(),
89
+ /** Request reservoir (bucket size) */
90
+ reservoir: z.number().positive().optional(),
91
+ /** Reservoir refresh interval (ms) */
92
+ reservoirRefreshInterval: z.number().positive().optional(),
93
+ /** Amount to add to reservoir on refresh */
94
+ reservoirRefreshAmount: z.number().positive().optional(),
95
+ /** Request priority (higher = higher priority) */
96
+ priority: z.number().int().optional().default(0),
97
+ });
98
+ // =============================================================================
99
+ // AUTH PROFILE BASE SCHEMA
100
+ // =============================================================================
101
+ export const ExternalProvider_AuthProfile_BaseSchema = z.object({
102
+ /** Type of authentication */
103
+ kind: z.enum(ExternalProvider_Auth_Kind),
104
+ /** Unique reference for this auth profile */
105
+ ref: z.string().optional(),
106
+ /** Is this the default auth profile? */
107
+ isDefault: z.boolean().default(false),
108
+ /** Where to place the authentication (header, query, cookie) */
109
+ location: z.enum(ExternalProvider_Auth_ApiKey_Location).default(ExternalProvider_Auth_ApiKey_Location.HEADER),
110
+ /** Field name for the authentication */
111
+ locationField: z.string().default("Authorization"),
112
+ });
113
+ // =============================================================================
114
+ // DISCRIMINATED AUTH PROFILE SCHEMAS
115
+ // =============================================================================
116
+ /**
117
+ * Complete Auth Profile Schema - discriminated union by kind
118
+ * Each kind has specific configuration fields
119
+ */
120
+ export const ExternalProvider_AuthProfile_Schema = z.discriminatedUnion("kind", [
121
+ // ─── API Key Authentication ───
122
+ ExternalProvider_AuthProfile_BaseSchema.extend({
123
+ kind: z.literal(ExternalProvider_Auth_Kind.API_KEY),
124
+ locationField: z.string().default("Authorization"),
125
+ /** Prefix before the key value (e.g., "Api-Key ") */
126
+ prefix: z.string().optional(),
127
+ }),
128
+ // ─── HMAC Signature Authentication ───
129
+ ExternalProvider_AuthProfile_BaseSchema.extend({
130
+ kind: z.literal(ExternalProvider_Auth_Kind.HMAC_SIGNATURE),
131
+ locationField: z.string().default("X-Signature"),
132
+ /** HMAC algorithm */
133
+ algorithm: z.enum(ExternalProvider_Auth_HMAC_Signature_Algorithm).default(ExternalProvider_Auth_HMAC_Signature_Algorithm.SHA256),
134
+ /** What data to sign (body, timestamp, etc.) */
135
+ signaturePayload: z.enum(['body', 'timestamp', 'custom']).optional(),
136
+ /** Timestamp header name (if needed) */
137
+ timestampHeader: z.string().optional(),
138
+ /** Nonce header name (if needed for replay protection) */
139
+ nonceHeader: z.string().optional(),
140
+ }),
141
+ // ─── Bearer Token Authentication ───
142
+ ExternalProvider_AuthProfile_BaseSchema.extend({
143
+ kind: z.literal(ExternalProvider_Auth_Kind.BEARER),
144
+ location: z.enum(ExternalProvider_Auth_ApiKey_Location).default(ExternalProvider_Auth_ApiKey_Location.HEADER),
145
+ locationField: z.string().default("Authorization"),
146
+ /** Prefix (usually "Bearer ") */
147
+ prefix: z.string().default("Bearer "),
148
+ /** Token format */
149
+ format: z.enum(ExternalProvider_Auth_Bearer_Format).default(ExternalProvider_Auth_Bearer_Format.JWT),
150
+ }),
151
+ // ─── OpenID Connect Authentication ───
152
+ ExternalProvider_AuthProfile_BaseSchema.extend({
153
+ kind: z.literal(ExternalProvider_Auth_Kind.OPENID_CONNECT),
154
+ /** OIDC Discovery URL */
155
+ discoveryUrl: z.url().optional(),
156
+ /** Issuer */
157
+ issuer: z.string().optional(),
158
+ /** Expected audience */
159
+ audience: z.string().optional(),
160
+ /** Token validation mode */
161
+ validationMode: z.enum(['jwks', 'introspection', 'local']).optional(),
162
+ }),
163
+ // ─── OAuth2 Authentication (UNIFIED APPROACH) ───
164
+ ExternalProvider_AuthProfile_BaseSchema.extend({
165
+ kind: z.literal(ExternalProvider_Auth_Kind.OAUTH2),
166
+ // ─── OAuth2 Provider Reference (Unified Approach) ───
167
+ /**
168
+ * Reference to OAuth2 provider definition
169
+ * Instead of duplicating OAuth2 config, reference the provider
170
+ * by its string identifier (e.g., "google", "microsoft")
171
+ */
172
+ oauth2ProviderRef: z.string().optional(),
173
+ // ─── Inline OAuth2 Configuration (Legacy/Override) ───
174
+ /** Authorization URL (can be overridden or used when no ref) */
175
+ authUrl: z.url().optional(),
176
+ /** Token URL */
177
+ tokenUrl: z.url().optional(),
178
+ /** Refresh URL (if different from tokenUrl) */
179
+ refreshUrl: z.url().optional(),
180
+ /** Required scopes for this auth profile */
181
+ scopes: z.array(z.string()).optional(),
182
+ /** Preferred grant type */
183
+ grantType: z.enum(OAuth2_GrantType).optional(),
184
+ /** Token endpoint auth method */
185
+ tokenEndpointAuthMethod: z.enum(OAuth2_TokenEndpoint_AuthMethod).optional(),
186
+ /** PKCE support */
187
+ pkce: z.boolean().optional(),
188
+ /** PKCE method */
189
+ pkceMethod: z.enum(OAuth2_PKCE_Method).optional(),
190
+ /** Prompt behavior */
191
+ prompt: z.enum(OAuth2_Prompt).optional(),
192
+ /** Access type (online/offline) */
193
+ accessType: z.enum(OAuth2_AccessType).optional(),
194
+ /** Extra authorization parameters */
195
+ extraAuthParams: z.record(z.string(), z.string()).optional(),
196
+ /** Extra token parameters */
197
+ extraTokenParams: z.record(z.string(), z.string()).optional(),
198
+ // ─── Token Format (for API calls) ───
199
+ /** How to format the token in Authorization header */
200
+ tokenFormat: z.enum(['bearer', 'token', 'oauth', 'custom']).default('bearer'),
201
+ /** Custom prefix if tokenFormat is 'custom' */
202
+ customTokenPrefix: z.string().optional(),
203
+ }),
204
+ // ─── Basic Authentication ───
205
+ ExternalProvider_AuthProfile_BaseSchema.extend({
206
+ kind: z.literal(ExternalProvider_Auth_Kind.BASIC),
207
+ /** Username field reference */
208
+ usernameRef: z.string().optional(),
209
+ /** Password field reference */
210
+ passwordRef: z.string().optional(),
211
+ }),
212
+ // ─── No Authentication ───
213
+ ExternalProvider_AuthProfile_BaseSchema.extend({
214
+ kind: z.literal(ExternalProvider_Auth_Kind.NONE),
215
+ }),
216
+ // ─── Frontend Secret ───
217
+ ExternalProvider_AuthProfile_BaseSchema.extend({
218
+ kind: z.literal(ExternalProvider_Auth_Kind.FRONTEND_SECRET),
219
+ /** Secret is only used in frontend context */
220
+ frontendOnly: z.boolean().default(true),
221
+ }),
222
+ // ─── Mutual TLS ───
223
+ ExternalProvider_AuthProfile_BaseSchema.extend({
224
+ kind: z.literal(ExternalProvider_Auth_Kind.MUTUAL_TLS),
225
+ /** Certificate reference */
226
+ certificateRef: z.string().optional(),
227
+ /** Private key reference */
228
+ privateKeyRef: z.string().optional(),
229
+ /** CA certificate reference */
230
+ caRef: z.string().optional(),
231
+ }),
232
+ ]);
233
+ //# sourceMappingURL=security.external-connectors-models.schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.external-connectors-models.schemas.js","sourceRoot":"","sources":["../../../src/core/security.external-connectors-models.schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * External Provider Capabilities - Core Definitions
3
+ *
4
+ * Capabilities represent standardized behaviors that can be implemented
5
+ * across multiple providers. Each capability has:
6
+ * - A standard interface (request/response schemas)
7
+ * - A transformer interface (for provider-specific ETL)
8
+ * - Discovery through provider definitions (not protocols)
9
+ *
10
+ * Capabilities are defined at the PROVIDER level, not protocol level.
11
+ * This enables provider-agnostic usage in the backend through
12
+ * the ETL (Extract-Transform-Load) pattern.
13
+ */
14
+ /**
15
+ * Standard capabilities that providers can implement.
16
+ * Each capability maps to a standardized interface and ETL transformer.
17
+ *
18
+ * IMPORTANT: Each capability is fully independent - even if related
19
+ * (like email capabilities), they have separate transformers and files.
20
+ */
21
+ export declare enum ExternalProvider_Capability {
22
+ /**
23
+ * Transactional email sending - password resets, receipts, notifications.
24
+ * Standard interface: StandardEmail_SendRequest/Response
25
+ * Transformer: EmailTransactional_Transformer
26
+ */
27
+ EMAIL_TRANSACTIONAL = "email_transactional",
28
+ /**
29
+ * Marketing email campaigns - newsletters, promotions.
30
+ * Standard interface: StandardMarketing_CampaignRequest/Response
31
+ * Transformer: EmailMarketing_Transformer
32
+ */
33
+ EMAIL_MARKETING = "email_marketing",
34
+ /**
35
+ * Billing provider — subscriptions, payments, invoices, metered usage.
36
+ * Standard interface: StandardBilling_Interface
37
+ * Transformer: Billing_Transformer
38
+ */
39
+ BILLING = "billing",
40
+ /**
41
+ * SMS sending - OTP codes, phone verification, notifications.
42
+ * Standard interface: StandardSMS_SendRequest/Response
43
+ * Transformer: SMS_Transformer
44
+ */
45
+ SMS = "sms"
46
+ }
47
+ /**
48
+ * Metadata about each capability for discovery and documentation.
49
+ */
50
+ export declare const ExternalProvider_CapabilityMetadata: Record<ExternalProvider_Capability, {
51
+ displayName: string;
52
+ description: string;
53
+ category: "email" | "llm" | "auth" | "storage" | "billing" | "sms" | "other";
54
+ }>;
55
+ /**
56
+ * Base interface for all capability transformers.
57
+ * Each capability extends this with its specific transformation methods.
58
+ */
59
+ export interface CapabilityTransformer<TCapability extends ExternalProvider_Capability = ExternalProvider_Capability> {
60
+ /** The capability this transformer implements */
61
+ readonly feature: TCapability;
62
+ }
63
+ //# sourceMappingURL=core.external-connectors-models.schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.external-connectors-models.schemas.d.ts","sourceRoot":"","sources":["../../../src/features/core.external-connectors-models.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH;;;;;;GAMG;AACH,oBAAY,2BAA2B;IAKrC;;;;OAIG;IACH,mBAAmB,wBAAwB;IAE3C;;;;OAIG;IACH,eAAe,oBAAoB;IAenC;;;;OAIG;IACH,OAAO,YAAY;IAMnB;;;;OAIG;IACH,GAAG,QAAQ;CASZ;AAMD;;GAEG;AACH,eAAO,MAAM,mCAAmC,EAAE,MAAM,CAAC,2BAA2B,EAAE;IACpF,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;CAC9E,CAqBA,CAAC;AAMF;;;GAGG;AACH,MAAM,WAAW,qBAAqB,CAAC,WAAW,SAAS,2BAA2B,GAAG,2BAA2B;IAClH,iDAAiD;IACjD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;CAC/B"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * External Provider Capabilities - Core Definitions
3
+ *
4
+ * Capabilities represent standardized behaviors that can be implemented
5
+ * across multiple providers. Each capability has:
6
+ * - A standard interface (request/response schemas)
7
+ * - A transformer interface (for provider-specific ETL)
8
+ * - Discovery through provider definitions (not protocols)
9
+ *
10
+ * Capabilities are defined at the PROVIDER level, not protocol level.
11
+ * This enables provider-agnostic usage in the backend through
12
+ * the ETL (Extract-Transform-Load) pattern.
13
+ */
14
+ // ===============================================================
15
+ // Capabilities Enum
16
+ // ===============================================================
17
+ /**
18
+ * Standard capabilities that providers can implement.
19
+ * Each capability maps to a standardized interface and ETL transformer.
20
+ *
21
+ * IMPORTANT: Each capability is fully independent - even if related
22
+ * (like email capabilities), they have separate transformers and files.
23
+ */
24
+ export var ExternalProvider_Capability;
25
+ (function (ExternalProvider_Capability) {
26
+ // ============================================================
27
+ // Email Capabilities (fully segregated)
28
+ // ============================================================
29
+ /**
30
+ * Transactional email sending - password resets, receipts, notifications.
31
+ * Standard interface: StandardEmail_SendRequest/Response
32
+ * Transformer: EmailTransactional_Transformer
33
+ */
34
+ ExternalProvider_Capability["EMAIL_TRANSACTIONAL"] = "email_transactional";
35
+ /**
36
+ * Marketing email campaigns - newsletters, promotions.
37
+ * Standard interface: StandardMarketing_CampaignRequest/Response
38
+ * Transformer: EmailMarketing_Transformer
39
+ */
40
+ ExternalProvider_Capability["EMAIL_MARKETING"] = "email_marketing";
41
+ // ============================================================
42
+ // LLM Capabilities (future)
43
+ // ============================================================
44
+ // LLM_TEXT_GENERATION = "llm_text_generation",
45
+ // LLM_STRUCTURED_OUTPUT = "llm_structured_output",
46
+ // LLM_STREAMING = "llm_streaming",
47
+ // LLM_MULTIMODAL = "llm_multimodal",
48
+ // ============================================================
49
+ // Billing Capabilities
50
+ // ============================================================
51
+ /**
52
+ * Billing provider — subscriptions, payments, invoices, metered usage.
53
+ * Standard interface: StandardBilling_Interface
54
+ * Transformer: Billing_Transformer
55
+ */
56
+ ExternalProvider_Capability["BILLING"] = "billing";
57
+ // ============================================================
58
+ // SMS Capabilities (Phase G2)
59
+ // ============================================================
60
+ /**
61
+ * SMS sending - OTP codes, phone verification, notifications.
62
+ * Standard interface: StandardSMS_SendRequest/Response
63
+ * Transformer: SMS_Transformer
64
+ */
65
+ ExternalProvider_Capability["SMS"] = "sms";
66
+ // ============================================================
67
+ // Other Capabilities (future)
68
+ // ============================================================
69
+ // OAUTH2_SSO = "oauth2_sso",
70
+ // WEBHOOK_RECEIVER = "webhook_receiver",
71
+ // FILE_STORAGE = "file_storage",
72
+ })(ExternalProvider_Capability || (ExternalProvider_Capability = {}));
73
+ // ===============================================================
74
+ // Capability Metadata
75
+ // ===============================================================
76
+ /**
77
+ * Metadata about each capability for discovery and documentation.
78
+ */
79
+ export const ExternalProvider_CapabilityMetadata = {
80
+ [ExternalProvider_Capability.EMAIL_TRANSACTIONAL]: {
81
+ displayName: "Transactional Email",
82
+ description: "Send transactional emails like password resets, receipts, and notifications",
83
+ category: "email",
84
+ },
85
+ [ExternalProvider_Capability.EMAIL_MARKETING]: {
86
+ displayName: "Marketing Email",
87
+ description: "Send marketing campaigns, newsletters, and promotional emails",
88
+ category: "email",
89
+ },
90
+ [ExternalProvider_Capability.BILLING]: {
91
+ displayName: "Billing",
92
+ description: "Manage subscriptions, payments, invoices, and metered usage via a billing provider",
93
+ category: "billing",
94
+ },
95
+ [ExternalProvider_Capability.SMS]: {
96
+ displayName: "SMS",
97
+ description: "Send SMS messages for OTP codes, phone verification, and notifications",
98
+ category: "sms",
99
+ },
100
+ };
101
+ //# sourceMappingURL=core.external-connectors-models.schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.external-connectors-models.schemas.js","sourceRoot":"","sources":["../../../src/features/core.external-connectors-models.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,kEAAkE;AAClE,oBAAoB;AACpB,kEAAkE;AAElE;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,2BAyDX;AAzDD,WAAY,2BAA2B;IACrC,+DAA+D;IAC/D,wCAAwC;IACxC,+DAA+D;IAE/D;;;;OAIG;IACH,0EAA2C,CAAA;IAE3C;;;;OAIG;IACH,kEAAmC,CAAA;IAEnC,+DAA+D;IAC/D,4BAA4B;IAC5B,+DAA+D;IAE/D,+CAA+C;IAC/C,mDAAmD;IACnD,mCAAmC;IACnC,qCAAqC;IAErC,+DAA+D;IAC/D,uBAAuB;IACvB,+DAA+D;IAE/D;;;;OAIG;IACH,kDAAmB,CAAA;IAEnB,+DAA+D;IAC/D,8BAA8B;IAC9B,+DAA+D;IAE/D;;;;OAIG;IACH,0CAAW,CAAA;IAEX,+DAA+D;IAC/D,8BAA8B;IAC9B,+DAA+D;IAE/D,6BAA6B;IAC7B,yCAAyC;IACzC,iCAAiC;AACnC,CAAC,EAzDW,2BAA2B,KAA3B,2BAA2B,QAyDtC;AAED,kEAAkE;AAClE,sBAAsB;AACtB,kEAAkE;AAElE;;GAEG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAI3C;IACH,CAAC,2BAA2B,CAAC,mBAAmB,CAAC,EAAE;QACjD,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE,6EAA6E;QAC1F,QAAQ,EAAE,OAAO;KAClB;IACD,CAAC,2BAA2B,CAAC,eAAe,CAAC,EAAE;QAC7C,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE,+DAA+D;QAC5E,QAAQ,EAAE,OAAO;KAClB;IACD,CAAC,2BAA2B,CAAC,OAAO,CAAC,EAAE;QACrC,WAAW,EAAE,SAAS;QACtB,WAAW,EAAE,oFAAoF;QACjG,QAAQ,EAAE,SAAS;KACpB;IACD,CAAC,2BAA2B,CAAC,GAAG,CAAC,EAAE;QACjC,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,wEAAwE;QACrF,QAAQ,EAAE,KAAK;KAChB;CACF,CAAC"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * Email Capabilities - Transformer Interfaces
3
+ *
4
+ * This file defines the transformer interfaces for email capabilities:
5
+ * - EMAIL_TRANSACTIONAL: Transactional email sending
6
+ * - EMAIL_MARKETING: Marketing campaign orchestration
7
+ *
8
+ * These capabilities are FULLY SEGREGATED - each has independent:
9
+ * - Transformer interface
10
+ * - Standard request/response types (in protocols/email.standard-interface.schemas.ts)
11
+ * - Provider implementations
12
+ */
13
+ import { ExternalProvider_Capability, CapabilityTransformer } from "./core.external-connectors-models.schemas.js";
14
+ import type { SMS_Transformer } from "./sms.external-connectors-models.schemas.js";
15
+ import type { StandardBilling_Interface } from "../protocols/billing.standard-interface.schemas.js";
16
+ import type { StandardEmail_SendRequest, StandardEmail_SendResponse, StandardEmail_SendTemplateRequest, StandardEmail_BatchRequest, StandardEmail_BatchResponse, StandardMarketing_CampaignRequest, StandardMarketing_CampaignResponse } from "../protocols/email.standard-interface.schemas.js";
17
+ /**
18
+ * Context passed to parse methods when additional info from the request is needed.
19
+ * This allows parse methods to access recipient counts, emails, etc.
20
+ */
21
+ export interface EmailTransactional_ParseContext<TRequest = unknown> {
22
+ /** The original standard request (for extracting recipient info) */
23
+ originalRequest?: TRequest;
24
+ /** Response headers from the provider */
25
+ headers?: Record<string, string>;
26
+ }
27
+ /**
28
+ * Transformer for EMAIL_TRANSACTIONAL capability.
29
+ * Providers implement this to transform standard requests to their API format.
30
+ */
31
+ export interface EmailTransactional_Transformer extends CapabilityTransformer<typeof ExternalProvider_Capability.EMAIL_TRANSACTIONAL> {
32
+ feature: typeof ExternalProvider_Capability.EMAIL_TRANSACTIONAL;
33
+ /** Transform standard send request to provider format */
34
+ transformSendEmail(request: StandardEmail_SendRequest): unknown;
35
+ /** Parse provider response to standard format */
36
+ parseSendEmailResponse(response: unknown, context?: EmailTransactional_ParseContext<StandardEmail_SendRequest>): StandardEmail_SendResponse;
37
+ /** Transform template send request (requires SUPPORTS_TEMPLATES) */
38
+ transformSendTemplate?(request: StandardEmail_SendTemplateRequest): unknown;
39
+ parseSendTemplateResponse?(response: unknown, context?: EmailTransactional_ParseContext<StandardEmail_SendTemplateRequest>): StandardEmail_SendResponse;
40
+ /** Transform batch send request (requires SUPPORTS_BATCH_SENDING) */
41
+ transformBatchSend?(request: StandardEmail_BatchRequest): unknown;
42
+ parseBatchSendResponse?(response: unknown, context?: EmailTransactional_ParseContext<StandardEmail_BatchRequest>): StandardEmail_BatchResponse;
43
+ }
44
+ /**
45
+ * Generic HTTP client interface for marketing workflows.
46
+ * The actual implementation is injected at runtime by the orchestrator.
47
+ */
48
+ export interface EmailMarketing_HttpClient {
49
+ get<T = Record<string, unknown>>(path: string): Promise<T>;
50
+ post<T = Record<string, unknown>>(path: string, body: Record<string, unknown>): Promise<T>;
51
+ put<T = Record<string, unknown>>(path: string, body: Record<string, unknown>): Promise<T>;
52
+ delete<T = Record<string, unknown>>(path: string): Promise<T>;
53
+ }
54
+ /**
55
+ * Context passed through the marketing workflow steps.
56
+ * Properly typed to avoid redundant casting in implementations.
57
+ */
58
+ export interface EmailMarketing_WorkflowContext {
59
+ /** Correlation ID for the entire workflow (for logging/tracing) */
60
+ correlationId: string;
61
+ /** Provider-specific HTTP client - properly typed, no casting needed */
62
+ client: EmailMarketing_HttpClient;
63
+ /** Accumulated state from previous steps (for provider-specific data) */
64
+ state: Map<string, unknown>;
65
+ /** Logger for workflow steps (optional) */
66
+ log?: (message: string, data?: unknown) => void;
67
+ }
68
+ /**
69
+ * Error data for marketing workflow failures.
70
+ * Includes information for potential rollback.
71
+ */
72
+ export interface EmailMarketing_WorkflowErrorData {
73
+ message: string;
74
+ step: "prepareAudience" | "prepareContent" | "createCampaign" | "executeCampaign";
75
+ providerError?: unknown;
76
+ rollbackData?: {
77
+ listId?: string;
78
+ campaignId?: string;
79
+ listCreated?: boolean;
80
+ };
81
+ }
82
+ /**
83
+ * Create a workflow error with rollback information.
84
+ * Use this instead of throwing plain errors in workflow steps.
85
+ */
86
+ export declare function createEmailMarketing_WorkflowError(message: string, step: EmailMarketing_WorkflowErrorData["step"], providerError?: unknown, rollbackData?: EmailMarketing_WorkflowErrorData["rollbackData"]): Error & EmailMarketing_WorkflowErrorData;
87
+ /**
88
+ * Type guard to check if an error is a workflow error.
89
+ */
90
+ export declare function isEmailMarketing_WorkflowError(error: unknown): error is Error & EmailMarketing_WorkflowErrorData;
91
+ /**
92
+ * Result of audience preparation step.
93
+ */
94
+ export interface EmailMarketing_AudienceResult {
95
+ /** Provider's list/audience ID */
96
+ listId: string;
97
+ /** Number of contacts in the list */
98
+ audienceSize: number;
99
+ /** Was a new list created? */
100
+ listCreated: boolean;
101
+ /** How many contacts were added? */
102
+ contactsAdded: number;
103
+ /** Provider-specific data for next steps */
104
+ providerData?: unknown;
105
+ }
106
+ /**
107
+ * Result of content preparation step.
108
+ */
109
+ export interface EmailMarketing_ContentResult {
110
+ /** Provider's template/content ID (if applicable) */
111
+ templateId?: string;
112
+ /** Was content prepared as template or inline? */
113
+ contentType: "template" | "inline";
114
+ /** Provider-specific data for next steps */
115
+ providerData?: unknown;
116
+ }
117
+ /**
118
+ * Result of campaign creation step.
119
+ */
120
+ export interface EmailMarketing_CampaignResult {
121
+ /** Provider's campaign ID */
122
+ campaignId: string;
123
+ /** Current status */
124
+ status: "draft" | "ready";
125
+ /** Provider-specific data for execution */
126
+ providerData?: unknown;
127
+ }
128
+ /**
129
+ * Multi-step workflow for marketing campaigns.
130
+ * Each step can result in 1+ API calls to the provider.
131
+ */
132
+ export interface EmailMarketing_Workflow {
133
+ /**
134
+ * Step 1: Ensure audience/list exists and is populated
135
+ * May involve: create list, add/update contacts
136
+ */
137
+ prepareAudience(campaign: StandardMarketing_CampaignRequest, context: EmailMarketing_WorkflowContext): Promise<EmailMarketing_AudienceResult>;
138
+ /**
139
+ * Step 2: Prepare content/template
140
+ * May involve: create template, upload content
141
+ */
142
+ prepareContent(campaign: StandardMarketing_CampaignRequest, audienceResult: EmailMarketing_AudienceResult, context: EmailMarketing_WorkflowContext): Promise<EmailMarketing_ContentResult>;
143
+ /**
144
+ * Step 3: Create the campaign
145
+ * May involve: create campaign, link to list and content
146
+ */
147
+ createCampaign(campaign: StandardMarketing_CampaignRequest, audienceResult: EmailMarketing_AudienceResult, contentResult: EmailMarketing_ContentResult, context: EmailMarketing_WorkflowContext): Promise<EmailMarketing_CampaignResult>;
148
+ /**
149
+ * Step 4: Execute/schedule the campaign
150
+ * May involve: send immediately, schedule for later
151
+ */
152
+ executeCampaign(campaign: StandardMarketing_CampaignRequest, campaignResult: EmailMarketing_CampaignResult, context: EmailMarketing_WorkflowContext): Promise<StandardMarketing_CampaignResponse>;
153
+ }
154
+ /**
155
+ * Transformer for EMAIL_MARKETING capability.
156
+ * Providers implement this to handle marketing campaign workflows.
157
+ */
158
+ export interface EmailMarketing_Transformer extends CapabilityTransformer<typeof ExternalProvider_Capability.EMAIL_MARKETING> {
159
+ feature: typeof ExternalProvider_Capability.EMAIL_MARKETING;
160
+ /** Multi-step workflow for campaign execution */
161
+ workflow: EmailMarketing_Workflow;
162
+ }
163
+ /**
164
+ * Map of all available capability transformers.
165
+ * Each capability has its own independent transformer type.
166
+ *
167
+ * This type is used at the PROVIDER DEFINITION level, not protocol level.
168
+ */
169
+ export type ProviderCapabilityTransformers = {
170
+ [ExternalProvider_Capability.EMAIL_TRANSACTIONAL]?: EmailTransactional_Transformer;
171
+ [ExternalProvider_Capability.EMAIL_MARKETING]?: EmailMarketing_Transformer;
172
+ /**
173
+ * Billing capability transformer class.
174
+ * Stored as a constructor (instantiated with credentials at startup).
175
+ * Must implement both StandardBilling_Interface (billing operations) and CapabilityTransformer (discovery).
176
+ */
177
+ [ExternalProvider_Capability.BILLING]?: new (secretKey: string, apiVersion?: string) => StandardBilling_Interface & CapabilityTransformer;
178
+ /** SMS capability transformer (Phase G2) */
179
+ [ExternalProvider_Capability.SMS]?: SMS_Transformer;
180
+ };
181
+ //# sourceMappingURL=email.external-connectors-models.schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.external-connectors-models.schemas.d.ts","sourceRoot":"","sources":["../../../src/features/email.external-connectors-models.schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Email Capabilities - Transformer Interfaces
3
+ *
4
+ * This file defines the transformer interfaces for email capabilities:
5
+ * - EMAIL_TRANSACTIONAL: Transactional email sending
6
+ * - EMAIL_MARKETING: Marketing campaign orchestration
7
+ *
8
+ * These capabilities are FULLY SEGREGATED - each has independent:
9
+ * - Transformer interface
10
+ * - Standard request/response types (in protocols/email.standard-interface.schemas.ts)
11
+ * - Provider implementations
12
+ */
13
+ import { ExternalProvider_Capability } from "./core.external-connectors-models.schemas.js";
14
+ /**
15
+ * Create a workflow error with rollback information.
16
+ * Use this instead of throwing plain errors in workflow steps.
17
+ */
18
+ export function createEmailMarketing_WorkflowError(message, step, providerError, rollbackData) {
19
+ const error = new Error(message);
20
+ error.name = "EmailMarketing_WorkflowError";
21
+ error.step = step;
22
+ error.providerError = providerError;
23
+ error.rollbackData = rollbackData;
24
+ return error;
25
+ }
26
+ /**
27
+ * Type guard to check if an error is a workflow error.
28
+ */
29
+ export function isEmailMarketing_WorkflowError(error) {
30
+ return (error instanceof Error &&
31
+ error.name === "EmailMarketing_WorkflowError" &&
32
+ "step" in error);
33
+ }
34
+ //# sourceMappingURL=email.external-connectors-models.schemas.js.map