@zenstackhq/openapi 1.0.0-beta.19 → 1.0.0-beta.20

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@zenstackhq/openapi",
3
3
  "displayName": "ZenStack Plugin and Runtime for OpenAPI",
4
- "version": "1.0.0-beta.19",
4
+ "version": "1.0.0-beta.20",
5
5
  "description": "ZenStack plugin and runtime supporting OpenAPI",
6
6
  "main": "index.js",
7
7
  "repository": {
@@ -21,11 +21,12 @@
21
21
  "lower-case-first": "^2.0.2",
22
22
  "openapi-types": "^12.1.0",
23
23
  "tiny-invariant": "^1.3.1",
24
+ "upper-case-first": "^2.0.2",
24
25
  "yaml": "^2.2.1",
25
26
  "zod": "3.21.1",
26
27
  "zod-validation-error": "^0.2.1",
27
- "@zenstackhq/runtime": "1.0.0-beta.19",
28
- "@zenstackhq/sdk": "1.0.0-beta.19"
28
+ "@zenstackhq/runtime": "1.0.0-beta.20",
29
+ "@zenstackhq/sdk": "1.0.0-beta.20"
29
30
  },
30
31
  "devDependencies": {
31
32
  "@readme/openapi-parser": "^2.4.0",
@@ -43,8 +44,8 @@
43
44
  "tmp": "^0.2.1",
44
45
  "ts-jest": "^29.0.5",
45
46
  "typescript": "^4.9.5",
46
- "@zenstackhq/testtools": "1.0.0-beta.19",
47
- "zenstack": "1.0.0-beta.19"
47
+ "zenstack": "1.0.0-beta.20",
48
+ "@zenstackhq/testtools": "1.0.0-beta.20"
48
49
  },
49
50
  "scripts": {
50
51
  "clean": "rimraf dist",
package/rpc-generator.js CHANGED
@@ -35,6 +35,7 @@ const fs = __importStar(require("fs"));
35
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
+ const upper_case_first_1 = require("upper-case-first");
38
39
  const yaml_1 = __importDefault(require("yaml"));
39
40
  const generator_base_1 = require("./generator-base");
40
41
  const meta_1 = require("./meta");
@@ -122,6 +123,7 @@ class RPCOpenAPIGenerator extends generator_base_1.OpenAPIGeneratorBase {
122
123
  this.warnings.push(`Unable to find mapping for model ${model.name}`);
123
124
  return undefined;
124
125
  }
126
+ const modelName = (0, upper_case_first_1.upperCaseFirst)(model.name);
125
127
  const definitions = [];
126
128
  const hasRelation = zmodel.fields.some((f) => { var _a; return (0, ast_1.isDataModel)((_a = f.type.reference) === null || _a === void 0 ? void 0 : _a.ref); });
127
129
  // analyze access policies to determine default security
@@ -130,18 +132,18 @@ class RPCOpenAPIGenerator extends generator_base_1.OpenAPIGeneratorBase {
130
132
  definitions.push({
131
133
  method: 'post',
132
134
  operation: 'create',
133
- inputType: this.component(`${model.name}CreateArgs`, {
135
+ inputType: this.component(`${modelName}CreateArgs`, {
134
136
  type: 'object',
135
137
  required: ['data'],
136
138
  properties: {
137
- select: this.ref(`${model.name}Select`),
138
- include: hasRelation ? this.ref(`${model.name}Include`) : undefined,
139
- data: this.ref(`${model.name}CreateInput`),
139
+ select: this.ref(`${modelName}Select`),
140
+ include: hasRelation ? this.ref(`${modelName}Include`) : undefined,
141
+ data: this.ref(`${modelName}CreateInput`),
140
142
  meta: this.ref('_Meta'),
141
143
  },
142
144
  }, components),
143
- outputType: this.response(this.ref(model.name)),
144
- description: `Create a new ${model.name}`,
145
+ outputType: this.response(this.ref(modelName)),
146
+ description: `Create a new ${modelName}`,
145
147
  successCode: 201,
146
148
  security: create === true ? [] : undefined,
147
149
  });
@@ -150,16 +152,16 @@ class RPCOpenAPIGenerator extends generator_base_1.OpenAPIGeneratorBase {
150
152
  definitions.push({
151
153
  method: 'post',
152
154
  operation: 'createMany',
153
- inputType: this.component(`${model.name}CreateManyArgs`, {
155
+ inputType: this.component(`${modelName}CreateManyArgs`, {
154
156
  type: 'object',
155
157
  required: ['data'],
156
158
  properties: {
157
- data: this.ref(`${model.name}CreateManyInput`),
159
+ data: this.ref(`${modelName}CreateManyInput`),
158
160
  meta: this.ref('_Meta'),
159
161
  },
160
162
  }, components),
161
163
  outputType: this.response(this.ref('BatchPayload')),
162
- description: `Create several ${model.name}`,
164
+ description: `Create several ${modelName}`,
163
165
  successCode: 201,
164
166
  security: create === true ? [] : undefined,
165
167
  });
@@ -168,18 +170,18 @@ class RPCOpenAPIGenerator extends generator_base_1.OpenAPIGeneratorBase {
168
170
  definitions.push({
169
171
  method: 'get',
170
172
  operation: 'findUnique',
171
- inputType: this.component(`${model.name}FindUniqueArgs`, {
173
+ inputType: this.component(`${modelName}FindUniqueArgs`, {
172
174
  type: 'object',
173
175
  required: ['where'],
174
176
  properties: {
175
- select: this.ref(`${model.name}Select`),
176
- include: hasRelation ? this.ref(`${model.name}Include`) : undefined,
177
- where: this.ref(`${model.name}WhereUniqueInput`),
177
+ select: this.ref(`${modelName}Select`),
178
+ include: hasRelation ? this.ref(`${modelName}Include`) : undefined,
179
+ where: this.ref(`${modelName}WhereUniqueInput`),
178
180
  meta: this.ref('_Meta'),
179
181
  },
180
182
  }, components),
181
- outputType: this.response(this.ref(model.name)),
182
- description: `Find one unique ${model.name}`,
183
+ outputType: this.response(this.ref(modelName)),
184
+ description: `Find one unique ${modelName}`,
183
185
  security: read === true ? [] : undefined,
184
186
  });
185
187
  }
@@ -187,17 +189,17 @@ class RPCOpenAPIGenerator extends generator_base_1.OpenAPIGeneratorBase {
187
189
  definitions.push({
188
190
  method: 'get',
189
191
  operation: 'findFirst',
190
- inputType: this.component(`${model.name}FindFirstArgs`, {
192
+ inputType: this.component(`${modelName}FindFirstArgs`, {
191
193
  type: 'object',
192
194
  properties: {
193
- select: this.ref(`${model.name}Select`),
194
- include: hasRelation ? this.ref(`${model.name}Include`) : undefined,
195
- where: this.ref(`${model.name}WhereInput`),
195
+ select: this.ref(`${modelName}Select`),
196
+ include: hasRelation ? this.ref(`${modelName}Include`) : undefined,
197
+ where: this.ref(`${modelName}WhereInput`),
196
198
  meta: this.ref('_Meta'),
197
199
  },
198
200
  }, components),
199
- outputType: this.response(this.ref(model.name)),
200
- description: `Find the first ${model.name} matching the given condition`,
201
+ outputType: this.response(this.ref(modelName)),
202
+ description: `Find the first ${modelName} matching the given condition`,
201
203
  security: read === true ? [] : undefined,
202
204
  });
203
205
  }
@@ -205,17 +207,17 @@ class RPCOpenAPIGenerator extends generator_base_1.OpenAPIGeneratorBase {
205
207
  definitions.push({
206
208
  method: 'get',
207
209
  operation: 'findMany',
208
- inputType: this.component(`${model.name}FindManyArgs`, {
210
+ inputType: this.component(`${modelName}FindManyArgs`, {
209
211
  type: 'object',
210
212
  properties: {
211
- select: this.ref(`${model.name}Select`),
212
- include: hasRelation ? this.ref(`${model.name}Include`) : undefined,
213
- where: this.ref(`${model.name}WhereInput`),
213
+ select: this.ref(`${modelName}Select`),
214
+ include: hasRelation ? this.ref(`${modelName}Include`) : undefined,
215
+ where: this.ref(`${modelName}WhereInput`),
214
216
  meta: this.ref('_Meta'),
215
217
  },
216
218
  }, components),
217
- outputType: this.response(this.array(this.ref(model.name))),
218
- description: `Find a list of ${model.name}`,
219
+ outputType: this.response(this.array(this.ref(modelName))),
220
+ description: `Find a list of ${modelName}`,
219
221
  security: read === true ? [] : undefined,
220
222
  });
221
223
  }
@@ -223,19 +225,19 @@ class RPCOpenAPIGenerator extends generator_base_1.OpenAPIGeneratorBase {
223
225
  definitions.push({
224
226
  method: 'patch',
225
227
  operation: 'update',
226
- inputType: this.component(`${model.name}UpdateArgs`, {
228
+ inputType: this.component(`${modelName}UpdateArgs`, {
227
229
  type: 'object',
228
230
  required: ['where', 'data'],
229
231
  properties: {
230
- select: this.ref(`${model.name}Select`),
231
- include: hasRelation ? this.ref(`${model.name}Include`) : undefined,
232
- where: this.ref(`${model.name}WhereUniqueInput`),
233
- data: this.ref(`${model.name}UpdateInput`),
232
+ select: this.ref(`${modelName}Select`),
233
+ include: hasRelation ? this.ref(`${modelName}Include`) : undefined,
234
+ where: this.ref(`${modelName}WhereUniqueInput`),
235
+ data: this.ref(`${modelName}UpdateInput`),
234
236
  meta: this.ref('_Meta'),
235
237
  },
236
238
  }, components),
237
- outputType: this.response(this.ref(model.name)),
238
- description: `Update a ${model.name}`,
239
+ outputType: this.response(this.ref(modelName)),
240
+ description: `Update a ${modelName}`,
239
241
  security: update === true ? [] : undefined,
240
242
  });
241
243
  }
@@ -243,17 +245,17 @@ class RPCOpenAPIGenerator extends generator_base_1.OpenAPIGeneratorBase {
243
245
  definitions.push({
244
246
  operation: 'updateMany',
245
247
  method: 'patch',
246
- inputType: this.component(`${model.name}UpdateManyArgs`, {
248
+ inputType: this.component(`${modelName}UpdateManyArgs`, {
247
249
  type: 'object',
248
250
  required: ['data'],
249
251
  properties: {
250
- where: this.ref(`${model.name}WhereInput`),
251
- data: this.ref(`${model.name}UpdateManyMutationInput`),
252
+ where: this.ref(`${modelName}WhereInput`),
253
+ data: this.ref(`${modelName}UpdateManyMutationInput`),
252
254
  meta: this.ref('_Meta'),
253
255
  },
254
256
  }, components),
255
257
  outputType: this.response(this.ref('BatchPayload')),
256
- description: `Update ${model.name}s matching the given condition`,
258
+ description: `Update ${modelName}s matching the given condition`,
257
259
  security: update === true ? [] : undefined,
258
260
  });
259
261
  }
@@ -261,20 +263,20 @@ class RPCOpenAPIGenerator extends generator_base_1.OpenAPIGeneratorBase {
261
263
  definitions.push({
262
264
  method: 'post',
263
265
  operation: 'upsert',
264
- inputType: this.component(`${model.name}UpsertArgs`, {
266
+ inputType: this.component(`${modelName}UpsertArgs`, {
265
267
  type: 'object',
266
268
  required: ['create', 'update', 'where'],
267
269
  properties: {
268
- select: this.ref(`${model.name}Select`),
269
- include: hasRelation ? this.ref(`${model.name}Include`) : undefined,
270
- where: this.ref(`${model.name}WhereUniqueInput`),
271
- create: this.ref(`${model.name}CreateInput`),
272
- update: this.ref(`${model.name}UpdateInput`),
270
+ select: this.ref(`${modelName}Select`),
271
+ include: hasRelation ? this.ref(`${modelName}Include`) : undefined,
272
+ where: this.ref(`${modelName}WhereUniqueInput`),
273
+ create: this.ref(`${modelName}CreateInput`),
274
+ update: this.ref(`${modelName}UpdateInput`),
273
275
  meta: this.ref('_Meta'),
274
276
  },
275
277
  }, components),
276
- outputType: this.response(this.ref(model.name)),
277
- description: `Upsert a ${model.name}`,
278
+ outputType: this.response(this.ref(modelName)),
279
+ description: `Upsert a ${modelName}`,
278
280
  security: create === true && update == true ? [] : undefined,
279
281
  });
280
282
  }
@@ -282,18 +284,18 @@ class RPCOpenAPIGenerator extends generator_base_1.OpenAPIGeneratorBase {
282
284
  definitions.push({
283
285
  method: 'delete',
284
286
  operation: 'delete',
285
- inputType: this.component(`${model.name}DeleteUniqueArgs`, {
287
+ inputType: this.component(`${modelName}DeleteUniqueArgs`, {
286
288
  type: 'object',
287
289
  required: ['where'],
288
290
  properties: {
289
- select: this.ref(`${model.name}Select`),
290
- include: hasRelation ? this.ref(`${model.name}Include`) : undefined,
291
- where: this.ref(`${model.name}WhereUniqueInput`),
291
+ select: this.ref(`${modelName}Select`),
292
+ include: hasRelation ? this.ref(`${modelName}Include`) : undefined,
293
+ where: this.ref(`${modelName}WhereUniqueInput`),
292
294
  meta: this.ref('_Meta'),
293
295
  },
294
296
  }, components),
295
- outputType: this.response(this.ref(model.name)),
296
- description: `Delete one unique ${model.name}`,
297
+ outputType: this.response(this.ref(modelName)),
298
+ description: `Delete one unique ${modelName}`,
297
299
  security: del === true ? [] : undefined,
298
300
  });
299
301
  }
@@ -301,15 +303,15 @@ class RPCOpenAPIGenerator extends generator_base_1.OpenAPIGeneratorBase {
301
303
  definitions.push({
302
304
  method: 'delete',
303
305
  operation: 'deleteMany',
304
- inputType: this.component(`${model.name}DeleteManyArgs`, {
306
+ inputType: this.component(`${modelName}DeleteManyArgs`, {
305
307
  type: 'object',
306
308
  properties: {
307
- where: this.ref(`${model.name}WhereInput`),
309
+ where: this.ref(`${modelName}WhereInput`),
308
310
  meta: this.ref('_Meta'),
309
311
  },
310
312
  }, components),
311
313
  outputType: this.response(this.ref('BatchPayload')),
312
- description: `Delete ${model.name}s matching the given condition`,
314
+ description: `Delete ${modelName}s matching the given condition`,
313
315
  security: del === true ? [] : undefined,
314
316
  });
315
317
  }
@@ -317,28 +319,28 @@ class RPCOpenAPIGenerator extends generator_base_1.OpenAPIGeneratorBase {
317
319
  definitions.push({
318
320
  method: 'get',
319
321
  operation: 'count',
320
- inputType: this.component(`${model.name}CountArgs`, {
322
+ inputType: this.component(`${modelName}CountArgs`, {
321
323
  type: 'object',
322
324
  properties: {
323
- select: this.ref(`${model.name}Select`),
324
- where: this.ref(`${model.name}WhereInput`),
325
+ select: this.ref(`${modelName}Select`),
326
+ where: this.ref(`${modelName}WhereInput`),
325
327
  meta: this.ref('_Meta'),
326
328
  },
327
329
  }, components),
328
- outputType: this.response(this.oneOf({ type: 'integer' }, this.ref(`${model.name}CountAggregateOutputType`))),
329
- description: `Find a list of ${model.name}`,
330
+ outputType: this.response(this.oneOf({ type: 'integer' }, this.ref(`${modelName}CountAggregateOutputType`))),
331
+ description: `Find a list of ${modelName}`,
330
332
  security: read === true ? [] : undefined,
331
333
  });
332
334
  if (ops['aggregate']) {
333
335
  definitions.push({
334
336
  method: 'get',
335
337
  operation: 'aggregate',
336
- inputType: this.component(`${model.name}AggregateArgs`, {
338
+ inputType: this.component(`${modelName}AggregateArgs`, {
337
339
  type: 'object',
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') }),
340
+ properties: Object.assign(Object.assign({ where: this.ref(`${modelName}WhereInput`), orderBy: this.ref(`${modelName}OrderByWithRelationInput`), cursor: this.ref(`${modelName}WhereUniqueInput`), take: { type: 'integer' }, skip: { type: 'integer' } }, this.aggregateFields(model)), { meta: this.ref('_Meta') }),
339
341
  }, components),
340
- outputType: this.response(this.ref(`Aggregate${model.name}`)),
341
- description: `Aggregate ${model.name}s`,
342
+ outputType: this.response(this.ref(`Aggregate${modelName}`)),
343
+ description: `Aggregate ${modelName}s`,
342
344
  security: read === true ? [] : undefined,
343
345
  });
344
346
  }
@@ -346,12 +348,12 @@ class RPCOpenAPIGenerator extends generator_base_1.OpenAPIGeneratorBase {
346
348
  definitions.push({
347
349
  method: 'get',
348
350
  operation: 'groupBy',
349
- inputType: this.component(`${model.name}GroupByArgs`, {
351
+ inputType: this.component(`${modelName}GroupByArgs`, {
350
352
  type: 'object',
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') }),
353
+ properties: Object.assign(Object.assign({ where: this.ref(`${modelName}WhereInput`), orderBy: this.ref(`${modelName}OrderByWithRelationInput`), by: this.ref(`${modelName}ScalarFieldEnum`), having: this.ref(`${modelName}ScalarWhereWithAggregatesInput`), take: { type: 'integer' }, skip: { type: 'integer' } }, this.aggregateFields(model)), { meta: this.ref('_Meta') }),
352
354
  }, components),
353
- outputType: this.response(this.array(this.ref(`${model.name}GroupByOutputType`))),
354
- description: `Group ${model.name}s by fields`,
355
+ outputType: this.response(this.array(this.ref(`${modelName}GroupByOutputType`))),
356
+ description: `Group ${modelName}s by fields`,
355
357
  security: read === true ? [] : undefined,
356
358
  });
357
359
  }
@@ -373,7 +375,7 @@ class RPCOpenAPIGenerator extends generator_base_1.OpenAPIGeneratorBase {
373
375
  }
374
376
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
375
377
  const def = {
376
- operationId: `${operation}${model.name}`,
378
+ operationId: `${operation}${modelName}`,
377
379
  description: (_c = meta === null || meta === void 0 ? void 0 : meta.description) !== null && _c !== void 0 ? _c : description,
378
380
  tags: (meta === null || meta === void 0 ? void 0 : meta.tags) || [(0, lower_case_first_1.lowerCaseFirst)(model.name)],
379
381
  summary: meta === null || meta === void 0 ? void 0 : meta.summary,
@@ -455,21 +457,22 @@ class RPCOpenAPIGenerator extends generator_base_1.OpenAPIGeneratorBase {
455
457
  aggregateFields(model) {
456
458
  const result = {};
457
459
  const supportedOps = this.aggregateOperationSupport[model.name];
460
+ const modelName = (0, upper_case_first_1.upperCaseFirst)(model.name);
458
461
  if (supportedOps) {
459
462
  if (supportedOps.count) {
460
- result._count = this.oneOf({ type: 'boolean' }, this.ref(`${model.name}CountAggregateInput`));
463
+ result._count = this.oneOf({ type: 'boolean' }, this.ref(`${modelName}CountAggregateInput`));
461
464
  }
462
465
  if (supportedOps.min) {
463
- result._min = this.ref(`${model.name}MinAggregateInput`);
466
+ result._min = this.ref(`${modelName}MinAggregateInput`);
464
467
  }
465
468
  if (supportedOps.max) {
466
- result._max = this.ref(`${model.name}MaxAggregateInput`);
469
+ result._max = this.ref(`${modelName}MaxAggregateInput`);
467
470
  }
468
471
  if (supportedOps.sum) {
469
- result._sum = this.ref(`${model.name}SumAggregateInput`);
472
+ result._sum = this.ref(`${modelName}SumAggregateInput`);
470
473
  }
471
474
  if (supportedOps.avg) {
472
- result._avg = this.ref(`${model.name}AvgAggregateInput`);
475
+ result._avg = this.ref(`${modelName}AvgAggregateInput`);
473
476
  }
474
477
  }
475
478
  return result;
@@ -487,17 +490,17 @@ class RPCOpenAPIGenerator extends generator_base_1.OpenAPIGeneratorBase {
487
490
  };
488
491
  // user-defined and built-in enums
489
492
  for (const _enum of [...((_a = this.dmmf.schema.enumTypes.model) !== null && _a !== void 0 ? _a : []), ...this.dmmf.schema.enumTypes.prisma]) {
490
- schemas[_enum.name] = this.generateEnumComponent(_enum);
493
+ schemas[(0, upper_case_first_1.upperCaseFirst)(_enum.name)] = this.generateEnumComponent(_enum);
491
494
  }
492
495
  // data models
493
496
  for (const model of this.dmmf.datamodel.models) {
494
- schemas[model.name] = this.generateEntityComponent(model);
497
+ schemas[(0, upper_case_first_1.upperCaseFirst)(model.name)] = this.generateEntityComponent(model);
495
498
  }
496
499
  for (const input of this.inputObjectTypes) {
497
- schemas[input.name] = this.generateInputComponent(input);
500
+ schemas[(0, upper_case_first_1.upperCaseFirst)(input.name)] = this.generateInputComponent(input);
498
501
  }
499
502
  for (const output of this.outputObjectTypes.filter((t) => !['Query', 'Mutation'].includes(t.name))) {
500
- schemas[output.name] = this.generateOutputComponent(output);
503
+ schemas[(0, upper_case_first_1.upperCaseFirst)(output.name)] = this.generateOutputComponent(output);
501
504
  }
502
505
  schemas['_Meta'] = {
503
506
  type: 'object',
@@ -669,7 +672,7 @@ class RPCOpenAPIGenerator extends generator_base_1.OpenAPIGeneratorBase {
669
672
  if (rooted) {
670
673
  this.usedComponents.add(type);
671
674
  }
672
- return { $ref: `#/components/schemas/${type}`, description };
675
+ return { $ref: `#/components/schemas/${(0, upper_case_first_1.upperCaseFirst)(type)}`, description };
673
676
  }
674
677
  response(schema) {
675
678
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-generator.js","sourceRoot":"","sources":["../src/rpc-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rpc-generator.js","sourceRoot":"","sources":["../src/rpc-generator.ts"],"names":[],"mappings":"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"}