@visulima/prisma-dmmf-transformer 2.0.33 → 2.0.35

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/CHANGELOG.md CHANGED
@@ -1,3 +1,20 @@
1
+ ## @visulima/prisma-dmmf-transformer [2.0.35](https://github.com/visulima/visulima/compare/@visulima/prisma-dmmf-transformer@2.0.34...@visulima/prisma-dmmf-transformer@2.0.35) (2025-11-07)
2
+
3
+ ### Bug Fixes
4
+
5
+ * update TypeScript configurations and improve linting across multiple packages ([6f25ec7](https://github.com/visulima/visulima/commit/6f25ec7841da7246f8f9166efc5292a7089d37ee))
6
+
7
+ ### Miscellaneous Chores
8
+
9
+ * update npm and pnpm configurations for monorepo optimization ([#564](https://github.com/visulima/visulima/issues/564)) ([5512b42](https://github.com/visulima/visulima/commit/5512b42f672c216b6a3c9e39035199a4ebd9a4b8))
10
+
11
+ ## @visulima/prisma-dmmf-transformer [2.0.34](https://github.com/visulima/visulima/compare/@visulima/prisma-dmmf-transformer@2.0.33...@visulima/prisma-dmmf-transformer@2.0.34) (2025-11-05)
12
+
13
+ ### Bug Fixes
14
+
15
+ * update dependencies across multiple packages ([36a47f2](https://github.com/visulima/visulima/commit/36a47f26d65d25a7b4d8371186710e7d0ab61a2b))
16
+ * upgraded `@prisma/generator-helper` and updated `type-fest` to version `5.2.0` ([6b99673](https://github.com/visulima/visulima/commit/6b9967377f194131a05ba5b60652f628e5b197dc))
17
+
1
18
  ## @visulima/prisma-dmmf-transformer [2.0.33](https://github.com/visulima/visulima/compare/@visulima/prisma-dmmf-transformer@2.0.32...@visulima/prisma-dmmf-transformer@2.0.33) (2025-10-21)
2
19
 
3
20
  ### Bug Fixes
@@ -19,7 +36,7 @@
19
36
 
20
37
  ### Bug Fixes
21
38
 
22
- * update @visulima/packem to 2.0.0-alpha.30 across multiple packages for improved compatibility ([27b346e](https://github.com/visulima/visulima/commit/27b346eaa1c0fb0e420d9a9824482028307f4249))
39
+ * update @visulima/packem to 2.0.0-alpha.32 across multiple packages for improved compatibility ([27b346e](https://github.com/visulima/visulima/commit/27b346eaa1c0fb0e420d9a9824482028307f4249))
23
40
  * update dependencies and improve code structure for JSON schema transformation ([88947c4](https://github.com/visulima/visulima/commit/88947c47b1bb7d55a7b2650a9e6c1ac99882b66e))
24
41
 
25
42
  ### Miscellaneous Chores
package/dist/index.cjs CHANGED
@@ -1 +1,11 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./packem_shared/getJSONSchemaProperty-DRt6R_Y4.cjs"),r=require("./packem_shared/transformDMMF-CNWOKGfH.cjs");exports.getJSONSchemaProperty=e;exports.transformDMMF=r;
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ const getJSONSchemaProperty = require('./packem_shared/getJSONSchemaProperty-DyREsKli.cjs');
6
+ const transformDMMF = require('./packem_shared/transformDMMF-e7c5Igd0.cjs');
7
+
8
+
9
+
10
+ exports.getJSONSchemaProperty = getJSONSchemaProperty;
11
+ exports.transformDMMF = transformDMMF;
package/dist/index.mjs CHANGED
@@ -1 +1,2 @@
1
- import{default as t}from"./packem_shared/getJSONSchemaProperty-BJUSxFNN.mjs";import{default as o}from"./packem_shared/transformDMMF-B3i5bZr6.mjs";export{t as getJSONSchemaProperty,o as transformDMMF};
1
+ export { default as getJSONSchemaProperty } from './packem_shared/getJSONSchemaProperty-ChH8N6gd.mjs';
2
+ export { default as transformDMMF } from './packem_shared/transformDMMF-D2pok2ta.mjs';
@@ -0,0 +1,167 @@
1
+ import { createRequire as __cjs_createRequire } from "node:module";
2
+
3
+ const __cjs_require = __cjs_createRequire(import.meta.url);
4
+
5
+ const __cjs_getProcess = typeof globalThis !== "undefined" && typeof globalThis.process !== "undefined" ? globalThis.process : process;
6
+
7
+ const __cjs_getBuiltinModule = (module) => {
8
+ // Check if we're in Node.js and version supports getBuiltinModule
9
+ if (typeof __cjs_getProcess !== "undefined" && __cjs_getProcess.versions && __cjs_getProcess.versions.node) {
10
+ const [major, minor] = __cjs_getProcess.versions.node.split(".").map(Number);
11
+ // Node.js 20.16.0+ and 22.3.0+
12
+ if (major > 22 || (major === 22 && minor >= 3) || (major === 20 && minor >= 16)) {
13
+ return __cjs_getProcess.getBuiltinModule(module);
14
+ }
15
+ }
16
+ // Fallback to createRequire
17
+ return __cjs_require(module);
18
+ };
19
+
20
+ const assert = __cjs_getBuiltinModule("node:assert");
21
+
22
+ const isDefined = (value) => value !== void 0 && value !== null;
23
+ const getJSONSchemaScalar = (fieldType) => {
24
+ switch (fieldType) {
25
+ case "BigInt":
26
+ case "Int": {
27
+ return "integer";
28
+ }
29
+ case "Boolean": {
30
+ return "boolean";
31
+ }
32
+ case "Bytes":
33
+ case "DateTime":
34
+ case "String": {
35
+ return "string";
36
+ }
37
+ case "Decimal":
38
+ case "Float": {
39
+ return "number";
40
+ }
41
+ case "Json": {
42
+ return ["number", "string", "boolean", "object", "array", "null"];
43
+ }
44
+ default: {
45
+ throw new Error(`Unhandled discriminated union member: ${JSON.stringify(fieldType)}`);
46
+ }
47
+ }
48
+ };
49
+ const getJSONSchemaType = (field) => {
50
+ const { isList, isRequired, kind, type } = field;
51
+ let scalarFieldType = "object";
52
+ if (kind === "scalar" && !isList) {
53
+ scalarFieldType = getJSONSchemaScalar(type);
54
+ } else if (isList) {
55
+ scalarFieldType = "array";
56
+ } else if (kind === "enum") {
57
+ scalarFieldType = "string";
58
+ }
59
+ if (isRequired || isList) {
60
+ return scalarFieldType;
61
+ }
62
+ const isFieldUnion = Array.isArray(scalarFieldType);
63
+ if (isFieldUnion) {
64
+ return [.../* @__PURE__ */ new Set(["null", ...scalarFieldType])];
65
+ }
66
+ return [scalarFieldType, "null"];
67
+ };
68
+ const getDefaultValue = (field) => {
69
+ const fieldDefault = field.default;
70
+ if (!field.hasDefaultValue) {
71
+ return void 0;
72
+ }
73
+ if (field.kind === "enum") {
74
+ return typeof fieldDefault === "string" ? fieldDefault : void 0;
75
+ }
76
+ if (field.kind !== "scalar") {
77
+ return void 0;
78
+ }
79
+ switch (field.type) {
80
+ case "BigInt":
81
+ case "DateTime":
82
+ case "String": {
83
+ return typeof fieldDefault === "string" ? fieldDefault : void 0;
84
+ }
85
+ case "Boolean": {
86
+ return typeof fieldDefault === "boolean" ? fieldDefault : void 0;
87
+ }
88
+ case "Bytes":
89
+ case "Json": {
90
+ return void 0;
91
+ }
92
+ case "Decimal":
93
+ case "Float":
94
+ case "Int": {
95
+ return typeof fieldDefault === "number" ? fieldDefault : void 0;
96
+ }
97
+ default: {
98
+ throw new Error(`Unhandled discriminated union member: ${JSON.stringify(field.type)}`);
99
+ }
100
+ }
101
+ };
102
+ const getFormatByDMMFType = (fieldType) => {
103
+ if (fieldType === "DateTime") {
104
+ return "date-time";
105
+ }
106
+ return void 0;
107
+ };
108
+ const getJSONSchemaForPropertyReference = (field, { persistOriginalType, schemaId }) => {
109
+ const notNullable = field.isRequired || field.isList;
110
+ assert.equal(typeof field.type, "string");
111
+ const typeReference = `#/definitions/${field.type}`;
112
+ const reference = { $ref: schemaId ? `${schemaId}${typeReference}` : typeReference };
113
+ return notNullable ? reference : {
114
+ anyOf: [reference, { type: "null" }],
115
+ ...persistOriginalType && {
116
+ originalType: field.type
117
+ }
118
+ };
119
+ };
120
+ const getItemsByDMMFType = (field, transformOptions) => {
121
+ if (field.kind === "scalar" && !field.isList || field.kind === "enum") {
122
+ return void 0;
123
+ }
124
+ if (field.kind === "scalar" && field.isList) {
125
+ return { type: getJSONSchemaScalar(field.type) };
126
+ }
127
+ return getJSONSchemaForPropertyReference(field, transformOptions);
128
+ };
129
+ const isSingleReference = (field) => field.kind !== "scalar" && !field.isList && field.kind !== "enum";
130
+ const getEnumListByDMMFType = (modelMetaData) => (field) => {
131
+ const enumItem = modelMetaData.enums.find(({ name }) => name === field.type);
132
+ if (!enumItem) {
133
+ return void 0;
134
+ }
135
+ return enumItem.values.map((item) => item.name);
136
+ };
137
+ const getDescription = (field) => field.documentation;
138
+ const getPropertyDefinition = (modelMetaData, transformOptions, field) => {
139
+ const type = getJSONSchemaType(field);
140
+ const format = getFormatByDMMFType(field.type);
141
+ const items = getItemsByDMMFType(field, transformOptions);
142
+ const enumList = getEnumListByDMMFType(modelMetaData)(field);
143
+ const defaultValue = getDefaultValue(field);
144
+ const description = getDescription(field);
145
+ return {
146
+ type,
147
+ ...transformOptions.persistOriginalType && {
148
+ originalType: field.type
149
+ },
150
+ ...isDefined(defaultValue) && { default: defaultValue },
151
+ ...isDefined(format) && { format },
152
+ ...isDefined(items) && { items },
153
+ ...isDefined(enumList) && { enum: enumList },
154
+ ...isDefined(description) && { description }
155
+ };
156
+ };
157
+ const getJSONSchemaProperty = (modelMetaData, transformOptions) => (field) => {
158
+ const propertyMetaData = {
159
+ hasDefaultValue: field.hasDefaultValue,
160
+ isScalar: field.kind === "scalar" || field.kind === "enum",
161
+ required: field.isRequired
162
+ };
163
+ const property = isSingleReference(field) ? getJSONSchemaForPropertyReference(field, transformOptions) : getPropertyDefinition(modelMetaData, transformOptions, field);
164
+ return [field.name, property, propertyMetaData];
165
+ };
166
+
167
+ export { getJSONSchemaProperty as default };
@@ -0,0 +1,154 @@
1
+ 'use strict';
2
+
3
+ const assert = require('node:assert');
4
+
5
+ const _interopDefaultCompat = e => e && typeof e === 'object' && 'default' in e ? e.default : e;
6
+
7
+ const assert__default = /*#__PURE__*/_interopDefaultCompat(assert);
8
+
9
+ const isDefined = (value) => value !== void 0 && value !== null;
10
+ const getJSONSchemaScalar = (fieldType) => {
11
+ switch (fieldType) {
12
+ case "BigInt":
13
+ case "Int": {
14
+ return "integer";
15
+ }
16
+ case "Boolean": {
17
+ return "boolean";
18
+ }
19
+ case "Bytes":
20
+ case "DateTime":
21
+ case "String": {
22
+ return "string";
23
+ }
24
+ case "Decimal":
25
+ case "Float": {
26
+ return "number";
27
+ }
28
+ case "Json": {
29
+ return ["number", "string", "boolean", "object", "array", "null"];
30
+ }
31
+ default: {
32
+ throw new Error(`Unhandled discriminated union member: ${JSON.stringify(fieldType)}`);
33
+ }
34
+ }
35
+ };
36
+ const getJSONSchemaType = (field) => {
37
+ const { isList, isRequired, kind, type } = field;
38
+ let scalarFieldType = "object";
39
+ if (kind === "scalar" && !isList) {
40
+ scalarFieldType = getJSONSchemaScalar(type);
41
+ } else if (isList) {
42
+ scalarFieldType = "array";
43
+ } else if (kind === "enum") {
44
+ scalarFieldType = "string";
45
+ }
46
+ if (isRequired || isList) {
47
+ return scalarFieldType;
48
+ }
49
+ const isFieldUnion = Array.isArray(scalarFieldType);
50
+ if (isFieldUnion) {
51
+ return [.../* @__PURE__ */ new Set(["null", ...scalarFieldType])];
52
+ }
53
+ return [scalarFieldType, "null"];
54
+ };
55
+ const getDefaultValue = (field) => {
56
+ const fieldDefault = field.default;
57
+ if (!field.hasDefaultValue) {
58
+ return void 0;
59
+ }
60
+ if (field.kind === "enum") {
61
+ return typeof fieldDefault === "string" ? fieldDefault : void 0;
62
+ }
63
+ if (field.kind !== "scalar") {
64
+ return void 0;
65
+ }
66
+ switch (field.type) {
67
+ case "BigInt":
68
+ case "DateTime":
69
+ case "String": {
70
+ return typeof fieldDefault === "string" ? fieldDefault : void 0;
71
+ }
72
+ case "Boolean": {
73
+ return typeof fieldDefault === "boolean" ? fieldDefault : void 0;
74
+ }
75
+ case "Bytes":
76
+ case "Json": {
77
+ return void 0;
78
+ }
79
+ case "Decimal":
80
+ case "Float":
81
+ case "Int": {
82
+ return typeof fieldDefault === "number" ? fieldDefault : void 0;
83
+ }
84
+ default: {
85
+ throw new Error(`Unhandled discriminated union member: ${JSON.stringify(field.type)}`);
86
+ }
87
+ }
88
+ };
89
+ const getFormatByDMMFType = (fieldType) => {
90
+ if (fieldType === "DateTime") {
91
+ return "date-time";
92
+ }
93
+ return void 0;
94
+ };
95
+ const getJSONSchemaForPropertyReference = (field, { persistOriginalType, schemaId }) => {
96
+ const notNullable = field.isRequired || field.isList;
97
+ assert__default.equal(typeof field.type, "string");
98
+ const typeReference = `#/definitions/${field.type}`;
99
+ const reference = { $ref: schemaId ? `${schemaId}${typeReference}` : typeReference };
100
+ return notNullable ? reference : {
101
+ anyOf: [reference, { type: "null" }],
102
+ ...persistOriginalType && {
103
+ originalType: field.type
104
+ }
105
+ };
106
+ };
107
+ const getItemsByDMMFType = (field, transformOptions) => {
108
+ if (field.kind === "scalar" && !field.isList || field.kind === "enum") {
109
+ return void 0;
110
+ }
111
+ if (field.kind === "scalar" && field.isList) {
112
+ return { type: getJSONSchemaScalar(field.type) };
113
+ }
114
+ return getJSONSchemaForPropertyReference(field, transformOptions);
115
+ };
116
+ const isSingleReference = (field) => field.kind !== "scalar" && !field.isList && field.kind !== "enum";
117
+ const getEnumListByDMMFType = (modelMetaData) => (field) => {
118
+ const enumItem = modelMetaData.enums.find(({ name }) => name === field.type);
119
+ if (!enumItem) {
120
+ return void 0;
121
+ }
122
+ return enumItem.values.map((item) => item.name);
123
+ };
124
+ const getDescription = (field) => field.documentation;
125
+ const getPropertyDefinition = (modelMetaData, transformOptions, field) => {
126
+ const type = getJSONSchemaType(field);
127
+ const format = getFormatByDMMFType(field.type);
128
+ const items = getItemsByDMMFType(field, transformOptions);
129
+ const enumList = getEnumListByDMMFType(modelMetaData)(field);
130
+ const defaultValue = getDefaultValue(field);
131
+ const description = getDescription(field);
132
+ return {
133
+ type,
134
+ ...transformOptions.persistOriginalType && {
135
+ originalType: field.type
136
+ },
137
+ ...isDefined(defaultValue) && { default: defaultValue },
138
+ ...isDefined(format) && { format },
139
+ ...isDefined(items) && { items },
140
+ ...isDefined(enumList) && { enum: enumList },
141
+ ...isDefined(description) && { description }
142
+ };
143
+ };
144
+ const getJSONSchemaProperty = (modelMetaData, transformOptions) => (field) => {
145
+ const propertyMetaData = {
146
+ hasDefaultValue: field.hasDefaultValue,
147
+ isScalar: field.kind === "scalar" || field.kind === "enum",
148
+ required: field.isRequired
149
+ };
150
+ const property = isSingleReference(field) ? getJSONSchemaForPropertyReference(field, transformOptions) : getPropertyDefinition(modelMetaData, transformOptions, field);
151
+ return [field.name, property, propertyMetaData];
152
+ };
153
+
154
+ module.exports = getJSONSchemaProperty;
@@ -0,0 +1,56 @@
1
+ import getJSONSchemaProperty from './getJSONSchemaProperty-ChH8N6gd.mjs';
2
+
3
+ const getRelationScalarFields = (model) => model.fields.flatMap((field) => field.relationFromFields ?? []);
4
+ const getJSONSchemaModel = (modelMetaData, transformOptions) => (model) => {
5
+ const definitionPropertiesMap = model.fields.map(getJSONSchemaProperty(modelMetaData, transformOptions));
6
+ const propertiesMap = definitionPropertiesMap.map(([name, definition2]) => [name, definition2]);
7
+ const relationScalarFields = getRelationScalarFields(model);
8
+ const propertiesWithoutRelationScalars = propertiesMap.filter((property) => !relationScalarFields.includes(property[0]));
9
+ const properties = Object.fromEntries(transformOptions.keepRelationScalarFields === "true" ? propertiesMap : propertiesWithoutRelationScalars);
10
+ const definition = {
11
+ properties,
12
+ type: "object"
13
+ };
14
+ if (transformOptions.includeRequiredFields) {
15
+ definition.required = definitionPropertiesMap.reduce((filtered, [name, , fieldMetaData]) => {
16
+ if (fieldMetaData.required && fieldMetaData.isScalar && !fieldMetaData.hasDefaultValue) {
17
+ filtered.push(name);
18
+ }
19
+ return filtered;
20
+ }, []);
21
+ }
22
+ return [model.name, definition];
23
+ };
24
+
25
+ const toCamelCase = (name) => name.slice(0, 1).toLowerCase() + name.slice(1);
26
+ const getPropertyDefinition = ({ schemaId }) => (model) => {
27
+ const reference = `#/definitions/${model.name}`;
28
+ return [
29
+ toCamelCase(model.name),
30
+ {
31
+ $ref: schemaId ? `${schemaId}${reference}` : reference
32
+ }
33
+ ];
34
+ };
35
+ const transformDmmf = (dmmf, transformOptions = {}) => {
36
+ const { enums = [], models = [], types = [] } = dmmf.datamodel;
37
+ const initialJSON = {
38
+ $schema: "http://json-schema.org/draft-07/schema#",
39
+ definitions: {},
40
+ type: "object"
41
+ };
42
+ const { schemaId } = transformOptions;
43
+ const modelDefinitionsMap = models.map(getJSONSchemaModel({ enums }, transformOptions));
44
+ const typeDefinitionsMap = types.map(getJSONSchemaModel({ enums }, transformOptions));
45
+ const modelPropertyDefinitionsMap = models.map(getPropertyDefinition(transformOptions));
46
+ const definitions = Object.fromEntries([...modelDefinitionsMap, ...typeDefinitionsMap]);
47
+ const properties = Object.fromEntries(modelPropertyDefinitionsMap);
48
+ return {
49
+ ...schemaId ? { $id: schemaId } : void 0,
50
+ ...initialJSON,
51
+ definitions,
52
+ properties
53
+ };
54
+ };
55
+
56
+ export { transformDmmf as default };
@@ -0,0 +1,58 @@
1
+ 'use strict';
2
+
3
+ const getJSONSchemaProperty = require('./getJSONSchemaProperty-DyREsKli.cjs');
4
+
5
+ const getRelationScalarFields = (model) => model.fields.flatMap((field) => field.relationFromFields ?? []);
6
+ const getJSONSchemaModel = (modelMetaData, transformOptions) => (model) => {
7
+ const definitionPropertiesMap = model.fields.map(getJSONSchemaProperty(modelMetaData, transformOptions));
8
+ const propertiesMap = definitionPropertiesMap.map(([name, definition2]) => [name, definition2]);
9
+ const relationScalarFields = getRelationScalarFields(model);
10
+ const propertiesWithoutRelationScalars = propertiesMap.filter((property) => !relationScalarFields.includes(property[0]));
11
+ const properties = Object.fromEntries(transformOptions.keepRelationScalarFields === "true" ? propertiesMap : propertiesWithoutRelationScalars);
12
+ const definition = {
13
+ properties,
14
+ type: "object"
15
+ };
16
+ if (transformOptions.includeRequiredFields) {
17
+ definition.required = definitionPropertiesMap.reduce((filtered, [name, , fieldMetaData]) => {
18
+ if (fieldMetaData.required && fieldMetaData.isScalar && !fieldMetaData.hasDefaultValue) {
19
+ filtered.push(name);
20
+ }
21
+ return filtered;
22
+ }, []);
23
+ }
24
+ return [model.name, definition];
25
+ };
26
+
27
+ const toCamelCase = (name) => name.slice(0, 1).toLowerCase() + name.slice(1);
28
+ const getPropertyDefinition = ({ schemaId }) => (model) => {
29
+ const reference = `#/definitions/${model.name}`;
30
+ return [
31
+ toCamelCase(model.name),
32
+ {
33
+ $ref: schemaId ? `${schemaId}${reference}` : reference
34
+ }
35
+ ];
36
+ };
37
+ const transformDmmf = (dmmf, transformOptions = {}) => {
38
+ const { enums = [], models = [], types = [] } = dmmf.datamodel;
39
+ const initialJSON = {
40
+ $schema: "http://json-schema.org/draft-07/schema#",
41
+ definitions: {},
42
+ type: "object"
43
+ };
44
+ const { schemaId } = transformOptions;
45
+ const modelDefinitionsMap = models.map(getJSONSchemaModel({ enums }, transformOptions));
46
+ const typeDefinitionsMap = types.map(getJSONSchemaModel({ enums }, transformOptions));
47
+ const modelPropertyDefinitionsMap = models.map(getPropertyDefinition(transformOptions));
48
+ const definitions = Object.fromEntries([...modelDefinitionsMap, ...typeDefinitionsMap]);
49
+ const properties = Object.fromEntries(modelPropertyDefinitionsMap);
50
+ return {
51
+ ...schemaId ? { $id: schemaId } : void 0,
52
+ ...initialJSON,
53
+ definitions,
54
+ properties
55
+ };
56
+ };
57
+
58
+ module.exports = transformDmmf;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visulima/prisma-dmmf-transformer",
3
- "version": "2.0.33",
3
+ "version": "2.0.35",
4
4
  "description": "A generator for Prisma to generate a valid JSON Schema v7.",
5
5
  "keywords": [
6
6
  "anolilab",
@@ -66,8 +66,8 @@
66
66
  "LICENSE.md"
67
67
  ],
68
68
  "dependencies": {
69
- "@prisma/generator-helper": "6.17.1",
70
- "type-fest": "5.1.0"
69
+ "@prisma/generator-helper": "6.19.0",
70
+ "type-fest": "5.2.0"
71
71
  },
72
72
  "peerDependencies": {
73
73
  "@prisma/client": "3.* || 4.* || 5.* || 6.*",
@@ -1 +0,0 @@
1
- var f=Object.defineProperty;var c=(e,t)=>f(e,"name",{value:t,configurable:!0});import{createRequire as g}from"node:module";const h=g(import.meta.url),o=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,S=c(e=>{if(typeof o<"u"&&o.versions&&o.versions.node){const[t,r]=o.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return o.getBuiltinModule(e)}return h(e)},"__cjs_getBuiltinModule"),b=S("node:assert");var D=Object.defineProperty,s=c((e,t)=>D(e,"name",{value:t,configurable:!0}),"a");const u=s(e=>e!=null,"isDefined"),m=s(e=>{switch(e){case"BigInt":case"Int":return"integer";case"Boolean":return"boolean";case"Bytes":case"DateTime":case"String":return"string";case"Decimal":case"Float":return"number";case"Json":return["number","string","boolean","object","array","null"];default:throw new Error(`Unhandled discriminated union member: ${JSON.stringify(e)}`)}},"getJSONSchemaScalar"),T=s(e=>{const{isList:t,isRequired:r,kind:n,type:a}=e;let i="object";return n==="scalar"&&!t?i=m(a):t?i="array":n==="enum"&&(i="string"),r||t?i:Array.isArray(i)?[...new Set(["null",...i])]:[i,"null"]},"getJSONSchemaType"),_=s(e=>{const t=e.default;if(e.hasDefaultValue){if(e.kind==="enum")return typeof t=="string"?t:void 0;if(e.kind==="scalar")switch(e.type){case"BigInt":case"DateTime":case"String":return typeof t=="string"?t:void 0;case"Boolean":return typeof t=="boolean"?t:void 0;case"Bytes":case"Json":return;case"Decimal":case"Float":case"Int":return typeof t=="number"?t:void 0;default:throw new Error(`Unhandled discriminated union member: ${JSON.stringify(e.type)}`)}}},"getDefaultValue"),v=s(e=>{if(e==="DateTime")return"date-time"},"getFormatByDMMFType"),y=s((e,{persistOriginalType:t,schemaId:r})=>{const n=e.isRequired||e.isList;b.equal(typeof e.type,"string");const a=`#/definitions/${e.type}`,i={$ref:r?`${r}${a}`:a};return n?i:{anyOf:[i,{type:"null"}],...t&&{originalType:e.type}}},"getJSONSchemaForPropertyReference"),B=s((e,t)=>{if(!(e.kind==="scalar"&&!e.isList||e.kind==="enum"))return e.kind==="scalar"&&e.isList?{type:m(e.type)}:y(e,t)},"getItemsByDMMFType"),O=s(e=>e.kind!=="scalar"&&!e.isList&&e.kind!=="enum","isSingleReference"),k=s(e=>t=>{const r=e.enums.find(({name:n})=>n===t.type);if(r)return r.values.map(n=>n.name)},"getEnumListByDMMFType"),M=s(e=>e.documentation,"getDescription"),j=s((e,t,r)=>{const n=T(r),a=v(r.type),i=B(r,t),l=k(e)(r),d=_(r),p=M(r);return{type:n,...t.persistOriginalType&&{originalType:r.type},...u(d)&&{default:d},...u(a)&&{format:a},...u(i)&&{items:i},...u(l)&&{enum:l},...u(p)&&{description:p}}},"getPropertyDefinition"),J=s((e,t)=>r=>{const n={hasDefaultValue:r.hasDefaultValue,isScalar:r.kind==="scalar"||r.kind==="enum",required:r.isRequired},a=O(r)?y(r,t):j(e,t,r);return[r.name,a,n]},"getJSONSchemaProperty");export{J as default};
@@ -1 +0,0 @@
1
- "use strict";var p=Object.defineProperty;var u=(e,t)=>p(e,"name",{value:t,configurable:!0});const f=require("node:assert"),g=u(e=>e&&typeof e=="object"&&"default"in e?e.default:e,"_interopDefaultCompat"),D=g(f);var S=Object.defineProperty,a=u((e,t)=>S(e,"name",{value:t,configurable:!0}),"a");const o=a(e=>e!=null,"isDefined"),d=a(e=>{switch(e){case"BigInt":case"Int":return"integer";case"Boolean":return"boolean";case"Bytes":case"DateTime":case"String":return"string";case"Decimal":case"Float":return"number";case"Json":return["number","string","boolean","object","array","null"];default:throw new Error(`Unhandled discriminated union member: ${JSON.stringify(e)}`)}},"getJSONSchemaScalar"),h=a(e=>{const{isList:t,isRequired:r,kind:n,type:s}=e;let i="object";return n==="scalar"&&!t?i=d(s):t?i="array":n==="enum"&&(i="string"),r||t?i:Array.isArray(i)?[...new Set(["null",...i])]:[i,"null"]},"getJSONSchemaType"),b=a(e=>{const t=e.default;if(e.hasDefaultValue){if(e.kind==="enum")return typeof t=="string"?t:void 0;if(e.kind==="scalar")switch(e.type){case"BigInt":case"DateTime":case"String":return typeof t=="string"?t:void 0;case"Boolean":return typeof t=="boolean"?t:void 0;case"Bytes":case"Json":return;case"Decimal":case"Float":case"Int":return typeof t=="number"?t:void 0;default:throw new Error(`Unhandled discriminated union member: ${JSON.stringify(e.type)}`)}}},"getDefaultValue"),O=a(e=>{if(e==="DateTime")return"date-time"},"getFormatByDMMFType"),m=a((e,{persistOriginalType:t,schemaId:r})=>{const n=e.isRequired||e.isList;D.equal(typeof e.type,"string");const s=`#/definitions/${e.type}`,i={$ref:r?`${r}${s}`:s};return n?i:{anyOf:[i,{type:"null"}],...t&&{originalType:e.type}}},"getJSONSchemaForPropertyReference"),T=a((e,t)=>{if(!(e.kind==="scalar"&&!e.isList||e.kind==="enum"))return e.kind==="scalar"&&e.isList?{type:d(e.type)}:m(e,t)},"getItemsByDMMFType"),k=a(e=>e.kind!=="scalar"&&!e.isList&&e.kind!=="enum","isSingleReference"),B=a(e=>t=>{const r=e.enums.find(({name:n})=>n===t.type);if(r)return r.values.map(n=>n.name)},"getEnumListByDMMFType"),v=a(e=>e.documentation,"getDescription"),F=a((e,t,r)=>{const n=h(r),s=O(r.type),i=T(r,t),c=B(e)(r),l=b(r),y=v(r);return{type:n,...t.persistOriginalType&&{originalType:r.type},...o(l)&&{default:l},...o(s)&&{format:s},...o(i)&&{items:i},...o(c)&&{enum:c},...o(y)&&{description:y}}},"getPropertyDefinition"),J=a((e,t)=>r=>{const n={hasDefaultValue:r.hasDefaultValue,isScalar:r.kind==="scalar"||r.kind==="enum",required:r.isRequired},s=k(r)?m(r,t):F(e,t,r);return[r.name,s,n]},"getJSONSchemaProperty");module.exports=J;
@@ -1 +0,0 @@
1
- var b=Object.defineProperty;var d=(r,e)=>b(r,"name",{value:e,configurable:!0});import j from"./getJSONSchemaProperty-BJUSxFNN.mjs";var v=Object.defineProperty,p=d((r,e)=>v(r,"name",{value:e,configurable:!0}),"n");const O=p(r=>r.fields.flatMap(e=>e.relationFromFields??[]),"getRelationScalarFields"),u=p((r,e)=>t=>{const i=t.fields.map(j(r,e)),o=i.map(([a,s])=>[a,s]),c=O(t),m=o.filter(a=>!c.includes(a[0])),l={properties:Object.fromEntries(e.keepRelationScalarFields==="true"?o:m),type:"object"};return e.includeRequiredFields&&(l.required=i.reduce((a,[s,,n])=>(n.required&&n.isScalar&&!n.hasDefaultValue&&a.push(s),a),[])),[t.name,l]},"getJSONSchemaModel");var g=Object.defineProperty,f=d((r,e)=>g(r,"name",{value:e,configurable:!0}),"o");const y=f(r=>r.slice(0,1).toLowerCase()+r.slice(1),"toCamelCase"),S=f(({schemaId:r})=>e=>{const t=`#/definitions/${e.name}`;return[y(e.name),{$ref:r?`${r}${t}`:t}]},"getPropertyDefinition"),D=f((r,e={})=>{const{enums:t=[],models:i=[],types:o=[]}=r.datamodel,c={$schema:"http://json-schema.org/draft-07/schema#",definitions:{},type:"object"},{schemaId:m}=e,l=i.map(u({enums:t},e)),a=o.map(u({enums:t},e)),s=i.map(S(e)),n=Object.fromEntries([...l,...a]),h=Object.fromEntries(s);return{...m?{$id:m}:void 0,...c,definitions:n,properties:h}},"transformDmmf");export{D as default};
@@ -1 +0,0 @@
1
- "use strict";var b=Object.defineProperty;var d=(r,e)=>b(r,"name",{value:e,configurable:!0});const j=require("./getJSONSchemaProperty-DRt6R_Y4.cjs");var S=Object.defineProperty,f=d((r,e)=>S(r,"name",{value:e,configurable:!0}),"n");const g=f(r=>r.fields.flatMap(e=>e.relationFromFields??[]),"getRelationScalarFields"),p=f((r,e)=>t=>{const s=t.fields.map(j(r,e)),o=s.map(([a,i])=>[a,i]),l=g(t),c=o.filter(a=>!l.includes(a[0])),m={properties:Object.fromEntries(e.keepRelationScalarFields==="true"?o:c),type:"object"};return e.includeRequiredFields&&(m.required=s.reduce((a,[i,,n])=>(n.required&&n.isScalar&&!n.hasDefaultValue&&a.push(i),a),[])),[t.name,m]},"getJSONSchemaModel");var v=Object.defineProperty,u=d((r,e)=>v(r,"name",{value:e,configurable:!0}),"o");const y=u(r=>r.slice(0,1).toLowerCase()+r.slice(1),"toCamelCase"),O=u(({schemaId:r})=>e=>{const t=`#/definitions/${e.name}`;return[y(e.name),{$ref:r?`${r}${t}`:t}]},"getPropertyDefinition"),$=u((r,e={})=>{const{enums:t=[],models:s=[],types:o=[]}=r.datamodel,l={$schema:"http://json-schema.org/draft-07/schema#",definitions:{},type:"object"},{schemaId:c}=e,m=s.map(p({enums:t},e)),a=o.map(p({enums:t},e)),i=s.map(O(e)),n=Object.fromEntries([...m,...a]),h=Object.fromEntries(i);return{...c?{$id:c}:void 0,...l,definitions:n,properties:h}},"transformDmmf");module.exports=$;