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 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)
@@ -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('is not an array', input);
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 = pipeSchema.validate(i);
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.toJsonSchema() }) });
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('is not an array', input);
20
- if (pipes.length !== input.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 = input.map((i, idx) => {
25
- const validitity = pipes[idx].validate(i);
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, i);
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.toJsonSchema()),
34
+ items: pipes.map((pipe) => schema(pipe)),
37
35
  minItems: pipes.length,
38
36
  maxItems: pipes.length,
39
37
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"arrays.js","sourceRoot":"","sources":["../../src/api/arrays.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arrays.js","sourceRoot":"","sources":["../../src/api/arrays.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,23 @@
1
- import { PipeFn, Context, JsonSchemaBuilder, Pipe } from './types';
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 makeBranchPipe<P extends Pipe<any, any, any>, I, O, C>(branch: P, fn: PipeFn<I, O, C>, config: {
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>;
@@ -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
- let meta = {};
4
- const node = {
46
+ const piper = {
5
47
  fn: func,
6
48
  context: () => config.context?.() ?? {},
7
- schema: () => ({ ...config.schema?.(), ...meta }),
8
- };
9
- const piper = {
10
- prev: undefined,
11
- node,
12
- pipe: (...entries) => entries.reduce((acc, cur) => {
13
- const p = typeof cur === 'function' ? pipe(cur, config) : cur;
14
- p.prev = acc;
15
- return p;
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 = piper.validate(value);
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 gather(pipe) {
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(branch.context()),
83
- schema: () => ({ ...config.schema(branch.toJsonSchema()) }),
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":"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"}
1
+ {"version":3,"file":"pipes.js","sourceRoot":"","sources":["../../../src/api/base/pipes.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,27 @@
1
1
  import { StandardSchemaV1 } from '@standard-schema/spec';
2
- import { PipeError } from './errors';
3
- import { JsonSchema } from '../../utils/types';
4
- export type PipeFn<I, O = I, C = any> = (input: I, context: Context<C>) => O;
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
- objectPipes?: Record<string, Pipe<any, any, any>>;
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 node: PipeNode;
29
- prev?: Pipe<any, any, any>;
30
- pipe: PipeChain<I, O, C>;
31
- parse(input: unknown): O;
32
- validate(input: unknown): {
33
- value: O;
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
- schema: () => ({
43
- minItems: execValueFunction(length),
44
- maxItems: execValueFunction(length),
45
- minLength: execValueFunction(length),
46
- maxLength: execValueFunction(length),
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
- }, { schema: () => ({ minItems: execValueFunction(execValueFunction(length)), minLength: execValueFunction(length) }) });
55
- export const max = (length, err) => pipe((input) => {
56
- const len = execValueFunction(length);
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
- }, { schema: () => ({ maxItems: execValueFunction(length), maxLength: execValueFunction(length) }) });
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
@@ -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;IACT,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IACvC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;QAAE,OAAO,KAAU,CAAA;IAC3D,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,mBAAmB,IAAI,EAAE,EAAE,KAAK,CAAC,CAAA;AAC9D,CAAC,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CACzD,CAAA;AAEF,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAA;AAEpB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAI,OAAyB,EAAE,GAAY,EAAE,EAAE,CAChE,IAAI,CACH,CAAC,KAAK,EAAE,EAAE;IACT,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IACvC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAU,CAAA;IAC5D,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,eAAe,IAAI,EAAE,EAAE,KAAK,CAAC,CAAA;AAC1D,CAAC,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAClE,CAAA;AAEF,MAAM,OAAO,GAAG,CAAI,KAAmC,EAAE,GAAY,EAAE,EAAE,CACxE,IAAI,CACH,CAAC,KAAK,EAAE,EAAE;IACT,MAAM,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACpC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAAE,OAAO,KAAU,CAAA;IACvD,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,wBAAwB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AAC7E,CAAC,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAC3D,CAAA;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,CAAI,KAAmC,EAAE,GAAY,EAAE,EAAE,CAC3E,IAAI,CACH,CAAC,KAAK,EAAE,EAAE;IACT,MAAM,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACpC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAAE,OAAO,KAAU,CAAA;IACxD,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,oBAAoB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AACzE,CAAC,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CACpE,CAAA;AAEF,SAAS,QAAQ,CAAC,KAAc;IAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAA;AACtE,CAAC;AAED,MAAM,CAAC,MAAM,GAAG,GAAG,CAA+B,MAA6B,EAAE,GAAY,EAAE,EAAE,CAChG,IAAI,CACH,CAAC,KAAK,EAAE,EAAE;IACT,IAAI,KAAK,CAAC,MAAM,KAAK,iBAAiB,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAA;IAC5D,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,gBAAgB,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;AAChF,CAAC,EACD;IACC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACd,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC;QACnC,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC;QACnC,SAAS,EAAE,iBAAiB,CAAC,MAAM,CAAC;QACpC,SAAS,EAAE,iBAAiB,CAAC,MAAM,CAAC;KACpC,CAAC;CACF,CACD,CAAA;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,CAA+B,MAA6B,EAAE,GAAY,EAAE,EAAE,CAChG,IAAI,CACH,CAAC,KAAK,EAAE,EAAE;IACT,MAAM,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;IACrC,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,KAAK,CAAA;IACrC,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,gBAAgB,GAAG,YAAY,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;AACrF,CAAC,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CACpH,CAAA;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,CAA+B,MAA6B,EAAE,GAAY,EAAE,EAAE,CAChG,IAAI,CACH,CAAC,KAAK,EAAE,EAAE;IACT,MAAM,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;IACrC,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,KAAK,CAAA;IACrC,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,gBAAgB,GAAG,YAAY,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;AACrF,CAAC,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CACjG,CAAA;AAEF,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,CAAA"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/api/core.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
+ export * from './base';
1
2
  export * from './arrays';
2
- export { pipe } from './base';
3
3
  export * from './coerce';
4
4
  export * from './core';
5
5
  export * from './files';
@@ -1,5 +1,5 @@
1
+ export * from './base';
1
2
  export * from './arrays';
2
- export { pipe } from './base';
3
3
  export * from './coerce';
4
4
  export * from './core';
5
5
  export * from './files';
@@ -1 +1 @@
1
- {"version":3,"file":"externals.js","sourceRoot":"","sources":["../../src/api/externals.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,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"}
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"}
@@ -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>(types: string | string[], err?: string) => import("./base").Pipe<T, T, any>;
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 = (types, err = 'is not a supported file') => pipe((input) => {
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;
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/api/files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/api/files.ts"],"names":[],"mappings":"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"}
@@ -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>>(branch: T) => Pipe<PipeInput<T>, PipeOutput<T>, PipeContext<T>>;
6
+ export declare const fromJson: <T extends Pipe<any, any, any>>(pipe: T) => Pipe<PipeInput<T>, PipeOutput<T>, PipeContext<T>>;
@@ -1,4 +1,4 @@
1
- import { makeBranchPipe, pipe, PipeError } from './base';
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 = pipe.validate(input);
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[0];
15
- }, { schema: () => ({ oneOf: pipes.map((branch) => branch.toJsonSchema()) }) });
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 = pipe.validate(input);
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.toJsonSchema()) }) });
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].parse(input);
30
+ return assert(schemas[accessor], input);
39
31
  }, {
40
- schema: () => ({ oneOf: Object.values(schemas).map((schema) => schema.toJsonSchema()) }),
32
+ schema: () => ({ oneOf: Object.values(schemas).map((s) => schema(s)) }),
41
33
  });
42
- export const fromJson = (branch) => makeBranchPipe(branch, (input) => {
43
- const validity = branch.validate(input);
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 branch.parse(parsed);
43
+ return assert(pipe, parsed);
52
44
  }, {
53
45
  context: (c) => c,
54
46
  schema: (s) => s,
@@ -1 +1 @@
1
- {"version":3,"file":"junctions.js","sourceRoot":"","sources":["../../src/api/junctions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"junctions.js","sourceRoot":"","sources":["../../src/api/junctions.ts"],"names":[],"mappings":"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"}
@@ -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>>(branch: T, def: DefaultValue<PipeInput<T>>) => Pipe<PipeInput<T> | undefined, Exclude<PipeOutput<T>, undefined>, any>;
10
- export declare const defaultsOnFail: <T extends Pipe<any, any, any>>(branch: T, def: DefaultValue<PipeInput<T>>) => Pipe<PipeInput<T>, PipeOutput<T>, PipeContext<T>>;
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 };
@@ -1,10 +1,10 @@
1
- import { makeBranchPipe } from './base';
1
+ import { assert, branch, validate } from './base';
2
2
  import { execValueFunction } from '../utils/functions';
3
- const partial = (branch, partialCondition, force, config) => makeBranchPipe(branch, (input) => {
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 = branch.validate(input);
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 = (branch, def) => makeBranchPipe(branch, (input) => branch.parse(input !== undefined ? input : execValueFunction(def)), {
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
- export const defaultsOnFail = (branch, def) => makeBranchPipe(branch, (input) => {
35
- const validity = branch.validate(input);
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, optional: true }),
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
@@ -1 +1 @@
1
- {"version":3,"file":"optionals.js","sourceRoot":"","sources":["../../src/api/optionals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"optionals.js","sourceRoot":"","sources":["../../src/api/optionals.ts"],"names":[],"mappings":"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"}
@@ -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>>>(objectPipes: 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>>(branch: 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>>(branch: T, keys: S) => Pipe<Omit<PipeInput<T>, S[number]>, Omit<PipeOutput<T>, S[number]>, any>;
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 {};
@@ -1,13 +1,14 @@
1
- import { makeBranchPipe, pipe, PipeError } from './base';
2
- const objectPipeFn = (input, context) => {
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].validate(value);
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
- const makeObjectSchema = (objectPipes) => ({
21
- type: 'object',
22
- properties: Object.fromEntries(Object.entries(objectPipes ?? {}).map(([key, pipe]) => [key, pipe.toJsonSchema()])),
23
- required: Object.entries(objectPipes ?? {})
24
- .filter(([, pipe]) => !pipe.context().optional)
25
- .map(([key]) => key),
26
- additionalProperties: false,
27
- });
28
- export const object = (objectPipes) => pipe(objectPipeFn, {
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 = (branch, keys) => makeBranchPipe(branch, objectPipeFn, {
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
- objectPipes: Object.fromEntries(Object.entries(c.objectPipes ?? {}).filter(([key]) => keys.includes(key))),
39
+ objectKeys: (c.objectKeys ?? []).filter((key) => keys.includes(key)),
41
40
  }),
42
41
  });
43
- export const objectOmit = (branch, keys) => makeBranchPipe(branch, objectPipeFn, {
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
- objectPipes: Object.fromEntries(Object.entries(c.objectPipes ?? {}).filter(([key]) => !keys.includes(key))),
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 = kPipe.validate(k);
61
- const vValidity = vPipe.validate(v);
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.toJsonSchema(),
79
- additionalProperties: vPipe.toJsonSchema(),
77
+ propertyNames: schema(kPipe),
78
+ additionalProperties: schema(vPipe),
80
79
  }),
81
80
  });
82
81
  export const asMap = () => pipe((input) => new Map(Object.entries(input)), {});
@@ -1 +1 @@
1
- {"version":3,"file":"records.js","sourceRoot":"","sources":["../../src/api/records.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"records.js","sourceRoot":"","sources":["../../src/api/records.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { makeBranchPipe, pipe, PipeError } from './base';
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().test(input))
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) => makeBranchPipe(pipe, (input) => {
14
+ export const withStrippedHtml = (pipe) => branch(pipe, (input) => {
15
15
  const stripped = fns.stripHTML(input);
16
- pipe.parse(stripped);
16
+ assert(pipe, stripped);
17
17
  return input;
18
18
  }, {
19
19
  context: (c) => c,
@@ -1 +1 @@
1
- {"version":3,"file":"strings.js","sourceRoot":"","sources":["../../src/api/strings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,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,EAAE,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,KAAK,EAAE,CAAC,EAAE,CACrC,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAA+B,EAAE,EAAE,CACnE,cAAc,CACb,IAAI,EACJ,CAAC,KAAK,EAAE,EAAE;IACT,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IACrC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IACpB,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"}
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
@@ -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,CAAkB,CAAC,KAAK,EAAE,EAAE;IAC/B,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAA;IACxD,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,CAAC,CAAA;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAgC,EAAE,GAAY,EAAE,EAAE,CACxE,IAAI,CAAkB,CAAC,KAAK,EAAE,EAAE;IAC/B,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAA;IACxD,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,CAAC,CAAA;AAEH,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"}
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().validate(num).valid ? num : 0);
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,EAAE,CAAC,IAAK,EAAe,CAAA;IACvD,OAAO,IAAI;SACT,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC;SACnD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACZ,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;QAChB,OAAO;YACN,QAAQ,EAAE,GAAG;YACb,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;SACjD,CAAA;IACF,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAW,EAAE,EAAE,CACxD,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CACpG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACxC,CAAA;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,QAAgB,EAAE,MAAc,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;AAE3H,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;AAE3E,MAAM,CAAC,MAAM,OAAO,GAAG,CAAuC,KAAkB,EAAE,IAA4B,EAAE,EAAE,CACjH,KAAK,CAAC,MAAM,CACX,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACZ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;IACrB,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;IACjD,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;;QAC7C,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAChC,OAAO,GAAG,CAAA;AACX,CAAC,EACD,EAAuC,CACF,CAAA;AAEvC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAA;AAE1F,MAAM,CAAC,MAAM,UAAU,GAAG,CAAI,KAAU,EAAE,IAAO,EAAE,MAAqB,EAAE,WAAsC,EAAE,GAAG,GAAG,KAAK,EAAE,EAAE;IAChI,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IAC1E,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC1H,IAAI,aAAa,KAAK,CAAC,CAAC,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;QACrD,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;QACpC,OAAO,KAAK,CAAA;IACb,CAAC;IACD,IAAI,aAAa,KAAK,CAAC,CAAC,IAAI,aAAa,KAAK,KAAK;QAAE,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAA;IACnF,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;SACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;SACxC,CAAC;QACL,MAAM,iBAAiB,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAA;QACpE,IAAI,iBAAiB;YAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;;YAC9D,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,CAAC;IACD,OAAO,KAAK,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAA;AAErF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AAE1H,MAAM,CAAC,MAAM,eAAe,GAAG,CAAO,UAAuB,EAAE,CAAS,EAAE,EAAE;IAC3E,MAAM,OAAO,GAAG,EAAc,CAAA;IAC9B,MAAM,aAAa,GAAG,EAA6B,CAAA;IAEnD,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;QACjE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;QAC5D,IAAI,MAAM,IAAI,aAAa;YAAE,SAAQ;QACrC,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;QAC5B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACrB,CAAC;IAED,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;AAC7C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAO,KAAkB,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAA;AAEpG,MAAM,CAAC,MAAM,UAAU,GAAG,CAAI,GAAQ,EAAE,IAAY,EAAE,EAAE;IACvD,MAAM,MAAM,GAAU,EAAE,CAAA;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI;QAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IAC9E,OAAO,MAAM,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAI,EAAW,EAAE,YAAgB,EAAE,EAAE;IAClE,IAAI,CAAC;QACJ,OAAO,EAAE,EAAE,CAAA;IACZ,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,YAAY,CAAA;IACpB,CAAC;AACF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAAE,MAAc,EAAE,EAAE;IAClE,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACjC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAEnC,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,CAAC,CAAA;IAC9B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,CAAA;IAEnD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE,CAAA;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;QACxC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACzE,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAChC,CAAC;IAED,IAAI,gBAAgB,GAAG,CAAC,CAAA;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;QACzC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAErE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACf,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;YACnC,gBAAgB,EAAE,CAAA;QACnB,CAAC;IACF,CAAC;IAED,OAAO,CAAC,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AACrE,CAAC,CAAA;AAGD,MAAM,UAAU,iBAAiB,CAAI,GAAqB;IACzD,OAAO,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC,CAAE,GAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;AACxD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/functions/index.ts"],"names":[],"mappings":"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"}
@@ -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)).parse(hash);
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()]).parse(coords);
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) {
@@ -1 +1 @@
1
- {"version":3,"file":"geohash.js","sourceRoot":"","sources":["../../src/utils/geohash.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geohash.js","sourceRoot":"","sources":["../../src/utils/geohash.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const urlRegex: () => RegExp;
1
+ export declare const urlRegex: RegExp;
2
2
  export declare const emailRegex: RegExp;
@@ -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
@@ -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,GAAiB,GAAG,CAAA;AACzC,MAAM,CAAC,MAAM,UAAU,GACtB,uJAAuJ,CAAA"}
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",
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/eslint-config": "^0.1.6",
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",