valleyed 4.5.3 → 4.5.4
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/CHANGELOG.md +15 -0
- package/lib/api/arrays.d.ts +2 -2
- package/lib/api/arrays.js +12 -14
- package/lib/api/arrays.js.map +1 -1
- package/lib/api/base/pipes.d.ts +18 -4
- package/lib/api/base/pipes.js +57 -57
- package/lib/api/base/pipes.js.map +1 -1
- package/lib/api/base/types.d.ts +25 -25
- package/lib/api/core.js +42 -26
- package/lib/api/core.js.map +1 -1
- package/lib/api/externals.d.ts +1 -1
- package/lib/api/externals.js +1 -1
- package/lib/api/externals.js.map +1 -1
- package/lib/api/files.d.ts +2 -1
- package/lib/api/files.js +3 -1
- package/lib/api/files.js.map +1 -1
- package/lib/api/junctions.d.ts +1 -1
- package/lib/api/junctions.js +12 -20
- package/lib/api/junctions.js.map +1 -1
- package/lib/api/optionals.d.ts +3 -3
- package/lib/api/optionals.js +12 -11
- package/lib/api/optionals.js.map +1 -1
- package/lib/api/records.d.ts +3 -3
- package/lib/api/records.js +24 -25
- package/lib/api/records.js.map +1 -1
- package/lib/api/strings.js +4 -4
- package/lib/api/strings.js.map +1 -1
- package/lib/api/times.js +6 -6
- package/lib/api/times.js.map +1 -1
- package/lib/utils/functions/index.js +2 -2
- package/lib/utils/functions/index.js.map +1 -1
- package/lib/utils/geohash.js +2 -2
- package/lib/utils/geohash.js.map +1 -1
- package/lib/utils/regexes.d.ts +1 -1
- package/lib/utils/regexes.js +1 -1
- package/lib/utils/regexes.js.map +1 -1
- package/package.json +2 -4
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [4.5.4](https://github.com/kevinand11/valleyed/compare/v4.5.3...v4.5.4) (2025-06-24)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* add pipe deps into context ([88f5463](https://github.com/kevinand11/valleyed/commit/88f5463a80b9f6bb94bceaa6d3533f9a17d9ec9b))
|
|
11
|
+
* meta api ([9e260e5](https://github.com/kevinand11/valleyed/commit/9e260e52966b198d1393b9202ff5ac9f9a539995))
|
|
12
|
+
* store both next and last for performance ([87ebb6b](https://github.com/kevinand11/valleyed/commit/87ebb6b1e103865c249e727964d596448e84d2f3))
|
|
13
|
+
* use new apis assert, validate, context and schema ([2bd63ce](https://github.com/kevinand11/valleyed/commit/2bd63ce0d7aa3e62483299634e99790bc63ab9bc))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
* use linked list instead of reversed ([7e3fc25](https://github.com/kevinand11/valleyed/commit/7e3fc25afc0fd6facfe151265756a735a6dc78ac))
|
|
19
|
+
|
|
5
20
|
### [4.5.3](https://github.com/kevinand11/valleyed/compare/v4.5.2...v4.5.3) (2025-06-24)
|
|
6
21
|
|
|
7
22
|
### [4.5.2](https://github.com/kevinand11/valleyed/compare/v4.5.1...v4.5.2) (2025-06-24)
|
package/lib/api/arrays.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { PipeInput, type Pipe, type PipeOutput } from './base';
|
|
2
|
-
export declare const array: <T extends Pipe<any, any, any>>(pipeSchema: T) => Pipe<PipeInput<T>[], PipeOutput<T>[], any>;
|
|
3
|
-
export declare const tuple: <T extends ReadonlyArray<Pipe<any, any, any>>>(pipes: readonly [...T]) => Pipe<{ [K in keyof T]: PipeInput<T[K]>; }, { [K_1 in keyof T]: PipeOutput<T[K_1]>; }, any>;
|
|
2
|
+
export declare const array: <T extends Pipe<any, any, any>>(pipeSchema: T, err?: string) => Pipe<PipeInput<T>[], PipeOutput<T>[], any>;
|
|
3
|
+
export declare const tuple: <T extends ReadonlyArray<Pipe<any, any, any>>>(pipes: readonly [...T], err?: string) => Pipe<{ [K in keyof T]: PipeInput<T[K]>; }, { [K_1 in keyof T]: PipeOutput<T[K_1]>; }, any>;
|
|
4
4
|
export declare const asSet: <T>(keyFn?: (i: T) => PropertyKey) => Pipe<T[], T[], any>;
|
package/lib/api/arrays.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { pipe, PipeError } from './base';
|
|
2
|
-
export const array = (pipeSchema) => pipe((input) => {
|
|
1
|
+
import { pipe, PipeError, schema, validate } from './base';
|
|
2
|
+
export const array = (pipeSchema, err = 'is not an array') => pipe((input) => {
|
|
3
3
|
if (!Array.isArray(input))
|
|
4
|
-
throw PipeError.root(
|
|
4
|
+
throw PipeError.root(err, input);
|
|
5
5
|
if (input.length === 0)
|
|
6
6
|
return input;
|
|
7
7
|
const res = input.map((i, idx) => {
|
|
8
|
-
const validity =
|
|
8
|
+
const validity = validate(pipeSchema, i);
|
|
9
9
|
if (!validity.valid)
|
|
10
10
|
return PipeError.path(idx, validity.error, i);
|
|
11
11
|
return validity.value;
|
|
@@ -13,18 +13,16 @@ export const array = (pipeSchema) => pipe((input) => {
|
|
|
13
13
|
if (res.some((r) => r instanceof PipeError))
|
|
14
14
|
throw PipeError.rootFrom(res.filter((r) => r instanceof PipeError), input);
|
|
15
15
|
return res;
|
|
16
|
-
}, { schema: () => ({ type: 'array', items: pipeSchema
|
|
17
|
-
export const tuple = (pipes) => pipe((input) => {
|
|
16
|
+
}, { schema: () => ({ type: 'array', items: schema(pipeSchema) }) });
|
|
17
|
+
export const tuple = (pipes, err = 'is not an array') => pipe((input) => {
|
|
18
18
|
if (!Array.isArray(input))
|
|
19
|
-
throw PipeError.root(
|
|
20
|
-
if (pipes.length
|
|
21
|
-
throw PipeError.root(`expected ${pipes.length} but got ${input.length} items`, input);
|
|
22
|
-
if (input.length === 0)
|
|
19
|
+
throw PipeError.root(err, input);
|
|
20
|
+
if (pipes.length === 0)
|
|
23
21
|
return input;
|
|
24
|
-
const res =
|
|
25
|
-
const validitity =
|
|
22
|
+
const res = pipes.map((pipe, idx) => {
|
|
23
|
+
const validitity = validate(pipe, input[idx]);
|
|
26
24
|
if ('error' in validitity)
|
|
27
|
-
return PipeError.path(idx, validitity.error,
|
|
25
|
+
return PipeError.path(idx, validitity.error, input[idx]);
|
|
28
26
|
return validitity.value;
|
|
29
27
|
});
|
|
30
28
|
if (res.some((r) => r instanceof PipeError))
|
|
@@ -33,7 +31,7 @@ export const tuple = (pipes) => pipe((input) => {
|
|
|
33
31
|
}, {
|
|
34
32
|
schema: () => ({
|
|
35
33
|
type: 'array',
|
|
36
|
-
items: pipes.map((pipe) => pipe
|
|
34
|
+
items: pipes.map((pipe) => schema(pipe)),
|
|
37
35
|
minItems: pipes.length,
|
|
38
36
|
maxItems: pipes.length,
|
|
39
37
|
}),
|
package/lib/api/arrays.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arrays.js","sourceRoot":"","sources":["../../src/api/arrays.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"arrays.js","sourceRoot":"","sources":["../../src/api/arrays.ts"],"names":[],"mappings":"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"}
|
package/lib/api/base/pipes.d.ts
CHANGED
|
@@ -1,9 +1,23 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PipeError } from './errors';
|
|
2
|
+
import { PipeFn, Context, JsonSchemaBuilder, PipeMeta, Pipe, PipeOutput, PipeContext } from './types';
|
|
3
|
+
import { JsonSchema } from '../../utils/types';
|
|
4
|
+
export declare function walk<T>(pipe: Pipe<any, any, any>, init: T, nodeFn: (cur: Pipe<any, any, any>, acc: T) => T): T;
|
|
5
|
+
export declare function context<T extends Pipe<any, any, any>>(pipe: T): Context<PipeContext<T>>;
|
|
6
|
+
export declare function assert<T extends Pipe<any, any, any>>(pipe: T, input: unknown): PipeOutput<T>;
|
|
7
|
+
export declare function validate<T extends Pipe<any, any, any>>(pipe: T, input: unknown): {
|
|
8
|
+
value: PipeOutput<T>;
|
|
9
|
+
valid: true;
|
|
10
|
+
} | {
|
|
11
|
+
error: PipeError;
|
|
12
|
+
valid: false;
|
|
13
|
+
};
|
|
14
|
+
export declare function schema<T extends Pipe<any, any, any>>(pipe: T, schema?: JsonSchema): JsonSchema;
|
|
15
|
+
export declare function meta<T extends Pipe<any, any, any>>(p: T, meta: PipeMeta): T;
|
|
2
16
|
export declare function pipe<I, O, C>(func: PipeFn<I, O, C>, config?: {
|
|
3
17
|
context?: () => Context<C>;
|
|
4
|
-
schema?: () => JsonSchemaBuilder;
|
|
18
|
+
schema?: (context: Context<C>) => JsonSchemaBuilder;
|
|
5
19
|
}): Pipe<I, O, C>;
|
|
6
|
-
export declare function
|
|
20
|
+
export declare function branch<P extends Pipe<any, any, any>, I, O, C>(branch: P, fn: PipeFn<I, O, C>, config: {
|
|
7
21
|
context: (context: Context<C>) => Context<C>;
|
|
8
|
-
schema: (schema: JsonSchemaBuilder) => JsonSchemaBuilder;
|
|
22
|
+
schema: (schema: JsonSchemaBuilder, context: Context<C>) => JsonSchemaBuilder;
|
|
9
23
|
}): Pipe<I, O, C>;
|
package/lib/api/base/pipes.js
CHANGED
|
@@ -1,58 +1,68 @@
|
|
|
1
1
|
import { PipeError } from './errors';
|
|
2
|
+
export function walk(pipe, init, nodeFn) {
|
|
3
|
+
let acc = init;
|
|
4
|
+
while (pipe) {
|
|
5
|
+
acc = nodeFn(pipe, acc);
|
|
6
|
+
pipe = pipe.next;
|
|
7
|
+
}
|
|
8
|
+
return acc;
|
|
9
|
+
}
|
|
10
|
+
export function context(pipe) {
|
|
11
|
+
return walk(pipe, {}, (p, acc) => ({ ...acc, ...p.context() }));
|
|
12
|
+
}
|
|
13
|
+
export function assert(pipe, input) {
|
|
14
|
+
try {
|
|
15
|
+
const cont = context(pipe);
|
|
16
|
+
return walk(pipe, input, (p, acc) => p.fn(acc, cont));
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
if (error instanceof PipeError) {
|
|
20
|
+
if (error.stopped)
|
|
21
|
+
return error.value;
|
|
22
|
+
throw error;
|
|
23
|
+
}
|
|
24
|
+
throw PipeError.root(error instanceof Error ? error.message : `${error}`, input, error);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export function validate(pipe, input) {
|
|
28
|
+
try {
|
|
29
|
+
const value = assert(pipe, input);
|
|
30
|
+
return { value, valid: true };
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
if (error instanceof PipeError)
|
|
34
|
+
return { error, valid: false };
|
|
35
|
+
throw PipeError.root(error instanceof Error ? error.message : `${error}`, input, error);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export function schema(pipe, schema = {}) {
|
|
39
|
+
const cont = context(pipe);
|
|
40
|
+
return walk(pipe, schema, (p, acc) => ({ ...acc, ...p.schema(cont) }));
|
|
41
|
+
}
|
|
42
|
+
export function meta(p, meta) {
|
|
43
|
+
return p.pipe(pipe((i) => i, { schema: () => meta }));
|
|
44
|
+
}
|
|
2
45
|
export function pipe(func, config = {}) {
|
|
3
|
-
|
|
4
|
-
const node = {
|
|
46
|
+
const piper = {
|
|
5
47
|
fn: func,
|
|
6
48
|
context: () => config.context?.() ?? {},
|
|
7
|
-
schema: () =>
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}, piper),
|
|
17
|
-
parse: (input) => {
|
|
18
|
-
try {
|
|
19
|
-
const { nodes, context } = gather(piper);
|
|
20
|
-
return nodes.reduce((acc, cur) => cur.fn(acc, context), input);
|
|
21
|
-
}
|
|
22
|
-
catch (error) {
|
|
23
|
-
if (error instanceof PipeError) {
|
|
24
|
-
if (error.stopped)
|
|
25
|
-
return error.value;
|
|
26
|
-
throw error;
|
|
27
|
-
}
|
|
28
|
-
throw PipeError.root(error instanceof Error ? error.message : `${error}`, input, error);
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
validate: (input) => {
|
|
32
|
-
try {
|
|
33
|
-
const value = piper.parse(input);
|
|
34
|
-
return { value, valid: true };
|
|
49
|
+
schema: (context) => config.schema?.(context) ?? {},
|
|
50
|
+
pipe: (...entries) => {
|
|
51
|
+
for (const cur of entries) {
|
|
52
|
+
const p = typeof cur === 'function' ? pipe(cur, config) : cur;
|
|
53
|
+
if (!piper.next)
|
|
54
|
+
piper.next = p;
|
|
55
|
+
if (piper.last)
|
|
56
|
+
piper.last.next = p;
|
|
57
|
+
piper.last = p.last ?? p;
|
|
35
58
|
}
|
|
36
|
-
catch (error) {
|
|
37
|
-
if (error instanceof PipeError)
|
|
38
|
-
return { error, valid: false };
|
|
39
|
-
throw error;
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
|
-
context: () => gather(piper).context,
|
|
43
|
-
meta: (schema) => {
|
|
44
|
-
meta = { ...meta, ...schema };
|
|
45
59
|
return piper;
|
|
46
60
|
},
|
|
47
|
-
toJsonSchema: (schema = {}) => {
|
|
48
|
-
const { nodes } = gather(piper);
|
|
49
|
-
return nodes.reduce((acc, cur) => ({ ...acc, ...cur.schema() }), schema);
|
|
50
|
-
},
|
|
51
61
|
'~standard': {
|
|
52
62
|
version: 1,
|
|
53
63
|
vendor: 'valleyed',
|
|
54
64
|
validate(value) {
|
|
55
|
-
const validity =
|
|
65
|
+
const validity = validate(piper, value);
|
|
56
66
|
if (validity.valid)
|
|
57
67
|
return { value: validity.value };
|
|
58
68
|
return {
|
|
@@ -66,21 +76,11 @@ export function pipe(func, config = {}) {
|
|
|
66
76
|
};
|
|
67
77
|
return piper;
|
|
68
78
|
}
|
|
69
|
-
function
|
|
70
|
-
const pipes = [pipe.node];
|
|
71
|
-
while (pipe.prev) {
|
|
72
|
-
pipes.push(pipe.prev.node);
|
|
73
|
-
pipe = pipe.prev;
|
|
74
|
-
}
|
|
75
|
-
const nodes = pipes.reverse();
|
|
76
|
-
const context = nodes.reduce((acc, cur) => ({ ...acc, ...cur.context() }), {});
|
|
77
|
-
return { nodes, context };
|
|
78
|
-
}
|
|
79
|
-
export function makeBranchPipe(branch, fn, config) {
|
|
79
|
+
export function branch(branch, fn, config) {
|
|
80
80
|
return pipe(fn, {
|
|
81
81
|
...config,
|
|
82
|
-
context: () => config.context(
|
|
83
|
-
schema: () => ({ ...config.schema(branch
|
|
82
|
+
context: () => config.context(context(branch)),
|
|
83
|
+
schema: (context) => ({ ...config.schema(schema(branch), context) }),
|
|
84
84
|
});
|
|
85
85
|
}
|
|
86
86
|
//# sourceMappingURL=pipes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipes.js","sourceRoot":"","sources":["../../../src/api/base/pipes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"pipes.js","sourceRoot":"","sources":["../../../src/api/base/pipes.ts"],"names":[],"mappings":"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"}
|
package/lib/api/base/types.d.ts
CHANGED
|
@@ -1,14 +1,27 @@
|
|
|
1
1
|
import { StandardSchemaV1 } from '@standard-schema/spec';
|
|
2
|
-
import {
|
|
3
|
-
import { JsonSchema } from '../../utils/types';
|
|
4
|
-
|
|
2
|
+
import { ValueFunction } from '../../utils/functions';
|
|
3
|
+
import { IsInTypeList, JsonSchema } from '../../utils/types';
|
|
4
|
+
import type { Timeable } from '../times';
|
|
5
|
+
export type PipeFn<I, O, C> = (input: I, context: Context<C>) => O;
|
|
5
6
|
export type PipeInput<T> = T extends Pipe<infer I, any, any> ? I : never;
|
|
6
7
|
export type PipeOutput<T> = T extends Pipe<any, infer O, any> ? O : never;
|
|
7
8
|
export type PipeContext<T> = T extends Pipe<any, any, infer C> ? C : never;
|
|
8
|
-
export type Context<C> = C & {
|
|
9
|
+
export type Context<C> = (IsInTypeList<C, [any, unknown, never]> extends true ? {} : C) & Readonly<{
|
|
9
10
|
optional?: boolean;
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
objectKeys?: string[];
|
|
12
|
+
eq?: ValueFunction<unknown>;
|
|
13
|
+
ne?: ValueFunction<unknown>;
|
|
14
|
+
in?: ValueFunction<Readonly<unknown[]>>;
|
|
15
|
+
nin?: ValueFunction<Readonly<unknown[]>>;
|
|
16
|
+
has?: ValueFunction<number>;
|
|
17
|
+
min?: ValueFunction<number>;
|
|
18
|
+
max?: ValueFunction<number>;
|
|
19
|
+
fileTypes?: ValueFunction<string | string[]>;
|
|
20
|
+
defaults?: ValueFunction<unknown>;
|
|
21
|
+
catch?: ValueFunction<unknown>;
|
|
22
|
+
after?: ValueFunction<Timeable>;
|
|
23
|
+
before?: ValueFunction<Timeable>;
|
|
24
|
+
}>;
|
|
12
25
|
export type PipeMeta = Pick<JsonSchema, '$refId' | 'title' | 'description' | 'examples' | 'default'>;
|
|
13
26
|
export type JsonSchemaBuilder = JsonSchema;
|
|
14
27
|
export type Entry<I, O, C> = Pipe<I, O, C> | PipeFn<I, O, C>;
|
|
@@ -25,24 +38,11 @@ type PipeChain<I, O, C> = {
|
|
|
25
38
|
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(fn1: Entry<O, T1, C>, fn2: Entry<T1, T2, C>, f3: Entry<T2, T3, C>, f4: Entry<T3, T4, C>, f5: Entry<T4, T5, C>, f6: Entry<T5, T6, C>, f7: Entry<T6, T7, C>, f8: Entry<T7, T8, C>, f9: Entry<T8, T9, C>, f10: Entry<T9, T10, C>): Pipe<I, T10, C>;
|
|
26
39
|
};
|
|
27
40
|
export interface Pipe<I, O, C> extends StandardSchemaV1<I, O> {
|
|
28
|
-
readonly
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
valid: true;
|
|
35
|
-
} | {
|
|
36
|
-
error: PipeError;
|
|
37
|
-
valid: false;
|
|
38
|
-
};
|
|
39
|
-
context(): Context<C>;
|
|
40
|
-
meta(schema: PipeMeta): Pipe<I, O, C>;
|
|
41
|
-
toJsonSchema(schema?: JsonSchema): JsonSchema;
|
|
41
|
+
readonly fn: PipeFn<I, O, C>;
|
|
42
|
+
readonly context: () => Context<C>;
|
|
43
|
+
readonly schema: (context: Context<C>) => JsonSchema;
|
|
44
|
+
readonly pipe: PipeChain<I, O, C>;
|
|
45
|
+
next?: Pipe<any, any, any>;
|
|
46
|
+
last?: Pipe<any, any, any>;
|
|
42
47
|
}
|
|
43
|
-
export type PipeNode = {
|
|
44
|
-
fn: PipeFn<any, any, any>;
|
|
45
|
-
context: () => Context<any>;
|
|
46
|
-
schema: () => JsonSchema;
|
|
47
|
-
};
|
|
48
48
|
export {};
|
package/lib/api/core.js
CHANGED
|
@@ -6,57 +6,73 @@ export const custom = (condition, err = `doesn't pass custom rule`) => pipe((inp
|
|
|
6
6
|
return input;
|
|
7
7
|
throw PipeError.root(err, input);
|
|
8
8
|
}, {});
|
|
9
|
-
export const eq = (compare, err) => pipe((input) => {
|
|
10
|
-
const comp = execValueFunction(compare);
|
|
9
|
+
export const eq = (compare, err) => pipe((input, context) => {
|
|
10
|
+
const comp = execValueFunction(context.eq ?? compare);
|
|
11
11
|
if (input === comp || equal(input, comp))
|
|
12
12
|
return input;
|
|
13
13
|
throw PipeError.root(err ?? `is not equal to ${comp}`, input);
|
|
14
|
-
}, { schema: () => ({ const: execValueFunction(compare) }) });
|
|
14
|
+
}, { context: () => ({ eq: compare }), schema: (context) => ({ const: execValueFunction(context.eq ?? compare) }) });
|
|
15
15
|
export const is = eq;
|
|
16
|
-
export const ne = (compare, err) => pipe((input) => {
|
|
17
|
-
const comp = execValueFunction(compare);
|
|
16
|
+
export const ne = (compare, err) => pipe((input, context) => {
|
|
17
|
+
const comp = execValueFunction(context.eq ?? compare);
|
|
18
18
|
if (!equal(input, comp) && input !== comp)
|
|
19
19
|
return input;
|
|
20
20
|
throw PipeError.root(err ?? `is equal to ${comp}`, input);
|
|
21
|
-
}, { schema: () => ({ not: { const: execValueFunction(compare) } }) });
|
|
22
|
-
const inArray = (array, err) => pipe((input) => {
|
|
23
|
-
const arr = execValueFunction(array);
|
|
21
|
+
}, { context: () => ({ ne: compare }), schema: (context) => ({ not: { const: execValueFunction(context.eq ?? compare) } }) });
|
|
22
|
+
const inArray = (array, err) => pipe((input, context) => {
|
|
23
|
+
const arr = execValueFunction(context.in ?? array);
|
|
24
24
|
if (arr.find((x) => equal(input, x)))
|
|
25
25
|
return input;
|
|
26
26
|
throw PipeError.root(err ?? `is not in the list: [${arr.join(',')}]`, input);
|
|
27
|
-
}, { schema: () => ({ enum: [...execValueFunction(array)] }) });
|
|
28
|
-
export const nin = (array, err) => pipe((input) => {
|
|
29
|
-
const arr = execValueFunction(array);
|
|
27
|
+
}, { context: () => ({ in: array }), schema: (context) => ({ enum: [...execValueFunction(context.in ?? array)] }) });
|
|
28
|
+
export const nin = (array, err) => pipe((input, context) => {
|
|
29
|
+
const arr = execValueFunction(context.nin ?? array);
|
|
30
30
|
if (!arr.find((x) => equal(input, x)))
|
|
31
31
|
return input;
|
|
32
32
|
throw PipeError.root(err ?? `is in the list: [${arr.join(',')}]`, input);
|
|
33
|
-
}, { schema: () => ({ not: { enum: [...execValueFunction(array)] } }) });
|
|
33
|
+
}, { context: () => ({ nin: array }), schema: (context) => ({ not: { enum: [...execValueFunction(context.nin ?? array)] } }) });
|
|
34
34
|
function itemType(input) {
|
|
35
35
|
return input?.constructor?.name === 'String' ? 'characters' : 'items';
|
|
36
36
|
}
|
|
37
|
-
export const has = (length, err) => pipe((input) => {
|
|
38
|
-
if (input.length === execValueFunction(length))
|
|
37
|
+
export const has = (length, err) => pipe((input, context) => {
|
|
38
|
+
if (input.length === execValueFunction(context.has ?? length))
|
|
39
39
|
return input;
|
|
40
40
|
throw PipeError.root(err ?? `must contain ${length} ${itemType(input)}`, input);
|
|
41
41
|
}, {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
42
|
+
context: () => ({ has: length }),
|
|
43
|
+
schema: (context) => {
|
|
44
|
+
const val = execValueFunction(context.has ?? length);
|
|
45
|
+
return {
|
|
46
|
+
minItems: val,
|
|
47
|
+
maxItems: val,
|
|
48
|
+
minLength: val,
|
|
49
|
+
maxLength: val,
|
|
50
|
+
};
|
|
51
|
+
},
|
|
48
52
|
});
|
|
49
|
-
export const min = (length, err) => pipe((input) => {
|
|
50
|
-
const len = execValueFunction(length);
|
|
53
|
+
export const min = (length, err) => pipe((input, context) => {
|
|
54
|
+
const len = execValueFunction(context.min ?? length);
|
|
51
55
|
if (input.length >= len)
|
|
52
56
|
return input;
|
|
53
57
|
throw PipeError.root(err ?? `must contain ${len} or more ${itemType(input)}`, input);
|
|
54
|
-
}, {
|
|
55
|
-
|
|
56
|
-
|
|
58
|
+
}, {
|
|
59
|
+
context: () => ({ min: length }),
|
|
60
|
+
schema: (context) => {
|
|
61
|
+
const val = execValueFunction(context.min ?? length);
|
|
62
|
+
return { minItems: val, minLength: val };
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
export const max = (length, err) => pipe((input, context) => {
|
|
66
|
+
const len = execValueFunction(context.max ?? length);
|
|
57
67
|
if (input.length <= len)
|
|
58
68
|
return input;
|
|
59
69
|
throw PipeError.root(err ?? `must contain ${len} or less ${itemType(input)}`, input);
|
|
60
|
-
}, {
|
|
70
|
+
}, {
|
|
71
|
+
context: () => ({ max: length }),
|
|
72
|
+
schema: (context) => {
|
|
73
|
+
const val = execValueFunction(context.min ?? length);
|
|
74
|
+
return { maxItems: val, maxLength: val };
|
|
75
|
+
},
|
|
76
|
+
});
|
|
61
77
|
export { inArray as in };
|
|
62
78
|
//# sourceMappingURL=core.js.map
|
package/lib/api/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/api/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAiB,MAAM,oBAAoB,CAAA;AAErE,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,SAAgC,EAAE,GAAG,GAAG,0BAA0B,EAAE,EAAE,CAC/F,IAAI,CAAY,CAAC,KAAK,EAAE,EAAE;IACzB,IAAI,SAAS,CAAC,KAAK,CAAC;QAAE,OAAO,KAAU,CAAA;IACvC,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AACjC,CAAC,EAAE,EAAE,CAAC,CAAA;AAEP,MAAM,CAAC,MAAM,EAAE,GAAG,CAAI,OAAyB,EAAE,GAAY,EAAE,EAAE,CAChE,IAAI,CACH,CAAC,KAAK,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/api/core.ts"],"names":[],"mappings":"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"}
|
package/lib/api/externals.d.ts
CHANGED
package/lib/api/externals.js
CHANGED
package/lib/api/externals.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"externals.js","sourceRoot":"","sources":["../../src/api/externals.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"externals.js","sourceRoot":"","sources":["../../src/api/externals.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA"}
|
package/lib/api/files.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ValueFunction } from '../utils/functions';
|
|
1
2
|
export interface File {
|
|
2
3
|
type: string;
|
|
3
4
|
}
|
|
@@ -5,4 +6,4 @@ export declare const file: <T extends File>(err?: string) => import("./base").Pi
|
|
|
5
6
|
export declare const image: <T extends File>(err?: string) => import("./base").Pipe<T, T, any>;
|
|
6
7
|
export declare const audio: <T extends File>(err?: string) => import("./base").Pipe<T, T, any>;
|
|
7
8
|
export declare const video: <T extends File>(err?: string) => import("./base").Pipe<T, T, any>;
|
|
8
|
-
export declare const fileType: <T extends File>(
|
|
9
|
+
export declare const fileType: <T extends File>(typesFn: ValueFunction<string | string[]>, err?: string) => import("./base").Pipe<T, T, any>;
|
package/lib/api/files.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { pipe, PipeError } from './base';
|
|
2
|
+
import { execValueFunction } from '../utils/functions';
|
|
2
3
|
const isFile = (v) => typeof v === 'object' && !!v && 'type' in v;
|
|
3
4
|
const isMimeType = (str) => /^[a-zA-Z0-9!#$&^_.+-]+\/[a-zA-Z0-9!#$&^_.+-]+$/.test(str);
|
|
4
5
|
export const file = (err = 'is not a recognized file') => pipe((input) => {
|
|
@@ -21,8 +22,9 @@ export const video = (err = 'is not a recognized video file') => pipe((input) =>
|
|
|
21
22
|
return input;
|
|
22
23
|
throw PipeError.root(err, input);
|
|
23
24
|
});
|
|
24
|
-
export const fileType = (
|
|
25
|
+
export const fileType = (typesFn, err = 'is not a supported file') => pipe((input) => {
|
|
25
26
|
if (isFile(input) && isMimeType(input.type)) {
|
|
27
|
+
const types = execValueFunction(typesFn);
|
|
26
28
|
const fileTypes = Array.isArray(types) ? types : [types];
|
|
27
29
|
if (fileTypes.some((type) => input.type === type))
|
|
28
30
|
return input;
|
package/lib/api/files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/api/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/api/files.ts"],"names":[],"mappings":"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"}
|
package/lib/api/junctions.d.ts
CHANGED
|
@@ -3,4 +3,4 @@ export declare const or: <T extends Pipe<any, any, any>[]>(pipes: T) => Pipe<Pip
|
|
|
3
3
|
export declare const and: <T extends Pipe<any, any, any>>(pipes: T[]) => Pipe<PipeInput<T>, PipeOutput<T>, PipeContext<T>>;
|
|
4
4
|
export declare const merge: <T1 extends Pipe<any, any, any>, T2 extends Pipe<any, any, any>>(branch1: T1, branch2: T2) => Pipe<PipeInput<T1> & PipeInput<T2>, PipeOutput<T1> & PipeOutput<T2>, PipeContext<T1> & PipeContext<T2>>;
|
|
5
5
|
export declare const discriminate: <T extends Record<PropertyKey, Pipe<any, any, any>>>(discriminator: (val: PipeInput<T[keyof T]>) => PropertyKey, schemas: T, err?: string) => Pipe<PipeInput<T[keyof T]>, PipeOutput<T[keyof T]>, PipeContext<T[keyof T]>>;
|
|
6
|
-
export declare const fromJson: <T extends Pipe<any, any, any>>(
|
|
6
|
+
export declare const fromJson: <T extends Pipe<any, any, any>>(pipe: T) => Pipe<PipeInput<T>, PipeOutput<T>, PipeContext<T>>;
|
package/lib/api/junctions.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { assert, branch, pipe, PipeError, schema, validate } from './base';
|
|
2
2
|
import { merge as differMerge } from '../utils/differ';
|
|
3
3
|
import { wrapInTryCatch } from '../utils/functions';
|
|
4
4
|
export const or = (pipes) => pipe((input) => {
|
|
@@ -6,41 +6,33 @@ export const or = (pipes) => pipe((input) => {
|
|
|
6
6
|
return input;
|
|
7
7
|
const errors = [];
|
|
8
8
|
for (const [idx, pipe] of Object.entries(pipes)) {
|
|
9
|
-
const validity =
|
|
9
|
+
const validity = validate(pipe, input);
|
|
10
10
|
if (validity.valid)
|
|
11
11
|
return validity.value;
|
|
12
12
|
errors.push(PipeError.path(idx, validity.error, input));
|
|
13
13
|
}
|
|
14
|
-
throw errors
|
|
15
|
-
}, { schema: () => ({ oneOf: pipes.map((branch) => branch
|
|
14
|
+
throw PipeError.rootFrom(errors, input);
|
|
15
|
+
}, { schema: () => ({ oneOf: pipes.map((branch) => schema(branch)) }) });
|
|
16
16
|
export const and = (pipes) => pipe((input) => {
|
|
17
17
|
for (const [idx, pipe] of Object.entries(pipes)) {
|
|
18
|
-
const validity =
|
|
18
|
+
const validity = validate(pipe, input);
|
|
19
19
|
if (!validity.valid)
|
|
20
20
|
throw PipeError.path(idx, validity.error, input);
|
|
21
21
|
input = validity.value;
|
|
22
22
|
}
|
|
23
23
|
return input;
|
|
24
|
-
}, { schema: () => ({ allOf: pipes.map((branch) => branch
|
|
25
|
-
export const merge = (branch1, branch2) => pipe((input) => {
|
|
26
|
-
const validity1 = branch1.validate(input);
|
|
27
|
-
if (!validity1.valid)
|
|
28
|
-
throw validity1.error;
|
|
29
|
-
const validity2 = branch2.validate(input);
|
|
30
|
-
if (!validity2.valid)
|
|
31
|
-
throw validity2.error;
|
|
32
|
-
return differMerge(validity1.value, validity2.value);
|
|
33
|
-
}, { schema: () => ({ allOf: [branch1.toJsonSchema(), branch2.toJsonSchema()] }) });
|
|
24
|
+
}, { schema: () => ({ allOf: pipes.map((branch) => schema(branch)) }) });
|
|
25
|
+
export const merge = (branch1, branch2) => pipe((input) => differMerge(assert(branch1, input), assert(branch2, input)), { schema: () => ({ allOf: [schema(branch1), schema(branch2)] }) });
|
|
34
26
|
export const discriminate = (discriminator, schemas, err = 'doesnt match any of the schema') => pipe((input) => {
|
|
35
27
|
const accessor = wrapInTryCatch(() => discriminator(input));
|
|
36
28
|
if (!schemas[accessor])
|
|
37
29
|
throw PipeError.root(err, input);
|
|
38
|
-
return schemas[accessor]
|
|
30
|
+
return assert(schemas[accessor], input);
|
|
39
31
|
}, {
|
|
40
|
-
schema: () => ({ oneOf: Object.values(schemas).map((
|
|
32
|
+
schema: () => ({ oneOf: Object.values(schemas).map((s) => schema(s)) }),
|
|
41
33
|
});
|
|
42
|
-
export const fromJson = (
|
|
43
|
-
const validity =
|
|
34
|
+
export const fromJson = (pipe) => branch(pipe, (input) => {
|
|
35
|
+
const validity = validate(pipe, input);
|
|
44
36
|
if (validity.valid)
|
|
45
37
|
return validity.value;
|
|
46
38
|
if (input?.constructor?.name !== 'String')
|
|
@@ -48,7 +40,7 @@ export const fromJson = (branch) => makeBranchPipe(branch, (input) => {
|
|
|
48
40
|
const parsed = wrapInTryCatch(() => JSON.parse(input), validity.error);
|
|
49
41
|
if (parsed === validity.error)
|
|
50
42
|
throw validity.error;
|
|
51
|
-
return
|
|
43
|
+
return assert(pipe, parsed);
|
|
52
44
|
}, {
|
|
53
45
|
context: (c) => c,
|
|
54
46
|
schema: (s) => s,
|
package/lib/api/junctions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"junctions.js","sourceRoot":"","sources":["../../src/api/junctions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"junctions.js","sourceRoot":"","sources":["../../src/api/junctions.ts"],"names":[],"mappings":"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"}
|
package/lib/api/optionals.d.ts
CHANGED
|
@@ -6,6 +6,6 @@ export declare const optional: <T extends Pipe<any, any, any>>(branch: T) => Pip
|
|
|
6
6
|
export declare const nullish: <T extends Pipe<any, any, any>>(branch: T) => Pipe<PipeInput<T> | null | undefined, PipeOutput<T> | null | undefined, any>;
|
|
7
7
|
export declare const conditional: <T extends Pipe<any, any, any>>(branch: T, condition: () => boolean) => Pipe<PipeInput<T>, PipeOutput<T>, any>;
|
|
8
8
|
type DefaultValue<T> = ValueFunction<T extends object ? DeepPartial<T> : T>;
|
|
9
|
-
export declare const defaults: <T extends Pipe<any, any, any>>(
|
|
10
|
-
|
|
11
|
-
export {};
|
|
9
|
+
export declare const defaults: <T extends Pipe<any, any, any>>(pipe: T, def: DefaultValue<PipeInput<T>>) => Pipe<PipeInput<T> | undefined, Exclude<PipeOutput<T>, undefined>, any>;
|
|
10
|
+
declare const onCatch: <T extends Pipe<any, any, any>>(pipe: T, def: DefaultValue<PipeInput<T>>) => Pipe<PipeInput<T>, PipeOutput<T>, PipeContext<T>>;
|
|
11
|
+
export { onCatch as catch };
|
package/lib/api/optionals.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { assert, branch, validate } from './base';
|
|
2
2
|
import { execValueFunction } from '../utils/functions';
|
|
3
|
-
const partial = (
|
|
3
|
+
const partial = (pipe, partialCondition, force, config) => branch(pipe, (input) => {
|
|
4
4
|
const isPartial = partialCondition(input);
|
|
5
5
|
if (isPartial)
|
|
6
6
|
return input;
|
|
7
|
-
const validity =
|
|
7
|
+
const validity = validate(pipe, input);
|
|
8
8
|
if (validity.valid)
|
|
9
9
|
return validity.value;
|
|
10
10
|
if (force)
|
|
@@ -27,17 +27,18 @@ export const conditional = (branch, condition) => partial(branch, () => !conditi
|
|
|
27
27
|
schema: (schema) => schema,
|
|
28
28
|
context: (c) => ({ ...c, optional: true }),
|
|
29
29
|
});
|
|
30
|
-
export const defaults = (
|
|
31
|
-
schema: (s) => ({ ...s, default: execValueFunction(def) }),
|
|
32
|
-
context: (c) => ({ ...c, optional: true }),
|
|
30
|
+
export const defaults = (pipe, def) => branch(pipe, (input, context) => assert(pipe, input !== undefined ? input : execValueFunction(context?.defaults ?? def)), {
|
|
31
|
+
schema: (s, c) => ({ ...s, default: execValueFunction(c.defaults ?? def) }),
|
|
32
|
+
context: (c) => ({ ...c, defaults: def, optional: true }),
|
|
33
33
|
});
|
|
34
|
-
|
|
35
|
-
const validity =
|
|
34
|
+
const onCatch = (pipe, def) => branch(pipe, (input, context) => {
|
|
35
|
+
const validity = validate(pipe, input);
|
|
36
36
|
if (validity.valid)
|
|
37
37
|
return validity.value;
|
|
38
|
-
return execValueFunction(def);
|
|
38
|
+
return execValueFunction(context?.catch ?? def);
|
|
39
39
|
}, {
|
|
40
|
-
schema: (s) => ({ ...s, default: execValueFunction(def) }),
|
|
41
|
-
context: (c) => ({ ...c,
|
|
40
|
+
schema: (s, c) => ({ ...s, default: execValueFunction(c.catch ?? def) }),
|
|
41
|
+
context: (c) => ({ ...c, catch: def }),
|
|
42
42
|
});
|
|
43
|
+
export { onCatch as catch };
|
|
43
44
|
//# sourceMappingURL=optionals.js.map
|
package/lib/api/optionals.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optionals.js","sourceRoot":"","sources":["../../src/api/optionals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"optionals.js","sourceRoot":"","sources":["../../src/api/optionals.ts"],"names":[],"mappings":"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"}
|
package/lib/api/records.d.ts
CHANGED
|
@@ -4,9 +4,9 @@ type ObjectPipe<T extends Record<string, Pipe<any, any, any>>> = Pipe<{
|
|
|
4
4
|
}, {
|
|
5
5
|
[K in keyof T]: PipeOutput<T[K]>;
|
|
6
6
|
}, any>;
|
|
7
|
-
export declare const object: <T extends Record<string, Pipe<any, any, any>>>(
|
|
8
|
-
export declare const objectPick: <T extends ObjectPipe<Record<string, Pipe<any, any, any>>>, S extends ReadonlyArray<keyof PipeInput<T> & string>>(
|
|
9
|
-
export declare const objectOmit: <T extends ObjectPipe<Record<string, Pipe<any, any, any>>>, S extends ReadonlyArray<keyof PipeInput<T> & string>>(
|
|
7
|
+
export declare const object: <T extends Record<string, Pipe<any, any, any>>>(pipes: T) => Pipe<{ [K in keyof T]: PipeInput<T[K]>; }, { [K_1 in keyof T]: PipeOutput<T[K_1]>; }, any>;
|
|
8
|
+
export declare const objectPick: <T extends ObjectPipe<Record<string, Pipe<any, any, any>>>, S extends ReadonlyArray<keyof PipeInput<T> & string>>(pipe: T, keys: S) => Pipe<Pick<PipeInput<T>, S[number]>, Pick<PipeOutput<T>, S[number]>, any>;
|
|
9
|
+
export declare const objectOmit: <T extends ObjectPipe<Record<string, Pipe<any, any, any>>>, S extends ReadonlyArray<keyof PipeInput<T> & string>>(pipe: T, keys: S) => Pipe<Omit<PipeInput<T>, S[number]>, Omit<PipeOutput<T>, S[number]>, any>;
|
|
10
10
|
export declare const record: <K extends Pipe<any, PropertyKey, any>, V extends Pipe<any, any, any>>(kPipe: K, vPipe: V) => Pipe<Record<PipeInput<K>, PipeInput<V>>, Record<PipeOutput<K>, PipeOutput<V>>, any>;
|
|
11
11
|
export declare const asMap: <K extends PropertyKey, V>() => Pipe<Record<K, V>, Map<K, V>, any>;
|
|
12
12
|
export {};
|
package/lib/api/records.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
const
|
|
3
|
-
const pipes = context.objectPipes ?? {};
|
|
1
|
+
import { context, branch, pipe, PipeError, schema, validate } from './base';
|
|
2
|
+
export const object = (pipes) => pipe((input, context) => {
|
|
4
3
|
if (typeof input !== 'object' || input === null || Array.isArray(input))
|
|
5
4
|
throw PipeError.root('is not an object', input);
|
|
6
5
|
const obj = {};
|
|
7
6
|
const errors = [];
|
|
8
|
-
for (const key of Object.keys(pipes)) {
|
|
7
|
+
for (const key of context.objectKeys ?? Object.keys(pipes)) {
|
|
8
|
+
if (!(key in pipes))
|
|
9
|
+
continue;
|
|
9
10
|
const value = input[key];
|
|
10
|
-
const validity = pipes[key]
|
|
11
|
+
const validity = validate(pipes[key], value);
|
|
11
12
|
if (!validity.valid)
|
|
12
13
|
errors.push(PipeError.path(key, validity.error, value));
|
|
13
14
|
else
|
|
@@ -16,20 +17,18 @@ const objectPipeFn = (input, context) => {
|
|
|
16
17
|
if (errors.length)
|
|
17
18
|
throw PipeError.rootFrom(errors, input);
|
|
18
19
|
return obj;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
})
|
|
28
|
-
|
|
29
|
-
schema: () => makeObjectSchema(objectPipes),
|
|
30
|
-
context: () => ({ objectPipes }),
|
|
20
|
+
}, {
|
|
21
|
+
schema: () => ({
|
|
22
|
+
type: 'object',
|
|
23
|
+
properties: Object.fromEntries(Object.entries(pipes ?? {}).map(([key, pipe]) => [key, schema(pipe)])),
|
|
24
|
+
required: Object.entries(pipes ?? {})
|
|
25
|
+
.filter(([, pipe]) => !context(pipe).optional)
|
|
26
|
+
.map(([key]) => key),
|
|
27
|
+
additionalProperties: false,
|
|
28
|
+
}),
|
|
29
|
+
context: () => ({ objectKeys: Object.keys(pipes) }),
|
|
31
30
|
});
|
|
32
|
-
export const objectPick = (
|
|
31
|
+
export const objectPick = (pipe, keys) => branch(pipe, pipe.fn, {
|
|
33
32
|
schema: (s) => ({
|
|
34
33
|
...s,
|
|
35
34
|
properties: Object.fromEntries(Object.entries(s.properties ?? {}).filter(([key]) => keys.includes(key))),
|
|
@@ -37,10 +36,10 @@ export const objectPick = (branch, keys) => makeBranchPipe(branch, objectPipeFn,
|
|
|
37
36
|
}),
|
|
38
37
|
context: (c) => ({
|
|
39
38
|
...c,
|
|
40
|
-
|
|
39
|
+
objectKeys: (c.objectKeys ?? []).filter((key) => keys.includes(key)),
|
|
41
40
|
}),
|
|
42
41
|
});
|
|
43
|
-
export const objectOmit = (
|
|
42
|
+
export const objectOmit = (pipe, keys) => branch(pipe, pipe.fn, {
|
|
44
43
|
schema: (s) => ({
|
|
45
44
|
...s,
|
|
46
45
|
properties: Object.fromEntries(Object.entries(s.properties ?? {}).filter(([key]) => !keys.includes(key))),
|
|
@@ -48,7 +47,7 @@ export const objectOmit = (branch, keys) => makeBranchPipe(branch, objectPipeFn,
|
|
|
48
47
|
}),
|
|
49
48
|
context: (c) => ({
|
|
50
49
|
...c,
|
|
51
|
-
|
|
50
|
+
objectKeys: (c.objectKeys ?? []).filter((key) => !keys.includes(key)),
|
|
52
51
|
}),
|
|
53
52
|
});
|
|
54
53
|
export const record = (kPipe, vPipe) => pipe((input) => {
|
|
@@ -57,8 +56,8 @@ export const record = (kPipe, vPipe) => pipe((input) => {
|
|
|
57
56
|
const obj = {};
|
|
58
57
|
const errors = [];
|
|
59
58
|
for (const [k, v] of Object.entries(input)) {
|
|
60
|
-
const kValidity =
|
|
61
|
-
const vValidity =
|
|
59
|
+
const kValidity = validate(kPipe, k);
|
|
60
|
+
const vValidity = validate(vPipe, v);
|
|
62
61
|
if (!kValidity.valid)
|
|
63
62
|
errors.push(PipeError.path(k, kValidity.error, k));
|
|
64
63
|
if (!vValidity.valid)
|
|
@@ -75,8 +74,8 @@ export const record = (kPipe, vPipe) => pipe((input) => {
|
|
|
75
74
|
}, {
|
|
76
75
|
schema: () => ({
|
|
77
76
|
type: 'object',
|
|
78
|
-
propertyNames: kPipe
|
|
79
|
-
additionalProperties: vPipe
|
|
77
|
+
propertyNames: schema(kPipe),
|
|
78
|
+
additionalProperties: schema(vPipe),
|
|
80
79
|
}),
|
|
81
80
|
});
|
|
82
81
|
export const asMap = () => pipe((input) => new Map(Object.entries(input)), {});
|
package/lib/api/records.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"records.js","sourceRoot":"","sources":["../../src/api/records.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"records.js","sourceRoot":"","sources":["../../src/api/records.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAyB,MAAM,EAAE,QAAQ,EAAa,MAAM,QAAQ,CAAA;AAQ7G,MAAM,CAAC,MAAM,MAAM,GAAG,CAAgD,KAAQ,EAAE,EAAE,CACjF,IAAI,CACH,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IAClB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAA;IACxH,MAAM,GAAG,GAAG,EAAS,CAAA;IACrB,MAAM,MAAM,GAAgB,EAAE,CAAA;IAC9B,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5D,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC;YAAE,SAAQ;QAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;QACxB,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;QAC5C,IAAI,CAAC,QAAQ,CAAC,KAAK;YAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;;YACvE,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAA;IAC/B,CAAC;IACD,IAAI,MAAM,CAAC,MAAM;QAAE,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC1D,OAAO,GAAG,CAAA;AACX,CAAC,EACD;IACC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACd,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrG,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;aACnC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;aAC7C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;QACrB,oBAAoB,EAAE,KAAK;KAC3B,CAAC;IACF,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;CACnD,CACD,CAAA;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CACzB,IAAO,EACP,IAAO,EACN,EAAE,CACH,MAAM,CAAwE,IAAI,EAAE,IAAI,CAAC,EAAS,EAAE;IACnG,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACf,GAAG,CAAC;QACJ,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAgB,CAAC,CAAC,CAAC;QACrH,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAgB,CAAC,CAAC;KAC7E,CAAC;IACF,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChB,GAAG,CAAC;QACJ,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAgB,CAAC,CAAC;KACjF,CAAC;CACF,CAAC,CAAA;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,CACzB,IAAO,EACP,IAAO,EACN,EAAE,CACH,MAAM,CAAwE,IAAI,EAAE,IAAI,CAAC,EAAS,EAAE;IACnG,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACf,GAAG,CAAC;QACJ,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAgB,CAAC,CAAC,CAAC;QACtH,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAgB,CAAC,CAAC;KAC9E,CAAC;IACF,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChB,GAAG,CAAC;QACJ,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAgB,CAAC,CAAC;KAClF,CAAC;CACF,CAAC,CAAA;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAuE,KAAQ,EAAE,KAAQ,EAAE,EAAE,CAClH,IAAI,CACH,CAAC,KAAc,EAAE,EAAE;IAClB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,CAAA;IAC1H,MAAM,GAAG,GAAG,EAAY,CAAA;IACxB,MAAM,MAAM,GAAgB,EAAE,CAAA;IAC9B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QACpC,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QACpC,IAAI,CAAC,SAAS,CAAC,KAAK;YAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;QACxE,IAAI,CAAC,SAAS,CAAC,KAAK;YAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;QACxE,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YACxC,IAAI,CAAC,KAAK,SAAS,CAAC,KAAK;gBAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAA;YACxC,GAAG,CAAC,SAAS,CAAC,KAAY,CAAC,GAAG,SAAS,CAAC,KAAK,CAAA;QAC9C,CAAC;IACF,CAAC;IACD,IAAI,MAAM,CAAC,MAAM;QAAE,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC1D,OAAO,GAAU,CAAA;AAClB,CAAC,EACD;IACC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACd,IAAI,EAAE,QAAQ;QACd,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC;QAC5B,oBAAoB,EAAE,MAAM,CAAC,KAAK,CAAC;KACnC,CAAC;CACF,CACD,CAAA;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,GAA6B,EAAE,CACnD,IAAI,CAA+B,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAQ,CAAC,EAAE,EAAE,CAAC,CAAA"}
|
package/lib/api/strings.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { assert, branch, pipe, PipeError } from './base';
|
|
2
2
|
import * as fns from '../utils/functions';
|
|
3
3
|
import { emailRegex, urlRegex } from '../utils/regexes';
|
|
4
4
|
export const email = (err = 'is not a valid email') => pipe((input) => {
|
|
@@ -7,13 +7,13 @@ export const email = (err = 'is not a valid email') => pipe((input) => {
|
|
|
7
7
|
throw PipeError.root(err, input);
|
|
8
8
|
}, { schema: () => ({ format: 'email' }) });
|
|
9
9
|
export const url = (err = 'is not a valid url') => pipe((input) => {
|
|
10
|
-
if (urlRegex
|
|
10
|
+
if (urlRegex.test(input))
|
|
11
11
|
return input;
|
|
12
12
|
throw PipeError.root(err, input);
|
|
13
13
|
}, { schema: () => ({ format: 'uri' }) });
|
|
14
|
-
export const withStrippedHtml = (pipe) =>
|
|
14
|
+
export const withStrippedHtml = (pipe) => branch(pipe, (input) => {
|
|
15
15
|
const stripped = fns.stripHTML(input);
|
|
16
|
-
pipe
|
|
16
|
+
assert(pipe, stripped);
|
|
17
17
|
return input;
|
|
18
18
|
}, {
|
|
19
19
|
context: (c) => c,
|
package/lib/api/strings.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strings.js","sourceRoot":"","sources":["../../src/api/strings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"strings.js","sourceRoot":"","sources":["../../src/api/strings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAQ,IAAI,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAC9D,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEvD,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,sBAAsB,EAAE,EAAE,CACrD,IAAI,CACH,CAAC,KAAK,EAAE,EAAE;IACT,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACxC,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AACjC,CAAC,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CACvC,CAAA;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,oBAAoB,EAAE,EAAE,CACjD,IAAI,CACH,CAAC,KAAK,EAAE,EAAE;IACT,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACtC,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AACjC,CAAC,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CACrC,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAA+B,EAAE,EAAE,CACnE,MAAM,CACL,IAAI,EACJ,CAAC,KAAK,EAAE,EAAE;IACT,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IACrC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IACtB,OAAO,KAAK,CAAA;AACb,CAAC,EACD;IACC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACjB,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;CAChB,CACD,CAAA;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,IAAI,CAAsB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;AAErF,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,IAAI,CAAsB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAA;AAE/F,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,IAAI,CAAsB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAA;AAE/F,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,IAAI,CAAsB,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;AAElG,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,IAAI,CAAsB,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;AAElG,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,IAAI,CAAsB,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA"}
|
package/lib/api/times.js
CHANGED
|
@@ -10,18 +10,18 @@ export const time = (err = 'is not a valid datetime') => pipe((input) => {
|
|
|
10
10
|
}
|
|
11
11
|
throw PipeError.root(err, input);
|
|
12
12
|
}, { schema: () => ({ oneOf: [{ type: 'string', format: 'date-time' }, { type: 'integer' }] }) });
|
|
13
|
-
export const after = (compare, err) => pipe((input) => {
|
|
14
|
-
const compareDate = new Date(execValueFunction(compare));
|
|
13
|
+
export const after = (compare, err) => pipe((input, context) => {
|
|
14
|
+
const compareDate = new Date(execValueFunction(context?.after ?? compare));
|
|
15
15
|
if (input > compareDate)
|
|
16
16
|
return input;
|
|
17
17
|
throw PipeError.root(err ?? `is not later than ${compareDate.toString()}`, input);
|
|
18
|
-
});
|
|
19
|
-
export const before = (compare, err) => pipe((input) => {
|
|
20
|
-
const compareDate = new Date(execValueFunction(compare));
|
|
18
|
+
}, { context: () => ({ after: compare }) });
|
|
19
|
+
export const before = (compare, err) => pipe((input, context) => {
|
|
20
|
+
const compareDate = new Date(execValueFunction(context?.before ?? compare));
|
|
21
21
|
if (input < compareDate)
|
|
22
22
|
return input;
|
|
23
23
|
throw PipeError.root(err ?? `is not earlier than ${compareDate.toString()}`, input);
|
|
24
|
-
});
|
|
24
|
+
}, { context: () => ({ before: compare }) });
|
|
25
25
|
export const asStamp = () => pipe((input) => input.valueOf(), { schema: () => ({ type: 'integer', oneOf: undefined }) });
|
|
26
26
|
export const asISOString = () => pipe((input) => input.toISOString(), { schema: () => ({ type: 'string', format: 'date-time', oneOf: undefined }) });
|
|
27
27
|
//# sourceMappingURL=times.js.map
|
package/lib/api/times.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"times.js","sourceRoot":"","sources":["../../src/api/times.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,iBAAiB,EAAiB,MAAM,oBAAoB,CAAA;AAIrE,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG,yBAAyB,EAAE,EAAE,CACvD,IAAI,CACH,CAAC,KAAK,EAAE,EAAE;IACT,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,KAAK,CAAA;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5D,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAAE,OAAO,IAAI,CAAA;IACxC,CAAC;IACD,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AACjC,CAAC,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,CAC7F,CAAA;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,OAAgC,EAAE,GAAY,EAAE,EAAE,CACvE,IAAI,
|
|
1
|
+
{"version":3,"file":"times.js","sourceRoot":"","sources":["../../src/api/times.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,iBAAiB,EAAiB,MAAM,oBAAoB,CAAA;AAIrE,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG,yBAAyB,EAAE,EAAE,CACvD,IAAI,CACH,CAAC,KAAK,EAAE,EAAE;IACT,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,KAAK,CAAA;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5D,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAAE,OAAO,IAAI,CAAA;IACxC,CAAC;IACD,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AACjC,CAAC,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,CAC7F,CAAA;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,OAAgC,EAAE,GAAY,EAAE,EAAE,CACvE,IAAI,CACH,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IAClB,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC,CAAC,CAAA;IAC1E,IAAI,KAAK,GAAG,WAAW;QAAE,OAAO,KAAK,CAAA;IACrC,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,qBAAqB,WAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,CAAC,CAAA;AAClF,CAAC,EACD,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CACvC,CAAA;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAgC,EAAE,GAAY,EAAE,EAAE,CACxE,IAAI,CACH,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IAClB,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,CAAC,CAAA;IAC3E,IAAI,KAAK,GAAG,WAAW;QAAE,OAAO,KAAK,CAAA;IACrC,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,uBAAuB,WAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,CAAC,CAAA;AACpF,CAAC,EACD,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CACxC,CAAA;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAoB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAA;AAC3I,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE,CAC/B,IAAI,CAAoB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAA"}
|
|
@@ -27,7 +27,7 @@ export const trimToLength = (body, length) => {
|
|
|
27
27
|
return `${body.slice(0, indexToTrim)}...`;
|
|
28
28
|
};
|
|
29
29
|
export const extractUrls = (text) => {
|
|
30
|
-
const urls = text.match(urlRegex
|
|
30
|
+
const urls = text.match(urlRegex) || [];
|
|
31
31
|
return urls
|
|
32
32
|
.filter((url, index) => urls.indexOf(url) === index)
|
|
33
33
|
.map((url) => {
|
|
@@ -38,7 +38,7 @@ export const extractUrls = (text) => {
|
|
|
38
38
|
};
|
|
39
39
|
});
|
|
40
40
|
};
|
|
41
|
-
export const formatNumber = (num, dp) => Intl.NumberFormat('en', { notation: 'compact', ...(dp ? { maximumFractionDigits: dp } : {}) }).format(v.number()
|
|
41
|
+
export const formatNumber = (num, dp) => Intl.NumberFormat('en', { notation: 'compact', ...(dp ? { maximumFractionDigits: dp } : {}) }).format(v.validate(v.number(), num).valid ? num : 0);
|
|
42
42
|
export const pluralize = (count, singular, plural) => (Math.round(count) === 1 ? singular : plural);
|
|
43
43
|
export const getRandomValue = () => Date.now() + Math.random().toString(36);
|
|
44
44
|
export const groupBy = (array, func) => array.reduce((acc, cur) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/functions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,WAAW,CAAA;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE/C,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE;IAC1C,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACpD,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;IACtB,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACjE,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC/C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE;IACzC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACpD,OAAO,CACN,IAAI;QACH,EAAE,QAAQ,EAAE;QACZ,EAAE,IAAI,EAAE;SACP,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,EAAE,CAC/B,CAAA;AACF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,MAAc,EAAE,EAAE;IAC5D,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IAEpD,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;IACtB,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM;QAAE,OAAO,IAAI,CAAA;IAEtC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAC9C,MAAM,WAAW,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAA;IAC/D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,KAAK,CAAA;AAC1C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/functions/index.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/geohash.js
CHANGED
|
@@ -47,7 +47,7 @@ function dichotomy(min, max, bits) {
|
|
|
47
47
|
return { value, interval: res.error * 2 };
|
|
48
48
|
}
|
|
49
49
|
function parseCoords(hash) {
|
|
50
|
-
hash = v.string().pipe(v.min(1))
|
|
50
|
+
hash = v.assert(v.string().pipe(v.min(1)), hash);
|
|
51
51
|
const base10 = baseXToBase10(hash, 32, Base32Chars);
|
|
52
52
|
const base2 = base10ToBaseX(base10, 2, Base2Chars).padStart(hash.length * 5, '0');
|
|
53
53
|
return base2.split('').reduce((acc, cur, index) => {
|
|
@@ -72,7 +72,7 @@ export function decode(hash) {
|
|
|
72
72
|
return [lat, long];
|
|
73
73
|
}
|
|
74
74
|
export function encode(coords) {
|
|
75
|
-
coords = v.tuple([v.number(), v.number()])
|
|
75
|
+
coords = v.assert(v.tuple([v.number(), v.number()]), coords);
|
|
76
76
|
let idx = 0, bit = 0, evenBit = true, geohash = '';
|
|
77
77
|
const mins = [-90, -180], maxs = [90, 180];
|
|
78
78
|
while (geohash.length < 18) {
|
package/lib/utils/geohash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geohash.js","sourceRoot":"","sources":["../../src/utils/geohash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,MAAM,WAAW,GAAG,kCAAkC,CAAA;AACtD,MAAM,UAAU,GAAG,IAAI,CAAA;AAEvB,SAAS,aAAa,CAAC,GAAW,EAAE,IAAY,EAAE,KAAa;IAC9D,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAClC,KAAK;SACH,WAAW,EAAE;SACb,KAAK,CAAC,EAAE,CAAC;SACT,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CACvC,CAAA;IACD,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,IAAI,GAAG,KAAK,CAAC;QAAE,OAAO,GAAG,CAAA;IACzB,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACrC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAA;IAC7B,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC/B,CAAC;AAED,SAAS,aAAa,CAAC,GAAW,EAAE,IAAY,EAAE,KAAa;IAC9D,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAClC,KAAK;SACH,WAAW,EAAE;SACb,KAAK,CAAC,EAAE,CAAC;SACT,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CACvC,CAAA;IAED,OAAO,GAAG;SACR,WAAW,EAAE;SACb,KAAK,CAAC,EAAE,CAAC;SACT,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAChC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC9B,OAAO,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC,CAAA;IAC1D,CAAC,EAAE,CAAC,CAAC,CAAA;AACP,CAAC;AAED,SAAS,SAAS,CAAC,GAAW,EAAE,GAAW,EAAE,IAAY;IACxD,MAAM,GAAG,GAAG,IAAI;SACd,KAAK,CAAC,EAAE,CAAC;SACT,MAAM,CAAC,EAAE,CAAC;SACV,MAAM,CACN,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACZ,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3B,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QAC7B,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;QACb,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;QACjB,IAAI,GAAG,KAAK,GAAG;YAAE,GAAG,GAAG,GAAG,CAAA;;YACrB,GAAG,GAAG,GAAG,CAAA;QACd,OAAO,GAAG,CAAA;IACX,CAAC,EACD,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CACpB,CAAA;IACF,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAA;IACjC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAA;AAC1C,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAChC,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"geohash.js","sourceRoot":"","sources":["../../src/utils/geohash.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/regexes.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const urlRegex:
|
|
1
|
+
export declare const urlRegex: RegExp;
|
|
2
2
|
export declare const emailRegex: RegExp;
|
package/lib/utils/regexes.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import url from 'url-regex-safe';
|
|
2
|
-
export const urlRegex = url;
|
|
2
|
+
export const urlRegex = url();
|
|
3
3
|
export const emailRegex = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
|
4
4
|
//# sourceMappingURL=regexes.js.map
|
package/lib/utils/regexes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"regexes.js","sourceRoot":"","sources":["../../src/utils/regexes.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,gBAAgB,CAAA;AAEhC,MAAM,CAAC,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"regexes.js","sourceRoot":"","sources":["../../src/utils/regexes.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,gBAAgB,CAAA;AAEhC,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAY,CAAA;AACvC,MAAM,CAAC,MAAM,UAAU,GACtB,uJAAuJ,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "valleyed",
|
|
3
|
-
"version": "4.5.
|
|
3
|
+
"version": "4.5.4",
|
|
4
4
|
"description": "A lightweight package with definitions for various validation rules, and helper services to consume said rules.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -17,9 +17,7 @@
|
|
|
17
17
|
"devDependencies": {
|
|
18
18
|
"@commitlint/cli": "^19.8.0",
|
|
19
19
|
"@commitlint/config-conventional": "^19.8.0",
|
|
20
|
-
"@k11/
|
|
21
|
-
"@k11/prettier-config": "^0.1.0",
|
|
22
|
-
"@k11/ts-config": "^0.1.5",
|
|
20
|
+
"@k11/configs": "^0.1.0",
|
|
23
21
|
"@types/node": "^24.0.0",
|
|
24
22
|
"eslint": "^9.24.0",
|
|
25
23
|
"husky": "^9.1.7",
|