@orval/mock 8.0.0-rc.2 → 8.0.0-rc.3

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/dist/index.d.mts CHANGED
@@ -4,9 +4,9 @@ import { GenerateMockImports, GeneratorOptions, GeneratorVerbOptions, GlobalMock
4
4
  //#region src/index.d.ts
5
5
  declare const DEFAULT_MOCK_OPTIONS: GlobalMockOptions;
6
6
  declare const generateMockImports: GenerateMockImports;
7
- declare const generateMock: (generatorVerbOptions: GeneratorVerbOptions, generatorOptions: Omit<GeneratorOptions, "mock"> & {
7
+ declare function generateMock(generatorVerbOptions: GeneratorVerbOptions, generatorOptions: Omit<GeneratorOptions, 'mock'> & {
8
8
  mock: GlobalMockOptions;
9
- }) => _orval_core0.ClientMockGeneratorBuilder;
9
+ }): _orval_core0.ClientMockGeneratorBuilder;
10
10
  //#endregion
11
11
  export { DEFAULT_MOCK_OPTIONS, generateMock, generateMockImports };
12
12
  //# sourceMappingURL=index.d.mts.map
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { EnumGeneration, PropertySortOrder, camel, compareVersions, escape, generalJSTypesWithArray, generateDependencyImports, getKey, getRefInfo, isBoolean, isFunction, isObject, isReference, isRootKey, isSchema, mergeDeep, pascal, resolveRef, sanitize, stringify } from "@orval/core";
1
+ import { EnumGeneration, PropertySortOrder, camel, compareVersions, escape, generalJSTypesWithArray, generateDependencyImports, getKey, getRefInfo, isBoolean, isFunction, isObject, isReference, isSchema, mergeDeep, pascal, resolveRef, sanitize, stringify } from "@orval/core";
2
2
 
3
3
  //#region src/delay.ts
4
4
  const getDelay = (override, options) => {
@@ -69,7 +69,7 @@ const DEFAULT_OBJECT_KEY_MOCK = "faker.string.alphanumeric(5)";
69
69
  //#endregion
70
70
  //#region src/faker/getters/object.ts
71
71
  const overrideVarName = "overrideResponse";
72
- const getMockObject = ({ item, mockOptions, operationId, tags, combine, context, imports, existingReferencedProperties, splitMockImplementations, allowOverride = false }) => {
72
+ function getMockObject({ item, mockOptions, operationId, tags, combine, context, imports, existingReferencedProperties, splitMockImplementations, allowOverride = false }) {
73
73
  if (isReference(item)) return resolveMockValue({
74
74
  schema: {
75
75
  ...item,
@@ -119,7 +119,7 @@ const getMockObject = ({ item, mockOptions, operationId, tags, combine, context,
119
119
  if (context.output.propertySortOrder === PropertySortOrder.ALPHABETICAL) entries.sort((a, b) => {
120
120
  return a[0].localeCompare(b[0]);
121
121
  });
122
- const properyScalars = entries.map(([key, prop]) => {
122
+ const propertyScalars = entries.map(([key, prop]) => {
123
123
  if (combine?.includedProperties.includes(key)) return;
124
124
  const isRequired = mockOptions?.required ?? (Array.isArray(item.required) ? item.required : []).includes(key);
125
125
  if ("$ref" in prop && existingReferencedProperties.includes(pascal(prop.$ref.split("/").pop() ?? ""))) return;
@@ -141,10 +141,11 @@ const getMockObject = ({ item, mockOptions, operationId, tags, combine, context,
141
141
  includedProperties.push(key);
142
142
  const keyDefinition = getKey(key);
143
143
  if (!isRequired && !resolvedValue.overrided) return `${keyDefinition}: faker.helpers.arrayElement([${resolvedValue.value}, undefined])`;
144
+ if (Array.isArray(prop.type) && prop.type.includes("null") && !resolvedValue.overrided) return `${keyDefinition}: faker.helpers.arrayElement([${resolvedValue.value}, null])`;
144
145
  return `${keyDefinition}: ${resolvedValue.value}`;
145
146
  }).filter(Boolean);
146
- if (allowOverride) properyScalars.push(`...${overrideVarName}`);
147
- value += properyScalars.join(", ");
147
+ if (allowOverride) propertyScalars.push(`...${overrideVarName}`);
148
+ value += propertyScalars.join(", ");
148
149
  value += !combine || combine.separator === "oneOf" || combine.separator === "anyOf" ? "}" : "";
149
150
  return {
150
151
  value,
@@ -190,11 +191,11 @@ const getMockObject = ({ item, mockOptions, operationId, tags, combine, context,
190
191
  imports: [],
191
192
  name: item.name
192
193
  };
193
- };
194
+ }
194
195
 
195
196
  //#endregion
196
197
  //#region src/faker/getters/scalar.ts
197
- const getMockScalar = ({ item, imports, mockOptions, operationId, tags, combine, context, existingReferencedProperties, splitMockImplementations, allowOverride = false }) => {
198
+ function getMockScalar({ item, imports, mockOptions, operationId, tags, combine, context, existingReferencedProperties, splitMockImplementations, allowOverride = false }) {
198
199
  if (item.isRef) existingReferencedProperties = [...existingReferencedProperties, item.name];
199
200
  const operationProperty = resolveMockOverride(mockOptions?.operations?.[operationId]?.properties, item);
200
201
  if (operationProperty) return operationProperty;
@@ -214,11 +215,12 @@ const getMockScalar = ({ item, imports, mockOptions, operationId, tags, combine,
214
215
  ...DEFAULT_FORMAT_MOCK,
215
216
  ...mockOptions?.format
216
217
  };
218
+ const isNullable = Array.isArray(item.type) && item.type.includes("null");
217
219
  if (item.format && ALL_FORMAT[item.format]) {
218
220
  let value = ALL_FORMAT[item.format];
219
221
  if (["date", "date-time"].includes(item.format) && context.output.override.useDates) value = `new Date(${value})`;
220
222
  return {
221
- value: getNullable(value, item.nullable),
223
+ value: getNullable(value, isNullable),
222
224
  imports: [],
223
225
  name: item.name,
224
226
  overrided: false
@@ -229,8 +231,8 @@ const getMockScalar = ({ item, imports, mockOptions, operationId, tags, combine,
229
231
  switch (type) {
230
232
  case "number":
231
233
  case "integer": {
232
- let value = getNullable(`faker.number.${context.output.override.useBigInt && (item.format === "int64" || item.format === "uint64") ? "bigInt" : "int"}({min: ${item.minimum ?? mockOptions?.numberMin}, max: ${item.maximum ?? mockOptions?.numberMax}${isFakerV9 && item.multipleOf !== void 0 ? `, multipleOf: ${item.multipleOf}` : ""}})`, item.nullable);
233
- if (type === "number") value = getNullable(`faker.number.float({min: ${item.minimum ?? mockOptions?.numberMin}, max: ${item.maximum ?? mockOptions?.numberMax}${isFakerV9 && item.multipleOf !== void 0 ? `, multipleOf: ${item.multipleOf}` : `, fractionDigits: ${mockOptions?.fractionDigits}`}})`, item.nullable);
234
+ let value = getNullable(`faker.number.${context.output.override.useBigInt && (item.format === "int64" || item.format === "uint64") ? "bigInt" : "int"}({min: ${item.exclusiveMinimum ?? item.minimum ?? mockOptions?.numberMin}, max: ${item.exclusiveMaximum ?? item.maximum ?? mockOptions?.numberMax}${isFakerV9 && item.multipleOf !== void 0 ? `, multipleOf: ${item.multipleOf}` : ""}})`, isNullable);
235
+ if (type === "number") value = getNullable(`faker.number.float({min: ${item.exclusiveMinimum ?? item.minimum ?? mockOptions?.numberMin}, max: ${item.exclusiveMaximum ?? item.maximum ?? mockOptions?.numberMax}${isFakerV9 && item.multipleOf !== void 0 ? `, multipleOf: ${item.multipleOf}` : `, fractionDigits: ${mockOptions?.fractionDigits}`}})`, isNullable);
234
236
  const numberImports = [];
235
237
  if (item.enum) value = getEnum(item, numberImports, context, existingReferencedProperties, "number");
236
238
  else if ("const" in item && typeof item.const === "string") value = item.const;
@@ -296,7 +298,7 @@ const getMockScalar = ({ item, imports, mockOptions, operationId, tags, combine,
296
298
  else if (item.pattern) value = `faker.helpers.fromRegExp('${item.pattern}')`;
297
299
  else if ("const" in item) value = `'${item.const}'`;
298
300
  return {
299
- value: getNullable(value, item.nullable),
301
+ value: getNullable(value, isNullable),
300
302
  enums: item.enum,
301
303
  name: item.name,
302
304
  imports: stringImports
@@ -333,8 +335,12 @@ const getMockScalar = ({ item, imports, mockOptions, operationId, tags, combine,
333
335
  allowOverride
334
336
  });
335
337
  }
336
- };
338
+ }
337
339
  function getItemType(item) {
340
+ if (Array.isArray(item.type) && item.type.includes("null")) {
341
+ const typesWithoutNull = item.type.filter((x) => x !== "null");
342
+ return typesWithoutNull.length === 1 ? typesWithoutNull[0] : typesWithoutNull;
343
+ }
338
344
  if (item.type) return item.type;
339
345
  if (!item.enum) return;
340
346
  const uniqTypes = new Set(item.enum.map((value) => typeof value));
@@ -343,39 +349,34 @@ function getItemType(item) {
343
349
  if (!type) return;
344
350
  return ["string", "number"].includes(type) ? type : void 0;
345
351
  }
346
- const getEnum = (item, imports, context, existingReferencedProperties, type) => {
352
+ function getEnum(item, imports, context, existingReferencedProperties, type) {
347
353
  if (!item.enum) return "";
348
354
  let enumValue = `[${item.enum.filter((e$1) => e$1 !== null).map((e$1) => type === "string" || type === void 0 && typeof e$1 === "string" ? `'${escape(e$1)}'` : e$1).join(",")}]`;
349
355
  if (context.output.override.enumGenerationType === EnumGeneration.ENUM) if (item.isRef || existingReferencedProperties.length === 0) {
350
356
  enumValue += ` as ${item.name}${item.name.endsWith("[]") ? "" : "[]"}`;
351
- imports.push({
352
- name: item.name,
353
- ...isRootKey(context.specKey, context.target) ? {} : { specKey: context.specKey }
354
- });
357
+ imports.push({ name: item.name });
355
358
  } else {
356
359
  enumValue += ` as ${existingReferencedProperties[existingReferencedProperties.length - 1]}['${item.name}']`;
357
360
  if (!item.path?.endsWith("[]")) enumValue += "[]";
358
- imports.push({
359
- name: existingReferencedProperties[existingReferencedProperties.length - 1],
360
- ...isRootKey(context.specKey, context.target) ? {} : { specKey: context.specKey }
361
- });
361
+ imports.push({ name: existingReferencedProperties[existingReferencedProperties.length - 1] });
362
362
  }
363
363
  else enumValue += " as const";
364
364
  if (item.isRef && type === "string") {
365
365
  enumValue = `Object.values(${item.name})`;
366
366
  imports.push({
367
367
  name: item.name,
368
- values: true,
369
- ...isRootKey(context.specKey, context.target) ? {} : { specKey: context.specKey }
368
+ values: true
370
369
  });
371
370
  }
372
371
  return item.path?.endsWith("[]") ? `faker.helpers.arrayElements(${enumValue})` : `faker.helpers.arrayElement(${enumValue})`;
373
- };
372
+ }
374
373
 
375
374
  //#endregion
376
375
  //#region src/faker/resolvers/value.ts
377
- const isRegex = (key) => key.startsWith("/") && key.endsWith("/");
378
- const resolveMockOverride = (properties = {}, item) => {
376
+ function isRegex(key) {
377
+ return key.startsWith("/") && key.endsWith("/");
378
+ }
379
+ function resolveMockOverride(properties = {}, item) {
379
380
  const path = item.path ?? `#.${item.name}`;
380
381
  const property = Object.entries(properties).find(([key]) => {
381
382
  if (isRegex(key)) {
@@ -386,18 +387,21 @@ const resolveMockOverride = (properties = {}, item) => {
386
387
  return false;
387
388
  });
388
389
  if (!property) return;
390
+ const isNullable = Array.isArray(item.type) && item.type.includes("null");
389
391
  return {
390
- value: getNullable(property[1], item.nullable),
392
+ value: getNullable(property[1], isNullable),
391
393
  imports: [],
392
394
  name: item.name,
393
395
  overrided: true
394
396
  };
395
- };
396
- const getNullable = (value, nullable) => nullable ? `faker.helpers.arrayElement([${value}, null])` : value;
397
- const resolveMockValue = ({ schema, mockOptions, operationId, tags, combine, context, imports, existingReferencedProperties, splitMockImplementations, allowOverride }) => {
397
+ }
398
+ function getNullable(value, nullable) {
399
+ return nullable ? `faker.helpers.arrayElement([${value}, null])` : value;
400
+ }
401
+ function resolveMockValue({ schema, mockOptions, operationId, tags, combine, context, imports, existingReferencedProperties, splitMockImplementations, allowOverride }) {
398
402
  if (isReference(schema)) {
399
- const { originalName, specKey = context.specKey, refPaths } = getRefInfo(schema.$ref, context);
400
- const schemaRef = Array.isArray(refPaths) ? e(context.specs[specKey], ...refPaths) : void 0;
403
+ const { originalName, refPaths } = getRefInfo(schema.$ref, context);
404
+ const schemaRef = Array.isArray(refPaths) ? e(context.spec, ...refPaths) : void 0;
401
405
  const newSchema = {
402
406
  ...schemaRef,
403
407
  name: pascal(originalName),
@@ -415,10 +419,7 @@ const resolveMockValue = ({ schema, mockOptions, operationId, tags, combine, con
415
419
  separator: combine.separator === "anyOf" ? newSeparator : combine.separator,
416
420
  includedProperties: newSeparator === "allOf" ? [] : combine.includedProperties
417
421
  } : void 0,
418
- context: {
419
- ...context,
420
- specKey
421
- },
422
+ context,
422
423
  imports,
423
424
  existingReferencedProperties,
424
425
  splitMockImplementations,
@@ -434,10 +435,7 @@ const resolveMockValue = ({ schema, mockOptions, operationId, tags, combine, con
434
435
  splitMockImplementations.push(func);
435
436
  }
436
437
  scalar.value = newSchema.nullable ? `${funcName}()` : `{...${funcName}()}`;
437
- scalar.imports.push({
438
- name: newSchema.name,
439
- specKey: isRootKey(specKey, context.target) ? void 0 : specKey
440
- });
438
+ scalar.imports.push({ name: newSchema.name });
441
439
  }
442
440
  return {
443
441
  ...scalar,
@@ -459,14 +457,14 @@ const resolveMockValue = ({ schema, mockOptions, operationId, tags, combine, con
459
457
  }),
460
458
  type: getType(schema)
461
459
  };
462
- };
463
- const getType = (schema) => {
460
+ }
461
+ function getType(schema) {
464
462
  return schema.type ?? (schema.properties ? "object" : schema.items ? "array" : void 0);
465
- };
463
+ }
466
464
 
467
465
  //#endregion
468
466
  //#region src/faker/getters/combine.ts
469
- const combineSchemasMock = ({ item, separator, mockOptions, operationId, tags, combine, context, imports, existingReferencedProperties, splitMockImplementations }) => {
467
+ function combineSchemasMock({ item, separator, mockOptions, operationId, tags, combine, context, imports, existingReferencedProperties, splitMockImplementations }) {
470
468
  const combineImports = [];
471
469
  const includedProperties = [...combine?.includedProperties ?? []];
472
470
  const itemResolvedValue = isReference(item) && !existingReferencedProperties.includes(item.name) || item.properties ? resolveMockValue({
@@ -542,7 +540,7 @@ const combineSchemasMock = ({ item, separator, mockOptions, operationId, tags, c
542
540
  name: item.name,
543
541
  includedProperties
544
542
  };
545
- };
543
+ }
546
544
 
547
545
  //#endregion
548
546
  //#region src/faker/getters/route.ts
@@ -571,39 +569,43 @@ const getRouteMSW = (route, baseUrl = "*") => {
571
569
 
572
570
  //#endregion
573
571
  //#region src/msw/mocks.ts
574
- const getMockPropertiesWithoutFunc = (properties, spec) => Object.entries(isFunction(properties) ? properties(spec) : properties).reduce((acc, [key, value]) => {
575
- acc[key] = (isFunction(value) ? `(${value})()` : stringify(value)).replaceAll(/import_faker\.defaults|import_faker\.faker|_faker\.faker/g, "faker");
576
- return acc;
577
- }, {});
578
- const getMockWithoutFunc = (spec, override) => ({
579
- arrayMin: override?.mock?.arrayMin,
580
- arrayMax: override?.mock?.arrayMax,
581
- stringMin: override?.mock?.stringMin,
582
- stringMax: override?.mock?.stringMax,
583
- numberMin: override?.mock?.numberMin,
584
- numberMax: override?.mock?.numberMax,
585
- required: override?.mock?.required,
586
- fractionDigits: override?.mock?.fractionDigits,
587
- ...override?.mock?.properties ? { properties: getMockPropertiesWithoutFunc(override.mock.properties, spec) } : {},
588
- ...override?.mock?.format ? { format: getMockPropertiesWithoutFunc(override.mock.format, spec) } : {},
589
- ...override?.operations ? { operations: Object.entries(override.operations).reduce((acc, [key, value]) => {
590
- if (value?.mock?.properties) acc[key] = { properties: getMockPropertiesWithoutFunc(value.mock.properties, spec) };
572
+ function getMockPropertiesWithoutFunc(properties, spec) {
573
+ return Object.entries(isFunction(properties) ? properties(spec) : properties).reduce((acc, [key, value]) => {
574
+ acc[key] = (isFunction(value) ? `(${value})()` : stringify(value)).replaceAll(/import_faker\.defaults|import_faker\.faker|_faker\.faker/g, "faker");
591
575
  return acc;
592
- }, {}) } : {},
593
- ...override?.tags ? { tags: Object.entries(override.tags).reduce((acc, [key, value]) => {
594
- if (value?.mock?.properties) acc[key] = { properties: getMockPropertiesWithoutFunc(value.mock.properties, spec) };
595
- return acc;
596
- }, {}) } : {}
597
- });
598
- const getMockScalarJsTypes = (definition, mockOptionsWithoutFunc) => {
576
+ }, {});
577
+ }
578
+ function getMockWithoutFunc(spec, override) {
579
+ return {
580
+ arrayMin: override?.mock?.arrayMin,
581
+ arrayMax: override?.mock?.arrayMax,
582
+ stringMin: override?.mock?.stringMin,
583
+ stringMax: override?.mock?.stringMax,
584
+ numberMin: override?.mock?.numberMin,
585
+ numberMax: override?.mock?.numberMax,
586
+ required: override?.mock?.required,
587
+ fractionDigits: override?.mock?.fractionDigits,
588
+ ...override?.mock?.properties ? { properties: getMockPropertiesWithoutFunc(override.mock.properties, spec) } : {},
589
+ ...override?.mock?.format ? { format: getMockPropertiesWithoutFunc(override.mock.format, spec) } : {},
590
+ ...override?.operations ? { operations: Object.entries(override.operations).reduce((acc, [key, value]) => {
591
+ if (value?.mock?.properties) acc[key] = { properties: getMockPropertiesWithoutFunc(value.mock.properties, spec) };
592
+ return acc;
593
+ }, {}) } : {},
594
+ ...override?.tags ? { tags: Object.entries(override.tags).reduce((acc, [key, value]) => {
595
+ if (value?.mock?.properties) acc[key] = { properties: getMockPropertiesWithoutFunc(value.mock.properties, spec) };
596
+ return acc;
597
+ }, {}) } : {}
598
+ };
599
+ }
600
+ function getMockScalarJsTypes(definition, mockOptionsWithoutFunc) {
599
601
  const isArray = definition.endsWith("[]");
600
602
  switch (isArray ? definition.slice(0, -2) : definition) {
601
603
  case "number": return isArray ? `Array.from({length: faker.number.int({min: ${mockOptionsWithoutFunc.arrayMin}, max: ${mockOptionsWithoutFunc.arrayMax}})}, () => faker.number.int())` : "faker.number.int()";
602
604
  case "string": return isArray ? `Array.from({length: faker.number.int({min: ${mockOptionsWithoutFunc?.arrayMin},max: ${mockOptionsWithoutFunc?.arrayMax}})}, () => faker.word.sample())` : "faker.word.sample()";
603
605
  default: return "undefined";
604
606
  }
605
- };
606
- const getResponsesMockDefinition = ({ operationId, tags, returnType, responses, imports: responseImports, mockOptionsWithoutFunc, transformer, context, mockOptions, splitMockImplementations }) => {
607
+ }
608
+ function getResponsesMockDefinition({ operationId, tags, returnType, responses, imports: responseImports, mockOptionsWithoutFunc, transformer, context, mockOptions, splitMockImplementations }) {
607
609
  return responses.reduce((acc, { value: definition, originalSchema, example, examples, imports, isRef }) => {
608
610
  if (context.output.override.mock?.useExamples || mockOptions?.useExamples) {
609
611
  let exampleValue = example ?? originalSchema?.example ?? Object.values(examples ?? {})[0] ?? originalSchema?.examples?.[0];
@@ -618,7 +620,11 @@ const getResponsesMockDefinition = ({ operationId, tags, returnType, responses,
618
620
  acc.definitions.push(transformer ? transformer(value, returnType) : value);
619
621
  return acc;
620
622
  }
621
- if (!originalSchema) return acc;
623
+ if (!originalSchema && definition === "Blob") originalSchema = {
624
+ type: "string",
625
+ format: "binary"
626
+ };
627
+ else if (!originalSchema) return acc;
622
628
  const scalar = getMockScalar({
623
629
  item: {
624
630
  name: definition,
@@ -628,10 +634,7 @@ const getResponsesMockDefinition = ({ operationId, tags, returnType, responses,
628
634
  mockOptions: mockOptionsWithoutFunc,
629
635
  operationId,
630
636
  tags,
631
- context: isRef ? {
632
- ...context,
633
- specKey: responseImports[0]?.specKey ?? context.specKey
634
- } : context,
637
+ context,
635
638
  existingReferencedProperties: [],
636
639
  splitMockImplementations,
637
640
  allowOverride: true
@@ -643,15 +646,15 @@ const getResponsesMockDefinition = ({ operationId, tags, returnType, responses,
643
646
  definitions: [],
644
647
  imports: []
645
648
  });
646
- };
647
- const getMockDefinition = ({ operationId, tags, returnType, responses, imports: responseImports, override, transformer, context, mockOptions, splitMockImplementations }) => {
649
+ }
650
+ function getMockDefinition({ operationId, tags, returnType, responses, imports: responseImports, override, transformer, context, mockOptions, splitMockImplementations }) {
648
651
  const { definitions, imports } = getResponsesMockDefinition({
649
652
  operationId,
650
653
  tags,
651
654
  returnType,
652
655
  responses,
653
656
  imports: responseImports,
654
- mockOptionsWithoutFunc: getMockWithoutFunc(context.specs[context.specKey], override),
657
+ mockOptionsWithoutFunc: getMockWithoutFunc(context.spec, override),
655
658
  transformer,
656
659
  context,
657
660
  mockOptions,
@@ -662,15 +665,15 @@ const getMockDefinition = ({ operationId, tags, returnType, responses, imports:
662
665
  definitions,
663
666
  imports
664
667
  };
665
- };
666
- const getMockOptionsDataOverride = (operationTags, operationId, override) => {
668
+ }
669
+ function getMockOptionsDataOverride(operationTags, operationId, override) {
667
670
  const responseOverride = override.operations[operationId]?.mock?.data ?? operationTags.map((operationTag) => override.tags[operationTag]?.mock?.data).find((e$1) => e$1 !== void 0);
668
671
  return (isFunction(responseOverride) ? `(${responseOverride})()` : stringify(responseOverride))?.replaceAll(/import_faker\.defaults|import_faker\.faker|_faker\.faker/g, "faker");
669
- };
672
+ }
670
673
 
671
674
  //#endregion
672
675
  //#region src/msw/index.ts
673
- const getMSWDependencies = (options) => {
676
+ function getMSWDependencies(options) {
674
677
  const hasDelay = options?.delay !== false;
675
678
  const locale = options?.locale;
676
679
  const exports = [
@@ -701,11 +704,11 @@ const getMSWDependencies = (options) => {
701
704
  }],
702
705
  dependency: locale ? `@faker-js/faker/locale/${locale}` : "@faker-js/faker"
703
706
  }];
707
+ }
708
+ const generateMSWImports = ({ implementation, imports, projectName, hasSchemaDir, isAllowSyntheticDefaultImports, options }) => {
709
+ return generateDependencyImports(implementation, [...getMSWDependencies(options), ...imports], projectName, hasSchemaDir, isAllowSyntheticDefaultImports);
704
710
  };
705
- const generateMSWImports = ({ implementation, imports, specsName, hasSchemaDir, isAllowSyntheticDefaultImports, options }) => {
706
- return generateDependencyImports(implementation, [...getMSWDependencies(options), ...imports], specsName, hasSchemaDir, isAllowSyntheticDefaultImports);
707
- };
708
- const generateDefinition = (name, route, getResponseMockFunctionNameBase, handlerNameBase, { operationId, response, verb, tags }, { override, context, mock }, returnType, status, responseImports, responses, contentTypes, splitMockImplementations) => {
711
+ function generateDefinition(name, route, getResponseMockFunctionNameBase, handlerNameBase, { operationId, response, verb, tags }, { override, context, mock }, returnType, status, responseImports, responses, contentTypes, splitMockImplementations) {
709
712
  const oldSplitMockImplementations = [...splitMockImplementations];
710
713
  const { definitions, definition, imports } = getMockDefinition({
711
714
  operationId,
@@ -739,7 +742,7 @@ const generateDefinition = (name, route, getResponseMockFunctionNameBase, handle
739
742
  : ${getResponseMockFunctionName}()`;
740
743
  const handlerImplementation = `
741
744
  export const ${handlerName} = (overrideResponse?: ${returnType} | ((${infoParam}: Parameters<Parameters<typeof http.${verb}>[1]>[0]) => Promise<${returnType}> | ${returnType}), options?: RequestHandlerOptions) => {
742
- return http.${verb}('${route}', async (${infoParam}) => {${typeof delay === "number" ? `await delay(${delay});` : ""}
745
+ return http.${verb}('${route}', async (${infoParam}) => {${delay === false ? "" : `await delay(${isFunction(delay) ? `(${delay})()` : delay});`}
743
746
  ${isReturnHttpResponse ? "" : `if (typeof overrideResponse === 'function') {await overrideResponse(info); }`}
744
747
  return new HttpResponse(${isReturnHttpResponse ? isTextPlain ? overrideResponse : `JSON.stringify(${overrideResponse})` : null},
745
748
  { status: ${status === "default" ? 200 : status.replace(/XX$/, "00")},
@@ -759,8 +762,8 @@ export const ${handlerName} = (overrideResponse?: ${returnType} | ((${infoParam}
759
762
  },
760
763
  imports: includeResponseImports
761
764
  };
762
- };
763
- const generateMSW = (generatorVerbOptions, generatorOptions) => {
765
+ }
766
+ function generateMSW(generatorVerbOptions, generatorOptions) {
764
767
  const { pathRoute, override, mock } = generatorOptions;
765
768
  const { operationId, response } = generatorVerbOptions;
766
769
  const route = getRouteMSW(pathRoute, override.mock?.baseUrl ?? (isFunction(mock) ? void 0 : mock?.baseUrl));
@@ -785,7 +788,7 @@ const generateMSW = (generatorVerbOptions, generatorOptions) => {
785
788
  },
786
789
  imports
787
790
  };
788
- };
791
+ }
789
792
 
790
793
  //#endregion
791
794
  //#region src/index.ts
@@ -798,11 +801,11 @@ const generateMockImports = (importOptions) => {
798
801
  default: return generateMSWImports(importOptions);
799
802
  }
800
803
  };
801
- const generateMock = (generatorVerbOptions, generatorOptions) => {
804
+ function generateMock(generatorVerbOptions, generatorOptions) {
802
805
  switch (generatorOptions.mock.type) {
803
806
  default: return generateMSW(generatorVerbOptions, generatorOptions);
804
807
  }
805
- };
808
+ }
806
809
 
807
810
  //#endregion
808
811
  export { DEFAULT_MOCK_OPTIONS, generateMock, generateMockImports };
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["e","t","DEFAULT_FORMAT_MOCK: Record<\n Required<SchemaObject>['format'],\n string\n>","imports: GeneratorImport[]","includedProperties: string[]","numberImports: GeneratorImport[]","stringImports: GeneratorImport[]","enumImports: GeneratorImport[]","e","prop","combineImports: GeneratorImport[]","includedProperties: string[]","e","generateMSWImports: GenerateMockImports","splitMockImplementations: string[]","DEFAULT_MOCK_OPTIONS: GlobalMockOptions","generateMockImports: GenerateMockImports"],"sources":["../src/delay.ts","../../../node_modules/remeda/dist/prop-Cv_AVBuA.js","../src/faker/compatible-v9.ts","../src/faker/constants.ts","../src/faker/getters/object.ts","../src/faker/getters/scalar.ts","../src/faker/resolvers/value.ts","../src/faker/getters/combine.ts","../src/faker/getters/route.ts","../src/msw/mocks.ts","../src/msw/index.ts","../src/index.ts"],"sourcesContent":["import type { GlobalMockOptions, NormalizedOverrideOutput } from '@orval/core';\n\nexport const getDelay = (\n override?: NormalizedOverrideOutput,\n options?: GlobalMockOptions,\n): GlobalMockOptions['delay'] => {\n const overrideDelay = override?.mock?.delay ?? options?.delay;\n const delayFunctionLazyExecute =\n override?.mock?.delayFunctionLazyExecute ??\n options?.delayFunctionLazyExecute;\n switch (typeof overrideDelay) {\n case 'function': {\n return delayFunctionLazyExecute ? overrideDelay : overrideDelay();\n }\n case 'number':\n case 'boolean': {\n return overrideDelay;\n }\n default: {\n return false;\n }\n }\n};\n","function e(e,...n){return typeof e==`string`||typeof e==`number`||typeof e==`symbol`?r=>t(r,e,...n):t(e,...n)}function t(e,...t){let n=e;for(let e of t){if(n==null)return;n=n[e]}return n}export{e as prop};\n//# sourceMappingURL=prop-Cv_AVBuA.js.map","import { compareVersions, type PackageJson } from '@orval/core';\n\nconst getFakerPackageVersion = (packageJson: PackageJson) => {\n return (\n packageJson.dependencies?.['@faker-js/faker'] ??\n packageJson.devDependencies?.['@faker-js/faker'] ??\n packageJson.peerDependencies?.['@faker-js/faker']\n );\n};\n\nexport const isFakerVersionV9 = (packageJson: PackageJson) => {\n const version = getFakerPackageVersion(packageJson);\n\n if (!version) {\n return false;\n }\n\n const withoutRc = version.split('-')[0];\n\n return compareVersions(withoutRc, '9.0.0');\n};\n","import type { SchemaObject } from 'openapi3-ts/oas30';\n\nexport const DEFAULT_FORMAT_MOCK: Record<\n Required<SchemaObject>['format'],\n string\n> = {\n bic: 'faker.finance.bic()',\n binary:\n \"new Blob(faker.helpers.arrayElements(faker.word.words(10).split(' ')))\",\n city: 'faker.location.city()',\n country: 'faker.location.country()',\n date: \"faker.date.past().toISOString().split('T')[0]\",\n 'date-time': \"`${faker.date.past().toISOString().split('.')[0]}Z`\",\n email: 'faker.internet.email()',\n firstName: 'faker.person.firstName()',\n gender: 'faker.person.gender()',\n iban: 'faker.finance.iban()',\n ipv4: 'faker.internet.ipv4()',\n ipv6: 'faker.internet.ipv6()',\n jobTitle: 'faker.person.jobTitle()',\n lastName: 'faker.person.lastName()',\n password: 'faker.internet.password()',\n phoneNumber: 'faker.phone.number()',\n streetName: 'faker.location.street()',\n uri: 'faker.internet.url()',\n url: 'faker.internet.url()',\n userName: 'faker.internet.userName()',\n uuid: 'faker.string.uuid()',\n zipCode: 'faker.location.zipCode()',\n};\n\n// #980 replace CUID so tests are consistent\nexport const DEFAULT_OBJECT_KEY_MOCK = 'faker.string.alphanumeric(5)';\n","import {\n type ContextSpecs,\n type GeneratorImport,\n getKey,\n isBoolean,\n isReference,\n type MockOptions,\n pascal,\n PropertySortOrder,\n} from '@orval/core';\nimport type { ReferenceObject, SchemaObject } from 'openapi3-ts/oas30';\n\nimport type { MockDefinition, MockSchemaObject } from '../../types';\nimport { DEFAULT_OBJECT_KEY_MOCK } from '../constants';\nimport { resolveMockValue } from '../resolvers/value';\nimport { combineSchemasMock } from './combine';\n\nexport const overrideVarName = 'overrideResponse';\n\nexport const getMockObject = ({\n item,\n mockOptions,\n operationId,\n tags,\n combine,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n allowOverride = false,\n}: {\n item: MockSchemaObject;\n operationId: string;\n mockOptions?: MockOptions;\n tags: string[];\n combine?: {\n separator: 'allOf' | 'oneOf' | 'anyOf';\n includedProperties: string[];\n };\n context: ContextSpecs;\n imports: GeneratorImport[];\n // This is used to prevent recursion when combining schemas\n // When an element is added to the array, it means on this iteration, we've already seen this property\n existingReferencedProperties: string[];\n splitMockImplementations: string[];\n // This is used to add the overrideResponse to the object\n allowOverride?: boolean;\n}): MockDefinition => {\n if (isReference(item)) {\n return resolveMockValue({\n schema: {\n ...item,\n name: item.name,\n path: item.path ? `${item.path}.${item.name}` : item.name,\n },\n mockOptions,\n operationId,\n tags,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n });\n }\n\n if (item.allOf || item.oneOf || item.anyOf) {\n const separator = item.allOf ? 'allOf' : item.oneOf ? 'oneOf' : 'anyOf';\n return combineSchemasMock({\n item,\n separator,\n mockOptions,\n operationId,\n tags,\n combine,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n });\n }\n\n if (Array.isArray(item.type)) {\n return combineSchemasMock({\n item: {\n anyOf: item.type.map((type) => ({ type })),\n name: item.name,\n },\n separator: 'anyOf',\n mockOptions,\n operationId,\n tags,\n combine,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n });\n }\n\n if (item.properties) {\n let value =\n !combine || combine.separator === 'oneOf' || combine.separator === 'anyOf'\n ? '{'\n : '';\n const imports: GeneratorImport[] = [];\n const includedProperties: string[] = [];\n\n const entries = Object.entries(item.properties);\n if (context.output.propertySortOrder === PropertySortOrder.ALPHABETICAL) {\n entries.sort((a, b) => {\n return a[0].localeCompare(b[0]);\n });\n }\n const properyScalars = entries\n .map(([key, prop]: [string, ReferenceObject | SchemaObject]) => {\n if (combine?.includedProperties.includes(key)) {\n return;\n }\n\n const isRequired =\n mockOptions?.required ??\n (Array.isArray(item.required) ? item.required : []).includes(key);\n\n // Check to see if the property is a reference to an existing property\n // Fixes issue #910\n if (\n '$ref' in prop &&\n existingReferencedProperties.includes(\n pascal(prop.$ref.split('/').pop() ?? ''),\n )\n ) {\n return;\n }\n\n const resolvedValue = resolveMockValue({\n schema: {\n ...prop,\n name: key,\n path: item.path ? `${item.path}.${key}` : `#.${key}`,\n },\n mockOptions,\n operationId,\n tags,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n });\n\n imports.push(...resolvedValue.imports);\n includedProperties.push(key);\n\n const keyDefinition = getKey(key);\n if (!isRequired && !resolvedValue.overrided) {\n return `${keyDefinition}: faker.helpers.arrayElement([${resolvedValue.value}, undefined])`;\n }\n\n return `${keyDefinition}: ${resolvedValue.value}`;\n })\n .filter(Boolean);\n\n if (allowOverride) {\n properyScalars.push(`...${overrideVarName}`);\n }\n\n value += properyScalars.join(', ');\n value +=\n !combine || combine.separator === 'oneOf' || combine.separator === 'anyOf'\n ? '}'\n : '';\n\n return {\n value,\n imports,\n name: item.name,\n includedProperties,\n };\n }\n\n if (item.additionalProperties) {\n if (isBoolean(item.additionalProperties)) {\n return { value: `{}`, imports: [], name: item.name };\n }\n if (\n isReference(item.additionalProperties) &&\n existingReferencedProperties.includes(\n item.additionalProperties.$ref.split('/').pop() ?? '',\n )\n ) {\n return { value: `{}`, imports: [], name: item.name };\n }\n\n const resolvedValue = resolveMockValue({\n schema: {\n ...item.additionalProperties,\n name: item.name,\n path: item.path ? `${item.path}.#` : '#',\n },\n mockOptions,\n operationId,\n tags,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n });\n\n return {\n ...resolvedValue,\n value: `{\n [${DEFAULT_OBJECT_KEY_MOCK}]: ${resolvedValue.value}\n }`,\n };\n }\n\n return { value: '{}', imports: [], name: item.name };\n};\n","import {\n type ContextSpecs,\n EnumGeneration,\n escape,\n type GeneratorImport,\n isRootKey,\n mergeDeep,\n type MockOptions,\n pascal,\n} from '@orval/core';\nimport type { SchemaObject as SchemaObject31 } from 'openapi3-ts/oas31';\n\nimport type { MockDefinition, MockSchemaObject } from '../../types';\nimport { isFakerVersionV9 } from '../compatible-v9';\nimport { DEFAULT_FORMAT_MOCK } from '../constants';\nimport {\n getNullable,\n resolveMockOverride,\n resolveMockValue,\n} from '../resolvers';\nimport { getMockObject } from './object';\n\nexport const getMockScalar = ({\n item,\n imports,\n mockOptions,\n operationId,\n tags,\n combine,\n context,\n existingReferencedProperties,\n splitMockImplementations,\n allowOverride = false,\n}: {\n item: MockSchemaObject;\n imports: GeneratorImport[];\n mockOptions?: MockOptions;\n operationId: string;\n isRef?: boolean;\n tags: string[];\n combine?: {\n separator: 'allOf' | 'oneOf' | 'anyOf';\n includedProperties: string[];\n };\n context: ContextSpecs;\n // This is used to prevent recursion when combining schemas\n // When an element is added to the array, it means on this iteration, we've already seen this property\n existingReferencedProperties: string[];\n splitMockImplementations: string[];\n // This is used to add the overrideResponse to the object\n allowOverride?: boolean;\n}): MockDefinition => {\n // Add the property to the existing properties to validate on object recursion\n if (item.isRef) {\n existingReferencedProperties = [...existingReferencedProperties, item.name];\n }\n\n const operationProperty = resolveMockOverride(\n mockOptions?.operations?.[operationId]?.properties,\n item,\n );\n\n if (operationProperty) {\n return operationProperty;\n }\n\n const overrideTag = Object.entries(mockOptions?.tags ?? {})\n .toSorted((a, b) => {\n return a[0].localeCompare(b[0]);\n })\n .reduce(\n (acc, [tag, options]) =>\n tags.includes(tag) ? mergeDeep(acc, options) : acc,\n {} as { properties: Record<string, unknown> },\n );\n\n const tagProperty = resolveMockOverride(overrideTag.properties, item);\n\n if (tagProperty) {\n return tagProperty;\n }\n\n const property = resolveMockOverride(mockOptions?.properties, item);\n\n if (property) {\n return property;\n }\n\n if (\n (context.output.override.mock?.useExamples || mockOptions?.useExamples) &&\n item.example !== undefined\n ) {\n return {\n value: JSON.stringify(item.example),\n imports: [],\n name: item.name,\n overrided: true,\n };\n }\n\n const ALL_FORMAT = {\n ...DEFAULT_FORMAT_MOCK,\n ...mockOptions?.format,\n };\n\n if (item.format && ALL_FORMAT[item.format]) {\n let value = ALL_FORMAT[item.format] as string;\n\n const dateFormats = ['date', 'date-time'];\n if (dateFormats.includes(item.format) && context.output.override.useDates) {\n value = `new Date(${value})`;\n }\n\n return {\n value: getNullable(value, item.nullable),\n imports: [],\n name: item.name,\n overrided: false,\n };\n }\n\n const type = getItemType(item);\n const isFakerV9 =\n !!context.output.packageJson &&\n isFakerVersionV9(context.output.packageJson);\n\n switch (type) {\n case 'number':\n case 'integer': {\n const intFunction =\n context.output.override.useBigInt &&\n (item.format === 'int64' || item.format === 'uint64')\n ? 'bigInt'\n : 'int';\n let value = getNullable(\n `faker.number.${intFunction}({min: ${item.minimum ?? mockOptions?.numberMin}, max: ${item.maximum ?? mockOptions?.numberMax}${isFakerV9 && item.multipleOf !== undefined ? `, multipleOf: ${item.multipleOf}` : ''}})`,\n item.nullable,\n );\n if (type === 'number') {\n value = getNullable(\n `faker.number.float({min: ${item.minimum ?? mockOptions?.numberMin}, max: ${item.maximum ?? mockOptions?.numberMax}${isFakerV9 && item.multipleOf !== undefined ? `, multipleOf: ${item.multipleOf}` : `, fractionDigits: ${mockOptions?.fractionDigits}`}})`,\n item.nullable,\n );\n }\n const numberImports: GeneratorImport[] = [];\n\n if (item.enum) {\n value = getEnum(\n item,\n numberImports,\n context,\n existingReferencedProperties,\n 'number',\n );\n } else if ('const' in item && typeof item.const === 'string') {\n value = item.const;\n }\n\n return {\n value,\n enums: item.enum,\n imports: numberImports,\n name: item.name,\n };\n }\n\n case 'boolean': {\n let value = 'faker.datatype.boolean()';\n if ('const' in item && typeof item.const === 'string') {\n value = item.const;\n }\n return {\n value,\n imports: [],\n name: item.name,\n };\n }\n\n case 'array': {\n if (!item.items) {\n return { value: '[]', imports: [], name: item.name };\n }\n\n if (\n '$ref' in item.items &&\n existingReferencedProperties.includes(\n pascal(item.items.$ref.split('/').pop() ?? ''),\n )\n ) {\n return { value: '[]', imports: [], name: item.name };\n }\n\n const {\n value,\n enums,\n imports: resolvedImports,\n } = resolveMockValue({\n schema: {\n ...item.items,\n name: item.name,\n path: item.path ? `${item.path}.[]` : '#.[]',\n },\n combine,\n mockOptions,\n operationId,\n tags,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n });\n\n if (enums) {\n return {\n value,\n imports: resolvedImports,\n name: item.name,\n };\n }\n\n let mapValue = value;\n\n if (\n combine &&\n !value.startsWith('faker') &&\n !value.startsWith('{') &&\n !value.startsWith('Array.from')\n ) {\n mapValue = `{${value}}`;\n }\n\n return {\n value:\n `Array.from({ length: faker.number.int({ ` +\n `min: ${item.minItems ?? mockOptions?.arrayMin}, ` +\n `max: ${item.maxItems ?? mockOptions?.arrayMax} }) ` +\n `}, (_, i) => i + 1).map(() => (${mapValue}))`,\n imports: resolvedImports,\n name: item.name,\n };\n }\n\n case 'string': {\n const length = `{length: {min: ${item.minLength ?? mockOptions?.stringMin}, max: ${item.maxLength ?? mockOptions?.stringMax}}}`;\n let value = `faker.string.alpha(${length})`;\n const stringImports: GeneratorImport[] = [];\n\n if (item.enum) {\n value = getEnum(\n item,\n stringImports,\n context,\n existingReferencedProperties,\n 'string',\n );\n } else if (item.pattern) {\n value = `faker.helpers.fromRegExp('${item.pattern}')`;\n } else if ('const' in item) {\n value = `'${(item as SchemaObject31).const}'`;\n }\n\n return {\n value: getNullable(value, item.nullable),\n enums: item.enum,\n name: item.name,\n imports: stringImports,\n };\n }\n\n case 'null': {\n return {\n value: 'null',\n imports: [],\n name: item.name,\n };\n }\n\n default: {\n if (item.enum) {\n const enumImports: GeneratorImport[] = [];\n const value = getEnum(\n item,\n enumImports,\n context,\n existingReferencedProperties,\n );\n\n return {\n value,\n enums: item.enum,\n imports: enumImports,\n name: item.name,\n };\n }\n\n return getMockObject({\n item,\n mockOptions,\n operationId,\n tags,\n combine: combine\n ? {\n separator: combine.separator,\n includedProperties: [],\n }\n : undefined,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n allowOverride,\n });\n }\n }\n};\n\nfunction getItemType(item: MockSchemaObject) {\n if (item.type) return item.type;\n if (!item.enum) return;\n\n const uniqTypes = new Set(item.enum.map((value) => typeof value));\n if (uniqTypes.size > 1) return;\n\n const type = [...uniqTypes.values()].at(0);\n if (!type) return;\n return ['string', 'number'].includes(type) ? type : undefined;\n}\n\nconst getEnum = (\n item: MockSchemaObject,\n imports: GeneratorImport[],\n context: ContextSpecs,\n existingReferencedProperties: string[],\n type?: 'string' | 'number',\n) => {\n if (!item.enum) return '';\n const joinedEnumValues = item.enum\n .filter((e) => e !== null) // TODO fix type, e can absolutely be null\n .map((e) =>\n type === 'string' || (type === undefined && typeof e === 'string')\n ? `'${escape(e)}'`\n : e,\n )\n .join(',');\n\n let enumValue = `[${joinedEnumValues}]`;\n if (context.output.override.enumGenerationType === EnumGeneration.ENUM) {\n if (item.isRef || existingReferencedProperties.length === 0) {\n enumValue += ` as ${item.name}${item.name.endsWith('[]') ? '' : '[]'}`;\n imports.push({\n name: item.name,\n ...(isRootKey(context.specKey, context.target)\n ? {}\n : { specKey: context.specKey }),\n });\n } else {\n enumValue += ` as ${existingReferencedProperties[existingReferencedProperties.length - 1]}['${item.name}']`;\n if (!item.path?.endsWith('[]')) enumValue += '[]';\n imports.push({\n name: existingReferencedProperties[\n existingReferencedProperties.length - 1\n ],\n ...(isRootKey(context.specKey, context.target)\n ? {}\n : { specKey: context.specKey }),\n });\n }\n } else {\n enumValue += ' as const';\n }\n\n // But if the value is a reference, we can use the object directly via the imports and using Object.values.\n if (item.isRef && type === 'string') {\n enumValue = `Object.values(${item.name})`;\n imports.push({\n name: item.name,\n values: true,\n ...(isRootKey(context.specKey, context.target)\n ? {}\n : { specKey: context.specKey }),\n });\n }\n\n return item.path?.endsWith('[]')\n ? `faker.helpers.arrayElements(${enumValue})`\n : `faker.helpers.arrayElement(${enumValue})`;\n};\n","import {\n type ContextSpecs,\n type GeneratorImport,\n getRefInfo,\n isReference,\n isRootKey,\n type MockOptions,\n pascal,\n} from '@orval/core';\nimport type { SchemaObject } from 'openapi3-ts/oas30';\nimport { prop } from 'remeda';\n\nimport type { MockDefinition, MockSchemaObject } from '../../types';\nimport { overrideVarName } from '../getters';\nimport { getMockScalar } from '../getters/scalar';\n\nconst isRegex = (key: string) => key.startsWith('/') && key.endsWith('/');\n\nexport const resolveMockOverride = (\n properties: Record<string, unknown> | undefined = {},\n item: SchemaObject & { name: string; path?: string },\n) => {\n const path = item.path ?? `#.${item.name}`;\n const property = Object.entries(properties).find(([key]) => {\n if (isRegex(key)) {\n const regex = new RegExp(key.slice(1, -1));\n if (regex.test(item.name) || regex.test(path)) {\n return true;\n }\n }\n\n if (`#.${key}` === path) {\n return true;\n }\n\n return false;\n });\n\n if (!property) {\n return;\n }\n\n return {\n value: getNullable(property[1] as string, item.nullable),\n imports: [],\n name: item.name,\n overrided: true,\n };\n};\n\nexport const getNullable = (value: string, nullable?: boolean) =>\n nullable ? `faker.helpers.arrayElement([${value}, null])` : value;\n\nexport const resolveMockValue = ({\n schema,\n mockOptions,\n operationId,\n tags,\n combine,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n allowOverride,\n}: {\n schema: MockSchemaObject;\n operationId: string;\n mockOptions?: MockOptions;\n tags: string[];\n combine?: {\n separator: 'allOf' | 'oneOf' | 'anyOf';\n includedProperties: string[];\n };\n context: ContextSpecs;\n imports: GeneratorImport[];\n // This is used to prevent recursion when combining schemas\n // When an element is added to the array, it means on this iteration, we've already seen this property\n existingReferencedProperties: string[];\n splitMockImplementations: string[];\n allowOverride?: boolean;\n}): MockDefinition & { type?: string } => {\n if (isReference(schema)) {\n const {\n originalName,\n specKey = context.specKey,\n refPaths,\n } = getRefInfo(schema.$ref, context);\n\n const schemaRef = Array.isArray(refPaths)\n ? (prop(\n context.specs[specKey],\n // @ts-expect-error: [ts2556] refPaths are not guaranteed to be valid keys of the spec\n ...refPaths,\n ) as Partial<SchemaObject>)\n : undefined;\n\n const newSchema = {\n ...schemaRef,\n name: pascal(originalName),\n path: schema.path,\n isRef: true,\n required: [...(schemaRef?.required ?? []), ...(schema.required ?? [])],\n };\n\n const newSeparator = newSchema.allOf\n ? 'allOf'\n : newSchema.oneOf\n ? 'oneOf'\n : 'anyOf';\n\n const scalar = getMockScalar({\n item: newSchema,\n mockOptions,\n operationId,\n tags,\n combine: combine\n ? {\n separator:\n combine.separator === 'anyOf' ? newSeparator : combine.separator,\n includedProperties:\n newSeparator === 'allOf' ? [] : combine.includedProperties,\n }\n : undefined,\n context: {\n ...context,\n specKey,\n },\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n allowOverride,\n });\n if (\n scalar.value &&\n (newSchema.type === 'object' || newSchema.allOf) &&\n combine?.separator === 'oneOf'\n ) {\n const funcName = `get${pascal(operationId)}Response${pascal(newSchema.name)}Mock`;\n if (\n !splitMockImplementations.some((f) =>\n f.includes(`export const ${funcName}`),\n )\n ) {\n const discriminatedProperty = newSchema.discriminator?.propertyName;\n\n let type = `Partial<${newSchema.name}>`;\n if (discriminatedProperty) {\n type = `Omit<${type}, '${discriminatedProperty}'>`;\n }\n\n const args = `${overrideVarName}: ${type} = {}`;\n const func = `export const ${funcName} = (${args}): ${newSchema.name} => ({${scalar.value.startsWith('...') ? '' : '...'}${scalar.value}, ...${overrideVarName}});`;\n splitMockImplementations.push(func);\n }\n\n scalar.value = newSchema.nullable\n ? `${funcName}()`\n : `{...${funcName}()}`;\n\n scalar.imports.push({\n name: newSchema.name,\n specKey: isRootKey(specKey, context.target) ? undefined : specKey,\n });\n }\n\n return {\n ...scalar,\n type: getType(newSchema),\n };\n }\n\n const scalar = getMockScalar({\n item: schema,\n mockOptions,\n operationId,\n tags,\n combine,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n allowOverride,\n });\n return {\n ...scalar,\n type: getType(schema),\n };\n};\n\nconst getType = (schema: MockSchemaObject) => {\n return (\n (schema.type as string | undefined) ??\n (schema.properties ? 'object' : schema.items ? 'array' : undefined)\n );\n};\n","import {\n type ContextSpecs,\n type GeneratorImport,\n isReference,\n isSchema,\n type MockOptions,\n pascal,\n} from '@orval/core';\n\nimport type { MockDefinition, MockSchemaObject } from '../../types';\nimport { resolveMockValue } from '../resolvers';\n\nexport const combineSchemasMock = ({\n item,\n separator,\n mockOptions,\n operationId,\n tags,\n combine,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n}: {\n item: MockSchemaObject;\n separator: 'allOf' | 'oneOf' | 'anyOf';\n operationId: string;\n mockOptions?: MockOptions;\n tags: string[];\n combine?: {\n separator: 'allOf' | 'oneOf' | 'anyOf';\n includedProperties: string[];\n };\n context: ContextSpecs;\n imports: GeneratorImport[];\n // This is used to prevent recursion when combining schemas\n // When an element is added to the array, it means on this iteration, we've already seen this property\n existingReferencedProperties: string[];\n splitMockImplementations: string[];\n}): MockDefinition => {\n const combineImports: GeneratorImport[] = [];\n const includedProperties: string[] = [...(combine?.includedProperties ?? [])];\n\n const isRefAndNotExisting =\n isReference(item) && !existingReferencedProperties.includes(item.name);\n\n const itemResolvedValue =\n isRefAndNotExisting || item.properties\n ? resolveMockValue({\n schema: Object.fromEntries(\n Object.entries(item).filter(([key]) => key !== separator),\n ) as MockSchemaObject,\n combine: {\n separator: 'allOf',\n includedProperties: [],\n },\n mockOptions,\n operationId,\n tags,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n })\n : undefined;\n\n includedProperties.push(...(itemResolvedValue?.includedProperties ?? []));\n combineImports.push(...(itemResolvedValue?.imports ?? []));\n let containsOnlyPrimitiveValues = true;\n\n const value = (item[separator] ?? []).reduce(\n (acc, val, _, arr) => {\n if (\n '$ref' in val &&\n existingReferencedProperties.includes(\n pascal(val.$ref.split('/').pop() ?? ''),\n )\n ) {\n if (arr.length === 1) {\n return 'undefined';\n }\n\n return acc;\n }\n\n // the required fields in this schema need to be considered\n // in the sub schema under the allOf key\n if (separator === 'allOf' && item.required) {\n val =\n isSchema(val) && val.required\n ? { ...val, required: [...item.required, ...val.required] }\n : { ...val, required: item.required };\n }\n\n const resolvedValue = resolveMockValue({\n schema: {\n ...val,\n name: item.name,\n path: item.path ?? '#',\n },\n combine: {\n separator,\n includedProperties:\n separator === 'oneOf'\n ? (itemResolvedValue?.includedProperties ?? [])\n : includedProperties,\n },\n mockOptions,\n operationId,\n tags,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n });\n\n combineImports.push(...resolvedValue.imports);\n includedProperties.push(...(resolvedValue.includedProperties ?? []));\n\n if (resolvedValue.value === '{}') {\n containsOnlyPrimitiveValues = false;\n return acc;\n }\n if (separator === 'allOf') {\n if (resolvedValue.value.startsWith('{') || !resolvedValue.type) {\n containsOnlyPrimitiveValues = false;\n return `${acc}...${resolvedValue.value},`;\n } else if (resolvedValue.type === 'object') {\n containsOnlyPrimitiveValues = false;\n return resolvedValue.value.startsWith('faker')\n ? `${acc}...${resolvedValue.value},`\n : `${acc}...{${resolvedValue.value}},`;\n }\n }\n return `${acc}${resolvedValue.value},`;\n },\n separator === 'allOf' ? '' : 'faker.helpers.arrayElement([',\n );\n let finalValue =\n value === 'undefined'\n ? value\n : // containsOnlyPrimitiveValues isn't just true, it's being set to false inside the above reduce and the type system doesn't detect it\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n `${separator === 'allOf' && !containsOnlyPrimitiveValues ? '{' : ''}${value}${separator === 'allOf' ? (containsOnlyPrimitiveValues ? '' : '}') : '])'}`;\n if (itemResolvedValue) {\n finalValue = finalValue.startsWith('...')\n ? `...{${finalValue}, ${itemResolvedValue.value}}`\n : `{...${finalValue}, ${itemResolvedValue.value}}`;\n }\n if (finalValue.endsWith(',')) {\n finalValue = finalValue.slice(0, Math.max(0, finalValue.length - 1));\n }\n\n return {\n value: finalValue,\n imports: combineImports,\n name: item.name,\n includedProperties,\n };\n};\n","import { camel, sanitize } from '@orval/core';\n\nconst hasParam = (path: string): boolean => /[^{]*{[\\w*_-]*}.*/.test(path);\n\nconst getRoutePath = (path: string): string => {\n const matches = /([^{]*){?([\\w*_-]*)}?(.*)/.exec(path);\n if (!matches?.length) return path; // impossible due to regexp grouping here, but for TS\n\n const prev = matches[1];\n const param = sanitize(camel(matches[2]), {\n es5keyword: true,\n underscore: true,\n dash: true,\n dot: true,\n });\n const next = hasParam(matches[3]) ? getRoutePath(matches[3]) : matches[3];\n\n return hasParam(path) ? `${prev}:${param}${next}` : `${prev}${param}${next}`;\n};\n\nexport const getRouteMSW = (route: string, baseUrl = '*') => {\n route = route.replaceAll(':', String.raw`\\:`);\n const splittedRoute = route.split('/');\n\n return splittedRoute.reduce((acc, path, i) => {\n if (!path && !i) {\n return acc;\n }\n\n if (!path.includes('{')) {\n return `${acc}/${path}`;\n }\n\n return `${acc}/${getRoutePath(path)}`;\n }, baseUrl);\n};\n","import {\n type ContextSpecs,\n generalJSTypesWithArray,\n type GeneratorImport,\n type GlobalMockOptions,\n isFunction,\n type MockOptions,\n type NormalizedOverrideOutput,\n resolveRef,\n type ResReqTypesValue,\n stringify,\n} from '@orval/core';\nimport type { OpenAPIObject, SchemaObject } from 'openapi3-ts/oas30';\n\nimport { getMockScalar } from '../faker/getters';\n\nconst getMockPropertiesWithoutFunc = (properties: any, spec: OpenAPIObject) =>\n Object.entries(isFunction(properties) ? properties(spec) : properties).reduce<\n Record<string, string>\n >((acc, [key, value]) => {\n const implementation = isFunction(value)\n ? `(${value})()`\n : stringify(value as string)!;\n\n acc[key] = implementation.replaceAll(\n /import_faker\\.defaults|import_faker\\.faker|_faker\\.faker/g,\n 'faker',\n );\n return acc;\n }, {});\n\nconst getMockWithoutFunc = (\n spec: OpenAPIObject,\n override?: NormalizedOverrideOutput,\n): MockOptions => ({\n arrayMin: override?.mock?.arrayMin,\n arrayMax: override?.mock?.arrayMax,\n stringMin: override?.mock?.stringMin,\n stringMax: override?.mock?.stringMax,\n numberMin: override?.mock?.numberMin,\n numberMax: override?.mock?.numberMax,\n required: override?.mock?.required,\n fractionDigits: override?.mock?.fractionDigits,\n ...(override?.mock?.properties\n ? {\n properties: getMockPropertiesWithoutFunc(\n override.mock.properties,\n spec,\n ),\n }\n : {}),\n ...(override?.mock?.format\n ? {\n format: getMockPropertiesWithoutFunc(override.mock.format, spec),\n }\n : {}),\n ...(override?.operations\n ? {\n operations: Object.entries(override.operations).reduce<\n Exclude<MockOptions['operations'], undefined>\n >((acc, [key, value]) => {\n if (value?.mock?.properties) {\n acc[key] = {\n properties: getMockPropertiesWithoutFunc(\n value.mock.properties,\n spec,\n ),\n };\n }\n\n return acc;\n }, {}),\n }\n : {}),\n ...(override?.tags\n ? {\n tags: Object.entries(override.tags).reduce<\n Exclude<MockOptions['tags'], undefined>\n >((acc, [key, value]) => {\n if (value?.mock?.properties) {\n acc[key] = {\n properties: getMockPropertiesWithoutFunc(\n value.mock.properties,\n spec,\n ),\n };\n }\n\n return acc;\n }, {}),\n }\n : {}),\n});\n\nconst getMockScalarJsTypes = (\n definition: string,\n mockOptionsWithoutFunc: Record<string, unknown>,\n) => {\n const isArray = definition.endsWith('[]');\n const type = isArray ? definition.slice(0, -2) : definition;\n\n switch (type) {\n case 'number': {\n return isArray\n ? `Array.from({length: faker.number.int({` +\n `min: ${mockOptionsWithoutFunc.arrayMin}, ` +\n `max: ${mockOptionsWithoutFunc.arrayMax}}` +\n `)}, () => faker.number.int())`\n : 'faker.number.int()';\n }\n case 'string': {\n return isArray\n ? `Array.from({length: faker.number.int({` +\n `min: ${mockOptionsWithoutFunc?.arrayMin},` +\n `max: ${mockOptionsWithoutFunc?.arrayMax}}` +\n `)}, () => faker.word.sample())`\n : 'faker.word.sample()';\n }\n default: {\n return 'undefined';\n }\n }\n};\n\nexport const getResponsesMockDefinition = ({\n operationId,\n tags,\n returnType,\n responses,\n imports: responseImports,\n mockOptionsWithoutFunc,\n transformer,\n context,\n mockOptions,\n splitMockImplementations,\n}: {\n operationId: string;\n tags: string[];\n returnType: string;\n responses: ResReqTypesValue[];\n imports: GeneratorImport[];\n mockOptionsWithoutFunc: Record<string, unknown>;\n transformer?: (value: unknown, definition: string) => string;\n context: ContextSpecs;\n mockOptions?: GlobalMockOptions;\n splitMockImplementations: string[];\n}) => {\n return responses.reduce(\n (\n acc,\n { value: definition, originalSchema, example, examples, imports, isRef },\n ) => {\n if (\n context.output.override.mock?.useExamples ||\n mockOptions?.useExamples\n ) {\n let exampleValue =\n example ??\n originalSchema?.example ??\n Object.values(examples ?? {})[0] ??\n originalSchema?.examples?.[0];\n exampleValue = exampleValue?.value ?? exampleValue;\n if (exampleValue) {\n acc.definitions.push(\n transformer\n ? transformer(exampleValue, returnType)\n : JSON.stringify(exampleValue),\n );\n return acc;\n }\n }\n if (!definition || generalJSTypesWithArray.includes(definition)) {\n const value = getMockScalarJsTypes(definition, mockOptionsWithoutFunc);\n\n acc.definitions.push(\n transformer ? transformer(value, returnType) : value,\n );\n\n return acc;\n }\n\n if (!originalSchema) {\n return acc;\n }\n\n const resolvedRef = resolveRef<SchemaObject>(originalSchema, context);\n\n const scalar = getMockScalar({\n item: {\n name: definition,\n ...resolvedRef.schema,\n },\n imports,\n mockOptions: mockOptionsWithoutFunc,\n operationId,\n tags,\n context: isRef\n ? {\n ...context,\n specKey: responseImports[0]?.specKey ?? context.specKey,\n }\n : context,\n existingReferencedProperties: [],\n splitMockImplementations,\n allowOverride: true,\n });\n\n acc.imports.push(...scalar.imports);\n acc.definitions.push(\n transformer ? transformer(scalar.value, returnType) : scalar.value,\n );\n\n return acc;\n },\n {\n definitions: [] as string[],\n imports: [] as GeneratorImport[],\n },\n );\n};\n\nexport const getMockDefinition = ({\n operationId,\n tags,\n returnType,\n responses,\n imports: responseImports,\n override,\n transformer,\n context,\n mockOptions,\n splitMockImplementations,\n}: {\n operationId: string;\n tags: string[];\n returnType: string;\n responses: ResReqTypesValue[];\n imports: GeneratorImport[];\n override: NormalizedOverrideOutput;\n transformer?: (value: unknown, definition: string) => string;\n context: ContextSpecs;\n mockOptions?: GlobalMockOptions;\n splitMockImplementations: string[];\n}) => {\n const mockOptionsWithoutFunc = getMockWithoutFunc(\n context.specs[context.specKey],\n override,\n );\n\n const { definitions, imports } = getResponsesMockDefinition({\n operationId,\n tags,\n returnType,\n responses,\n imports: responseImports,\n mockOptionsWithoutFunc,\n transformer,\n context,\n mockOptions,\n splitMockImplementations,\n });\n\n return {\n definition: '[' + definitions.join(', ') + ']',\n definitions,\n imports,\n };\n};\n\nexport const getMockOptionsDataOverride = (\n operationTags: string[],\n operationId: string,\n override: NormalizedOverrideOutput,\n) => {\n const responseOverride =\n override.operations[operationId]?.mock?.data ??\n operationTags\n .map((operationTag) => override.tags[operationTag]?.mock?.data)\n .find((e) => e !== undefined);\n const implementation = isFunction(responseOverride)\n ? `(${responseOverride})()`\n : stringify(responseOverride);\n\n return implementation?.replaceAll(\n /import_faker\\.defaults|import_faker\\.faker|_faker\\.faker/g,\n 'faker',\n );\n};\n","import {\n type ClientMockGeneratorBuilder,\n generateDependencyImports,\n type GenerateMockImports,\n type GeneratorDependency,\n type GeneratorImport,\n type GeneratorOptions,\n type GeneratorVerbOptions,\n type GlobalMockOptions,\n isFunction,\n isObject,\n pascal,\n type ResReqTypesValue,\n} from '@orval/core';\n\nimport { getDelay } from '../delay';\nimport { getRouteMSW, overrideVarName } from '../faker/getters';\nimport { getMockDefinition, getMockOptionsDataOverride } from './mocks';\n\nconst getMSWDependencies = (\n options?: GlobalMockOptions,\n): GeneratorDependency[] => {\n const hasDelay = options?.delay !== false;\n const locale = options?.locale;\n\n const exports = [\n { name: 'http', values: true },\n { name: 'HttpResponse', values: true },\n { name: 'RequestHandlerOptions', values: false },\n ];\n\n if (hasDelay) {\n exports.push({ name: 'delay', values: true });\n }\n\n return [\n { exports, dependency: 'msw' },\n {\n exports: [{ name: 'faker', values: true }],\n dependency: locale\n ? `@faker-js/faker/locale/${locale}`\n : '@faker-js/faker',\n },\n ];\n};\n\nexport const generateMSWImports: GenerateMockImports = ({\n implementation,\n imports,\n specsName,\n hasSchemaDir,\n isAllowSyntheticDefaultImports,\n options,\n}) => {\n return generateDependencyImports(\n implementation,\n [...getMSWDependencies(options), ...imports],\n specsName,\n hasSchemaDir,\n isAllowSyntheticDefaultImports,\n );\n};\n\nconst generateDefinition = (\n name: string,\n route: string,\n getResponseMockFunctionNameBase: string,\n handlerNameBase: string,\n { operationId, response, verb, tags }: GeneratorVerbOptions,\n { override, context, mock }: GeneratorOptions,\n returnType: string,\n status: string,\n responseImports: GeneratorImport[],\n responses: ResReqTypesValue[],\n contentTypes: string[],\n splitMockImplementations: string[],\n) => {\n const oldSplitMockImplementations = [...splitMockImplementations];\n const { definitions, definition, imports } = getMockDefinition({\n operationId,\n tags,\n returnType,\n responses,\n imports: responseImports,\n override,\n context,\n mockOptions: isFunction(mock) ? undefined : mock,\n splitMockImplementations,\n });\n\n const mockData = getMockOptionsDataOverride(tags, operationId, override);\n\n let value = '';\n\n if (mockData) {\n value = mockData;\n } else if (definitions.length > 1) {\n value = `faker.helpers.arrayElement(${definition})`;\n } else if (definitions[0]) {\n value = definitions[0];\n }\n\n const isResponseOverridable = value.includes(overrideVarName);\n const isTextPlain = contentTypes.includes('text/plain');\n const isReturnHttpResponse = value && value !== 'undefined';\n\n const getResponseMockFunctionName = `${getResponseMockFunctionNameBase}${pascal(\n name,\n )}`;\n const handlerName = `${handlerNameBase}${pascal(name)}`;\n\n const addedSplitMockImplementations = splitMockImplementations.slice(\n oldSplitMockImplementations.length,\n );\n splitMockImplementations.push(...addedSplitMockImplementations);\n const mockImplementations =\n addedSplitMockImplementations.length > 0\n ? `${addedSplitMockImplementations.join('\\n\\n')}\\n\\n`\n : '';\n\n const mockImplementation = isReturnHttpResponse\n ? `${mockImplementations}export const ${getResponseMockFunctionName} = (${\n isResponseOverridable\n ? `overrideResponse: Partial< ${returnType} > = {}`\n : ''\n })${mockData ? '' : `: ${returnType}`} => (${value})\\n\\n`\n : mockImplementations;\n\n const delay = getDelay(override, isFunction(mock) ? undefined : mock);\n const infoParam = 'info';\n const overrideResponse = `overrideResponse !== undefined\n ? (typeof overrideResponse === \"function\" ? await overrideResponse(${infoParam}) : overrideResponse)\n : ${getResponseMockFunctionName}()`;\n const handlerImplementation = `\nexport const ${handlerName} = (overrideResponse?: ${returnType} | ((${infoParam}: Parameters<Parameters<typeof http.${verb}>[1]>[0]) => Promise<${returnType}> | ${returnType}), options?: RequestHandlerOptions) => {\n return http.${verb}('${route}', async (${infoParam}) => {${\n typeof delay === 'number' ? `await delay(${delay});` : ''\n }\n ${isReturnHttpResponse ? '' : `if (typeof overrideResponse === 'function') {await overrideResponse(info); }`}\n return new HttpResponse(${\n isReturnHttpResponse\n ? isTextPlain\n ? overrideResponse\n : `JSON.stringify(${overrideResponse})`\n : null\n },\n { status: ${status === 'default' ? 200 : status.replace(/XX$/, '00')},\n ${\n isReturnHttpResponse\n ? `headers: { 'Content-Type': ${isTextPlain ? \"'text/plain'\" : \"'application/json'\"} }`\n : ''\n }\n })\n }, options)\n}\\n`;\n\n const includeResponseImports = isTextPlain\n ? imports\n : [\n ...imports,\n ...response.imports.filter((r) => {\n // Only include imports which are actually used in mock.\n const reg = new RegExp(`\\\\b${r.name}\\\\b`);\n return (\n reg.test(handlerImplementation) || reg.test(mockImplementation)\n );\n }),\n ];\n\n return {\n implementation: {\n function: mockImplementation,\n handlerName: handlerName,\n handler: handlerImplementation,\n },\n imports: includeResponseImports,\n };\n};\n\nexport const generateMSW = (\n generatorVerbOptions: GeneratorVerbOptions,\n generatorOptions: GeneratorOptions,\n): ClientMockGeneratorBuilder => {\n const { pathRoute, override, mock } = generatorOptions;\n const { operationId, response } = generatorVerbOptions;\n\n const route = getRouteMSW(\n pathRoute,\n override.mock?.baseUrl ?? (isFunction(mock) ? undefined : mock?.baseUrl),\n );\n\n const handlerName = `get${pascal(operationId)}MockHandler`;\n const getResponseMockFunctionName = `get${pascal(operationId)}ResponseMock`;\n\n const splitMockImplementations: string[] = [];\n\n const baseDefinition = generateDefinition(\n '',\n route,\n getResponseMockFunctionName,\n handlerName,\n generatorVerbOptions,\n generatorOptions,\n response.definition.success,\n response.types.success[0]?.key ?? '200',\n response.imports,\n response.types.success,\n response.contentTypes,\n splitMockImplementations,\n );\n\n const mockImplementations = [baseDefinition.implementation.function];\n const handlerImplementations = [baseDefinition.implementation.handler];\n const imports = [...baseDefinition.imports];\n\n if (\n generatorOptions.mock &&\n isObject(generatorOptions.mock) &&\n generatorOptions.mock.generateEachHttpStatus\n ) {\n for (const statusResponse of [\n ...response.types.success,\n ...response.types.errors,\n ]) {\n const definition = generateDefinition(\n statusResponse.key,\n route,\n getResponseMockFunctionName,\n handlerName,\n generatorVerbOptions,\n generatorOptions,\n statusResponse.value,\n statusResponse.key,\n response.imports,\n [statusResponse],\n [statusResponse.contentType],\n splitMockImplementations,\n );\n mockImplementations.push(definition.implementation.function);\n handlerImplementations.push(definition.implementation.handler);\n imports.push(...definition.imports);\n }\n }\n\n return {\n implementation: {\n function: mockImplementations.join('\\n'),\n handlerName: handlerName,\n handler: handlerImplementations.join('\\n'),\n },\n imports: imports,\n };\n};\n","import type {\n GenerateMockImports,\n GeneratorOptions,\n GeneratorVerbOptions,\n GlobalMockOptions,\n} from '@orval/core';\n\nimport { generateMSW, generateMSWImports } from './msw';\n\nexport const DEFAULT_MOCK_OPTIONS: GlobalMockOptions = {\n type: 'msw',\n useExamples: false,\n};\n\nexport const generateMockImports: GenerateMockImports = (importOptions) => {\n switch (importOptions.options?.type) {\n default: {\n // case 'msw':\n return generateMSWImports(importOptions);\n }\n }\n};\n\nexport const generateMock = (\n generatorVerbOptions: GeneratorVerbOptions,\n generatorOptions: Omit<GeneratorOptions, 'mock'> & {\n mock: GlobalMockOptions;\n },\n) => {\n switch (generatorOptions.mock.type) {\n default: {\n // case 'msw':\n return generateMSW(generatorVerbOptions, generatorOptions);\n }\n }\n};\n"],"x_google_ignoreList":[1],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":["e","t","DEFAULT_FORMAT_MOCK: Record<\n Required<OpenApiSchemaObject>['format'],\n string\n>","imports: GeneratorImport[]","includedProperties: string[]","numberImports: GeneratorImport[]","stringImports: GeneratorImport[]","enumImports: GeneratorImport[]","e","prop","combineImports: GeneratorImport[]","includedProperties: string[]","e","generateMSWImports: GenerateMockImports","splitMockImplementations: string[]","DEFAULT_MOCK_OPTIONS: GlobalMockOptions","generateMockImports: GenerateMockImports"],"sources":["../src/delay.ts","../../../node_modules/remeda/dist/prop-Cv_AVBuA.js","../src/faker/compatible-v9.ts","../src/faker/constants.ts","../src/faker/getters/object.ts","../src/faker/getters/scalar.ts","../src/faker/resolvers/value.ts","../src/faker/getters/combine.ts","../src/faker/getters/route.ts","../src/msw/mocks.ts","../src/msw/index.ts","../src/index.ts"],"sourcesContent":["import type { GlobalMockOptions, NormalizedOverrideOutput } from '@orval/core';\n\nexport const getDelay = (\n override?: NormalizedOverrideOutput,\n options?: GlobalMockOptions,\n): GlobalMockOptions['delay'] => {\n const overrideDelay = override?.mock?.delay ?? options?.delay;\n const delayFunctionLazyExecute =\n override?.mock?.delayFunctionLazyExecute ??\n options?.delayFunctionLazyExecute;\n switch (typeof overrideDelay) {\n case 'function': {\n return delayFunctionLazyExecute ? overrideDelay : overrideDelay();\n }\n case 'number':\n case 'boolean': {\n return overrideDelay;\n }\n default: {\n return false;\n }\n }\n};\n","function e(e,...n){return typeof e==`string`||typeof e==`number`||typeof e==`symbol`?r=>t(r,e,...n):t(e,...n)}function t(e,...t){let n=e;for(let e of t){if(n==null)return;n=n[e]}return n}export{e as prop};\n//# sourceMappingURL=prop-Cv_AVBuA.js.map","import { compareVersions, type PackageJson } from '@orval/core';\n\nconst getFakerPackageVersion = (packageJson: PackageJson) => {\n return (\n packageJson.dependencies?.['@faker-js/faker'] ??\n packageJson.devDependencies?.['@faker-js/faker'] ??\n packageJson.peerDependencies?.['@faker-js/faker']\n );\n};\n\nexport const isFakerVersionV9 = (packageJson: PackageJson) => {\n const version = getFakerPackageVersion(packageJson);\n\n if (!version) {\n return false;\n }\n\n const withoutRc = version.split('-')[0];\n\n return compareVersions(withoutRc, '9.0.0');\n};\n","import type { OpenApiSchemaObject } from '@orval/core';\n\nexport const DEFAULT_FORMAT_MOCK: Record<\n Required<OpenApiSchemaObject>['format'],\n string\n> = {\n bic: 'faker.finance.bic()',\n binary:\n \"new Blob(faker.helpers.arrayElements(faker.word.words(10).split(' ')))\",\n city: 'faker.location.city()',\n country: 'faker.location.country()',\n date: \"faker.date.past().toISOString().split('T')[0]\",\n 'date-time': \"`${faker.date.past().toISOString().split('.')[0]}Z`\",\n email: 'faker.internet.email()',\n firstName: 'faker.person.firstName()',\n gender: 'faker.person.gender()',\n iban: 'faker.finance.iban()',\n ipv4: 'faker.internet.ipv4()',\n ipv6: 'faker.internet.ipv6()',\n jobTitle: 'faker.person.jobTitle()',\n lastName: 'faker.person.lastName()',\n password: 'faker.internet.password()',\n phoneNumber: 'faker.phone.number()',\n streetName: 'faker.location.street()',\n uri: 'faker.internet.url()',\n url: 'faker.internet.url()',\n userName: 'faker.internet.userName()',\n uuid: 'faker.string.uuid()',\n zipCode: 'faker.location.zipCode()',\n};\n\n// #980 replace CUID so tests are consistent\nexport const DEFAULT_OBJECT_KEY_MOCK = 'faker.string.alphanumeric(5)';\n","import {\n type ContextSpec,\n type GeneratorImport,\n getKey,\n isBoolean,\n isReference,\n type MockOptions,\n type OpenApiReferenceObject,\n type OpenApiSchemaObject,\n pascal,\n PropertySortOrder,\n} from '@orval/core';\n\nimport type { MockDefinition, MockSchemaObject } from '../../types';\nimport { DEFAULT_OBJECT_KEY_MOCK } from '../constants';\nimport { resolveMockValue } from '../resolvers/value';\nimport { combineSchemasMock } from './combine';\n\nexport const overrideVarName = 'overrideResponse';\n\ninterface GetMockObjectOptions {\n item: MockSchemaObject;\n operationId: string;\n mockOptions?: MockOptions;\n tags: string[];\n combine?: {\n separator: 'allOf' | 'oneOf' | 'anyOf';\n includedProperties: string[];\n };\n context: ContextSpec;\n imports: GeneratorImport[];\n // This is used to prevent recursion when combining schemas\n // When an element is added to the array, it means on this iteration, we've already seen this property\n existingReferencedProperties: string[];\n splitMockImplementations: string[];\n // This is used to add the overrideResponse to the object\n allowOverride?: boolean;\n}\n\nexport function getMockObject({\n item,\n mockOptions,\n operationId,\n tags,\n combine,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n allowOverride = false,\n}: GetMockObjectOptions): MockDefinition {\n if (isReference(item)) {\n return resolveMockValue({\n schema: {\n ...item,\n name: item.name,\n path: item.path ? `${item.path}.${item.name}` : item.name,\n },\n mockOptions,\n operationId,\n tags,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n });\n }\n\n if (item.allOf || item.oneOf || item.anyOf) {\n const separator = item.allOf ? 'allOf' : item.oneOf ? 'oneOf' : 'anyOf';\n return combineSchemasMock({\n item,\n separator,\n mockOptions,\n operationId,\n tags,\n combine,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n });\n }\n\n if (Array.isArray(item.type)) {\n return combineSchemasMock({\n item: {\n anyOf: item.type.map((type) => ({ type })),\n name: item.name,\n },\n separator: 'anyOf',\n mockOptions,\n operationId,\n tags,\n combine,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n });\n }\n\n if (item.properties) {\n let value =\n !combine || combine.separator === 'oneOf' || combine.separator === 'anyOf'\n ? '{'\n : '';\n const imports: GeneratorImport[] = [];\n const includedProperties: string[] = [];\n\n const entries = Object.entries(item.properties);\n if (context.output.propertySortOrder === PropertySortOrder.ALPHABETICAL) {\n entries.sort((a, b) => {\n return a[0].localeCompare(b[0]);\n });\n }\n const propertyScalars = entries\n .map(\n ([key, prop]: [\n string,\n OpenApiReferenceObject | OpenApiSchemaObject,\n ]) => {\n if (combine?.includedProperties.includes(key)) {\n return;\n }\n\n const isRequired =\n mockOptions?.required ??\n (Array.isArray(item.required) ? item.required : []).includes(key);\n\n // Check to see if the property is a reference to an existing property\n // Fixes issue #910\n if (\n '$ref' in prop &&\n existingReferencedProperties.includes(\n pascal(prop.$ref.split('/').pop() ?? ''),\n )\n ) {\n return;\n }\n\n const resolvedValue = resolveMockValue({\n schema: {\n ...prop,\n name: key,\n path: item.path ? `${item.path}.${key}` : `#.${key}`,\n },\n mockOptions,\n operationId,\n tags,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n });\n\n imports.push(...resolvedValue.imports);\n includedProperties.push(key);\n\n const keyDefinition = getKey(key);\n\n if (!isRequired && !resolvedValue.overrided) {\n return `${keyDefinition}: faker.helpers.arrayElement([${resolvedValue.value}, undefined])`;\n }\n\n const isNullable =\n Array.isArray(prop.type) && prop.type.includes('null');\n if (isNullable && !resolvedValue.overrided) {\n return `${keyDefinition}: faker.helpers.arrayElement([${resolvedValue.value}, null])`;\n }\n\n return `${keyDefinition}: ${resolvedValue.value}`;\n },\n )\n .filter(Boolean);\n\n if (allowOverride) {\n propertyScalars.push(`...${overrideVarName}`);\n }\n\n value += propertyScalars.join(', ');\n value +=\n !combine || combine.separator === 'oneOf' || combine.separator === 'anyOf'\n ? '}'\n : '';\n\n return {\n value,\n imports,\n name: item.name,\n includedProperties,\n };\n }\n\n if (item.additionalProperties) {\n if (isBoolean(item.additionalProperties)) {\n return { value: `{}`, imports: [], name: item.name };\n }\n if (\n isReference(item.additionalProperties) &&\n existingReferencedProperties.includes(\n item.additionalProperties.$ref.split('/').pop() ?? '',\n )\n ) {\n return { value: `{}`, imports: [], name: item.name };\n }\n\n const resolvedValue = resolveMockValue({\n schema: {\n ...item.additionalProperties,\n name: item.name,\n path: item.path ? `${item.path}.#` : '#',\n },\n mockOptions,\n operationId,\n tags,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n });\n\n return {\n ...resolvedValue,\n value: `{\n [${DEFAULT_OBJECT_KEY_MOCK}]: ${resolvedValue.value}\n }`,\n };\n }\n\n return { value: '{}', imports: [], name: item.name };\n}\n","import {\n type ContextSpec,\n EnumGeneration,\n escape,\n type GeneratorImport,\n mergeDeep,\n type MockOptions,\n type OpenApiSchemaObject,\n pascal,\n} from '@orval/core';\n\nimport type { MockDefinition, MockSchemaObject } from '../../types';\nimport { isFakerVersionV9 } from '../compatible-v9';\nimport { DEFAULT_FORMAT_MOCK } from '../constants';\nimport {\n getNullable,\n resolveMockOverride,\n resolveMockValue,\n} from '../resolvers';\nimport { getMockObject } from './object';\n\ninterface GetMockScalarOptions {\n item: MockSchemaObject;\n imports: GeneratorImport[];\n mockOptions?: MockOptions;\n operationId: string;\n isRef?: boolean;\n tags: string[];\n combine?: {\n separator: 'allOf' | 'oneOf' | 'anyOf';\n includedProperties: string[];\n };\n context: ContextSpec;\n // This is used to prevent recursion when combining schemas\n // When an element is added to the array, it means on this iteration, we've already seen this property\n existingReferencedProperties: string[];\n splitMockImplementations: string[];\n // This is used to add the overrideResponse to the object\n allowOverride?: boolean;\n}\n\nexport function getMockScalar({\n item,\n imports,\n mockOptions,\n operationId,\n tags,\n combine,\n context,\n existingReferencedProperties,\n splitMockImplementations,\n allowOverride = false,\n}: GetMockScalarOptions): MockDefinition {\n // Add the property to the existing properties to validate on object recursion\n if (item.isRef) {\n existingReferencedProperties = [...existingReferencedProperties, item.name];\n }\n\n const operationProperty = resolveMockOverride(\n mockOptions?.operations?.[operationId]?.properties,\n item,\n );\n\n if (operationProperty) {\n return operationProperty;\n }\n\n const overrideTag = Object.entries(mockOptions?.tags ?? {})\n .toSorted((a, b) => {\n return a[0].localeCompare(b[0]);\n })\n .reduce(\n (acc, [tag, options]) =>\n tags.includes(tag) ? mergeDeep(acc, options) : acc,\n {} as { properties: Record<string, unknown> },\n );\n\n const tagProperty = resolveMockOverride(overrideTag.properties, item);\n\n if (tagProperty) {\n return tagProperty;\n }\n\n const property = resolveMockOverride(mockOptions?.properties, item);\n\n if (property) {\n return property;\n }\n\n if (\n (context.output.override.mock?.useExamples || mockOptions?.useExamples) &&\n item.example !== undefined\n ) {\n return {\n value: JSON.stringify(item.example),\n imports: [],\n name: item.name,\n overrided: true,\n };\n }\n\n const ALL_FORMAT = {\n ...DEFAULT_FORMAT_MOCK,\n ...mockOptions?.format,\n };\n\n const isNullable = Array.isArray(item.type) && item.type.includes('null');\n if (item.format && ALL_FORMAT[item.format]) {\n let value = ALL_FORMAT[item.format] as string;\n\n const dateFormats = ['date', 'date-time'];\n if (dateFormats.includes(item.format) && context.output.override.useDates) {\n value = `new Date(${value})`;\n }\n\n return {\n value: getNullable(value, isNullable),\n imports: [],\n name: item.name,\n overrided: false,\n };\n }\n\n const type = getItemType(item);\n const isFakerV9 =\n !!context.output.packageJson &&\n isFakerVersionV9(context.output.packageJson);\n\n switch (type) {\n case 'number':\n case 'integer': {\n const intFunction =\n context.output.override.useBigInt &&\n (item.format === 'int64' || item.format === 'uint64')\n ? 'bigInt'\n : 'int';\n let value = getNullable(\n `faker.number.${intFunction}({min: ${item.exclusiveMinimum ?? item.minimum ?? mockOptions?.numberMin}, max: ${item.exclusiveMaximum ?? item.maximum ?? mockOptions?.numberMax}${isFakerV9 && item.multipleOf !== undefined ? `, multipleOf: ${item.multipleOf}` : ''}})`,\n isNullable,\n );\n if (type === 'number') {\n value = getNullable(\n `faker.number.float({min: ${item.exclusiveMinimum ?? item.minimum ?? mockOptions?.numberMin}, max: ${item.exclusiveMaximum ?? item.maximum ?? mockOptions?.numberMax}${isFakerV9 && item.multipleOf !== undefined ? `, multipleOf: ${item.multipleOf}` : `, fractionDigits: ${mockOptions?.fractionDigits}`}})`,\n isNullable,\n );\n }\n const numberImports: GeneratorImport[] = [];\n\n if (item.enum) {\n value = getEnum(\n item,\n numberImports,\n context,\n existingReferencedProperties,\n 'number',\n );\n } else if ('const' in item && typeof item.const === 'string') {\n value = item.const;\n }\n\n return {\n value,\n enums: item.enum,\n imports: numberImports,\n name: item.name,\n };\n }\n\n case 'boolean': {\n let value = 'faker.datatype.boolean()';\n if ('const' in item && typeof item.const === 'string') {\n value = item.const;\n }\n return {\n value,\n imports: [],\n name: item.name,\n };\n }\n\n case 'array': {\n if (!item.items) {\n return { value: '[]', imports: [], name: item.name };\n }\n\n if (\n '$ref' in item.items &&\n existingReferencedProperties.includes(\n pascal(item.items.$ref.split('/').pop() ?? ''),\n )\n ) {\n return { value: '[]', imports: [], name: item.name };\n }\n\n const {\n value,\n enums,\n imports: resolvedImports,\n } = resolveMockValue({\n schema: {\n ...item.items,\n name: item.name,\n path: item.path ? `${item.path}.[]` : '#.[]',\n },\n combine,\n mockOptions,\n operationId,\n tags,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n });\n\n if (enums) {\n return {\n value,\n imports: resolvedImports,\n name: item.name,\n };\n }\n\n let mapValue = value;\n\n if (\n combine &&\n !value.startsWith('faker') &&\n !value.startsWith('{') &&\n !value.startsWith('Array.from')\n ) {\n mapValue = `{${value}}`;\n }\n\n return {\n value:\n `Array.from({ length: faker.number.int({ ` +\n `min: ${item.minItems ?? mockOptions?.arrayMin}, ` +\n `max: ${item.maxItems ?? mockOptions?.arrayMax} }) ` +\n `}, (_, i) => i + 1).map(() => (${mapValue}))`,\n imports: resolvedImports,\n name: item.name,\n };\n }\n\n case 'string': {\n const length = `{length: {min: ${item.minLength ?? mockOptions?.stringMin}, max: ${item.maxLength ?? mockOptions?.stringMax}}}`;\n let value = `faker.string.alpha(${length})`;\n const stringImports: GeneratorImport[] = [];\n\n if (item.enum) {\n value = getEnum(\n item,\n stringImports,\n context,\n existingReferencedProperties,\n 'string',\n );\n } else if (item.pattern) {\n value = `faker.helpers.fromRegExp('${item.pattern}')`;\n } else if ('const' in item) {\n value = `'${(item as OpenApiSchemaObject).const}'`;\n }\n\n return {\n value: getNullable(value, isNullable),\n enums: item.enum,\n name: item.name,\n imports: stringImports,\n };\n }\n\n case 'null': {\n return {\n value: 'null',\n imports: [],\n name: item.name,\n };\n }\n\n default: {\n if (item.enum) {\n const enumImports: GeneratorImport[] = [];\n const value = getEnum(\n item,\n enumImports,\n context,\n existingReferencedProperties,\n );\n\n return {\n value,\n enums: item.enum,\n imports: enumImports,\n name: item.name,\n };\n }\n\n return getMockObject({\n item,\n mockOptions,\n operationId,\n tags,\n combine: combine\n ? {\n separator: combine.separator,\n includedProperties: [],\n }\n : undefined,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n allowOverride,\n });\n }\n }\n}\n\nfunction getItemType(item: MockSchemaObject) {\n if (Array.isArray(item.type) && item.type.includes('null')) {\n const typesWithoutNull = item.type.filter((x) => x !== 'null');\n const itemType =\n typesWithoutNull.length === 1 ? typesWithoutNull[0] : typesWithoutNull;\n\n return itemType;\n }\n\n if (item.type) return item.type;\n if (!item.enum) return;\n\n const uniqTypes = new Set(item.enum.map((value) => typeof value));\n if (uniqTypes.size > 1) return;\n\n const type = [...uniqTypes.values()].at(0);\n if (!type) return;\n return ['string', 'number'].includes(type) ? type : undefined;\n}\n\nfunction getEnum(\n item: MockSchemaObject,\n imports: GeneratorImport[],\n context: ContextSpec,\n existingReferencedProperties: string[],\n type?: 'string' | 'number',\n) {\n if (!item.enum) return '';\n const joinedEnumValues = item.enum\n .filter((e) => e !== null) // TODO fix type, e can absolutely be null\n .map((e) =>\n type === 'string' || (type === undefined && typeof e === 'string')\n ? `'${escape(e)}'`\n : e,\n )\n .join(',');\n\n let enumValue = `[${joinedEnumValues}]`;\n if (context.output.override.enumGenerationType === EnumGeneration.ENUM) {\n if (item.isRef || existingReferencedProperties.length === 0) {\n enumValue += ` as ${item.name}${item.name.endsWith('[]') ? '' : '[]'}`;\n imports.push({ name: item.name });\n } else {\n enumValue += ` as ${existingReferencedProperties[existingReferencedProperties.length - 1]}['${item.name}']`;\n if (!item.path?.endsWith('[]')) enumValue += '[]';\n imports.push({\n name: existingReferencedProperties[\n existingReferencedProperties.length - 1\n ],\n });\n }\n } else {\n enumValue += ' as const';\n }\n\n // But if the value is a reference, we can use the object directly via the imports and using Object.values.\n if (item.isRef && type === 'string') {\n enumValue = `Object.values(${item.name})`;\n imports.push({\n name: item.name,\n values: true,\n });\n }\n\n return item.path?.endsWith('[]')\n ? `faker.helpers.arrayElements(${enumValue})`\n : `faker.helpers.arrayElement(${enumValue})`;\n}\n","import {\n type ContextSpec,\n type GeneratorImport,\n getRefInfo,\n isReference,\n type MockOptions,\n type OpenApiSchemaObject,\n pascal,\n} from '@orval/core';\nimport { prop } from 'remeda';\n\nimport type { MockDefinition, MockSchemaObject } from '../../types';\nimport { overrideVarName } from '../getters';\nimport { getMockScalar } from '../getters/scalar';\n\nfunction isRegex(key: string) {\n return key.startsWith('/') && key.endsWith('/');\n}\n\nexport function resolveMockOverride(\n properties: Record<string, unknown> | undefined = {},\n item: OpenApiSchemaObject & { name: string; path?: string },\n) {\n const path = item.path ?? `#.${item.name}`;\n const property = Object.entries(properties).find(([key]) => {\n if (isRegex(key)) {\n const regex = new RegExp(key.slice(1, -1));\n if (regex.test(item.name) || regex.test(path)) {\n return true;\n }\n }\n\n if (`#.${key}` === path) {\n return true;\n }\n\n return false;\n });\n\n if (!property) {\n return;\n }\n\n const isNullable = Array.isArray(item.type) && item.type.includes('null');\n\n return {\n value: getNullable(property[1] as string, isNullable),\n imports: [],\n name: item.name,\n overrided: true,\n };\n}\n\nexport function getNullable(value: string, nullable?: boolean) {\n return nullable ? `faker.helpers.arrayElement([${value}, null])` : value;\n}\n\ninterface ResolveMockValueOptions {\n schema: MockSchemaObject;\n operationId: string;\n mockOptions?: MockOptions;\n tags: string[];\n combine?: {\n separator: 'allOf' | 'oneOf' | 'anyOf';\n includedProperties: string[];\n };\n context: ContextSpec;\n imports: GeneratorImport[];\n // This is used to prevent recursion when combining schemas\n // When an element is added to the array, it means on this iteration, we've already seen this property\n existingReferencedProperties: string[];\n splitMockImplementations: string[];\n allowOverride?: boolean;\n}\n\nexport function resolveMockValue({\n schema,\n mockOptions,\n operationId,\n tags,\n combine,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n allowOverride,\n}: ResolveMockValueOptions): MockDefinition & { type?: string } {\n if (isReference(schema)) {\n const { originalName, refPaths } = getRefInfo(schema.$ref, context);\n\n const schemaRef = Array.isArray(refPaths)\n ? (prop(\n context.spec,\n // @ts-expect-error: [ts2556] refPaths are not guaranteed to be valid keys of the spec\n ...refPaths,\n ) as Partial<OpenApiSchemaObject>)\n : undefined;\n\n const newSchema = {\n ...schemaRef,\n name: pascal(originalName),\n path: schema.path,\n isRef: true,\n required: [...(schemaRef?.required ?? []), ...(schema.required ?? [])],\n };\n\n const newSeparator = newSchema.allOf\n ? 'allOf'\n : newSchema.oneOf\n ? 'oneOf'\n : 'anyOf';\n\n const scalar = getMockScalar({\n item: newSchema,\n mockOptions,\n operationId,\n tags,\n combine: combine\n ? {\n separator:\n combine.separator === 'anyOf' ? newSeparator : combine.separator,\n includedProperties:\n newSeparator === 'allOf' ? [] : combine.includedProperties,\n }\n : undefined,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n allowOverride,\n });\n if (\n scalar.value &&\n (newSchema.type === 'object' || newSchema.allOf) &&\n combine?.separator === 'oneOf'\n ) {\n const funcName = `get${pascal(operationId)}Response${pascal(newSchema.name)}Mock`;\n if (\n !splitMockImplementations.some((f) =>\n f.includes(`export const ${funcName}`),\n )\n ) {\n const discriminatedProperty = newSchema.discriminator?.propertyName;\n\n let type = `Partial<${newSchema.name}>`;\n if (discriminatedProperty) {\n type = `Omit<${type}, '${discriminatedProperty}'>`;\n }\n\n const args = `${overrideVarName}: ${type} = {}`;\n const func = `export const ${funcName} = (${args}): ${newSchema.name} => ({${scalar.value.startsWith('...') ? '' : '...'}${scalar.value}, ...${overrideVarName}});`;\n splitMockImplementations.push(func);\n }\n\n scalar.value = newSchema.nullable\n ? `${funcName}()`\n : `{...${funcName}()}`;\n\n scalar.imports.push({ name: newSchema.name });\n }\n\n return {\n ...scalar,\n type: getType(newSchema),\n };\n }\n\n const scalar = getMockScalar({\n item: schema,\n mockOptions,\n operationId,\n tags,\n combine,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n allowOverride,\n });\n return {\n ...scalar,\n type: getType(schema),\n };\n}\n\nfunction getType(schema: MockSchemaObject) {\n return (\n (schema.type as string | undefined) ??\n (schema.properties ? 'object' : schema.items ? 'array' : undefined)\n );\n}\n","import {\n type ContextSpec,\n type GeneratorImport,\n isReference,\n isSchema,\n type MockOptions,\n pascal,\n} from '@orval/core';\n\nimport type { MockDefinition, MockSchemaObject } from '../../types';\nimport { resolveMockValue } from '../resolvers';\n\ninterface CombineSchemasMockOptions {\n item: MockSchemaObject;\n separator: 'allOf' | 'oneOf' | 'anyOf';\n operationId: string;\n mockOptions?: MockOptions;\n tags: string[];\n combine?: {\n separator: 'allOf' | 'oneOf' | 'anyOf';\n includedProperties: string[];\n };\n context: ContextSpec;\n imports: GeneratorImport[];\n // This is used to prevent recursion when combining schemas\n // When an element is added to the array, it means on this iteration, we've already seen this property\n existingReferencedProperties: string[];\n splitMockImplementations: string[];\n}\n\nexport function combineSchemasMock({\n item,\n separator,\n mockOptions,\n operationId,\n tags,\n combine,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n}: CombineSchemasMockOptions): MockDefinition {\n const combineImports: GeneratorImport[] = [];\n const includedProperties: string[] = [...(combine?.includedProperties ?? [])];\n\n const isRefAndNotExisting =\n isReference(item) && !existingReferencedProperties.includes(item.name);\n\n const itemResolvedValue =\n isRefAndNotExisting || item.properties\n ? resolveMockValue({\n schema: Object.fromEntries(\n Object.entries(item).filter(([key]) => key !== separator),\n ) as MockSchemaObject,\n combine: {\n separator: 'allOf',\n includedProperties: [],\n },\n mockOptions,\n operationId,\n tags,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n })\n : undefined;\n\n includedProperties.push(...(itemResolvedValue?.includedProperties ?? []));\n combineImports.push(...(itemResolvedValue?.imports ?? []));\n let containsOnlyPrimitiveValues = true;\n\n const value = (item[separator] ?? []).reduce(\n (acc, val, _, arr) => {\n if (\n '$ref' in val &&\n existingReferencedProperties.includes(\n pascal(val.$ref.split('/').pop() ?? ''),\n )\n ) {\n if (arr.length === 1) {\n return 'undefined';\n }\n\n return acc;\n }\n\n // the required fields in this schema need to be considered\n // in the sub schema under the allOf key\n if (separator === 'allOf' && item.required) {\n val =\n isSchema(val) && val.required\n ? { ...val, required: [...item.required, ...val.required] }\n : { ...val, required: item.required };\n }\n\n const resolvedValue = resolveMockValue({\n schema: {\n ...val,\n name: item.name,\n path: item.path ?? '#',\n },\n combine: {\n separator,\n includedProperties:\n separator === 'oneOf'\n ? (itemResolvedValue?.includedProperties ?? [])\n : includedProperties,\n },\n mockOptions,\n operationId,\n tags,\n context,\n imports,\n existingReferencedProperties,\n splitMockImplementations,\n });\n\n combineImports.push(...resolvedValue.imports);\n includedProperties.push(...(resolvedValue.includedProperties ?? []));\n\n if (resolvedValue.value === '{}') {\n containsOnlyPrimitiveValues = false;\n return acc;\n }\n if (separator === 'allOf') {\n if (resolvedValue.value.startsWith('{') || !resolvedValue.type) {\n containsOnlyPrimitiveValues = false;\n return `${acc}...${resolvedValue.value},`;\n } else if (resolvedValue.type === 'object') {\n containsOnlyPrimitiveValues = false;\n return resolvedValue.value.startsWith('faker')\n ? `${acc}...${resolvedValue.value},`\n : `${acc}...{${resolvedValue.value}},`;\n }\n }\n return `${acc}${resolvedValue.value},`;\n },\n separator === 'allOf' ? '' : 'faker.helpers.arrayElement([',\n );\n let finalValue =\n value === 'undefined'\n ? value\n : // containsOnlyPrimitiveValues isn't just true, it's being set to false inside the above reduce and the type system doesn't detect it\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n `${separator === 'allOf' && !containsOnlyPrimitiveValues ? '{' : ''}${value}${separator === 'allOf' ? (containsOnlyPrimitiveValues ? '' : '}') : '])'}`;\n if (itemResolvedValue) {\n finalValue = finalValue.startsWith('...')\n ? `...{${finalValue}, ${itemResolvedValue.value}}`\n : `{...${finalValue}, ${itemResolvedValue.value}}`;\n }\n if (finalValue.endsWith(',')) {\n finalValue = finalValue.slice(0, Math.max(0, finalValue.length - 1));\n }\n\n return {\n value: finalValue,\n imports: combineImports,\n name: item.name,\n includedProperties,\n };\n}\n","import { camel, sanitize } from '@orval/core';\n\nconst hasParam = (path: string): boolean => /[^{]*{[\\w*_-]*}.*/.test(path);\n\nconst getRoutePath = (path: string): string => {\n const matches = /([^{]*){?([\\w*_-]*)}?(.*)/.exec(path);\n if (!matches?.length) return path; // impossible due to regexp grouping here, but for TS\n\n const prev = matches[1];\n const param = sanitize(camel(matches[2]), {\n es5keyword: true,\n underscore: true,\n dash: true,\n dot: true,\n });\n const next = hasParam(matches[3]) ? getRoutePath(matches[3]) : matches[3];\n\n return hasParam(path) ? `${prev}:${param}${next}` : `${prev}${param}${next}`;\n};\n\nexport const getRouteMSW = (route: string, baseUrl = '*') => {\n route = route.replaceAll(':', String.raw`\\:`);\n const splittedRoute = route.split('/');\n\n return splittedRoute.reduce((acc, path, i) => {\n if (!path && !i) {\n return acc;\n }\n\n if (!path.includes('{')) {\n return `${acc}/${path}`;\n }\n\n return `${acc}/${getRoutePath(path)}`;\n }, baseUrl);\n};\n","import {\n type ContextSpec,\n generalJSTypesWithArray,\n type GeneratorImport,\n type GlobalMockOptions,\n isFunction,\n type MockOptions,\n type NormalizedOverrideOutput,\n type OpenApiDocument,\n type OpenApiSchemaObject,\n resolveRef,\n type ResReqTypesValue,\n stringify,\n} from '@orval/core';\n\nimport { getMockScalar } from '../faker/getters';\n\nfunction getMockPropertiesWithoutFunc(properties: any, spec: OpenApiDocument) {\n return Object.entries(\n isFunction(properties) ? properties(spec) : properties,\n ).reduce<Record<string, string>>((acc, [key, value]) => {\n const implementation = isFunction(value)\n ? `(${value})()`\n : stringify(value as string)!;\n\n acc[key] = implementation.replaceAll(\n /import_faker\\.defaults|import_faker\\.faker|_faker\\.faker/g,\n 'faker',\n );\n return acc;\n }, {});\n}\n\nfunction getMockWithoutFunc(\n spec: OpenApiDocument,\n override?: NormalizedOverrideOutput,\n): MockOptions {\n return {\n arrayMin: override?.mock?.arrayMin,\n arrayMax: override?.mock?.arrayMax,\n stringMin: override?.mock?.stringMin,\n stringMax: override?.mock?.stringMax,\n numberMin: override?.mock?.numberMin,\n numberMax: override?.mock?.numberMax,\n required: override?.mock?.required,\n fractionDigits: override?.mock?.fractionDigits,\n ...(override?.mock?.properties\n ? {\n properties: getMockPropertiesWithoutFunc(\n override.mock.properties,\n spec,\n ),\n }\n : {}),\n ...(override?.mock?.format\n ? {\n format: getMockPropertiesWithoutFunc(override.mock.format, spec),\n }\n : {}),\n ...(override?.operations\n ? {\n operations: Object.entries(override.operations).reduce<\n Exclude<MockOptions['operations'], undefined>\n >((acc, [key, value]) => {\n if (value?.mock?.properties) {\n acc[key] = {\n properties: getMockPropertiesWithoutFunc(\n value.mock.properties,\n spec,\n ),\n };\n }\n\n return acc;\n }, {}),\n }\n : {}),\n ...(override?.tags\n ? {\n tags: Object.entries(override.tags).reduce<\n Exclude<MockOptions['tags'], undefined>\n >((acc, [key, value]) => {\n if (value?.mock?.properties) {\n acc[key] = {\n properties: getMockPropertiesWithoutFunc(\n value.mock.properties,\n spec,\n ),\n };\n }\n\n return acc;\n }, {}),\n }\n : {}),\n };\n}\n\nfunction getMockScalarJsTypes(\n definition: string,\n mockOptionsWithoutFunc: Record<string, unknown>,\n) {\n const isArray = definition.endsWith('[]');\n const type = isArray ? definition.slice(0, -2) : definition;\n\n switch (type) {\n case 'number': {\n return isArray\n ? `Array.from({length: faker.number.int({` +\n `min: ${mockOptionsWithoutFunc.arrayMin}, ` +\n `max: ${mockOptionsWithoutFunc.arrayMax}}` +\n `)}, () => faker.number.int())`\n : 'faker.number.int()';\n }\n case 'string': {\n return isArray\n ? `Array.from({length: faker.number.int({` +\n `min: ${mockOptionsWithoutFunc?.arrayMin},` +\n `max: ${mockOptionsWithoutFunc?.arrayMax}}` +\n `)}, () => faker.word.sample())`\n : 'faker.word.sample()';\n }\n default: {\n return 'undefined';\n }\n }\n}\n\ninterface GetResponsesMockDefinitionOptions {\n operationId: string;\n tags: string[];\n returnType: string;\n responses: ResReqTypesValue[];\n imports: GeneratorImport[];\n mockOptionsWithoutFunc: Record<string, unknown>;\n transformer?: (value: unknown, definition: string) => string;\n context: ContextSpec;\n mockOptions?: GlobalMockOptions;\n splitMockImplementations: string[];\n}\n\nexport function getResponsesMockDefinition({\n operationId,\n tags,\n returnType,\n responses,\n imports: responseImports,\n mockOptionsWithoutFunc,\n transformer,\n context,\n mockOptions,\n splitMockImplementations,\n}: GetResponsesMockDefinitionOptions) {\n return responses.reduce(\n (\n acc,\n { value: definition, originalSchema, example, examples, imports, isRef },\n ) => {\n if (\n context.output.override.mock?.useExamples ||\n mockOptions?.useExamples\n ) {\n let exampleValue =\n example ??\n originalSchema?.example ??\n Object.values(examples ?? {})[0] ??\n originalSchema?.examples?.[0];\n exampleValue = exampleValue?.value ?? exampleValue;\n if (exampleValue) {\n acc.definitions.push(\n transformer\n ? transformer(exampleValue, returnType)\n : JSON.stringify(exampleValue),\n );\n return acc;\n }\n }\n if (!definition || generalJSTypesWithArray.includes(definition)) {\n const value = getMockScalarJsTypes(definition, mockOptionsWithoutFunc);\n\n acc.definitions.push(\n transformer ? transformer(value, returnType) : value,\n );\n\n return acc;\n }\n\n if (!originalSchema && definition === 'Blob') {\n originalSchema = { type: 'string', format: 'binary' };\n } else if (!originalSchema) {\n return acc;\n }\n\n const resolvedRef = resolveRef<OpenApiSchemaObject>(\n originalSchema,\n context,\n );\n\n const scalar = getMockScalar({\n item: {\n name: definition,\n ...resolvedRef.schema,\n },\n imports,\n mockOptions: mockOptionsWithoutFunc,\n operationId,\n tags,\n context,\n existingReferencedProperties: [],\n splitMockImplementations,\n allowOverride: true,\n });\n\n acc.imports.push(...scalar.imports);\n acc.definitions.push(\n transformer ? transformer(scalar.value, returnType) : scalar.value,\n );\n\n return acc;\n },\n {\n definitions: [] as string[],\n imports: [] as GeneratorImport[],\n },\n );\n}\n\ninterface GetMockDefinitionOptions {\n operationId: string;\n tags: string[];\n returnType: string;\n responses: ResReqTypesValue[];\n imports: GeneratorImport[];\n override: NormalizedOverrideOutput;\n transformer?: (value: unknown, definition: string) => string;\n context: ContextSpec;\n mockOptions?: GlobalMockOptions;\n splitMockImplementations: string[];\n}\n\nexport function getMockDefinition({\n operationId,\n tags,\n returnType,\n responses,\n imports: responseImports,\n override,\n transformer,\n context,\n mockOptions,\n splitMockImplementations,\n}: GetMockDefinitionOptions) {\n const mockOptionsWithoutFunc = getMockWithoutFunc(context.spec, override);\n\n const { definitions, imports } = getResponsesMockDefinition({\n operationId,\n tags,\n returnType,\n responses,\n imports: responseImports,\n mockOptionsWithoutFunc,\n transformer,\n context,\n mockOptions,\n splitMockImplementations,\n });\n\n return {\n definition: '[' + definitions.join(', ') + ']',\n definitions,\n imports,\n };\n}\n\nexport function getMockOptionsDataOverride(\n operationTags: string[],\n operationId: string,\n override: NormalizedOverrideOutput,\n) {\n const responseOverride =\n override.operations[operationId]?.mock?.data ??\n operationTags\n .map((operationTag) => override.tags[operationTag]?.mock?.data)\n .find((e) => e !== undefined);\n const implementation = isFunction(responseOverride)\n ? `(${responseOverride})()`\n : stringify(responseOverride);\n\n return implementation?.replaceAll(\n /import_faker\\.defaults|import_faker\\.faker|_faker\\.faker/g,\n 'faker',\n );\n}\n","import {\n type ClientMockGeneratorBuilder,\n generateDependencyImports,\n type GenerateMockImports,\n type GeneratorDependency,\n type GeneratorImport,\n type GeneratorOptions,\n type GeneratorVerbOptions,\n type GlobalMockOptions,\n isFunction,\n isObject,\n pascal,\n type ResReqTypesValue,\n} from '@orval/core';\n\nimport { getDelay } from '../delay';\nimport { getRouteMSW, overrideVarName } from '../faker/getters';\nimport { getMockDefinition, getMockOptionsDataOverride } from './mocks';\n\nfunction getMSWDependencies(\n options?: GlobalMockOptions,\n): GeneratorDependency[] {\n const hasDelay = options?.delay !== false;\n const locale = options?.locale;\n\n const exports = [\n { name: 'http', values: true },\n { name: 'HttpResponse', values: true },\n { name: 'RequestHandlerOptions', values: false },\n ];\n\n if (hasDelay) {\n exports.push({ name: 'delay', values: true });\n }\n\n return [\n { exports, dependency: 'msw' },\n {\n exports: [{ name: 'faker', values: true }],\n dependency: locale\n ? `@faker-js/faker/locale/${locale}`\n : '@faker-js/faker',\n },\n ];\n}\n\nexport const generateMSWImports: GenerateMockImports = ({\n implementation,\n imports,\n projectName,\n hasSchemaDir,\n isAllowSyntheticDefaultImports,\n options,\n}) => {\n return generateDependencyImports(\n implementation,\n [...getMSWDependencies(options), ...imports],\n projectName,\n hasSchemaDir,\n isAllowSyntheticDefaultImports,\n );\n};\n\nfunction generateDefinition(\n name: string,\n route: string,\n getResponseMockFunctionNameBase: string,\n handlerNameBase: string,\n { operationId, response, verb, tags }: GeneratorVerbOptions,\n { override, context, mock }: GeneratorOptions,\n returnType: string,\n status: string,\n responseImports: GeneratorImport[],\n responses: ResReqTypesValue[],\n contentTypes: string[],\n splitMockImplementations: string[],\n) {\n const oldSplitMockImplementations = [...splitMockImplementations];\n const { definitions, definition, imports } = getMockDefinition({\n operationId,\n tags,\n returnType,\n responses,\n imports: responseImports,\n override,\n context,\n mockOptions: isFunction(mock) ? undefined : mock,\n splitMockImplementations,\n });\n\n const mockData = getMockOptionsDataOverride(tags, operationId, override);\n\n let value = '';\n\n if (mockData) {\n value = mockData;\n } else if (definitions.length > 1) {\n value = `faker.helpers.arrayElement(${definition})`;\n } else if (definitions[0]) {\n value = definitions[0];\n }\n\n const isResponseOverridable = value.includes(overrideVarName);\n const isTextPlain = contentTypes.includes('text/plain');\n const isReturnHttpResponse = value && value !== 'undefined';\n\n const getResponseMockFunctionName = `${getResponseMockFunctionNameBase}${pascal(\n name,\n )}`;\n const handlerName = `${handlerNameBase}${pascal(name)}`;\n\n const addedSplitMockImplementations = splitMockImplementations.slice(\n oldSplitMockImplementations.length,\n );\n splitMockImplementations.push(...addedSplitMockImplementations);\n const mockImplementations =\n addedSplitMockImplementations.length > 0\n ? `${addedSplitMockImplementations.join('\\n\\n')}\\n\\n`\n : '';\n\n const mockImplementation = isReturnHttpResponse\n ? `${mockImplementations}export const ${getResponseMockFunctionName} = (${\n isResponseOverridable\n ? `overrideResponse: Partial< ${returnType} > = {}`\n : ''\n })${mockData ? '' : `: ${returnType}`} => (${value})\\n\\n`\n : mockImplementations;\n\n const delay = getDelay(override, isFunction(mock) ? undefined : mock);\n const infoParam = 'info';\n const overrideResponse = `overrideResponse !== undefined\n ? (typeof overrideResponse === \"function\" ? await overrideResponse(${infoParam}) : overrideResponse)\n : ${getResponseMockFunctionName}()`;\n const handlerImplementation = `\nexport const ${handlerName} = (overrideResponse?: ${returnType} | ((${infoParam}: Parameters<Parameters<typeof http.${verb}>[1]>[0]) => Promise<${returnType}> | ${returnType}), options?: RequestHandlerOptions) => {\n return http.${verb}('${route}', async (${infoParam}) => {${\n delay === false\n ? ''\n : `await delay(${isFunction(delay) ? `(${delay})()` : delay});`\n }\n ${isReturnHttpResponse ? '' : `if (typeof overrideResponse === 'function') {await overrideResponse(info); }`}\n return new HttpResponse(${\n isReturnHttpResponse\n ? isTextPlain\n ? overrideResponse\n : `JSON.stringify(${overrideResponse})`\n : null\n },\n { status: ${status === 'default' ? 200 : status.replace(/XX$/, '00')},\n ${\n isReturnHttpResponse\n ? `headers: { 'Content-Type': ${isTextPlain ? \"'text/plain'\" : \"'application/json'\"} }`\n : ''\n }\n })\n }, options)\n}\\n`;\n\n const includeResponseImports = isTextPlain\n ? imports\n : [\n ...imports,\n ...response.imports.filter((r) => {\n // Only include imports which are actually used in mock.\n const reg = new RegExp(`\\\\b${r.name}\\\\b`);\n return (\n reg.test(handlerImplementation) || reg.test(mockImplementation)\n );\n }),\n ];\n\n return {\n implementation: {\n function: mockImplementation,\n handlerName: handlerName,\n handler: handlerImplementation,\n },\n imports: includeResponseImports,\n };\n}\n\nexport function generateMSW(\n generatorVerbOptions: GeneratorVerbOptions,\n generatorOptions: GeneratorOptions,\n): ClientMockGeneratorBuilder {\n const { pathRoute, override, mock } = generatorOptions;\n const { operationId, response } = generatorVerbOptions;\n\n const route = getRouteMSW(\n pathRoute,\n override.mock?.baseUrl ?? (isFunction(mock) ? undefined : mock?.baseUrl),\n );\n\n const handlerName = `get${pascal(operationId)}MockHandler`;\n const getResponseMockFunctionName = `get${pascal(operationId)}ResponseMock`;\n\n const splitMockImplementations: string[] = [];\n\n const baseDefinition = generateDefinition(\n '',\n route,\n getResponseMockFunctionName,\n handlerName,\n generatorVerbOptions,\n generatorOptions,\n response.definition.success,\n response.types.success[0]?.key ?? '200',\n response.imports,\n response.types.success,\n response.contentTypes,\n splitMockImplementations,\n );\n\n const mockImplementations = [baseDefinition.implementation.function];\n const handlerImplementations = [baseDefinition.implementation.handler];\n const imports = [...baseDefinition.imports];\n\n if (\n generatorOptions.mock &&\n isObject(generatorOptions.mock) &&\n generatorOptions.mock.generateEachHttpStatus\n ) {\n for (const statusResponse of [\n ...response.types.success,\n ...response.types.errors,\n ]) {\n const definition = generateDefinition(\n statusResponse.key,\n route,\n getResponseMockFunctionName,\n handlerName,\n generatorVerbOptions,\n generatorOptions,\n statusResponse.value,\n statusResponse.key,\n response.imports,\n [statusResponse],\n [statusResponse.contentType],\n splitMockImplementations,\n );\n mockImplementations.push(definition.implementation.function);\n handlerImplementations.push(definition.implementation.handler);\n imports.push(...definition.imports);\n }\n }\n\n return {\n implementation: {\n function: mockImplementations.join('\\n'),\n handlerName: handlerName,\n handler: handlerImplementations.join('\\n'),\n },\n imports: imports,\n };\n}\n","import type {\n GenerateMockImports,\n GeneratorOptions,\n GeneratorVerbOptions,\n GlobalMockOptions,\n} from '@orval/core';\n\nimport { generateMSW, generateMSWImports } from './msw';\n\nexport const DEFAULT_MOCK_OPTIONS: GlobalMockOptions = {\n type: 'msw',\n useExamples: false,\n};\n\nexport const generateMockImports: GenerateMockImports = (importOptions) => {\n switch (importOptions.options?.type) {\n default: {\n // case 'msw':\n return generateMSWImports(importOptions);\n }\n }\n};\n\nexport function generateMock(\n generatorVerbOptions: GeneratorVerbOptions,\n generatorOptions: Omit<GeneratorOptions, 'mock'> & {\n mock: GlobalMockOptions;\n },\n) {\n switch (generatorOptions.mock.type) {\n default: {\n // case 'msw':\n return generateMSW(generatorVerbOptions, generatorOptions);\n }\n }\n}\n"],"x_google_ignoreList":[1],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orval/mock",
3
- "version": "8.0.0-rc.2",
3
+ "version": "8.0.0-rc.3",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "exports": {
@@ -23,8 +23,7 @@
23
23
  "nuke": "rimraf .turbo dist node_modules"
24
24
  },
25
25
  "dependencies": {
26
- "@orval/core": "8.0.0-rc.2",
27
- "openapi3-ts": "4.5.0"
26
+ "@orval/core": "8.0.0-rc.3"
28
27
  },
29
28
  "devDependencies": {
30
29
  "eslint": "9.39.1",
@@ -33,5 +32,5 @@
33
32
  "typescript": "5.9.3",
34
33
  "vitest": "4.0.8"
35
34
  },
36
- "stableVersion": "8.0.0-rc.1"
35
+ "stableVersion": "8.0.0-rc.2"
37
36
  }