@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,325 @@
1
+ /**
2
+ * Generate a UUID v4 compatible with both Node.js and browser environments
3
+ */
4
+ function generateUUID() {
5
+ // Use crypto.randomUUID if available (modern browsers and Node.js 14.17+)
6
+ if (typeof crypto !== 'undefined' && crypto.randomUUID) {
7
+ return crypto.randomUUID();
8
+ }
9
+ // Fallback for older environments
10
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
11
+ const r = (Math.random() * 16) | 0;
12
+ const v = c === 'x' ? r : (r & 0x3) | 0x8;
13
+ return v.toString(16);
14
+ });
15
+ }
16
+ /**
17
+ * Utility class for generating mock data from Zod schemas
18
+ * Useful for testing, development, and creating sample data
19
+ */
20
+ export class MockDataGenerator {
21
+ /**
22
+ * Generate a complete mock BubbleResult from a result schema
23
+ */
24
+ static generateMockResult(resultSchema) {
25
+ const mockData = this.generateMockFromSchema(resultSchema);
26
+ return {
27
+ success: true,
28
+ data: mockData,
29
+ executionId: generateUUID(),
30
+ error: '',
31
+ timestamp: new Date(),
32
+ };
33
+ }
34
+ /**
35
+ * Generate mock data from JSON Schema
36
+ * Converts JSON Schema to mock data with realistic values
37
+ */
38
+ static generateMockFromJsonSchema(jsonSchema) {
39
+ const mockData = {};
40
+ if (!jsonSchema || typeof jsonSchema !== 'object') {
41
+ return mockData;
42
+ }
43
+ // Handle object type with properties
44
+ if (jsonSchema.type === 'object' && jsonSchema.properties) {
45
+ const properties = jsonSchema.properties;
46
+ for (const [key, propertySchema] of Object.entries(properties)) {
47
+ if (propertySchema && typeof propertySchema === 'object') {
48
+ const value = this.generateMockValueFromJsonSchema(propertySchema);
49
+ if (value !== undefined) {
50
+ mockData[key] = value;
51
+ }
52
+ }
53
+ }
54
+ }
55
+ return mockData;
56
+ }
57
+ /**
58
+ * Generate a mock value for a specific JSON Schema property
59
+ */
60
+ static generateMockValueFromJsonSchema(schema) {
61
+ const type = schema.type;
62
+ switch (type) {
63
+ case 'string': {
64
+ if (schema.enum && Array.isArray(schema.enum)) {
65
+ return schema.enum[Math.floor(Math.random() * schema.enum.length)];
66
+ }
67
+ if (schema.format === 'email') {
68
+ return 'test@example.com';
69
+ }
70
+ if (schema.format === 'date-time') {
71
+ return new Date().toISOString();
72
+ }
73
+ if (schema.format === 'uuid') {
74
+ return generateUUID();
75
+ }
76
+ const minLength = typeof schema.minLength === 'number' ? schema.minLength : 1;
77
+ const maxLength = typeof schema.maxLength === 'number' ? schema.maxLength : 10;
78
+ const length = Math.floor(Math.random() * (maxLength - minLength + 1)) + minLength;
79
+ return ('sample_' +
80
+ Math.random()
81
+ .toString(36)
82
+ .substring(2, 2 + length));
83
+ }
84
+ case 'number':
85
+ case 'integer': {
86
+ const min = typeof schema.minimum === 'number' ? schema.minimum : 0;
87
+ const max = typeof schema.maximum === 'number' ? schema.maximum : 100;
88
+ const value = Math.random() * (max - min) + min;
89
+ return type === 'integer'
90
+ ? Math.floor(value)
91
+ : Math.round(value * 100) / 100;
92
+ }
93
+ case 'boolean': {
94
+ return Math.random() > 0.5;
95
+ }
96
+ case 'array': {
97
+ const items = schema.items;
98
+ if (items) {
99
+ const minItems = typeof schema.minItems === 'number' ? schema.minItems : 1;
100
+ const maxItems = typeof schema.maxItems === 'number' ? schema.maxItems : 3;
101
+ const length = Math.floor(Math.random() * (maxItems - minItems + 1)) + minItems;
102
+ return Array.from({ length }, () => this.generateMockValueFromJsonSchema(items));
103
+ }
104
+ return [];
105
+ }
106
+ case 'object': {
107
+ return this.generateMockFromJsonSchema(schema);
108
+ }
109
+ default: {
110
+ return null;
111
+ }
112
+ }
113
+ }
114
+ /**
115
+ * Generate mock data object from a Zod schema
116
+ * Recursively handles nested objects, arrays, and primitive types
117
+ */
118
+ static generateMockFromSchema(schema) {
119
+ const mockData = {};
120
+ if (!schema || typeof schema !== 'object' || !('shape' in schema)) {
121
+ return mockData;
122
+ }
123
+ const shape = schema.shape;
124
+ for (const [key, zodType] of Object.entries(shape)) {
125
+ if (key === 'success' || key === 'error') {
126
+ // Skip these as they're handled by the wrapper
127
+ continue;
128
+ }
129
+ if (zodType && typeof zodType === 'object' && '_def' in zodType) {
130
+ const value = this.generateMockValue(zodType);
131
+ if (value !== undefined) {
132
+ mockData[key] = value;
133
+ }
134
+ }
135
+ }
136
+ return mockData;
137
+ }
138
+ /**
139
+ * Generate a mock value for a specific Zod type
140
+ */
141
+ static generateMockValue(zodType) {
142
+ const def = zodType._def;
143
+ switch (def.typeName) {
144
+ case 'ZodString': {
145
+ return this.generateMockString(def);
146
+ }
147
+ case 'ZodNumber': {
148
+ return this.generateMockNumber(def);
149
+ }
150
+ case 'ZodBoolean': {
151
+ return Math.random() > 0.5;
152
+ }
153
+ case 'ZodDate': {
154
+ return new Date();
155
+ }
156
+ case 'ZodArray': {
157
+ const elementType = def.type;
158
+ if (elementType) {
159
+ const arrayLength = Math.floor(Math.random() * 3) + 1; // 1-3 elements
160
+ return Array.from({ length: arrayLength }, () => this.generateMockValue(elementType));
161
+ }
162
+ return [];
163
+ }
164
+ case 'ZodObject': {
165
+ if ('shape' in zodType) {
166
+ const nestedMock = {};
167
+ const shape = zodType.shape;
168
+ for (const [key, value] of Object.entries(shape)) {
169
+ if (value && typeof value === 'object' && '_def' in value) {
170
+ const nestedValue = this.generateMockValue(value);
171
+ if (nestedValue !== undefined) {
172
+ nestedMock[key] = nestedValue;
173
+ }
174
+ }
175
+ }
176
+ return nestedMock;
177
+ }
178
+ return {};
179
+ }
180
+ case 'ZodOptional': {
181
+ // 70% chance to include optional fields
182
+ if (Math.random() > 0.3) {
183
+ return this.generateMockValue(def.innerType);
184
+ }
185
+ return undefined;
186
+ }
187
+ case 'ZodDefault': {
188
+ // 50% chance to use default, 50% to generate mock value
189
+ if (Math.random() > 0.5) {
190
+ return def.defaultValue();
191
+ }
192
+ return this.generateMockValue(def.innerType);
193
+ }
194
+ case 'ZodEnum': {
195
+ const values = def.values;
196
+ return values[Math.floor(Math.random() * values.length)];
197
+ }
198
+ case 'ZodLiteral': {
199
+ return def.value;
200
+ }
201
+ case 'ZodUnion': {
202
+ const options = def.options;
203
+ const randomOption = options[Math.floor(Math.random() * options.length)];
204
+ return this.generateMockValue(randomOption);
205
+ }
206
+ case 'ZodDiscriminatedUnion': {
207
+ const discriminatedOptions = def.options;
208
+ const randomDiscriminatedOption = discriminatedOptions[Math.floor(Math.random() * discriminatedOptions.length)];
209
+ return this.generateMockValue(randomDiscriminatedOption);
210
+ }
211
+ case 'ZodRecord': {
212
+ const recordMock = {};
213
+ const numKeys = Math.floor(Math.random() * 3) + 1; // 1-3 keys
214
+ for (let i = 0; i < numKeys; i++) {
215
+ const key = `key${i + 1}`;
216
+ const value = this.generateMockValue(def.valueType);
217
+ if (value !== undefined) {
218
+ recordMock[key] = value;
219
+ }
220
+ }
221
+ return recordMock;
222
+ }
223
+ case 'ZodNullable': {
224
+ // 80% chance to have value, 20% chance to be null
225
+ if (Math.random() > 0.2) {
226
+ return this.generateMockValue(def.innerType);
227
+ }
228
+ return null;
229
+ }
230
+ default: {
231
+ // For unknown types, return a generic value
232
+ console.warn(`Unknown Zod type for mock generation: ${def.typeName}`);
233
+ return `mock_${def.typeName}`;
234
+ }
235
+ }
236
+ }
237
+ /**
238
+ * Generate mock string values with format-specific handling
239
+ */
240
+ static generateMockString(def) {
241
+ if (def.checks) {
242
+ for (const check of def.checks) {
243
+ switch (check.kind) {
244
+ case 'email': {
245
+ return 'test@example.com';
246
+ }
247
+ case 'url': {
248
+ return 'https://example.com';
249
+ }
250
+ case 'uuid': {
251
+ return generateUUID();
252
+ }
253
+ case 'regex': {
254
+ // For regex patterns, try to generate simple matching strings
255
+ const pattern = check.regex;
256
+ if (pattern.source.includes('\\d+')) {
257
+ return '12345';
258
+ }
259
+ if (pattern.source.includes('[a-z]')) {
260
+ return 'abcde';
261
+ }
262
+ return 'mock_regex_match';
263
+ }
264
+ case 'min': {
265
+ return 'a'.repeat(check.value);
266
+ }
267
+ case 'max': {
268
+ return 'mock'.substring(0, check.value);
269
+ }
270
+ }
271
+ }
272
+ }
273
+ return 'mock string';
274
+ }
275
+ /**
276
+ * Generate mock number values respecting constraints
277
+ */
278
+ static generateMockNumber(def) {
279
+ let min = 0;
280
+ let max = 100;
281
+ let isInt = false;
282
+ if (def.checks) {
283
+ for (const check of def.checks) {
284
+ switch (check.kind) {
285
+ case 'min': {
286
+ min = check.value;
287
+ break;
288
+ }
289
+ case 'max': {
290
+ max = check.value;
291
+ break;
292
+ }
293
+ case 'int': {
294
+ isInt = true;
295
+ break;
296
+ }
297
+ }
298
+ }
299
+ }
300
+ const value = Math.random() * (max - min) + min;
301
+ return isInt ? Math.floor(value) : Math.round(value * 100) / 100;
302
+ }
303
+ /**
304
+ * Generate mock data with custom seed for reproducible results
305
+ */
306
+ static generateMockWithSeed(resultSchema, seed) {
307
+ // Simple seeded random number generator
308
+ let currentSeed = seed;
309
+ const seededRandom = () => {
310
+ currentSeed = (currentSeed * 9301 + 49297) % 233280;
311
+ return currentSeed / 233280;
312
+ };
313
+ // Temporarily override Math.random
314
+ const originalRandom = Math.random;
315
+ Math.random = seededRandom;
316
+ try {
317
+ return this.generateMockResult(resultSchema);
318
+ }
319
+ finally {
320
+ // Restore original Math.random
321
+ Math.random = originalRandom;
322
+ }
323
+ }
324
+ }
325
+ //# sourceMappingURL=mock-data-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-data-generator.js","sourceRoot":"","sources":["../src/mock-data-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mock-data-generator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-data-generator.test.d.ts","sourceRoot":"","sources":["../src/mock-data-generator.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,176 @@
1
+ import { describe, test, expect } from 'vitest';
2
+ import { z } from 'zod';
3
+ import { MockDataGenerator } from './mock-data-generator.js';
4
+ describe('MockDataGenerator', () => {
5
+ describe('generateMockValue', () => {
6
+ test('should generate mock string values', () => {
7
+ const stringSchema = z.string();
8
+ const result = MockDataGenerator.generateMockValue(stringSchema);
9
+ expect(typeof result).toBe('string');
10
+ expect(result).toBe('mock string');
11
+ });
12
+ test('should generate mock email values', () => {
13
+ const emailSchema = z.string().email();
14
+ const result = MockDataGenerator.generateMockValue(emailSchema);
15
+ expect(typeof result).toBe('string');
16
+ expect(result).toBe('test@example.com');
17
+ });
18
+ test('should generate mock URL values', () => {
19
+ const urlSchema = z.string().url();
20
+ const result = MockDataGenerator.generateMockValue(urlSchema);
21
+ expect(typeof result).toBe('string');
22
+ expect(result).toBe('https://example.com');
23
+ });
24
+ test('should generate mock UUID values', () => {
25
+ const uuidSchema = z.string().uuid();
26
+ const result = MockDataGenerator.generateMockValue(uuidSchema);
27
+ expect(typeof result).toBe('string');
28
+ expect(result).toMatch(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i);
29
+ });
30
+ test('should generate mock number values', () => {
31
+ const numberSchema = z.number();
32
+ const result = MockDataGenerator.generateMockValue(numberSchema);
33
+ expect(typeof result).toBe('number');
34
+ expect(result).toBeGreaterThanOrEqual(0);
35
+ expect(result).toBeLessThanOrEqual(100);
36
+ });
37
+ test('should generate mock boolean values', () => {
38
+ const booleanSchema = z.boolean();
39
+ const result = MockDataGenerator.generateMockValue(booleanSchema);
40
+ expect(typeof result).toBe('boolean');
41
+ });
42
+ test('should generate mock array values', () => {
43
+ const arraySchema = z.array(z.string());
44
+ const result = MockDataGenerator.generateMockValue(arraySchema);
45
+ expect(Array.isArray(result)).toBe(true);
46
+ expect(result.length).toBeGreaterThan(0);
47
+ expect(result.every((item) => typeof item === 'string')).toBe(true);
48
+ });
49
+ test('should generate mock object values', () => {
50
+ const objectSchema = z.object({
51
+ name: z.string(),
52
+ age: z.number(),
53
+ isActive: z.boolean(),
54
+ });
55
+ const result = MockDataGenerator.generateMockValue(objectSchema);
56
+ expect(typeof result).toBe('object');
57
+ expect(result).toHaveProperty('name');
58
+ expect(result).toHaveProperty('age');
59
+ expect(result).toHaveProperty('isActive');
60
+ expect(typeof result.name).toBe('string');
61
+ expect(typeof result.age).toBe('number');
62
+ expect(typeof result.isActive).toBe('boolean');
63
+ });
64
+ test('should handle optional fields', () => {
65
+ const optionalSchema = z.string().optional();
66
+ const result = MockDataGenerator.generateMockValue(optionalSchema);
67
+ expect(result === undefined || typeof result === 'string').toBe(true);
68
+ });
69
+ test('should handle enum values', () => {
70
+ const enumSchema = z.enum(['option1', 'option2', 'option3']);
71
+ const result = MockDataGenerator.generateMockValue(enumSchema);
72
+ expect(['option1', 'option2', 'option3']).toContain(result);
73
+ });
74
+ test('should handle literal values', () => {
75
+ const literalSchema = z.literal('exact_value');
76
+ const result = MockDataGenerator.generateMockValue(literalSchema);
77
+ expect(result).toBe('exact_value');
78
+ });
79
+ });
80
+ describe('generateMockFromSchema', () => {
81
+ test('should generate mock data from complex schema', () => {
82
+ const complexSchema = z.object({
83
+ id: z.string().uuid(),
84
+ user: z.object({
85
+ name: z.string(),
86
+ email: z.string().email(),
87
+ age: z.number().min(18).max(100),
88
+ }),
89
+ tags: z.array(z.string()),
90
+ isActive: z.boolean(),
91
+ metadata: z.record(z.string()),
92
+ success: z.boolean(), // Should be skipped
93
+ error: z.string(), // Should be skipped
94
+ });
95
+ const result = MockDataGenerator.generateMockFromSchema(complexSchema);
96
+ // Verify structure
97
+ expect(result).toHaveProperty('id');
98
+ expect(result).toHaveProperty('user');
99
+ expect(result).toHaveProperty('tags');
100
+ expect(result).toHaveProperty('isActive');
101
+ expect(result).toHaveProperty('metadata');
102
+ // Should not include success/error as they're skipped
103
+ expect(result).not.toHaveProperty('success');
104
+ expect(result).not.toHaveProperty('error');
105
+ // Verify types
106
+ expect(typeof result.id).toBe('string');
107
+ expect(typeof result.user).toBe('object');
108
+ expect(Array.isArray(result.tags)).toBe(true);
109
+ expect(typeof result.isActive).toBe('boolean');
110
+ expect(typeof result.metadata).toBe('object');
111
+ // Verify nested user object
112
+ const user = result.user;
113
+ expect(user).toHaveProperty('name');
114
+ expect(user).toHaveProperty('email');
115
+ expect(user).toHaveProperty('age');
116
+ expect(typeof user.name).toBe('string');
117
+ expect(typeof user.email).toBe('string');
118
+ expect(typeof user.age).toBe('number');
119
+ expect(user.age).toBeGreaterThanOrEqual(18);
120
+ expect(user.age).toBeLessThanOrEqual(100);
121
+ });
122
+ });
123
+ describe('generateMockResult', () => {
124
+ test('should generate complete BubbleResult', () => {
125
+ const resultSchema = z.object({
126
+ greeting: z.string(),
127
+ count: z.number(),
128
+ success: z.boolean(),
129
+ error: z.string(),
130
+ });
131
+ const result = MockDataGenerator.generateMockResult(resultSchema);
132
+ // Verify BubbleResult structure
133
+ expect(result).toHaveProperty('success');
134
+ expect(result).toHaveProperty('data');
135
+ expect(result).toHaveProperty('executionId');
136
+ expect(result).toHaveProperty('error');
137
+ expect(result).toHaveProperty('timestamp');
138
+ expect(result.success).toBe(true);
139
+ expect(typeof result.executionId).toBe('string');
140
+ expect(result.error).toBe('');
141
+ expect(result.timestamp).toBeInstanceOf(Date);
142
+ // Verify data structure
143
+ const data = result.data;
144
+ expect(data).toHaveProperty('greeting');
145
+ expect(data).toHaveProperty('count');
146
+ expect(typeof data.greeting).toBe('string');
147
+ expect(typeof data.count).toBe('number');
148
+ });
149
+ });
150
+ describe('generateMockWithSeed', () => {
151
+ test('should generate reproducible results with same seed', () => {
152
+ const resultSchema = z.object({
153
+ name: z.string(),
154
+ value: z.number(),
155
+ });
156
+ const result1 = MockDataGenerator.generateMockWithSeed(resultSchema, 12345);
157
+ const result2 = MockDataGenerator.generateMockWithSeed(resultSchema, 12345);
158
+ expect(result1.data).toEqual(result2.data);
159
+ });
160
+ test('should generate different results with different seeds', () => {
161
+ const resultSchema = z.object({
162
+ name: z.string(),
163
+ value: z.number(),
164
+ });
165
+ const result1 = MockDataGenerator.generateMockWithSeed(resultSchema, 12345);
166
+ const result2 = MockDataGenerator.generateMockWithSeed(resultSchema, 54321);
167
+ // Results should have same structure but different values
168
+ expect(result1.data).not.toEqual(result2.data);
169
+ expect(typeof result1.data.name).toBe('string');
170
+ expect(typeof result1.data.value).toBe('number');
171
+ expect(typeof result2.data.name).toBe('string');
172
+ expect(typeof result2.data.value).toBe('number');
173
+ });
174
+ });
175
+ });
176
+ //# sourceMappingURL=mock-data-generator.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-data-generator.test.js","sourceRoot":"","sources":["../src/mock-data-generator.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import { z } from '@hono/zod-openapi';
2
+ import { CredentialType } from './types';
3
+ export declare const oauthInitiateRequestSchema: z.ZodObject<{
4
+ credentialType: z.ZodNativeEnum<typeof CredentialType>;
5
+ name: z.ZodOptional<z.ZodString>;
6
+ scopes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
7
+ }, "strip", z.ZodTypeAny, {
8
+ credentialType: CredentialType;
9
+ name?: string | undefined;
10
+ scopes?: string[] | undefined;
11
+ }, {
12
+ credentialType: CredentialType;
13
+ name?: string | undefined;
14
+ scopes?: string[] | undefined;
15
+ }>;
16
+ export declare const oauthInitiateResponseSchema: z.ZodObject<{
17
+ authUrl: z.ZodString;
18
+ state: z.ZodString;
19
+ }, "strip", z.ZodTypeAny, {
20
+ authUrl: string;
21
+ state: string;
22
+ }, {
23
+ authUrl: string;
24
+ state: string;
25
+ }>;
26
+ export declare const oauthCallbackRequestSchema: z.ZodObject<{
27
+ code: z.ZodString;
28
+ state: z.ZodString;
29
+ name: z.ZodString;
30
+ description: z.ZodOptional<z.ZodString>;
31
+ }, "strip", z.ZodTypeAny, {
32
+ code: string;
33
+ name: string;
34
+ state: string;
35
+ description?: string | undefined;
36
+ }, {
37
+ code: string;
38
+ name: string;
39
+ state: string;
40
+ description?: string | undefined;
41
+ }>;
42
+ export declare const oauthTokenRefreshResponseSchema: z.ZodObject<{
43
+ message: z.ZodString;
44
+ }, "strip", z.ZodTypeAny, {
45
+ message: string;
46
+ }, {
47
+ message: string;
48
+ }>;
49
+ export declare const oauthRevokeResponseSchema: z.ZodObject<{
50
+ message: z.ZodString;
51
+ }, "strip", z.ZodTypeAny, {
52
+ message: string;
53
+ }, {
54
+ message: string;
55
+ }>;
56
+ export type OAuthInitiateRequest = z.infer<typeof oauthInitiateRequestSchema>;
57
+ export type OAuthInitiateResponse = z.infer<typeof oauthInitiateResponseSchema>;
58
+ export type OAuthCallbackRequest = z.infer<typeof oauthCallbackRequestSchema>;
59
+ export type OAuthTokenRefreshResponse = z.infer<typeof oauthTokenRefreshResponseSchema>;
60
+ export type OAuthRevokeResponse = z.infer<typeof oauthRevokeResponseSchema>;
61
+ //# sourceMappingURL=oauth-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-schema.d.ts","sourceRoot":"","sources":["../src/oauth-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,eAAO,MAAM,0BAA0B;;;;;;;;;;;;EAmBL,CAAC;AAGnC,eAAO,MAAM,2BAA2B;;;;;;;;;EAWL,CAAC;AAGpC,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;EAkBL,CAAC;AAGnC,eAAO,MAAM,+BAA+B;;;;;;EAOL,CAAC;AAGxC,eAAO,MAAM,yBAAyB;;;;;;EAOL,CAAC;AAGlC,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,+BAA+B,CACvC,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}