syncorejs 0.2.1 → 0.2.3
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 -1
- package/dist/_vendor/cli/app.d.mts.map +1 -1
- package/dist/_vendor/cli/app.mjs +330 -46
- package/dist/_vendor/cli/app.mjs.map +1 -1
- package/dist/_vendor/cli/context.mjs +27 -9
- package/dist/_vendor/cli/context.mjs.map +1 -1
- package/dist/_vendor/cli/dev-session.mjs.map +1 -1
- package/dist/_vendor/cli/doctor.mjs +513 -46
- package/dist/_vendor/cli/doctor.mjs.map +1 -1
- package/dist/_vendor/cli/errors.mjs.map +1 -1
- package/dist/_vendor/cli/help.mjs.map +1 -1
- package/dist/_vendor/cli/index.mjs +9 -2
- package/dist/_vendor/cli/index.mjs.map +1 -1
- package/dist/_vendor/cli/messages.mjs +5 -4
- package/dist/_vendor/cli/messages.mjs.map +1 -1
- package/dist/_vendor/cli/preflight.mjs.map +1 -1
- package/dist/_vendor/cli/project.mjs +125 -27
- package/dist/_vendor/cli/project.mjs.map +1 -1
- package/dist/_vendor/cli/render.mjs +57 -9
- package/dist/_vendor/cli/render.mjs.map +1 -1
- package/dist/_vendor/cli/targets.mjs +4 -3
- package/dist/_vendor/cli/targets.mjs.map +1 -1
- package/dist/_vendor/core/cli.d.mts +20 -4
- package/dist/_vendor/core/cli.d.mts.map +1 -1
- package/dist/_vendor/core/cli.mjs +458 -133
- package/dist/_vendor/core/cli.mjs.map +1 -1
- package/dist/_vendor/core/devtools-auth.mjs +60 -0
- package/dist/_vendor/core/devtools-auth.mjs.map +1 -0
- package/dist/_vendor/core/index.d.mts +5 -3
- package/dist/_vendor/core/index.mjs +22 -2
- package/dist/_vendor/core/index.mjs.map +1 -1
- package/dist/_vendor/core/runtime/components.d.mts +111 -0
- package/dist/_vendor/core/runtime/components.d.mts.map +1 -0
- package/dist/_vendor/core/runtime/components.mjs +186 -0
- package/dist/_vendor/core/runtime/components.mjs.map +1 -0
- package/dist/_vendor/core/runtime/devtools.d.mts +4 -4
- package/dist/_vendor/core/runtime/devtools.d.mts.map +1 -1
- package/dist/_vendor/core/runtime/devtools.mjs +178 -60
- package/dist/_vendor/core/runtime/devtools.mjs.map +1 -1
- package/dist/_vendor/core/runtime/functions.d.mts +398 -16
- package/dist/_vendor/core/runtime/functions.d.mts.map +1 -1
- package/dist/_vendor/core/runtime/functions.mjs +74 -3
- package/dist/_vendor/core/runtime/functions.mjs.map +1 -1
- package/dist/_vendor/core/runtime/id.d.mts.map +1 -1
- package/dist/_vendor/core/runtime/id.mjs.map +1 -1
- package/dist/_vendor/core/runtime/internal/engines/devtoolsEngine.mjs +83 -0
- package/dist/_vendor/core/runtime/internal/engines/devtoolsEngine.mjs.map +1 -0
- package/dist/_vendor/core/runtime/internal/engines/executionEngine.mjs +720 -0
- package/dist/_vendor/core/runtime/internal/engines/executionEngine.mjs.map +1 -0
- package/dist/_vendor/core/runtime/internal/engines/reactivityEngine.mjs +234 -0
- package/dist/_vendor/core/runtime/internal/engines/reactivityEngine.mjs.map +1 -0
- package/dist/_vendor/core/runtime/internal/engines/schedulerEngine.mjs +255 -0
- package/dist/_vendor/core/runtime/internal/engines/schedulerEngine.mjs.map +1 -0
- package/dist/_vendor/core/runtime/internal/engines/schemaEngine.mjs +200 -0
- package/dist/_vendor/core/runtime/internal/engines/schemaEngine.mjs.map +1 -0
- package/dist/_vendor/core/runtime/internal/engines/shared.mjs +252 -0
- package/dist/_vendor/core/runtime/internal/engines/shared.mjs.map +1 -0
- package/dist/_vendor/core/runtime/internal/engines/storageEngine.mjs +145 -0
- package/dist/_vendor/core/runtime/internal/engines/storageEngine.mjs.map +1 -0
- package/dist/_vendor/core/runtime/internal/runtimeKernel.mjs +221 -0
- package/dist/_vendor/core/runtime/internal/runtimeKernel.mjs.map +1 -0
- package/dist/_vendor/core/runtime/internal/runtimeStatus.mjs +32 -0
- package/dist/_vendor/core/runtime/internal/runtimeStatus.mjs.map +1 -0
- package/dist/_vendor/core/runtime/internal/systemMeta.mjs +61 -0
- package/dist/_vendor/core/runtime/internal/systemMeta.mjs.map +1 -0
- package/dist/_vendor/core/runtime/internal/transactionCoordinator.mjs +41 -0
- package/dist/_vendor/core/runtime/internal/transactionCoordinator.mjs.map +1 -0
- package/dist/_vendor/core/runtime/runtime.d.mts +1187 -202
- package/dist/_vendor/core/runtime/runtime.d.mts.map +1 -1
- package/dist/_vendor/core/runtime/runtime.mjs +73 -1365
- package/dist/_vendor/core/runtime/runtime.mjs.map +1 -1
- package/dist/_vendor/core/transport.d.mts +113 -0
- package/dist/_vendor/core/transport.d.mts.map +1 -0
- package/dist/_vendor/core/transport.mjs +428 -0
- package/dist/_vendor/core/transport.mjs.map +1 -0
- package/dist/_vendor/devtools-protocol/index.d.ts +187 -4
- package/dist/_vendor/devtools-protocol/index.d.ts.map +1 -1
- package/dist/_vendor/devtools-protocol/index.js +25 -9
- package/dist/_vendor/devtools-protocol/index.js.map +1 -1
- package/dist/_vendor/next/config.d.ts +3 -4
- package/dist/_vendor/next/config.d.ts.map +1 -1
- package/dist/_vendor/next/config.js +37 -19
- package/dist/_vendor/next/config.js.map +1 -1
- package/dist/_vendor/next/index.d.ts +109 -29
- package/dist/_vendor/next/index.d.ts.map +1 -1
- package/dist/_vendor/next/index.js +104 -26
- package/dist/_vendor/next/index.js.map +1 -1
- package/dist/_vendor/platform-expo/index.d.ts +156 -37
- package/dist/_vendor/platform-expo/index.d.ts.map +1 -1
- package/dist/_vendor/platform-expo/index.js +80 -12
- package/dist/_vendor/platform-expo/index.js.map +1 -1
- package/dist/_vendor/platform-expo/react.d.ts.map +1 -1
- package/dist/_vendor/platform-expo/react.js +11 -10
- package/dist/_vendor/platform-expo/react.js.map +1 -1
- package/dist/_vendor/platform-expo/web-sqljs-wasm.js +16 -0
- package/dist/_vendor/platform-expo/web-sqljs-wasm.js.map +1 -0
- package/dist/_vendor/platform-node/index.d.mts +192 -24
- package/dist/_vendor/platform-node/index.d.mts.map +1 -1
- package/dist/_vendor/platform-node/index.mjs +236 -97
- package/dist/_vendor/platform-node/index.mjs.map +1 -1
- package/dist/_vendor/platform-node/ipc-react.d.mts.map +1 -1
- package/dist/_vendor/platform-node/ipc-react.mjs +15 -2
- package/dist/_vendor/platform-node/ipc-react.mjs.map +1 -1
- package/dist/_vendor/platform-node/ipc.d.mts +11 -35
- package/dist/_vendor/platform-node/ipc.d.mts.map +1 -1
- package/dist/_vendor/platform-node/ipc.mjs +3 -273
- package/dist/_vendor/platform-node/ipc.mjs.map +1 -1
- package/dist/_vendor/platform-web/external-change.d.ts +43 -1
- package/dist/_vendor/platform-web/external-change.d.ts.map +1 -1
- package/dist/_vendor/platform-web/external-change.js +32 -1
- package/dist/_vendor/platform-web/external-change.js.map +1 -1
- package/dist/_vendor/platform-web/index.d.ts +323 -51
- package/dist/_vendor/platform-web/index.d.ts.map +1 -1
- package/dist/_vendor/platform-web/index.js +233 -30
- package/dist/_vendor/platform-web/index.js.map +1 -1
- package/dist/_vendor/platform-web/indexeddb.d.ts +12 -0
- package/dist/_vendor/platform-web/indexeddb.d.ts.map +1 -1
- package/dist/_vendor/platform-web/indexeddb.js +10 -0
- package/dist/_vendor/platform-web/indexeddb.js.map +1 -1
- package/dist/_vendor/platform-web/opfs.d.ts +13 -0
- package/dist/_vendor/platform-web/opfs.d.ts.map +1 -1
- package/dist/_vendor/platform-web/opfs.js +12 -0
- package/dist/_vendor/platform-web/opfs.js.map +1 -1
- package/dist/_vendor/platform-web/persistence.d.ts +54 -0
- package/dist/_vendor/platform-web/persistence.d.ts.map +1 -1
- package/dist/_vendor/platform-web/persistence.js +15 -0
- package/dist/_vendor/platform-web/persistence.js.map +1 -1
- package/dist/_vendor/platform-web/react.d.ts +1 -2
- package/dist/_vendor/platform-web/react.d.ts.map +1 -1
- package/dist/_vendor/platform-web/react.js +27 -13
- package/dist/_vendor/platform-web/react.js.map +1 -1
- package/dist/_vendor/platform-web/sqljs.js +10 -1
- package/dist/_vendor/platform-web/sqljs.js.map +1 -1
- package/dist/_vendor/platform-web/web-sqljs-wasm.js +8 -0
- package/dist/_vendor/platform-web/web-sqljs-wasm.js.map +1 -0
- package/dist/_vendor/platform-web/worker.d.ts +71 -44
- package/dist/_vendor/platform-web/worker.d.ts.map +1 -1
- package/dist/_vendor/platform-web/worker.js +40 -271
- package/dist/_vendor/platform-web/worker.js.map +1 -1
- package/dist/_vendor/react/index.d.ts +222 -23
- package/dist/_vendor/react/index.d.ts.map +1 -1
- package/dist/_vendor/react/index.js +476 -63
- package/dist/_vendor/react/index.js.map +1 -1
- package/dist/_vendor/schema/definition.d.ts +151 -37
- package/dist/_vendor/schema/definition.d.ts.map +1 -1
- package/dist/_vendor/schema/definition.js +102 -20
- package/dist/_vendor/schema/definition.js.map +1 -1
- package/dist/_vendor/schema/index.d.ts +4 -4
- package/dist/_vendor/schema/index.js +2 -2
- package/dist/_vendor/schema/planner.d.ts +19 -2
- package/dist/_vendor/schema/planner.d.ts.map +1 -1
- package/dist/_vendor/schema/planner.js +79 -3
- package/dist/_vendor/schema/planner.js.map +1 -1
- package/dist/_vendor/schema/validators.d.ts +279 -83
- package/dist/_vendor/schema/validators.d.ts.map +1 -1
- package/dist/_vendor/schema/validators.js +330 -38
- package/dist/_vendor/schema/validators.js.map +1 -1
- package/dist/_vendor/svelte/index.d.ts +245 -19
- package/dist/_vendor/svelte/index.d.ts.map +1 -1
- package/dist/_vendor/svelte/index.js +443 -20
- package/dist/_vendor/svelte/index.js.map +1 -1
- package/dist/browser.d.ts.map +1 -1
- package/dist/cli.js +3 -1
- package/dist/cli.js.map +1 -1
- package/dist/components.d.ts +2 -0
- package/dist/components.js +2 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.js +2 -1
- package/package.json +29 -21
|
@@ -1,22 +1,34 @@
|
|
|
1
1
|
//#region src/validators.d.ts
|
|
2
|
-
type
|
|
2
|
+
type Expand<T> = { [TKey in keyof T]: T[TKey] } & {};
|
|
3
|
+
type ValidatorKind = "string" | "number" | "boolean" | "literal" | "enum" | "array" | "object" | "record" | "union" | "id" | "optional" | "any" | "null" | "codec";
|
|
3
4
|
/**
|
|
4
|
-
*
|
|
5
|
+
* A schema field definition that combines validation, serialisation, and
|
|
6
|
+
* field-path metadata for Syncore’s data model.
|
|
5
7
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
8
|
+
* Every type in the `s.*` builder namespace produces a `Validator`. You attach
|
|
9
|
+
* validators to table definitions via {@link defineTable} and to function
|
|
10
|
+
* arguments via the `args` field of {@link query}, {@link mutation}, and
|
|
11
|
+
* {@link action}.
|
|
12
|
+
*
|
|
13
|
+
* ```ts
|
|
14
|
+
* const titleValidator = s.string(); // Validator<string>
|
|
15
|
+
* const tagsValidator = s.array(s.string()); // Validator<string[]>
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* Validators carry three type parameters:
|
|
19
|
+
* - `TValue` — the TypeScript type after parsing (used in application code).
|
|
20
|
+
* - `TStorage` — the serialised representation stored in SQLite (may differ
|
|
21
|
+
* for codec validators).
|
|
22
|
+
* - `TFieldPaths` — dotted paths to nested fields, used by the query builder
|
|
23
|
+
* for type-safe index and search-index references.
|
|
9
24
|
*/
|
|
10
|
-
interface Validator<TValue> {
|
|
25
|
+
interface Validator<TValue = unknown, TStorage = TValue, TFieldPaths extends string = never> {
|
|
11
26
|
readonly kind: ValidatorKind;
|
|
12
|
-
|
|
13
|
-
* Parse and validate an unknown value.
|
|
14
|
-
*
|
|
15
|
-
* @param value - The value to validate.
|
|
16
|
-
* @param path - A human-readable path used in validation errors.
|
|
17
|
-
* @returns The parsed value when validation succeeds.
|
|
18
|
-
*/
|
|
27
|
+
readonly fieldPaths?: TFieldPaths;
|
|
19
28
|
parse(value: unknown, path?: string): TValue;
|
|
29
|
+
serialize?(value: TValue, path?: string): TStorage;
|
|
30
|
+
deserialize?(value: unknown, path?: string): TValue;
|
|
31
|
+
describe?(): ValidatorDescription;
|
|
20
32
|
}
|
|
21
33
|
type ValidatorDescription = {
|
|
22
34
|
kind: "string";
|
|
@@ -31,164 +43,348 @@ type ValidatorDescription = {
|
|
|
31
43
|
} | {
|
|
32
44
|
kind: "literal";
|
|
33
45
|
value: string | number | boolean | null;
|
|
46
|
+
} | {
|
|
47
|
+
kind: "enum";
|
|
48
|
+
values: string[];
|
|
34
49
|
} | {
|
|
35
50
|
kind: "array";
|
|
36
51
|
item: ValidatorDescription;
|
|
37
52
|
} | {
|
|
38
53
|
kind: "object";
|
|
39
|
-
shape: Record<string,
|
|
54
|
+
shape: Record<string, {
|
|
55
|
+
validator: ValidatorDescription;
|
|
56
|
+
optional: boolean;
|
|
57
|
+
}>;
|
|
58
|
+
} | {
|
|
59
|
+
kind: "record";
|
|
60
|
+
key: ValidatorDescription;
|
|
61
|
+
value: ValidatorDescription;
|
|
62
|
+
} | {
|
|
63
|
+
kind: "union";
|
|
64
|
+
members: ValidatorDescription[];
|
|
40
65
|
} | {
|
|
41
66
|
kind: "id";
|
|
42
67
|
tableName: string;
|
|
43
68
|
} | {
|
|
44
69
|
kind: "optional";
|
|
45
70
|
inner: ValidatorDescription;
|
|
71
|
+
} | {
|
|
72
|
+
kind: "codec";
|
|
73
|
+
value: ValidatorDescription;
|
|
74
|
+
storage: ValidatorDescription;
|
|
46
75
|
};
|
|
76
|
+
type Infer<TValidator> = TValidator extends Validator<infer TValue, unknown, string> ? TValue : never;
|
|
77
|
+
type InferStorage<TValidator> = TValidator extends Validator<unknown, infer TStorage, string> ? TStorage : never;
|
|
78
|
+
type FieldPaths<TValidator> = TValidator extends Validator<unknown, unknown, infer TFieldPaths> ? TFieldPaths : never;
|
|
47
79
|
interface ObjectValidatorShape {
|
|
48
|
-
[key: string]: Validator<unknown>;
|
|
80
|
+
[key: string]: Validator<unknown, unknown, string>;
|
|
81
|
+
}
|
|
82
|
+
type ValidatorMap = Record<string, Validator<unknown, unknown, string>>;
|
|
83
|
+
type OptionalKeys<TShape extends ObjectValidatorShape> = { [TKey in keyof TShape]: TShape[TKey] extends OptionalValidator<unknown, unknown, string> ? TKey : never }[keyof TShape];
|
|
84
|
+
type RequiredKeys<TShape extends ObjectValidatorShape> = Exclude<keyof TShape, OptionalKeys<TShape>>;
|
|
85
|
+
type InferObject<TShape extends ObjectValidatorShape> = Expand<{ [TKey in OptionalKeys<TShape>]?: Exclude<Infer<TShape[TKey]>, undefined> } & { [TKey in RequiredKeys<TShape>]: Infer<TShape[TKey]> }>;
|
|
86
|
+
type InferStoredObject<TShape extends ObjectValidatorShape> = Expand<{ [TKey in OptionalKeys<TShape>]?: Exclude<InferStorage<TShape[TKey]>, undefined> } & { [TKey in RequiredKeys<TShape>]: InferStorage<TShape[TKey]> }>;
|
|
87
|
+
type JoinFieldPaths<TStart extends string, TEnd extends string> = `${TStart}.${TEnd}`;
|
|
88
|
+
type ShapeFieldPaths<TShape extends ObjectValidatorShape> = { [TKey in keyof TShape & string]: FieldPaths<TShape[TKey]> extends never ? TKey : TKey | JoinFieldPaths<TKey, FieldPaths<TShape[TKey]>> }[keyof TShape & string];
|
|
89
|
+
declare abstract class BaseValidator<TValue, TStorage = TValue, TFieldPaths extends string = never> implements Validator<TValue, TStorage, TFieldPaths> {
|
|
90
|
+
readonly kind: ValidatorKind;
|
|
91
|
+
readonly fieldPaths: TFieldPaths;
|
|
92
|
+
constructor(kind: ValidatorKind);
|
|
93
|
+
abstract parse(value: unknown, path?: string): TValue;
|
|
94
|
+
serialize(value: TValue, path?: string): TStorage;
|
|
95
|
+
deserialize(value: unknown, path?: string): TValue;
|
|
96
|
+
abstract describe(): ValidatorDescription;
|
|
49
97
|
}
|
|
50
|
-
declare class StringValidator
|
|
51
|
-
|
|
98
|
+
declare class StringValidator extends BaseValidator<string> {
|
|
99
|
+
constructor();
|
|
52
100
|
parse(value: unknown, path?: string): string;
|
|
101
|
+
describe(): ValidatorDescription;
|
|
53
102
|
}
|
|
54
|
-
declare class NumberValidator
|
|
55
|
-
|
|
103
|
+
declare class NumberValidator extends BaseValidator<number> {
|
|
104
|
+
constructor();
|
|
56
105
|
parse(value: unknown, path?: string): number;
|
|
106
|
+
describe(): ValidatorDescription;
|
|
57
107
|
}
|
|
58
|
-
declare class BooleanValidator
|
|
59
|
-
|
|
108
|
+
declare class BooleanValidator extends BaseValidator<boolean> {
|
|
109
|
+
constructor();
|
|
60
110
|
parse(value: unknown, path?: string): boolean;
|
|
111
|
+
describe(): ValidatorDescription;
|
|
61
112
|
}
|
|
62
|
-
declare class NullValidator
|
|
63
|
-
|
|
113
|
+
declare class NullValidator extends BaseValidator<null> {
|
|
114
|
+
constructor();
|
|
64
115
|
parse(value: unknown, path?: string): null;
|
|
116
|
+
describe(): ValidatorDescription;
|
|
65
117
|
}
|
|
66
|
-
declare class AnyValidator
|
|
67
|
-
|
|
118
|
+
declare class AnyValidator extends BaseValidator<unknown, unknown, never> {
|
|
119
|
+
constructor();
|
|
68
120
|
parse(value: unknown): unknown;
|
|
121
|
+
describe(): ValidatorDescription;
|
|
69
122
|
}
|
|
70
|
-
declare class LiteralValidator<TValue extends string | number | boolean | null>
|
|
123
|
+
declare class LiteralValidator<TValue extends string | number | boolean | null> extends BaseValidator<TValue> {
|
|
71
124
|
readonly literalValue: TValue;
|
|
72
|
-
readonly kind: "literal";
|
|
73
125
|
constructor(literalValue: TValue);
|
|
74
126
|
parse(value: unknown, path?: string): TValue;
|
|
127
|
+
describe(): ValidatorDescription;
|
|
75
128
|
}
|
|
76
|
-
declare class
|
|
77
|
-
readonly
|
|
78
|
-
|
|
79
|
-
|
|
129
|
+
declare class EnumValidator<TValues extends readonly [string, ...string[]]> extends BaseValidator<TValues[number]> {
|
|
130
|
+
readonly values: TValues;
|
|
131
|
+
constructor(values: TValues);
|
|
132
|
+
parse(value: unknown, path?: string): TValues[number];
|
|
133
|
+
describe(): ValidatorDescription;
|
|
134
|
+
}
|
|
135
|
+
declare class ArrayValidator<TItem, TItemStorage, TItemValidator extends Validator<TItem, TItemStorage, string>> extends BaseValidator<TItem[], TItemStorage[], never> {
|
|
136
|
+
readonly itemValidator: TItemValidator;
|
|
137
|
+
constructor(itemValidator: TItemValidator);
|
|
80
138
|
parse(value: unknown, path?: string): TItem[];
|
|
139
|
+
serialize(value: TItem[], path?: string): TItemStorage[];
|
|
140
|
+
deserialize(value: unknown, path?: string): TItem[];
|
|
141
|
+
describe(): ValidatorDescription;
|
|
81
142
|
}
|
|
82
|
-
declare class ObjectValidator<TShape extends ObjectValidatorShape>
|
|
143
|
+
declare class ObjectValidator<TShape extends ObjectValidatorShape> extends BaseValidator<InferObject<TShape>, InferStoredObject<TShape>, ShapeFieldPaths<TShape>> {
|
|
83
144
|
readonly shape: TShape;
|
|
84
|
-
readonly kind: "object";
|
|
85
145
|
constructor(shape: TShape);
|
|
86
|
-
parse(value: unknown, path?: string):
|
|
146
|
+
parse(value: unknown, path?: string): InferObject<TShape>;
|
|
147
|
+
serialize(value: InferObject<TShape>, path?: string): InferStoredObject<TShape>;
|
|
148
|
+
deserialize(value: unknown, path?: string): InferObject<TShape>;
|
|
149
|
+
describe(): ValidatorDescription;
|
|
87
150
|
}
|
|
88
|
-
declare class IdValidator<TTableName extends string>
|
|
151
|
+
declare class IdValidator<TTableName extends string> extends BaseValidator<string> {
|
|
89
152
|
readonly tableName: TTableName;
|
|
90
|
-
readonly kind: "id";
|
|
91
153
|
constructor(tableName: TTableName);
|
|
92
154
|
parse(value: unknown, path?: string): string;
|
|
155
|
+
describe(): ValidatorDescription;
|
|
93
156
|
}
|
|
94
|
-
declare class OptionalValidator<TValue>
|
|
95
|
-
readonly inner: Validator<TValue>;
|
|
96
|
-
|
|
97
|
-
constructor(inner: Validator<TValue>);
|
|
157
|
+
declare class OptionalValidator<TValue, TStorage = TValue, TFieldPaths extends string = never> extends BaseValidator<TValue | undefined, TStorage | undefined, TFieldPaths> {
|
|
158
|
+
readonly inner: Validator<TValue, TStorage, TFieldPaths>;
|
|
159
|
+
constructor(inner: Validator<TValue, TStorage, TFieldPaths>);
|
|
98
160
|
parse(value: unknown, path?: string): TValue | undefined;
|
|
161
|
+
serialize(value: TValue | undefined, path?: string): TStorage | undefined;
|
|
162
|
+
deserialize(value: unknown, path?: string): TValue | undefined;
|
|
163
|
+
describe(): ValidatorDescription;
|
|
164
|
+
}
|
|
165
|
+
declare class RecordValidator<TKey extends string, TValue, TStorage, TKeyValidator extends Validator<TKey, string, string>, TValueValidator extends Validator<TValue, TStorage, string>> extends BaseValidator<Record<TKey, TValue>, Record<TKey, TStorage>, never> {
|
|
166
|
+
readonly keyValidator: TKeyValidator;
|
|
167
|
+
readonly valueValidator: TValueValidator;
|
|
168
|
+
constructor(keyValidator: TKeyValidator, valueValidator: TValueValidator);
|
|
169
|
+
parse(value: unknown, path?: string): Record<TKey, TValue>;
|
|
170
|
+
serialize(value: Record<TKey, TValue>, path?: string): Record<TKey, TStorage>;
|
|
171
|
+
deserialize(value: unknown, path?: string): Record<TKey, TValue>;
|
|
172
|
+
describe(): ValidatorDescription;
|
|
173
|
+
}
|
|
174
|
+
declare class UnionValidator<TMembers extends readonly Validator<unknown, unknown, string>[]> extends BaseValidator<Infer<TMembers[number]>, InferStorage<TMembers[number]>, FieldPaths<TMembers[number]>> {
|
|
175
|
+
readonly members: TMembers;
|
|
176
|
+
constructor(members: TMembers);
|
|
177
|
+
parse(value: unknown, path?: string): Infer<TMembers[number]>;
|
|
178
|
+
serialize(value: Infer<TMembers[number]>, path?: string): InferStorage<TMembers[number]>;
|
|
179
|
+
deserialize(value: unknown, path?: string): Infer<TMembers[number]>;
|
|
180
|
+
describe(): ValidatorDescription;
|
|
181
|
+
}
|
|
182
|
+
declare class CodecValidator<TValue, TStored, TStorageFieldValidator extends Validator<TStored, unknown, string>, TValueFieldValidator extends Validator<TValue, unknown, string>> extends BaseValidator<TValue, InferStorage<TStorageFieldValidator>, FieldPaths<TValueFieldValidator>> {
|
|
183
|
+
readonly valueValidator: TValueFieldValidator;
|
|
184
|
+
readonly storageValidator: TStorageFieldValidator;
|
|
185
|
+
private readonly codec;
|
|
186
|
+
constructor(valueValidator: TValueFieldValidator, storageValidator: TStorageFieldValidator, codec: {
|
|
187
|
+
serialize(value: TValue): TStored;
|
|
188
|
+
deserialize(value: TStored): TValue;
|
|
189
|
+
});
|
|
190
|
+
parse(value: unknown, path?: string): TValue;
|
|
191
|
+
serialize(value: TValue, path?: string): InferStorage<TStorageFieldValidator>;
|
|
192
|
+
deserialize(value: unknown, path?: string): TValue;
|
|
193
|
+
describe(): ValidatorDescription;
|
|
99
194
|
}
|
|
100
|
-
type Infer<TValidator> = TValidator extends Validator<infer TValue> ? TValue : never;
|
|
101
|
-
type ValidatorMap = Record<string, Validator<unknown>>;
|
|
102
195
|
/**
|
|
103
|
-
*
|
|
196
|
+
* Describes every method available on the `s` schema builder.
|
|
104
197
|
*
|
|
105
|
-
*
|
|
198
|
+
* You interact with this through the singleton {@link s} object rather than
|
|
199
|
+
* implementing this interface yourself.
|
|
106
200
|
*/
|
|
107
201
|
interface ValidatorBuilderApi {
|
|
108
202
|
/**
|
|
109
|
-
*
|
|
203
|
+
* Validates that the value is a `string`.
|
|
110
204
|
*
|
|
111
|
-
*
|
|
205
|
+
* ```ts
|
|
206
|
+
* const v = s.string(); // Validator<string>
|
|
207
|
+
* ```
|
|
112
208
|
*/
|
|
113
209
|
string(): StringValidator;
|
|
114
210
|
/**
|
|
115
|
-
*
|
|
211
|
+
* Validates that the value is a finite `number` (rejects `NaN`).
|
|
116
212
|
*
|
|
117
|
-
*
|
|
213
|
+
* ```ts
|
|
214
|
+
* const v = s.number(); // Validator<number>
|
|
215
|
+
* ```
|
|
118
216
|
*/
|
|
119
217
|
number(): NumberValidator;
|
|
120
218
|
/**
|
|
121
|
-
*
|
|
219
|
+
* Validates that the value is a `boolean`.
|
|
122
220
|
*
|
|
123
|
-
*
|
|
221
|
+
* ```ts
|
|
222
|
+
* const v = s.boolean(); // Validator<boolean>
|
|
223
|
+
* ```
|
|
124
224
|
*/
|
|
125
225
|
boolean(): BooleanValidator;
|
|
126
226
|
/**
|
|
127
|
-
*
|
|
227
|
+
* Validates that the value is exactly `null`.
|
|
128
228
|
*
|
|
129
|
-
*
|
|
229
|
+
* Usually combined with `s.union` — or use the convenience `s.nullable`
|
|
230
|
+
* helper instead.
|
|
130
231
|
*/
|
|
131
232
|
null(): NullValidator;
|
|
132
233
|
/**
|
|
133
|
-
*
|
|
234
|
+
* Accepts any value without validation.
|
|
134
235
|
*
|
|
135
|
-
* Use
|
|
136
|
-
*
|
|
236
|
+
* Use sparingly. Prefer typed validators wherever possible to preserve
|
|
237
|
+
* type safety and devtools introspection.
|
|
137
238
|
*/
|
|
138
239
|
any(): AnyValidator;
|
|
139
240
|
/**
|
|
140
|
-
*
|
|
241
|
+
* Validates that the value is exactly equal to `literalValue`.
|
|
141
242
|
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
243
|
+
* ```ts
|
|
244
|
+
* const v = s.literal("active"); // Validator<"active">
|
|
245
|
+
* ```
|
|
144
246
|
*/
|
|
145
247
|
literal<TValue extends string | number | boolean | null>(literalValue: TValue): LiteralValidator<TValue>;
|
|
146
248
|
/**
|
|
147
|
-
*
|
|
249
|
+
* Validates that the value is one of the provided string literals.
|
|
250
|
+
*
|
|
251
|
+
* Prefer this over `s.union(s.literal(…), …)` for string-enum fields
|
|
252
|
+
* because it generates a cleaner schema description.
|
|
253
|
+
*
|
|
254
|
+
* ```ts
|
|
255
|
+
* const v = s.enum(["todo", "in-progress", "done"] as const);
|
|
256
|
+
* // Validator<"todo" | "in-progress" | "done">
|
|
257
|
+
* ```
|
|
258
|
+
*/
|
|
259
|
+
enum<TValues extends readonly [string, ...string[]]>(values: TValues): EnumValidator<TValues>;
|
|
260
|
+
/**
|
|
261
|
+
* Validates that the value is an array where every item passes
|
|
262
|
+
* `itemValidator`.
|
|
148
263
|
*
|
|
149
|
-
*
|
|
150
|
-
*
|
|
264
|
+
* ```ts
|
|
265
|
+
* const v = s.array(s.string()); // Validator<string[]>
|
|
266
|
+
* ```
|
|
151
267
|
*/
|
|
152
|
-
array<TItem
|
|
268
|
+
array<TItem, TItemStorage, TValidator extends Validator<TItem, TItemStorage, string>>(itemValidator: TValidator): ArrayValidator<TItem, TItemStorage, TValidator>;
|
|
153
269
|
/**
|
|
154
|
-
*
|
|
270
|
+
* Validates that the value is a plain object matching `shape`.
|
|
271
|
+
*
|
|
272
|
+
* Keys whose validators are `s.optional(...)` become optional properties in
|
|
273
|
+
* the inferred type.
|
|
155
274
|
*
|
|
156
|
-
*
|
|
157
|
-
*
|
|
275
|
+
* ```ts
|
|
276
|
+
* const v = s.object({ x: s.number(), y: s.number() });
|
|
277
|
+
* // Validator<{ x: number; y: number }>
|
|
278
|
+
* ```
|
|
158
279
|
*/
|
|
159
280
|
object<TShape extends ObjectValidatorShape>(shape: TShape): ObjectValidator<TShape>;
|
|
160
281
|
/**
|
|
161
|
-
*
|
|
282
|
+
* Validates that the value is a non-empty string that represents a document
|
|
283
|
+
* `_id` in `tableName`.
|
|
162
284
|
*
|
|
163
|
-
*
|
|
285
|
+
* Using `s.id` instead of `s.string` for foreign-key fields enables devtools
|
|
286
|
+
* to show relationships between tables.
|
|
164
287
|
*
|
|
165
|
-
*
|
|
166
|
-
*
|
|
288
|
+
* ```ts
|
|
289
|
+
* const v = s.id("projects"); // Validator<string> (typed as a projects ID)
|
|
290
|
+
* ```
|
|
167
291
|
*/
|
|
168
292
|
id<TTableName extends string>(tableName: TTableName): IdValidator<TTableName>;
|
|
169
293
|
/**
|
|
170
|
-
*
|
|
294
|
+
* Makes a field optional (the value can be `undefined` / absent).
|
|
295
|
+
*
|
|
296
|
+
* Only use inside `s.object()` shapes or as a top-level table field. Nesting
|
|
297
|
+
* `s.optional` inside a non-object validator has no practical effect.
|
|
298
|
+
*
|
|
299
|
+
* ```ts
|
|
300
|
+
* const v = s.object({ name: s.string(), bio: s.optional(s.string()) });
|
|
301
|
+
* // Validator<{ name: string; bio?: string }>
|
|
302
|
+
* ```
|
|
303
|
+
*/
|
|
304
|
+
optional<TValue, TStorage, TFieldPaths extends string>(inner: Validator<TValue, TStorage, TFieldPaths>): OptionalValidator<TValue, TStorage, TFieldPaths>;
|
|
305
|
+
/**
|
|
306
|
+
* Validates that the value is a `Record<TKey, TValue>` (an object with
|
|
307
|
+
* dynamic keys of a specific type).
|
|
308
|
+
*
|
|
309
|
+
* ```ts
|
|
310
|
+
* const v = s.record(s.string(), s.number()); // Validator<Record<string, number>>
|
|
311
|
+
* ```
|
|
312
|
+
*/
|
|
313
|
+
record<TKey extends string, TValue, TStorage, TKeyValidator extends Validator<TKey, string, string>, TValueValidator extends Validator<TValue, TStorage, string>>(keyValidator: TKeyValidator, valueValidator: TValueValidator): RecordValidator<TKey, TValue, TStorage, TKeyValidator, TValueValidator>;
|
|
314
|
+
/**
|
|
315
|
+
* Validates that the value matches **one** of the provided validators
|
|
316
|
+
* (discriminated union).
|
|
171
317
|
*
|
|
172
|
-
*
|
|
173
|
-
*
|
|
318
|
+
* Validators are tried in order; the first one that parses without throwing
|
|
319
|
+
* wins.
|
|
320
|
+
*
|
|
321
|
+
* ```ts
|
|
322
|
+
* const v = s.union(s.string(), s.number()); // Validator<string | number>
|
|
323
|
+
* ```
|
|
324
|
+
*/
|
|
325
|
+
union<TMembers extends readonly Validator<unknown, unknown, string>[]>(...members: TMembers): UnionValidator<TMembers>;
|
|
326
|
+
/**
|
|
327
|
+
* Convenience wrapper for `s.union(inner, s.null())` that types the field
|
|
328
|
+
* as `TValue | null`.
|
|
329
|
+
*
|
|
330
|
+
* ```ts
|
|
331
|
+
* const v = s.nullable(s.id("projects")); // Validator<string | null>
|
|
332
|
+
* ```
|
|
333
|
+
*/
|
|
334
|
+
nullable<TValue, TStorage, TFieldPaths extends string>(inner: Validator<TValue, TStorage, TFieldPaths>): UnionValidator<readonly [Validator<TValue, TStorage, TFieldPaths>, NullValidator]>;
|
|
335
|
+
/**
|
|
336
|
+
* Creates a custom codec that stores a field as one type but exposes it as
|
|
337
|
+
* another.
|
|
338
|
+
*
|
|
339
|
+
* Useful for types that are not natively serialisable to JSON (e.g. `Date`,
|
|
340
|
+
* `Map`, binary IDs). The codec’s `serialize` / `deserialize` functions
|
|
341
|
+
* convert between the runtime value and the stored representation.
|
|
342
|
+
*
|
|
343
|
+
* ```ts
|
|
344
|
+
* const dateValidator = s.codec(s.string(), {
|
|
345
|
+
* storage: s.number(),
|
|
346
|
+
* serialize: (date: string) => new Date(date).getTime(),
|
|
347
|
+
* deserialize: (ts: number) => new Date(ts).toISOString(),
|
|
348
|
+
* });
|
|
349
|
+
* ```
|
|
174
350
|
*/
|
|
175
|
-
|
|
351
|
+
codec<TValue, TStored, TStorageFieldValidator extends Validator<TStored, unknown, string>, TValueFieldValidator extends Validator<TValue, unknown, string>>(valueValidator: TValueFieldValidator, config: {
|
|
352
|
+
storage: TStorageFieldValidator;
|
|
353
|
+
serialize(value: TValue): TStored;
|
|
354
|
+
deserialize(value: TStored): TValue;
|
|
355
|
+
}): CodecValidator<TValue, TStored, TStorageFieldValidator, TValueFieldValidator>;
|
|
176
356
|
}
|
|
177
|
-
declare function ensureObjectValidator(value: Validator<unknown> | ValidatorMap): Validator<unknown>;
|
|
178
357
|
/**
|
|
179
|
-
*
|
|
358
|
+
* Primary schema builder for Syncore’s data-model DSL.
|
|
359
|
+
*
|
|
360
|
+
* `s` is a namespace of factory functions for creating typed field validators.
|
|
361
|
+
* Use it when defining table schemas with {@link defineTable} and when
|
|
362
|
+
* declaring function argument shapes with {@link query}, {@link mutation}, or
|
|
363
|
+
* {@link action}.
|
|
180
364
|
*
|
|
181
|
-
* @example
|
|
182
365
|
* ```ts
|
|
183
|
-
* defineTable
|
|
184
|
-
*
|
|
185
|
-
*
|
|
186
|
-
*
|
|
366
|
+
* import { defineTable, defineSchema, s } from "syncorejs";
|
|
367
|
+
*
|
|
368
|
+
* export default defineSchema({
|
|
369
|
+
* tasks: defineTable({
|
|
370
|
+
* title: s.string(),
|
|
371
|
+
* status: s.enum(["todo", "done"] as const),
|
|
372
|
+
* projectId: s.nullable(s.id("projects")),
|
|
373
|
+
* tags: s.optional(s.array(s.string())),
|
|
374
|
+
* metadata: s.optional(s.object({ priority: s.number() })),
|
|
375
|
+
* })
|
|
376
|
+
* .index("by_status", ["status"])
|
|
377
|
+
* .searchIndex("search_title", { searchField: "title", filterFields: ["status"] }),
|
|
187
378
|
* });
|
|
188
379
|
* ```
|
|
189
380
|
*/
|
|
190
|
-
declare const
|
|
191
|
-
declare function
|
|
381
|
+
declare const s: ValidatorBuilderApi;
|
|
382
|
+
declare function isValidator(value: Validator<unknown, unknown, string> | ValidatorMap): value is Validator<unknown, unknown, string>;
|
|
383
|
+
declare function ensureObjectValidator<TShape extends ObjectValidatorShape>(value: TShape): ObjectValidator<TShape>;
|
|
384
|
+
declare function ensureObjectValidator<TValidator extends Validator<unknown, unknown, string>>(value: TValidator): TValidator;
|
|
385
|
+
declare function serializeValue<TValue, TStorage, TFieldPaths extends string>(validator: Validator<TValue, TStorage, TFieldPaths>, value: TValue, path?: string): TStorage;
|
|
386
|
+
declare function deserializeValue<TValue, TStorage, TFieldPaths extends string>(validator: Validator<TValue, TStorage, TFieldPaths>, value: unknown, path?: string): TValue;
|
|
387
|
+
declare function describeValidator(validator: Validator<unknown, unknown, string>): ValidatorDescription;
|
|
192
388
|
//#endregion
|
|
193
|
-
export { AnyValidator, ArrayValidator, BooleanValidator, IdValidator, Infer, LiteralValidator, NullValidator, NumberValidator, ObjectValidator, ObjectValidatorShape, OptionalValidator, StringValidator, Validator, ValidatorBuilderApi, ValidatorDescription, ValidatorKind, ValidatorMap, describeValidator, ensureObjectValidator,
|
|
389
|
+
export { AnyValidator, ArrayValidator, BooleanValidator, CodecValidator, EnumValidator, FieldPaths, IdValidator, Infer, InferStorage, JoinFieldPaths, LiteralValidator, NullValidator, NumberValidator, ObjectValidator, ObjectValidatorShape, OptionalValidator, RecordValidator, StringValidator, UnionValidator, Validator, ValidatorBuilderApi, ValidatorDescription, ValidatorKind, ValidatorMap, describeValidator, deserializeValue, ensureObjectValidator, isValidator, s, serializeValue };
|
|
194
390
|
//# sourceMappingURL=validators.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.d.ts","names":[],"sources":["../src/validators.ts"],"mappings":";
|
|
1
|
+
{"version":3,"file":"validators.d.ts","names":[],"sources":["../src/validators.ts"],"mappings":"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"}
|