@zenstackhq/openapi 1.0.0-alpha.99 → 1.0.0-beta.10

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rest-generator.js","sourceRoot":"","sources":["../src/rest-generator.ts"],"names":[],"mappings":"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"}
@@ -1,29 +1,18 @@
1
- import { DMMF } from '@prisma/generator-helper';
2
- import { PluginOptions } from '@zenstackhq/sdk';
3
- import { type Model } from '@zenstackhq/sdk/ast';
1
+ import { OpenAPIGeneratorBase } from './generator-base';
4
2
  /**
5
3
  * Generates OpenAPI specification.
6
4
  */
7
- export declare class OpenAPIGenerator {
8
- private model;
9
- private options;
10
- private dmmf;
5
+ export declare class RPCOpenAPIGenerator extends OpenAPIGeneratorBase {
11
6
  private inputObjectTypes;
12
7
  private outputObjectTypes;
13
8
  private usedComponents;
14
9
  private aggregateOperationSupport;
15
- private includedModels;
16
10
  private warnings;
17
- constructor(model: Model, options: PluginOptions, dmmf: DMMF.Document);
18
11
  generate(): string[];
19
- private generateSecuritySchemes;
20
- private pruneComponents;
21
- private collectUsedComponents;
22
12
  private generatePaths;
23
13
  private generatePathsForModel;
24
14
  private aggregateFields;
25
15
  private component;
26
- private getOption;
27
16
  private generateComponents;
28
17
  private generateEnumComponent;
29
18
  private generateEntityComponent;
@@ -33,8 +22,6 @@ export declare class OpenAPIGenerator {
33
22
  private setInputRequired;
34
23
  private setOutputRequired;
35
24
  private prismaTypeToOpenAPIType;
36
- private wrapArray;
37
25
  private ref;
38
- private array;
39
- private oneOf;
26
+ private response;
40
27
  }
@@ -27,40 +27,34 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  return (mod && mod.__esModule) ? mod : { "default": mod };
28
28
  };
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.OpenAPIGenerator = void 0;
30
+ exports.RPCOpenAPIGenerator = void 0;
31
31
  const sdk_1 = require("@zenstackhq/sdk");
32
32
  const ast_1 = require("@zenstackhq/sdk/ast");
33
33
  const dmmf_helpers_1 = require("@zenstackhq/sdk/dmmf-helpers");
34
- const change_case_1 = require("change-case");
35
34
  const fs = __importStar(require("fs"));
35
+ const lower_case_first_1 = require("lower-case-first");
36
36
  const path = __importStar(require("path"));
37
37
  const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
38
38
  const yaml_1 = __importDefault(require("yaml"));
39
- const zod_validation_error_1 = require("zod-validation-error");
39
+ const generator_base_1 = require("./generator-base");
40
40
  const meta_1 = require("./meta");
41
- const schema_1 = require("./schema");
42
41
  /**
43
42
  * Generates OpenAPI specification.
44
43
  */
45
- class OpenAPIGenerator {
46
- constructor(model, options, dmmf) {
47
- this.model = model;
48
- this.options = options;
49
- this.dmmf = dmmf;
44
+ class RPCOpenAPIGenerator extends generator_base_1.OpenAPIGeneratorBase {
45
+ constructor() {
46
+ super(...arguments);
50
47
  this.inputObjectTypes = [];
51
48
  this.outputObjectTypes = [];
52
49
  this.usedComponents = new Set();
53
50
  this.warnings = [];
54
51
  }
55
52
  generate() {
56
- const output = this.getOption('output', '');
57
- if (!output) {
58
- throw new sdk_1.PluginError('"output" option is required');
59
- }
53
+ let output = (0, sdk_1.requireOption)(this.options, 'output');
54
+ output = (0, sdk_1.resolvePath)(output, this.options);
60
55
  // input types
61
56
  this.inputObjectTypes.push(...this.dmmf.schema.inputObjectTypes.prisma);
62
57
  this.outputObjectTypes.push(...this.dmmf.schema.outputObjectTypes.prisma);
63
- this.includedModels = (0, sdk_1.getDataModels)(this.model).filter((d) => !(0, sdk_1.hasAttribute)(d, '@@openapi.ignore'));
64
58
  // add input object types that are missing from Prisma dmmf
65
59
  (0, dmmf_helpers_1.addMissingInputObjectTypesForModelArgs)(this.inputObjectTypes, this.dmmf.datamodel.models);
66
60
  (0, dmmf_helpers_1.addMissingInputObjectTypesForInclude)(this.inputObjectTypes, this.dmmf.datamodel.models);
@@ -70,13 +64,13 @@ class OpenAPIGenerator {
70
64
  const components = this.generateComponents();
71
65
  const paths = this.generatePaths(components);
72
66
  // generate security schemes, and root-level security
73
- this.generateSecuritySchemes(components);
67
+ components.securitySchemes = this.generateSecuritySchemes();
74
68
  let security = undefined;
75
69
  if (components.securitySchemes && Object.keys(components.securitySchemes).length > 0) {
76
70
  security = Object.keys(components.securitySchemes).map((scheme) => ({ [scheme]: [] }));
77
71
  }
78
72
  // prune unused component schemas
79
- this.pruneComponents(components);
73
+ this.pruneComponents(paths, components);
80
74
  const openapi = {
81
75
  openapi: this.getOption('specVersion', '3.1.0'),
82
76
  info: {
@@ -89,7 +83,7 @@ class OpenAPIGenerator {
89
83
  var _a;
90
84
  const meta = (0, meta_1.getModelResourceMeta)(model);
91
85
  return {
92
- name: (0, change_case_1.camelCase)(model.name),
86
+ name: (0, lower_case_first_1.lowerCaseFirst)(model.name),
93
87
  description: (_a = meta === null || meta === void 0 ? void 0 : meta.tagDescription) !== null && _a !== void 0 ? _a : `${model.name} operations`,
94
88
  };
95
89
  }),
@@ -106,75 +100,15 @@ class OpenAPIGenerator {
106
100
  }
107
101
  return this.warnings;
108
102
  }
109
- generateSecuritySchemes(components) {
110
- const securitySchemes = this.getOption('securitySchemes');
111
- if (securitySchemes) {
112
- const parsed = schema_1.SecuritySchemesSchema.safeParse(securitySchemes);
113
- if (!parsed.success) {
114
- throw new sdk_1.PluginError(`"securitySchemes" option is invalid: ${(0, zod_validation_error_1.fromZodError)(parsed.error)}`);
115
- }
116
- components.securitySchemes = parsed.data;
117
- }
118
- }
119
- pruneComponents(components) {
120
- const schemas = components.schemas;
121
- if (schemas) {
122
- // build a transitive closure for all reachable schemas from roots
123
- const allUsed = new Set(this.usedComponents);
124
- let todo = [...allUsed];
125
- while (todo.length > 0) {
126
- const curr = new Set(allUsed);
127
- Object.entries(schemas)
128
- .filter(([key]) => todo.includes(key))
129
- .forEach(([, value]) => {
130
- this.collectUsedComponents(value, allUsed);
131
- });
132
- todo = [...allUsed].filter((e) => !curr.has(e));
133
- }
134
- // prune unused schemas
135
- Object.keys(schemas).forEach((key) => {
136
- if (!allUsed.has(key)) {
137
- delete schemas[key];
138
- }
139
- });
140
- }
141
- }
142
- collectUsedComponents(value, allUsed) {
143
- if (!value) {
144
- return;
145
- }
146
- if (Array.isArray(value)) {
147
- value.forEach((item) => {
148
- this.collectUsedComponents(item, allUsed);
149
- });
150
- }
151
- else if (typeof value === 'object') {
152
- Object.entries(value).forEach(([subKey, subValue]) => {
153
- if (subKey === '$ref') {
154
- const ref = subValue;
155
- const name = ref.split('/').pop();
156
- if (name && !allUsed.has(name)) {
157
- allUsed.add(name);
158
- }
159
- }
160
- else {
161
- this.collectUsedComponents(subValue, allUsed);
162
- }
163
- });
164
- }
165
- }
166
103
  generatePaths(components) {
167
104
  let result = {};
168
- const includeModelNames = this.includedModels.map((d) => d.name);
169
105
  for (const model of this.dmmf.datamodel.models) {
170
- if (includeModelNames.includes(model.name)) {
171
- const zmodel = this.model.declarations.find((d) => (0, ast_1.isDataModel)(d) && d.name === model.name);
172
- if (zmodel) {
173
- result = Object.assign(Object.assign({}, result), this.generatePathsForModel(model, zmodel, components));
174
- }
175
- else {
176
- this.warnings.push(`Unable to load ZModel definition for: ${model.name}}`);
177
- }
106
+ const zmodel = this.model.declarations.find((d) => (0, ast_1.isDataModel)(d) && d.name === model.name);
107
+ if (zmodel) {
108
+ result = Object.assign(Object.assign({}, result), this.generatePathsForModel(model, zmodel, components));
109
+ }
110
+ else {
111
+ this.warnings.push(`Unable to load ZModel definition for: ${model.name}}`);
178
112
  }
179
113
  }
180
114
  return result;
@@ -198,13 +132,15 @@ class OpenAPIGenerator {
198
132
  operation: 'create',
199
133
  inputType: this.component(`${model.name}CreateArgs`, {
200
134
  type: 'object',
135
+ required: ['data'],
201
136
  properties: {
202
137
  select: this.ref(`${model.name}Select`),
203
138
  include: hasRelation ? this.ref(`${model.name}Include`) : undefined,
204
139
  data: this.ref(`${model.name}CreateInput`),
140
+ meta: this.ref('_Meta'),
205
141
  },
206
142
  }, components),
207
- outputType: this.ref(model.name),
143
+ outputType: this.response(this.ref(model.name)),
208
144
  description: `Create a new ${model.name}`,
209
145
  successCode: 201,
210
146
  security: create === true ? [] : undefined,
@@ -216,11 +152,13 @@ class OpenAPIGenerator {
216
152
  operation: 'createMany',
217
153
  inputType: this.component(`${model.name}CreateManyArgs`, {
218
154
  type: 'object',
155
+ required: ['data'],
219
156
  properties: {
220
157
  data: this.ref(`${model.name}CreateManyInput`),
158
+ meta: this.ref('_Meta'),
221
159
  },
222
160
  }, components),
223
- outputType: this.ref('BatchPayload'),
161
+ outputType: this.response(this.ref('BatchPayload')),
224
162
  description: `Create several ${model.name}`,
225
163
  successCode: 201,
226
164
  security: create === true ? [] : undefined,
@@ -232,13 +170,15 @@ class OpenAPIGenerator {
232
170
  operation: 'findUnique',
233
171
  inputType: this.component(`${model.name}FindUniqueArgs`, {
234
172
  type: 'object',
173
+ required: ['where'],
235
174
  properties: {
236
175
  select: this.ref(`${model.name}Select`),
237
176
  include: hasRelation ? this.ref(`${model.name}Include`) : undefined,
238
177
  where: this.ref(`${model.name}WhereUniqueInput`),
178
+ meta: this.ref('_Meta'),
239
179
  },
240
180
  }, components),
241
- outputType: this.ref(model.name),
181
+ outputType: this.response(this.ref(model.name)),
242
182
  description: `Find one unique ${model.name}`,
243
183
  security: read === true ? [] : undefined,
244
184
  });
@@ -253,9 +193,10 @@ class OpenAPIGenerator {
253
193
  select: this.ref(`${model.name}Select`),
254
194
  include: hasRelation ? this.ref(`${model.name}Include`) : undefined,
255
195
  where: this.ref(`${model.name}WhereInput`),
196
+ meta: this.ref('_Meta'),
256
197
  },
257
198
  }, components),
258
- outputType: this.ref(model.name),
199
+ outputType: this.response(this.ref(model.name)),
259
200
  description: `Find the first ${model.name} matching the given condition`,
260
201
  security: read === true ? [] : undefined,
261
202
  });
@@ -270,9 +211,10 @@ class OpenAPIGenerator {
270
211
  select: this.ref(`${model.name}Select`),
271
212
  include: hasRelation ? this.ref(`${model.name}Include`) : undefined,
272
213
  where: this.ref(`${model.name}WhereInput`),
214
+ meta: this.ref('_Meta'),
273
215
  },
274
216
  }, components),
275
- outputType: this.array(this.ref(model.name)),
217
+ outputType: this.response(this.array(this.ref(model.name))),
276
218
  description: `Find a list of ${model.name}`,
277
219
  security: read === true ? [] : undefined,
278
220
  });
@@ -283,14 +225,16 @@ class OpenAPIGenerator {
283
225
  operation: 'update',
284
226
  inputType: this.component(`${model.name}UpdateArgs`, {
285
227
  type: 'object',
228
+ required: ['where', 'data'],
286
229
  properties: {
287
230
  select: this.ref(`${model.name}Select`),
288
231
  include: hasRelation ? this.ref(`${model.name}Include`) : undefined,
289
232
  where: this.ref(`${model.name}WhereUniqueInput`),
290
233
  data: this.ref(`${model.name}UpdateInput`),
234
+ meta: this.ref('_Meta'),
291
235
  },
292
236
  }, components),
293
- outputType: this.ref(model.name),
237
+ outputType: this.response(this.ref(model.name)),
294
238
  description: `Update a ${model.name}`,
295
239
  security: update === true ? [] : undefined,
296
240
  });
@@ -301,12 +245,14 @@ class OpenAPIGenerator {
301
245
  method: 'patch',
302
246
  inputType: this.component(`${model.name}UpdateManyArgs`, {
303
247
  type: 'object',
248
+ required: ['data'],
304
249
  properties: {
305
250
  where: this.ref(`${model.name}WhereInput`),
306
251
  data: this.ref(`${model.name}UpdateManyMutationInput`),
252
+ meta: this.ref('_Meta'),
307
253
  },
308
254
  }, components),
309
- outputType: this.ref('BatchPayload'),
255
+ outputType: this.response(this.ref('BatchPayload')),
310
256
  description: `Update ${model.name}s matching the given condition`,
311
257
  security: update === true ? [] : undefined,
312
258
  });
@@ -317,15 +263,17 @@ class OpenAPIGenerator {
317
263
  operation: 'upsert',
318
264
  inputType: this.component(`${model.name}UpsertArgs`, {
319
265
  type: 'object',
266
+ required: ['create', 'update', 'where'],
320
267
  properties: {
321
268
  select: this.ref(`${model.name}Select`),
322
269
  include: hasRelation ? this.ref(`${model.name}Include`) : undefined,
323
270
  where: this.ref(`${model.name}WhereUniqueInput`),
324
271
  create: this.ref(`${model.name}CreateInput`),
325
272
  update: this.ref(`${model.name}UpdateInput`),
273
+ meta: this.ref('_Meta'),
326
274
  },
327
275
  }, components),
328
- outputType: this.ref(model.name),
276
+ outputType: this.response(this.ref(model.name)),
329
277
  description: `Upsert a ${model.name}`,
330
278
  security: create === true && update == true ? [] : undefined,
331
279
  });
@@ -336,13 +284,15 @@ class OpenAPIGenerator {
336
284
  operation: 'delete',
337
285
  inputType: this.component(`${model.name}DeleteUniqueArgs`, {
338
286
  type: 'object',
287
+ required: ['where'],
339
288
  properties: {
340
289
  select: this.ref(`${model.name}Select`),
341
290
  include: hasRelation ? this.ref(`${model.name}Include`) : undefined,
342
291
  where: this.ref(`${model.name}WhereUniqueInput`),
292
+ meta: this.ref('_Meta'),
343
293
  },
344
294
  }, components),
345
- outputType: this.ref(model.name),
295
+ outputType: this.response(this.ref(model.name)),
346
296
  description: `Delete one unique ${model.name}`,
347
297
  security: del === true ? [] : undefined,
348
298
  });
@@ -355,9 +305,10 @@ class OpenAPIGenerator {
355
305
  type: 'object',
356
306
  properties: {
357
307
  where: this.ref(`${model.name}WhereInput`),
308
+ meta: this.ref('_Meta'),
358
309
  },
359
310
  }, components),
360
- outputType: this.ref('BatchPayload'),
311
+ outputType: this.response(this.ref('BatchPayload')),
361
312
  description: `Delete ${model.name}s matching the given condition`,
362
313
  security: del === true ? [] : undefined,
363
314
  });
@@ -371,9 +322,10 @@ class OpenAPIGenerator {
371
322
  properties: {
372
323
  select: this.ref(`${model.name}Select`),
373
324
  where: this.ref(`${model.name}WhereInput`),
325
+ meta: this.ref('_Meta'),
374
326
  },
375
327
  }, components),
376
- outputType: this.oneOf({ type: 'integer' }, this.ref(`${model.name}CountAggregateOutputType`)),
328
+ outputType: this.response(this.oneOf({ type: 'integer' }, this.ref(`${model.name}CountAggregateOutputType`))),
377
329
  description: `Find a list of ${model.name}`,
378
330
  security: read === true ? [] : undefined,
379
331
  });
@@ -383,9 +335,9 @@ class OpenAPIGenerator {
383
335
  operation: 'aggregate',
384
336
  inputType: this.component(`${model.name}AggregateArgs`, {
385
337
  type: 'object',
386
- properties: Object.assign({ where: this.ref(`${model.name}WhereInput`), orderBy: this.ref(`${model.name}OrderByWithRelationInput`), cursor: this.ref(`${model.name}WhereUniqueInput`), take: { type: 'integer' }, skip: { type: 'integer' } }, this.aggregateFields(model)),
338
+ properties: Object.assign(Object.assign({ where: this.ref(`${model.name}WhereInput`), orderBy: this.ref(`${model.name}OrderByWithRelationInput`), cursor: this.ref(`${model.name}WhereUniqueInput`), take: { type: 'integer' }, skip: { type: 'integer' } }, this.aggregateFields(model)), { meta: this.ref('_Meta') }),
387
339
  }, components),
388
- outputType: this.ref(`Aggregate${model.name}`),
340
+ outputType: this.response(this.ref(`Aggregate${model.name}`)),
389
341
  description: `Aggregate ${model.name}s`,
390
342
  security: read === true ? [] : undefined,
391
343
  });
@@ -396,9 +348,9 @@ class OpenAPIGenerator {
396
348
  operation: 'groupBy',
397
349
  inputType: this.component(`${model.name}GroupByArgs`, {
398
350
  type: 'object',
399
- properties: Object.assign({ where: this.ref(`${model.name}WhereInput`), orderBy: this.ref(`${model.name}OrderByWithRelationInput`), by: this.ref(`${model.name}ScalarFieldEnum`), having: this.ref(`${model.name}ScalarWhereWithAggregatesInput`), take: { type: 'integer' }, skip: { type: 'integer' } }, this.aggregateFields(model)),
351
+ properties: Object.assign(Object.assign({ where: this.ref(`${model.name}WhereInput`), orderBy: this.ref(`${model.name}OrderByWithRelationInput`), by: this.ref(`${model.name}ScalarFieldEnum`), having: this.ref(`${model.name}ScalarWhereWithAggregatesInput`), take: { type: 'integer' }, skip: { type: 'integer' } }, this.aggregateFields(model)), { meta: this.ref('_Meta') }),
400
352
  }, components),
401
- outputType: this.array(this.ref(`${model.name}GroupByOutputType`)),
353
+ outputType: this.response(this.array(this.ref(`${model.name}GroupByOutputType`))),
402
354
  description: `Group ${model.name}s by fields`,
403
355
  security: read === true ? [] : undefined,
404
356
  });
@@ -423,7 +375,7 @@ class OpenAPIGenerator {
423
375
  const def = {
424
376
  operationId: `${operation}${model.name}`,
425
377
  description: (_c = meta === null || meta === void 0 ? void 0 : meta.description) !== null && _c !== void 0 ? _c : description,
426
- tags: (meta === null || meta === void 0 ? void 0 : meta.tags) || [(0, change_case_1.camelCase)(model.name)],
378
+ tags: (meta === null || meta === void 0 ? void 0 : meta.tags) || [(0, lower_case_first_1.lowerCaseFirst)(model.name)],
427
379
  summary: meta === null || meta === void 0 ? void 0 : meta.summary,
428
380
  // security priority: operation-level > model-level > inferred
429
381
  security: (_e = (_d = meta === null || meta === void 0 ? void 0 : meta.security) !== null && _d !== void 0 ? _d : resourceMeta === null || resourceMeta === void 0 ? void 0 : resourceMeta.security) !== null && _e !== void 0 ? _e : security,
@@ -438,10 +390,20 @@ class OpenAPIGenerator {
438
390
  },
439
391
  },
440
392
  '400': {
393
+ content: {
394
+ 'application/json': {
395
+ schema: this.ref('_Error'),
396
+ },
397
+ },
441
398
  description: 'Invalid request',
442
399
  },
443
400
  '403': {
444
- description: 'Forbidden',
401
+ content: {
402
+ 'application/json': {
403
+ schema: this.ref('_Error'),
404
+ },
405
+ },
406
+ description: 'Request is forbidden',
445
407
  },
446
408
  },
447
409
  };
@@ -461,18 +423,32 @@ class OpenAPIGenerator {
461
423
  name: 'q',
462
424
  in: 'query',
463
425
  required: true,
426
+ description: 'Superjson-serialized Prisma query object',
464
427
  content: {
465
428
  'application/json': {
466
429
  schema: inputType,
467
430
  },
468
431
  },
469
432
  },
433
+ {
434
+ name: 'meta',
435
+ in: 'query',
436
+ description: 'Superjson serialization metadata for parameter "q"',
437
+ content: {
438
+ 'application/json': {
439
+ schema: {},
440
+ },
441
+ },
442
+ },
470
443
  ];
471
444
  }
472
445
  }
473
- result[`${prefix}/${(0, change_case_1.camelCase)(model.name)}/${resolvedPath}`] = {
474
- [resolvedMethod]: def,
475
- };
446
+ const includeModelNames = this.includedModels.map((d) => d.name);
447
+ if (includeModelNames.includes(model.name)) {
448
+ result[`${prefix}/${(0, lower_case_first_1.lowerCaseFirst)(model.name)}/${resolvedPath}`] = {
449
+ [resolvedMethod]: def,
450
+ };
451
+ }
476
452
  }
477
453
  return result;
478
454
  }
@@ -503,12 +479,6 @@ class OpenAPIGenerator {
503
479
  components.schemas[name] = def;
504
480
  return this.ref(name);
505
481
  }
506
- getOption(name, defaultValue) {
507
- const value = this.options[name];
508
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
509
- // @ts-expect-error
510
- return value === undefined ? defaultValue : value;
511
- }
512
482
  generateComponents() {
513
483
  var _a;
514
484
  const schemas = {};
@@ -529,6 +499,54 @@ class OpenAPIGenerator {
529
499
  for (const output of this.outputObjectTypes.filter((t) => !['Query', 'Mutation'].includes(t.name))) {
530
500
  schemas[output.name] = this.generateOutputComponent(output);
531
501
  }
502
+ schemas['_Meta'] = {
503
+ type: 'object',
504
+ properties: {
505
+ meta: {
506
+ type: 'object',
507
+ description: 'Meta information about the request or response',
508
+ properties: {
509
+ serialization: {
510
+ description: 'Serialization metadata',
511
+ },
512
+ },
513
+ additionalProperties: true,
514
+ },
515
+ },
516
+ };
517
+ schemas['_Error'] = {
518
+ type: 'object',
519
+ required: ['error'],
520
+ properties: {
521
+ error: {
522
+ type: 'object',
523
+ required: ['message'],
524
+ properties: {
525
+ prisma: {
526
+ type: 'boolean',
527
+ description: 'Indicates if the error occurred during a Prisma call',
528
+ },
529
+ rejectedByPolicy: {
530
+ type: 'boolean',
531
+ description: 'Indicates if the error was due to rejection by a policy',
532
+ },
533
+ code: {
534
+ type: 'string',
535
+ description: 'Prisma error code. Only available when "prisma" field is true.',
536
+ },
537
+ message: {
538
+ type: 'string',
539
+ description: 'Error message',
540
+ },
541
+ reason: {
542
+ type: 'string',
543
+ description: 'Detailed error reason',
544
+ },
545
+ },
546
+ additionalProperties: true,
547
+ },
548
+ },
549
+ };
532
550
  // misc types
533
551
  schemas['BatchPayload'] = {
534
552
  type: 'object',
@@ -569,7 +587,7 @@ class OpenAPIGenerator {
569
587
  case 'object':
570
588
  return this.wrapArray(this.ref(def.type, false), def.isList);
571
589
  default:
572
- throw new sdk_1.PluginError(`Unsupported field kind: ${def.kind}`);
590
+ throw new sdk_1.PluginError(this.options.name, `Unsupported field kind: ${def.kind}`);
573
591
  }
574
592
  }
575
593
  generateInputComponent(input) {
@@ -577,7 +595,9 @@ class OpenAPIGenerator {
577
595
  const fields = input.fields.filter((f) => !sdk_1.AUXILIARY_FIELDS.includes(f.name));
578
596
  for (const field of fields) {
579
597
  const options = field.inputTypes
580
- .filter((f) => f.type !== 'Null')
598
+ .filter((f) => f.type !== 'Null' &&
599
+ // fieldRefTypes refer to other fields in the model and don't need to be generated as part of schema
600
+ f.location !== 'fieldRefTypes')
581
601
  .map((f) => {
582
602
  return this.wrapArray(this.prismaTypeToOpenAPIType(f.type), f.isList);
583
603
  });
@@ -628,13 +648,16 @@ class OpenAPIGenerator {
628
648
  case 'BigInt':
629
649
  return { type: 'integer' };
630
650
  case 'Float':
631
- case 'Decimal':
632
651
  return { type: 'number' };
652
+ case 'Decimal':
653
+ return this.oneOf({ type: 'string' }, { type: 'number' });
633
654
  case 'Boolean':
634
655
  case 'True':
635
656
  return { type: 'boolean' };
636
657
  case 'DateTime':
637
658
  return { type: 'string', format: 'date-time' };
659
+ case 'Bytes':
660
+ return { type: 'string', format: 'byte' };
638
661
  case 'JSON':
639
662
  case 'Json':
640
663
  return {};
@@ -642,26 +665,22 @@ class OpenAPIGenerator {
642
665
  return this.ref(type.toString(), false);
643
666
  }
644
667
  }
645
- wrapArray(schema, isArray) {
646
- if (isArray) {
647
- return { type: 'array', items: schema };
648
- }
649
- else {
650
- return schema;
651
- }
652
- }
653
- ref(type, rooted = true) {
668
+ ref(type, rooted = true, description) {
654
669
  if (rooted) {
655
670
  this.usedComponents.add(type);
656
671
  }
657
- return { $ref: `#/components/schemas/${type}` };
658
- }
659
- array(itemType) {
660
- return { type: 'array', items: itemType };
672
+ return { $ref: `#/components/schemas/${type}`, description };
661
673
  }
662
- oneOf(...schemas) {
663
- return { oneOf: schemas };
674
+ response(schema) {
675
+ return {
676
+ type: 'object',
677
+ required: ['data'],
678
+ properties: {
679
+ data: Object.assign(Object.assign({}, schema), { description: 'The Prisma response data serialized with superjson' }),
680
+ meta: this.ref('_Meta', true, 'The superjson serialization metadata for the "data" field'),
681
+ },
682
+ };
664
683
  }
665
684
  }
666
- exports.OpenAPIGenerator = OpenAPIGenerator;
667
- //# sourceMappingURL=generator.js.map
685
+ exports.RPCOpenAPIGenerator = RPCOpenAPIGenerator;
686
+ //# sourceMappingURL=rpc-generator.js.map