@visulima/crud 3.0.0-alpha.7 → 3.0.0-alpha.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/LICENSE.md +21 -0
  3. package/dist/adapter/prisma/index.d.cts +39 -0
  4. package/dist/adapter/prisma/index.d.mts +39 -0
  5. package/dist/adapter/prisma/index.d.ts +39 -0
  6. package/dist/adapter/prisma/types.d.cts +31 -0
  7. package/dist/adapter/prisma/types.d.mts +31 -0
  8. package/dist/adapter/prisma/types.d.ts +31 -0
  9. package/dist/adapter/prisma/utils/models-to-route-names.d.cts +5 -0
  10. package/dist/adapter/prisma/utils/models-to-route-names.d.mts +5 -0
  11. package/dist/adapter/prisma/utils/models-to-route-names.d.ts +5 -0
  12. package/dist/adapter/prisma/utils/parse-cursor.d.cts +3 -0
  13. package/dist/adapter/prisma/utils/parse-cursor.d.mts +3 -0
  14. package/dist/adapter/prisma/utils/parse-cursor.d.ts +3 -0
  15. package/dist/adapter/prisma/utils/parse-order-by.d.cts +4 -0
  16. package/dist/adapter/prisma/utils/parse-order-by.d.mts +4 -0
  17. package/dist/adapter/prisma/utils/parse-order-by.d.ts +4 -0
  18. package/dist/adapter/prisma/utils/parse-recursive.d.cts +4 -0
  19. package/dist/adapter/prisma/utils/parse-recursive.d.mts +4 -0
  20. package/dist/adapter/prisma/utils/parse-recursive.d.ts +4 -0
  21. package/dist/adapter/prisma/utils/parse-where.d.cts +4 -0
  22. package/dist/adapter/prisma/utils/parse-where.d.mts +4 -0
  23. package/dist/adapter/prisma/utils/parse-where.d.ts +4 -0
  24. package/dist/base-crud-handler.d.cts +9 -0
  25. package/dist/base-crud-handler.d.mts +9 -0
  26. package/dist/base-crud-handler.d.ts +9 -0
  27. package/dist/handler/create.d.cts +11 -0
  28. package/dist/handler/create.d.mts +11 -0
  29. package/dist/handler/create.d.ts +11 -0
  30. package/dist/handler/delete.d.cts +7 -0
  31. package/dist/handler/delete.d.mts +7 -0
  32. package/dist/handler/delete.d.ts +7 -0
  33. package/dist/handler/list.d.cts +9 -0
  34. package/dist/handler/list.d.mts +9 -0
  35. package/dist/handler/list.d.ts +9 -0
  36. package/dist/handler/read.d.cts +7 -0
  37. package/dist/handler/read.d.mts +7 -0
  38. package/dist/handler/read.d.ts +7 -0
  39. package/dist/handler/update.d.cts +11 -0
  40. package/dist/handler/update.d.mts +11 -0
  41. package/dist/handler/update.d.ts +11 -0
  42. package/dist/index.cjs +13 -0
  43. package/dist/index.d.cts +6 -0
  44. package/dist/index.d.mts +6 -127
  45. package/dist/index.d.ts +6 -127
  46. package/dist/index.mjs +3 -1085
  47. package/dist/next/api/edge/index.d.cts +3 -0
  48. package/dist/next/api/edge/index.d.mts +3 -0
  49. package/dist/next/api/edge/index.d.ts +3 -0
  50. package/dist/next/api/node/index.d.cts +4 -0
  51. package/dist/next/api/node/index.d.mts +4 -0
  52. package/dist/next/api/node/index.d.ts +4 -0
  53. package/dist/next/index.cjs +11 -0
  54. package/dist/next/index.d.cts +2 -0
  55. package/dist/next/index.d.mts +2 -8
  56. package/dist/next/index.d.ts +2 -8
  57. package/dist/next/index.mjs +2 -4863
  58. package/dist/packem_shared/PrismaAdapter-BTCwgMow.cjs +324 -0
  59. package/dist/packem_shared/PrismaAdapter-dVBZvBOv.mjs +318 -0
  60. package/dist/packem_shared/RouteType-Bk3uAK0x.cjs +14 -0
  61. package/dist/packem_shared/RouteType-CB2xrWdf.mjs +10 -0
  62. package/dist/packem_shared/base-crud-handler-BRbm1Ki9.cjs +572 -0
  63. package/dist/packem_shared/base-crud-handler-HgHqhIuP.mjs +587 -0
  64. package/dist/packem_shared/edgeHandler-3vMMElLT.mjs +16 -0
  65. package/dist/packem_shared/edgeHandler-CqtcF9J3.cjs +18 -0
  66. package/dist/packem_shared/get-accessible-routes-C6NF9Iry.cjs +16 -0
  67. package/dist/packem_shared/get-accessible-routes-sV5SDdFn.mjs +14 -0
  68. package/dist/packem_shared/models-to-route-names-CdwsK0V1.mjs +9 -0
  69. package/dist/packem_shared/models-to-route-names-Dv94PzhE.cjs +11 -0
  70. package/dist/packem_shared/modelsToOpenApi-Bq98YsFg.mjs +706 -0
  71. package/dist/{index.js → packem_shared/modelsToOpenApi-WQ8Ol6q7.cjs} +65 -452
  72. package/dist/packem_shared/nodeHandler-2kUmzwin.cjs +16 -0
  73. package/dist/packem_shared/nodeHandler-BnlkVX2A.mjs +14 -0
  74. package/dist/query-parser.d.cts +3 -0
  75. package/dist/query-parser.d.mts +3 -0
  76. package/dist/query-parser.d.ts +3 -0
  77. package/dist/swagger/adapter/prisma/index.d.cts +22 -0
  78. package/dist/swagger/adapter/prisma/index.d.mts +22 -0
  79. package/dist/swagger/adapter/prisma/index.d.ts +22 -0
  80. package/dist/swagger/json-schema-parser.d.cts +18 -0
  81. package/dist/swagger/json-schema-parser.d.mts +18 -0
  82. package/dist/swagger/json-schema-parser.d.ts +18 -0
  83. package/dist/swagger/parameters.d.cts +5 -0
  84. package/dist/swagger/parameters.d.mts +5 -0
  85. package/dist/swagger/parameters.d.ts +5 -0
  86. package/dist/swagger/types.d.cts +39 -0
  87. package/dist/swagger/types.d.mts +39 -0
  88. package/dist/swagger/types.d.ts +39 -0
  89. package/dist/swagger/utils/format-example-ref.d.cts +2 -0
  90. package/dist/swagger/utils/format-example-ref.d.mts +2 -0
  91. package/dist/swagger/utils/format-example-ref.d.ts +2 -0
  92. package/dist/swagger/utils/format-schema-ref.d.cts +2 -0
  93. package/dist/swagger/utils/format-schema-ref.d.mts +2 -0
  94. package/dist/swagger/utils/format-schema-ref.d.ts +2 -0
  95. package/dist/swagger/utils/get-models-accessible-routes.d.cts +4 -0
  96. package/dist/swagger/utils/get-models-accessible-routes.d.mts +4 -0
  97. package/dist/swagger/utils/get-models-accessible-routes.d.ts +4 -0
  98. package/dist/swagger/utils/get-swagger-paths.d.cts +12 -0
  99. package/dist/swagger/utils/get-swagger-paths.d.mts +12 -0
  100. package/dist/swagger/utils/get-swagger-paths.d.ts +12 -0
  101. package/dist/swagger/utils/get-swagger-tags.d.cts +4 -0
  102. package/dist/swagger/utils/get-swagger-tags.d.mts +4 -0
  103. package/dist/swagger/utils/get-swagger-tags.d.ts +4 -0
  104. package/dist/types.d.cts +106 -0
  105. package/dist/types.d.mts +106 -0
  106. package/dist/types.d.ts +106 -0
  107. package/dist/utils/format-resource-id.d.cts +2 -0
  108. package/dist/utils/format-resource-id.d.mts +2 -0
  109. package/dist/utils/format-resource-id.d.ts +2 -0
  110. package/dist/utils/get-accessible-routes.d.cts +3 -0
  111. package/dist/utils/get-accessible-routes.d.mts +3 -0
  112. package/dist/utils/get-accessible-routes.d.ts +3 -0
  113. package/dist/utils/get-resource-name-from-url.d.cts +5 -0
  114. package/dist/utils/get-resource-name-from-url.d.mts +5 -0
  115. package/dist/utils/get-resource-name-from-url.d.ts +5 -0
  116. package/dist/utils/get-route-type.d.cts +7 -0
  117. package/dist/utils/get-route-type.d.mts +7 -0
  118. package/dist/utils/get-route-type.d.ts +7 -0
  119. package/dist/utils/is-primitive.d.cts +2 -0
  120. package/dist/utils/is-primitive.d.mts +2 -0
  121. package/dist/utils/is-primitive.d.ts +2 -0
  122. package/dist/utils/validate-adapter-methods.d.cts +3 -0
  123. package/dist/utils/validate-adapter-methods.d.mts +3 -0
  124. package/dist/utils/validate-adapter-methods.d.ts +3 -0
  125. package/package.json +34 -17
  126. package/dist/chunk-GTXTWDUH.js +0 -77
  127. package/dist/chunk-GTXTWDUH.js.map +0 -1
  128. package/dist/chunk-VFQBXTKL.mjs +0 -73
  129. package/dist/chunk-VFQBXTKL.mjs.map +0 -1
  130. package/dist/index.js.map +0 -1
  131. package/dist/index.mjs.map +0 -1
  132. package/dist/next/index.js +0 -4870
  133. package/dist/next/index.js.map +0 -1
  134. package/dist/next/index.mjs.map +0 -1
  135. package/dist/types-C5c2M01-.d.mts +0 -138
  136. package/dist/types-C5c2M01-.d.ts +0 -138
@@ -1,376 +1,14 @@
1
1
  'use strict';
2
2
 
3
- var chunkGTXTWDUH_js = require('./chunk-GTXTWDUH.js');
4
- var createHttpError = require('http-errors');
5
- var pagination = require('@visulima/pagination');
6
- var prismaDmmfTransformer = require('@visulima/prisma-dmmf-transformer');
3
+ const modelsToRouteNames = require('./models-to-route-names-Dv94PzhE.cjs');
4
+ const pagination = require('@visulima/pagination');
5
+ const prismaDmmfTransformer = require('@visulima/prisma-dmmf-transformer');
6
+ const getAccessibleRoutes = require('./get-accessible-routes-C6NF9Iry.cjs');
7
+ const RouteType = require('./RouteType-Bk3uAK0x.cjs');
7
8
 
8
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
+ const formatSchemaReference = (schemaName) => `#/components/schemas/${schemaName}`;
9
10
 
10
- var createHttpError__default = /*#__PURE__*/_interopDefault(createHttpError);
11
-
12
- // src/index.ts
13
- chunkGTXTWDUH_js.init_cjs_shims();
14
-
15
- // src/adapter/prisma/index.ts
16
- chunkGTXTWDUH_js.init_cjs_shims();
17
-
18
- // src/adapter/prisma/utils/models-to-route-names.ts
19
- chunkGTXTWDUH_js.init_cjs_shims();
20
- var modelsToRouteNames = (mappingsMap, models) => {
21
- const routesMap = {};
22
- models.forEach((model) => {
23
- routesMap[model] = mappingsMap[model].plural;
24
- });
25
- return routesMap;
26
- };
27
- var models_to_route_names_default = modelsToRouteNames;
28
-
29
- // src/adapter/prisma/utils/parse-cursor.ts
30
- chunkGTXTWDUH_js.init_cjs_shims();
31
-
32
- // src/utils/is-primitive.ts
33
- chunkGTXTWDUH_js.init_cjs_shims();
34
- var primitiveTypes = /* @__PURE__ */ new Set(["boolean", "number", "string"]);
35
- var isPrimitive = (value) => primitiveTypes.has(typeof value);
36
- var is_primitive_default = isPrimitive;
37
-
38
- // src/adapter/prisma/utils/parse-cursor.ts
39
- var parsePrismaCursor = (cursor) => {
40
- const parsed = {};
41
- Object.keys(cursor).forEach((key) => {
42
- const value = cursor[key];
43
- if (is_primitive_default(value)) {
44
- parsed[key] = value;
45
- }
46
- });
47
- if (Object.keys(parsed).length !== 1) {
48
- throw new Error("cursor needs to be an object with exactly 1 property with a primitive value");
49
- }
50
- return parsed;
51
- };
52
- var parse_cursor_default = parsePrismaCursor;
53
-
54
- // src/adapter/prisma/utils/parse-order-by.ts
55
- chunkGTXTWDUH_js.init_cjs_shims();
56
- var operatorsAssociation = {
57
- $asc: "asc",
58
- $desc: "desc"
59
- };
60
- var parsePrismaOrderBy = (orderBy) => {
61
- const parsed = {};
62
- Object.keys(orderBy).forEach((key) => {
63
- const value = orderBy[key];
64
- parsed[key] = operatorsAssociation[value];
65
- });
66
- return parsed;
67
- };
68
- var parse_order_by_default = parsePrismaOrderBy;
69
-
70
- // src/adapter/prisma/utils/parse-recursive.ts
71
- chunkGTXTWDUH_js.init_cjs_shims();
72
- var parsePrismaRecursiveField = (select, fieldName) => {
73
- const parsed = {};
74
- Object.keys(select).forEach((field) => {
75
- parsed[field] = select[field] === true ? true : {
76
- [fieldName]: parsePrismaRecursiveField(select[field], fieldName)
77
- };
78
- });
79
- return parsed;
80
- };
81
- var parse_recursive_default = parsePrismaRecursiveField;
82
-
83
- // src/adapter/prisma/utils/parse-where.ts
84
- chunkGTXTWDUH_js.init_cjs_shims();
85
- var isObject = (a) => a instanceof Object;
86
- var operatorsAssociation2 = {
87
- $cont: "contains",
88
- $ends: "endsWith",
89
- $eq: "equals",
90
- $gt: "gt",
91
- $gte: "gte",
92
- $in: "in",
93
- $lt: "lt",
94
- $lte: "lte",
95
- $neq: "not",
96
- $notin: "notIn",
97
- $starts: "startsWith"
98
- };
99
- var isDateString = (value) => /^\d{4}-[01]\d-[0-3]\d(?:T[0-2](?:\d:[0-5]){2}\d(?:\.\d+)?(?:Z|[+-][0-2]\d(?::?[0-5]\d)?)?)?$/g.test(value);
100
- var getSearchValue = (originalValue) => {
101
- if (isDateString(originalValue)) {
102
- return new Date(originalValue);
103
- }
104
- if (typeof originalValue === "string" && originalValue === "$isnull") {
105
- return null;
106
- }
107
- return originalValue;
108
- };
109
- var isRelation = (key, manyRelations) => {
110
- const splitKey = key.split(".");
111
- splitKey.splice(-1, 1);
112
- return manyRelations.includes(splitKey.join("."));
113
- };
114
- var parseSimpleField = (value) => {
115
- const operator = Object.keys(value)[0];
116
- const prismaOperator = operatorsAssociation2[operator];
117
- if (prismaOperator) {
118
- return {
119
- [prismaOperator]: value[operator]
120
- };
121
- }
122
- return void 0;
123
- };
124
- var parseRelation = (value, key, parsed, manyRelations) => {
125
- const fields = key.split(".").reverse();
126
- let formatFields = {};
127
- fields.forEach((field, index) => {
128
- if (index === 0) {
129
- basicParse(value, field, formatFields, manyRelations);
130
- } else {
131
- formatFields = {
132
- [field]: {
133
- some: formatFields
134
- }
135
- };
136
- }
137
- });
138
- const initialFieldKey = fields.reverse()[0];
139
- const oldParsed = parsed[initialFieldKey];
140
- parsed[initialFieldKey] = {
141
- some: {
142
- ...oldParsed?.some,
143
- ...formatFields[initialFieldKey]?.some
144
- }
145
- };
146
- };
147
- var parseObjectCombination = (object, manyRelations) => {
148
- const parsed = {};
149
- Object.keys(object).forEach((key) => {
150
- const value = object[key];
151
- if (isRelation(key, manyRelations)) {
152
- parseRelation(value, key, parsed, manyRelations);
153
- } else if (is_primitive_default(value)) {
154
- parsed[key] = value;
155
- } else if (isObject(value)) {
156
- const fieldResult = parseSimpleField(value);
157
- if (fieldResult) {
158
- parsed[key] = fieldResult;
159
- }
160
- }
161
- });
162
- return parsed;
163
- };
164
- var basicParse = (value, key, parsed, manyRelations) => {
165
- if (is_primitive_default(value)) {
166
- parsed[key] = getSearchValue(value);
167
- } else {
168
- switch (key) {
169
- case "$and": {
170
- if (isObject(value)) {
171
- parsed.AND = parseObjectCombination(value, manyRelations);
172
- }
173
- break;
174
- }
175
- case "$not": {
176
- if (isObject(value)) {
177
- parsed.NOT = parseObjectCombination(value, manyRelations);
178
- }
179
- break;
180
- }
181
- case "$or": {
182
- if (isObject(value)) {
183
- parsed.OR = parseObjectCombination(value, manyRelations);
184
- }
185
- break;
186
- }
187
- default: {
188
- parsed[key] = parseSimpleField(value);
189
- break;
190
- }
191
- }
192
- }
193
- };
194
- var parsePrismaWhere = (where, manyRelations) => {
195
- const parsed = {};
196
- Object.keys(where).forEach((key) => {
197
- const value = where[key];
198
- if (isRelation(key, manyRelations)) {
199
- parseRelation(value, key, parsed, manyRelations);
200
- } else {
201
- basicParse(value, key, parsed, manyRelations);
202
- }
203
- });
204
- return parsed;
205
- };
206
- var parse_where_default = parsePrismaWhere;
207
-
208
- // src/adapter/prisma/index.ts
209
- var PrismaAdapter = class {
210
- models;
211
- ctorModels;
212
- dmmf;
213
- manyRelations;
214
- primaryKey;
215
- prismaClient;
216
- constructor({ manyRelations = {}, models, primaryKey = "id", prismaClient }) {
217
- this.prismaClient = prismaClient;
218
- this.primaryKey = primaryKey;
219
- this.manyRelations = manyRelations;
220
- this.ctorModels = models;
221
- }
222
- async connect() {
223
- this.prismaClient.$connect();
224
- }
225
- async create(resourceName, data, query) {
226
- return await this.getPrismaDelegate(resourceName).create({
227
- data,
228
- include: query.include,
229
- select: query.select
230
- });
231
- }
232
- async delete(resourceName, resourceId, query) {
233
- return await this.getPrismaDelegate(resourceName).delete({
234
- include: query.include,
235
- select: query.select,
236
- where: {
237
- [this.primaryKey]: resourceId
238
- }
239
- });
240
- }
241
- async disconnect() {
242
- await this.prismaClient.$disconnect();
243
- }
244
- async getAll(resourceName, query) {
245
- return await this.getPrismaDelegate(resourceName).findMany({
246
- cursor: query.cursor,
247
- distinct: query.distinct,
248
- include: query.include,
249
- orderBy: query.orderBy,
250
- select: query.select,
251
- skip: query.skip,
252
- take: query.take,
253
- where: query.where
254
- });
255
- }
256
- getModels() {
257
- return this.models ?? [];
258
- }
259
- async getOne(resourceName, resourceId, query) {
260
- const delegate = this.getPrismaDelegate(resourceName);
261
- const findFunction = delegate.findUnique ?? delegate.findOne;
262
- return await findFunction({
263
- include: query.include,
264
- select: query.select,
265
- where: {
266
- [this.primaryKey]: resourceId
267
- }
268
- });
269
- }
270
- async getPaginationData(resourceName, query) {
271
- const total = await this.getPrismaDelegate(resourceName).count({
272
- distinct: query.distinct,
273
- where: query.where
274
- });
275
- return {
276
- page: Math.ceil((query.skip ?? 0) / (query.take ?? 0)) + 1,
277
- pageCount: Math.ceil(total / (query.take ?? 0)),
278
- total
279
- };
280
- }
281
- // eslint-disable-next-line class-methods-use-this
282
- handleError(error) {
283
- console.error(error);
284
- if (error instanceof Error && error.stack) {
285
- console.error(error.stack);
286
- }
287
- throw error.constructor.name === "PrismaClientKnownRequestError" || error.constructor.name === "PrismaClientValidationError" ? createHttpError__default.default(400, "invalid request, check your server logs for more info") : createHttpError__default.default(500, "an unknown error occured, check your server logs for more info");
288
- }
289
- async init() {
290
- const models = this.ctorModels;
291
- const prismaDmmfModels = await this.getPrismaClientModels();
292
- if (models !== void 0) {
293
- models.forEach((model) => {
294
- if (!Object.keys(prismaDmmfModels).includes(model)) {
295
- throw new Error(`Model name ${model} is invalid.`);
296
- }
297
- });
298
- }
299
- this.models = models ?? Object.keys(prismaDmmfModels);
300
- }
301
- async mapModelsToRouteNames() {
302
- return models_to_route_names_default(await this.getPrismaClientModels(), this.getModels());
303
- }
304
- parseQuery(resourceName, query) {
305
- const parsed = {};
306
- if (query.select) {
307
- parsed.select = parse_recursive_default(query.select, "select");
308
- }
309
- if (query.include) {
310
- parsed.include = parse_recursive_default(query.include, "include");
311
- }
312
- if (query.originalQuery?.where) {
313
- parsed.where = parse_where_default(JSON.parse(query.originalQuery.where), this.manyRelations[resourceName] ?? []);
314
- }
315
- if (query.orderBy) {
316
- parsed.orderBy = parse_order_by_default(query.orderBy);
317
- }
318
- if (query.limit !== void 0) {
319
- parsed.take = query.limit;
320
- }
321
- if (query.skip !== void 0) {
322
- parsed.skip = query.skip;
323
- }
324
- if (query.originalQuery?.cursor) {
325
- parsed.cursor = parse_cursor_default(JSON.parse(query.originalQuery.cursor));
326
- }
327
- if (query.distinct) {
328
- parsed.distinct = query.distinct;
329
- }
330
- return parsed;
331
- }
332
- async update(resourceName, resourceId, data, query) {
333
- return await this.getPrismaDelegate(resourceName).update({
334
- data,
335
- include: query.include,
336
- select: query.select,
337
- where: {
338
- [this.primaryKey]: resourceId
339
- }
340
- });
341
- }
342
- get client() {
343
- return this.prismaClient;
344
- }
345
- getPrismaClientModels = async () => {
346
- if (this.prismaClient._dmmf !== void 0) {
347
- this.dmmf = this.prismaClient._dmmf;
348
- return this.dmmf?.mappingsMap;
349
- }
350
- if (this.prismaClient._getDmmf !== void 0) {
351
- this.dmmf = await this.prismaClient._getDmmf();
352
- return this.dmmf.mappingsMap;
353
- }
354
- throw new Error("Couldn't get prisma client models");
355
- };
356
- getPrismaDelegate(resourceName) {
357
- return this.prismaClient[`${resourceName.charAt(0).toLowerCase()}${resourceName.slice(1)}`];
358
- }
359
- };
360
-
361
- // src/swagger/adapter/prisma/index.ts
362
- chunkGTXTWDUH_js.init_cjs_shims();
363
-
364
- // src/swagger/json-schema-parser.ts
365
- chunkGTXTWDUH_js.init_cjs_shims();
366
-
367
- // src/swagger/utils/format-schema-ref.ts
368
- chunkGTXTWDUH_js.init_cjs_shims();
369
- var formatSchemaReference = (schemaName) => `#/components/schemas/${schemaName}`;
370
- var format_schema_ref_default = formatSchemaReference;
371
-
372
- // src/swagger/json-schema-parser.ts
373
- var getJSONSchemaScalar = (fieldType) => {
11
+ const getJSONSchemaScalar = (fieldType) => {
374
12
  switch (fieldType) {
375
13
  case "BigInt":
376
14
  case "Int": {
@@ -399,21 +37,22 @@ var getJSONSchemaScalar = (fieldType) => {
399
37
  }
400
38
  }
401
39
  };
402
- var PAGINATION_SCHEMA_NAME = "PaginationData";
403
- var methodsNames = [
40
+ const PAGINATION_SCHEMA_NAME = "PaginationData";
41
+ const methodsNames = [
404
42
  { methodStart: "createOne", schemaNameStart: "Create" },
405
43
  { methodStart: "updateOne", schemaNameStart: "Update" }
406
44
  ];
407
- var PrismaJsonSchemaParser = class {
45
+ class PrismaJsonSchemaParser {
408
46
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
409
47
  constructor(dmmf) {
410
48
  this.dmmf = dmmf;
411
49
  }
50
+ dmmf;
412
51
  schemaInputTypes = /* @__PURE__ */ new Map();
413
52
  // eslint-disable-next-line class-methods-use-this,@typescript-eslint/explicit-module-boundary-types
414
53
  formatInputTypeData(inputType) {
415
54
  if (inputType.kind === "object") {
416
- const reference = format_schema_ref_default(inputType.type.name);
55
+ const reference = formatSchemaReference(inputType.type.name);
417
56
  if (inputType.isList) {
418
57
  return {
419
58
  items: {
@@ -520,7 +159,7 @@ var PrismaJsonSchemaParser = class {
520
159
  properties: {
521
160
  data: {
522
161
  items: {
523
- $ref: format_schema_ref_default(modelName)
162
+ $ref: formatSchemaReference(modelName)
524
163
  },
525
164
  type: "array",
526
165
  xml: {
@@ -529,7 +168,7 @@ var PrismaJsonSchemaParser = class {
529
168
  }
530
169
  },
531
170
  meta: {
532
- $ref: format_schema_ref_default(PAGINATION_SCHEMA_NAME)
171
+ $ref: formatSchemaReference(PAGINATION_SCHEMA_NAME)
533
172
  }
534
173
  },
535
174
  type: "object",
@@ -674,38 +313,29 @@ var PrismaJsonSchemaParser = class {
674
313
  });
675
314
  });
676
315
  }
677
- return { $ref: format_schema_ref_default(fieldType.type.name) };
316
+ return { $ref: formatSchemaReference(fieldType.type.name) };
678
317
  }
679
318
  return { type: getJSONSchemaScalar(fieldType.type) };
680
319
  }
681
- };
682
- var json_schema_parser_default = PrismaJsonSchemaParser;
320
+ }
683
321
 
684
- // src/swagger/utils/get-models-accessible-routes.ts
685
- chunkGTXTWDUH_js.init_cjs_shims();
686
- var getModelsAccessibleRoutes = (modelNames, models, defaultExposeStrategy = "all") => (
322
+ const getModelsAccessibleRoutes = (modelNames, models, defaultExposeStrategy = "all") => (
687
323
  // eslint-disable-next-line unicorn/no-array-reduce
688
324
  modelNames.reduce((accumulator, modelName) => {
689
325
  if (models?.[modelName]) {
690
326
  return {
691
327
  ...accumulator,
692
- [modelName]: chunkGTXTWDUH_js.get_accessible_routes_default(models[modelName].only, models[modelName].exclude, defaultExposeStrategy)
328
+ [modelName]: getAccessibleRoutes.getAccessibleRoutes(models[modelName].only, models[modelName].exclude, defaultExposeStrategy)
693
329
  };
694
330
  }
695
331
  return {
696
332
  ...accumulator,
697
- [modelName]: chunkGTXTWDUH_js.get_accessible_routes_default(void 0, void 0, defaultExposeStrategy)
333
+ [modelName]: getAccessibleRoutes.getAccessibleRoutes(void 0, void 0, defaultExposeStrategy)
698
334
  };
699
335
  }, {})
700
336
  );
701
- var get_models_accessible_routes_default = getModelsAccessibleRoutes;
702
-
703
- // src/swagger/utils/get-swagger-paths.ts
704
- chunkGTXTWDUH_js.init_cjs_shims();
705
337
 
706
- // src/swagger/parameters.ts
707
- chunkGTXTWDUH_js.init_cjs_shims();
708
- var queryParameters = {
338
+ const queryParameters = {
709
339
  distinct: {
710
340
  description: "Fields to distinctively retrieve",
711
341
  name: "distinct",
@@ -766,8 +396,8 @@ var queryParameters = {
766
396
  }
767
397
  }
768
398
  };
769
- var commonQueryParameters = [queryParameters.select, queryParameters.include];
770
- var listQueryParameters = [
399
+ const commonQueryParameters = [queryParameters.select, queryParameters.include];
400
+ const listQueryParameters = [
771
401
  ...commonQueryParameters,
772
402
  queryParameters.limit,
773
403
  queryParameters.skip,
@@ -776,39 +406,35 @@ var listQueryParameters = [
776
406
  queryParameters.page,
777
407
  queryParameters.distinct
778
408
  ];
779
- var getQueryParameters = (routeType, additionalQueryParameters = []) => {
780
- if (routeType === "READ_ALL" /* READ_ALL */) {
409
+ const getQueryParameters = (routeType, additionalQueryParameters = []) => {
410
+ if (routeType === RouteType.RouteType.READ_ALL) {
781
411
  return [...listQueryParameters, ...additionalQueryParameters].filter(Boolean);
782
412
  }
783
413
  return [...commonQueryParameters, ...additionalQueryParameters].filter(Boolean);
784
414
  };
785
415
 
786
- // src/swagger/utils/format-example-ref.ts
787
- chunkGTXTWDUH_js.init_cjs_shims();
788
- var formatExampleReference = (schemaName) => `#/components/examples/${schemaName}`;
789
- var format_example_ref_default = formatExampleReference;
416
+ const formatExampleReference = (schemaName) => `#/components/examples/${schemaName}`;
790
417
 
791
- // src/swagger/utils/get-swagger-paths.ts
792
- var generateContentForSchema = (schemaName, isArray) => {
418
+ const generateContentForSchema = (schemaName, isArray) => {
793
419
  if (isArray) {
794
420
  return {
795
421
  items: {
796
- $ref: format_schema_ref_default(schemaName)
422
+ $ref: formatSchemaReference(schemaName)
797
423
  },
798
424
  type: "array"
799
425
  };
800
426
  }
801
427
  return {
802
- $ref: format_schema_ref_default(schemaName)
428
+ $ref: formatSchemaReference(schemaName)
803
429
  };
804
430
  };
805
- var generateSwaggerResponse = (routeType, modelName) => {
806
- if (routeType === "CREATE" /* CREATE */) {
431
+ const generateSwaggerResponse = (routeType, modelName) => {
432
+ if (routeType === RouteType.RouteType.CREATE) {
807
433
  return {
808
434
  content: {
809
435
  content: {
810
436
  "application/json": {
811
- example: format_example_ref_default(modelName),
437
+ example: formatExampleReference(modelName),
812
438
  schema: generateContentForSchema(modelName)
813
439
  }
814
440
  },
@@ -817,12 +443,12 @@ var generateSwaggerResponse = (routeType, modelName) => {
817
443
  statusCode: 201
818
444
  };
819
445
  }
820
- if (routeType === "DELETE" /* DELETE */) {
446
+ if (routeType === RouteType.RouteType.DELETE) {
821
447
  return {
822
448
  content: {
823
449
  content: {
824
450
  "application/json": {
825
- example: format_example_ref_default(modelName),
451
+ example: formatExampleReference(modelName),
826
452
  schema: generateContentForSchema(modelName)
827
453
  }
828
454
  },
@@ -831,17 +457,17 @@ var generateSwaggerResponse = (routeType, modelName) => {
831
457
  statusCode: 200
832
458
  };
833
459
  }
834
- if (routeType === "READ_ALL" /* READ_ALL */) {
460
+ if (routeType === RouteType.RouteType.READ_ALL) {
835
461
  return {
836
462
  content: {
837
463
  content: {
838
464
  "application/json": {
839
465
  examples: {
840
466
  Default: {
841
- $ref: format_example_ref_default(`${modelName}s`)
467
+ $ref: formatExampleReference(`${modelName}s`)
842
468
  },
843
469
  Pagination: {
844
- $ref: format_example_ref_default(`${modelName}Page`)
470
+ $ref: formatExampleReference(`${modelName}Page`)
845
471
  }
846
472
  },
847
473
  schema: {
@@ -854,12 +480,12 @@ var generateSwaggerResponse = (routeType, modelName) => {
854
480
  statusCode: 200
855
481
  };
856
482
  }
857
- if (routeType === "READ_ONE" /* READ_ONE */) {
483
+ if (routeType === RouteType.RouteType.READ_ONE) {
858
484
  return {
859
485
  content: {
860
486
  content: {
861
487
  "application/json": {
862
- example: format_example_ref_default(modelName),
488
+ example: formatExampleReference(modelName),
863
489
  schema: generateContentForSchema(modelName)
864
490
  }
865
491
  },
@@ -868,12 +494,12 @@ var generateSwaggerResponse = (routeType, modelName) => {
868
494
  statusCode: 200
869
495
  };
870
496
  }
871
- if (routeType === "UPDATE" /* UPDATE */) {
497
+ if (routeType === RouteType.RouteType.UPDATE) {
872
498
  return {
873
499
  content: {
874
500
  content: {
875
501
  "application/json": {
876
- example: format_example_ref_default(modelName),
502
+ example: formatExampleReference(modelName),
877
503
  schema: generateContentForSchema(modelName)
878
504
  }
879
505
  },
@@ -884,30 +510,30 @@ var generateSwaggerResponse = (routeType, modelName) => {
884
510
  }
885
511
  return void 0;
886
512
  };
887
- var generateRequestBody = (schemaStartName, modelName) => {
513
+ const generateRequestBody = (schemaStartName, modelName) => {
888
514
  return {
889
515
  content: {
890
516
  "application/json": {
891
517
  schema: {
892
- $ref: format_schema_ref_default(`${schemaStartName}${modelName}`)
518
+ $ref: formatSchemaReference(`${schemaStartName}${modelName}`)
893
519
  }
894
520
  }
895
521
  }
896
522
  };
897
523
  };
898
- var getRouteTypeMethod = (routeType) => {
524
+ const getRouteTypeMethod = (routeType) => {
899
525
  switch (routeType) {
900
- case "CREATE" /* CREATE */: {
526
+ case RouteType.RouteType.CREATE: {
901
527
  return "post";
902
528
  }
903
- case "DELETE" /* DELETE */: {
529
+ case RouteType.RouteType.DELETE: {
904
530
  return "delete";
905
531
  }
906
- case "READ_ALL" /* READ_ALL */:
907
- case "READ_ONE" /* READ_ONE */: {
532
+ case RouteType.RouteType.READ_ALL:
533
+ case RouteType.RouteType.READ_ONE: {
908
534
  return "get";
909
535
  }
910
- case "UPDATE" /* UPDATE */: {
536
+ case RouteType.RouteType.UPDATE: {
911
537
  return "put";
912
538
  }
913
539
  default: {
@@ -915,7 +541,7 @@ var getRouteTypeMethod = (routeType) => {
915
541
  }
916
542
  }
917
543
  };
918
- var generateSwaggerPathObject = ({
544
+ const generateSwaggerPathObject = ({
919
545
  hasId,
920
546
  modelName,
921
547
  modelsConfig,
@@ -953,24 +579,24 @@ var generateSwaggerPathObject = ({
953
579
  }
954
580
  });
955
581
  }
956
- if (routeType === "UPDATE" /* UPDATE */) {
582
+ if (routeType === RouteType.RouteType.UPDATE) {
957
583
  methods[method].requestBody = generateRequestBody("Update", returnType);
958
- } else if (routeType === "CREATE" /* CREATE */) {
584
+ } else if (routeType === RouteType.RouteType.CREATE) {
959
585
  methods[method].requestBody = generateRequestBody("Create", returnType);
960
586
  }
961
587
  }
962
588
  });
963
589
  return methods;
964
590
  };
965
- var getSwaggerPaths = ({ models, modelsConfig, routes, routesMap }) => (
591
+ const getSwaggerPaths = ({ models, modelsConfig, routes, routesMap }) => (
966
592
  // eslint-disable-next-line unicorn/no-array-reduce
967
593
  Object.keys(routes).reduce((accumulator, value) => {
968
594
  const routeTypes = routes[value];
969
595
  const resourceName = models?.[value]?.name ? models[value].name : routesMap?.[value] ?? value;
970
596
  const tag = modelsConfig?.[value]?.tag.name ?? value;
971
- if (routeTypes.includes("CREATE" /* CREATE */) || routeTypes.includes("READ_ALL" /* READ_ALL */)) {
597
+ if (routeTypes.includes(RouteType.RouteType.CREATE) || routeTypes.includes(RouteType.RouteType.READ_ALL)) {
972
598
  const path = `/${resourceName}`;
973
- const routeTypesToUse = ["READ_ALL" /* READ_ALL */, "CREATE" /* CREATE */].filter((routeType) => routeTypes.includes(routeType));
599
+ const routeTypesToUse = [RouteType.RouteType.READ_ALL, RouteType.RouteType.CREATE].filter((routeType) => routeTypes.includes(routeType));
974
600
  accumulator[path] = generateSwaggerPathObject({
975
601
  modelName: value,
976
602
  modelsConfig,
@@ -978,9 +604,9 @@ var getSwaggerPaths = ({ models, modelsConfig, routes, routesMap }) => (
978
604
  tag
979
605
  });
980
606
  }
981
- if (routeTypes.includes("READ_ONE" /* READ_ONE */) || routeTypes.includes("UPDATE" /* UPDATE */) || routeTypes.includes("DELETE" /* DELETE */)) {
607
+ if (routeTypes.includes(RouteType.RouteType.READ_ONE) || routeTypes.includes(RouteType.RouteType.UPDATE) || routeTypes.includes(RouteType.RouteType.DELETE)) {
982
608
  const path = `/${resourceName}/{id}`;
983
- const routeTypesToUse = ["READ_ONE" /* READ_ONE */, "UPDATE" /* UPDATE */, "DELETE" /* DELETE */].filter((routeType) => routeTypes.includes(routeType));
609
+ const routeTypesToUse = [RouteType.RouteType.READ_ONE, RouteType.RouteType.UPDATE, RouteType.RouteType.DELETE].filter((routeType) => routeTypes.includes(routeType));
984
610
  accumulator[path] = generateSwaggerPathObject({
985
611
  hasId: true,
986
612
  modelName: value,
@@ -992,11 +618,8 @@ var getSwaggerPaths = ({ models, modelsConfig, routes, routesMap }) => (
992
618
  return accumulator;
993
619
  }, {})
994
620
  );
995
- var get_swagger_paths_default = getSwaggerPaths;
996
621
 
997
- // src/swagger/utils/get-swagger-tags.ts
998
- chunkGTXTWDUH_js.init_cjs_shims();
999
- var getSwaggerTags = (modelNames, modelsConfig) => modelNames.map((modelName) => {
622
+ const getSwaggerTags = (modelNames, modelsConfig) => modelNames.map((modelName) => {
1000
623
  if (modelsConfig?.[modelName]?.tag) {
1001
624
  return modelsConfig[modelName].tag;
1002
625
  }
@@ -1004,10 +627,8 @@ var getSwaggerTags = (modelNames, modelsConfig) => modelNames.map((modelName) =>
1004
627
  name: modelName
1005
628
  };
1006
629
  });
1007
- var get_swagger_tags_default = getSwaggerTags;
1008
630
 
1009
- // src/swagger/adapter/prisma/index.ts
1010
- var overwritePathsExampleWithModel = (swaggerPaths, examples) => {
631
+ const overwritePathsExampleWithModel = (swaggerPaths, examples) => {
1011
632
  Object.values(swaggerPaths).forEach((pathSpec) => {
1012
633
  Object.values(pathSpec).forEach((methodSpec) => {
1013
634
  if (typeof methodSpec.responses === "object") {
@@ -1030,7 +651,7 @@ var overwritePathsExampleWithModel = (swaggerPaths, examples) => {
1030
651
  });
1031
652
  return swaggerPaths;
1032
653
  };
1033
- var modelsToOpenApi = async ({
654
+ const modelsToOpenApi = async ({
1034
655
  crud = { models: {} },
1035
656
  defaultExposeStrategy = "all",
1036
657
  models: ctorModels,
@@ -1049,7 +670,7 @@ var modelsToOpenApi = async ({
1049
670
  if (dmmf === void 0) {
1050
671
  throw new TypeError("Couldn't get prisma client models");
1051
672
  }
1052
- const parser = new json_schema_parser_default(dmmf);
673
+ const parser = new PrismaJsonSchemaParser(dmmf);
1053
674
  const definitions = parser.parseModels();
1054
675
  const dModels = Object.keys(definitions);
1055
676
  const schema = JSON.stringify({
@@ -1066,13 +687,13 @@ var modelsToOpenApi = async ({
1066
687
  });
1067
688
  }
1068
689
  const models = ctorModels ?? Object.keys(prismaDmmfModels);
1069
- const swaggerRoutes = get_models_accessible_routes_default(models, crud.models, defaultExposeStrategy);
1070
- const swaggerTags = get_swagger_tags_default(models, swagger.models);
1071
- const swaggerPaths = get_swagger_paths_default({
690
+ const swaggerRoutes = getModelsAccessibleRoutes(models, crud.models, defaultExposeStrategy);
691
+ const swaggerTags = getSwaggerTags(models, swagger.models);
692
+ const swaggerPaths = getSwaggerPaths({
1072
693
  models: crud.models,
1073
694
  modelsConfig: swagger.models,
1074
695
  routes: swaggerRoutes,
1075
- routesMap: models_to_route_names_default(prismaDmmfModels, models)
696
+ routesMap: modelsToRouteNames.modelsToRouteNames(prismaDmmfModels, models)
1076
697
  });
1077
698
  const schemas = JSON.parse(schema.replaceAll("#/definitions", "#/components/schemas"));
1078
699
  const examples = parser.getExampleModelsSchemas(dModels, schemas);
@@ -1083,13 +704,5 @@ var modelsToOpenApi = async ({
1083
704
  tags: swaggerTags
1084
705
  };
1085
706
  };
1086
- var prisma_default = modelsToOpenApi;
1087
707
 
1088
- Object.defineProperty(exports, "RouteType", {
1089
- enumerable: true,
1090
- get: function () { return chunkGTXTWDUH_js.RouteType; }
1091
- });
1092
- exports.PrismaAdapter = PrismaAdapter;
1093
- exports.modelsToOpenApi = prisma_default;
1094
- //# sourceMappingURL=index.js.map
1095
- //# sourceMappingURL=index.js.map
708
+ module.exports = modelsToOpenApi;