@valbuild/core 0.16.0 → 0.17.0
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/ROADMAP.md +106 -0
- package/dist/declarations/src/ValApi.d.ts +26 -0
- package/dist/declarations/src/expr/eval.d.ts +1 -1
- package/dist/declarations/src/future/fetchVal.d.ts +5 -0
- package/dist/declarations/src/index.d.ts +36 -9
- package/dist/declarations/src/initSchema.d.ts +2 -10
- package/dist/declarations/src/initVal.d.ts +3 -21
- package/dist/declarations/src/module.d.ts +2 -14
- package/dist/declarations/src/schema/image.d.ts +1 -1
- package/dist/declarations/src/schema/index.d.ts +3 -5
- package/dist/declarations/src/schema/keyOf.d.ts +23 -0
- package/dist/declarations/src/schema/record.d.ts +19 -0
- package/dist/declarations/src/schema/union.d.ts +1 -0
- package/dist/declarations/src/selector/SelectorProxy.d.ts +7 -0
- package/dist/declarations/src/selector/array.d.ts +2 -13
- package/dist/declarations/src/selector/file.d.ts +1 -4
- package/dist/declarations/src/selector/future/array.d.ts +17 -0
- package/dist/declarations/src/selector/future/boolean.d.ts +2 -0
- package/dist/declarations/src/selector/future/file.d.ts +9 -0
- package/dist/declarations/src/selector/{i18n.d.ts → future/i18n.d.ts} +2 -2
- package/dist/declarations/src/selector/future/index.d.ts +81 -0
- package/dist/declarations/src/selector/future/number.d.ts +2 -0
- package/dist/declarations/src/selector/future/object.d.ts +10 -0
- package/dist/declarations/src/selector/future/primitive.d.ts +9 -0
- package/dist/declarations/src/selector/{remote.d.ts → future/remote.d.ts} +1 -1
- package/dist/declarations/src/selector/future/string.d.ts +2 -0
- package/dist/declarations/src/selector/index.d.ts +5 -32
- package/dist/declarations/src/selector/object.d.ts +2 -9
- package/dist/declarations/src/selector/primitive.d.ts +3 -9
- package/dist/declarations/src/source/{i18n.d.ts → future/i18n.d.ts} +2 -2
- package/dist/declarations/src/source/{remote.d.ts → future/remote.d.ts} +3 -3
- package/dist/declarations/src/source/index.d.ts +4 -3
- package/dist/declarations/src/val/index.d.ts +2 -2
- package/dist/{SelectorProxy-63c2d0e2.esm.js → index-369caccf.esm.js} +23 -195
- package/dist/{index-af761363.esm.js → index-3e3e839e.esm.js} +189 -1
- package/dist/{index-2fff5ca8.cjs.dev.js → index-486c7fbf.cjs.dev.js} +242 -54
- package/dist/{index-cac9ecbd.cjs.prod.js → index-601a7d73.cjs.prod.js} +242 -54
- package/dist/{SelectorProxy-2af1b2b8.cjs.prod.js → index-8706c87e.cjs.prod.js} +25 -199
- package/dist/{SelectorProxy-873782a5.cjs.dev.js → index-a6e642dd.cjs.dev.js} +25 -199
- package/dist/{ops-1b6e0e35.cjs.prod.js → ops-0d09f8ee.cjs.prod.js} +258 -126
- package/dist/{ops-74661336.esm.js → ops-23a5abb2.esm.js} +195 -65
- package/dist/{ops-ea4827fc.cjs.dev.js → ops-f3015423.cjs.dev.js} +258 -126
- package/dist/valbuild-core.cjs.dev.js +585 -198
- package/dist/valbuild-core.cjs.prod.js +585 -198
- package/dist/valbuild-core.esm.js +520 -134
- package/expr/dist/valbuild-core-expr.cjs.dev.js +8 -8
- package/expr/dist/valbuild-core-expr.cjs.prod.js +8 -8
- package/expr/dist/valbuild-core-expr.esm.js +2 -2
- package/package.json +2 -3
- package/patch/dist/valbuild-core-patch.cjs.dev.js +24 -24
- package/patch/dist/valbuild-core-patch.cjs.prod.js +24 -24
- package/patch/dist/valbuild-core-patch.esm.js +3 -3
- package/src/ValApi.ts +85 -0
- package/src/expr/eval.test.ts +2 -2
- package/src/expr/eval.ts +2 -2
- package/src/{fetchVal.test.ts → future/fetchVal.test.ts} +57 -57
- package/src/{fetchVal.ts → future/fetchVal.ts} +17 -22
- package/src/index.ts +46 -14
- package/src/initSchema.ts +11 -12
- package/src/initVal.ts +42 -52
- package/src/module.test.ts +40 -40
- package/src/module.ts +53 -43
- package/src/patch/deref.test.ts +1 -1
- package/src/patch/deref.ts +1 -1
- package/src/patch/json.test.ts +0 -1
- package/src/schema/{i18n.ts → future/i18n.ts} +12 -10
- package/src/schema/{oneOf.ts → future/oneOf.ts} +19 -17
- package/src/schema/image.ts +1 -1
- package/src/schema/index.ts +16 -13
- package/src/schema/keyOf.ts +167 -0
- package/src/schema/record.ts +103 -0
- package/src/schema/union.ts +1 -1
- package/src/schema/validation.test.ts +195 -130
- package/src/selector/SelectorProxy.ts +15 -15
- package/src/selector/array.ts +2 -26
- package/src/selector/file.ts +1 -9
- package/src/selector/{ExprProxy.test.ts → future/ExprProxy.test.ts} +2 -2
- package/src/selector/{ExprProxy.ts → future/ExprProxy.ts} +9 -2
- package/src/selector/{SelectorProxy.test.ts → future/SelectorProxy.test.ts} +4 -4
- package/src/selector/future/SelectorProxy.ts +238 -0
- package/src/selector/future/array.ts +37 -0
- package/src/selector/future/boolean.ts +4 -0
- package/src/selector/future/file.ts +14 -0
- package/src/selector/{i18n.ts → future/i18n.ts} +2 -2
- package/src/selector/future/index.ts +165 -0
- package/src/selector/future/number.ts +4 -0
- package/src/selector/future/object.ts +22 -0
- package/src/selector/future/primitive.ts +17 -0
- package/src/selector/{remote.ts → future/remote.ts} +1 -1
- package/src/selector/{selector.test.ts → future/selector.test.ts} +8 -28
- package/src/selector/{selectorOf.ts → future/selectorOf.ts} +1 -1
- package/src/selector/future/string.ts +4 -0
- package/src/selector/index.ts +4 -46
- package/src/selector/object.ts +2 -19
- package/src/selector/primitive.ts +3 -16
- package/src/source/{i18n.ts → future/i18n.ts} +2 -2
- package/src/source/{remote.ts → future/remote.ts} +3 -3
- package/src/source/index.ts +3 -2
- package/src/val/array.ts +1 -1
- package/src/val/index.ts +2 -2
- package/src/val/object.ts +1 -1
- package/dist/declarations/src/fetchVal.d.ts +0 -5
- package/dist/declarations/src/schema/i18n.d.ts +0 -22
- package/dist/declarations/src/schema/oneOf.d.ts +0 -23
package/src/selector/object.ts
CHANGED
@@ -1,22 +1,5 @@
|
|
1
|
-
import {
|
2
|
-
Selector as UnknownSelector,
|
3
|
-
GenericSelector,
|
4
|
-
SelectorOf,
|
5
|
-
SelectorSource,
|
6
|
-
} from ".";
|
1
|
+
import { GenericSelector } from "./index";
|
7
2
|
import { SourceObject } from "../source";
|
8
3
|
|
9
4
|
// TODO: docs
|
10
|
-
export type Selector<T extends SourceObject> = GenericSelector<T
|
11
|
-
fold<Tag extends string>(
|
12
|
-
key: Tag
|
13
|
-
): <U extends SelectorSource>(cases: {
|
14
|
-
[key in T[Tag & keyof T] & string]: (v: UnknownSelector<T>) => U;
|
15
|
-
}) => SelectorOf<U>;
|
16
|
-
|
17
|
-
andThen<U extends SelectorSource>(
|
18
|
-
f: (v: UnknownSelector<NonNullable<T>>) => U
|
19
|
-
): SelectorOf<U>;
|
20
|
-
} & {
|
21
|
-
readonly [key in keyof T]: UnknownSelector<T[key]>;
|
22
|
-
};
|
5
|
+
export type Selector<T extends SourceObject> = GenericSelector<T>;
|
@@ -1,17 +1,4 @@
|
|
1
|
-
import {
|
2
|
-
|
3
|
-
GenericSelector,
|
4
|
-
SelectorOf,
|
5
|
-
SelectorSource,
|
6
|
-
} from ".";
|
7
|
-
import { Source, SourcePrimitive } from "../source";
|
8
|
-
import { Selector as BooleanSelector } from "./boolean";
|
1
|
+
import { GenericSelector } from "./index";
|
2
|
+
import { SourcePrimitive } from "../source";
|
9
3
|
|
10
|
-
export type Selector<T extends SourcePrimitive> = GenericSelector<T
|
11
|
-
eq(other: Source): BooleanSelector<boolean>;
|
12
|
-
andThen<U extends SelectorSource>(
|
13
|
-
f: (v: UnknownSelector<NonNullable<T>>) => U
|
14
|
-
): SelectorOf<U | NullableOf<T>>;
|
15
|
-
};
|
16
|
-
|
17
|
-
type NullableOf<T extends Source> = T extends null ? null : never;
|
4
|
+
export type Selector<T extends SourcePrimitive> = GenericSelector<T>;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { F } from "ts-toolbelt";
|
2
|
-
import { SourcePrimitive, VAL_EXTENSION } from "
|
3
|
-
import { FileSource } from "
|
2
|
+
import { SourcePrimitive, VAL_EXTENSION } from "..";
|
3
|
+
import { FileSource } from "../file";
|
4
4
|
|
5
5
|
/**
|
6
6
|
* I18n sources cannot have nested remote sources.
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import { SourcePrimitive, VAL_EXTENSION, PhantomType } from "
|
2
|
-
import { FileSource } from "
|
1
|
+
import { SourcePrimitive, VAL_EXTENSION, PhantomType } from "..";
|
2
|
+
import { FileSource } from "../file";
|
3
3
|
import { I18nCompatibleSource, I18nSource } from "./i18n";
|
4
|
-
import { RichTextSource } from "
|
4
|
+
import { RichTextSource } from "../richtext";
|
5
5
|
|
6
6
|
/**
|
7
7
|
* Remote sources cannot include other remote sources.
|
package/src/source/index.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { FileSource } from "./file";
|
2
|
-
import { I18nSource, I18nCompatibleSource } from "./i18n";
|
3
|
-
import { RemoteSource, RemoteCompatibleSource } from "./remote";
|
2
|
+
import { I18nSource, I18nCompatibleSource } from "./future/i18n";
|
3
|
+
import { RemoteSource, RemoteCompatibleSource } from "./future/remote";
|
4
4
|
import { RichTextSource } from "./richtext";
|
5
5
|
|
6
6
|
export type Source =
|
@@ -15,6 +15,7 @@ export type Source =
|
|
15
15
|
export type SourceObject = { [key in string]: Source } & {
|
16
16
|
// TODO: update these restricted parameters:
|
17
17
|
fold?: never;
|
18
|
+
assert?: never;
|
18
19
|
andThen?: never;
|
19
20
|
_ref?: never;
|
20
21
|
_type?: never;
|
package/src/val/array.ts
CHANGED
package/src/val/index.ts
CHANGED
@@ -4,8 +4,8 @@ import { Val as ArrayVal } from "./array";
|
|
4
4
|
import { Val as PrimitiveVal } from "./primitive";
|
5
5
|
import { Json, JsonArray, JsonObject, JsonPrimitive } from "../Json";
|
6
6
|
import { Path, Selector } from "../selector";
|
7
|
-
import { I18nSource } from "../source/i18n";
|
8
|
-
import { RemoteSource } from "../source/remote";
|
7
|
+
import { I18nSource } from "../source/future/i18n";
|
8
|
+
import { RemoteSource } from "../source/future/remote";
|
9
9
|
import { FileSource } from "../source/file";
|
10
10
|
|
11
11
|
export type SerializedVal = {
|
package/src/val/object.ts
CHANGED
@@ -1,5 +0,0 @@
|
|
1
|
-
import { GenericSelector, SelectorOf, SelectorSource } from "./selector/index.js";
|
2
|
-
import { JsonOfSource, Val } from "./val/index.js";
|
3
|
-
export declare function fetchVal<T extends SelectorSource>(selector: T, locale?: string): SelectorOf<T> extends GenericSelector<infer S> ? Promise<Val<JsonOfSource<S>>> : never;
|
4
|
-
export declare function getVal<T extends SelectorSource>(selector: T, locale?: string): SelectorOf<T> extends GenericSelector<infer S> ? Val<JsonOfSource<S>> : never;
|
5
|
-
export declare function serializedValOfSelectorSource<T extends SelectorSource>(selector: T): any;
|
@@ -1,22 +0,0 @@
|
|
1
|
-
import { Schema, SchemaTypeOf, SerializedSchema } from "./index.js";
|
2
|
-
import { I18nCompatibleSource, I18nSource } from "../source/i18n.js";
|
3
|
-
import { SourcePath } from "../val/index.js";
|
4
|
-
import { ValidationErrors } from "./validation/ValidationError.js";
|
5
|
-
export type SerializedI18nSchema = {
|
6
|
-
type: "i18n";
|
7
|
-
locales: readonly string[];
|
8
|
-
item: SerializedSchema;
|
9
|
-
opt: boolean;
|
10
|
-
};
|
11
|
-
export declare class I18nSchema<Locales extends readonly string[]> extends Schema<I18nSource<Locales, SchemaTypeOf<Schema<I18nCompatibleSource>>>> {
|
12
|
-
readonly locales: Locales;
|
13
|
-
readonly item: Schema<SchemaTypeOf<Schema<I18nCompatibleSource>>>;
|
14
|
-
readonly opt: boolean;
|
15
|
-
constructor(locales: Locales, item: Schema<SchemaTypeOf<Schema<I18nCompatibleSource>>>, opt?: boolean);
|
16
|
-
validate(path: SourcePath, src: I18nSource<Locales, SchemaTypeOf<Schema<I18nCompatibleSource>>>): ValidationErrors;
|
17
|
-
assert(src: I18nSource<Locales, SchemaTypeOf<Schema<I18nCompatibleSource>>>): boolean;
|
18
|
-
optional(): Schema<I18nSource<Locales, SchemaTypeOf<Schema<I18nCompatibleSource>>> | null>;
|
19
|
-
serialize(): SerializedSchema;
|
20
|
-
}
|
21
|
-
export type I18n<Locales extends readonly string[]> = <S extends Schema<I18nCompatibleSource>>(schema: S) => Schema<I18nSource<Locales, SchemaTypeOf<S>>>;
|
22
|
-
export declare const i18n: <Locales extends readonly string[]>(locales: Locales) => <S extends Schema<I18nCompatibleSource>>(schema: S) => Schema<I18nSource<Locales, SchemaTypeOf<S>>>;
|
@@ -1,23 +0,0 @@
|
|
1
|
-
import { Schema, SerializedSchema } from "./index.js";
|
2
|
-
import { ValModuleBrand } from "../module.js";
|
3
|
-
import { GenericSelector } from "../selector/index.js";
|
4
|
-
import { Source, SourceArray } from "../source/index.js";
|
5
|
-
import { SourcePath } from "../val/index.js";
|
6
|
-
import { ValidationErrors } from "./validation/ValidationError.js";
|
7
|
-
export type SerializedOneOfSchema = {
|
8
|
-
type: "oneOf";
|
9
|
-
selector: SourcePath;
|
10
|
-
opt: boolean;
|
11
|
-
};
|
12
|
-
type OneOfSelector<Sel extends GenericSelector<SourceArray>> = Sel extends GenericSelector<infer S> ? S extends (infer IS)[] ? IS extends Source ? GenericSelector<IS> : never : never : never;
|
13
|
-
export declare class OneOfSchema<Sel extends GenericSelector<SourceArray>> extends Schema<OneOfSelector<Sel>> {
|
14
|
-
readonly selector: Sel;
|
15
|
-
readonly opt: boolean;
|
16
|
-
constructor(selector: Sel, opt?: boolean);
|
17
|
-
validate(path: SourcePath, src: OneOfSelector<Sel>): ValidationErrors;
|
18
|
-
assert(src: OneOfSelector<Sel>): boolean;
|
19
|
-
optional(): Schema<OneOfSelector<Sel> | null>;
|
20
|
-
serialize(): SerializedSchema;
|
21
|
-
}
|
22
|
-
export declare const oneOf: <Src extends GenericSelector<SourceArray, undefined> & ValModuleBrand>(valModule: Src) => Schema<OneOfSelector<Src>>;
|
23
|
-
export {};
|