@duplojs/lang 0.0.1-beta.9 → 0.1.0-beta.1

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.
Files changed (212) hide show
  1. package/dist/array/concat.d.ts +2 -2
  2. package/dist/array/flat.d.ts +1 -1
  3. package/dist/array/flatMap.d.ts +2 -2
  4. package/dist/array/from.d.ts +1 -1
  5. package/dist/array/length.d.ts +3 -2
  6. package/dist/array/push.d.ts +4 -2
  7. package/dist/chrono/createDate.cjs +1 -1
  8. package/dist/chrono/createDate.mjs +1 -1
  9. package/dist/chrono/operators/addTime.d.ts +2 -4
  10. package/dist/common/constraint/cast/index.d.ts +4 -4
  11. package/dist/common/constraint/cast/string.d.ts +4 -0
  12. package/dist/common/constraint/infer/index.d.ts +2 -1
  13. package/dist/common/constraint/infer/string.d.ts +1 -1
  14. package/dist/common/constraint/types/index.d.ts +1 -0
  15. package/dist/common/constraint/types/maybe.d.ts +2 -0
  16. package/dist/common/formData.d.ts +2 -1
  17. package/dist/common/memo.cjs +3 -2
  18. package/dist/common/memo.mjs +3 -2
  19. package/dist/common/memoPromise.cjs +3 -2
  20. package/dist/common/memoPromise.mjs +3 -2
  21. package/dist/common/timeout.cjs +2 -2
  22. package/dist/common/timeout.d.ts +1 -1
  23. package/dist/common/timeout.mjs +2 -2
  24. package/dist/common/types/applyPromiseIf.d.ts +1 -0
  25. package/dist/common/types/index.d.ts +1 -0
  26. package/dist/common/types/json.d.ts +12 -1
  27. package/dist/dataStructure/common/codec/defaults/string.cjs +1 -1
  28. package/dist/dataStructure/common/codec/defaults/string.d.ts +1 -1
  29. package/dist/dataStructure/common/codec/defaults/string.mjs +1 -1
  30. package/dist/dataStructure/common/{error.cjs → error/base.cjs} +18 -3
  31. package/dist/dataStructure/common/{error.d.ts → error/base.d.ts} +14 -7
  32. package/dist/dataStructure/common/{error.mjs → error/base.mjs} +17 -4
  33. package/dist/dataStructure/common/error/defaultInterpreter.cjs +87 -0
  34. package/dist/dataStructure/common/error/defaultInterpreter.d.ts +60 -0
  35. package/dist/dataStructure/common/error/defaultInterpreter.mjs +86 -0
  36. package/dist/dataStructure/common/error/index.d.ts +3 -0
  37. package/dist/dataStructure/common/{errorInterpreter.cjs → error/interpreter.cjs} +11 -12
  38. package/dist/dataStructure/common/error/interpreter.d.ts +32 -0
  39. package/dist/dataStructure/common/{errorInterpreter.mjs → error/interpreter.mjs} +9 -10
  40. package/dist/dataStructure/common/index.d.ts +0 -1
  41. package/dist/dataStructure/constraint/types/constraints.d.ts +1 -0
  42. package/dist/dataStructure/fundamentalType/types/fundamentalTypes.d.ts +1 -0
  43. package/dist/dataStructure/helpers/extend.cjs +1 -1
  44. package/dist/dataStructure/helpers/extend.d.ts +1 -1
  45. package/dist/dataStructure/helpers/extend.mjs +1 -1
  46. package/dist/dataStructure/helpers/index.d.ts +1 -0
  47. package/dist/dataStructure/helpers/partial.cjs +1 -1
  48. package/dist/dataStructure/helpers/partial.mjs +1 -1
  49. package/dist/dataStructure/helpers/required.cjs +1 -1
  50. package/dist/dataStructure/helpers/required.mjs +1 -1
  51. package/dist/dataStructure/helpers/typeStructureIdentifier.cjs +14 -0
  52. package/dist/dataStructure/helpers/typeStructureIdentifier.d.ts +6 -0
  53. package/dist/dataStructure/helpers/typeStructureIdentifier.mjs +14 -0
  54. package/dist/dataStructure/index.cjs +45 -33
  55. package/dist/dataStructure/index.mjs +10 -3
  56. package/dist/dataStructure/structure/base.cjs +31 -19
  57. package/dist/dataStructure/structure/base.d.ts +16 -16
  58. package/dist/dataStructure/structure/base.mjs +25 -13
  59. package/dist/dataStructure/structure/defaults/array.cjs +10 -0
  60. package/dist/dataStructure/structure/defaults/array.mjs +10 -0
  61. package/dist/dataStructure/structure/defaults/lazy.cjs +1 -0
  62. package/dist/dataStructure/structure/defaults/lazy.mjs +1 -0
  63. package/dist/dataStructure/structure/defaults/nonEncodableString.cjs +1 -0
  64. package/dist/dataStructure/structure/defaults/nonEncodableString.mjs +1 -0
  65. package/dist/dataStructure/structure/defaults/object.cjs +18 -7
  66. package/dist/dataStructure/structure/defaults/object.d.ts +2 -1
  67. package/dist/dataStructure/structure/defaults/object.mjs +18 -7
  68. package/dist/dataStructure/structure/defaults/record.cjs +20 -7
  69. package/dist/dataStructure/structure/defaults/record.mjs +20 -7
  70. package/dist/dataStructure/structure/defaults/type.cjs +1 -0
  71. package/dist/dataStructure/structure/defaults/type.mjs +1 -0
  72. package/dist/dataStructure/structure/defaults/union.cjs +26 -6
  73. package/dist/dataStructure/structure/defaults/union.mjs +21 -1
  74. package/dist/dataStructure/structure/types/value.d.ts +2 -0
  75. package/dist/dataStructure/type/types/types.d.ts +1 -0
  76. package/dist/either/index.cjs +1 -1
  77. package/dist/either/index.mjs +1 -1
  78. package/dist/either/left/create.d.ts +2 -1
  79. package/dist/either/left/none.cjs +2 -2
  80. package/dist/either/left/none.d.ts +2 -2
  81. package/dist/either/left/none.mjs +2 -2
  82. package/dist/either/right/create.d.ts +2 -1
  83. package/dist/either/types/index.d.ts +1 -0
  84. package/dist/either/types/mayBe.d.ts +1 -1
  85. package/dist/invocation/evidence.d.ts +1 -1
  86. package/dist/invocation/flow/base.cjs +4 -4
  87. package/dist/invocation/flow/base.d.ts +1 -1
  88. package/dist/invocation/flow/base.mjs +4 -4
  89. package/dist/invocation/flow/controller/defaults/debounce.cjs +1 -1
  90. package/dist/invocation/flow/controller/defaults/debounce.mjs +1 -1
  91. package/dist/invocation/flow/controller/defaults/throttling.cjs +1 -1
  92. package/dist/invocation/flow/controller/defaults/throttling.mjs +1 -1
  93. package/dist/invocation/index.cjs +10 -0
  94. package/dist/invocation/index.d.ts +2 -0
  95. package/dist/invocation/index.mjs +7 -1
  96. package/dist/invocation/reader.cjs +5 -1
  97. package/dist/invocation/reader.d.ts +5 -3
  98. package/dist/invocation/reader.mjs +5 -1
  99. package/dist/invocation/resolver.cjs +31 -0
  100. package/dist/invocation/resolver.d.ts +14 -0
  101. package/dist/invocation/resolver.mjs +31 -0
  102. package/dist/invocation/signature.cjs +8 -0
  103. package/dist/invocation/signature.d.ts +7 -0
  104. package/dist/invocation/signature.mjs +8 -0
  105. package/dist/modeling/entity/base.cjs +19 -25
  106. package/dist/modeling/entity/base.d.ts +15 -14
  107. package/dist/modeling/entity/base.mjs +14 -19
  108. package/dist/modeling/entity/helper.d.ts +6 -8
  109. package/dist/modeling/entity/namespace.cjs +0 -2
  110. package/dist/modeling/entity/namespace.d.ts +0 -2
  111. package/dist/modeling/entity/namespace.mjs +0 -2
  112. package/dist/modeling/fact/base.cjs +36 -0
  113. package/dist/modeling/fact/base.d.ts +29 -0
  114. package/dist/modeling/fact/base.mjs +35 -0
  115. package/dist/modeling/fact/index.d.ts +1 -0
  116. package/dist/modeling/flag/base.cjs +1 -1
  117. package/dist/modeling/flag/base.d.ts +8 -8
  118. package/dist/modeling/flag/base.mjs +1 -1
  119. package/dist/modeling/index.cjs +17 -18
  120. package/dist/modeling/index.d.ts +1 -0
  121. package/dist/modeling/index.mjs +8 -8
  122. package/dist/modeling/newType/base.cjs +11 -28
  123. package/dist/modeling/newType/base.d.ts +8 -15
  124. package/dist/modeling/newType/base.mjs +5 -20
  125. package/dist/modeling/taggedObject/base.cjs +19 -25
  126. package/dist/modeling/taggedObject/base.d.ts +12 -14
  127. package/dist/modeling/taggedObject/base.mjs +14 -19
  128. package/dist/object/assign.d.ts +3 -3
  129. package/dist/object/deepOverride.cjs +33 -0
  130. package/dist/object/deepOverride.d.ts +20 -0
  131. package/dist/object/deepOverride.mjs +33 -0
  132. package/dist/object/entries.d.ts +3 -3
  133. package/dist/object/index.cjs +4 -1
  134. package/dist/object/index.d.ts +1 -0
  135. package/dist/object/index.mjs +4 -2
  136. package/dist/object/isSimple.cjs +1 -1
  137. package/dist/object/isSimple.mjs +1 -1
  138. package/dist/object/keys.d.ts +1 -1
  139. package/dist/object/override.cjs +1 -1
  140. package/dist/object/override.d.ts +5 -2
  141. package/dist/object/override.mjs +1 -1
  142. package/dist/object/types/assign.d.ts +2 -0
  143. package/dist/object/types/forbiddenKey.d.ts +1 -1
  144. package/dist/object/types/hasKeySignature.d.ts +1 -0
  145. package/dist/object/types/index.d.ts +4 -1
  146. package/dist/object/types/keyofWithoutSignature.d.ts +3 -0
  147. package/dist/object/types/override.d.ts +4 -0
  148. package/dist/object/values.d.ts +1 -1
  149. package/dist/path/create.cjs +11 -0
  150. package/dist/path/create.d.ts +3 -0
  151. package/dist/path/create.mjs +11 -0
  152. package/dist/path/createAbsolute.cjs +12 -0
  153. package/dist/path/createAbsolute.d.ts +3 -0
  154. package/dist/path/createAbsolute.mjs +12 -0
  155. package/dist/path/createAbsoluteOrThrow.cjs +22 -0
  156. package/dist/path/createAbsoluteOrThrow.d.ts +9 -0
  157. package/dist/path/createAbsoluteOrThrow.mjs +21 -0
  158. package/dist/path/createOrThrow.cjs +22 -0
  159. package/dist/path/createOrThrow.d.ts +9 -0
  160. package/dist/path/createOrThrow.mjs +21 -0
  161. package/dist/path/createSegment.cjs +12 -0
  162. package/dist/path/createSegment.d.ts +3 -0
  163. package/dist/path/createSegment.mjs +12 -0
  164. package/dist/path/createSegmentOrThrow.cjs +22 -0
  165. package/dist/path/createSegmentOrThrow.d.ts +9 -0
  166. package/dist/path/createSegmentOrThrow.mjs +21 -0
  167. package/dist/path/declareAbsolutePath.cjs +6 -0
  168. package/dist/path/declareAbsolutePath.d.ts +3 -0
  169. package/dist/path/declareAbsolutePath.mjs +6 -0
  170. package/dist/path/declarePath.cjs +6 -0
  171. package/dist/path/declarePath.d.ts +3 -0
  172. package/dist/path/declarePath.mjs +6 -0
  173. package/dist/path/declareSegment.cjs +6 -0
  174. package/dist/path/declareSegment.d.ts +3 -0
  175. package/dist/path/declareSegment.mjs +6 -0
  176. package/dist/path/index.cjs +39 -3
  177. package/dist/path/index.d.ts +10 -0
  178. package/dist/path/index.mjs +27 -4
  179. package/dist/path/kind.cjs +4 -0
  180. package/dist/path/kind.d.ts +2 -0
  181. package/dist/path/kind.mjs +5 -0
  182. package/dist/pattern/index.cjs +6 -0
  183. package/dist/pattern/index.d.ts +2 -0
  184. package/dist/pattern/index.mjs +5 -1
  185. package/dist/pattern/match/builder.cjs +1 -1
  186. package/dist/pattern/match/builder.mjs +1 -1
  187. package/dist/pattern/matchWithEntityOtherwise.d.ts +2 -2
  188. package/dist/pattern/matchWithFact.cjs +12 -0
  189. package/dist/pattern/matchWithFact.d.ts +12 -0
  190. package/dist/pattern/matchWithFact.mjs +12 -0
  191. package/dist/pattern/matchWithFactOtherwise.cjs +13 -0
  192. package/dist/pattern/matchWithFactOtherwise.d.ts +14 -0
  193. package/dist/pattern/matchWithFactOtherwise.mjs +13 -0
  194. package/dist/pattern/matchWithNumberOtherwise.d.ts +2 -2
  195. package/dist/pattern/matchWithStringOtherwise.d.ts +2 -2
  196. package/dist/pattern/matchWithTaggedObjectOtherwise.d.ts +2 -2
  197. package/dist/pattern/types/complexUnMatchedValue/getIncompleteUnion.d.ts +8 -8
  198. package/dist/string/capitalize.d.ts +1 -1
  199. package/dist/string/concat.d.ts +2 -2
  200. package/dist/string/prepend.d.ts +2 -2
  201. package/dist/string/split.cjs +1 -0
  202. package/dist/string/split.d.ts +3 -3
  203. package/dist/string/split.mjs +1 -0
  204. package/dist/string/toLowerCase.d.ts +1 -1
  205. package/dist/string/toUpperCase.d.ts +1 -1
  206. package/dist/string/types/IsAllowedString.d.ts +4 -2
  207. package/dist/string/uncapitalize.d.ts +1 -1
  208. package/dist/tuple/types/map.d.ts +1 -1
  209. package/package.json +16 -30
  210. package/dist/dataStructure/common/errorInterpreter.d.ts +0 -36
  211. package/dist/object/types/assignObjects.d.ts +0 -2
  212. /package/{README.md → README} +0 -0
@@ -1,4 +1,4 @@
1
- import { AssignObjects } from './types';
1
+ import { Assign } from './types';
2
2
  import type * as DCommon from '../common';
3
- export declare function assign<GenericObject extends object, GenericValue extends Partial<Record<keyof GenericObject, unknown>> & DCommon.AnyObject>(value: GenericValue): (object: GenericObject) => AssignObjects<GenericObject, GenericValue>;
4
- export declare function assign<GenericObject extends object, GenericValue extends Partial<Record<keyof GenericObject, unknown>> & DCommon.AnyObject>(object: GenericObject, value: GenericValue): AssignObjects<GenericObject, GenericValue>;
3
+ export declare function assign<GenericObject extends object, GenericValue extends Partial<Record<keyof GenericObject, unknown>> & DCommon.AnyObject>(value: GenericValue): (object: GenericObject) => Assign<GenericObject, GenericValue>;
4
+ export declare function assign<GenericObject extends object, GenericValue extends Partial<Record<keyof GenericObject, unknown>> & DCommon.AnyObject>(object: GenericObject, value: GenericValue): Assign<GenericObject, GenericValue>;
@@ -0,0 +1,33 @@
1
+ const require_isSimple = require("./isSimple.cjs");
2
+ const require_justExec = require("../common/justExec.cjs");
3
+ //#region scripts/object/deepOverride.ts
4
+ function deepOverride(...args) {
5
+ if (args.length === 1) {
6
+ const [value] = args;
7
+ return (object) => deepOverride(object, value);
8
+ }
9
+ const [object, initialValue] = args;
10
+ return require_justExec.justExec(function override(value = initialValue, currentValue = object) {
11
+ if (value === void 0) return currentValue;
12
+ if (Array.isArray(value)) {
13
+ if (!Array.isArray(currentValue)) return currentValue;
14
+ const result = [...currentValue];
15
+ const commonLength = Math.min(currentValue.length, value.length);
16
+ for (let index = 0; index < commonLength; index++) {
17
+ const overrideValue = value[index];
18
+ if (overrideValue !== void 0) result[index] = override(overrideValue, currentValue[index]);
19
+ }
20
+ return result;
21
+ }
22
+ if (require_isSimple.isSimple(value)) {
23
+ if (!require_isSimple.isSimple(currentValue)) return currentValue;
24
+ return Object.entries(value).reduce((result, [key, overrideValue]) => {
25
+ if (overrideValue !== void 0) result[key] = override(overrideValue, result[key]);
26
+ return result;
27
+ }, { ...currentValue });
28
+ }
29
+ return value;
30
+ });
31
+ }
32
+ //#endregion
33
+ exports.deepOverride = deepOverride;
@@ -0,0 +1,20 @@
1
+ import { HasKeySignature, keyofWithoutSignature } from './types';
2
+ import * as DCommon from '../common';
3
+ import type * as DKind from '../kind';
4
+ type DeepOverrideParameter<GenericValue extends unknown> = (GenericValue extends unknown ? readonly [
5
+ GenericValue,
6
+ DCommon.RemoveConstraint<GenericValue>
7
+ ] : never) extends infer InferredItem extends readonly [unknown, unknown] ? DCommon.IsUnion<Extract<InferredItem[1], object>> extends true ? Exclude<InferredItem[1], object> | undefined : InferredItem extends unknown ? InferredItem[1] extends DCommon.AnyFunction ? InferredItem[0] : InferredItem[1] extends object ? InferredItem[0] extends DCommon.Constraint ? undefined : InferredItem[1] extends readonly unknown[] ? InferredItem[1] extends readonly [
8
+ infer InferredFirst,
9
+ ...infer InferredRest
10
+ ] ? readonly [
11
+ DeepOverrideParameter<InferredFirst> | undefined,
12
+ ...Extract<DeepOverrideParameter<InferredRest>, readonly unknown[]>
13
+ ] : InferredItem[1] extends readonly [] ? readonly [] : readonly (DeepOverrideParameter<InferredItem[1][number]> | undefined)[] : DCommon.SimplifyTopLevel<{
14
+ readonly [Prop in Exclude<keyofWithoutSignature<InferredItem[1]>, DKind.KeySymbol>]?: DeepOverrideParameter<InferredItem[1][Prop]> | undefined;
15
+ } & (HasKeySignature<InferredItem[1]> extends true ? {
16
+ readonly [key: string]: InferredItem[1][keyof InferredItem[1]];
17
+ } : unknown)> : InferredItem[0] | undefined : never : never;
18
+ export declare function deepOverride<GenericObject extends object>(value: NoInfer<DeepOverrideParameter<GenericObject>>): (object: GenericObject) => GenericObject;
19
+ export declare function deepOverride<GenericObject extends object>(object: GenericObject, value: NoInfer<DeepOverrideParameter<GenericObject>>): GenericObject;
20
+ export {};
@@ -0,0 +1,33 @@
1
+ import { isSimple } from "./isSimple.mjs";
2
+ import { justExec } from "../common/justExec.mjs";
3
+ //#region scripts/object/deepOverride.ts
4
+ function deepOverride(...args) {
5
+ if (args.length === 1) {
6
+ const [value] = args;
7
+ return (object) => deepOverride(object, value);
8
+ }
9
+ const [object, initialValue] = args;
10
+ return justExec(function override(value = initialValue, currentValue = object) {
11
+ if (value === void 0) return currentValue;
12
+ if (Array.isArray(value)) {
13
+ if (!Array.isArray(currentValue)) return currentValue;
14
+ const result = [...currentValue];
15
+ const commonLength = Math.min(currentValue.length, value.length);
16
+ for (let index = 0; index < commonLength; index++) {
17
+ const overrideValue = value[index];
18
+ if (overrideValue !== void 0) result[index] = override(overrideValue, currentValue[index]);
19
+ }
20
+ return result;
21
+ }
22
+ if (isSimple(value)) {
23
+ if (!isSimple(currentValue)) return currentValue;
24
+ return Object.entries(value).reduce((result, [key, overrideValue]) => {
25
+ if (overrideValue !== void 0) result[key] = override(overrideValue, result[key]);
26
+ return result;
27
+ }, { ...currentValue });
28
+ }
29
+ return value;
30
+ });
31
+ }
32
+ //#endregion
33
+ export { deepOverride };
@@ -1,9 +1,9 @@
1
1
  import type * as DString from '../string';
2
2
  import type * as DCommon from '../common';
3
- export type GetEntry<GenericKey extends DCommon.ObjectKey, GenericValue extends unknown> = GenericValue extends any ? GenericKey extends string | number ? [`${GenericKey}`, GenericValue] : never : never;
4
- export type GetEntries<GenericObject extends object> = GenericObject extends readonly any[] ? [DString.Number, GenericObject[number]][] : DCommon.IsEqual<GenericObject, object> extends true ? [string, DCommon.AnyValue][] : ({
3
+ export type GetEntry<GenericKey extends DCommon.ObjectKey, GenericValue extends unknown> = GenericValue extends any ? GenericKey extends string | number ? readonly [`${GenericKey}`, GenericValue] : never : never;
4
+ export type GetEntries<GenericObject extends object> = GenericObject extends readonly any[] ? readonly (readonly [DString.Number, GenericObject[number]])[] : DCommon.IsEqual<GenericObject, object> extends true ? readonly [string, DCommon.AnyValue][] : ({
5
5
  [Prop in keyof GenericObject]-?: GetEntry<Prop, GenericObject[Prop]>;
6
- }[keyof GenericObject]) extends infer InferredResult extends DCommon.ObjectEntry ? DCommon.IsEqual<InferredResult, never> extends true ? [] : InferredResult[] : never;
6
+ }[keyof GenericObject]) extends infer InferredResult extends DCommon.ObjectEntry ? DCommon.IsEqual<InferredResult, never> extends true ? readonly [] : readonly InferredResult[] : never;
7
7
  export declare function entries<GenericObject extends object>(object: GenericObject): DCommon.SimplifyTopLevel<GetEntries<GenericObject>>;
8
8
  export declare namespace entries {
9
9
  var unsafe: {
@@ -1,6 +1,8 @@
1
1
  const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
2
2
  const require_assign = require("./assign.cjs");
3
3
  const require_countKeys = require("./countKeys.cjs");
4
+ const require_isSimple = require("./isSimple.cjs");
5
+ const require_deepOverride = require("./deepOverride.cjs");
4
6
  const require_getDeepProperty = require("./getDeepProperty.cjs");
5
7
  const require_deepDiscriminate = require("./deepDiscriminate.cjs");
6
8
  const require_discriminate = require("./discriminate.cjs");
@@ -11,7 +13,6 @@ const require_entry = require("./entry.cjs");
11
13
  const require_fromEntries = require("./fromEntries.cjs");
12
14
  const require_getProperty = require("./getProperty.cjs");
13
15
  const require_hasKeys = require("./hasKeys.cjs");
14
- const require_isSimple = require("./isSimple.cjs");
15
16
  const require_keys = require("./keys.cjs");
16
17
  const require_omit = require("./omit.cjs");
17
18
  const require_override = require("./override.cjs");
@@ -25,6 +26,7 @@ var object_exports = /* @__PURE__ */ require_runtime.__exportAll({
25
26
  assign: () => require_assign.assign,
26
27
  countKeys: () => require_countKeys.countKeys,
27
28
  deepDiscriminate: () => require_deepDiscriminate.deepDiscriminate,
29
+ deepOverride: () => require_deepOverride.deepOverride,
28
30
  discriminate: () => require_discriminate.discriminate,
29
31
  discriminateEntryKey: () => require_discriminateEntryKey.discriminateEntryKey,
30
32
  discriminateEntryValue: () => require_discriminateEntryValue.discriminateEntryValue,
@@ -48,6 +50,7 @@ var object_exports = /* @__PURE__ */ require_runtime.__exportAll({
48
50
  exports.assign = require_assign.assign;
49
51
  exports.countKeys = require_countKeys.countKeys;
50
52
  exports.deepDiscriminate = require_deepDiscriminate.deepDiscriminate;
53
+ exports.deepOverride = require_deepOverride.deepOverride;
51
54
  exports.discriminate = require_discriminate.discriminate;
52
55
  exports.discriminateEntryKey = require_discriminateEntryKey.discriminateEntryKey;
53
56
  exports.discriminateEntryValue = require_discriminateEntryValue.discriminateEntryValue;
@@ -1,5 +1,6 @@
1
1
  export * from './assign';
2
2
  export * from './countKeys';
3
+ export * from './deepOverride';
3
4
  export * from './deepDiscriminate';
4
5
  export * from './discriminate';
5
6
  export * from './discriminateEntryKey';
@@ -1,6 +1,8 @@
1
1
  import { __exportAll } from "../_virtual/_rolldown/runtime.mjs";
2
2
  import { assign } from "./assign.mjs";
3
3
  import { countKeys } from "./countKeys.mjs";
4
+ import { isSimple } from "./isSimple.mjs";
5
+ import { deepOverride } from "./deepOverride.mjs";
4
6
  import { getDeepProperty } from "./getDeepProperty.mjs";
5
7
  import { deepDiscriminate } from "./deepDiscriminate.mjs";
6
8
  import { discriminate } from "./discriminate.mjs";
@@ -11,7 +13,6 @@ import { entry } from "./entry.mjs";
11
13
  import { fromEntries } from "./fromEntries.mjs";
12
14
  import { getProperty } from "./getProperty.mjs";
13
15
  import { hasKeys } from "./hasKeys.mjs";
14
- import { isSimple } from "./isSimple.mjs";
15
16
  import { keys } from "./keys.mjs";
16
17
  import { omit } from "./omit.mjs";
17
18
  import { override } from "./override.mjs";
@@ -25,6 +26,7 @@ var object_exports = /* @__PURE__ */ __exportAll({
25
26
  assign: () => assign,
26
27
  countKeys: () => countKeys,
27
28
  deepDiscriminate: () => deepDiscriminate,
29
+ deepOverride: () => deepOverride,
28
30
  discriminate: () => discriminate,
29
31
  discriminateEntryKey: () => discriminateEntryKey,
30
32
  discriminateEntryValue: () => discriminateEntryValue,
@@ -45,4 +47,4 @@ var object_exports = /* @__PURE__ */ __exportAll({
45
47
  values: () => values
46
48
  });
47
49
  //#endregion
48
- export { assign, countKeys, deepDiscriminate, discriminate, discriminateEntryKey, discriminateEntryValue, entries, entry, fromEntries, getDeepProperty, getProperty, hasKeys, isSimple, keys, object_exports, omit, override, pick, to, transformProperties, transformProperty, values };
50
+ export { assign, countKeys, deepDiscriminate, deepOverride, discriminate, discriminateEntryKey, discriminateEntryValue, entries, entry, fromEntries, getDeepProperty, getProperty, hasKeys, isSimple, keys, object_exports, omit, override, pick, to, transformProperties, transformProperty, values };
@@ -1,6 +1,6 @@
1
1
  //#region scripts/object/isSimple.ts
2
2
  function isSimple(input) {
3
- return typeof input === "object" && input !== null && (input.constructor === void 0 || input.constructor.name === "Object");
3
+ return typeof input === "object" && input !== null && (input.constructor === void 0 || input.constructor?.name === "Object");
4
4
  }
5
5
  //#endregion
6
6
  exports.isSimple = isSimple;
@@ -1,6 +1,6 @@
1
1
  //#region scripts/object/isSimple.ts
2
2
  function isSimple(input) {
3
- return typeof input === "object" && input !== null && (input.constructor === void 0 || input.constructor.name === "Object");
3
+ return typeof input === "object" && input !== null && (input.constructor === void 0 || input.constructor?.name === "Object");
4
4
  }
5
5
  //#endregion
6
6
  export { isSimple };
@@ -1 +1 @@
1
- export declare function keys<GenericObject extends object>(object: GenericObject): `${Exclude<keyof GenericObject, symbol>}`[];
1
+ export declare function keys<GenericObject extends object>(object: GenericObject): readonly `${Exclude<keyof GenericObject, symbol>}`[];
@@ -5,7 +5,7 @@ function override(...args) {
5
5
  return (object) => override(object, value);
6
6
  }
7
7
  const [object, value] = args;
8
- return Object.entries(value).reduce((acc, [key, value]) => {
8
+ return Object.entries(value ?? {}).reduce((acc, [key, value]) => {
9
9
  if (value !== void 0) acc[key] = value;
10
10
  return acc;
11
11
  }, { ...object });
@@ -1,2 +1,5 @@
1
- export declare function override<GenericObject extends object>(value: Partial<NoInfer<GenericObject>>): (object: GenericObject) => GenericObject;
2
- export declare function override<GenericObject extends object>(object: GenericObject, value: Partial<NoInfer<GenericObject>>): GenericObject;
1
+ import type * as DCommon from '../common';
2
+ type OverrideParameter<GenericValue extends object> = DCommon.IsUnion<GenericValue> extends true ? undefined : Partial<GenericValue>;
3
+ export declare function override<GenericObject extends object>(value: OverrideParameter<GenericObject>): (object: GenericObject) => GenericObject;
4
+ export declare function override<GenericObject extends object>(object: GenericObject, value: OverrideParameter<GenericObject>): GenericObject;
5
+ export {};
@@ -5,7 +5,7 @@ function override(...args) {
5
5
  return (object) => override(object, value);
6
6
  }
7
7
  const [object, value] = args;
8
- return Object.entries(value).reduce((acc, [key, value]) => {
8
+ return Object.entries(value ?? {}).reduce((acc, [key, value]) => {
9
9
  if (value !== void 0) acc[key] = value;
10
10
  return acc;
11
11
  }, { ...object });
@@ -0,0 +1,2 @@
1
+ import type * as DCommon from '../../common';
2
+ export type Assign<GenericFirstObject extends object, GenericSecondObject extends object> = DCommon.SimplifyTopLevel<Omit<GenericFirstObject, keyof GenericSecondObject> & GenericSecondObject>;
@@ -1,2 +1,2 @@
1
1
  import type * as DCommon from '../../common';
2
- export type ForbiddenKey<GenericObject extends object, GenericKey extends string> = (GenericKey extends keyof GenericObject ? DCommon.ComputedTypeError<`Key "${GenericKey}" is forbidden.`> : never) extends infer InferredResult ? DCommon.IsEqual<InferredResult, never> extends true ? unknown : InferredResult : never;
2
+ export type ForbiddenKey<GenericObject extends object, GenericKey extends string | number> = DCommon.IsNever<GenericKey> extends true ? unknown : (`${GenericKey}` extends `${Extract<keyof GenericObject, string | number>}` ? DCommon.ComputedTypeError<`Key "${GenericKey}" is forbidden.`> : never) extends infer InferredResult ? DCommon.IsEqual<InferredResult, never> extends true ? unknown : InferredResult : never;
@@ -0,0 +1 @@
1
+ export type HasKeySignature<GenericValue extends object> = string extends keyof GenericValue ? true : number extends keyof GenericValue ? true : symbol extends keyof GenericValue ? true : false;
@@ -1,4 +1,4 @@
1
- export type * from './assignObjects';
1
+ export type * from './assign';
2
2
  export type * from './deepPartial';
3
3
  export type * from './deepReadonly';
4
4
  export type * from './deepRemoveReadonly';
@@ -9,6 +9,9 @@ export type * from './forbiddenKey';
9
9
  export type * from './forbiddenUndefinedProps';
10
10
  export type * from './getPropsWithValue';
11
11
  export type * from './getPropsWithValueExtends';
12
+ export type * from './hasKeySignature';
13
+ export type * from './keyofWithoutSignature';
14
+ export type * from './override';
12
15
  export type * from './partialKeys';
13
16
  export type * from './requireAtLeastOne';
14
17
  export type * from './requiredKeys';
@@ -0,0 +1,3 @@
1
+ export type keyofWithoutSignature<GenericValue extends object> = keyof {
2
+ [Prop in keyof GenericValue as string extends Prop ? never : number extends Prop ? never : symbol extends Prop ? never : Prop]: GenericValue[Prop];
3
+ };
@@ -0,0 +1,4 @@
1
+ import type * as DCommon from '../../common';
2
+ export type Override<GenericInput extends object, GenericNewValue extends Partial<GenericInput>> = DCommon.SimplifyTopLevel<{
3
+ [Prop in keyof GenericInput]: Prop extends keyof GenericNewValue ? GenericNewValue[Prop] extends infer InferredNewValue ? InferredNewValue extends undefined ? GenericInput[Prop] : InferredNewValue : never : GenericInput[Prop];
4
+ }>;
@@ -1,2 +1,2 @@
1
1
  import type * as DCommon from '../common';
2
- export declare function values<GenericObject extends Record<string, DCommon.AnyValue>>(object: GenericObject): GenericObject[keyof GenericObject][];
2
+ export declare function values<GenericObject extends Record<string, DCommon.AnyValue>>(object: GenericObject): readonly GenericObject[keyof GenericObject][];
@@ -0,0 +1,11 @@
1
+ const require_error = require("../either/left/error.cjs");
2
+ const require_success = require("../either/right/success.cjs");
3
+ const require_normalize = require("./normalize.cjs");
4
+ //#region scripts/path/create.ts
5
+ function create(value) {
6
+ const result = require_normalize.normalize(value);
7
+ if (result) return require_success.success(result);
8
+ return require_error.error(value);
9
+ }
10
+ //#endregion
11
+ exports.create = create;
@@ -0,0 +1,3 @@
1
+ import { Path } from './constraints';
2
+ import * as DEither from '../either';
3
+ export declare function create(value: string): (DEither.Success<string & Path> | DEither.Error<string>);
@@ -0,0 +1,11 @@
1
+ import { error } from "../either/left/error.mjs";
2
+ import { success } from "../either/right/success.mjs";
3
+ import { normalize } from "./normalize.mjs";
4
+ //#region scripts/path/create.ts
5
+ function create(value) {
6
+ const result = normalize(value);
7
+ if (result) return success(result);
8
+ return error(value);
9
+ }
10
+ //#endregion
11
+ export { create };
@@ -0,0 +1,12 @@
1
+ const require_error = require("../either/left/error.cjs");
2
+ const require_success = require("../either/right/success.cjs");
3
+ const require_normalize = require("./normalize.cjs");
4
+ const require_isAbsolute = require("./isAbsolute.cjs");
5
+ //#region scripts/path/createAbsolute.ts
6
+ function createAbsolute(value) {
7
+ const result = require_normalize.normalize(value);
8
+ if (result && require_isAbsolute.isAbsolute(result)) return require_success.success(result);
9
+ return require_error.error(value);
10
+ }
11
+ //#endregion
12
+ exports.createAbsolute = createAbsolute;
@@ -0,0 +1,3 @@
1
+ import { Absolute } from './constraints';
2
+ import * as DEither from '../either';
3
+ export declare function createAbsolute(value: string): (DEither.Success<string & Absolute> | DEither.Error<string>);
@@ -0,0 +1,12 @@
1
+ import { error } from "../either/left/error.mjs";
2
+ import { success } from "../either/right/success.mjs";
3
+ import { normalize } from "./normalize.mjs";
4
+ import { isAbsolute } from "./isAbsolute.mjs";
5
+ //#region scripts/path/createAbsolute.ts
6
+ function createAbsolute(value) {
7
+ const result = normalize(value);
8
+ if (result && isAbsolute(result)) return success(result);
9
+ return error(value);
10
+ }
11
+ //#endregion
12
+ export { createAbsolute };
@@ -0,0 +1,22 @@
1
+ const require_parentClass = require("../kind/parentClass.cjs");
2
+ const require_is = require("../either/left/is.cjs");
3
+ const require_unwrap = require("../either/left/unwrap.cjs");
4
+ const require_unwrap$1 = require("../either/right/unwrap.cjs");
5
+ const require_createAbsolute = require("./createAbsolute.cjs");
6
+ const require_kind = require("./kind.cjs");
7
+ //#region scripts/path/createAbsoluteOrThrow.ts
8
+ var CreateAbsolutePathError = class extends require_parentClass.parentClass(require_kind.createKind("create-absolute-path-error"), Error) {
9
+ value;
10
+ constructor(value) {
11
+ super(null, `Invalid absolute path: ${value}`);
12
+ this.value = value;
13
+ }
14
+ };
15
+ function createAbsoluteOrThrow(value) {
16
+ const result = require_createAbsolute.createAbsolute(value);
17
+ if (require_is.isLeft(result)) throw new CreateAbsolutePathError(require_unwrap.unwrapLeft(result));
18
+ return require_unwrap$1.unwrapRight(result);
19
+ }
20
+ //#endregion
21
+ exports.CreateAbsolutePathError = CreateAbsolutePathError;
22
+ exports.createAbsoluteOrThrow = createAbsoluteOrThrow;
@@ -0,0 +1,9 @@
1
+ import { Absolute } from './constraints';
2
+ import * as DKind from '../kind';
3
+ declare const CreateAbsolutePathError_base: DKind.KindClass<DKind.Handler<DKind.Definition<"@DuplojsLangPath/create-absolute-path-error", unknown>>, ErrorConstructor>;
4
+ export declare class CreateAbsolutePathError extends CreateAbsolutePathError_base {
5
+ value: string;
6
+ constructor(value: string);
7
+ }
8
+ export declare function createAbsoluteOrThrow(value: string): string & Absolute;
9
+ export {};
@@ -0,0 +1,21 @@
1
+ import { parentClass } from "../kind/parentClass.mjs";
2
+ import { isLeft } from "../either/left/is.mjs";
3
+ import { unwrapLeft } from "../either/left/unwrap.mjs";
4
+ import { unwrapRight } from "../either/right/unwrap.mjs";
5
+ import { createAbsolute } from "./createAbsolute.mjs";
6
+ import { createKind } from "./kind.mjs";
7
+ //#region scripts/path/createAbsoluteOrThrow.ts
8
+ var CreateAbsolutePathError = class extends parentClass(createKind("create-absolute-path-error"), Error) {
9
+ value;
10
+ constructor(value) {
11
+ super(null, `Invalid absolute path: ${value}`);
12
+ this.value = value;
13
+ }
14
+ };
15
+ function createAbsoluteOrThrow(value) {
16
+ const result = createAbsolute(value);
17
+ if (isLeft(result)) throw new CreateAbsolutePathError(unwrapLeft(result));
18
+ return unwrapRight(result);
19
+ }
20
+ //#endregion
21
+ export { CreateAbsolutePathError, createAbsoluteOrThrow };
@@ -0,0 +1,22 @@
1
+ const require_parentClass = require("../kind/parentClass.cjs");
2
+ const require_is = require("../either/left/is.cjs");
3
+ const require_unwrap = require("../either/left/unwrap.cjs");
4
+ const require_unwrap$1 = require("../either/right/unwrap.cjs");
5
+ const require_create = require("./create.cjs");
6
+ const require_kind = require("./kind.cjs");
7
+ //#region scripts/path/createOrThrow.ts
8
+ var CreatePathError = class extends require_parentClass.parentClass(require_kind.createKind("create-path-error"), Error) {
9
+ value;
10
+ constructor(value) {
11
+ super(null, `Invalid path: ${value}`);
12
+ this.value = value;
13
+ }
14
+ };
15
+ function createOrThrow(value) {
16
+ const result = require_create.create(value);
17
+ if (require_is.isLeft(result)) throw new CreatePathError(require_unwrap.unwrapLeft(result));
18
+ return require_unwrap$1.unwrapRight(result);
19
+ }
20
+ //#endregion
21
+ exports.CreatePathError = CreatePathError;
22
+ exports.createOrThrow = createOrThrow;
@@ -0,0 +1,9 @@
1
+ import { Path } from './constraints';
2
+ import * as DKind from '../kind';
3
+ declare const CreatePathError_base: DKind.KindClass<DKind.Handler<DKind.Definition<"@DuplojsLangPath/create-path-error", unknown>>, ErrorConstructor>;
4
+ export declare class CreatePathError extends CreatePathError_base {
5
+ value: string;
6
+ constructor(value: string);
7
+ }
8
+ export declare function createOrThrow(value: string): string & Path;
9
+ export {};
@@ -0,0 +1,21 @@
1
+ import { parentClass } from "../kind/parentClass.mjs";
2
+ import { isLeft } from "../either/left/is.mjs";
3
+ import { unwrapLeft } from "../either/left/unwrap.mjs";
4
+ import { unwrapRight } from "../either/right/unwrap.mjs";
5
+ import { create } from "./create.mjs";
6
+ import { createKind } from "./kind.mjs";
7
+ //#region scripts/path/createOrThrow.ts
8
+ var CreatePathError = class extends parentClass(createKind("create-path-error"), Error) {
9
+ value;
10
+ constructor(value) {
11
+ super(null, `Invalid path: ${value}`);
12
+ this.value = value;
13
+ }
14
+ };
15
+ function createOrThrow(value) {
16
+ const result = create(value);
17
+ if (isLeft(result)) throw new CreatePathError(unwrapLeft(result));
18
+ return unwrapRight(result);
19
+ }
20
+ //#endregion
21
+ export { CreatePathError, createOrThrow };
@@ -0,0 +1,12 @@
1
+ const require_error = require("../either/left/error.cjs");
2
+ const require_success = require("../either/right/success.cjs");
3
+ const require_normalize = require("./normalize.cjs");
4
+ const require_isSegment = require("./isSegment.cjs");
5
+ //#region scripts/path/createSegment.ts
6
+ function createSegment(value) {
7
+ const result = require_normalize.normalize(value);
8
+ if (result && require_isSegment.isSegment(result)) return require_success.success(result);
9
+ return require_error.error(value);
10
+ }
11
+ //#endregion
12
+ exports.createSegment = createSegment;
@@ -0,0 +1,3 @@
1
+ import { Segment } from './constraints';
2
+ import * as DEither from '../either';
3
+ export declare function createSegment(value: string): (DEither.Success<string & Segment> | DEither.Error<string>);
@@ -0,0 +1,12 @@
1
+ import { error } from "../either/left/error.mjs";
2
+ import { success } from "../either/right/success.mjs";
3
+ import { normalize } from "./normalize.mjs";
4
+ import { isSegment } from "./isSegment.mjs";
5
+ //#region scripts/path/createSegment.ts
6
+ function createSegment(value) {
7
+ const result = normalize(value);
8
+ if (result && isSegment(result)) return success(result);
9
+ return error(value);
10
+ }
11
+ //#endregion
12
+ export { createSegment };
@@ -0,0 +1,22 @@
1
+ const require_parentClass = require("../kind/parentClass.cjs");
2
+ const require_is = require("../either/left/is.cjs");
3
+ const require_unwrap = require("../either/left/unwrap.cjs");
4
+ const require_unwrap$1 = require("../either/right/unwrap.cjs");
5
+ const require_kind = require("./kind.cjs");
6
+ const require_createSegment = require("./createSegment.cjs");
7
+ //#region scripts/path/createSegmentOrThrow.ts
8
+ var CreateSegmentPathError = class extends require_parentClass.parentClass(require_kind.createKind("create-segment-path-error"), Error) {
9
+ value;
10
+ constructor(value) {
11
+ super(null, `Invalid segment path: ${value}`);
12
+ this.value = value;
13
+ }
14
+ };
15
+ function createSegmentOrThrow(value) {
16
+ const result = require_createSegment.createSegment(value);
17
+ if (require_is.isLeft(result)) throw new CreateSegmentPathError(require_unwrap.unwrapLeft(result));
18
+ return require_unwrap$1.unwrapRight(result);
19
+ }
20
+ //#endregion
21
+ exports.CreateSegmentPathError = CreateSegmentPathError;
22
+ exports.createSegmentOrThrow = createSegmentOrThrow;
@@ -0,0 +1,9 @@
1
+ import { Segment } from './constraints';
2
+ import * as DKind from '../kind';
3
+ declare const CreateSegmentPathError_base: DKind.KindClass<DKind.Handler<DKind.Definition<"@DuplojsLangPath/create-segment-path-error", unknown>>, ErrorConstructor>;
4
+ export declare class CreateSegmentPathError extends CreateSegmentPathError_base {
5
+ value: string;
6
+ constructor(value: string);
7
+ }
8
+ export declare function createSegmentOrThrow(value: string): string & Segment;
9
+ export {};
@@ -0,0 +1,21 @@
1
+ import { parentClass } from "../kind/parentClass.mjs";
2
+ import { isLeft } from "../either/left/is.mjs";
3
+ import { unwrapLeft } from "../either/left/unwrap.mjs";
4
+ import { unwrapRight } from "../either/right/unwrap.mjs";
5
+ import { createKind } from "./kind.mjs";
6
+ import { createSegment } from "./createSegment.mjs";
7
+ //#region scripts/path/createSegmentOrThrow.ts
8
+ var CreateSegmentPathError = class extends parentClass(createKind("create-segment-path-error"), Error) {
9
+ value;
10
+ constructor(value) {
11
+ super(null, `Invalid segment path: ${value}`);
12
+ this.value = value;
13
+ }
14
+ };
15
+ function createSegmentOrThrow(value) {
16
+ const result = createSegment(value);
17
+ if (isLeft(result)) throw new CreateSegmentPathError(unwrapLeft(result));
18
+ return unwrapRight(result);
19
+ }
20
+ //#endregion
21
+ export { CreateSegmentPathError, createSegmentOrThrow };
@@ -0,0 +1,6 @@
1
+ //#region scripts/path/declareAbsolutePath.ts
2
+ function declareAbsolutePath(value) {
3
+ return value;
4
+ }
5
+ //#endregion
6
+ exports.declareAbsolutePath = declareAbsolutePath;
@@ -0,0 +1,3 @@
1
+ import { Absolute } from './constraints';
2
+ import { RequireLiteralAbsolutePath } from './types';
3
+ export declare function declareAbsolutePath<GenericValue extends string>(value: (GenericValue & RequireLiteralAbsolutePath<GenericValue>)): GenericValue & Absolute;
@@ -0,0 +1,6 @@
1
+ //#region scripts/path/declareAbsolutePath.ts
2
+ function declareAbsolutePath(value) {
3
+ return value;
4
+ }
5
+ //#endregion
6
+ export { declareAbsolutePath };
@@ -0,0 +1,6 @@
1
+ //#region scripts/path/declarePath.ts
2
+ function declarePath(value) {
3
+ return value;
4
+ }
5
+ //#endregion
6
+ exports.declarePath = declarePath;
@@ -0,0 +1,3 @@
1
+ import { Path } from './constraints';
2
+ import { RequireLiteralPath } from './types';
3
+ export declare function declarePath<GenericValue extends string>(value: (GenericValue & RequireLiteralPath<GenericValue>)): GenericValue & Path;
@@ -0,0 +1,6 @@
1
+ //#region scripts/path/declarePath.ts
2
+ function declarePath(value) {
3
+ return value;
4
+ }
5
+ //#endregion
6
+ export { declarePath };
@@ -0,0 +1,6 @@
1
+ //#region scripts/path/declareSegment.ts
2
+ function declareSegment(value) {
3
+ return value;
4
+ }
5
+ //#endregion
6
+ exports.declareSegment = declareSegment;
@@ -0,0 +1,3 @@
1
+ import { Segment } from './constraints';
2
+ import { RequireLiteralSegmentPath } from './types';
3
+ export declare function declareSegment<GenericValue extends string>(value: (GenericValue & RequireLiteralSegmentPath<GenericValue>)): GenericValue & Segment;
@@ -0,0 +1,6 @@
1
+ //#region scripts/path/declareSegment.ts
2
+ function declareSegment(value) {
3
+ return value;
4
+ }
5
+ //#endregion
6
+ export { declareSegment };