@duplojs/utils 1.5.2 → 1.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.
@@ -41,7 +41,7 @@ export interface ArrayGroupFunctionParams {
41
41
  output: typeof groupOutput;
42
42
  }
43
43
  export type ArrayGroupResult<GenericOutput extends ArrayGroupFunctionOutput> = SimplifyTopLevel<{
44
- [Output in GenericOutput as Output["group"]]?: Output["value"][];
44
+ readonly [Output in GenericOutput as Output["group"]]?: readonly [Output["value"], ...Output["value"][]];
45
45
  }>;
46
46
  /**
47
47
  * Groups elements into an object by a group name.
@@ -239,7 +239,7 @@ export type Boolean = ReturnType<typeof Boolean["createWithUnknownOrThrow"]>;
239
239
  * @namespace C
240
240
  *
241
241
  */
242
- export declare const Date: PrimitiveHandler<DDate.TheDate, DDate.TheDate | globalThis.Date | `date${number}-` | `date${number}+`>;
242
+ export declare const Date: PrimitiveHandler<DDate.TheDate, `date${number}-` | `date${number}+` | DDate.TheDate | globalThis.Date>;
243
243
  export type Date = ReturnType<typeof Date["createWithUnknownOrThrow"]>;
244
244
  /**
245
245
  * Business primitive for duration values (`TheTime`).
@@ -1,6 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var escapeRegExp = require('./escapeRegExp.cjs');
4
+ var theTime = require('../date/theTime.cjs');
5
+ var theDate = require('../date/theDate.cjs');
4
6
 
5
7
  const separator = "/*\\";
6
8
  const firstElementInPathRegex = new RegExp(`^((?:(?!${escapeRegExp.escapeRegExp(separator)}).)*)(?:${escapeRegExp.escapeRegExp(separator)})?`);
@@ -17,9 +19,18 @@ class TheFormData extends FormData {
17
19
  }
18
20
  static *toFlatEntries(value, path) {
19
21
  if (typeof value === "string"
20
- || value instanceof File) {
22
+ || value instanceof theTime.TheTime
23
+ || value instanceof theDate.TheDate
24
+ || typeof value === "number"
25
+ || typeof value === "boolean") {
26
+ yield [path ?? "", value.toString()];
27
+ }
28
+ else if (value instanceof File) {
21
29
  yield [path ?? "", value];
22
30
  }
31
+ else if (value === null) {
32
+ yield [path ?? "", "null"];
33
+ }
23
34
  else if (value === undefined) {
24
35
  return;
25
36
  }
@@ -83,6 +94,9 @@ class TheFormData extends FormData {
83
94
  return new TheFormData(inputValues);
84
95
  }
85
96
  }
97
+ /**
98
+ * {@include common/createFormData/index.md}
99
+ */
86
100
  function createFormData(inputValues) {
87
101
  return TheFormData.new(inputValues);
88
102
  }
@@ -1,11 +1,69 @@
1
- type EligibleFormDataValue = (string | File | undefined | {
1
+ import * as DDate from "../date";
2
+ export type EligibleFormDataValue = (boolean | number | null | string | File | undefined | DDate.TheDate | DDate.TheTime | {
2
3
  [key: string]: EligibleFormDataValue;
3
4
  } | EligibleFormDataValue[]);
4
5
  export declare class TheFormData<GenericValues extends Record<string, EligibleFormDataValue>> extends FormData {
5
6
  readonly inputValues: GenericValues;
6
7
  private constructor();
7
- static toFlatEntries(value: EligibleFormDataValue, path?: string): Iterable<[string, string | File]>;
8
+ static toFlatEntries(value: EligibleFormDataValue, path?: string): Iterable<[string, string | File], void>;
8
9
  static fromEntries(iterable: Iterable<[string, unknown]>, arrayMaxIndex: number): object;
9
10
  }
11
+ /**
12
+ * Creates an extended `FormData` instance from nested values and provides helpers to flatten or rebuild entries.
13
+ *
14
+ * **Supported call styles:**
15
+ * - Classic: `createFormData(inputValues)` -> returns a `TheFormData` instance
16
+ *
17
+ * The returned instance extends native `FormData` and stores the original object in `inputValues`.
18
+ * Supported values are `string`, `File`, `boolean`, `number`, `null`, `undefined`, `DDate.TheDate`, `DDate.TheTime`, objects, and arrays.
19
+ * At flatten time, non-`File` values are serialized to strings (`null` becomes `"null"`).
20
+ * For backend reconstruction, use `TheFormData.fromEntries(...)` to rebuild nested objects from flattened form-data keys.
21
+ *
22
+ * ```ts
23
+ * const created = createFormData(
24
+ * {
25
+ * profile: {
26
+ * name: "Ada",
27
+ * tags: ["core", "utils"],
28
+ * },
29
+ * enabled: true,
30
+ * retryCount: 2,
31
+ * optionalValue: null,
32
+ * createdDate: DDate.createOrThrow(1735689600000),
33
+ * createdTime: DDate.createTimeOrThrow(45000000),
34
+ * },
35
+ * );
36
+ * const flattenedName = created.get("profile/*\\name");
37
+ * // flattenedName: "Ada"
38
+ * const flattenedEnabled = created.get("enabled");
39
+ * // flattenedEnabled: "true"
40
+ * const flattenedNull = created.get("optionalValue");
41
+ * // flattenedNull: "null"
42
+ *
43
+ * const flatEntries = Array.from(
44
+ * TheFormData.toFlatEntries({
45
+ * tags: ["core", "utils"],
46
+ * time: DDate.createTimeOrThrow(31500000),
47
+ * }),
48
+ * );
49
+ * // flatEntries: [["tags/*\\[0]", "core"], ["tags/*\\[1]", "utils"], ["time", "time31500000+"]]
50
+ *
51
+ * const rebuilt = TheFormData.fromEntries(
52
+ * [
53
+ * ["profile/*\\name", "Ada"],
54
+ * ["profile/*\\tags/*\\[0]", "core"],
55
+ * ["enabled", "true"],
56
+ * ],
57
+ * 10,
58
+ * );
59
+ * // rebuilt: { profile: { name: "Ada", tags: ["core"] }, enabled: "true" }
60
+ * ```
61
+ *
62
+ * @remarks
63
+ * - `TheFormData.toFlatEntries(...)` flattens nested objects/arrays into path keys using the `/*\` separator.
64
+ * - `TheFormData.fromEntries(...)` ignores `__proto__`, `constructor`, and `prototype` paths for safety.
65
+ *
66
+ * @see https://utils.duplojs.dev/en/v1/api/common/createFormData
67
+ *
68
+ */
10
69
  export declare function createFormData<GenericValues extends Record<string, EligibleFormDataValue>>(inputValues: GenericValues): TheFormData<GenericValues>;
11
- export {};
@@ -1,4 +1,6 @@
1
1
  import { escapeRegExp } from './escapeRegExp.mjs';
2
+ import { TheTime } from '../date/theTime.mjs';
3
+ import { TheDate } from '../date/theDate.mjs';
2
4
 
3
5
  const separator = "/*\\";
4
6
  const firstElementInPathRegex = new RegExp(`^((?:(?!${escapeRegExp(separator)}).)*)(?:${escapeRegExp(separator)})?`);
@@ -15,9 +17,18 @@ class TheFormData extends FormData {
15
17
  }
16
18
  static *toFlatEntries(value, path) {
17
19
  if (typeof value === "string"
18
- || value instanceof File) {
20
+ || value instanceof TheTime
21
+ || value instanceof TheDate
22
+ || typeof value === "number"
23
+ || typeof value === "boolean") {
24
+ yield [path ?? "", value.toString()];
25
+ }
26
+ else if (value instanceof File) {
19
27
  yield [path ?? "", value];
20
28
  }
29
+ else if (value === null) {
30
+ yield [path ?? "", "null"];
31
+ }
21
32
  else if (value === undefined) {
22
33
  return;
23
34
  }
@@ -81,6 +92,9 @@ class TheFormData extends FormData {
81
92
  return new TheFormData(inputValues);
82
93
  }
83
94
  }
95
+ /**
96
+ * {@include common/createFormData/index.md}
97
+ */
84
98
  function createFormData(inputValues) {
85
99
  return TheFormData.new(inputValues);
86
100
  }
@@ -8,7 +8,7 @@ import { type DataParser } from "./base";
8
8
  * parsers, the correct type can be retrieved.
9
9
  */
10
10
  export declare const identifier: {
11
- <GenericKindHandler extends import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/bigint", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/extended", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/boolean", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/date", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/time", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/empty", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/nil", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/number", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/string", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/array", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/transform", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/union", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/pipe", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/nullable", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/optional", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/recover", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/lazy", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/literal", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/object", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/record", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/template-literal", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/tuple", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/unknown", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
11
+ <GenericKindHandler extends import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/bigint", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/extended", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/boolean", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/date", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/time", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/empty", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/nil", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/number", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/string", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/array", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/transform", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/union", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/lazy", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/literal", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/nullable", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/object", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/optional", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/pipe", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/record", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/template-literal", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/tuple", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/unknown", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/recover", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
12
12
  input: string;
13
13
  output: string;
14
14
  }>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
@@ -42,7 +42,7 @@ export declare const identifier: {
42
42
  input: boolean;
43
43
  output: boolean;
44
44
  }>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
45
- input: import("../date").TheDate | Date | `date${number}-` | `date${number}+`;
45
+ input: `date${number}-` | `date${number}+` | import("../date").TheDate | Date;
46
46
  output: import("../date").TheDate;
47
47
  }>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
48
48
  input: number | import("../date").TheTime | `time${number}-` | `time${number}+`;
@@ -57,7 +57,7 @@ export declare const identifier: {
57
57
  input: Record<never, unknown>;
58
58
  output: Record<never, unknown>;
59
59
  }>>, GenericInput extends unknown, GenericGroupedKind extends import("../common").UnionToIntersection<GenericKindHandler extends import("../common").KindHandler<import("../common").KindDefinition<string, unknown>> ? import("../common").Kind<GenericKindHandler["definition"], GenericKindHandler["definition"]["value"]> : never>>(kind: GenericKindHandler | GenericKindHandler[]): (input: GenericInput) => input is (import("../common").IsEqual<import("../common").IsEqual<false | (GenericInput extends any ? import("../common").IsEqual<GenericInput, DataParser<import("./base").DataParserDefinition<import("./base").DataParserChecker<import("./base").DataParserCheckerDefinition, unknown>>, unknown, unknown>> : never), boolean>, true> extends true ? Extract<DataParser<import("./base").DataParserDefinition<import("./base").DataParserChecker<import("./base").DataParserCheckerDefinition, unknown>>, unknown, unknown>, GenericGroupedKind> | Extract<import("./parsers").DataParserString<import("./parsers").DataParserDefinitionString>, GenericGroupedKind> | Extract<import("./parsers").DataParserObject<import("./parsers").DataParserDefinitionObject>, GenericGroupedKind> | Extract<import("./parsers").DataParserNumber<import("./parsers").DataParserDefinitionNumber>, GenericGroupedKind> | Extract<import("./parsers").DataParserLiteral<import("./parsers").DataParserDefinitionLiteral>, GenericGroupedKind> | Extract<import("./parsers").DataParserUnion<import("./parsers").DataParserDefinitionUnion>, GenericGroupedKind> | Extract<import("./parsers").DataParserArray<import("./parsers").DataParserDefinitionArray>, GenericGroupedKind> | Extract<import("./parsers").DataParserBigInt<import("./parsers").DataParserDefinitionBigInt>, GenericGroupedKind> | Extract<import("./parsers").DataParserTuple<import("./parsers").DataParserDefinitionTuple>, GenericGroupedKind> | Extract<import("./parsers").DataParserTransform<import("./parsers").DataParserDefinitionTransform>, GenericGroupedKind> | Extract<import("./parsers").DataParserBoolean<import("./parsers").DataParserDefinitionBoolean>, GenericGroupedKind> | Extract<import("./parsers").DataParserDate<import("./parsers").DataParserDefinitionDate>, GenericGroupedKind> | Extract<import("./parsers").DataParserTime<import("./parsers").DataParserDefinitionTime>, GenericGroupedKind> | Extract<import("./parsers").DataParserNil<import("./parsers").DataParserDefinitionNil>, GenericGroupedKind> | Extract<import("./parsers").DataParserEmpty<import("./parsers").DataParserDefinitionEmpty>, GenericGroupedKind> | Extract<import("./parsers").DataParserTemplateLiteral<import("./parsers").DataParserDefinitionTemplateLiteral>, GenericGroupedKind> | Extract<import("./parsers").DataParserPipe<import("./parsers").DataParserDefinitionPipe>, GenericGroupedKind> | Extract<import("./parsers").DataParserNullable<import("./parsers").DataParserDefinitionNullable<unknown>>, GenericGroupedKind> | Extract<import("./parsers").DataParserOptional<import("./parsers").DataParserDefinitionOptional<unknown>>, GenericGroupedKind> | Extract<import("./parsers").DataParserLazy<import("./parsers").DataParserDefinitionLazy>, GenericGroupedKind> | Extract<import("./parsers").DataParserUnknown<import("./parsers").DataParserDefinitionUnknown>, GenericGroupedKind> | Extract<import("./parsers").DataParserRecord<import("./parsers").DataParserDefinitionRecord>, GenericGroupedKind> | Extract<import("./parsers").DataParserRecover<import("./parsers").DataParserDefinitionRecover>, GenericGroupedKind> | Extract<import("./baseExtended").DataParserExtended<import("./base").DataParserDefinition<import("./base").DataParserChecker<import("./base").DataParserCheckerDefinition, unknown>>, unknown, unknown>, GenericGroupedKind> | Extract<import("./extended").DataParserStringExtended<import("./parsers").DataParserDefinitionString>, GenericGroupedKind> | Extract<import("./extended").DataParserObjectExtended<import("./parsers").DataParserDefinitionObject>, GenericGroupedKind> | Extract<import("./extended").DataParserNumberExtended<import("./parsers").DataParserDefinitionNumber>, GenericGroupedKind> | Extract<import("./extended").DataParserLiteralExtended<import("./parsers").DataParserDefinitionLiteral>, GenericGroupedKind> | Extract<import("./extended").DataParserUnionExtended<import("./parsers").DataParserDefinitionUnion>, GenericGroupedKind> | Extract<import("./extended").DataParserArrayExtended<import("./parsers").DataParserDefinitionArray>, GenericGroupedKind> | Extract<import("./extended").DataParserBigIntExtended<import("./parsers").DataParserDefinitionBigInt>, GenericGroupedKind> | Extract<import("./extended").DataParserTupleExtended<import("./parsers").DataParserDefinitionTuple>, GenericGroupedKind> | Extract<import("./extended").DataParserTransformExtended<import("./parsers").DataParserDefinitionTransform>, GenericGroupedKind> | Extract<import("./extended").DataParserBooleanExtended<import("./parsers").DataParserDefinitionBoolean>, GenericGroupedKind> | Extract<import("./extended").DataParserDateExtended<import("./parsers").DataParserDefinitionDate>, GenericGroupedKind> | Extract<import("./extended").DataParserTimeExtended<import("./parsers").DataParserDefinitionTime>, GenericGroupedKind> | Extract<import("./extended").DataParserNilExtended<import("./parsers").DataParserDefinitionNil>, GenericGroupedKind> | Extract<import("./extended").DataParserEmptyExtended<import("./parsers").DataParserDefinitionEmpty>, GenericGroupedKind> | Extract<import("./extended").DataParserTemplateLiteralExtended<import("./parsers").DataParserDefinitionTemplateLiteral>, GenericGroupedKind> | Extract<import("./extended").DataParserPipeExtended<import("./parsers").DataParserDefinitionPipe>, GenericGroupedKind> | Extract<import("./extended").DataParserNullableExtended<import("./parsers").DataParserDefinitionNullable<unknown>>, GenericGroupedKind> | Extract<import("./extended").DataParserOptionalExtended<import("./parsers").DataParserDefinitionOptional<unknown>>, GenericGroupedKind> | Extract<import("./extended").DataParserLazyExtended<import("./parsers").DataParserDefinitionLazy>, GenericGroupedKind> | Extract<import("./extended").DataParserUnknownExtended<import("./parsers").DataParserDefinitionUnknown>, GenericGroupedKind> | Extract<import("./extended").DataParserRecordExtended<import("./parsers").DataParserDefinitionRecord>, GenericGroupedKind> | Extract<import("./extended").DataParserRecoverExtended<import("./parsers").DataParserDefinitionRecover>, GenericGroupedKind> : never) | Extract<GenericInput, GenericGroupedKind>;
60
- <GenericKindHandler extends import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/bigint", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/extended", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/boolean", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/date", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/time", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/empty", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/nil", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/number", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/string", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/array", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/transform", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/union", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/pipe", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/nullable", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/optional", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/recover", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/lazy", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/literal", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/object", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/record", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/template-literal", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/tuple", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/unknown", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
60
+ <GenericKindHandler extends import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/bigint", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/extended", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/boolean", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/date", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/time", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/empty", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/nil", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/number", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/string", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/array", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/transform", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/union", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/lazy", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/literal", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/nullable", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/object", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/optional", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/pipe", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/record", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/template-literal", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/tuple", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/unknown", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/recover", unknown>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
61
61
  input: string;
62
62
  output: string;
63
63
  }>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
@@ -91,7 +91,7 @@ export declare const identifier: {
91
91
  input: boolean;
92
92
  output: boolean;
93
93
  }>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
94
- input: import("../date").TheDate | Date | `date${number}-` | `date${number}+`;
94
+ input: `date${number}-` | `date${number}+` | import("../date").TheDate | Date;
95
95
  output: import("../date").TheDate;
96
96
  }>> | import("../common").KindHandler<import("../common").KindDefinition<"@DuplojsUtilsDataParser/base", {
97
97
  input: number | import("../date").TheTime | `time${number}-` | `time${number}+`;
@@ -1,13 +1,12 @@
1
- import { type GetPropsWithValueExtends } from "../../object";
2
- import { type DataParser } from "../base";
1
+ import type { DataParser } from "../base";
3
2
  import type * as AllDataParser from "../parsers";
3
+ import type { DataParserExtended } from "../baseExtended";
4
4
  import type * as AllDataParserExtended from "../extended";
5
- import { type DataParserExtended } from "../baseExtended";
6
5
  export interface DataParserCustom {
7
6
  base: DataParser;
8
7
  }
9
- export type DataParsers = (DataParserCustom[GetPropsWithValueExtends<DataParserCustom, DataParser>] | AllDataParser.DataParserString | AllDataParser.DataParserObject | AllDataParser.DataParserNumber | AllDataParser.DataParserLiteral | AllDataParser.DataParserUnion | AllDataParser.DataParserArray | AllDataParser.DataParserBigInt | AllDataParser.DataParserTuple | AllDataParser.DataParserTransform | AllDataParser.DataParserBoolean | AllDataParser.DataParserDate | AllDataParser.DataParserTime | AllDataParser.DataParserNil | AllDataParser.DataParserEmpty | AllDataParser.DataParserTemplateLiteral | AllDataParser.DataParserPipe | AllDataParser.DataParserNullable | AllDataParser.DataParserOptional | AllDataParser.DataParserLazy | AllDataParser.DataParserUnknown | AllDataParser.DataParserRecord | AllDataParser.DataParserRecover);
8
+ export type DataParsers = (DataParserCustom[keyof DataParserCustom] | AllDataParser.DataParserString | AllDataParser.DataParserObject | AllDataParser.DataParserNumber | AllDataParser.DataParserLiteral | AllDataParser.DataParserUnion | AllDataParser.DataParserArray | AllDataParser.DataParserBigInt | AllDataParser.DataParserTuple | AllDataParser.DataParserTransform | AllDataParser.DataParserBoolean | AllDataParser.DataParserDate | AllDataParser.DataParserTime | AllDataParser.DataParserNil | AllDataParser.DataParserEmpty | AllDataParser.DataParserTemplateLiteral | AllDataParser.DataParserPipe | AllDataParser.DataParserNullable | AllDataParser.DataParserOptional | AllDataParser.DataParserLazy | AllDataParser.DataParserUnknown | AllDataParser.DataParserRecord | AllDataParser.DataParserRecover);
10
9
  export interface DataParserExtendedCustom {
11
10
  base: DataParserExtended;
12
11
  }
13
- export type DataParsersExtended = (DataParserExtendedCustom[GetPropsWithValueExtends<DataParserExtendedCustom, DataParserExtended>] | AllDataParserExtended.DataParserStringExtended | AllDataParserExtended.DataParserObjectExtended | AllDataParserExtended.DataParserNumberExtended | AllDataParserExtended.DataParserLiteralExtended | AllDataParserExtended.DataParserUnionExtended | AllDataParserExtended.DataParserArrayExtended | AllDataParserExtended.DataParserBigIntExtended | AllDataParserExtended.DataParserTupleExtended | AllDataParserExtended.DataParserTransformExtended | AllDataParserExtended.DataParserBooleanExtended | AllDataParserExtended.DataParserDateExtended | AllDataParserExtended.DataParserTimeExtended | AllDataParserExtended.DataParserNilExtended | AllDataParserExtended.DataParserEmptyExtended | AllDataParserExtended.DataParserTemplateLiteralExtended | AllDataParserExtended.DataParserPipeExtended | AllDataParserExtended.DataParserNullableExtended | AllDataParserExtended.DataParserOptionalExtended | AllDataParserExtended.DataParserLazyExtended | AllDataParserExtended.DataParserUnknownExtended | AllDataParserExtended.DataParserRecordExtended | AllDataParserExtended.DataParserRecoverExtended);
12
+ export type DataParsersExtended = (DataParserExtendedCustom[keyof DataParserExtendedCustom] | AllDataParserExtended.DataParserStringExtended | AllDataParserExtended.DataParserObjectExtended | AllDataParserExtended.DataParserNumberExtended | AllDataParserExtended.DataParserLiteralExtended | AllDataParserExtended.DataParserUnionExtended | AllDataParserExtended.DataParserArrayExtended | AllDataParserExtended.DataParserBigIntExtended | AllDataParserExtended.DataParserTupleExtended | AllDataParserExtended.DataParserTransformExtended | AllDataParserExtended.DataParserBooleanExtended | AllDataParserExtended.DataParserDateExtended | AllDataParserExtended.DataParserTimeExtended | AllDataParserExtended.DataParserNilExtended | AllDataParserExtended.DataParserEmptyExtended | AllDataParserExtended.DataParserTemplateLiteralExtended | AllDataParserExtended.DataParserPipeExtended | AllDataParserExtended.DataParserNullableExtended | AllDataParserExtended.DataParserOptionalExtended | AllDataParserExtended.DataParserLazyExtended | AllDataParserExtended.DataParserUnknownExtended | AllDataParserExtended.DataParserRecordExtended | AllDataParserExtended.DataParserRecoverExtended);
@@ -2,9 +2,9 @@
2
2
 
3
3
  var create = require('./create.cjs');
4
4
  var kind = require('../common/kind.cjs');
5
+ var errorKindNamespace = require('../common/errorKindNamespace.cjs');
5
6
  var is = require('../either/left/is.cjs');
6
7
  var unwrap = require('../common/unwrap.cjs');
7
- var errorKindNamespace = require('../common/errorKindNamespace.cjs');
8
8
 
9
9
  class CreateTheDateError extends kind.kindHeritage("create-the-date-error", errorKindNamespace.createErrorKind("create-the-date-error"), Error) {
10
10
  input;
@@ -1,8 +1,8 @@
1
1
  import { create } from './create.mjs';
2
2
  import { kindHeritage } from '../common/kind.mjs';
3
+ import { createErrorKind } from '../common/errorKindNamespace.mjs';
3
4
  import { isLeft } from '../either/left/is.mjs';
4
5
  import { unwrap } from '../common/unwrap.mjs';
5
- import { createErrorKind } from '../common/errorKindNamespace.mjs';
6
6
 
7
7
  class CreateTheDateError extends kindHeritage("create-the-date-error", createErrorKind("create-the-date-error"), Error) {
8
8
  input;
@@ -47,7 +47,7 @@ export interface GroupFunctionParams {
47
47
  output: typeof groupOutput;
48
48
  }
49
49
  export type GroupResult<GenericOutput extends GroupFunctionOutput> = SimplifyTopLevel<{
50
- [Output in GenericOutput as Output["group"]]?: Output["value"][];
50
+ readonly [Output in GenericOutput as Output["group"]]?: readonly [Output["value"], ...Output["value"][]];
51
51
  }>;
52
52
  /**
53
53
  * Groups elements from an iterable into an object by a group name.
@@ -12,17 +12,11 @@
12
12
  * 10,
13
13
  * ); // true
14
14
  *
15
- * pipe(
16
- * 10,
17
- * N.between(0, 10),
18
- * ); // true
19
- *
20
15
  * N.between(
21
16
  * 11,
22
17
  * 0,
23
18
  * 10,
24
19
  * ); // false
25
- *
26
20
  * ```
27
21
  *
28
22
  * @see [`N.betweenThan`](https://utils.duplojs.dev/en/v1/api/number/betweenThan) For strict bounds
@@ -12,17 +12,11 @@
12
12
  * 10,
13
13
  * ); // true
14
14
  *
15
- * pipe(
16
- * 10,
17
- * N.betweenThan(0, 10),
18
- * ); // false
19
- *
20
15
  * N.betweenThan(
21
16
  * 11,
22
17
  * 0,
23
18
  * 10,
24
19
  * ); // false
25
- *
26
20
  * ```
27
21
  *
28
22
  * @see [`N.between`](https://utils.duplojs.dev/en/v1/api/number/between) For inclusive bounds
@@ -11,16 +11,10 @@
11
11
  * 10,
12
12
  * ); // true
13
13
  *
14
- * pipe(
15
- * 9,
16
- * N.greater(10),
17
- * ); // false
18
- *
19
14
  * N.greater(
20
15
  * 9,
21
16
  * 10,
22
17
  * ); // true
23
- *
24
18
  * ```
25
19
  *
26
20
  * @see https://utils.duplojs.dev/en/v1/api/number/greater
@@ -11,16 +11,10 @@
11
11
  * 10,
12
12
  * ); // false
13
13
  *
14
- * pipe(
15
- * 11,
16
- * N.greaterThan(10),
17
- * ); // true
18
- *
19
14
  * N.greaterThan(
20
15
  * 9,
21
16
  * 10,
22
17
  * ); // false
23
- *
24
18
  * ```
25
19
  *
26
20
  * @see https://utils.duplojs.dev/en/v1/api/number/greaterThan
@@ -11,16 +11,10 @@
11
11
  * 10,
12
12
  * ); // true
13
13
  *
14
- * pipe(
15
- * 9,
16
- * N.less(10),
17
- * ); // true
18
- *
19
14
  * N.less(
20
15
  * 11,
21
16
  * 10,
22
17
  * ); // false
23
- *
24
18
  * ```
25
19
  *
26
20
  * @see https://utils.duplojs.dev/en/v1/api/number/less
@@ -11,16 +11,10 @@
11
11
  * 10,
12
12
  * ); // false
13
13
  *
14
- * pipe(
15
- * 9,
16
- * N.lessThan(10),
17
- * ); // true
18
- *
19
14
  * N.lessThan(
20
15
  * 11,
21
16
  * 10,
22
17
  * ); // false
23
- *
24
18
  * ```
25
19
  *
26
20
  * @see https://utils.duplojs.dev/en/v1/api/number/lessThan
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duplojs/utils",
3
- "version": "1.5.2",
3
+ "version": "1.5.4",
4
4
  "author": {
5
5
  "name": "mathcovax",
6
6
  "url": "https://github.com/mathcovax"