@duplojs/lang 0.0.1-beta.8 → 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 (267) 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/operators/addTime.d.ts +2 -4
  8. package/dist/common/constraint/cast/index.d.ts +5 -5
  9. package/dist/common/constraint/cast/string.d.ts +4 -0
  10. package/dist/common/constraint/infer/index.d.ts +2 -1
  11. package/dist/common/constraint/infer/string.d.ts +1 -0
  12. package/dist/common/constraint/types/index.d.ts +1 -0
  13. package/dist/common/constraint/types/maybe.d.ts +2 -0
  14. package/dist/common/formData.d.ts +2 -1
  15. package/dist/common/memo.cjs +3 -2
  16. package/dist/common/memo.mjs +3 -2
  17. package/dist/common/memoPromise.cjs +3 -2
  18. package/dist/common/memoPromise.mjs +3 -2
  19. package/dist/common/timeout.cjs +2 -2
  20. package/dist/common/timeout.d.ts +1 -1
  21. package/dist/common/timeout.mjs +2 -2
  22. package/dist/common/types/applyPromiseIf.d.ts +1 -0
  23. package/dist/common/types/index.d.ts +2 -0
  24. package/dist/common/types/isObject.d.ts +8 -0
  25. package/dist/common/types/json.d.ts +12 -1
  26. package/dist/dataStructure/common/codec/base.cjs +2 -2
  27. package/dist/dataStructure/common/codec/base.mjs +2 -2
  28. package/dist/dataStructure/common/codec/defaults/string.cjs +1 -1
  29. package/dist/dataStructure/common/codec/defaults/string.d.ts +1 -1
  30. package/dist/dataStructure/common/codec/defaults/string.mjs +1 -1
  31. package/dist/dataStructure/common/{error.cjs → error/base.cjs} +22 -5
  32. package/dist/dataStructure/common/{error.d.ts → error/base.d.ts} +18 -9
  33. package/dist/dataStructure/common/{error.mjs → error/base.mjs} +21 -6
  34. package/dist/dataStructure/common/error/defaultInterpreter.cjs +87 -0
  35. package/dist/dataStructure/common/error/defaultInterpreter.d.ts +60 -0
  36. package/dist/dataStructure/common/error/defaultInterpreter.mjs +86 -0
  37. package/dist/dataStructure/common/error/index.d.ts +3 -0
  38. package/dist/dataStructure/common/error/interpreter.cjs +44 -0
  39. package/dist/dataStructure/common/error/interpreter.d.ts +32 -0
  40. package/dist/dataStructure/common/error/interpreter.mjs +44 -0
  41. package/dist/dataStructure/common/index.d.ts +0 -1
  42. package/dist/dataStructure/constraint/defaults/allowedCharacters.d.ts +1 -3
  43. package/dist/dataStructure/constraint/types/constraints.d.ts +1 -0
  44. package/dist/dataStructure/fundamentalType/types/fundamentalTypes.d.ts +1 -0
  45. package/dist/dataStructure/helpers/extend.cjs +1 -1
  46. package/dist/dataStructure/helpers/extend.d.ts +1 -1
  47. package/dist/dataStructure/helpers/extend.mjs +1 -1
  48. package/dist/dataStructure/helpers/index.d.ts +6 -2
  49. package/dist/dataStructure/helpers/isNullable.cjs +12 -0
  50. package/dist/dataStructure/helpers/isNullable.d.ts +2 -0
  51. package/dist/dataStructure/helpers/isNullable.mjs +12 -0
  52. package/dist/dataStructure/helpers/isOptional.cjs +12 -0
  53. package/dist/dataStructure/helpers/isOptional.d.ts +2 -0
  54. package/dist/dataStructure/helpers/isOptional.mjs +12 -0
  55. package/dist/dataStructure/helpers/partial.cjs +1 -1
  56. package/dist/dataStructure/helpers/partial.mjs +1 -1
  57. package/dist/dataStructure/helpers/required.cjs +1 -1
  58. package/dist/dataStructure/helpers/required.mjs +1 -1
  59. package/dist/dataStructure/helpers/typeStructureIdentifier.cjs +14 -0
  60. package/dist/dataStructure/helpers/typeStructureIdentifier.d.ts +6 -0
  61. package/dist/dataStructure/helpers/typeStructureIdentifier.mjs +14 -0
  62. package/dist/dataStructure/helpers/unwrapLazy.cjs +9 -0
  63. package/dist/dataStructure/helpers/unwrapLazy.d.ts +2 -0
  64. package/dist/dataStructure/helpers/unwrapLazy.mjs +9 -0
  65. package/dist/dataStructure/index.cjs +56 -35
  66. package/dist/dataStructure/index.mjs +18 -5
  67. package/dist/dataStructure/structure/base.cjs +31 -19
  68. package/dist/dataStructure/structure/base.d.ts +16 -16
  69. package/dist/dataStructure/structure/base.mjs +25 -13
  70. package/dist/dataStructure/structure/defaults/array.cjs +10 -0
  71. package/dist/dataStructure/structure/defaults/array.d.ts +1 -1
  72. package/dist/dataStructure/structure/defaults/array.mjs +10 -0
  73. package/dist/dataStructure/structure/defaults/lazy.cjs +1 -0
  74. package/dist/dataStructure/structure/defaults/lazy.d.ts +1 -1
  75. package/dist/dataStructure/structure/defaults/lazy.mjs +1 -0
  76. package/dist/dataStructure/structure/defaults/nonEncodableString.cjs +1 -0
  77. package/dist/dataStructure/structure/defaults/nonEncodableString.mjs +1 -0
  78. package/dist/dataStructure/structure/defaults/object.cjs +18 -7
  79. package/dist/dataStructure/structure/defaults/object.d.ts +3 -2
  80. package/dist/dataStructure/structure/defaults/object.mjs +18 -7
  81. package/dist/dataStructure/structure/defaults/record.cjs +20 -7
  82. package/dist/dataStructure/structure/defaults/record.d.ts +1 -1
  83. package/dist/dataStructure/structure/defaults/record.mjs +20 -7
  84. package/dist/dataStructure/structure/defaults/type.cjs +1 -0
  85. package/dist/dataStructure/structure/defaults/type.d.ts +1 -1
  86. package/dist/dataStructure/structure/defaults/type.mjs +1 -0
  87. package/dist/dataStructure/structure/defaults/union.cjs +26 -6
  88. package/dist/dataStructure/structure/defaults/union.d.ts +1 -1
  89. package/dist/dataStructure/structure/defaults/union.mjs +21 -1
  90. package/dist/dataStructure/structure/types/value.d.ts +2 -0
  91. package/dist/dataStructure/type/types/types.d.ts +1 -0
  92. package/dist/either/index.cjs +29 -7
  93. package/dist/either/index.d.ts +4 -0
  94. package/dist/either/index.mjs +22 -8
  95. package/dist/either/left/create.d.ts +2 -1
  96. package/dist/either/left/index.d.ts +3 -2
  97. package/dist/either/left/none.cjs +15 -0
  98. package/dist/either/left/none.d.ts +7 -0
  99. package/dist/either/left/none.mjs +14 -0
  100. package/dist/either/matchInformationOtherwise.d.ts +1 -1
  101. package/dist/either/rewriteInformation.cjs +22 -0
  102. package/dist/either/rewriteInformation.d.ts +14 -0
  103. package/dist/either/rewriteInformation.mjs +22 -0
  104. package/dist/either/right/asyncGroup.cjs +2 -2
  105. package/dist/either/right/asyncGroup.mjs +2 -2
  106. package/dist/either/right/create.d.ts +2 -1
  107. package/dist/either/right/group.cjs +1 -1
  108. package/dist/either/right/group.mjs +1 -1
  109. package/dist/either/right/index.d.ts +6 -5
  110. package/dist/either/right/some.cjs +15 -0
  111. package/dist/either/right/some.d.ts +7 -0
  112. package/dist/either/right/some.mjs +14 -0
  113. package/dist/either/toMaybe.cjs +12 -0
  114. package/dist/either/toMaybe.d.ts +5 -0
  115. package/dist/either/toMaybe.mjs +12 -0
  116. package/dist/either/types/index.d.ts +1 -0
  117. package/dist/either/types/mayBe.d.ts +3 -0
  118. package/dist/either/unwrapOr.cjs +14 -0
  119. package/dist/either/unwrapOr.d.ts +8 -0
  120. package/dist/either/unwrapOr.mjs +14 -0
  121. package/dist/either/unwrapOtherwise.cjs +14 -0
  122. package/dist/either/unwrapOtherwise.d.ts +8 -0
  123. package/dist/either/unwrapOtherwise.mjs +14 -0
  124. package/dist/generator/reduce.cjs +2 -1
  125. package/dist/generator/reduce.mjs +1 -1
  126. package/dist/invocation/evidence.d.ts +1 -1
  127. package/dist/invocation/flow/base.cjs +4 -4
  128. package/dist/invocation/flow/base.d.ts +1 -1
  129. package/dist/invocation/flow/base.mjs +4 -4
  130. package/dist/invocation/flow/controller/defaults/debounce.cjs +1 -1
  131. package/dist/invocation/flow/controller/defaults/debounce.mjs +1 -1
  132. package/dist/invocation/flow/controller/defaults/throttling.cjs +1 -1
  133. package/dist/invocation/flow/controller/defaults/throttling.mjs +1 -1
  134. package/dist/invocation/index.cjs +18 -8
  135. package/dist/invocation/index.d.ts +3 -1
  136. package/dist/invocation/index.mjs +12 -6
  137. package/dist/invocation/reader.cjs +30 -0
  138. package/dist/invocation/reader.d.ts +30 -0
  139. package/dist/invocation/reader.mjs +29 -0
  140. package/dist/invocation/resolver.cjs +31 -0
  141. package/dist/invocation/resolver.d.ts +14 -0
  142. package/dist/invocation/resolver.mjs +31 -0
  143. package/dist/invocation/signature.cjs +8 -0
  144. package/dist/invocation/signature.d.ts +7 -0
  145. package/dist/invocation/signature.mjs +8 -0
  146. package/dist/modeling/entity/base.cjs +22 -11
  147. package/dist/modeling/entity/base.d.ts +16 -8
  148. package/dist/modeling/entity/base.mjs +16 -5
  149. package/dist/modeling/entity/helper.d.ts +6 -8
  150. package/dist/modeling/entity/namespace.cjs +0 -2
  151. package/dist/modeling/entity/namespace.d.ts +0 -2
  152. package/dist/modeling/entity/namespace.mjs +0 -2
  153. package/dist/modeling/fact/base.cjs +36 -0
  154. package/dist/modeling/fact/base.d.ts +29 -0
  155. package/dist/modeling/fact/base.mjs +35 -0
  156. package/dist/modeling/fact/index.d.ts +1 -0
  157. package/dist/modeling/flag/base.cjs +2 -6
  158. package/dist/modeling/flag/base.d.ts +10 -11
  159. package/dist/modeling/flag/base.mjs +2 -6
  160. package/dist/modeling/index.cjs +17 -12
  161. package/dist/modeling/index.d.ts +1 -0
  162. package/dist/modeling/index.mjs +5 -2
  163. package/dist/modeling/newType/base.cjs +12 -11
  164. package/dist/modeling/newType/base.d.ts +8 -8
  165. package/dist/modeling/newType/base.mjs +6 -5
  166. package/dist/modeling/taggedObject/base.cjs +22 -11
  167. package/dist/modeling/taggedObject/base.d.ts +12 -7
  168. package/dist/modeling/taggedObject/base.mjs +16 -5
  169. package/dist/object/assign.d.ts +3 -3
  170. package/dist/object/deepOverride.cjs +33 -0
  171. package/dist/object/deepOverride.d.ts +20 -0
  172. package/dist/object/deepOverride.mjs +33 -0
  173. package/dist/object/entries.d.ts +3 -3
  174. package/dist/object/index.cjs +4 -1
  175. package/dist/object/index.d.ts +1 -0
  176. package/dist/object/index.mjs +4 -2
  177. package/dist/object/isSimple.cjs +1 -1
  178. package/dist/object/isSimple.mjs +1 -1
  179. package/dist/object/keys.d.ts +1 -1
  180. package/dist/object/override.cjs +1 -1
  181. package/dist/object/override.d.ts +5 -2
  182. package/dist/object/override.mjs +1 -1
  183. package/dist/object/types/assign.d.ts +2 -0
  184. package/dist/object/types/forbiddenKey.d.ts +1 -1
  185. package/dist/object/types/forbiddenUndefinedProps.d.ts +3 -0
  186. package/dist/object/types/hasKeySignature.d.ts +1 -0
  187. package/dist/object/types/index.d.ts +6 -2
  188. package/dist/object/types/keyofWithoutSignature.d.ts +3 -0
  189. package/dist/object/types/override.d.ts +4 -0
  190. package/dist/object/types/split.d.ts +2 -2
  191. package/dist/object/values.d.ts +1 -1
  192. package/dist/path/create.cjs +11 -0
  193. package/dist/path/create.d.ts +3 -0
  194. package/dist/path/create.mjs +11 -0
  195. package/dist/path/createAbsolute.cjs +12 -0
  196. package/dist/path/createAbsolute.d.ts +3 -0
  197. package/dist/path/createAbsolute.mjs +12 -0
  198. package/dist/path/createAbsoluteOrThrow.cjs +22 -0
  199. package/dist/path/createAbsoluteOrThrow.d.ts +9 -0
  200. package/dist/path/createAbsoluteOrThrow.mjs +21 -0
  201. package/dist/path/createOrThrow.cjs +22 -0
  202. package/dist/path/createOrThrow.d.ts +9 -0
  203. package/dist/path/createOrThrow.mjs +21 -0
  204. package/dist/path/createSegment.cjs +12 -0
  205. package/dist/path/createSegment.d.ts +3 -0
  206. package/dist/path/createSegment.mjs +12 -0
  207. package/dist/path/createSegmentOrThrow.cjs +22 -0
  208. package/dist/path/createSegmentOrThrow.d.ts +9 -0
  209. package/dist/path/createSegmentOrThrow.mjs +21 -0
  210. package/dist/path/declareAbsolutePath.cjs +6 -0
  211. package/dist/path/declareAbsolutePath.d.ts +3 -0
  212. package/dist/path/declareAbsolutePath.mjs +6 -0
  213. package/dist/path/declarePath.cjs +6 -0
  214. package/dist/path/declarePath.d.ts +3 -0
  215. package/dist/path/declarePath.mjs +6 -0
  216. package/dist/path/declareSegment.cjs +6 -0
  217. package/dist/path/declareSegment.d.ts +3 -0
  218. package/dist/path/declareSegment.mjs +6 -0
  219. package/dist/path/index.cjs +39 -3
  220. package/dist/path/index.d.ts +10 -0
  221. package/dist/path/index.mjs +27 -4
  222. package/dist/path/kind.cjs +4 -0
  223. package/dist/path/kind.d.ts +2 -0
  224. package/dist/path/kind.mjs +5 -0
  225. package/dist/pattern/index.cjs +6 -0
  226. package/dist/pattern/index.d.ts +2 -0
  227. package/dist/pattern/index.mjs +5 -1
  228. package/dist/pattern/match/builder.cjs +1 -1
  229. package/dist/pattern/match/builder.mjs +1 -1
  230. package/dist/pattern/matchWithEntityOtherwise.d.ts +2 -2
  231. package/dist/pattern/matchWithFact.cjs +12 -0
  232. package/dist/pattern/matchWithFact.d.ts +12 -0
  233. package/dist/pattern/matchWithFact.mjs +12 -0
  234. package/dist/pattern/matchWithFactOtherwise.cjs +13 -0
  235. package/dist/pattern/matchWithFactOtherwise.d.ts +14 -0
  236. package/dist/pattern/matchWithFactOtherwise.mjs +13 -0
  237. package/dist/pattern/matchWithNumber.d.ts +4 -4
  238. package/dist/pattern/matchWithNumberOtherwise.d.ts +4 -4
  239. package/dist/pattern/matchWithString.d.ts +4 -4
  240. package/dist/pattern/matchWithStringOtherwise.d.ts +4 -4
  241. package/dist/pattern/matchWithTaggedObjectOtherwise.d.ts +2 -2
  242. package/dist/pattern/types/complexUnMatchedValue/getIncompleteUnion.d.ts +8 -8
  243. package/dist/string/capitalize.d.ts +1 -1
  244. package/dist/string/concat.d.ts +2 -2
  245. package/dist/string/constraints/allowedCharacters.d.ts +3 -3
  246. package/dist/string/isComposedOf.cjs +0 -1
  247. package/dist/string/isComposedOf.d.ts +5 -8
  248. package/dist/string/isComposedOf.mjs +0 -1
  249. package/dist/string/prepend.d.ts +2 -2
  250. package/dist/string/split.cjs +1 -0
  251. package/dist/string/split.d.ts +3 -3
  252. package/dist/string/split.mjs +1 -0
  253. package/dist/string/toLowerCase.d.ts +1 -1
  254. package/dist/string/toUpperCase.d.ts +1 -1
  255. package/dist/string/types/IsAllowedString.d.ts +5 -0
  256. package/dist/string/types/index.d.ts +1 -0
  257. package/dist/string/uncapitalize.d.ts +1 -1
  258. package/dist/tuple/types/map.d.ts +1 -1
  259. package/package.json +16 -30
  260. package/dist/dataStructure/common/errorInterpreter.cjs +0 -45
  261. package/dist/dataStructure/common/errorInterpreter.d.ts +0 -32
  262. package/dist/dataStructure/common/errorInterpreter.mjs +0 -45
  263. package/dist/invocation/useCase.cjs +0 -26
  264. package/dist/invocation/useCase.d.ts +0 -28
  265. package/dist/invocation/useCase.mjs +0 -25
  266. package/dist/object/types/assignObjects.d.ts +0 -2
  267. /package/{README.md → README} +0 -0
@@ -3,7 +3,7 @@ import { left } from "../../either/left/create.mjs";
3
3
  import { right } from "../../either/right/create.mjs";
4
4
  import { justExec } from "../../common/justExec.mjs";
5
5
  import { ErrorSymbol, SuccessSymbol } from "../../dataStructure/common/resultSymbol.mjs";
6
- import { createGetErrorHandler } from "../../dataStructure/common/error.mjs";
6
+ import { ErrorPromise, createGetErrorHandler } from "../../dataStructure/common/error/base.mjs";
7
7
  import { createStructure } from "../../dataStructure/structure/base.mjs";
8
8
  import { createKind } from "../kind.mjs";
9
9
  //#region scripts/modeling/newType/base.ts
@@ -19,6 +19,7 @@ const NewTypeStructure = createStructure(newTypeStructureKind, ({ init }) => (na
19
19
  executeCheck: (self, data, errorHandler) => callThen(self.definition.inner.executeCheck(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : executeNewTypeConstraints(self, data, errorHandler)),
20
20
  executeEncode: (self, codec, data, errorHandler) => callThen(self.definition.inner.executeEncode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === ErrorSymbol ? ErrorSymbol : callThen(executeNewTypeConstraints(self, data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedInnerResult))),
21
21
  executeDecode: (self, codec, data, errorHandler) => callThen(self.definition.inner.executeDecode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === ErrorSymbol ? ErrorSymbol : callThen(executeNewTypeConstraints(self, awaitedInnerResult, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedInnerResult, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedInnerResult))),
22
+ executeParse: (self, codecContext, data, errorHandler) => callThen(self.definition.inner.executeParse(codecContext, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === ErrorSymbol ? ErrorSymbol : callThen(executeNewTypeConstraints(self, awaitedInnerResult, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedInnerResult, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedInnerResult))),
22
23
  isAsynchronous: (self) => self.definition.inner.isAsynchronous() || self.definition.newTypeConstraints.some((value) => value.isAsynchronous())
23
24
  }, {
24
25
  name,
@@ -30,14 +31,14 @@ const NewTypeStructure = createStructure(newTypeStructureKind, ({ init }) => (na
30
31
  const errorHandler = createGetErrorHandler();
31
32
  const [codecs, data] = args;
32
33
  const result = self.executeDecode(codecs.context.value, data, errorHandler);
33
- if (result instanceof Promise) return left("async-error", void 0);
34
+ if (result instanceof Promise) return left("async-error", new ErrorPromise());
34
35
  if (result === ErrorSymbol) return left("map-error", errorHandler().createError());
35
36
  return right("map-success", result);
36
37
  },
37
38
  map: (self, data) => {
38
39
  const errorHandler = createGetErrorHandler();
39
40
  const result = self.executeCheck(data, errorHandler);
40
- if (result instanceof Promise) return left("async-error", void 0);
41
+ if (result instanceof Promise) return left("async-error", new ErrorPromise());
41
42
  if (result === ErrorSymbol) return left("map-error", errorHandler().createError());
42
43
  return right("map-success", data);
43
44
  },
@@ -54,11 +55,11 @@ const NewTypeStructure = createStructure(newTypeStructureKind, ({ init }) => (na
54
55
  return right("map-success", result);
55
56
  });
56
57
  },
57
- asyncMap: (self, data) => justExec(async () => {
58
+ asyncMap: async (self, data) => {
58
59
  const errorHandler = createGetErrorHandler();
59
60
  if (await self.executeCheck(data, errorHandler) === ErrorSymbol) return left("map-error", errorHandler().createError());
60
61
  return right("map-success", data);
61
- })
62
+ }
62
63
  }));
63
64
  //#endregion
64
65
  export { NewTypeStructure, newTypeStructureKind };
@@ -3,15 +3,15 @@ const require_create = require("../../either/left/create.cjs");
3
3
  const require_create$1 = require("../../either/right/create.cjs");
4
4
  const require_justExec = require("../../common/justExec.cjs");
5
5
  const require_resultSymbol = require("../../dataStructure/common/resultSymbol.cjs");
6
- const require_error = require("../../dataStructure/common/error.cjs");
7
- const require_base = require("../../dataStructure/structure/base.cjs");
6
+ const require_base = require("../../dataStructure/common/error/base.cjs");
7
+ const require_base$1 = require("../../dataStructure/structure/base.cjs");
8
8
  const require_nonEncodableString = require("../../dataStructure/structure/defaults/nonEncodableString.cjs");
9
9
  const require_object = require("../../dataStructure/structure/defaults/object.cjs");
10
10
  const require_kind = require("../kind.cjs");
11
11
  //#region scripts/modeling/taggedObject/base.ts
12
12
  const objectTagKind = require_kind.createKind("object-tag");
13
13
  const taggedObjectStructureKind = require_kind.createKind("tagged-object-structure");
14
- const TaggedObjectStructure = require_base.createStructure(taggedObjectStructureKind, ({ init }) => (name, shape) => init({
14
+ const TaggedObjectStructure = require_base$1.createStructure(taggedObjectStructureKind, ({ init }) => (name, shape) => init({
15
15
  inner: require_object.ObjectStructure({
16
16
  ...shape,
17
17
  [objectTagKind.runTimeKey]: require_nonEncodableString.NonEncodableStringStructure(name)
@@ -21,6 +21,7 @@ const TaggedObjectStructure = require_base.createStructure(taggedObjectStructure
21
21
  executeCheck: (self, data, errorHandler) => self.definition.inner.executeCheck(data, errorHandler),
22
22
  executeEncode: (self, codecContext, data, errorHandler) => self.definition.inner.executeEncode(codecContext, data, errorHandler),
23
23
  executeDecode: (self, codecContext, data, errorHandler) => self.definition.inner.executeDecode(codecContext, data, errorHandler),
24
+ executeParse: (self, codecContext, data, errorHandler) => self.definition.inner.executeParse(codecContext, data, errorHandler),
24
25
  isAsynchronous: (self) => self.definition.inner.isAsynchronous()
25
26
  }, {
26
27
  name,
@@ -33,24 +34,24 @@ const TaggedObjectStructure = require_base.createStructure(taggedObjectStructure
33
34
  const [codecs] = args;
34
35
  return (value) => self.decodeMap(codecs, value);
35
36
  }
36
- const errorHandler = require_error.createGetErrorHandler();
37
+ const errorHandler = require_base.createGetErrorHandler();
37
38
  const [codecs, data] = args;
38
39
  const result = self.executeDecode(codecs.context.value, require_isSimple.isSimple(data) ? {
39
40
  ...data,
40
41
  [objectTagKind.runTimeKey]: name
41
42
  } : data, errorHandler);
42
- if (result instanceof Promise) return require_create.left("async-error", void 0);
43
+ if (result instanceof Promise) return require_create.left("async-error", new require_base.ErrorPromise());
43
44
  if (result === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
44
45
  return require_create$1.right("map-success", result);
45
46
  },
46
47
  map: (self, data) => {
47
- const errorHandler = require_error.createGetErrorHandler();
48
+ const errorHandler = require_base.createGetErrorHandler();
48
49
  const formattedData = require_isSimple.isSimple(data) ? {
49
50
  ...data,
50
51
  [objectTagKind.runTimeKey]: name
51
52
  } : data;
52
53
  const result = self.executeCheck(formattedData, errorHandler);
53
- if (result instanceof Promise) return require_create.left("async-error", void 0);
54
+ if (result instanceof Promise) return require_create.left("async-error", new require_base.ErrorPromise());
54
55
  if (result === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
55
56
  return require_create$1.right("map-success", formattedData);
56
57
  },
@@ -60,7 +61,7 @@ const TaggedObjectStructure = require_base.createStructure(taggedObjectStructure
60
61
  return (value) => self.asyncDecodeMap(codecs, value);
61
62
  }
62
63
  return require_justExec.justExec(async () => {
63
- const errorHandler = require_error.createGetErrorHandler();
64
+ const errorHandler = require_base.createGetErrorHandler();
64
65
  const [codecs, data] = args;
65
66
  const result = await self.executeDecode(codecs.context.value, require_isSimple.isSimple(data) ? {
66
67
  ...data,
@@ -70,15 +71,25 @@ const TaggedObjectStructure = require_base.createStructure(taggedObjectStructure
70
71
  return require_create$1.right("map-success", result);
71
72
  });
72
73
  },
73
- asyncMap: (self, data) => require_justExec.justExec(async () => {
74
- const errorHandler = require_error.createGetErrorHandler();
74
+ asyncMap: async (self, data) => {
75
+ const errorHandler = require_base.createGetErrorHandler();
75
76
  const formattedData = require_isSimple.isSimple(data) ? {
76
77
  ...data,
77
78
  [objectTagKind.runTimeKey]: name
78
79
  } : data;
79
80
  if (await self.executeCheck(formattedData, errorHandler) === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
80
81
  return require_create$1.right("map-success", formattedData);
81
- })
82
+ },
83
+ update: (self, ...args) => {
84
+ if (args.length === 1) {
85
+ const [update] = args;
86
+ return (input) => self.update(input, update);
87
+ }
88
+ const [input, update] = args;
89
+ const updatedTaggedObject = { [objectTagKind.runTimeKey]: name };
90
+ for (const key of self.definition.inner.definition.keys) updatedTaggedObject[key] = update[key] === void 0 ? input[key] : update[key];
91
+ return updatedTaggedObject;
92
+ }
82
93
  }));
83
94
  //#endregion
84
95
  exports.TaggedObjectStructure = TaggedObjectStructure;
@@ -36,14 +36,19 @@ export type TaggedObjectMap<GenericValue extends unknown, GenericRawValue = DCom
36
36
  ]> extends true ? {
37
37
  [Prop in keyof GenericRawValue]: TaggedObjectMap<GenericRawValue[Prop]>;
38
38
  } : GenericRawValue : GenericRawValue;
39
- export interface TaggedObjectStructure<GenericTaggedObject extends ObjectTag = ObjectTag> extends DCommon.Forward<DDataStructure.Structure<GenericTaggedObject, TaggedObjectStructureDefinition> & DKind.Kind<typeof taggedObjectStructureKind>> {
39
+ export type TaggedObjectUpdate<GenericTaggedObject extends ObjectTag, GenericNewProperties extends object> = Extract<(ObjectTag<GetTagValue<GenericTaggedObject>> & DCommon.SimplifyTopLevel<DKind.Remove<GenericTaggedObject> extends infer InferredProperties ? {
40
+ [Prop in keyof InferredProperties]: Prop extends keyof GenericNewProperties ? GenericNewProperties[Prop] extends infer InferredNewValue ? InferredNewValue extends undefined ? InferredProperties[Prop] : InferredNewValue : never : InferredProperties[Prop];
41
+ } : never>), any>;
42
+ export interface TaggedObjectStructure<out GenericTaggedObject extends ObjectTag = ObjectTag> extends DCommon.Forward<DDataStructure.Structure<GenericTaggedObject, TaggedObjectStructureDefinition> & DKind.Kind<typeof taggedObjectStructureKind>> {
40
43
  readonly name: GetTagValue<GenericTaggedObject>;
41
44
  "new"(properties: DCommon.SimplifyTopLevel<DKind.Remove<GenericTaggedObject>>): GenericTaggedObject;
42
- decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<TaggedObjectMap<DKind.Remove<DDataStructure.StructureValue<this>>>, GenericCodecs>) => (DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"map-error", DDataStructure.Error>);
43
- decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<TaggedObjectMap<DKind.Remove<DDataStructure.StructureValue<this>>>, GenericCodecs>): (DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"map-error", DDataStructure.Error>);
44
- map(data: TaggedObjectMap<DKind.Remove<DDataStructure.StructureValue<this>>>): (DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"map-error", DDataStructure.Error>);
45
- asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<TaggedObjectMap<DKind.Remove<DDataStructure.StructureValue<this>>>, GenericCodecs>) => Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
46
- asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<TaggedObjectMap<DKind.Remove<DDataStructure.StructureValue<this>>>, GenericCodecs>): Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
47
- asyncMap(data: TaggedObjectMap<DKind.Remove<DDataStructure.StructureValue<this>>>): Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
45
+ decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<TaggedObjectMap<DKind.Remove<GenericTaggedObject>>, GenericCodecs>) => (DEither.Right<"map-success", GenericTaggedObject> | DEither.Left<"async-error", DDataStructure.ErrorPromise> | DEither.Left<"map-error", DDataStructure.Error>);
46
+ decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<TaggedObjectMap<DKind.Remove<GenericTaggedObject>>, GenericCodecs>): (DEither.Right<"map-success", GenericTaggedObject> | DEither.Left<"async-error", DDataStructure.ErrorPromise> | DEither.Left<"map-error", DDataStructure.Error>);
47
+ map(data: TaggedObjectMap<DKind.Remove<GenericTaggedObject>>): (DEither.Right<"map-success", GenericTaggedObject> | DEither.Left<"async-error", DDataStructure.ErrorPromise> | DEither.Left<"map-error", DDataStructure.Error>);
48
+ asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<TaggedObjectMap<DKind.Remove<GenericTaggedObject>>, GenericCodecs>) => Promise<DEither.Right<"map-success", GenericTaggedObject> | DEither.Left<"map-error", DDataStructure.Error>>;
49
+ asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<TaggedObjectMap<DKind.Remove<GenericTaggedObject>>, GenericCodecs>): Promise<DEither.Right<"map-success", GenericTaggedObject> | DEither.Left<"map-error", DDataStructure.Error>>;
50
+ asyncMap(data: TaggedObjectMap<DKind.Remove<GenericTaggedObject>>): Promise<DEither.Right<"map-success", GenericTaggedObject> | DEither.Left<"map-error", DDataStructure.Error>>;
51
+ update<GenericInput extends GenericTaggedObject, const GenericPayload extends Partial<DKind.Remove<GenericTaggedObject>>>(update: GenericPayload): (input: GenericInput) => TaggedObjectUpdate<GenericInput, GenericPayload>;
52
+ update<GenericInput extends GenericTaggedObject, const GenericPayload extends Partial<DKind.Remove<GenericTaggedObject>>>(input: GenericInput, update: GenericPayload): TaggedObjectUpdate<GenericInput, GenericPayload>;
48
53
  }
49
54
  export declare const TaggedObjectStructure: <GenericTaggedObject extends ObjectTag, GenericName extends string = never, GenericShape extends DDataStructure.ShapeObjectStructure = never>(name: GetTagValue<GenericTaggedObject> | GenericName, shape: ShapeTaggedObjectStructure<GenericTaggedObject> | GenericShape) => TaggedObjectStructure<ObjectTag extends GenericTaggedObject ? (ObjectTag<GenericName> & DDataStructure.ShapeObjectStructureValue<GenericShape>) : GenericTaggedObject>;
@@ -3,7 +3,7 @@ import { left } from "../../either/left/create.mjs";
3
3
  import { right } from "../../either/right/create.mjs";
4
4
  import { justExec } from "../../common/justExec.mjs";
5
5
  import { ErrorSymbol } from "../../dataStructure/common/resultSymbol.mjs";
6
- import { createGetErrorHandler } from "../../dataStructure/common/error.mjs";
6
+ import { ErrorPromise, createGetErrorHandler } from "../../dataStructure/common/error/base.mjs";
7
7
  import { createStructure } from "../../dataStructure/structure/base.mjs";
8
8
  import { NonEncodableStringStructure } from "../../dataStructure/structure/defaults/nonEncodableString.mjs";
9
9
  import { ObjectStructure } from "../../dataStructure/structure/defaults/object.mjs";
@@ -21,6 +21,7 @@ const TaggedObjectStructure = createStructure(taggedObjectStructureKind, ({ init
21
21
  executeCheck: (self, data, errorHandler) => self.definition.inner.executeCheck(data, errorHandler),
22
22
  executeEncode: (self, codecContext, data, errorHandler) => self.definition.inner.executeEncode(codecContext, data, errorHandler),
23
23
  executeDecode: (self, codecContext, data, errorHandler) => self.definition.inner.executeDecode(codecContext, data, errorHandler),
24
+ executeParse: (self, codecContext, data, errorHandler) => self.definition.inner.executeParse(codecContext, data, errorHandler),
24
25
  isAsynchronous: (self) => self.definition.inner.isAsynchronous()
25
26
  }, {
26
27
  name,
@@ -39,7 +40,7 @@ const TaggedObjectStructure = createStructure(taggedObjectStructureKind, ({ init
39
40
  ...data,
40
41
  [objectTagKind.runTimeKey]: name
41
42
  } : data, errorHandler);
42
- if (result instanceof Promise) return left("async-error", void 0);
43
+ if (result instanceof Promise) return left("async-error", new ErrorPromise());
43
44
  if (result === ErrorSymbol) return left("map-error", errorHandler().createError());
44
45
  return right("map-success", result);
45
46
  },
@@ -50,7 +51,7 @@ const TaggedObjectStructure = createStructure(taggedObjectStructureKind, ({ init
50
51
  [objectTagKind.runTimeKey]: name
51
52
  } : data;
52
53
  const result = self.executeCheck(formattedData, errorHandler);
53
- if (result instanceof Promise) return left("async-error", void 0);
54
+ if (result instanceof Promise) return left("async-error", new ErrorPromise());
54
55
  if (result === ErrorSymbol) return left("map-error", errorHandler().createError());
55
56
  return right("map-success", formattedData);
56
57
  },
@@ -70,7 +71,7 @@ const TaggedObjectStructure = createStructure(taggedObjectStructureKind, ({ init
70
71
  return right("map-success", result);
71
72
  });
72
73
  },
73
- asyncMap: (self, data) => justExec(async () => {
74
+ asyncMap: async (self, data) => {
74
75
  const errorHandler = createGetErrorHandler();
75
76
  const formattedData = isSimple(data) ? {
76
77
  ...data,
@@ -78,7 +79,17 @@ const TaggedObjectStructure = createStructure(taggedObjectStructureKind, ({ init
78
79
  } : data;
79
80
  if (await self.executeCheck(formattedData, errorHandler) === ErrorSymbol) return left("map-error", errorHandler().createError());
80
81
  return right("map-success", formattedData);
81
- })
82
+ },
83
+ update: (self, ...args) => {
84
+ if (args.length === 1) {
85
+ const [update] = args;
86
+ return (input) => self.update(input, update);
87
+ }
88
+ const [input, update] = args;
89
+ const updatedTaggedObject = { [objectTagKind.runTimeKey]: name };
90
+ for (const key of self.definition.inner.definition.keys) updatedTaggedObject[key] = update[key] === void 0 ? input[key] : update[key];
91
+ return updatedTaggedObject;
92
+ }
82
93
  }));
83
94
  //#endregion
84
95
  export { TaggedObjectStructure, objectTagKind, taggedObjectStructureKind };
@@ -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,3 @@
1
+ import { GetPropsWithValueExtends } from './getPropsWithValueExtends';
2
+ import type * as DCommon from '../../common';
3
+ export type ForbiddenUndefinedProps<GenericObject extends object> = DCommon.IsNever<GetPropsWithValueExtends<GenericObject, undefined>> extends true ? unknown : DCommon.ComputedTypeError<"Having \"undefined\" values for properties is not allowed.">;
@@ -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,13 +1,17 @@
1
- export type * from './assignObjects';
2
- export type * from './everyCombination';
1
+ export type * from './assign';
3
2
  export type * from './deepPartial';
4
3
  export type * from './deepReadonly';
5
4
  export type * from './deepRemoveReadonly';
6
5
  export type * from './deepRequired';
6
+ export type * from './everyCombination';
7
7
  export type * from './flatObject';
8
8
  export type * from './forbiddenKey';
9
+ export type * from './forbiddenUndefinedProps';
9
10
  export type * from './getPropsWithValue';
10
11
  export type * from './getPropsWithValueExtends';
12
+ export type * from './hasKeySignature';
13
+ export type * from './keyofWithoutSignature';
14
+ export type * from './override';
11
15
  export type * from './partialKeys';
12
16
  export type * from './requireAtLeastOne';
13
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
+ }>;
@@ -2,12 +2,12 @@ import type * as DCommon from '../../common';
2
2
  type CreateShape<GenericResult extends unknown, GenericProp extends keyof any> = GenericResult extends any ? {
3
3
  [RemapProp in GenericProp]: GenericResult;
4
4
  } : never;
5
- export type Split<GenericValue extends unknown, GenericMax extends number = 10, GenericAccumulator extends readonly never[] = readonly []> = GenericValue extends object ? GenericAccumulator["length"] extends GenericMax ? GenericValue : {
5
+ export type Split<GenericValue extends unknown, GenericMax extends number = 10, GenericAccumulator extends readonly never[] = readonly []> = GenericValue extends unknown ? DCommon.IsObject<GenericValue> extends true ? GenericAccumulator["length"] extends GenericMax ? GenericValue : {
6
6
  [Prop in keyof GenericValue]: DCommon.NeverCoalescing<CreateShape<Split<GenericValue[Prop], GenericMax, [
7
7
  ...GenericAccumulator,
8
8
  never
9
9
  ]>, Prop>, {
10
10
  [RemapProp in Prop]: never;
11
11
  }>;
12
- }[keyof GenericValue] : GenericValue;
12
+ }[keyof GenericValue] : GenericValue : never;
13
13
  export {};
@@ -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 };