drizzle-typebox 0.0.2 → 0.1.0-02b522c
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 +49 -0
- package/index.cjs +2 -0
- package/index.cjs.map +1 -0
- package/index.d.ts +45 -0
- package/index.mjs +2 -0
- package/index.mjs.map +1 -0
- package/package.json +73 -6
package/README.md
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
`drizzle-typebox` is a plugin for [Drizzle ORM](https://github.com/drizzle-team/drizzle-orm) that allows you to generate [@sinclair/typebox](https://github.com/sinclairzx81/typebox) schemas from Drizzle ORM schemas.
|
|
2
|
+
|
|
3
|
+
| Database | Insert schema | Select schema |
|
|
4
|
+
| :--------- | :-----------: | :-----------: |
|
|
5
|
+
| PostgreSQL | ✅ | ✅ |
|
|
6
|
+
| MySQL | ✅ | ✅ |
|
|
7
|
+
| SQLite | ✅ | ✅ |
|
|
8
|
+
|
|
9
|
+
# Usage
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
import { pgEnum, pgTable, serial, text, timestamp } from 'drizzle-orm/pg-core';
|
|
13
|
+
import { createInsertSchema, createSelectSchema } from 'drizzle-typebox';
|
|
14
|
+
import { Type } from '@sinclair/typebox';
|
|
15
|
+
import { Value } from '@sinclair/typebox/value';
|
|
16
|
+
|
|
17
|
+
const users = pgTable('users', {
|
|
18
|
+
id: serial('id').primaryKey(),
|
|
19
|
+
name: text('name').notNull(),
|
|
20
|
+
email: text('email').notNull(),
|
|
21
|
+
role: text('role', { enum: ['admin', 'user'] }).notNull(),
|
|
22
|
+
createdAt: timestamp('created_at').notNull().defaultNow(),
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
// Schema for inserting a user - can be used to validate API requests
|
|
26
|
+
const insertUserSchema = createInsertSchema(users);
|
|
27
|
+
|
|
28
|
+
// Schema for selecting a user - can be used to validate API responses
|
|
29
|
+
const selectUserSchema = createSelectSchema(users);
|
|
30
|
+
|
|
31
|
+
// Overriding the fields
|
|
32
|
+
const insertUserSchema = createInsertSchema(users, {
|
|
33
|
+
role: Type.String(),
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
// Refining the fields - useful if you want to change the fields before they become nullable/optional in the final schema
|
|
37
|
+
const insertUserSchema = createInsertSchema(users, {
|
|
38
|
+
id: (schema) => Type.Number({ minimum: 0 }),
|
|
39
|
+
role: Type.String(),
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
// Usage
|
|
43
|
+
|
|
44
|
+
const isUserValid: boolean = Value.Check(insertUserSchema, {
|
|
45
|
+
name: 'John Doe',
|
|
46
|
+
email: 'johndoe@test.com',
|
|
47
|
+
role: 'admin',
|
|
48
|
+
});
|
|
49
|
+
```
|
package/index.cjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("@sinclair/typebox"),t=require("drizzle-orm"),r=require("drizzle-orm/mysql-core"),n=require("drizzle-orm/pg-core"),a=require("drizzle-orm/sqlite-core");const i=e.Type.Union([e.Type.String(),e.Type.Number(),e.Type.Boolean(),e.Type.Null()]),s=e.Type.Union([i,e.Type.Array(e.Type.Any()),e.Type.Record(e.Type.String(),e.Type.Any())]),o=t=>e.Type.Union([t,e.Type.Null()]);const y=/^[\dA-Fa-f]{8}(?:-[\dA-Fa-f]{4}){3}-[\dA-Fa-f]{12}$/;function l(i){let o;if(function(e){return"enumValues"in e&&Array.isArray(e.enumValues)&&e.enumValues.length>0}(i)&&(o=i.enumValues?.length?e.Type.Union(i.enumValues.map((t=>e.Type.Literal(t)))):e.Type.String()),!o)if("custom"===i.dataType)o=e.Type.Any();else if("json"===i.dataType)o=s;else if("array"===i.dataType)o=e.Type.Array(l(i.baseColumn));else if("number"===i.dataType)o=e.Type.Number();else if("bigint"===i.dataType)o=e.Type.BigInt();else if("boolean"===i.dataType)o=e.Type.Boolean();else if("date"===i.dataType)o=e.Type.Date();else if("string"===i.dataType){const s=e.Type.String();(t.is(i,n.PgChar)||t.is(i,n.PgVarchar)||t.is(i,r.MySqlVarChar)||t.is(i,r.MySqlVarBinary)||t.is(i,r.MySqlChar)||t.is(i,a.SQLiteText))&&"number"==typeof i.length&&(s.maxLength=i.length),o=s}else t.is(i,n.PgUUID)&&(o=e.Type.RegEx(y));return o||(o=e.Type.Any()),o}exports.Nullable=o,exports.createInsertSchema=function(r,n){const a=t.getTableColumns(r),i=Object.entries(a);let s=Object.fromEntries(i.map((([e,t])=>[e,l(t)])));n&&(s=Object.assign(s,Object.fromEntries(Object.entries(n).map((([e,t])=>[e,"function"==typeof t?t(s):t])))));for(const[t,r]of i)r.notNull?r.hasDefault&&(s[t]=e.Type.Optional(s[t])):s[t]=e.Type.Optional(o(s[t]));return e.Type.Object(s)},exports.createSelectSchema=function(r,n){const a=t.getTableColumns(r),i=Object.entries(a);let s=Object.fromEntries(i.map((([e,t])=>[e,l(t)])));n&&(s=Object.assign(s,Object.fromEntries(Object.entries(n).map((([e,t])=>[e,"function"==typeof t?t(s):t])))));for(const[e,t]of i)t.notNull||(s[e]=o(s[e]));return e.Type.Object(s)},exports.jsonSchema=s;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
package/index.cjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":[null],"names":["literalSchema","Type","Union","String","Number","Boolean","Null","jsonSchema","Array","Any","Record","Nullable","schema","uuidPattern","mapColumnToSchema","column","type","isArray","enumValues","length","isWithEnum","map","value","Literal","dataType","baseColumn","BigInt","Date","sType","is","PgChar","PgVarchar","MySqlVarChar","MySqlVarBinary","MySqlChar","SQLiteText","maxLength","PgUUID","RegEx","table","refine","columns","getTableColumns","columnEntries","Object","entries","schemaEntries","fromEntries","name","assign","refineColumn","notNull","hasDefault","Optional"],"mappings":"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"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { TAny, TArray, TBigInt, TBoolean, TDate, TLiteral, TNull, TNumber, TObject, TOptional, TSchema, TString, TUnion } from '@sinclair/typebox';
|
|
2
|
+
import { type Assume, type DrizzleTypeError, type Equal, type Simplify, type Table, type Column } from 'drizzle-orm';
|
|
3
|
+
type TUnionLiterals<T extends string[]> = T extends readonly [
|
|
4
|
+
infer U extends string,
|
|
5
|
+
...infer Rest extends string[]
|
|
6
|
+
] ? [TLiteral<U>, ...TUnionLiterals<Rest>] : [];
|
|
7
|
+
type Json = typeof jsonSchema;
|
|
8
|
+
export declare const jsonSchema: TUnion<[TUnion<[TString, TNumber, TBoolean, TNull]>, TArray<TAny>, import("@sinclair/typebox").TRecord<TString, TAny>]>;
|
|
9
|
+
type TNullable<TType extends TSchema> = TUnion<[TType, TNull]>;
|
|
10
|
+
type MapInsertColumnToTypebox<TColumn extends Column, TType extends TSchema> = TColumn['_']['notNull'] extends false ? TOptional<TNullable<TType>> : TColumn['_']['hasDefault'] extends true ? TOptional<TType> : TType;
|
|
11
|
+
type MapSelectColumnToTypebox<TColumn extends Column, TType extends TSchema> = TColumn['_']['notNull'] extends false ? TNullable<TType> : TType;
|
|
12
|
+
type MapColumnToTypebox<TColumn extends Column, TType extends TSchema, TMode extends 'insert' | 'select'> = TMode extends 'insert' ? MapInsertColumnToTypebox<TColumn, TType> : MapSelectColumnToTypebox<TColumn, TType>;
|
|
13
|
+
type MaybeOptional<TColumn extends Column, TType extends TSchema, TMode extends 'insert' | 'select', TNoOptional extends boolean> = TNoOptional extends true ? TType : MapColumnToTypebox<TColumn, TType, TMode>;
|
|
14
|
+
type GetTypeboxType<TColumn extends Column> = TColumn['_']['dataType'] extends infer TDataType ? TDataType extends 'custom' ? TAny : TDataType extends 'json' ? Json : TColumn extends {
|
|
15
|
+
enumValues: [string, ...string[]];
|
|
16
|
+
} ? Equal<TColumn['enumValues'], [string, ...string[]]> extends true ? TString : TUnion<TUnionLiterals<TColumn['enumValues']>> : TDataType extends 'array' ? TArray<GetTypeboxType<Assume<TColumn['_'], {
|
|
17
|
+
baseColumn: Column;
|
|
18
|
+
}>['baseColumn']>> : TDataType extends 'bigint' ? TBigInt : TDataType extends 'number' ? TNumber : TDataType extends 'string' ? TString : TDataType extends 'boolean' ? TBoolean : TDataType extends 'date' ? TDate : TAny : never;
|
|
19
|
+
type ValueOrUpdater<T, TUpdaterArg> = T | ((arg: TUpdaterArg) => T);
|
|
20
|
+
type UnwrapValueOrUpdater<T> = T extends ValueOrUpdater<infer U, any> ? U : never;
|
|
21
|
+
export type Refine<TTable extends Table, TMode extends 'select' | 'insert'> = {
|
|
22
|
+
[K in keyof TTable['_']['columns']]?: ValueOrUpdater<TSchema, TMode extends 'select' ? BuildSelectSchema<TTable, {}, true> : BuildInsertSchema<TTable, {}, true>>;
|
|
23
|
+
};
|
|
24
|
+
export type BuildInsertSchema<TTable extends Table, TRefine extends Refine<TTable, 'insert'> | {}, TNoOptional extends boolean = false> = TTable['_']['columns'] extends infer TColumns extends Record<string, Column<any>> ? {
|
|
25
|
+
[K in keyof TColumns & string]: MaybeOptional<TColumns[K], K extends keyof TRefine ? Assume<UnwrapValueOrUpdater<TRefine[K]>, TSchema> : GetTypeboxType<TColumns[K]>, 'insert', TNoOptional>;
|
|
26
|
+
} : never;
|
|
27
|
+
export type BuildSelectSchema<TTable extends Table, TRefine extends Refine<TTable, 'select'>, TNoOptional extends boolean = false> = Simplify<{
|
|
28
|
+
[K in keyof TTable['_']['columns']]: MaybeOptional<TTable['_']['columns'][K], K extends keyof TRefine ? Assume<UnwrapValueOrUpdater<TRefine[K]>, TSchema> : GetTypeboxType<TTable['_']['columns'][K]>, 'select', TNoOptional>;
|
|
29
|
+
}>;
|
|
30
|
+
export declare const Nullable: <T extends TSchema>(schema: T) => TUnion<[T, TNull]>;
|
|
31
|
+
export declare function createInsertSchema<TTable extends Table, TRefine extends Refine<TTable, 'insert'> = Refine<TTable, 'insert'>>(table: TTable,
|
|
32
|
+
/**
|
|
33
|
+
* @param refine Refine schema fields
|
|
34
|
+
*/
|
|
35
|
+
refine?: {
|
|
36
|
+
[K in keyof TRefine]: K extends keyof TTable['_']['columns'] ? TRefine[K] : DrizzleTypeError<`Column '${K & string}' does not exist in table '${TTable['_']['name']}'`>;
|
|
37
|
+
}): TObject<BuildInsertSchema<TTable, Equal<TRefine, Refine<TTable, 'insert'>> extends true ? {} : TRefine>>;
|
|
38
|
+
export declare function createSelectSchema<TTable extends Table, TRefine extends Refine<TTable, 'select'> = Refine<TTable, 'select'>>(table: TTable,
|
|
39
|
+
/**
|
|
40
|
+
* @param refine Refine schema fields
|
|
41
|
+
*/
|
|
42
|
+
refine?: {
|
|
43
|
+
[K in keyof TRefine]: K extends keyof TTable['_']['columns'] ? TRefine[K] : DrizzleTypeError<`Column '${K & string}' does not exist in table '${TTable['_']['name']}'`>;
|
|
44
|
+
}): TObject<BuildSelectSchema<TTable, Equal<TRefine, Refine<TTable, 'select'>> extends true ? {} : TRefine>>;
|
|
45
|
+
export {};
|
package/index.mjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Type as e}from"@sinclair/typebox";import{getTableColumns as t,is as n}from"drizzle-orm";import{MySqlVarChar as r,MySqlVarBinary as o,MySqlChar as i}from"drizzle-orm/mysql-core";import{PgChar as a,PgVarchar as l,PgUUID as s}from"drizzle-orm/pg-core";import{SQLiteText as m}from"drizzle-orm/sqlite-core";const f=e.Union([e.String(),e.Number(),e.Boolean(),e.Null()]),c=e.Union([f,e.Array(e.Any()),e.Record(e.String(),e.Any())]),u=t=>e.Union([t,e.Null()]);function p(n,r){const o=t(n),i=Object.entries(o);let a=Object.fromEntries(i.map((([e,t])=>[e,d(t)])));r&&(a=Object.assign(a,Object.fromEntries(Object.entries(r).map((([e,t])=>[e,"function"==typeof t?t(a):t])))));for(const[t,n]of i)n.notNull?n.hasDefault&&(a[t]=e.Optional(a[t])):a[t]=e.Optional(u(a[t]));return e.Object(a)}function y(n,r){const o=t(n),i=Object.entries(o);let a=Object.fromEntries(i.map((([e,t])=>[e,d(t)])));r&&(a=Object.assign(a,Object.fromEntries(Object.entries(r).map((([e,t])=>[e,"function"==typeof t?t(a):t])))));for(const[e,t]of i)t.notNull||(a[e]=u(a[e]));return e.Object(a)}const b=/^[\dA-Fa-f]{8}(?:-[\dA-Fa-f]{4}){3}-[\dA-Fa-f]{12}$/;function d(t){let f;if(function(e){return"enumValues"in e&&Array.isArray(e.enumValues)&&e.enumValues.length>0}(t)&&(f=t.enumValues?.length?e.Union(t.enumValues.map((t=>e.Literal(t)))):e.String()),!f)if("custom"===t.dataType)f=e.Any();else if("json"===t.dataType)f=c;else if("array"===t.dataType)f=e.Array(d(t.baseColumn));else if("number"===t.dataType)f=e.Number();else if("bigint"===t.dataType)f=e.BigInt();else if("boolean"===t.dataType)f=e.Boolean();else if("date"===t.dataType)f=e.Date();else if("string"===t.dataType){const s=e.String();(n(t,a)||n(t,l)||n(t,r)||n(t,o)||n(t,i)||n(t,m))&&"number"==typeof t.length&&(s.maxLength=t.length),f=s}else n(t,s)&&(f=e.RegEx(b));return f||(f=e.Any()),f}export{u as Nullable,p as createInsertSchema,y as createSelectSchema,c as jsonSchema};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
package/index.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":[null],"names":["literalSchema","Type","Union","String","Number","Boolean","Null","jsonSchema","Array","Any","Record","Nullable","schema","createInsertSchema","table","refine","columns","getTableColumns","columnEntries","Object","entries","schemaEntries","fromEntries","map","name","column","mapColumnToSchema","assign","refineColumn","notNull","hasDefault","Optional","createSelectSchema","uuidPattern","type","isArray","enumValues","length","isWithEnum","value","Literal","dataType","baseColumn","BigInt","Date","sType","is","PgChar","PgVarchar","MySqlVarChar","MySqlVarBinary","MySqlChar","SQLiteText","maxLength","PgUUID","RegEx"],"mappings":"qTA0CA,MAAMA,EAAgBC,EAAKC,MAAM,CAChCD,EAAKE,SACLF,EAAKG,SACLH,EAAKI,UACLJ,EAAKK,SAKOC,EAAaN,EAAKC,MAAM,CACpCF,EACAC,EAAKO,MAAMP,EAAKQ,OAChBR,EAAKS,OAAOT,EAAKE,SAAUF,EAAKQ,SAsHpBE,EAA+BC,GAC3CX,EAAKC,MAAM,CAACU,EAAQX,EAAKK,SAEpB,SAAUO,EAIfC,EAIAC,GAaA,MAAMC,EAAUC,EAAgBH,GAC1BI,EAAgBC,OAAOC,QAAQJ,GAErC,IAAIK,EAAgBF,OAAOG,YAC1BJ,EAAcK,KAAI,EAAEC,EAAMC,KAClB,CAACD,EAAME,EAAkBD,OAI9BV,IACHM,EAAgBF,OAAOQ,OACtBN,EACAF,OAAOG,YACNH,OAAOC,QAAQL,GAAQQ,KAAI,EAAEC,EAAMI,KAC3B,CACNJ,EACwB,mBAAjBI,EACJA,EACAP,GAMAO,QAOR,IAAK,MAAOJ,EAAMC,KAAWP,EACvBO,EAAOI,QAEDJ,EAAOK,aACjBT,EAAcG,GAAQvB,EAAK8B,SAASV,EAAcG,KAFlDH,EAAcG,GAAQvB,EAAK8B,SAASpB,EAASU,EAAcG,KAM7D,OAAOvB,EAAKkB,OAAOE,EACpB,CAEM,SAAUW,EAIflB,EAIAC,GAYA,MAAMC,EAAUC,EAAgBH,GAC1BI,EAAgBC,OAAOC,QAAQJ,GAErC,IAAIK,EAAgBF,OAAOG,YAC1BJ,EAAcK,KAAI,EAAEC,EAAMC,KAClB,CAACD,EAAME,EAAkBD,OAI9BV,IACHM,EAAgBF,OAAOQ,OACtBN,EACAF,OAAOG,YACNH,OAAOC,QAAQL,GAAQQ,KAAI,EAAEC,EAAMI,KAC3B,CACNJ,EACwB,mBAAjBI,EACJA,EACAP,GAMAO,QAOR,IAAK,MAAOJ,EAAMC,KAAWP,EACvBO,EAAOI,UACXR,EAAcG,GAAQb,EAASU,EAAcG,KAI/C,OAAOvB,EAAKkB,OAAOE,EACpB,CAYA,MAAMY,EAAc,sDAEpB,SAASP,EAAkBD,GAC1B,IAAIS,EAQJ,GArBD,SACCT,GAEA,MACC,eAAgBA,GAChBjB,MAAM2B,QAAQV,EAAOW,aACrBX,EAAOW,WAAWC,OAAS,CAE7B,CAOKC,CAAWb,KACdS,EAAOT,EAAOW,YAAYC,OACvBpC,EAAKC,MAAMuB,EAAOW,WAAWb,KAAKgB,GAAUtC,EAAKuC,QAAQD,MACzDtC,EAAKE,WAGJ+B,EACJ,GAAwB,WAApBT,EAAOgB,SACVP,EAAOjC,EAAKQ,WACN,GAAwB,SAApBgB,EAAOgB,SACjBP,EAAO3B,OACD,GAAwB,UAApBkB,EAAOgB,SACjBP,EAAOjC,EAAKO,MACXkB,EAAmBD,EAA6BiB,kBAE3C,GAAwB,WAApBjB,EAAOgB,SACjBP,EAAOjC,EAAKG,cACN,GAAwB,WAApBqB,EAAOgB,SACjBP,EAAOjC,EAAK0C,cACN,GAAwB,YAApBlB,EAAOgB,SACjBP,EAAOjC,EAAKI,eACN,GAAwB,SAApBoB,EAAOgB,SACjBP,EAAOjC,EAAK2C,YACN,GAAwB,WAApBnB,EAAOgB,SAAuB,CACxC,MAAMI,EAAQ5C,EAAKE,UAGjB2C,EAAGrB,EAAQsB,IACXD,EAAGrB,EAAQuB,IACXF,EAAGrB,EAAQwB,IACXH,EAAGrB,EAAQyB,IACXJ,EAAGrB,EAAQ0B,IACXL,EAAGrB,EAAQ2B,KACa,iBAAlB3B,EAAOY,SAEdQ,EAAMQ,UAAY5B,EAAOY,QAG1BH,EAAOW,CACP,MAAUC,EAAGrB,EAAQ6B,KACrBpB,EAAOjC,EAAKsD,MAAMtB,IAQpB,OAJKC,IACJA,EAAOjC,EAAKQ,OAGNyB,CACR"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,78 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "drizzle-typebox",
|
|
3
|
-
"version": "0.0
|
|
4
|
-
"description": "",
|
|
5
|
-
"
|
|
3
|
+
"version": "0.1.0-02b522c",
|
|
4
|
+
"description": "Generate Typebox schemas from Drizzle ORM schemas",
|
|
5
|
+
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
|
-
"
|
|
7
|
+
"build": "rimraf dist && rollup --config rollup.config.ts --configPlugin typescript && resolve-tspaths && cp README.md package.json dist/",
|
|
8
|
+
"b": "pnpm build",
|
|
9
|
+
"test:types": "cd tests && tsc",
|
|
10
|
+
"pack": "(cd dist && npm pack --pack-destination ..) && rm -f package.tgz && mv *.tgz package.tgz",
|
|
11
|
+
"publish": "npm publish package.tgz",
|
|
12
|
+
"test": "ava tests"
|
|
8
13
|
},
|
|
9
|
-
"
|
|
10
|
-
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"types": "./index.d.ts",
|
|
17
|
+
"import": "./index.mjs",
|
|
18
|
+
"require": "./index.cjs",
|
|
19
|
+
"default": "./index.mjs"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"main": "./index.cjs",
|
|
23
|
+
"module": "./index.mjs",
|
|
24
|
+
"types": "./index.d.ts",
|
|
25
|
+
"publishConfig": {
|
|
26
|
+
"provenance": true
|
|
27
|
+
},
|
|
28
|
+
"repository": {
|
|
29
|
+
"type": "git",
|
|
30
|
+
"url": "git+https://github.com/drizzle-team/drizzle-orm.git"
|
|
31
|
+
},
|
|
32
|
+
"ava": {
|
|
33
|
+
"files": [
|
|
34
|
+
"tests/**/*.test.ts",
|
|
35
|
+
"!tests/bun/**/*"
|
|
36
|
+
],
|
|
37
|
+
"extensions": {
|
|
38
|
+
"ts": "module"
|
|
39
|
+
},
|
|
40
|
+
"nodeArguments": [
|
|
41
|
+
"--loader=tsx"
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
"keywords": [
|
|
45
|
+
"typebox",
|
|
46
|
+
"validate",
|
|
47
|
+
"validation",
|
|
48
|
+
"schema",
|
|
49
|
+
"drizzle",
|
|
50
|
+
"orm",
|
|
51
|
+
"pg",
|
|
52
|
+
"mysql",
|
|
53
|
+
"postgresql",
|
|
54
|
+
"postgres",
|
|
55
|
+
"sqlite",
|
|
56
|
+
"database",
|
|
57
|
+
"sql",
|
|
58
|
+
"typescript",
|
|
59
|
+
"ts"
|
|
60
|
+
],
|
|
61
|
+
"author": "Drizzle Team",
|
|
62
|
+
"license": "Apache-2.0",
|
|
63
|
+
"peerDependencies": {
|
|
64
|
+
"@sinclair/typebox": ">=0.17.6",
|
|
65
|
+
"drizzle-orm": ">=0.23.13"
|
|
66
|
+
},
|
|
67
|
+
"devDependencies": {
|
|
68
|
+
"@rollup/plugin-terser": "^0.4.1",
|
|
69
|
+
"@rollup/plugin-typescript": "^11.1.0",
|
|
70
|
+
"@sinclair/typebox": "^0.29.6",
|
|
71
|
+
"@types/node": "^18.15.10",
|
|
72
|
+
"ava": "^5.1.0",
|
|
73
|
+
"drizzle-orm": "link:../drizzle-orm/dist",
|
|
74
|
+
"rimraf": "^5.0.0",
|
|
75
|
+
"rollup": "^3.20.7",
|
|
76
|
+
"tsx": "^3.12.2"
|
|
77
|
+
}
|
|
11
78
|
}
|