@prisma-next/adapter-sqlite 0.5.0-dev.6 → 0.5.0-dev.60
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 +2 -2
- package/dist/{adapter-BG7_o_3h.d.mts → adapter-CjuvmCVF.d.mts} +10 -2
- package/dist/adapter-CjuvmCVF.d.mts.map +1 -0
- package/dist/{adapter-lwcslPF8.mjs → adapter-DjLhS34S.mjs} +56 -50
- package/dist/adapter-DjLhS34S.mjs.map +1 -0
- package/dist/adapter.d.mts +2 -2
- package/dist/adapter.mjs +1 -2
- package/dist/codec-types.d.mts +2 -40
- package/dist/codec-types.mjs +1 -1
- package/dist/column-types.d.mts +1 -5
- package/dist/column-types.d.mts.map +1 -1
- package/dist/column-types.mjs +2 -6
- package/dist/column-types.mjs.map +1 -1
- package/dist/control.d.mts +35 -3
- package/dist/control.d.mts.map +1 -1
- package/dist/control.mjs +415 -8
- package/dist/control.mjs.map +1 -1
- package/dist/{descriptor-meta-Bg-c1LmL.mjs → descriptor-meta-DYT9Gt_F.mjs} +1 -1
- package/dist/{descriptor-meta-Bg-c1LmL.mjs.map → descriptor-meta-DYT9Gt_F.mjs.map} +1 -1
- package/dist/runtime.d.mts +3 -3
- package/dist/runtime.d.mts.map +1 -1
- package/dist/runtime.mjs +19 -4
- package/dist/runtime.mjs.map +1 -1
- package/dist/{types-gAqc4ucF.d.mts → types-BFRXGAgd.d.mts} +1 -1
- package/dist/{types-gAqc4ucF.d.mts.map → types-BFRXGAgd.d.mts.map} +1 -1
- package/dist/types.d.mts +1 -1
- package/package.json +21 -17
- package/src/core/adapter.ts +65 -29
- package/src/core/column-types.ts +1 -7
- package/src/core/control-adapter.ts +279 -15
- package/src/core/control-mutation-defaults.ts +358 -0
- package/src/core/runtime-adapter.ts +20 -2
- package/src/exports/codec-types.ts +8 -6
- package/src/exports/column-types.ts +0 -1
- package/src/exports/control.ts +45 -1
- package/dist/adapter-BG7_o_3h.d.mts.map +0 -1
- package/dist/adapter-lwcslPF8.mjs.map +0 -1
- package/dist/codec-ids-o_Z8i4nt.mjs +0 -15
- package/dist/codec-ids-o_Z8i4nt.mjs.map +0 -1
- package/dist/codec-types.d.mts.map +0 -1
- package/dist/codecs-Bhz0W5Xm.mjs +0 -87
- package/dist/codecs-Bhz0W5Xm.mjs.map +0 -1
- package/src/core/codec-ids.ts +0 -14
- package/src/core/codecs.ts +0 -108
- package/src/core/sql-utils.ts +0 -35
package/src/core/codec-ids.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export {
|
|
2
|
-
SQL_CHAR_CODEC_ID,
|
|
3
|
-
SQL_FLOAT_CODEC_ID,
|
|
4
|
-
SQL_INT_CODEC_ID,
|
|
5
|
-
SQL_VARCHAR_CODEC_ID,
|
|
6
|
-
} from '@prisma-next/sql-relational-core/ast';
|
|
7
|
-
export const SQLITE_TEXT_CODEC_ID = 'sqlite/text@1' as const;
|
|
8
|
-
export const SQLITE_INTEGER_CODEC_ID = 'sqlite/integer@1' as const;
|
|
9
|
-
export const SQLITE_REAL_CODEC_ID = 'sqlite/real@1' as const;
|
|
10
|
-
export const SQLITE_BLOB_CODEC_ID = 'sqlite/blob@1' as const;
|
|
11
|
-
export const SQLITE_BOOLEAN_CODEC_ID = 'sqlite/boolean@1' as const;
|
|
12
|
-
export const SQLITE_DATETIME_CODEC_ID = 'sqlite/datetime@1' as const;
|
|
13
|
-
export const SQLITE_JSON_CODEC_ID = 'sqlite/json@1' as const;
|
|
14
|
-
export const SQLITE_BIGINT_CODEC_ID = 'sqlite/bigint@1' as const;
|
package/src/core/codecs.ts
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { codec, defineCodecs, sqlCodecDefinitions } from '@prisma-next/sql-relational-core/ast';
|
|
2
|
-
import {
|
|
3
|
-
SQLITE_BIGINT_CODEC_ID,
|
|
4
|
-
SQLITE_BLOB_CODEC_ID,
|
|
5
|
-
SQLITE_BOOLEAN_CODEC_ID,
|
|
6
|
-
SQLITE_DATETIME_CODEC_ID,
|
|
7
|
-
SQLITE_INTEGER_CODEC_ID,
|
|
8
|
-
SQLITE_JSON_CODEC_ID,
|
|
9
|
-
SQLITE_REAL_CODEC_ID,
|
|
10
|
-
SQLITE_TEXT_CODEC_ID,
|
|
11
|
-
} from './codec-ids';
|
|
12
|
-
|
|
13
|
-
const sqlCharCodec = sqlCodecDefinitions.char.codec;
|
|
14
|
-
const sqlVarcharCodec = sqlCodecDefinitions.varchar.codec;
|
|
15
|
-
const sqlIntCodec = sqlCodecDefinitions.int.codec;
|
|
16
|
-
const sqlFloatCodec = sqlCodecDefinitions.float.codec;
|
|
17
|
-
|
|
18
|
-
export type JsonValue =
|
|
19
|
-
| string
|
|
20
|
-
| number
|
|
21
|
-
| boolean
|
|
22
|
-
| null
|
|
23
|
-
| { readonly [key: string]: JsonValue }
|
|
24
|
-
| readonly JsonValue[];
|
|
25
|
-
|
|
26
|
-
const sqliteTextCodec = codec({
|
|
27
|
-
typeId: SQLITE_TEXT_CODEC_ID,
|
|
28
|
-
targetTypes: ['text'],
|
|
29
|
-
traits: ['equality', 'order', 'textual'],
|
|
30
|
-
encode: (value: string): string => value,
|
|
31
|
-
decode: (wire: string): string => wire,
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
const sqliteIntegerCodec = codec({
|
|
35
|
-
typeId: SQLITE_INTEGER_CODEC_ID,
|
|
36
|
-
targetTypes: ['integer'],
|
|
37
|
-
traits: ['equality', 'order', 'numeric'],
|
|
38
|
-
encode: (value: number): number => value,
|
|
39
|
-
decode: (wire: number): number => wire,
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
const sqliteRealCodec = codec({
|
|
43
|
-
typeId: SQLITE_REAL_CODEC_ID,
|
|
44
|
-
targetTypes: ['real'],
|
|
45
|
-
traits: ['equality', 'order', 'numeric'],
|
|
46
|
-
encode: (value: number): number => value,
|
|
47
|
-
decode: (wire: number): number => wire,
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
const sqliteBlobCodec = codec({
|
|
51
|
-
typeId: SQLITE_BLOB_CODEC_ID,
|
|
52
|
-
targetTypes: ['blob'],
|
|
53
|
-
traits: ['equality'],
|
|
54
|
-
encode: (value: Uint8Array): Uint8Array => value,
|
|
55
|
-
decode: (wire: Uint8Array): Uint8Array => wire,
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
const sqliteBooleanCodec = codec({
|
|
59
|
-
typeId: SQLITE_BOOLEAN_CODEC_ID,
|
|
60
|
-
targetTypes: ['integer'],
|
|
61
|
-
traits: ['equality', 'boolean'],
|
|
62
|
-
encode: (value: boolean): number => (value ? 1 : 0),
|
|
63
|
-
decode: (wire: number): boolean => wire !== 0,
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
const sqliteDatetimeCodec = codec({
|
|
67
|
-
typeId: SQLITE_DATETIME_CODEC_ID,
|
|
68
|
-
targetTypes: ['text'],
|
|
69
|
-
traits: ['equality', 'order'],
|
|
70
|
-
encode: (value: Date): string => value.toISOString(),
|
|
71
|
-
decode: (wire: string): Date => new Date(wire),
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
const sqliteJsonCodec = codec({
|
|
75
|
-
typeId: SQLITE_JSON_CODEC_ID,
|
|
76
|
-
targetTypes: ['text'],
|
|
77
|
-
traits: ['equality'],
|
|
78
|
-
encode: (value: JsonValue): string => JSON.stringify(value),
|
|
79
|
-
decode: (wire: string | JsonValue): JsonValue =>
|
|
80
|
-
typeof wire === 'string' ? (JSON.parse(wire) as JsonValue) : wire,
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
const sqliteBigintCodec = codec({
|
|
84
|
-
typeId: SQLITE_BIGINT_CODEC_ID,
|
|
85
|
-
targetTypes: ['integer'],
|
|
86
|
-
traits: ['equality', 'order', 'numeric'],
|
|
87
|
-
encode: (value: bigint): number | bigint => value,
|
|
88
|
-
decode: (wire: number | bigint): bigint => BigInt(wire),
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
const codecs = defineCodecs()
|
|
92
|
-
.add('char', sqlCharCodec)
|
|
93
|
-
.add('varchar', sqlVarcharCodec)
|
|
94
|
-
.add('int', sqlIntCodec)
|
|
95
|
-
.add('float', sqlFloatCodec)
|
|
96
|
-
.add('text', sqliteTextCodec)
|
|
97
|
-
.add('integer', sqliteIntegerCodec)
|
|
98
|
-
.add('real', sqliteRealCodec)
|
|
99
|
-
.add('blob', sqliteBlobCodec)
|
|
100
|
-
.add('boolean', sqliteBooleanCodec)
|
|
101
|
-
.add('datetime', sqliteDatetimeCodec)
|
|
102
|
-
.add('json', sqliteJsonCodec)
|
|
103
|
-
.add('bigint', sqliteBigintCodec);
|
|
104
|
-
|
|
105
|
-
export const codecDefinitions = codecs.codecDefinitions;
|
|
106
|
-
export const dataTypes = codecs.dataTypes;
|
|
107
|
-
|
|
108
|
-
export type CodecTypes = typeof codecs.CodecTypes;
|
package/src/core/sql-utils.ts
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
export class SqlEscapeError extends Error {
|
|
2
|
-
constructor(
|
|
3
|
-
message: string,
|
|
4
|
-
public readonly value: string,
|
|
5
|
-
public readonly kind: 'identifier' | 'literal',
|
|
6
|
-
) {
|
|
7
|
-
super(message);
|
|
8
|
-
this.name = 'SqlEscapeError';
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export function quoteIdentifier(identifier: string): string {
|
|
13
|
-
if (identifier.length === 0) {
|
|
14
|
-
throw new SqlEscapeError('Identifier cannot be empty', identifier, 'identifier');
|
|
15
|
-
}
|
|
16
|
-
if (identifier.includes('\0')) {
|
|
17
|
-
throw new SqlEscapeError(
|
|
18
|
-
'Identifier cannot contain null bytes',
|
|
19
|
-
identifier.replace(/\0/g, '\\0'),
|
|
20
|
-
'identifier',
|
|
21
|
-
);
|
|
22
|
-
}
|
|
23
|
-
return `"${identifier.replace(/"/g, '""')}"`;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export function escapeLiteral(value: string): string {
|
|
27
|
-
if (value.includes('\0')) {
|
|
28
|
-
throw new SqlEscapeError(
|
|
29
|
-
'Literal value cannot contain null bytes',
|
|
30
|
-
value.replace(/\0/g, '\\0'),
|
|
31
|
-
'literal',
|
|
32
|
-
);
|
|
33
|
-
}
|
|
34
|
-
return value.replace(/'/g, "''");
|
|
35
|
-
}
|