@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,5 @@
1
1
  const require_callThen = require("../../../common/callThen.cjs");
2
+ const require_isSimple = require("../../../object/isSimple.cjs");
2
3
  const require_isType = require("../../../common/isType.cjs");
3
4
  const require_memo = require("../../../common/memo.cjs");
4
5
  const require_kind = require("../../kind.cjs");
@@ -26,7 +27,7 @@ const RecordStructure = require_base.createStructure(recordStructureKind, ({ ini
26
27
  })
27
28
  }, {
28
29
  executeCheck: (self, data, errorHandler) => {
29
- if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
30
+ if (!require_isSimple.isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
30
31
  const keyData = Object.keys(data);
31
32
  const requiredKeys = self.definition.requiredKeys.value;
32
33
  if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
@@ -38,31 +39,43 @@ const RecordStructure = require_base.createStructure(recordStructureKind, ({ ini
38
39
  });
39
40
  },
40
41
  executeEncode: (self, codecContext, data, errorHandler) => {
41
- if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
42
+ if (!require_isSimple.isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
42
43
  const keyData = Object.keys(data);
43
44
  const requiredKeys = self.definition.requiredKeys.value;
44
45
  if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
45
46
  const pathStage = errorHandler?.().createPathStage();
46
- const encodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? require_callThen.callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? require_callThen.callThen(self.definition.value.executeEncode(codecContext, data[key], errorHandler), (encodedValue) => {
47
+ const encodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => key === "__proto__" ? accumulator : require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? require_callThen.callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? require_callThen.callThen(self.definition.value.executeEncode(codecContext, data[key], errorHandler), (encodedValue) => {
47
48
  if (keyResult === require_resultSymbol.ErrorSymbol || encodedValue === require_resultSymbol.ErrorSymbol || awaitedAccumulator === require_resultSymbol.ErrorSymbol) return require_resultSymbol.ErrorSymbol;
48
- awaitedAccumulator[key] = encodedValue;
49
+ if (encodedValue !== void 0) awaitedAccumulator[key] = encodedValue;
49
50
  return awaitedAccumulator;
50
51
  }))), {});
51
52
  return require_callThen.callThen(encodedData, (awaitedEncodedData) => pathStage?.close() ?? (awaitedEncodedData === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedEncodedData)));
52
53
  },
53
54
  executeDecode: (self, codecContext, data, errorHandler) => {
54
- if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
55
+ if (!require_isSimple.isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
55
56
  const keyData = Object.keys(data);
56
57
  const requiredKeys = self.definition.requiredKeys.value;
57
58
  if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
58
59
  const pathStage = errorHandler?.().createPathStage();
59
- const decodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? require_callThen.callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? require_callThen.callThen(self.definition.value.executeDecode(codecContext, data[key], errorHandler), (decodedValue) => {
60
+ const decodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => key === "__proto__" ? accumulator : require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? require_callThen.callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? require_callThen.callThen(self.definition.value.executeDecode(codecContext, data[key], errorHandler), (decodedValue) => {
60
61
  if (keyResult === require_resultSymbol.ErrorSymbol || decodedValue === require_resultSymbol.ErrorSymbol || awaitedAccumulator === require_resultSymbol.ErrorSymbol) return require_resultSymbol.ErrorSymbol;
61
- awaitedAccumulator[key] = decodedValue;
62
+ if (decodedValue !== void 0) awaitedAccumulator[key] = decodedValue;
62
63
  return awaitedAccumulator;
63
64
  }))), {});
64
65
  return require_callThen.callThen(decodedData, (awaitedDecodedData) => pathStage?.close() ?? (awaitedDecodedData === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedDecodedData)));
65
66
  },
67
+ executeParse: (self, codecContext, data, errorHandler) => {
68
+ if (!require_isSimple.isSimple(data)) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
69
+ const keyData = Object.keys(data);
70
+ const requiredKeys = self.definition.requiredKeys.value;
71
+ const pathStage = errorHandler?.().createPathStage();
72
+ const parsedData = (requiredKeys ?? keyData).reduce((accumulator, key) => key === "__proto__" ? accumulator : require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? require_callThen.callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? require_callThen.callThen(self.definition.value.executeParse(codecContext, data[key], errorHandler), (parsedValue) => {
73
+ if (keyResult === require_resultSymbol.ErrorSymbol || parsedValue === require_resultSymbol.ErrorSymbol || awaitedAccumulator === require_resultSymbol.ErrorSymbol) return require_resultSymbol.ErrorSymbol;
74
+ if (parsedValue !== void 0) awaitedAccumulator[key] = parsedValue;
75
+ return awaitedAccumulator;
76
+ }))), {});
77
+ return require_callThen.callThen(parsedData, (awaitedParsedData) => pathStage?.close() ?? (awaitedParsedData === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(awaitedParsedData, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedParsedData)));
78
+ },
66
79
  isAsynchronous: (self) => self.definition.key.isAsynchronous() || self.definition.value.isAsynchronous()
67
80
  }));
68
81
  //#endregion
@@ -1,4 +1,5 @@
1
1
  import { callThen } from "../../../common/callThen.mjs";
2
+ import { isSimple } from "../../../object/isSimple.mjs";
2
3
  import { isType } from "../../../common/isType.mjs";
3
4
  import { memo } from "../../../common/memo.mjs";
4
5
  import { createKind } from "../../kind.mjs";
@@ -26,7 +27,7 @@ const RecordStructure = createStructure(recordStructureKind, ({ init }) => (key,
26
27
  })
27
28
  }, {
28
29
  executeCheck: (self, data, errorHandler) => {
29
- if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
30
+ if (!isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
30
31
  const keyData = Object.keys(data);
31
32
  const requiredKeys = self.definition.requiredKeys.value;
32
33
  if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
@@ -38,31 +39,43 @@ const RecordStructure = createStructure(recordStructureKind, ({ init }) => (key,
38
39
  });
39
40
  },
40
41
  executeEncode: (self, codecContext, data, errorHandler) => {
41
- if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
42
+ if (!isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
42
43
  const keyData = Object.keys(data);
43
44
  const requiredKeys = self.definition.requiredKeys.value;
44
45
  if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
45
46
  const pathStage = errorHandler?.().createPathStage();
46
- const encodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? callThen(self.definition.value.executeEncode(codecContext, data[key], errorHandler), (encodedValue) => {
47
+ const encodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => key === "__proto__" ? accumulator : callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? callThen(self.definition.value.executeEncode(codecContext, data[key], errorHandler), (encodedValue) => {
47
48
  if (keyResult === ErrorSymbol || encodedValue === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
48
- awaitedAccumulator[key] = encodedValue;
49
+ if (encodedValue !== void 0) awaitedAccumulator[key] = encodedValue;
49
50
  return awaitedAccumulator;
50
51
  }))), {});
51
52
  return callThen(encodedData, (awaitedEncodedData) => pathStage?.close() ?? (awaitedEncodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedEncodedData)));
52
53
  },
53
54
  executeDecode: (self, codecContext, data, errorHandler) => {
54
- if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
55
+ if (!isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
55
56
  const keyData = Object.keys(data);
56
57
  const requiredKeys = self.definition.requiredKeys.value;
57
58
  if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
58
59
  const pathStage = errorHandler?.().createPathStage();
59
- const decodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? callThen(self.definition.value.executeDecode(codecContext, data[key], errorHandler), (decodedValue) => {
60
+ const decodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => key === "__proto__" ? accumulator : callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? callThen(self.definition.value.executeDecode(codecContext, data[key], errorHandler), (decodedValue) => {
60
61
  if (keyResult === ErrorSymbol || decodedValue === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
61
- awaitedAccumulator[key] = decodedValue;
62
+ if (decodedValue !== void 0) awaitedAccumulator[key] = decodedValue;
62
63
  return awaitedAccumulator;
63
64
  }))), {});
64
65
  return callThen(decodedData, (awaitedDecodedData) => pathStage?.close() ?? (awaitedDecodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedDecodedData)));
65
66
  },
67
+ executeParse: (self, codecContext, data, errorHandler) => {
68
+ if (!isSimple(data)) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
69
+ const keyData = Object.keys(data);
70
+ const requiredKeys = self.definition.requiredKeys.value;
71
+ const pathStage = errorHandler?.().createPathStage();
72
+ const parsedData = (requiredKeys ?? keyData).reduce((accumulator, key) => key === "__proto__" ? accumulator : callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? callThen(self.definition.value.executeParse(codecContext, data[key], errorHandler), (parsedValue) => {
73
+ if (keyResult === ErrorSymbol || parsedValue === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
74
+ if (parsedValue !== void 0) awaitedAccumulator[key] = parsedValue;
75
+ return awaitedAccumulator;
76
+ }))), {});
77
+ return callThen(parsedData, (awaitedParsedData) => pathStage?.close() ?? (awaitedParsedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedParsedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedParsedData)));
78
+ },
66
79
  isAsynchronous: (self) => self.definition.key.isAsynchronous() || self.definition.value.isAsynchronous()
67
80
  }));
68
81
  //#endregion
@@ -18,6 +18,7 @@ const TypeStructure = require_base.createStructure(typeStructureKind, ({ init })
18
18
  const codec = codecContext.get(self.definition.type.fundamentalType);
19
19
  return require_callThen.callThen(codec ? codec.decode(data, errorHandler) : data, (decodedData) => decodedData === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeCheck(decodedData, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : decodedData));
20
20
  },
21
+ executeParse: (self, codecContext, data, errorHandler) => self.executeDecode(codecContext, data, errorHandler),
21
22
  isAsynchronous: (self) => self.definition.type.isAsynchronous()
22
23
  }));
23
24
  //#endregion
@@ -18,6 +18,7 @@ const TypeStructure = createStructure(typeStructureKind, ({ init }) => (type, co
18
18
  const codec = codecContext.get(self.definition.type.fundamentalType);
19
19
  return callThen(codec ? codec.decode(data, errorHandler) : data, (decodedData) => decodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeCheck(decodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : decodedData));
20
20
  },
21
+ executeParse: (self, codecContext, data, errorHandler) => self.executeDecode(codecContext, data, errorHandler),
21
22
  isAsynchronous: (self) => self.definition.type.isAsynchronous()
22
23
  }));
23
24
  //#endregion
@@ -2,13 +2,13 @@ const require_callThen = require("../../../common/callThen.cjs");
2
2
  const require_memo = require("../../../common/memo.cjs");
3
3
  const require_kind = require("../../kind.cjs");
4
4
  const require_resultSymbol = require("../../common/resultSymbol.cjs");
5
- const require_error = require("../../common/error.cjs");
6
- const require_base = require("../base.cjs");
5
+ const require_base = require("../../common/error/base.cjs");
6
+ const require_base$1 = require("../base.cjs");
7
7
  const require_identifier = require("../identifier.cjs");
8
8
  const require_lazy = require("./lazy.cjs");
9
9
  //#region scripts/dataStructure/structure/defaults/union.ts
10
10
  const unionStructureKind = require_kind.createKind("union-structure");
11
- const UnionStructure = require_base.createStructure(unionStructureKind, ({ init }) => (values, constraints) => init({
11
+ const UnionStructure = require_base$1.createStructure(unionStructureKind, ({ init }) => (values, constraints) => init({
12
12
  values: require_memo.memo(() => values.flatMap((value) => (function flatUnion(structure) {
13
13
  if (require_identifier.structureIdentifier(structure, unionStructureKind)) return structure.definition.values.value.flatMap(flatUnion);
14
14
  if (require_identifier.structureIdentifier(structure, require_lazy.lazyStructureKind)) return flatUnion(structure.definition.getter.value);
@@ -20,7 +20,7 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
20
20
  const errorHandlers = errorHandler ? [] : void 0;
21
21
  const result = self.definition.values.value.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
22
22
  if (awaitedAccumulator === require_resultSymbol.SuccessSymbol) return awaitedAccumulator;
23
- const subErrorHandler = errorHandler === void 0 ? void 0 : require_error.createGetErrorHandler(errorHandler().currentPath);
23
+ const subErrorHandler = errorHandler === void 0 ? void 0 : require_base.createGetErrorHandler(errorHandler().currentPath);
24
24
  if (errorHandlers && subErrorHandler) {
25
25
  subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
26
26
  errorHandlers.push(subErrorHandler);
@@ -40,7 +40,7 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
40
40
  const errorHandlers = errorHandler ? [] : void 0;
41
41
  const encodedData = self.definition.values.value.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
42
42
  if (awaitedAccumulator !== require_resultSymbol.ErrorSymbol) return awaitedAccumulator;
43
- const subErrorHandler = errorHandler === void 0 ? void 0 : require_error.createGetErrorHandler(errorHandler().currentPath);
43
+ const subErrorHandler = errorHandler === void 0 ? void 0 : require_base.createGetErrorHandler(errorHandler().currentPath);
44
44
  if (errorHandlers && subErrorHandler) {
45
45
  subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
46
46
  errorHandlers.push(subErrorHandler);
@@ -60,7 +60,7 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
60
60
  const errorHandlers = errorHandler ? [] : void 0;
61
61
  const decodedData = self.definition.values.value.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
62
62
  if (awaitedAccumulator !== require_resultSymbol.ErrorSymbol) return awaitedAccumulator;
63
- const subErrorHandler = errorHandler === void 0 ? void 0 : require_error.createGetErrorHandler(errorHandler().currentPath);
63
+ const subErrorHandler = errorHandler === void 0 ? void 0 : require_base.createGetErrorHandler(errorHandler().currentPath);
64
64
  if (errorHandlers && subErrorHandler) {
65
65
  subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
66
66
  errorHandlers.push(subErrorHandler);
@@ -76,6 +76,26 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
76
76
  return require_callThen.callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedDecodedData);
77
77
  });
78
78
  },
79
+ executeParse: (self, codecContext, data, errorHandler) => {
80
+ const errorHandlers = errorHandler ? [] : void 0;
81
+ const parsedData = self.definition.values.value.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
82
+ if (awaitedAccumulator !== require_resultSymbol.ErrorSymbol) return awaitedAccumulator;
83
+ const subErrorHandler = errorHandler === void 0 ? void 0 : require_base.createGetErrorHandler(errorHandler().currentPath);
84
+ if (errorHandlers && subErrorHandler) {
85
+ subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
86
+ errorHandlers.push(subErrorHandler);
87
+ }
88
+ return value.executeParse(codecContext, data, subErrorHandler);
89
+ }), require_resultSymbol.ErrorSymbol);
90
+ return require_callThen.callThen(parsedData, (awaitedParsedData) => {
91
+ if (awaitedParsedData === require_resultSymbol.ErrorSymbol) {
92
+ if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
93
+ errorHandler?.().addIssue(self, data);
94
+ return require_resultSymbol.ErrorSymbol;
95
+ }
96
+ return require_callThen.callThen(self.executeConstraints(awaitedParsedData, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedParsedData);
97
+ });
98
+ },
79
99
  isAsynchronous: (self) => self.definition.values.value.some((value) => value.isAsynchronous())
80
100
  }));
81
101
  //#endregion
@@ -2,7 +2,7 @@ import { callThen } from "../../../common/callThen.mjs";
2
2
  import { memo } from "../../../common/memo.mjs";
3
3
  import { createKind } from "../../kind.mjs";
4
4
  import { ErrorSymbol, SuccessSymbol } from "../../common/resultSymbol.mjs";
5
- import { createGetErrorHandler } from "../../common/error.mjs";
5
+ import { createGetErrorHandler } from "../../common/error/base.mjs";
6
6
  import { createStructure } from "../base.mjs";
7
7
  import { structureIdentifier } from "../identifier.mjs";
8
8
  import { lazyStructureKind } from "./lazy.mjs";
@@ -76,6 +76,26 @@ const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values
76
76
  return callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedDecodedData);
77
77
  });
78
78
  },
79
+ executeParse: (self, codecContext, data, errorHandler) => {
80
+ const errorHandlers = errorHandler ? [] : void 0;
81
+ const parsedData = self.definition.values.value.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
82
+ if (awaitedAccumulator !== ErrorSymbol) return awaitedAccumulator;
83
+ const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler(errorHandler().currentPath);
84
+ if (errorHandlers && subErrorHandler) {
85
+ subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
86
+ errorHandlers.push(subErrorHandler);
87
+ }
88
+ return value.executeParse(codecContext, data, subErrorHandler);
89
+ }), ErrorSymbol);
90
+ return callThen(parsedData, (awaitedParsedData) => {
91
+ if (awaitedParsedData === ErrorSymbol) {
92
+ if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
93
+ errorHandler?.().addIssue(self, data);
94
+ return ErrorSymbol;
95
+ }
96
+ return callThen(self.executeConstraints(awaitedParsedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedParsedData);
97
+ });
98
+ },
79
99
  isAsynchronous: (self) => self.definition.values.value.some((value) => value.isAsynchronous())
80
100
  }));
81
101
  //#endregion
@@ -1,5 +1,7 @@
1
1
  import { structureKind, Structure } from '../base';
2
2
  import { StructureConstraintsValue } from './constraintsValue';
3
+ import { Constraint } from '../../constraint';
3
4
  import type * as DKind from '../../../kind';
4
5
  export type StructureValue<GenericStructure extends Structure> = DKind.GetValue<typeof structureKind, GenericStructure>;
5
6
  export type StructureInitialValue<GenericStructure extends Structure, GenericStructureValue = StructureValue<GenericStructure>> = GenericStructureValue extends unknown ? GenericStructureValue extends (infer InferredInitialValue) & StructureConstraintsValue<GenericStructure["definition"]["constraints"][number]> ? InferredInitialValue : GenericStructureValue : never;
7
+ export type ComputeStructureValue<GenericValue extends unknown, GenericConstraints extends readonly Constraint[]> = Extract<GenericValue & StructureConstraintsValue<GenericConstraints[number]>, any>;
@@ -1,6 +1,7 @@
1
1
  import { Type } from '../base';
2
2
  import { BigintLiteralType, BigintType, BooleanLiteralType, BooleanType, DateType, NullType, NumberLiteralType, NumberType, StringLiteralType, StringType, TimeType, UndefinedType } from '../defaults';
3
3
  export interface TypesStore {
4
+ base: Type;
4
5
  bigint: BigintType;
5
6
  bigintLiteral: BigintLiteralType;
6
7
  boolean: BooleanType;
@@ -4,13 +4,13 @@ const require_create = require("./left/create.cjs");
4
4
  const require_error = require("./left/error.cjs");
5
5
  const require_fail = require("./left/fail.cjs");
6
6
  const require_is = require("./left/is.cjs");
7
- const require_create$1 = require("./right/create.cjs");
8
7
  const require_none = require("./left/none.cjs");
9
8
  const require_unwrap = require("./left/unwrap.cjs");
10
9
  const require_unwrapOrThrow = require("./left/unwrapOrThrow.cjs");
11
10
  const require_when = require("./left/when.cjs");
12
11
  const require_whenOtherwise = require("./left/whenOtherwise.cjs");
13
12
  const require_asyncGroup = require("./right/asyncGroup.cjs");
13
+ const require_create$1 = require("./right/create.cjs");
14
14
  const require_success = require("./right/success.cjs");
15
15
  const require_is$1 = require("./right/is.cjs");
16
16
  const require_asyncPipe = require("./right/asyncPipe.cjs");
@@ -4,13 +4,13 @@ import { left, leftKind } from "./left/create.mjs";
4
4
  import { error, errorKind } from "./left/error.mjs";
5
5
  import { fail, failKind } from "./left/fail.mjs";
6
6
  import { isLeft } from "./left/is.mjs";
7
- import { right, rightKind } from "./right/create.mjs";
8
7
  import { none, noneKind } from "./left/none.mjs";
9
8
  import { unwrapLeft } from "./left/unwrap.mjs";
10
9
  import { NotLeftError, unwrapLeftOrThrow } from "./left/unwrapOrThrow.mjs";
11
10
  import { whenIsLeft } from "./left/when.mjs";
12
11
  import { whenIsLeftOtherwise } from "./left/whenOtherwise.mjs";
13
12
  import { asyncGroup } from "./right/asyncGroup.mjs";
13
+ import { right, rightKind } from "./right/create.mjs";
14
14
  import { success, successKind } from "./right/success.mjs";
15
15
  import { isRight } from "./right/is.mjs";
16
16
  import { rightAsyncPipe } from "./right/asyncPipe.mjs";
@@ -4,5 +4,6 @@ export declare const leftKind: DKind.Handler<DKind.Definition<"@DuplojsLangEithe
4
4
  type _Left<GenericInformation extends string = string, GenericValue extends unknown = unknown> = (DKind.Kind<typeof leftKind> & DKind.Kind<typeof informationKind, GenericInformation> & DKind.Kind<typeof valueKind, GenericValue>);
5
5
  export interface Left<GenericInformation extends string = string, GenericValue extends unknown = unknown> extends _Left<GenericInformation, GenericValue> {
6
6
  }
7
- export declare function left<GenericInformation extends string, const GenericValue extends unknown = undefined>(information: GenericInformation, value?: GenericValue): Left<GenericInformation, GenericValue>;
7
+ export declare function left<GenericInformation extends string>(information: GenericInformation): Left<GenericInformation, undefined>;
8
+ export declare function left<GenericInformation extends string, const GenericValue extends unknown>(information: GenericInformation, value: GenericValue): Left<GenericInformation, GenericValue>;
8
9
  export {};
@@ -1,10 +1,10 @@
1
1
  const require_kind = require("../kind.cjs");
2
- const require_create = require("../right/create.cjs");
2
+ const require_create = require("./create.cjs");
3
3
  //#region scripts/either/left/none.ts
4
4
  const noneKind = require_kind.createKind("none");
5
5
  function none() {
6
6
  return {
7
- [require_create.rightKind.runTimeKey]: null,
7
+ [require_create.leftKind.runTimeKey]: null,
8
8
  [require_kind.informationKind.runTimeKey]: "none",
9
9
  [require_kind.valueKind.runTimeKey]: null,
10
10
  [noneKind.runTimeKey]: null
@@ -1,7 +1,7 @@
1
- import { Right } from '../right/create';
1
+ import { Left } from './create';
2
2
  import type * as DKind from '../../kind';
3
3
  import type * as DCommon from '../../common';
4
4
  export declare const noneKind: DKind.Handler<DKind.Definition<"@DuplojsLangEither/none", unknown>>;
5
- export interface None extends DCommon.Forward<DKind.Kind<typeof noneKind> & Right<"none", null>> {
5
+ export interface None extends DCommon.Forward<DKind.Kind<typeof noneKind> & Left<"none", null>> {
6
6
  }
7
7
  export declare function none(): None;
@@ -1,10 +1,10 @@
1
1
  import { createKind, informationKind, valueKind } from "../kind.mjs";
2
- import { rightKind } from "../right/create.mjs";
2
+ import { leftKind } from "./create.mjs";
3
3
  //#region scripts/either/left/none.ts
4
4
  const noneKind = createKind("none");
5
5
  function none() {
6
6
  return {
7
- [rightKind.runTimeKey]: null,
7
+ [leftKind.runTimeKey]: null,
8
8
  [informationKind.runTimeKey]: "none",
9
9
  [valueKind.runTimeKey]: null,
10
10
  [noneKind.runTimeKey]: null
@@ -4,5 +4,6 @@ export declare const rightKind: DKind.Handler<DKind.Definition<"@DuplojsLangEith
4
4
  type _Right<GenericInformation extends string = string, GenericValue extends unknown = unknown> = (DKind.Kind<typeof rightKind> & DKind.Kind<typeof informationKind, GenericInformation> & DKind.Kind<typeof valueKind, GenericValue>);
5
5
  export interface Right<GenericInformation extends string = string, GenericValue extends unknown = unknown> extends _Right<GenericInformation, GenericValue> {
6
6
  }
7
- export declare function right<GenericInformation extends string, const GenericValue extends unknown = undefined>(information: GenericInformation, value?: GenericValue): Right<GenericInformation, GenericValue>;
7
+ export declare function right<GenericInformation extends string>(information: GenericInformation): Right<GenericInformation, undefined>;
8
+ export declare function right<GenericInformation extends string, const GenericValue extends unknown>(information: GenericInformation, value: GenericValue): Right<GenericInformation, GenericValue>;
8
9
  export {};
@@ -1,2 +1,3 @@
1
1
  export type * from './getInformation';
2
2
  export type * from './getValue';
3
+ export type * from './mayBe';
@@ -1,3 +1,3 @@
1
1
  import { None } from '../left';
2
2
  import { Some } from '../right';
3
- export type MayBe<GenericValue extends unknown> = (Some<GenericValue> | None);
3
+ export type Maybe<GenericValue extends unknown> = (Some<GenericValue> | None);
@@ -14,5 +14,5 @@ export interface EvidenceResult<GenericInformation extends string, GenericValue
14
14
  */
15
15
  export declare function evidenceResult<GenericInformation extends string, GenericValue extends object>(information: GenericInformation): (value: GenericValue) => EvidenceResult<GenericInformation, GenericValue>;
16
16
  export declare function evidenceResult<GenericInformation extends string, GenericValue extends object>(information: GenericInformation, value: GenericValue): EvidenceResult<GenericInformation, GenericValue>;
17
- export type FindEvidence<GenericValue extends unknown> = (GenericValue extends Evidence ? GenericValue : GenericValue extends Promise<unknown> ? FindEvidence<Awaited<GenericValue>> : GenericValue extends DEither.Right | DEither.Left ? FindEvidence<DEither.GetValue<GenericValue>> : never) extends infer InferredResult extends Evidence ? InferredResult : never;
17
+ export type FindEvidence<GenericValue extends unknown> = (GenericValue extends Evidence ? GenericValue : GenericValue extends Promise<unknown> ? FindEvidence<Awaited<GenericValue>> : GenericValue extends DEither.Right | DEither.Left ? FindEvidence<DEither.GetValue<GenericValue>> : GenericValue extends Generator<infer InferredYeldValue, infer InferredResult> ? (FindEvidence<InferredYeldValue> | FindEvidence<InferredResult>) : GenericValue extends AsyncGenerator<infer InferredYeldValue, infer InferredResult> ? (FindEvidence<InferredYeldValue> | FindEvidence<InferredResult>) : never) extends infer InferredResult extends Evidence ? InferredResult : never;
18
18
  export type GetEvidenceResult<GenericFunction extends DCommon.AnyFunction, EvidenceName extends Extract<keyof FindEvidence<ReturnType<GenericFunction>>[DCommon.ConstraintSymbol]["evidence"], string>> = Extract<FindEvidence<ReturnType<GenericFunction>>, EvidenceName extends unknown ? Evidence<EvidenceName> : never>;
@@ -4,14 +4,14 @@ const require_base = require("./controller/base.cjs");
4
4
  //#region scripts/invocation/flow/base.ts
5
5
  function flow(...args) {
6
6
  const accumulateFunction = args.reduce((accumulator, currentValue) => {
7
- if (require_base.flowControllerKind.has(currentValue)) return (arg) => currentValue.exec(() => accumulator(arg));
7
+ if (require_base.flowControllerKind.has(currentValue)) return (input, argument) => currentValue.exec(() => accumulator(input, argument));
8
8
  else {
9
- const preparedResultTreatment = (result) => require_base.flowControllerExitKind.has(result) ? result : currentValue(result);
10
- return (arg) => require_callThen.callThen(accumulator(arg), preparedResultTreatment);
9
+ const preparedResultTreatment = (result, argument) => require_base.flowControllerExitKind.has(result) ? result : currentValue(result, argument);
10
+ return (input, argument) => require_callThen.callThen(accumulator(input, argument), (result) => preparedResultTreatment(result, argument));
11
11
  }
12
12
  }, require_forward.forward);
13
13
  const preparedResultTreatment = (result) => require_base.flowControllerExitKind.has(result) ? require_base.flowControllerExitKind.getValue(result) : result;
14
- return (arg) => require_callThen.callThen(accumulateFunction(arg), preparedResultTreatment);
14
+ return (input) => require_callThen.callThen(accumulateFunction(input, input), preparedResultTreatment);
15
15
  }
16
16
  //#endregion
17
17
  exports.flow = flow;
@@ -5,7 +5,7 @@ type ComputeLastUsableValue<GenericAccumulator extends DCommon.AnyTuple> = Gener
5
5
  ...infer InferredRest,
6
6
  infer InferredLast
7
7
  ] ? InferredLast extends FlowControllerResult<infer InferredFlowControllerResult> ? Exclude<Awaited<InferredFlowControllerResult>, FlowControllerPreviousFunctionResult | FlowControllerExit> extends infer InferredOutputValue ? DCommon.HasSomething<InferredOutputValue> extends true ? InferredOutputValue : InferredRest extends DCommon.AnyTuple ? ComputeLastUsableValue<InferredRest> : never : never : InferredLast : never;
8
- type Pipe<GenericAccumulator extends DCommon.AnyTuple, GenericOutput extends unknown> = (this: never, input: Awaited<ComputeLastUsableValue<GenericAccumulator>>) => GenericOutput;
8
+ type Pipe<GenericAccumulator extends DCommon.AnyTuple, GenericOutput extends unknown> = (this: never, input: Awaited<ComputeLastUsableValue<GenericAccumulator>>, argument: GenericAccumulator[0]) => GenericOutput;
9
9
  type IsMaybePromise<GenericAccumulator extends DCommon.AnyTuple> = {
10
10
  [Index in keyof GenericAccumulator]: UnwrapFlowControllerResult<GenericAccumulator[Index]> extends infer InferredResult ? DCommon.IsExtends<InferredResult, Promise<unknown>> extends true ? false : DCommon.ContainExtends<InferredResult, Promise<any>> : never;
11
11
  }[number] extends false ? false : true;
@@ -4,14 +4,14 @@ import { flowControllerExitKind, flowControllerKind } from "./controller/base.mj
4
4
  //#region scripts/invocation/flow/base.ts
5
5
  function flow(...args) {
6
6
  const accumulateFunction = args.reduce((accumulator, currentValue) => {
7
- if (flowControllerKind.has(currentValue)) return (arg) => currentValue.exec(() => accumulator(arg));
7
+ if (flowControllerKind.has(currentValue)) return (input, argument) => currentValue.exec(() => accumulator(input, argument));
8
8
  else {
9
- const preparedResultTreatment = (result) => flowControllerExitKind.has(result) ? result : currentValue(result);
10
- return (arg) => callThen(accumulator(arg), preparedResultTreatment);
9
+ const preparedResultTreatment = (result, argument) => flowControllerExitKind.has(result) ? result : currentValue(result, argument);
10
+ return (input, argument) => callThen(accumulator(input, argument), (result) => preparedResultTreatment(result, argument));
11
11
  }
12
12
  }, forward);
13
13
  const preparedResultTreatment = (result) => flowControllerExitKind.has(result) ? flowControllerExitKind.getValue(result) : result;
14
- return (arg) => callThen(accumulateFunction(arg), preparedResultTreatment);
14
+ return (input) => callThen(accumulateFunction(input, input), preparedResultTreatment);
15
15
  }
16
16
  //#endregion
17
17
  export { flow };
@@ -16,7 +16,7 @@ const debounce = require_base.createFlowController(flowControllerDebounceKind, (
16
16
  lastEvent?.resolve(false);
17
17
  lastEvent = require_externalPromise.createExternalPromise();
18
18
  lastTimeout = setTimeout(() => lastEvent?.resolve(true), formattedDebounceTime);
19
- if (!await lastEvent.promise) return exitFlow(require_create.left("debounce-reject"));
19
+ if (!await lastEvent.promise) return exitFlow(require_create.left("debounce-reject", void 0));
20
20
  return result;
21
21
  });
22
22
  });
@@ -16,7 +16,7 @@ const debounce = createFlowController(flowControllerDebounceKind, ({ init, exitF
16
16
  lastEvent?.resolve(false);
17
17
  lastEvent = createExternalPromise();
18
18
  lastTimeout = setTimeout(() => lastEvent?.resolve(true), formattedDebounceTime);
19
- if (!await lastEvent.promise) return exitFlow(left("debounce-reject"));
19
+ if (!await lastEvent.promise) return exitFlow(left("debounce-reject", void 0));
20
20
  return result;
21
21
  });
22
22
  });
@@ -15,7 +15,7 @@ const throttling = require_base.createFlowController(flowControllerThrottlingKin
15
15
  if (Date.now() - lastTime < formattedThrottlingTime) {
16
16
  lastEvent?.resolve(false);
17
17
  lastEvent = require_externalPromise.createExternalPromise();
18
- if (!await lastEvent.promise) return exitFlow(require_create.left("throttling-reject"));
18
+ if (!await lastEvent.promise) return exitFlow(require_create.left("throttling-reject", void 0));
19
19
  }
20
20
  setTimeout(() => lastEvent?.resolve(true), formattedThrottlingTime);
21
21
  lastTime = Date.now();
@@ -15,7 +15,7 @@ const throttling = createFlowController(flowControllerThrottlingKind, ({ init, e
15
15
  if (Date.now() - lastTime < formattedThrottlingTime) {
16
16
  lastEvent?.resolve(false);
17
17
  lastEvent = createExternalPromise();
18
- if (!await lastEvent.promise) return exitFlow(left("throttling-reject"));
18
+ if (!await lastEvent.promise) return exitFlow(left("throttling-reject", void 0));
19
19
  }
20
20
  setTimeout(() => lastEvent?.resolve(true), formattedThrottlingTime);
21
21
  lastTime = Date.now();
@@ -11,6 +11,8 @@ const require_timeout = require("./flow/controller/defaults/timeout.cjs");
11
11
  const require_base$1 = require("./flow/base.cjs");
12
12
  const require_port = require("./port.cjs");
13
13
  const require_reader = require("./reader.cjs");
14
+ const require_resolver = require("./resolver.cjs");
15
+ const require_signature = require("./signature.cjs");
14
16
  //#region scripts/invocation/index.ts
15
17
  var invocation_exports = /* @__PURE__ */ require_runtime.__exportAll({
16
18
  AbortErrorFlowController: () => require_aborter.AbortErrorFlowController,
@@ -20,6 +22,7 @@ var invocation_exports = /* @__PURE__ */ require_runtime.__exportAll({
20
22
  createKind: () => require_kind.createKind,
21
23
  createPort: () => require_port.createPort,
22
24
  createReader: () => require_reader.createReader,
25
+ createResolver: () => require_resolver.createResolver,
23
26
  debounce: () => require_debounce.debounce,
24
27
  evidenceResult: () => require_evidence.evidenceResult,
25
28
  filter: () => require_filter.filter,
@@ -35,7 +38,10 @@ var invocation_exports = /* @__PURE__ */ require_runtime.__exportAll({
35
38
  portHandlerKind: () => require_port.portHandlerKind,
36
39
  readerKind: () => require_reader.readerKind,
37
40
  resolveReaders: () => require_reader.resolveReaders,
41
+ resolverKind: () => require_resolver.resolverKind,
38
42
  retry: () => require_retry.retry,
43
+ signatureKind: () => require_signature.signatureKind,
44
+ signedFunction: () => require_signature.signedFunction,
39
45
  throttling: () => require_throttling.throttling,
40
46
  timeout: () => require_timeout.timeout
41
47
  });
@@ -47,6 +53,7 @@ exports.createFlowController = require_base.createFlowController;
47
53
  exports.createKind = require_kind.createKind;
48
54
  exports.createPort = require_port.createPort;
49
55
  exports.createReader = require_reader.createReader;
56
+ exports.createResolver = require_resolver.createResolver;
50
57
  exports.debounce = require_debounce.debounce;
51
58
  exports.evidenceResult = require_evidence.evidenceResult;
52
59
  exports.filter = require_filter.filter;
@@ -68,6 +75,9 @@ Object.defineProperty(exports, "invocation_exports", {
68
75
  exports.portHandlerKind = require_port.portHandlerKind;
69
76
  exports.readerKind = require_reader.readerKind;
70
77
  exports.resolveReaders = require_reader.resolveReaders;
78
+ exports.resolverKind = require_resolver.resolverKind;
71
79
  exports.retry = require_retry.retry;
80
+ exports.signatureKind = require_signature.signatureKind;
81
+ exports.signedFunction = require_signature.signedFunction;
72
82
  exports.throttling = require_throttling.throttling;
73
83
  exports.timeout = require_timeout.timeout;
@@ -3,3 +3,5 @@ export * from './flow';
3
3
  export * from './kind';
4
4
  export * from './port';
5
5
  export * from './reader';
6
+ export * from './resolver';
7
+ export * from './signature';
@@ -11,6 +11,8 @@ import { flowControllerTimeoutKind, timeout } from "./flow/controller/defaults/t
11
11
  import { flow } from "./flow/base.mjs";
12
12
  import { createPort, portHandlerKind } from "./port.mjs";
13
13
  import { createReader, readerKind, resolveReaders } from "./reader.mjs";
14
+ import { createResolver, resolverKind } from "./resolver.mjs";
15
+ import { signatureKind, signedFunction } from "./signature.mjs";
14
16
  //#region scripts/invocation/index.ts
15
17
  var invocation_exports = /* @__PURE__ */ __exportAll({
16
18
  AbortErrorFlowController: () => AbortErrorFlowController,
@@ -20,6 +22,7 @@ var invocation_exports = /* @__PURE__ */ __exportAll({
20
22
  createKind: () => createKind,
21
23
  createPort: () => createPort,
22
24
  createReader: () => createReader,
25
+ createResolver: () => createResolver,
23
26
  debounce: () => debounce,
24
27
  evidenceResult: () => evidenceResult,
25
28
  filter: () => filter,
@@ -35,9 +38,12 @@ var invocation_exports = /* @__PURE__ */ __exportAll({
35
38
  portHandlerKind: () => portHandlerKind,
36
39
  readerKind: () => readerKind,
37
40
  resolveReaders: () => resolveReaders,
41
+ resolverKind: () => resolverKind,
38
42
  retry: () => retry,
43
+ signatureKind: () => signatureKind,
44
+ signedFunction: () => signedFunction,
39
45
  throttling: () => throttling,
40
46
  timeout: () => timeout
41
47
  });
42
48
  //#endregion
43
- export { AbortErrorFlowController, aborter, appendEvidence, createFlowController, createKind, createPort, createReader, debounce, evidenceResult, filter, flow, flowControllerAborterKind, flowControllerDebounceKind, flowControllerExitKind, flowControllerFilterKind, flowControllerKind, flowControllerRetryKind, flowControllerThrottlingKind, flowControllerTimeoutKind, invocation_exports, portHandlerKind, readerKind, resolveReaders, retry, throttling, timeout };
49
+ export { AbortErrorFlowController, aborter, appendEvidence, createFlowController, createKind, createPort, createReader, createResolver, debounce, evidenceResult, filter, flow, flowControllerAborterKind, flowControllerDebounceKind, flowControllerExitKind, flowControllerFilterKind, flowControllerKind, flowControllerRetryKind, flowControllerThrottlingKind, flowControllerTimeoutKind, invocation_exports, portHandlerKind, readerKind, resolveReaders, resolverKind, retry, signatureKind, signedFunction, throttling, timeout };
@@ -4,14 +4,18 @@ const require_fromEntries = require("../object/fromEntries.cjs");
4
4
  const require_map = require("../array/map.cjs");
5
5
  const require_forward = require("../common/forward.cjs");
6
6
  const require_pipe = require("../common/pipe.cjs");
7
+ const require_replace = require("../string/replace.cjs");
7
8
  const require_uncapitalize = require("../string/uncapitalize.cjs");
8
9
  //#region scripts/invocation/reader.ts
9
10
  const readerKind = require("./kind.cjs").createKind("reader");
11
+ function formatPortName(value) {
12
+ return require_pipe.pipe(value, require_uncapitalize.uncapitalize, require_replace.replace(/Port$/, ""));
13
+ }
10
14
  function createReader(dependencies, read) {
11
15
  return {
12
16
  dependencies,
13
17
  run: (injectedDependencies) => read(require_pipe.pipe(require_forward.forward(dependencies), require_entries.entries, require_map.map(([key, value]) => {
14
- const formattedKey = require_uncapitalize.uncapitalize(key);
18
+ const formattedKey = readerKind.has(value) ? require_uncapitalize.uncapitalize(key) : formatPortName(key);
15
19
  return require_entry.entry(formattedKey, readerKind.has(value) && !injectedDependencies[formattedKey] ? value.run(injectedDependencies) : injectedDependencies[formattedKey]);
16
20
  }), require_fromEntries.fromEntries)),
17
21
  [readerKind.runTimeKey]: null