@bubblelab/shared-schemas 0.1.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.
Files changed (75) hide show
  1. package/LICENSE.txt +202 -0
  2. package/README.md +138 -0
  3. package/dist/api-schema.d.ts +38 -0
  4. package/dist/api-schema.d.ts.map +1 -0
  5. package/dist/api-schema.js +26 -0
  6. package/dist/api-schema.js.map +1 -0
  7. package/dist/bubble-definition-schema.d.ts +242 -0
  8. package/dist/bubble-definition-schema.d.ts.map +1 -0
  9. package/dist/bubble-definition-schema.js +95 -0
  10. package/dist/bubble-definition-schema.js.map +1 -0
  11. package/dist/bubbleflow-execution-schema.d.ts +580 -0
  12. package/dist/bubbleflow-execution-schema.d.ts.map +1 -0
  13. package/dist/bubbleflow-execution-schema.js +230 -0
  14. package/dist/bubbleflow-execution-schema.js.map +1 -0
  15. package/dist/bubbleflow-schema.d.ts +785 -0
  16. package/dist/bubbleflow-schema.d.ts.map +1 -0
  17. package/dist/bubbleflow-schema.js +206 -0
  18. package/dist/bubbleflow-schema.js.map +1 -0
  19. package/dist/credential-schema.d.ts +405 -0
  20. package/dist/credential-schema.d.ts.map +1 -0
  21. package/dist/credential-schema.js +327 -0
  22. package/dist/credential-schema.js.map +1 -0
  23. package/dist/database-definition-schema.d.ts +97 -0
  24. package/dist/database-definition-schema.d.ts.map +1 -0
  25. package/dist/database-definition-schema.js +36 -0
  26. package/dist/database-definition-schema.js.map +1 -0
  27. package/dist/generate-bubbleflow-schema.d.ts +481 -0
  28. package/dist/generate-bubbleflow-schema.d.ts.map +1 -0
  29. package/dist/generate-bubbleflow-schema.js +247 -0
  30. package/dist/generate-bubbleflow-schema.js.map +1 -0
  31. package/dist/index.d.ts +16 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +18 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/mock-data-generator.d.ts +51 -0
  36. package/dist/mock-data-generator.d.ts.map +1 -0
  37. package/dist/mock-data-generator.js +325 -0
  38. package/dist/mock-data-generator.js.map +1 -0
  39. package/dist/mock-data-generator.test.d.ts +2 -0
  40. package/dist/mock-data-generator.test.d.ts.map +1 -0
  41. package/dist/mock-data-generator.test.js +176 -0
  42. package/dist/mock-data-generator.test.js.map +1 -0
  43. package/dist/oauth-schema.d.ts +61 -0
  44. package/dist/oauth-schema.d.ts.map +1 -0
  45. package/dist/oauth-schema.js +75 -0
  46. package/dist/oauth-schema.js.map +1 -0
  47. package/dist/prompts.d.ts +12 -0
  48. package/dist/prompts.d.ts.map +1 -0
  49. package/dist/prompts.js +40 -0
  50. package/dist/prompts.js.map +1 -0
  51. package/dist/routes.d.ts +2207 -0
  52. package/dist/routes.d.ts.map +1 -0
  53. package/dist/routes.js +978 -0
  54. package/dist/routes.js.map +1 -0
  55. package/dist/streaming-events.d.ts +35 -0
  56. package/dist/streaming-events.d.ts.map +1 -0
  57. package/dist/streaming-events.js +5 -0
  58. package/dist/streaming-events.js.map +1 -0
  59. package/dist/subscription-status-schema.d.ts +90 -0
  60. package/dist/subscription-status-schema.d.ts.map +1 -0
  61. package/dist/subscription-status-schema.js +66 -0
  62. package/dist/subscription-status-schema.js.map +1 -0
  63. package/dist/types.d.ts +19 -0
  64. package/dist/types.d.ts.map +1 -0
  65. package/dist/types.js +27 -0
  66. package/dist/types.js.map +1 -0
  67. package/dist/waitlist-schema.d.ts +30 -0
  68. package/dist/waitlist-schema.d.ts.map +1 -0
  69. package/dist/waitlist-schema.js +39 -0
  70. package/dist/waitlist-schema.js.map +1 -0
  71. package/dist/webhook-schema.d.ts +95 -0
  72. package/dist/webhook-schema.d.ts.map +1 -0
  73. package/dist/webhook-schema.js +50 -0
  74. package/dist/webhook-schema.js.map +1 -0
  75. package/package.json +45 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bubbleflow-schema.d.ts","sourceRoot":"","sources":["../src/bubbleflow-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AACtC,OAAO,EAGL,mBAAmB,EACpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;EAsCE,CAAC;AAGtC,eAAO,MAAM,uBAAuB,wCAEE,CAAC;AAGvC,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOE,CAAC;AAOhD,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwDL,CAAC;AAGvC,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoDL,CAAC;AAGxC,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBnC,CAAC;AAGH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOvC,CAAC;AAEH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;EAeL,CAAC;AAEzC,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,gCAAgC,CACxC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAC5C,OAAO,8BAA8B,CACtC,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAC7E,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE/E,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CACrD,OAAO,gCAAgC,CACxC,CAAC;AACF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,+BAA+B,CACvC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAC1C,OAAO,4BAA4B,CACpC,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
@@ -0,0 +1,206 @@
1
+ import { z } from '@hono/zod-openapi';
2
+ import { ParsedBubbleWithInfoSchema, ParsedBubbleSchema, BubbleParameterType, } from './bubble-definition-schema.js';
3
+ import { CredentialType } from './types.js';
4
+ // POST /bubble-flow - Create new BubbleFlow schema
5
+ export const createBubbleFlowSchema = z
6
+ .object({
7
+ name: z.string().min(1).max(100).openapi({
8
+ description: 'Name of the BubbleFlow',
9
+ example: 'My First BubbleFlow',
10
+ }),
11
+ description: z.string().optional().openapi({
12
+ description: 'Optional description of what this BubbleFlow does',
13
+ example: 'A flow that processes webhook data',
14
+ }),
15
+ prompt: z.string().optional().openapi({
16
+ description: 'Optional prompt used to generate the flow',
17
+ example: 'Create a flow that processes webhook data and sends notifications',
18
+ }),
19
+ code: z.string().min(1).openapi({
20
+ description: 'TypeScript code that defines the BubbleFlow class',
21
+ example: 'export class MyFlow extends BubbleFlow { ... }',
22
+ }),
23
+ eventType: z.string().min(1).openapi({
24
+ description: 'Event type this BubbleFlow responds to',
25
+ example: 'webhook/http',
26
+ }),
27
+ webhookPath: z
28
+ .string()
29
+ .min(1)
30
+ .max(50)
31
+ .regex(/^[a-zA-Z0-9-_]+$/)
32
+ .optional()
33
+ .openapi({
34
+ description: 'Custom webhook path (auto-generated if not provided)',
35
+ example: 'my-webhook',
36
+ }),
37
+ webhookActive: z.boolean().default(false).optional().openapi({
38
+ description: 'Whether the webhook should be active immediately',
39
+ example: true,
40
+ }),
41
+ })
42
+ .openapi('CreateBubbleFlowRequest');
43
+ // POST /:id/execute - Execute BubbleFlow schema
44
+ export const executeBubbleFlowSchema = z
45
+ .record(z.string(), z.unknown())
46
+ .openapi('ExecuteBubbleFlowRequest');
47
+ // PUT /bubble-flow/:id - Update BubbleFlow parameters schema
48
+ export const updateBubbleFlowParametersSchema = z
49
+ .object({
50
+ bubbleParameters: z.record(z.string(), z.union([ParsedBubbleWithInfoSchema, ParsedBubbleSchema])),
51
+ })
52
+ .openapi('UpdateBubbleFlowParametersRequest');
53
+ // ============================================================================
54
+ // RESPONSE SCHEMAS (Output Types)
55
+ // ============================================================================
56
+ // POST /bubble-flow - Create BubbleFlow response
57
+ export const createBubbleFlowResponseSchema = z
58
+ .object({
59
+ id: z.number().openapi({
60
+ description: 'ID of the created BubbleFlow',
61
+ example: 123,
62
+ }),
63
+ message: z.string().openapi({
64
+ description: 'Success message',
65
+ example: 'BubbleFlow created successfully',
66
+ }),
67
+ inputSchema: z
68
+ .record(z.string(), z.unknown())
69
+ .optional()
70
+ .openapi({
71
+ description: 'Input schema',
72
+ example: {
73
+ name: 'string',
74
+ age: 'number',
75
+ },
76
+ }),
77
+ bubbleParameters: z.record(z.string(), ParsedBubbleWithInfoSchema).openapi({
78
+ description: 'Parsed bubble parameters from the BubbleFlow code',
79
+ }),
80
+ requiredCredentials: z
81
+ .record(z.string(), z.array(z.nativeEnum(CredentialType)))
82
+ .optional()
83
+ .openapi({
84
+ description: 'Mapping of bubble names to their required credential types',
85
+ example: {
86
+ 'database-connection': [CredentialType.DATABASE_CRED],
87
+ 'slack-notification': [CredentialType.SLACK_CRED],
88
+ 'ai-analysis': [CredentialType.GOOGLE_GEMINI_CRED],
89
+ },
90
+ }),
91
+ webhook: z
92
+ .object({
93
+ id: z.number().openapi({ description: 'Webhook ID', example: 456 }),
94
+ url: z.string().openapi({
95
+ description: 'Full webhook URL',
96
+ example: 'http://localhost:3001/webhook/user123/my-webhook',
97
+ }),
98
+ path: z.string().openapi({
99
+ description: 'Webhook path',
100
+ example: 'my-webhook',
101
+ }),
102
+ active: z.boolean().openapi({
103
+ description: 'Whether webhook is active',
104
+ example: true,
105
+ }),
106
+ })
107
+ .optional()
108
+ .openapi({
109
+ description: 'Webhook information (if webhook was created)',
110
+ }),
111
+ })
112
+ .openapi('CreateBubbleFlowResponse');
113
+ // GET /bubble-flow/:id - Get BubbleFlow details response
114
+ export const bubbleFlowDetailsResponseSchema = z
115
+ .object({
116
+ id: z.number().openapi({ description: 'BubbleFlow ID' }),
117
+ name: z.string().openapi({ description: 'BubbleFlow name' }),
118
+ description: z.string().optional().openapi({ description: 'Description' }),
119
+ prompt: z
120
+ .string()
121
+ .optional()
122
+ .openapi({ description: 'Original prompt used to generate the flow' }),
123
+ eventType: z.string().openapi({ description: 'Event type' }),
124
+ code: z.string().openapi({ description: 'TypeScript source code' }),
125
+ inputSchema: z
126
+ .record(z.string(), z.unknown())
127
+ .optional()
128
+ .openapi({ description: 'Input schema' }),
129
+ isActive: z
130
+ .boolean()
131
+ .openapi({ description: 'Whether the BubbleFlow is active' }),
132
+ requiredCredentials: z
133
+ .record(z.string(), z.array(z.nativeEnum(CredentialType)))
134
+ .openapi({ description: 'Required credentials by bubble' }),
135
+ displayedBubbleParameters: z
136
+ .record(z.string(), z.object({
137
+ variableName: z.string(),
138
+ bubbleName: z.string(),
139
+ className: z.string(),
140
+ parameters: z.array(z.object({
141
+ name: z.string(),
142
+ value: z.unknown(),
143
+ type: z.nativeEnum(BubbleParameterType),
144
+ })),
145
+ hasAwait: z.boolean(),
146
+ hasActionCall: z.boolean(),
147
+ }))
148
+ .optional()
149
+ .openapi({
150
+ description: 'Displayed bubble parameters for visualization',
151
+ }),
152
+ bubbleParameters: z.record(z.string(), ParsedBubbleWithInfoSchema).openapi({
153
+ description: 'Bubble parameters',
154
+ }),
155
+ createdAt: z.string().openapi({ description: 'Creation timestamp' }),
156
+ updatedAt: z.string().openapi({ description: 'Update timestamp' }),
157
+ webhook_url: z
158
+ .string()
159
+ .openapi({ description: 'Webhook URL for this bubble flow' }),
160
+ })
161
+ .openapi('BubbleFlowDetailsResponse');
162
+ // Individual BubbleFlow list item schema
163
+ export const bubbleFlowListItemSchema = z.object({
164
+ id: z.number().openapi({ description: 'BubbleFlow ID' }),
165
+ name: z.string().openapi({ description: 'BubbleFlow name' }),
166
+ description: z.string().optional().openapi({ description: 'Description' }),
167
+ eventType: z.string().openapi({ description: 'Event type' }),
168
+ isActive: z
169
+ .boolean()
170
+ .openapi({ description: 'Whether the BubbleFlow is active' }),
171
+ webhookExecutionCount: z
172
+ .number()
173
+ .openapi({ description: 'Webhook execution count' }),
174
+ webhookFailureCount: z
175
+ .number()
176
+ .openapi({ description: 'Webhook failure count' }),
177
+ createdAt: z.string().openapi({ description: 'Creation timestamp' }),
178
+ updatedAt: z.string().openapi({ description: 'Update timestamp' }),
179
+ });
180
+ // GET /bubble-flow - List BubbleFlows response with user info
181
+ export const bubbleFlowListResponseSchema = z.object({
182
+ bubbleFlows: z.array(bubbleFlowListItemSchema).default([]),
183
+ userMonthlyUsage: z
184
+ .object({
185
+ count: z.number().openapi({ description: 'Current monthly usage count' }),
186
+ })
187
+ .openapi({ description: 'User monthly usage information' }),
188
+ });
189
+ // POST /bubble-flow/:id/activate - Activate workflow
190
+ export const activateBubbleFlowResponseSchema = z
191
+ .object({
192
+ success: z.boolean().openapi({
193
+ description: 'Whether the activation was successful',
194
+ example: true,
195
+ }),
196
+ webhookUrl: z.string().openapi({
197
+ description: 'Webhook URL for the activated workflow',
198
+ example: 'https://api.nodex.dev/webhook/user123/workflow-123',
199
+ }),
200
+ message: z.string().openapi({
201
+ description: 'Success message',
202
+ example: 'Workflow activated successfully! Your Slack bot is now ready.',
203
+ }),
204
+ })
205
+ .openapi('ActivateBubbleFlowResponse');
206
+ //# sourceMappingURL=bubbleflow-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bubbleflow-schema.js","sourceRoot":"","sources":["../src/bubbleflow-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,405 @@
1
+ import { BubbleName, CredentialType } from './types.js';
2
+ import { z } from '@hono/zod-openapi';
3
+ /**
4
+ * Maps credential types to their environment variable names (for backend only!!!!)
5
+ */
6
+ export declare const CREDENTIAL_ENV_MAP: Record<CredentialType, string>;
7
+ /** Used by bubblelab studio */
8
+ export declare const SYSTEM_CREDENTIALS: Set<CredentialType>;
9
+ /**
10
+ * OAuth provider names - type-safe provider identifiers
11
+ */
12
+ export type OAuthProvider = 'google';
13
+ /**
14
+ * OAuth credential type configuration for a specific service under a provider
15
+ */
16
+ export interface OAuthCredentialConfig {
17
+ displayName: string;
18
+ defaultScopes: string[];
19
+ description: string;
20
+ }
21
+ /**
22
+ * OAuth provider configuration shared between frontend and backend
23
+ */
24
+ export interface OAuthProviderConfig {
25
+ name: OAuthProvider;
26
+ displayName: string;
27
+ credentialTypes: Partial<Record<CredentialType, OAuthCredentialConfig>>;
28
+ authorizationParams?: Record<string, string>;
29
+ }
30
+ /**
31
+ * OAuth provider configurations - single source of truth for OAuth providers
32
+ * Contains all information needed by frontend and backend
33
+ */
34
+ export declare const OAUTH_PROVIDERS: Record<OAuthProvider, OAuthProviderConfig>;
35
+ /**
36
+ * Get the OAuth provider for a specific credential type
37
+ * Safely maps credential types to their OAuth providers
38
+ */
39
+ export declare function getOAuthProvider(credentialType: CredentialType): OAuthProvider | null;
40
+ /**
41
+ * Check if a credential type is OAuth-based
42
+ */
43
+ export declare function isOAuthCredential(credentialType: CredentialType): boolean;
44
+ /**
45
+ * Maps bubble names to their accepted credential types
46
+ */
47
+ export type CredentialOptions = Partial<Record<CredentialType, string>>;
48
+ /**
49
+ * Collection of credential options for all bubbles
50
+ */
51
+ export declare const BUBBLE_CREDENTIAL_OPTIONS: Record<BubbleName, CredentialType[]>;
52
+ export declare const createCredentialSchema: z.ZodObject<{
53
+ credentialType: z.ZodNativeEnum<typeof CredentialType>;
54
+ value: z.ZodString;
55
+ name: z.ZodOptional<z.ZodString>;
56
+ skipValidation: z.ZodOptional<z.ZodBoolean>;
57
+ credentialConfigurations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
58
+ metadata: z.ZodOptional<z.ZodObject<{
59
+ tables: z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>>;
60
+ tableNotes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
61
+ databaseName: z.ZodOptional<z.ZodString>;
62
+ databaseType: z.ZodOptional<z.ZodEnum<["postgresql", "mysql", "sqlite", "mssql", "oracle"]>>;
63
+ rules: z.ZodOptional<z.ZodArray<z.ZodObject<{
64
+ id: z.ZodString;
65
+ text: z.ZodString;
66
+ enabled: z.ZodBoolean;
67
+ createdAt: z.ZodString;
68
+ updatedAt: z.ZodString;
69
+ }, "strip", z.ZodTypeAny, {
70
+ id: string;
71
+ createdAt: string;
72
+ updatedAt: string;
73
+ text: string;
74
+ enabled: boolean;
75
+ }, {
76
+ id: string;
77
+ createdAt: string;
78
+ updatedAt: string;
79
+ text: string;
80
+ enabled: boolean;
81
+ }>, "many">>;
82
+ notes: z.ZodOptional<z.ZodString>;
83
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
84
+ }, "strip", z.ZodTypeAny, {
85
+ tables: Record<string, Record<string, string>>;
86
+ tableNotes?: Record<string, string> | undefined;
87
+ databaseName?: string | undefined;
88
+ databaseType?: "postgresql" | "mysql" | "sqlite" | "mssql" | "oracle" | undefined;
89
+ rules?: {
90
+ id: string;
91
+ createdAt: string;
92
+ updatedAt: string;
93
+ text: string;
94
+ enabled: boolean;
95
+ }[] | undefined;
96
+ notes?: string | undefined;
97
+ tags?: string[] | undefined;
98
+ }, {
99
+ tables: Record<string, Record<string, string>>;
100
+ tableNotes?: Record<string, string> | undefined;
101
+ databaseName?: string | undefined;
102
+ databaseType?: "postgresql" | "mysql" | "sqlite" | "mssql" | "oracle" | undefined;
103
+ rules?: {
104
+ id: string;
105
+ createdAt: string;
106
+ updatedAt: string;
107
+ text: string;
108
+ enabled: boolean;
109
+ }[] | undefined;
110
+ notes?: string | undefined;
111
+ tags?: string[] | undefined;
112
+ }>>;
113
+ }, "strip", z.ZodTypeAny, {
114
+ value: string;
115
+ credentialType: CredentialType;
116
+ name?: string | undefined;
117
+ metadata?: {
118
+ tables: Record<string, Record<string, string>>;
119
+ tableNotes?: Record<string, string> | undefined;
120
+ databaseName?: string | undefined;
121
+ databaseType?: "postgresql" | "mysql" | "sqlite" | "mssql" | "oracle" | undefined;
122
+ rules?: {
123
+ id: string;
124
+ createdAt: string;
125
+ updatedAt: string;
126
+ text: string;
127
+ enabled: boolean;
128
+ }[] | undefined;
129
+ notes?: string | undefined;
130
+ tags?: string[] | undefined;
131
+ } | undefined;
132
+ skipValidation?: boolean | undefined;
133
+ credentialConfigurations?: Record<string, unknown> | undefined;
134
+ }, {
135
+ value: string;
136
+ credentialType: CredentialType;
137
+ name?: string | undefined;
138
+ metadata?: {
139
+ tables: Record<string, Record<string, string>>;
140
+ tableNotes?: Record<string, string> | undefined;
141
+ databaseName?: string | undefined;
142
+ databaseType?: "postgresql" | "mysql" | "sqlite" | "mssql" | "oracle" | undefined;
143
+ rules?: {
144
+ id: string;
145
+ createdAt: string;
146
+ updatedAt: string;
147
+ text: string;
148
+ enabled: boolean;
149
+ }[] | undefined;
150
+ notes?: string | undefined;
151
+ tags?: string[] | undefined;
152
+ } | undefined;
153
+ skipValidation?: boolean | undefined;
154
+ credentialConfigurations?: Record<string, unknown> | undefined;
155
+ }>;
156
+ export declare const updateCredentialSchema: z.ZodObject<{
157
+ value: z.ZodOptional<z.ZodString>;
158
+ name: z.ZodOptional<z.ZodString>;
159
+ skipValidation: z.ZodOptional<z.ZodBoolean>;
160
+ credentialConfigurations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
161
+ metadata: z.ZodOptional<z.ZodObject<{
162
+ tables: z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>>;
163
+ tableNotes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
164
+ databaseName: z.ZodOptional<z.ZodString>;
165
+ databaseType: z.ZodOptional<z.ZodEnum<["postgresql", "mysql", "sqlite", "mssql", "oracle"]>>;
166
+ rules: z.ZodOptional<z.ZodArray<z.ZodObject<{
167
+ id: z.ZodString;
168
+ text: z.ZodString;
169
+ enabled: z.ZodBoolean;
170
+ createdAt: z.ZodString;
171
+ updatedAt: z.ZodString;
172
+ }, "strip", z.ZodTypeAny, {
173
+ id: string;
174
+ createdAt: string;
175
+ updatedAt: string;
176
+ text: string;
177
+ enabled: boolean;
178
+ }, {
179
+ id: string;
180
+ createdAt: string;
181
+ updatedAt: string;
182
+ text: string;
183
+ enabled: boolean;
184
+ }>, "many">>;
185
+ notes: z.ZodOptional<z.ZodString>;
186
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
187
+ }, "strip", z.ZodTypeAny, {
188
+ tables: Record<string, Record<string, string>>;
189
+ tableNotes?: Record<string, string> | undefined;
190
+ databaseName?: string | undefined;
191
+ databaseType?: "postgresql" | "mysql" | "sqlite" | "mssql" | "oracle" | undefined;
192
+ rules?: {
193
+ id: string;
194
+ createdAt: string;
195
+ updatedAt: string;
196
+ text: string;
197
+ enabled: boolean;
198
+ }[] | undefined;
199
+ notes?: string | undefined;
200
+ tags?: string[] | undefined;
201
+ }, {
202
+ tables: Record<string, Record<string, string>>;
203
+ tableNotes?: Record<string, string> | undefined;
204
+ databaseName?: string | undefined;
205
+ databaseType?: "postgresql" | "mysql" | "sqlite" | "mssql" | "oracle" | undefined;
206
+ rules?: {
207
+ id: string;
208
+ createdAt: string;
209
+ updatedAt: string;
210
+ text: string;
211
+ enabled: boolean;
212
+ }[] | undefined;
213
+ notes?: string | undefined;
214
+ tags?: string[] | undefined;
215
+ }>>;
216
+ }, "strip", z.ZodTypeAny, {
217
+ value?: string | undefined;
218
+ name?: string | undefined;
219
+ metadata?: {
220
+ tables: Record<string, Record<string, string>>;
221
+ tableNotes?: Record<string, string> | undefined;
222
+ databaseName?: string | undefined;
223
+ databaseType?: "postgresql" | "mysql" | "sqlite" | "mssql" | "oracle" | undefined;
224
+ rules?: {
225
+ id: string;
226
+ createdAt: string;
227
+ updatedAt: string;
228
+ text: string;
229
+ enabled: boolean;
230
+ }[] | undefined;
231
+ notes?: string | undefined;
232
+ tags?: string[] | undefined;
233
+ } | undefined;
234
+ skipValidation?: boolean | undefined;
235
+ credentialConfigurations?: Record<string, unknown> | undefined;
236
+ }, {
237
+ value?: string | undefined;
238
+ name?: string | undefined;
239
+ metadata?: {
240
+ tables: Record<string, Record<string, string>>;
241
+ tableNotes?: Record<string, string> | undefined;
242
+ databaseName?: string | undefined;
243
+ databaseType?: "postgresql" | "mysql" | "sqlite" | "mssql" | "oracle" | undefined;
244
+ rules?: {
245
+ id: string;
246
+ createdAt: string;
247
+ updatedAt: string;
248
+ text: string;
249
+ enabled: boolean;
250
+ }[] | undefined;
251
+ notes?: string | undefined;
252
+ tags?: string[] | undefined;
253
+ } | undefined;
254
+ skipValidation?: boolean | undefined;
255
+ credentialConfigurations?: Record<string, unknown> | undefined;
256
+ }>;
257
+ export declare const credentialResponseSchema: z.ZodObject<{
258
+ id: z.ZodNumber;
259
+ credentialType: z.ZodString;
260
+ name: z.ZodOptional<z.ZodString>;
261
+ metadata: z.ZodOptional<z.ZodObject<{
262
+ tables: z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>>;
263
+ tableNotes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
264
+ databaseName: z.ZodOptional<z.ZodString>;
265
+ databaseType: z.ZodOptional<z.ZodEnum<["postgresql", "mysql", "sqlite", "mssql", "oracle"]>>;
266
+ rules: z.ZodOptional<z.ZodArray<z.ZodObject<{
267
+ id: z.ZodString;
268
+ text: z.ZodString;
269
+ enabled: z.ZodBoolean;
270
+ createdAt: z.ZodString;
271
+ updatedAt: z.ZodString;
272
+ }, "strip", z.ZodTypeAny, {
273
+ id: string;
274
+ createdAt: string;
275
+ updatedAt: string;
276
+ text: string;
277
+ enabled: boolean;
278
+ }, {
279
+ id: string;
280
+ createdAt: string;
281
+ updatedAt: string;
282
+ text: string;
283
+ enabled: boolean;
284
+ }>, "many">>;
285
+ notes: z.ZodOptional<z.ZodString>;
286
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
287
+ }, "strip", z.ZodTypeAny, {
288
+ tables: Record<string, Record<string, string>>;
289
+ tableNotes?: Record<string, string> | undefined;
290
+ databaseName?: string | undefined;
291
+ databaseType?: "postgresql" | "mysql" | "sqlite" | "mssql" | "oracle" | undefined;
292
+ rules?: {
293
+ id: string;
294
+ createdAt: string;
295
+ updatedAt: string;
296
+ text: string;
297
+ enabled: boolean;
298
+ }[] | undefined;
299
+ notes?: string | undefined;
300
+ tags?: string[] | undefined;
301
+ }, {
302
+ tables: Record<string, Record<string, string>>;
303
+ tableNotes?: Record<string, string> | undefined;
304
+ databaseName?: string | undefined;
305
+ databaseType?: "postgresql" | "mysql" | "sqlite" | "mssql" | "oracle" | undefined;
306
+ rules?: {
307
+ id: string;
308
+ createdAt: string;
309
+ updatedAt: string;
310
+ text: string;
311
+ enabled: boolean;
312
+ }[] | undefined;
313
+ notes?: string | undefined;
314
+ tags?: string[] | undefined;
315
+ }>>;
316
+ createdAt: z.ZodString;
317
+ isOauth: z.ZodOptional<z.ZodBoolean>;
318
+ oauthProvider: z.ZodOptional<z.ZodString>;
319
+ oauthExpiresAt: z.ZodOptional<z.ZodString>;
320
+ oauthScopes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
321
+ oauthStatus: z.ZodOptional<z.ZodEnum<["active", "expired", "needs_refresh"]>>;
322
+ }, "strip", z.ZodTypeAny, {
323
+ id: number;
324
+ createdAt: string;
325
+ credentialType: string;
326
+ name?: string | undefined;
327
+ metadata?: {
328
+ tables: Record<string, Record<string, string>>;
329
+ tableNotes?: Record<string, string> | undefined;
330
+ databaseName?: string | undefined;
331
+ databaseType?: "postgresql" | "mysql" | "sqlite" | "mssql" | "oracle" | undefined;
332
+ rules?: {
333
+ id: string;
334
+ createdAt: string;
335
+ updatedAt: string;
336
+ text: string;
337
+ enabled: boolean;
338
+ }[] | undefined;
339
+ notes?: string | undefined;
340
+ tags?: string[] | undefined;
341
+ } | undefined;
342
+ isOauth?: boolean | undefined;
343
+ oauthProvider?: string | undefined;
344
+ oauthExpiresAt?: string | undefined;
345
+ oauthScopes?: string[] | undefined;
346
+ oauthStatus?: "active" | "expired" | "needs_refresh" | undefined;
347
+ }, {
348
+ id: number;
349
+ createdAt: string;
350
+ credentialType: string;
351
+ name?: string | undefined;
352
+ metadata?: {
353
+ tables: Record<string, Record<string, string>>;
354
+ tableNotes?: Record<string, string> | undefined;
355
+ databaseName?: string | undefined;
356
+ databaseType?: "postgresql" | "mysql" | "sqlite" | "mssql" | "oracle" | undefined;
357
+ rules?: {
358
+ id: string;
359
+ createdAt: string;
360
+ updatedAt: string;
361
+ text: string;
362
+ enabled: boolean;
363
+ }[] | undefined;
364
+ notes?: string | undefined;
365
+ tags?: string[] | undefined;
366
+ } | undefined;
367
+ isOauth?: boolean | undefined;
368
+ oauthProvider?: string | undefined;
369
+ oauthExpiresAt?: string | undefined;
370
+ oauthScopes?: string[] | undefined;
371
+ oauthStatus?: "active" | "expired" | "needs_refresh" | undefined;
372
+ }>;
373
+ export declare const createCredentialResponseSchema: z.ZodObject<{
374
+ id: z.ZodNumber;
375
+ message: z.ZodString;
376
+ }, "strip", z.ZodTypeAny, {
377
+ id: number;
378
+ message: string;
379
+ }, {
380
+ id: number;
381
+ message: string;
382
+ }>;
383
+ export declare const updateCredentialResponseSchema: z.ZodObject<{
384
+ id: z.ZodNumber;
385
+ message: z.ZodString;
386
+ }, "strip", z.ZodTypeAny, {
387
+ id: number;
388
+ message: string;
389
+ }, {
390
+ id: number;
391
+ message: string;
392
+ }>;
393
+ export declare const successMessageResponseSchema: z.ZodObject<{
394
+ message: z.ZodString;
395
+ }, "strip", z.ZodTypeAny, {
396
+ message: string;
397
+ }, {
398
+ message: string;
399
+ }>;
400
+ export type CreateCredentialRequest = z.infer<typeof createCredentialSchema>;
401
+ export type UpdateCredentialRequest = z.infer<typeof updateCredentialSchema>;
402
+ export type CredentialResponse = z.infer<typeof credentialResponseSchema>;
403
+ export type CreateCredentialResponse = z.infer<typeof createCredentialResponseSchema>;
404
+ export type UpdateCredentialResponse = z.infer<typeof updateCredentialResponseSchema>;
405
+ //# sourceMappingURL=credential-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential-schema.d.ts","sourceRoot":"","sources":["../src/credential-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAGtC;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAgB7D,CAAC;AAEF,+BAA+B;AAC/B,eAAO,MAAM,kBAAkB,qBAW7B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC,CAAC;IACxE,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9C;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,aAAa,EAAE,mBAAmB,CA6CtE,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,cAAc,GAC7B,aAAa,GAAG,IAAI,CAOtB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAEzE;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,UAAU,EAAE,cAAc,EAAE,CAiF1E,CAAC;AAGF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkDE,CAAC;AAGtC,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsCE,CAAC;AAEtC,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCL,CAAC;AAGjC,eAAO,MAAM,8BAA8B;;;;;;;;;EAKL,CAAC;AAGvC,eAAO,MAAM,8BAA8B;;;;;;;;;EAKL,CAAC;AAGvC,eAAO,MAAM,4BAA4B;;;;;;EAIL,CAAC;AAErC,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAC7E,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAC7E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAC5C,OAAO,8BAA8B,CACtC,CAAC;AACF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAC5C,OAAO,8BAA8B,CACtC,CAAC"}