@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.
- package/LICENSE.txt +202 -0
- package/README.md +138 -0
- package/dist/api-schema.d.ts +38 -0
- package/dist/api-schema.d.ts.map +1 -0
- package/dist/api-schema.js +26 -0
- package/dist/api-schema.js.map +1 -0
- package/dist/bubble-definition-schema.d.ts +242 -0
- package/dist/bubble-definition-schema.d.ts.map +1 -0
- package/dist/bubble-definition-schema.js +95 -0
- package/dist/bubble-definition-schema.js.map +1 -0
- package/dist/bubbleflow-execution-schema.d.ts +580 -0
- package/dist/bubbleflow-execution-schema.d.ts.map +1 -0
- package/dist/bubbleflow-execution-schema.js +230 -0
- package/dist/bubbleflow-execution-schema.js.map +1 -0
- package/dist/bubbleflow-schema.d.ts +785 -0
- package/dist/bubbleflow-schema.d.ts.map +1 -0
- package/dist/bubbleflow-schema.js +206 -0
- package/dist/bubbleflow-schema.js.map +1 -0
- package/dist/credential-schema.d.ts +405 -0
- package/dist/credential-schema.d.ts.map +1 -0
- package/dist/credential-schema.js +327 -0
- package/dist/credential-schema.js.map +1 -0
- package/dist/database-definition-schema.d.ts +97 -0
- package/dist/database-definition-schema.d.ts.map +1 -0
- package/dist/database-definition-schema.js +36 -0
- package/dist/database-definition-schema.js.map +1 -0
- package/dist/generate-bubbleflow-schema.d.ts +481 -0
- package/dist/generate-bubbleflow-schema.d.ts.map +1 -0
- package/dist/generate-bubbleflow-schema.js +247 -0
- package/dist/generate-bubbleflow-schema.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/mock-data-generator.d.ts +51 -0
- package/dist/mock-data-generator.d.ts.map +1 -0
- package/dist/mock-data-generator.js +325 -0
- package/dist/mock-data-generator.js.map +1 -0
- package/dist/mock-data-generator.test.d.ts +2 -0
- package/dist/mock-data-generator.test.d.ts.map +1 -0
- package/dist/mock-data-generator.test.js +176 -0
- package/dist/mock-data-generator.test.js.map +1 -0
- package/dist/oauth-schema.d.ts +61 -0
- package/dist/oauth-schema.d.ts.map +1 -0
- package/dist/oauth-schema.js +75 -0
- package/dist/oauth-schema.js.map +1 -0
- package/dist/prompts.d.ts +12 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +40 -0
- package/dist/prompts.js.map +1 -0
- package/dist/routes.d.ts +2207 -0
- package/dist/routes.d.ts.map +1 -0
- package/dist/routes.js +978 -0
- package/dist/routes.js.map +1 -0
- package/dist/streaming-events.d.ts +35 -0
- package/dist/streaming-events.d.ts.map +1 -0
- package/dist/streaming-events.js +5 -0
- package/dist/streaming-events.js.map +1 -0
- package/dist/subscription-status-schema.d.ts +90 -0
- package/dist/subscription-status-schema.d.ts.map +1 -0
- package/dist/subscription-status-schema.js +66 -0
- package/dist/subscription-status-schema.js.map +1 -0
- package/dist/types.d.ts +19 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +27 -0
- package/dist/types.js.map +1 -0
- package/dist/waitlist-schema.d.ts +30 -0
- package/dist/waitlist-schema.d.ts.map +1 -0
- package/dist/waitlist-schema.js +39 -0
- package/dist/waitlist-schema.js.map +1 -0
- package/dist/webhook-schema.d.ts +95 -0
- package/dist/webhook-schema.d.ts.map +1 -0
- package/dist/webhook-schema.js +50 -0
- package/dist/webhook-schema.js.map +1 -0
- 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 @@
|
|
|
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"}
|