@lssm/lib.graphql-prisma 0.0.0-canary-20251120170226

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/README.md ADDED
@@ -0,0 +1,35 @@
1
+ # @lssm/lib.graphql-prisma
2
+
3
+ Prisma integration for Pothos GraphQL schemas.
4
+
5
+ ## Purpose
6
+
7
+ To seamlessly integrate Prisma models into the Pothos GraphQL builder, allowing for type-safe field definition based on the database schema.
8
+
9
+ ## Installation
10
+
11
+ ```bash
12
+ npm install @lssm/lib.graphql-prisma
13
+ # or
14
+ bun add @lssm/lib.graphql-prisma
15
+ ```
16
+
17
+ ## Key Concepts
18
+
19
+ - **Pothos Prisma Plugin**: Automatically exposes Prisma models as GraphQL types.
20
+ - **DMMF**: Uses Prisma's DMMF for type generation.
21
+
22
+ ## Usage
23
+
24
+ ```ts
25
+ import { builder } from '@lssm/lib.graphql-prisma';
26
+ import { prisma } from '@lssm/lib.database';
27
+
28
+ builder.prismaObject('User', {
29
+ fields: (t) => ({
30
+ id: t.exposeID('id'),
31
+ email: t.exposeString('email'),
32
+ }),
33
+ });
34
+ ```
35
+
@@ -0,0 +1,67 @@
1
+ import { PrismaClient } from "@pothos/plugin-prisma";
2
+ import "@pothos/plugin-complexity";
3
+ import "@pothos/plugin-relay";
4
+
5
+ //#region src/index.d.ts
6
+ interface PrismaBuilderOptions {
7
+ complexity?: {
8
+ defaultComplexity?: number;
9
+ defaultListMultiplier?: number;
10
+ };
11
+ tracing?: {
12
+ enableByDefault?: boolean;
13
+ onResolved?: (parentType: string, fieldName: string, durationMs: number) => void;
14
+ };
15
+ federation?: boolean;
16
+ prisma: {
17
+ client: PrismaClient;
18
+ dmmf?: unknown;
19
+ exposeDescriptions?: boolean;
20
+ filterConnectionTotalCount?: boolean;
21
+ onUnusedQuery?: 'warn' | null;
22
+ };
23
+ }
24
+ declare function createPrismaSchemaBuilder<C extends object, PT extends {} | undefined, Objects extends object = object, Scalars extends object = object>(options: PrismaBuilderOptions): PothosSchemaTypes.SchemaBuilder<PothosSchemaTypes.ExtendDefaultTypes<{
25
+ DefaultInputFieldRequiredness: true;
26
+ PrismaTypes: PT;
27
+ Context: C;
28
+ Objects: Objects;
29
+ Scalars: {
30
+ JSON: {
31
+ Input: unknown;
32
+ Output: unknown;
33
+ };
34
+ Date: {
35
+ Input: Date;
36
+ Output: Date;
37
+ };
38
+ EmailAddress: {
39
+ Input: string;
40
+ Output: string;
41
+ };
42
+ Locale: {
43
+ Input: string;
44
+ Output: string;
45
+ };
46
+ URL: {
47
+ Input: string;
48
+ Output: string;
49
+ };
50
+ GeoJSON: {
51
+ Input: string;
52
+ Output: string;
53
+ };
54
+ } & Scalars;
55
+ ObjectType: {
56
+ CommunityRule: {
57
+ id: string;
58
+ };
59
+ };
60
+ }>>;
61
+ interface LoggerLike {
62
+ info: (msg: string, meta?: unknown) => void;
63
+ }
64
+ declare function createLoggerTracing(logger: LoggerLike, opLabel?: string): PrismaBuilderOptions["tracing"];
65
+ //#endregion
66
+ export { LoggerLike, PrismaBuilderOptions, createLoggerTracing, createPrismaSchemaBuilder };
67
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/index.ts"],"sourcesContent":[],"mappings":";;;;;UAeiB,oBAAA;EAAA,UAAA,CAAA,EAAA;IAuBD,iBAAA,CAAA,EAAA,MAAyB;IAK9B,qBAAA,CAAA,EAAA,MAAA;EAaM,CAAA;EACJ,OAAA,CAAA,EAAA;IACA,eAAA,CAAA,EAAA,OAAA;IAGQ,UAAA,CAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,GAAA,IAAA;EAAc,CAAA;EAK3B,UAAA,CAAA,EAAA,OAAA;EAvBuB,MAAA,EAAA;IAAA,MAAA,EAbnB,YAamB;IAAA,IAAA,CAAA,EAAA,OAAA;IAgHd,kBAAU,CAAA,EAAA,OAAA;IAGX,0BAAmB,CAAA,EAAS,OAAA;;;;iBAxH5B,kJAKL,uBAAoB,iBAAA,CAAA,cAAA,iBAAA,CAAA;;eAad;WACJ;WACA;;;;;;;aAGQ;cAAc;;;;;;;;;;;;;;;;;;MAK3B;;;;;;;UAyFS,UAAA;;;iBAGD,mBAAA,SAA4B,+BAWrC"}
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ import{l as e}from"./schema/dist/ScalarTypeEnum.js";import"./schema/dist/index.js";import t from"@pothos/core";import n from"@pothos/plugin-prisma";import r from"@pothos/plugin-complexity";import i from"@pothos/plugin-dataloader";import a from"@pothos/plugin-relay";import o,{isRootField as s,wrapResolver as c}from"@pothos/plugin-tracing";import{GeoJSONResolver as l}from"graphql-scalars";function u(u){let d=new t({defaultInputFieldRequiredness:!0,plugins:[a,r,o,i,n],relay:{},prisma:{client:u.prisma.client,...u.prisma.dmmf?{dmmf:u.prisma.dmmf}:{},exposeDescriptions:u.prisma.exposeDescriptions??!0,filterConnectionTotalCount:u.prisma.filterConnectionTotalCount??!0,onUnusedQuery:u.prisma.onUnusedQuery??null},complexity:{defaultComplexity:u.complexity?.defaultComplexity??1,defaultListMultiplier:u.complexity?.defaultListMultiplier??10},tracing:{default:e=>u.tracing?.enableByDefault??!0?s(e):!1,wrap:(e,t,n)=>c(e,(e,t)=>{u.tracing?.onResolved?.(n.parentType,n.name,t)})}});return Object.entries(e).forEach(([e,t])=>{[`ID`,`Boolean`].includes(e)||d.addScalarType(e,t())}),d.addScalarType(`GeoJSON`,l),d.queryType({fields:e=>({})}),d.mutationType({fields:e=>({})}),d}function d(e,t=`gql.field`){return{enableByDefault:!0,onResolved:(e,t,n,...r)=>{}}}export{d as createLoggerTracing,u as createPrismaSchemaBuilder};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["ScalarTypeEnum"],"sources":["../src/index.ts"],"sourcesContent":["import SchemaBuilder, { type SchemaTypes } from '@pothos/core';\nimport PrismaPlugin, { type PrismaClient } from '@pothos/plugin-prisma';\nimport ComplexityPlugin from '@pothos/plugin-complexity';\nimport DataloaderPlugin from '@pothos/plugin-dataloader';\nimport RelayPlugin from '@pothos/plugin-relay';\nimport TracingPlugin, {\n isRootField,\n wrapResolver,\n} from '@pothos/plugin-tracing';\nimport '@pothos/plugin-prisma';\nimport '@pothos/plugin-relay';\nimport '@pothos/plugin-complexity';\nimport { GeoJSONResolver } from 'graphql-scalars';\nimport { ScalarTypeEnum } from '@lssm/lib.schema';\n\nexport interface PrismaBuilderOptions {\n complexity?: {\n defaultComplexity?: number;\n defaultListMultiplier?: number;\n };\n tracing?: {\n enableByDefault?: boolean;\n onResolved?: (\n parentType: string,\n fieldName: string,\n durationMs: number\n ) => void;\n };\n federation?: boolean;\n prisma: {\n client: PrismaClient;\n dmmf?: unknown;\n exposeDescriptions?: boolean;\n filterConnectionTotalCount?: boolean;\n onUnusedQuery?: 'warn' | null;\n };\n}\n\nexport function createPrismaSchemaBuilder<\n C extends object,\n PT extends {} | undefined,\n Objects extends object = object,\n Scalars extends object = object,\n>(options: PrismaBuilderOptions) {\n // const plugins: (keyof PothosSchemaTypes.Plugins<SchemaTypes>)[] = [\n const plugins = [\n RelayPlugin,\n ComplexityPlugin,\n TracingPlugin,\n DataloaderPlugin,\n PrismaPlugin,\n ] satisfies (keyof PothosSchemaTypes.Plugins<SchemaTypes>)[];\n // if (options.federation) plugins.push(FederationPlugin);\n\n const builder = new SchemaBuilder<{\n DefaultInputFieldRequiredness: true;\n PrismaTypes: PT;\n Context: C;\n Objects: Objects;\n Scalars: {\n JSON: { Input: unknown; Output: unknown };\n Date: { Input: Date; Output: Date };\n EmailAddress: { Input: string; Output: string };\n Locale: { Input: string; Output: string };\n URL: { Input: string; Output: string };\n GeoJSON: { Input: string; Output: string };\n } & Scalars;\n ObjectType: { CommunityRule: { id: string } };\n }>({\n defaultInputFieldRequiredness: true,\n plugins,\n relay: {},\n prisma: {\n client: options.prisma.client,\n ...(options.prisma.dmmf ? { dmmf: options.prisma.dmmf as any } : {}),\n exposeDescriptions: options.prisma.exposeDescriptions ?? true,\n filterConnectionTotalCount:\n options.prisma.filterConnectionTotalCount ?? true,\n onUnusedQuery: options.prisma.onUnusedQuery ?? null,\n },\n complexity: {\n defaultComplexity: options.complexity?.defaultComplexity ?? 1,\n defaultListMultiplier: options.complexity?.defaultListMultiplier ?? 10,\n },\n tracing: {\n default: (cfg) =>\n (options.tracing?.enableByDefault ?? true) ? isRootField(cfg) : false,\n wrap: (resolver, _opts, cfg) =>\n wrapResolver(resolver, (_err, dur) => {\n options.tracing?.onResolved?.(cfg.parentType, cfg.name, dur);\n }),\n },\n });\n\n Object.entries(ScalarTypeEnum).forEach(([name, type]) => {\n if (!['ID', 'Boolean'].includes(name)) {\n builder.addScalarType(name as any, type());\n }\n });\n builder.addScalarType('GeoJSON', GeoJSONResolver);\n\n builder.queryType({\n fields: (t) => ({}),\n });\n\n // Mutation Type (reduced, moved fields into modules)\n builder.mutationType({\n fields: (t) => ({}),\n });\n\n return builder;\n}\n\n// export async function loadDmmfFromClient(\n// client: any\n// ): Promise<PrismaDMMF.Document> {\n// const dmmf: PrismaDMMF.Document | undefined = (client as any)?._dmmf;\n// if (dmmf) return dmmf;\n// if (typeof (client as any).$extends === 'function') {\n// const ext = await (client as any).$extends({});\n// if (ext && ext._dmmf) return ext._dmmf as PrismaDMMF.Document;\n// }\n// throw new Error('Unable to load Prisma DMMF from client');\n// }\n\n// export type PrismaSchemaBuilder<\n// C extends object,\n// PT extends {} | undefined,\n// > = PothosSchemaTypes.SchemaBuilder<\n// PothosSchemaTypes.ExtendDefaultTypes<{\n// PrismaTypes: PT;\n// Context: C;\n// Scalars: {\n// JSON: { Input: unknown; Output: unknown };\n// Date: { Input: Date; Output: Date };\n// };\n// }>\n// >;\n\n// export type PrismaSchemaBuilder<C, PT> = InstanceType<typeof SchemaBuilder><{\n// PrismaTypes: PT;\n// Context: C;\n// Scalars: {\n// JSON: { Input: unknown; Output: unknown };\n// Date: { Input: Date; Output: Date };\n// };\n// }>;\n\n// export function createTypedPrismaBuilder<PT extends {}>() {\n// return function create<C extends object>(options: PrismaBuilderOptions<C>) {\n// return createPrismaSchemaBuilder<C, PT>(options);\n// };\n// }\n\n// Tracing helper that integrates with a logger-like object\nexport interface LoggerLike {\n info: (msg: string, meta?: unknown) => void;\n}\nexport function createLoggerTracing(logger: LoggerLike, opLabel = 'gql.field') {\n return {\n enableByDefault: true,\n onResolved: (\n parentType: string,\n fieldName: string,\n durationMs: number,\n ...others: any[]\n ) => {\n // logger.info(opLabel, { parentType, fieldName, durationMs, others });\n },\n } as PrismaBuilderOptions['tracing'];\n}\n"],"mappings":"sYAsCA,SAAgB,EAKd,EAA+B,CAW/B,IAAM,EAAU,IAAI,EAcjB,CACD,8BAA+B,GAC/B,QAzBc,CACd,EACA,EACA,EACA,EACA,EACD,CAoBC,MAAO,EAAE,CACT,OAAQ,CACN,OAAQ,EAAQ,OAAO,OACvB,GAAI,EAAQ,OAAO,KAAO,CAAE,KAAM,EAAQ,OAAO,KAAa,CAAG,EAAE,CACnE,mBAAoB,EAAQ,OAAO,oBAAsB,GACzD,2BACE,EAAQ,OAAO,4BAA8B,GAC/C,cAAe,EAAQ,OAAO,eAAiB,KAChD,CACD,WAAY,CACV,kBAAmB,EAAQ,YAAY,mBAAqB,EAC5D,sBAAuB,EAAQ,YAAY,uBAAyB,GACrE,CACD,QAAS,CACP,QAAU,GACP,EAAQ,SAAS,iBAAmB,GAAQ,EAAY,EAAI,CAAG,GAClE,MAAO,EAAU,EAAO,IACtB,EAAa,GAAW,EAAM,IAAQ,CACpC,EAAQ,SAAS,aAAa,EAAI,WAAY,EAAI,KAAM,EAAI,EAC5D,CACL,CACF,CAAC,CAkBF,OAhBA,OAAO,QAAQA,EAAe,CAAC,SAAS,CAAC,EAAM,KAAU,CAClD,CAAC,KAAM,UAAU,CAAC,SAAS,EAAK,EACnC,EAAQ,cAAc,EAAa,GAAM,CAAC,EAE5C,CACF,EAAQ,cAAc,UAAW,EAAgB,CAEjD,EAAQ,UAAU,CAChB,OAAS,IAAO,EAAE,EACnB,CAAC,CAGF,EAAQ,aAAa,CACnB,OAAS,IAAO,EAAE,EACnB,CAAC,CAEK,EAgDT,SAAgB,EAAoB,EAAoB,EAAU,YAAa,CAC7E,MAAO,CACL,gBAAiB,GACjB,YACE,EACA,EACA,EACA,GAAG,IACA,GAGN"}
@@ -0,0 +1 @@
1
+ import{z as e}from"zod";import"graphql";
@@ -0,0 +1,2 @@
1
+ import{z as e}from"zod";import{GraphQLScalarType as t,Kind as n}from"graphql";var r=class extends t{zodSchema;jsonSchemaDef;constructor(e){super(e),this.zodSchema=e.zod,this.jsonSchemaDef=e.jsonSchema}getZod(){return this.zodSchema}getPothos(){return this}getJson(){return typeof this.jsonSchemaDef==`function`?this.jsonSchemaDef():this.jsonSchemaDef}getJsonSchemaDef(){return this.jsonSchemaDef}getJsonSchema(){let e=t=>{let n=typeof t==`function`?t():t;if(Array.isArray(n))return n.map(t=>e(t));if(n&&typeof n==`object`){let t={};for(let[r,i]of Object.entries(n))t[r]=e(i);return t}return n};return e(this.getJson())}};export{r};
2
+ //# sourceMappingURL=FieldType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldType.js","names":["t","r"],"sources":["../../../../schema/dist/FieldType.js"],"sourcesContent":["import{z as e}from\"zod\";import{GraphQLScalarType as t,Kind as n}from\"graphql\";var r=class extends t{zodSchema;jsonSchemaDef;constructor(e){super(e),this.zodSchema=e.zod,this.jsonSchemaDef=e.jsonSchema}getZod(){return this.zodSchema}getPothos(){return this}getJson(){return typeof this.jsonSchemaDef==`function`?this.jsonSchemaDef():this.jsonSchemaDef}getJsonSchemaDef(){return this.jsonSchemaDef}getJsonSchema(){let e=t=>{let n=typeof t==`function`?t():t;if(Array.isArray(n))return n.map(t=>e(t));if(n&&typeof n==`object`){let t={};for(let[r,i]of Object.entries(n))t[r]=e(i);return t}return n};return e(this.getJson())}};export{r as FieldType};\n//# sourceMappingURL=FieldType.js.map"],"mappings":"8EAA8E,IAAI,EAAE,cAAcA,CAAC,CAAC,UAAU,cAAc,YAAY,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,UAAU,EAAE,IAAI,KAAK,cAAc,EAAE,WAAW,QAAQ,CAAC,OAAO,KAAK,UAAU,WAAW,CAAC,OAAO,KAAK,SAAS,CAAC,OAAO,OAAO,KAAK,eAAe,WAAW,KAAK,eAAe,CAAC,KAAK,cAAc,kBAAkB,CAAC,OAAO,KAAK,cAAc,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,GAAG,CAAC,EAAE,GAAG,MAAM,QAAQ,EAAE,CAAC,OAAO,EAAE,IAAI,GAAG,EAAEA,EAAE,CAAC,CAAC,GAAG,GAAG,OAAO,GAAG,SAAS,CAAC,IAAIA,EAAE,EAAE,CAAC,IAAI,GAAG,CAACC,EAAE,KAAK,OAAO,QAAQ,EAAE,CAAC,EAAEA,GAAG,EAAE,EAAE,CAAC,OAAOD,EAAE,OAAO,GAAG,OAAO,EAAE,KAAK,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ import{r as e}from"./FieldType.js";import{z as t}from"zod";import{Kind as n}from"graphql";const r=/^[A-Za-z]{2}(?:-[A-Za-z0-9]{2,8})*$/,i=/^(?:UTC|[A-Za-z_]+\/[A-Za-z_]+)$/,a=/^[+]?\d[\d\s().-]{3,}$/,o=/^[A-Z]{3}$/,s=/^[A-Z]{2}$/,c=-180,l={String_unsecure:()=>new e({name:`String_unsecure`,description:`Unvalidated string scalar`,zod:t.string(),parseValue:e=>t.string().parse(e),serialize:e=>String(e),parseLiteral:e=>{if(e.kind!==n.STRING)throw TypeError(`Invalid literal`);return e.value},jsonSchema:{type:`string`}}),Int_unsecure:()=>new e({name:`Int_unsecure`,description:`Unvalidated integer scalar`,zod:t.number().int(),parseValue:e=>{let n=typeof e==`number`?e:Number(e);return t.number().int().parse(n)},serialize:e=>Math.trunc(typeof e==`number`?e:Number(e)),parseLiteral:e=>{if(e.kind!==n.INT)throw TypeError(`Invalid literal`);return Number(e.value)},jsonSchema:{type:`integer`}}),Float_unsecure:()=>new e({name:`Float_unsecure`,description:`Unvalidated float scalar`,zod:t.number(),parseValue:e=>{let n=typeof e==`number`?e:Number(e);return t.number().parse(n)},serialize:e=>Number(e),parseLiteral:e=>{if(e.kind!==n.FLOAT&&e.kind!==n.INT)throw TypeError(`Invalid literal`);return Number(e.value)},jsonSchema:{type:`number`}}),Boolean:()=>new e({name:`Boolean`,description:`Unvalidated boolean scalar`,zod:t.boolean(),parseValue:e=>t.coerce.boolean().parse(e),serialize:e=>!!e,parseLiteral:e=>{if(e.kind!==n.BOOLEAN)throw TypeError(`Invalid literal`);return e.value},jsonSchema:{type:`boolean`}}),ID:()=>new e({name:`ID`,description:`Unvalidated id scalar`,zod:t.string(),parseValue:e=>t.string().parse(e),serialize:e=>String(e),parseLiteral:e=>{if(e.kind!==n.STRING)throw TypeError(`Invalid literal`);return e.value},jsonSchema:{type:`string`}}),JSON:()=>new e({name:`JSON`,zod:t.any(),parseValue:e=>e,serialize:e=>e,jsonSchema:{}}),JSONObject:()=>new e({name:`JSONObject`,zod:t.record(t.string(),t.any()),parseValue:e=>t.record(t.string(),t.any()).parse(e),serialize:e=>e??{},jsonSchema:{type:`object`}}),Date:()=>new e({name:`Date`,zod:t.date(),parseValue:e=>e instanceof Date?e:new Date(String(e)),serialize:e=>e instanceof Date?e.toISOString().split(`T`)[0]:String(e),jsonSchema:{type:`string`,format:`date`}}),DateTime:()=>new e({name:`DateTime`,zod:t.date(),parseValue:e=>e instanceof Date?e:new Date(String(e)),serialize:e=>e instanceof Date?e.toISOString():String(e),jsonSchema:{type:`string`,format:`date-time`}}),Time:()=>new e({name:`Time`,zod:t.string().regex(/^\d{2}:\d{2}(:\d{2})?$/),parseValue:e=>t.string().regex(/^\d{2}:\d{2}(:\d{2})?$/).parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,pattern:`^\\d{2}:\\d{2}(:\\d{2})?$`}}),EmailAddress:()=>new e({name:`EmailAddress`,zod:t.string().email(),parseValue:e=>t.string().email().parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,format:`email`}}),URL:()=>new e({name:`URL`,zod:t.string().url(),parseValue:e=>t.string().url().parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,format:`uri`}}),PhoneNumber:()=>new e({name:`PhoneNumber`,zod:t.string().regex(a),parseValue:e=>t.string().regex(a).parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,pattern:a.source}}),NonEmptyString:()=>new e({name:`NonEmptyString`,zod:t.string().min(1),parseValue:e=>t.string().min(1).parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,minLength:1}}),Locale:()=>new e({name:`Locale`,zod:t.string().regex(r),parseValue:e=>t.string().regex(r).parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,pattern:r.source}}),TimeZone:()=>new e({name:`TimeZone`,zod:t.string().regex(i),parseValue:e=>t.string().regex(i).parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,pattern:i.source}}),Latitude:()=>new e({name:`Latitude`,zod:t.number().min(-90).max(90),parseValue:e=>t.coerce.number().min(-90).max(90).parse(e),serialize:e=>Number(e),jsonSchema:{type:`number`,minimum:-90,maximum:90}}),Longitude:()=>new e({name:`Longitude`,zod:t.number().min(c).max(180),parseValue:e=>t.coerce.number().min(c).max(180).parse(e),serialize:e=>Number(e),jsonSchema:{type:`number`,minimum:c,maximum:180}}),Currency:()=>new e({name:`Currency`,zod:t.string().regex(o),parseValue:e=>t.string().regex(o).parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,pattern:o.source}}),CountryCode:()=>new e({name:`CountryCode`,zod:t.string().regex(s),parseValue:e=>t.string().regex(s).parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,pattern:s.source}})};export{l};
2
+ //# sourceMappingURL=ScalarTypeEnum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScalarTypeEnum.js","names":["r","e","t","n"],"sources":["../../../../schema/dist/ScalarTypeEnum.js"],"sourcesContent":["import{FieldType as e}from\"./FieldType.js\";import{z as t}from\"zod\";import{Kind as n}from\"graphql\";const r=/^[A-Za-z]{2}(?:-[A-Za-z0-9]{2,8})*$/,i=/^(?:UTC|[A-Za-z_]+\\/[A-Za-z_]+)$/,a=/^[+]?\\d[\\d\\s().-]{3,}$/,o=/^[A-Z]{3}$/,s=/^[A-Z]{2}$/,c=-180,l={String_unsecure:()=>new e({name:`String_unsecure`,description:`Unvalidated string scalar`,zod:t.string(),parseValue:e=>t.string().parse(e),serialize:e=>String(e),parseLiteral:e=>{if(e.kind!==n.STRING)throw TypeError(`Invalid literal`);return e.value},jsonSchema:{type:`string`}}),Int_unsecure:()=>new e({name:`Int_unsecure`,description:`Unvalidated integer scalar`,zod:t.number().int(),parseValue:e=>{let n=typeof e==`number`?e:Number(e);return t.number().int().parse(n)},serialize:e=>Math.trunc(typeof e==`number`?e:Number(e)),parseLiteral:e=>{if(e.kind!==n.INT)throw TypeError(`Invalid literal`);return Number(e.value)},jsonSchema:{type:`integer`}}),Float_unsecure:()=>new e({name:`Float_unsecure`,description:`Unvalidated float scalar`,zod:t.number(),parseValue:e=>{let n=typeof e==`number`?e:Number(e);return t.number().parse(n)},serialize:e=>Number(e),parseLiteral:e=>{if(e.kind!==n.FLOAT&&e.kind!==n.INT)throw TypeError(`Invalid literal`);return Number(e.value)},jsonSchema:{type:`number`}}),Boolean:()=>new e({name:`Boolean`,description:`Unvalidated boolean scalar`,zod:t.boolean(),parseValue:e=>t.coerce.boolean().parse(e),serialize:e=>!!e,parseLiteral:e=>{if(e.kind!==n.BOOLEAN)throw TypeError(`Invalid literal`);return e.value},jsonSchema:{type:`boolean`}}),ID:()=>new e({name:`ID`,description:`Unvalidated id scalar`,zod:t.string(),parseValue:e=>t.string().parse(e),serialize:e=>String(e),parseLiteral:e=>{if(e.kind!==n.STRING)throw TypeError(`Invalid literal`);return e.value},jsonSchema:{type:`string`}}),JSON:()=>new e({name:`JSON`,zod:t.any(),parseValue:e=>e,serialize:e=>e,jsonSchema:{}}),JSONObject:()=>new e({name:`JSONObject`,zod:t.record(t.string(),t.any()),parseValue:e=>t.record(t.string(),t.any()).parse(e),serialize:e=>e??{},jsonSchema:{type:`object`}}),Date:()=>new e({name:`Date`,zod:t.date(),parseValue:e=>e instanceof Date?e:new Date(String(e)),serialize:e=>e instanceof Date?e.toISOString().split(`T`)[0]:String(e),jsonSchema:{type:`string`,format:`date`}}),DateTime:()=>new e({name:`DateTime`,zod:t.date(),parseValue:e=>e instanceof Date?e:new Date(String(e)),serialize:e=>e instanceof Date?e.toISOString():String(e),jsonSchema:{type:`string`,format:`date-time`}}),Time:()=>new e({name:`Time`,zod:t.string().regex(/^\\d{2}:\\d{2}(:\\d{2})?$/),parseValue:e=>t.string().regex(/^\\d{2}:\\d{2}(:\\d{2})?$/).parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,pattern:`^\\\\d{2}:\\\\d{2}(:\\\\d{2})?$`}}),EmailAddress:()=>new e({name:`EmailAddress`,zod:t.string().email(),parseValue:e=>t.string().email().parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,format:`email`}}),URL:()=>new e({name:`URL`,zod:t.string().url(),parseValue:e=>t.string().url().parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,format:`uri`}}),PhoneNumber:()=>new e({name:`PhoneNumber`,zod:t.string().regex(a),parseValue:e=>t.string().regex(a).parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,pattern:a.source}}),NonEmptyString:()=>new e({name:`NonEmptyString`,zod:t.string().min(1),parseValue:e=>t.string().min(1).parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,minLength:1}}),Locale:()=>new e({name:`Locale`,zod:t.string().regex(r),parseValue:e=>t.string().regex(r).parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,pattern:r.source}}),TimeZone:()=>new e({name:`TimeZone`,zod:t.string().regex(i),parseValue:e=>t.string().regex(i).parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,pattern:i.source}}),Latitude:()=>new e({name:`Latitude`,zod:t.number().min(-90).max(90),parseValue:e=>t.coerce.number().min(-90).max(90).parse(e),serialize:e=>Number(e),jsonSchema:{type:`number`,minimum:-90,maximum:90}}),Longitude:()=>new e({name:`Longitude`,zod:t.number().min(c).max(180),parseValue:e=>t.coerce.number().min(c).max(180).parse(e),serialize:e=>Number(e),jsonSchema:{type:`number`,minimum:c,maximum:180}}),Currency:()=>new e({name:`Currency`,zod:t.string().regex(o),parseValue:e=>t.string().regex(o).parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,pattern:o.source}}),CountryCode:()=>new e({name:`CountryCode`,zod:t.string().regex(s),parseValue:e=>t.string().regex(s).parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,pattern:s.source}})};export{l as ScalarTypeEnum};\n//# sourceMappingURL=ScalarTypeEnum.js.map"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ import"./EnumType.js";import"./FieldType.js";import{z as e}from"zod";
@@ -0,0 +1 @@
1
+ import"./EnumType.js";import{r as e}from"./FieldType.js";import{l as t}from"./ScalarTypeEnum.js";import"./SchemaModel.js";
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "@lssm/lib.graphql-prisma",
3
+ "version": "0.0.0-canary-20251120170226",
4
+ "description": "Pothos + Prisma builder factory with injectable client/DMMF",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "files": [
8
+ "dist",
9
+ "README.md"
10
+ ],
11
+ "scripts": {
12
+ "build": "tsdown",
13
+ "dev": "tsup --watch",
14
+ "clean": "rm -rf dist"
15
+ },
16
+ "dependencies": {
17
+ "@lssm/lib.schema": "0.0.0-canary-20251120170226",
18
+ "@pothos/core": "^4.9.1",
19
+ "@pothos/plugin-complexity": "^4.1.2",
20
+ "@pothos/plugin-dataloader": "^4.4.2",
21
+ "@pothos/plugin-prisma": "^4.11.0",
22
+ "@pothos/plugin-relay": "^4.4.3",
23
+ "@pothos/plugin-tracing": "^1.1.2",
24
+ "graphql": "^16.8.1",
25
+ "graphql-scalars": "^1.22.5"
26
+ },
27
+ "peerDependencies": {
28
+ "graphql": ">=16.0.0"
29
+ },
30
+ "devDependencies": {
31
+ "@lssm/tool.tsdown": "0.0.0-canary-20251120170226",
32
+ "tsdown": "^0.15.9",
33
+ "typescript": "^5.9.3"
34
+ },
35
+ "type": "module",
36
+ "module": "./dist/index.js",
37
+ "exports": {
38
+ ".": "./dist/index.js",
39
+ "./*": "./*"
40
+ },
41
+ "publishConfig": {
42
+ "exports": {
43
+ ".": "./dist/index.js",
44
+ "./*": "./*"
45
+ }
46
+ }
47
+ }