@livestore/common 0.3.2-dev.5 → 0.3.2-dev.6
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/dist/.tsbuildinfo +1 -1
- package/dist/devtools/devtools-messages-client-session.d.ts +21 -21
- package/dist/devtools/devtools-messages-common.d.ts +6 -6
- package/dist/devtools/devtools-messages-leader.d.ts +24 -24
- package/dist/schema/EventDef.d.ts +178 -104
- package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts +165 -65
- package/dist/schema/state/sqlite/query-builder/api.d.ts +560 -307
- package/dist/schema/state/sqlite/table-def.d.ts +152 -70
- package/dist/sql-queries/types.d.ts +133 -37
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +10 -49
- package/src/version.ts +1 -1
@@ -1,123 +1,197 @@
|
|
1
|
-
import type {
|
2
|
-
import {
|
3
|
-
import type { BindValues } from
|
4
|
-
import type { ParamsObject } from
|
5
|
-
import type { QueryBuilder } from
|
1
|
+
import type { Schema } from "@livestore/utils/effect";
|
2
|
+
import type { SingleOrReadonlyArray } from "../../../utils/dist/mod.ts";
|
3
|
+
import type { BindValues } from "../sql-queries/sql-queries.ts";
|
4
|
+
import type { ParamsObject } from "../util.ts";
|
5
|
+
import type { QueryBuilder } from "./state/sqlite/query-builder/mod.ts";
|
6
6
|
export type EventDefMap = {
|
7
|
-
|
7
|
+
map: Map<string, EventDef.Any>;
|
8
8
|
};
|
9
9
|
export type EventDefRecord = {
|
10
|
-
|
10
|
+
[name: string]: EventDef.Any;
|
11
11
|
};
|
12
|
-
export type EventDef<
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
12
|
+
export type EventDef<
|
13
|
+
TName extends string,
|
14
|
+
TType,
|
15
|
+
TEncoded = TType,
|
16
|
+
TDerived extends boolean = false,
|
17
|
+
> = {
|
18
|
+
name: TName;
|
19
|
+
schema: Schema.Schema<TType, TEncoded>;
|
20
|
+
options: {
|
21
|
+
/**
|
22
|
+
* When set to true, the mutation won't be synced across clients but
|
23
|
+
*/
|
24
|
+
clientOnly: boolean;
|
25
|
+
/** Warning: This feature is not fully implemented yet */
|
26
|
+
facts: FactsCallback<TType> | undefined;
|
27
|
+
derived: TDerived;
|
28
|
+
};
|
29
|
+
/** Helper function to construct a partial event */
|
30
|
+
(
|
31
|
+
args: TType,
|
32
|
+
): {
|
33
|
+
name: TName;
|
34
|
+
args: TType;
|
35
|
+
};
|
36
|
+
/** Helper function to construct a partial encoded event */
|
37
|
+
encoded: (args: TEncoded) => {
|
38
|
+
name: TName;
|
39
|
+
args: TEncoded;
|
40
|
+
};
|
41
|
+
readonly Event: {
|
42
|
+
name: TName;
|
43
|
+
args: TType;
|
44
|
+
};
|
38
45
|
};
|
39
|
-
export type FactsCallback<TTo> = (
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
46
|
+
export type FactsCallback<TTo> = (
|
47
|
+
args: TTo,
|
48
|
+
currentFacts: EventDefFacts,
|
49
|
+
) => {
|
50
|
+
modify: {
|
51
|
+
set: Iterable<EventDefFactInput>;
|
52
|
+
unset: Iterable<EventDefFactInput>;
|
53
|
+
};
|
54
|
+
require: Iterable<EventDefFactInput>;
|
45
55
|
};
|
46
56
|
export declare namespace EventDef {
|
47
|
-
|
48
|
-
|
57
|
+
type Any = EventDef<string, any, any, boolean>;
|
58
|
+
type AnyWithoutFn = Pick<Any, "name" | "schema" | "options">;
|
49
59
|
}
|
50
60
|
export type EventDefKey = string;
|
51
61
|
export type EventDefFact = string;
|
52
62
|
export type EventDefFacts = ReadonlyMap<string, any>;
|
53
63
|
export type EventDefFactsGroup = {
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
64
|
+
modifySet: EventDefFacts;
|
65
|
+
modifyUnset: EventDefFacts;
|
66
|
+
/**
|
67
|
+
* Events on independent "dependency" branches are commutative which can facilitate more prioritized syncing
|
68
|
+
*/
|
69
|
+
depRequire: EventDefFacts;
|
70
|
+
depRead: EventDefFacts;
|
61
71
|
};
|
62
72
|
export type EventDefFactsSnapshot = Map<string, any>;
|
63
73
|
export type EventDefFactInput = string | readonly [string, any];
|
64
|
-
export declare const defineFacts: <
|
74
|
+
export declare const defineFacts: <
|
75
|
+
TRecord extends Record<
|
76
|
+
string,
|
77
|
+
EventDefFactInput | ((...args: any[]) => EventDefFactInput)
|
78
|
+
>,
|
79
|
+
>(
|
80
|
+
record: TRecord,
|
81
|
+
) => TRecord;
|
65
82
|
export type DefineEventOptions<TTo, TDerived extends boolean = false> = {
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
83
|
+
/** Warning: This feature is not fully implemented yet */
|
84
|
+
facts?: (
|
85
|
+
args: TTo,
|
86
|
+
currentFacts: EventDefFacts,
|
87
|
+
) => {
|
88
|
+
modify?: {
|
89
|
+
set?: Iterable<EventDefFactInput>;
|
90
|
+
unset?: Iterable<EventDefFactInput>;
|
91
|
+
};
|
92
|
+
/**
|
93
|
+
* Two purposes: constrain history and constrain compaction
|
94
|
+
*/
|
95
|
+
require?: Iterable<EventDefFactInput>;
|
96
|
+
};
|
97
|
+
/**
|
98
|
+
* When set to true, the event won't be synced over the network
|
99
|
+
*/
|
100
|
+
clientOnly?: boolean;
|
101
|
+
derived?: TDerived;
|
82
102
|
};
|
83
|
-
export declare const defineEvent: <
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
103
|
+
export declare const defineEvent: <
|
104
|
+
TName extends string,
|
105
|
+
TType,
|
106
|
+
TEncoded = TType,
|
107
|
+
TDerived extends boolean = false,
|
108
|
+
>(
|
109
|
+
args: {
|
110
|
+
name: TName;
|
111
|
+
schema: Schema.Schema<TType, TEncoded>;
|
112
|
+
} & DefineEventOptions<TType, TDerived>,
|
113
|
+
) => EventDef<TName, TType, TEncoded, TDerived>;
|
114
|
+
export declare const synced: <TName extends string, TType, TEncoded = TType>(
|
115
|
+
args: {
|
116
|
+
name: TName;
|
117
|
+
schema: Schema.Schema<TType, TEncoded>;
|
118
|
+
} & Omit<DefineEventOptions<TType, false>, "derived" | "clientOnly">,
|
119
|
+
) => EventDef<TName, TType, TEncoded>;
|
120
|
+
export declare const clientOnly: <
|
121
|
+
TName extends string,
|
122
|
+
TType,
|
123
|
+
TEncoded = TType,
|
124
|
+
>(
|
125
|
+
args: {
|
126
|
+
name: TName;
|
127
|
+
schema: Schema.Schema<TType, TEncoded>;
|
128
|
+
} & Omit<DefineEventOptions<TType, false>, "derived" | "clientOnly">,
|
129
|
+
) => EventDef<TName, TType, TEncoded>;
|
130
|
+
export type MaterializerResult =
|
131
|
+
| {
|
132
|
+
sql: string;
|
133
|
+
bindValues: BindValues;
|
134
|
+
writeTables?: ReadonlySet<string>;
|
135
|
+
}
|
136
|
+
| QueryBuilder.Any
|
137
|
+
| string;
|
100
138
|
export type MaterializerContextQuery = {
|
101
|
-
|
102
|
-
|
103
|
-
bindValues: ParamsObject;
|
104
|
-
}): ReadonlyArray<unknown>;
|
105
|
-
<TResult>(qb: QueryBuilder<TResult, any, any>): TResult;
|
139
|
+
(args: { query: string; bindValues: ParamsObject }): ReadonlyArray<unknown>;
|
140
|
+
<TResult>(qb: QueryBuilder<TResult, any, any>): TResult;
|
106
141
|
};
|
107
|
-
export type Materializer<
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
}
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
142
|
+
export type Materializer<
|
143
|
+
TEventDef extends EventDef.AnyWithoutFn = EventDef.AnyWithoutFn,
|
144
|
+
> = (
|
145
|
+
event: TEventDef["schema"]["Type"],
|
146
|
+
context: {
|
147
|
+
currentFacts: EventDefFacts;
|
148
|
+
eventDef: TEventDef;
|
149
|
+
/** Can be used to query the current state */
|
150
|
+
query: MaterializerContextQuery;
|
151
|
+
},
|
152
|
+
) => SingleOrReadonlyArray<MaterializerResult>;
|
153
|
+
export declare const defineMaterializer: <
|
154
|
+
TEventDef extends EventDef.AnyWithoutFn,
|
155
|
+
>(
|
156
|
+
_eventDef: TEventDef,
|
157
|
+
materializer: Materializer<TEventDef>,
|
158
|
+
) => Materializer<TEventDef>;
|
159
|
+
export declare const materializers: <
|
160
|
+
TInputRecord extends Record<string, EventDef.AnyWithoutFn>,
|
161
|
+
>(
|
162
|
+
_eventDefRecord: TInputRecord,
|
163
|
+
handlers: {
|
164
|
+
[TEventName in TInputRecord[keyof TInputRecord]["name"] as Extract<
|
165
|
+
TInputRecord[keyof TInputRecord],
|
166
|
+
{
|
167
|
+
name: TEventName;
|
168
|
+
}
|
169
|
+
>["options"]["derived"] extends true
|
170
|
+
? never
|
171
|
+
: TEventName]: Materializer<
|
172
|
+
Extract<
|
173
|
+
TInputRecord[keyof TInputRecord],
|
174
|
+
{
|
175
|
+
name: TEventName;
|
176
|
+
}
|
177
|
+
>
|
178
|
+
>;
|
179
|
+
},
|
180
|
+
) => {
|
181
|
+
[TEventName in TInputRecord[keyof TInputRecord]["name"] as Extract<
|
182
|
+
TInputRecord[keyof TInputRecord],
|
183
|
+
{
|
184
|
+
name: TEventName;
|
185
|
+
}
|
186
|
+
>["options"]["derived"] extends true
|
187
|
+
? never
|
188
|
+
: TEventName]: Materializer<
|
189
|
+
Extract<
|
190
|
+
TInputRecord[keyof TInputRecord],
|
191
|
+
{
|
192
|
+
name: TEventName;
|
193
|
+
}
|
194
|
+
>
|
195
|
+
>;
|
196
|
+
};
|
197
|
+
//# sourceMappingURL=EventDef.d.ts.map
|
@@ -1,40 +1,79 @@
|
|
1
|
-
import type {
|
2
|
-
import type {
|
3
|
-
import
|
4
|
-
import type
|
5
|
-
|
6
|
-
export * from
|
1
|
+
import type { Option, Schema, Types } from "@livestore/utils/effect";
|
2
|
+
import type { Nullable } from "../../../../../../../utils/dist/mod.ts";
|
3
|
+
import type * as SqliteAst from "../ast/sqlite.ts";
|
4
|
+
import type { ColumnDefinition } from "./field-defs.ts";
|
5
|
+
|
6
|
+
export * from "./field-defs.ts";
|
7
7
|
export type DbSchema = {
|
8
|
-
|
8
|
+
[key: string]: TableDefinition<string, Columns>;
|
9
9
|
};
|
10
10
|
/** Note when using the object-notation, the object keys are ignored and not used as table names */
|
11
|
-
export type DbSchemaInput =
|
11
|
+
export type DbSchemaInput =
|
12
|
+
| Record<string, TableDefinition<any, any>>
|
13
|
+
| ReadonlyArray<TableDefinition<any, any>>;
|
12
14
|
/**
|
13
15
|
* In case of ...
|
14
16
|
* - array: we use the table name of each array item (= table definition) as the object key
|
15
17
|
* - object: we discard the keys of the input object and use the table name of each object value (= table definition) as the new object key
|
16
18
|
*/
|
17
|
-
export type DbSchemaFromInputSchema<TSchemaInput extends DbSchemaInput> =
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
}
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
export
|
28
|
-
|
29
|
-
|
19
|
+
export type DbSchemaFromInputSchema<TSchemaInput extends DbSchemaInput> =
|
20
|
+
TSchemaInput extends ReadonlyArray<TableDefinition<any, any>>
|
21
|
+
? {
|
22
|
+
[K in TSchemaInput[number] as K["name"]]: K;
|
23
|
+
}
|
24
|
+
: TSchemaInput extends Record<string, TableDefinition<any, any>>
|
25
|
+
? {
|
26
|
+
[K in keyof TSchemaInput as TSchemaInput[K]["name"]]: TSchemaInput[K];
|
27
|
+
}
|
28
|
+
: never;
|
29
|
+
export declare const makeDbSchema: <TDbSchemaInput extends DbSchemaInput>(
|
30
|
+
schema: TDbSchemaInput,
|
31
|
+
) => DbSchemaFromInputSchema<TDbSchemaInput>;
|
32
|
+
export declare const table: <
|
33
|
+
TTableName extends string,
|
34
|
+
TColumns extends Columns,
|
35
|
+
TIndexes extends Index[],
|
36
|
+
>(
|
37
|
+
name: TTableName,
|
38
|
+
columns: TColumns,
|
39
|
+
indexes?: TIndexes,
|
40
|
+
) => TableDefinition<TTableName, TColumns>;
|
41
|
+
export type AnyIfConstained<In, Out> = "__constrained" extends keyof In
|
42
|
+
? any
|
43
|
+
: Out;
|
44
|
+
export type EmptyObjIfConstained<In> = "__constrained" extends keyof In
|
45
|
+
? {}
|
46
|
+
: In;
|
47
|
+
export type StructSchemaForColumns<TCols extends ConstraintColumns> =
|
48
|
+
Schema.Schema<
|
49
|
+
AnyIfConstained<TCols, FromColumns.RowDecoded<TCols>>,
|
50
|
+
AnyIfConstained<TCols, FromColumns.RowEncoded<TCols>>
|
51
|
+
>;
|
52
|
+
export type InsertStructSchemaForColumns<TCols extends ConstraintColumns> =
|
53
|
+
Schema.Schema<
|
54
|
+
AnyIfConstained<TCols, FromColumns.InsertRowDecoded<TCols>>,
|
55
|
+
AnyIfConstained<TCols, FromColumns.InsertRowEncoded<TCols>>
|
56
|
+
>;
|
57
|
+
export declare const structSchemaForTable: <
|
58
|
+
TTableDefinition extends TableDefinition<any, any>,
|
59
|
+
>(
|
60
|
+
tableDef: TTableDefinition,
|
61
|
+
) => StructSchemaForColumns<TTableDefinition["columns"]>;
|
62
|
+
export declare const insertStructSchemaForTable: <
|
63
|
+
TTableDefinition extends TableDefinition<any, any>,
|
64
|
+
>(
|
65
|
+
tableDef: TTableDefinition,
|
66
|
+
) => InsertStructSchemaForColumns<TTableDefinition["columns"]>;
|
30
67
|
export type TableDefinition<TName extends string, TColumns extends Columns> = {
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
68
|
+
name: TName;
|
69
|
+
columns: TColumns;
|
70
|
+
indexes?: ReadonlyArray<Index>;
|
71
|
+
ast: SqliteAst.Table;
|
35
72
|
};
|
36
73
|
export type Columns = Record<string, ColumnDefinition<any, any>>;
|
37
|
-
export type IsSingleColumn<
|
74
|
+
export type IsSingleColumn<
|
75
|
+
TColumns extends Columns | ColumnDefinition<any, any>,
|
76
|
+
> = TColumns extends ColumnDefinition<any, any> ? true : false;
|
38
77
|
/**
|
39
78
|
* NOTE this is only needed to avoid a TS limitation where `StructSchemaForColumns` in the default case
|
40
79
|
* results in `Record<string, any>` instead of `any`. (Thanks to Andarist for the workaround)
|
@@ -42,49 +81,110 @@ export type IsSingleColumn<TColumns extends Columns | ColumnDefinition<any, any>
|
|
42
81
|
* Hopefully this can be removed in the future
|
43
82
|
*/
|
44
83
|
export type ConstraintColumns = Record<string, ColumnDefinition<any, any>> & {
|
45
|
-
|
84
|
+
__constrained?: never;
|
46
85
|
};
|
47
86
|
export type Index = {
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
87
|
+
name: string;
|
88
|
+
columns: ReadonlyArray<string>;
|
89
|
+
/** @default false */
|
90
|
+
isUnique?: boolean;
|
52
91
|
};
|
53
92
|
export declare namespace FromTable {
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
93
|
+
type RowDecoded<TTableDefinition extends TableDefinition<any, any>> =
|
94
|
+
Types.Simplify<
|
95
|
+
Nullable<
|
96
|
+
Pick<
|
97
|
+
RowDecodedAll<TTableDefinition>,
|
98
|
+
NullableColumnNames<TTableDefinition>
|
99
|
+
>
|
100
|
+
> &
|
101
|
+
Omit<
|
102
|
+
RowDecodedAll<TTableDefinition>,
|
103
|
+
NullableColumnNames<TTableDefinition>
|
104
|
+
>
|
105
|
+
>;
|
106
|
+
type NullableColumnNames<TTableDefinition extends TableDefinition<any, any>> =
|
107
|
+
FromColumns.NullableColumnNames<TTableDefinition["columns"]>;
|
108
|
+
type Columns<TTableDefinition extends TableDefinition<any, any>> = {
|
109
|
+
[K in keyof TTableDefinition["columns"]]: TTableDefinition["columns"][K]["columnType"];
|
110
|
+
};
|
111
|
+
type RowEncodeNonNullable<
|
112
|
+
TTableDefinition extends TableDefinition<any, any>,
|
113
|
+
> = {
|
114
|
+
[K in keyof TTableDefinition["columns"]]: Schema.Schema.Encoded<
|
115
|
+
TTableDefinition["columns"][K]["schema"]
|
116
|
+
>;
|
117
|
+
};
|
118
|
+
type RowEncoded<TTableDefinition extends TableDefinition<any, any>> =
|
119
|
+
Types.Simplify<
|
120
|
+
Nullable<
|
121
|
+
Pick<
|
122
|
+
RowEncodeNonNullable<TTableDefinition>,
|
123
|
+
NullableColumnNames<TTableDefinition>
|
124
|
+
>
|
125
|
+
> &
|
126
|
+
Omit<
|
127
|
+
RowEncodeNonNullable<TTableDefinition>,
|
128
|
+
NullableColumnNames<TTableDefinition>
|
129
|
+
>
|
130
|
+
>;
|
131
|
+
type RowDecodedAll<TTableDefinition extends TableDefinition<any, any>> = {
|
132
|
+
[K in keyof TTableDefinition["columns"]]: Schema.Schema.Type<
|
133
|
+
TTableDefinition["columns"][K]["schema"]
|
134
|
+
>;
|
135
|
+
};
|
66
136
|
}
|
67
137
|
export declare namespace FromColumns {
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
138
|
+
type RowDecoded<TColumns extends Columns> = Types.Simplify<
|
139
|
+
Nullable<Pick<RowDecodedAll<TColumns>, NullableColumnNames<TColumns>>> &
|
140
|
+
Omit<RowDecodedAll<TColumns>, NullableColumnNames<TColumns>>
|
141
|
+
>;
|
142
|
+
type RowDecodedAll<TColumns extends Columns> = {
|
143
|
+
readonly [K in keyof TColumns]: Schema.Schema.Type<TColumns[K]["schema"]>;
|
144
|
+
};
|
145
|
+
type RowEncodedAll<TColumns extends Columns> = {
|
146
|
+
readonly [K in keyof TColumns]: Schema.Schema.Encoded<
|
147
|
+
TColumns[K]["schema"]
|
148
|
+
>;
|
149
|
+
};
|
150
|
+
type RowEncoded<TColumns extends Columns> = Types.Simplify<
|
151
|
+
Nullable<
|
152
|
+
Pick<RowEncodeNonNullable<TColumns>, NullableColumnNames<TColumns>>
|
153
|
+
> &
|
154
|
+
Omit<RowEncodeNonNullable<TColumns>, NullableColumnNames<TColumns>>
|
155
|
+
>;
|
156
|
+
type RowEncodeNonNullable<TColumns extends Columns> = {
|
157
|
+
readonly [K in keyof TColumns]: Schema.Schema.Encoded<
|
158
|
+
TColumns[K]["schema"]
|
159
|
+
>;
|
160
|
+
};
|
161
|
+
type NullableColumnNames<TColumns extends Columns> = keyof {
|
162
|
+
[K in keyof TColumns as TColumns[K] extends ColumnDefinition<any, true>
|
163
|
+
? K
|
164
|
+
: never]: {};
|
165
|
+
};
|
166
|
+
type RequiredInsertColumns<TColumns extends Columns> = {
|
167
|
+
[K in keyof TColumns as TColumns[K]["nullable"] extends true
|
168
|
+
? never
|
169
|
+
: TColumns[K]["default"] extends Option.Some<any>
|
170
|
+
? never
|
171
|
+
: K]: {};
|
172
|
+
};
|
173
|
+
type RequiredInsertColumnNames<TColumns extends Columns> =
|
174
|
+
keyof RequiredInsertColumns<TColumns>;
|
175
|
+
type RequiresInsertValues<TColumns extends Columns> =
|
176
|
+
RequiredInsertColumnNames<TColumns> extends never ? false : true;
|
177
|
+
type InsertRowDecoded<TColumns extends Columns> = Types.Simplify<
|
178
|
+
Pick<RowDecodedAll<TColumns>, RequiredInsertColumnNames<TColumns>> &
|
179
|
+
Partial<
|
180
|
+
Omit<RowDecodedAll<TColumns>, RequiredInsertColumnNames<TColumns>>
|
181
|
+
>
|
182
|
+
>;
|
183
|
+
type InsertRowEncoded<TColumns extends Columns> = Types.Simplify<
|
184
|
+
Pick<RowEncodedAll<TColumns>, RequiredInsertColumnNames<TColumns>> &
|
185
|
+
Partial<
|
186
|
+
Omit<RowEncodedAll<TColumns>, RequiredInsertColumnNames<TColumns>>
|
187
|
+
>
|
188
|
+
>;
|
89
189
|
}
|
90
|
-
//# sourceMappingURL=mod.d.ts.map
|
190
|
+
//# sourceMappingURL=mod.d.ts.map
|