@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,18 +1,18 @@
1
1
  import { EntityStructure, Entity } from '../entity';
2
- import type * as DCommon from '../../common';
3
2
  import type * as DKind from '../../kind';
4
3
  import type * as DDataStructure from '../../dataStructure';
5
4
  export declare const flagKind: DKind.Handler<DKind.Definition<"@DuplojsLangModeling/flag", Record<string, unknown>>>;
6
- export interface Flag<GenericName extends string = string, GenericValue extends unknown = never> extends DKind.Kind<typeof flagKind, Record<GenericName, GenericValue>> {
5
+ export interface Flag<GenericName extends Capitalize<string> = Capitalize<string>, GenericPayload extends unknown = unknown> extends DKind.Kind<typeof flagKind, Record<GenericName, GenericPayload>> {
7
6
  }
7
+ export type GetFlagName<GenericFlag extends Flag> = GenericFlag extends Flag<infer InferredName extends Capitalize<string>> ? InferredName : never;
8
+ export type GetFlagPayload<GenericFlag extends Flag> = GenericFlag extends Flag<any, infer InferredPayload> ? InferredPayload : never;
8
9
  declare const flagHandlerKind: DKind.Handler<DKind.Definition<"@DuplojsLangModeling/flag-handler", unknown>>;
9
- export interface FlagHandler<GenericName extends string = string, GenericEntity extends Entity = Entity, GenericValue extends unknown = unknown> extends DKind.Kind<typeof flagHandlerKind> {
10
+ export interface FlagHandler<GenericName extends Capitalize<string> = Capitalize<string>, GenericEntity extends Entity = Entity, GenericPayload extends unknown = unknown> extends DKind.Kind<typeof flagHandlerKind> {
10
11
  readonly name: GenericName;
11
- append<GenericInputEntity extends GenericEntity, const GenericInputValue extends GenericValue>(value: GenericInputValue): (entity: GenericInputEntity) => (GenericInputEntity & Flag<GenericName, GenericInputValue>);
12
- append<GenericInputEntity extends GenericEntity, const GenericInputValue extends GenericValue>(entity: GenericInputEntity, value: GenericInputValue): (GenericInputEntity & Flag<GenericName, GenericInputValue>);
13
- getValue<GenericInputEntity extends GenericEntity & Flag<GenericName, GenericValue>>(entity: GenericInputEntity): DKind.GetValue<typeof flagKind, GenericInputEntity>[GenericName];
12
+ append<GenericInputEntity extends GenericEntity, const GenericInputPayload extends GenericPayload>(value: GenericInputPayload): (entity: GenericInputEntity) => (GenericInputEntity & Flag<GenericName, GenericInputPayload>);
13
+ append<GenericInputEntity extends GenericEntity, const GenericInputPayload extends GenericPayload>(entity: GenericInputEntity, value: GenericInputPayload): (GenericInputEntity & Flag<GenericName, GenericInputPayload>);
14
+ getPayload<GenericInputEntity extends GenericEntity & Flag<GenericName, GenericPayload>>(entity: GenericInputEntity): DKind.GetValue<typeof flagKind, GenericInputEntity>[GenericName];
14
15
  has<GenericInputEntity extends GenericEntity>(entity: GenericInputEntity): entity is Extract<GenericInputEntity, Flag<GenericName, any>>;
15
16
  }
16
- export declare function createFlag<GenericName extends Capitalize<string>, GenericEntityStructure extends EntityStructure, GenericPayload extends unknown = {}>(name: DCommon.IsEqual<GenericName, Capitalize<string>> extends true ? never : NoInfer<GenericName>): FlagHandler<GenericName, DDataStructure.StructureValue<GenericEntityStructure>, GenericPayload>;
17
- export type GetFlag<GenericHandler extends FlagHandler<any, any, any>> = GenericHandler extends FlagHandler<infer InferredName, any, infer InferredValue> ? Flag<InferredName, InferredValue> : never;
17
+ export declare function createFlag<GenericFLag extends Flag, GenericEntityStructure extends EntityStructure>(name: GetFlagName<GenericFLag>): FlagHandler<GetFlagName<GenericFLag>, DDataStructure.StructureValue<GenericEntityStructure>, GetFlagPayload<GenericFLag>>;
18
18
  export {};
@@ -18,7 +18,7 @@ function createFlag(name) {
18
18
  return {
19
19
  name,
20
20
  append,
21
- getValue(entity) {
21
+ getPayload(entity) {
22
22
  return flagKind.getValue(entity)[name];
23
23
  },
24
24
  has(entity) {
@@ -4,51 +4,50 @@ const require_base = require("./entity/base.cjs");
4
4
  const require_helper = require("./entity/helper.cjs");
5
5
  const require_base$1 = require("./newType/base.cjs");
6
6
  const require_helper$1 = require("./newType/helper.cjs");
7
- const require_base$2 = require("./flag/base.cjs");
8
7
  const require_namespace = require("./entity/namespace.cjs");
9
- const require_base$3 = require("./taggedObject/base.cjs");
8
+ const require_base$2 = require("./fact/base.cjs");
9
+ const require_base$3 = require("./flag/base.cjs");
10
+ const require_base$4 = require("./taggedObject/base.cjs");
10
11
  const require_helper$2 = require("./taggedObject/helper.cjs");
11
12
  //#region scripts/modeling/index.ts
12
13
  var modeling_exports = /* @__PURE__ */ require_runtime.__exportAll({
13
- EncodeEntityError: () => require_base.EncodeEntityError,
14
- EncodeNewTypeError: () => require_base$1.EncodeNewTypeError,
15
- EncodeTaggedObjectError: () => require_base$3.EncodeTaggedObjectError,
16
14
  EntityStructure: () => require_base.EntityStructure,
17
15
  NewTypeStructure: () => require_base$1.NewTypeStructure,
18
- TaggedObjectStructure: () => require_base$3.TaggedObjectStructure,
16
+ TaggedObjectStructure: () => require_base$4.TaggedObjectStructure,
19
17
  createEntity: () => require_helper.createEntity,
20
18
  createEntityNamespace: () => require_namespace.createEntityNamespace,
21
- createFlag: () => require_base$2.createFlag,
19
+ createFact: () => require_base$2.createFact,
20
+ createFlag: () => require_base$3.createFlag,
22
21
  createKind: () => require_kind.createKind,
23
22
  createNewType: () => require_helper$1.createNewType,
24
23
  createTaggedObject: () => require_helper$2.createTaggedObject,
25
24
  entityKind: () => require_base.entityKind,
26
25
  entityStructureKind: () => require_base.entityStructureKind,
27
- flagKind: () => require_base$2.flagKind,
26
+ factKind: () => require_base$2.factKind,
27
+ flagKind: () => require_base$3.flagKind,
28
28
  getTagValue: () => require_helper$2.getTagValue,
29
29
  hasTagValue: () => require_helper$2.hasTagValue,
30
30
  namespaceKind: () => require_namespace.namespaceKind,
31
31
  newTypeStructureKind: () => require_base$1.newTypeStructureKind,
32
- objectTagKind: () => require_base$3.objectTagKind,
32
+ objectTagKind: () => require_base$4.objectTagKind,
33
33
  taggedObject: () => require_helper$2.taggedObject,
34
- taggedObjectStructureKind: () => require_base$3.taggedObjectStructureKind
34
+ taggedObjectStructureKind: () => require_base$4.taggedObjectStructureKind
35
35
  });
36
36
  //#endregion
37
- exports.EncodeEntityError = require_base.EncodeEntityError;
38
- exports.EncodeNewTypeError = require_base$1.EncodeNewTypeError;
39
- exports.EncodeTaggedObjectError = require_base$3.EncodeTaggedObjectError;
40
37
  exports.EntityStructure = require_base.EntityStructure;
41
38
  exports.NewTypeStructure = require_base$1.NewTypeStructure;
42
- exports.TaggedObjectStructure = require_base$3.TaggedObjectStructure;
39
+ exports.TaggedObjectStructure = require_base$4.TaggedObjectStructure;
43
40
  exports.createEntity = require_helper.createEntity;
44
41
  exports.createEntityNamespace = require_namespace.createEntityNamespace;
45
- exports.createFlag = require_base$2.createFlag;
42
+ exports.createFact = require_base$2.createFact;
43
+ exports.createFlag = require_base$3.createFlag;
46
44
  exports.createKind = require_kind.createKind;
47
45
  exports.createNewType = require_helper$1.createNewType;
48
46
  exports.createTaggedObject = require_helper$2.createTaggedObject;
49
47
  exports.entityKind = require_base.entityKind;
50
48
  exports.entityStructureKind = require_base.entityStructureKind;
51
- exports.flagKind = require_base$2.flagKind;
49
+ exports.factKind = require_base$2.factKind;
50
+ exports.flagKind = require_base$3.flagKind;
52
51
  exports.getTagValue = require_helper$2.getTagValue;
53
52
  exports.hasTagValue = require_helper$2.hasTagValue;
54
53
  Object.defineProperty(exports, "modeling_exports", {
@@ -59,6 +58,6 @@ Object.defineProperty(exports, "modeling_exports", {
59
58
  });
60
59
  exports.namespaceKind = require_namespace.namespaceKind;
61
60
  exports.newTypeStructureKind = require_base$1.newTypeStructureKind;
62
- exports.objectTagKind = require_base$3.objectTagKind;
61
+ exports.objectTagKind = require_base$4.objectTagKind;
63
62
  exports.taggedObject = require_helper$2.taggedObject;
64
- exports.taggedObjectStructureKind = require_base$3.taggedObjectStructureKind;
63
+ exports.taggedObjectStructureKind = require_base$4.taggedObjectStructureKind;
@@ -1,4 +1,5 @@
1
1
  export * from './entity';
2
+ export * from './fact';
2
3
  export * from './flag';
3
4
  export * from './kind';
4
5
  export * from './newType';
@@ -1,29 +1,29 @@
1
1
  import { __exportAll } from "../_virtual/_rolldown/runtime.mjs";
2
2
  import { createKind } from "./kind.mjs";
3
- import { EncodeEntityError, EntityStructure, entityKind, entityStructureKind } from "./entity/base.mjs";
3
+ import { EntityStructure, entityKind, entityStructureKind } from "./entity/base.mjs";
4
4
  import { createEntity } from "./entity/helper.mjs";
5
- import { EncodeNewTypeError, NewTypeStructure, newTypeStructureKind } from "./newType/base.mjs";
5
+ import { NewTypeStructure, newTypeStructureKind } from "./newType/base.mjs";
6
6
  import { createNewType } from "./newType/helper.mjs";
7
- import { createFlag, flagKind } from "./flag/base.mjs";
8
7
  import { createEntityNamespace, namespaceKind } from "./entity/namespace.mjs";
9
- import { EncodeTaggedObjectError, TaggedObjectStructure, objectTagKind, taggedObjectStructureKind } from "./taggedObject/base.mjs";
8
+ import { createFact, factKind } from "./fact/base.mjs";
9
+ import { createFlag, flagKind } from "./flag/base.mjs";
10
+ import { TaggedObjectStructure, objectTagKind, taggedObjectStructureKind } from "./taggedObject/base.mjs";
10
11
  import { createTaggedObject, getTagValue, hasTagValue, taggedObject } from "./taggedObject/helper.mjs";
11
12
  //#region scripts/modeling/index.ts
12
13
  var modeling_exports = /* @__PURE__ */ __exportAll({
13
- EncodeEntityError: () => EncodeEntityError,
14
- EncodeNewTypeError: () => EncodeNewTypeError,
15
- EncodeTaggedObjectError: () => EncodeTaggedObjectError,
16
14
  EntityStructure: () => EntityStructure,
17
15
  NewTypeStructure: () => NewTypeStructure,
18
16
  TaggedObjectStructure: () => TaggedObjectStructure,
19
17
  createEntity: () => createEntity,
20
18
  createEntityNamespace: () => createEntityNamespace,
19
+ createFact: () => createFact,
21
20
  createFlag: () => createFlag,
22
21
  createKind: () => createKind,
23
22
  createNewType: () => createNewType,
24
23
  createTaggedObject: () => createTaggedObject,
25
24
  entityKind: () => entityKind,
26
25
  entityStructureKind: () => entityStructureKind,
26
+ factKind: () => factKind,
27
27
  flagKind: () => flagKind,
28
28
  getTagValue: () => getTagValue,
29
29
  hasTagValue: () => hasTagValue,
@@ -34,4 +34,4 @@ var modeling_exports = /* @__PURE__ */ __exportAll({
34
34
  taggedObjectStructureKind: () => taggedObjectStructureKind
35
35
  });
36
36
  //#endregion
37
- export { EncodeEntityError, EncodeNewTypeError, EncodeTaggedObjectError, EntityStructure, NewTypeStructure, TaggedObjectStructure, createEntity, createEntityNamespace, createFlag, createKind, createNewType, createTaggedObject, entityKind, entityStructureKind, flagKind, getTagValue, hasTagValue, modeling_exports, namespaceKind, newTypeStructureKind, objectTagKind, taggedObject, taggedObjectStructureKind };
37
+ export { EntityStructure, NewTypeStructure, TaggedObjectStructure, createEntity, createEntityNamespace, createFact, createFlag, createKind, createNewType, createTaggedObject, entityKind, entityStructureKind, factKind, flagKind, getTagValue, hasTagValue, modeling_exports, namespaceKind, newTypeStructureKind, objectTagKind, taggedObject, taggedObjectStructureKind };
@@ -1,28 +1,16 @@
1
- const require_parentClass = require("../../kind/parentClass.cjs");
2
1
  const require_callThen = require("../../common/callThen.cjs");
3
2
  const require_create = require("../../either/left/create.cjs");
4
- const require_is = require("../../either/left/is.cjs");
5
3
  const require_create$1 = require("../../either/right/create.cjs");
6
- const require_unwrap = require("../../either/left/unwrap.cjs");
7
- const require_unwrap$1 = require("../../either/right/unwrap.cjs");
8
4
  const require_justExec = require("../../common/justExec.cjs");
9
5
  const require_resultSymbol = require("../../dataStructure/common/resultSymbol.cjs");
10
- const require_error = require("../../dataStructure/common/error.cjs");
11
- const require_base = require("../../dataStructure/structure/base.cjs");
12
- const require_kind = require("../kind.cjs");
6
+ const require_base = require("../../dataStructure/common/error/base.cjs");
7
+ const require_base$1 = require("../../dataStructure/structure/base.cjs");
13
8
  //#region scripts/modeling/newType/base.ts
14
- const newTypeStructureKind = require_kind.createKind("new-type-structure");
15
- var EncodeNewTypeError = class extends require_parentClass.parentClass(require_kind.createKind("encode-new-type-error"), Error) {
16
- error;
17
- constructor(error) {
18
- super(void 0, "An error occurred while encoding a NewType. This can only happen if you are bypassing the type system.");
19
- this.error = error;
20
- }
21
- };
9
+ const newTypeStructureKind = require("../kind.cjs").createKind("new-type-structure");
22
10
  function executeNewTypeConstraints(structure, data, errorHandler) {
23
11
  return structure.definition.newTypeConstraints.reduce((accumulator, constraint) => require_callThen.callThen(accumulator, (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(constraint.executeCheck(data), (constraintResult) => constraintResult === require_resultSymbol.ErrorSymbol ? errorHandler?.().addIssue(structure, data, constraint) ?? require_resultSymbol.ErrorSymbol : require_resultSymbol.SuccessSymbol)), require_resultSymbol.SuccessSymbol);
24
12
  }
25
- const NewTypeStructure = require_base.createStructure(newTypeStructureKind, ({ init }) => (name, structure, newTypeConstraints) => init({
13
+ const NewTypeStructure = require_base$1.createStructure(newTypeStructureKind, ({ init }) => (name, structure, newTypeConstraints) => init({
26
14
  constraints: [],
27
15
  newTypeConstraints,
28
16
  inner: structure
@@ -30,6 +18,7 @@ const NewTypeStructure = require_base.createStructure(newTypeStructureKind, ({ i
30
18
  executeCheck: (self, data, errorHandler) => require_callThen.callThen(self.definition.inner.executeCheck(data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : executeNewTypeConstraints(self, data, errorHandler)),
31
19
  executeEncode: (self, codec, data, errorHandler) => require_callThen.callThen(self.definition.inner.executeEncode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(executeNewTypeConstraints(self, data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedInnerResult))),
32
20
  executeDecode: (self, codec, data, errorHandler) => require_callThen.callThen(self.definition.inner.executeDecode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(executeNewTypeConstraints(self, awaitedInnerResult, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(awaitedInnerResult, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedInnerResult))),
21
+ executeParse: (self, codecContext, data, errorHandler) => require_callThen.callThen(self.definition.inner.executeParse(codecContext, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(executeNewTypeConstraints(self, awaitedInnerResult, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(awaitedInnerResult, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedInnerResult))),
33
22
  isAsynchronous: (self) => self.definition.inner.isAsynchronous() || self.definition.newTypeConstraints.some((value) => value.isAsynchronous())
34
23
  }, {
35
24
  name,
@@ -38,17 +27,17 @@ const NewTypeStructure = require_base.createStructure(newTypeStructureKind, ({ i
38
27
  const [codecs] = args;
39
28
  return (value) => self.decodeMap(codecs, value);
40
29
  }
41
- const errorHandler = require_error.createGetErrorHandler();
30
+ const errorHandler = require_base.createGetErrorHandler();
42
31
  const [codecs, data] = args;
43
32
  const result = self.executeDecode(codecs.context.value, data, errorHandler);
44
- if (result instanceof Promise) return require_create.left("async-error", void 0);
33
+ if (result instanceof Promise) return require_create.left("async-error", new require_base.ErrorPromise());
45
34
  if (result === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
46
35
  return require_create$1.right("map-success", result);
47
36
  },
48
37
  map: (self, data) => {
49
- const errorHandler = require_error.createGetErrorHandler();
38
+ const errorHandler = require_base.createGetErrorHandler();
50
39
  const result = self.executeCheck(data, errorHandler);
51
- if (result instanceof Promise) return require_create.left("async-error", void 0);
40
+ if (result instanceof Promise) return require_create.left("async-error", new require_base.ErrorPromise());
52
41
  if (result === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
53
42
  return require_create$1.right("map-success", data);
54
43
  },
@@ -58,7 +47,7 @@ const NewTypeStructure = require_base.createStructure(newTypeStructureKind, ({ i
58
47
  return (value) => self.asyncDecodeMap(codecs, value);
59
48
  }
60
49
  return require_justExec.justExec(async () => {
61
- const errorHandler = require_error.createGetErrorHandler();
50
+ const errorHandler = require_base.createGetErrorHandler();
62
51
  const [codecs, data] = args;
63
52
  const result = await self.executeDecode(codecs.context.value, data, errorHandler);
64
53
  if (result === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
@@ -66,17 +55,11 @@ const NewTypeStructure = require_base.createStructure(newTypeStructureKind, ({ i
66
55
  });
67
56
  },
68
57
  asyncMap: async (self, data) => {
69
- const errorHandler = require_error.createGetErrorHandler();
58
+ const errorHandler = require_base.createGetErrorHandler();
70
59
  if (await self.executeCheck(data, errorHandler) === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
71
60
  return require_create$1.right("map-success", data);
72
- },
73
- encodeNewType: async (self, codec, data) => {
74
- const result = await self.asyncEncode(codec, data);
75
- if (require_is.isLeft(result)) throw new EncodeNewTypeError(require_unwrap.unwrapLeft(result));
76
- return require_unwrap$1.unwrapRight(result);
77
61
  }
78
62
  }));
79
63
  //#endregion
80
- exports.EncodeNewTypeError = EncodeNewTypeError;
81
64
  exports.NewTypeStructure = NewTypeStructure;
82
65
  exports.newTypeStructureKind = newTypeStructureKind;
@@ -1,4 +1,4 @@
1
- import * as DKind from '../../kind';
1
+ import type * as DKind from '../../kind';
2
2
  import * as DCommon from '../../common';
3
3
  import type * as DArray from '../../array';
4
4
  import * as DEither from '../../either';
@@ -24,21 +24,14 @@ export interface NewTypeStructureDefinition<GenericNewTypeConstraint extends rea
24
24
  readonly inner: DDataStructure.Structure;
25
25
  readonly newTypeConstraints: GenericNewTypeConstraint;
26
26
  }
27
- export type ComputeNewType<GenericName extends string, GenericValue extends unknown, GenericNewTypeConstraint extends readonly DDataStructure.Constraint<GenericValue>[], GenericIntersectionConstraintValue = DDataStructure.ConstraintValue<DArray.Unwrap<GenericNewTypeConstraint>>, GenericClearValue = DCommon.NeverCoalescing<DCommon.RemoveConstraint<GenericIntersectionConstraintValue>, unknown>> = (GenericValue & GenericClearValue & NewType<GenericName, GenericIntersectionConstraintValue extends (GenericClearValue & infer InferredConstraint extends DCommon.BaseConstraint) ? InferredConstraint : never>);
27
+ export type ComputeNewType<GenericName extends string, GenericValue extends unknown, GenericNewTypeConstraint extends readonly DDataStructure.Constraint<GenericValue>[], GenericIntersectionConstraintValue = DDataStructure.ConstraintValue<DArray.Unwrap<GenericNewTypeConstraint>>, GenericClearValue = DCommon.NeverCoalescing<DCommon.RemoveConstraint<GenericIntersectionConstraintValue>, unknown>> = Extract<GenericValue & GenericClearValue & NewType<GenericName, GenericIntersectionConstraintValue extends (GenericClearValue & infer InferredConstraint extends DCommon.BaseConstraint) ? InferredConstraint : never>, any>;
28
28
  export interface NewTypeStructure<out GenericName extends string = string, out GenericValue extends unknown = unknown, out GenericNewTypeConstraint extends readonly DDataStructure.Constraint<GenericValue>[] = readonly DDataStructure.Constraint<GenericValue>[]> extends DCommon.Forward<DDataStructure.Structure<ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>, NewTypeStructureDefinition<GenericNewTypeConstraint>> & DKind.Kind<typeof newTypeStructureKind>> {
29
29
  readonly name: GenericName;
30
- decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<NewTypeMap<DDataStructure.StructureValue<this>>, GenericCodecs>) => (DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"map-error", DDataStructure.Error>);
31
- decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<NewTypeMap<DDataStructure.StructureValue<this>>, GenericCodecs>): (DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"map-error", DDataStructure.Error>);
32
- map(data: NewTypeMap<DDataStructure.StructureValue<this>>): (DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"map-error", DDataStructure.Error>);
33
- asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<NewTypeMap<DDataStructure.StructureValue<this>>, GenericCodecs>) => Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
34
- asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<NewTypeMap<DDataStructure.StructureValue<this>>, GenericCodecs>): Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
35
- asyncMap(data: NewTypeMap<DDataStructure.StructureValue<this>>): Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
36
- encodeNewType<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.StructureValue<this>): Promise<DDataStructure.EncodedValue<NewTypeMap<DDataStructure.StructureValue<this>>, GenericCodecs>>;
37
- }
38
- declare const EncodeNewTypeError_base: DKind.KindClass<DKind.Handler<DKind.Definition<"@DuplojsLangModeling/encode-new-type-error", unknown>>, ErrorConstructor>;
39
- export declare class EncodeNewTypeError extends EncodeNewTypeError_base {
40
- error: DDataStructure.Error;
41
- constructor(error: DDataStructure.Error);
30
+ decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<NewTypeMap<ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>>, GenericCodecs>) => (DEither.Right<"map-success", ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>> | DEither.Left<"async-error", DDataStructure.ErrorPromise> | DEither.Left<"map-error", DDataStructure.Error>);
31
+ decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<NewTypeMap<ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>>, GenericCodecs>): (DEither.Right<"map-success", ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>> | DEither.Left<"async-error", DDataStructure.ErrorPromise> | DEither.Left<"map-error", DDataStructure.Error>);
32
+ map(data: NewTypeMap<ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>>): (DEither.Right<"map-success", ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>> | DEither.Left<"async-error", DDataStructure.ErrorPromise> | DEither.Left<"map-error", DDataStructure.Error>);
33
+ asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<NewTypeMap<ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>>, GenericCodecs>) => Promise<DEither.Right<"map-success", ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>> | DEither.Left<"map-error", DDataStructure.Error>>;
34
+ asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<NewTypeMap<ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>>, GenericCodecs>): Promise<DEither.Right<"map-success", ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>> | DEither.Left<"map-error", DDataStructure.Error>>;
35
+ asyncMap(data: NewTypeMap<ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>>): Promise<DEither.Right<"map-success", ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>> | DEither.Left<"map-error", DDataStructure.Error>>;
42
36
  }
43
37
  export declare const NewTypeStructure: <GenericName extends string, GenericStructure extends DDataStructure.Structure, const GenericNewTypeConstraint extends readonly DDataStructure.Constraint<DDataStructure.StructureValue<GenericStructure>>[]>(name: GenericName, structure: GenericStructure, newTypeConstraints: GenericNewTypeConstraint) => NewTypeStructure<GenericName, DDataStructure.StructureValue<GenericStructure>, GenericNewTypeConstraint>;
44
- export {};
@@ -1,24 +1,13 @@
1
- import { parentClass } from "../../kind/parentClass.mjs";
2
1
  import { callThen } from "../../common/callThen.mjs";
3
2
  import { left } from "../../either/left/create.mjs";
4
- import { isLeft } from "../../either/left/is.mjs";
5
3
  import { right } from "../../either/right/create.mjs";
6
- import { unwrapLeft } from "../../either/left/unwrap.mjs";
7
- import { unwrapRight } from "../../either/right/unwrap.mjs";
8
4
  import { justExec } from "../../common/justExec.mjs";
9
5
  import { ErrorSymbol, SuccessSymbol } from "../../dataStructure/common/resultSymbol.mjs";
10
- import { createGetErrorHandler } from "../../dataStructure/common/error.mjs";
6
+ import { ErrorPromise, createGetErrorHandler } from "../../dataStructure/common/error/base.mjs";
11
7
  import { createStructure } from "../../dataStructure/structure/base.mjs";
12
8
  import { createKind } from "../kind.mjs";
13
9
  //#region scripts/modeling/newType/base.ts
14
10
  const newTypeStructureKind = createKind("new-type-structure");
15
- var EncodeNewTypeError = class extends parentClass(createKind("encode-new-type-error"), Error) {
16
- error;
17
- constructor(error) {
18
- super(void 0, "An error occurred while encoding a NewType. This can only happen if you are bypassing the type system.");
19
- this.error = error;
20
- }
21
- };
22
11
  function executeNewTypeConstraints(structure, data, errorHandler) {
23
12
  return structure.definition.newTypeConstraints.reduce((accumulator, constraint) => callThen(accumulator, (result) => result === ErrorSymbol ? ErrorSymbol : callThen(constraint.executeCheck(data), (constraintResult) => constraintResult === ErrorSymbol ? errorHandler?.().addIssue(structure, data, constraint) ?? ErrorSymbol : SuccessSymbol)), SuccessSymbol);
24
13
  }
@@ -30,6 +19,7 @@ const NewTypeStructure = createStructure(newTypeStructureKind, ({ init }) => (na
30
19
  executeCheck: (self, data, errorHandler) => callThen(self.definition.inner.executeCheck(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : executeNewTypeConstraints(self, data, errorHandler)),
31
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))),
32
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))),
33
23
  isAsynchronous: (self) => self.definition.inner.isAsynchronous() || self.definition.newTypeConstraints.some((value) => value.isAsynchronous())
34
24
  }, {
35
25
  name,
@@ -41,14 +31,14 @@ const NewTypeStructure = createStructure(newTypeStructureKind, ({ init }) => (na
41
31
  const errorHandler = createGetErrorHandler();
42
32
  const [codecs, data] = args;
43
33
  const result = self.executeDecode(codecs.context.value, data, errorHandler);
44
- if (result instanceof Promise) return left("async-error", void 0);
34
+ if (result instanceof Promise) return left("async-error", new ErrorPromise());
45
35
  if (result === ErrorSymbol) return left("map-error", errorHandler().createError());
46
36
  return right("map-success", result);
47
37
  },
48
38
  map: (self, data) => {
49
39
  const errorHandler = createGetErrorHandler();
50
40
  const result = self.executeCheck(data, errorHandler);
51
- if (result instanceof Promise) return left("async-error", void 0);
41
+ if (result instanceof Promise) return left("async-error", new ErrorPromise());
52
42
  if (result === ErrorSymbol) return left("map-error", errorHandler().createError());
53
43
  return right("map-success", data);
54
44
  },
@@ -69,12 +59,7 @@ const NewTypeStructure = createStructure(newTypeStructureKind, ({ init }) => (na
69
59
  const errorHandler = createGetErrorHandler();
70
60
  if (await self.executeCheck(data, errorHandler) === ErrorSymbol) return left("map-error", errorHandler().createError());
71
61
  return right("map-success", data);
72
- },
73
- encodeNewType: async (self, codec, data) => {
74
- const result = await self.asyncEncode(codec, data);
75
- if (isLeft(result)) throw new EncodeNewTypeError(unwrapLeft(result));
76
- return unwrapRight(result);
77
62
  }
78
63
  }));
79
64
  //#endregion
80
- export { EncodeNewTypeError, NewTypeStructure, newTypeStructureKind };
65
+ export { NewTypeStructure, newTypeStructureKind };
@@ -1,28 +1,17 @@
1
- const require_parentClass = require("../../kind/parentClass.cjs");
2
1
  const require_isSimple = require("../../object/isSimple.cjs");
3
2
  const require_create = require("../../either/left/create.cjs");
4
- const require_is = require("../../either/left/is.cjs");
5
3
  const require_create$1 = require("../../either/right/create.cjs");
6
- const require_unwrap = require("../../either/left/unwrap.cjs");
7
- const require_unwrap$1 = require("../../either/right/unwrap.cjs");
8
4
  const require_justExec = require("../../common/justExec.cjs");
9
5
  const require_resultSymbol = require("../../dataStructure/common/resultSymbol.cjs");
10
- const require_error = require("../../dataStructure/common/error.cjs");
11
- 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");
12
8
  const require_nonEncodableString = require("../../dataStructure/structure/defaults/nonEncodableString.cjs");
13
9
  const require_object = require("../../dataStructure/structure/defaults/object.cjs");
14
10
  const require_kind = require("../kind.cjs");
15
11
  //#region scripts/modeling/taggedObject/base.ts
16
12
  const objectTagKind = require_kind.createKind("object-tag");
17
13
  const taggedObjectStructureKind = require_kind.createKind("tagged-object-structure");
18
- var EncodeTaggedObjectError = class extends require_parentClass.parentClass(require_kind.createKind("encode-tagged-object-error"), Error) {
19
- error;
20
- constructor(error) {
21
- super(void 0, "An error occurred while encoding a TaggedObject. This can only happen if you are bypassing the type system.");
22
- this.error = error;
23
- }
24
- };
25
- const TaggedObjectStructure = require_base.createStructure(taggedObjectStructureKind, ({ init }) => (name, shape) => init({
14
+ const TaggedObjectStructure = require_base$1.createStructure(taggedObjectStructureKind, ({ init }) => (name, shape) => init({
26
15
  inner: require_object.ObjectStructure({
27
16
  ...shape,
28
17
  [objectTagKind.runTimeKey]: require_nonEncodableString.NonEncodableStringStructure(name)
@@ -32,6 +21,7 @@ const TaggedObjectStructure = require_base.createStructure(taggedObjectStructure
32
21
  executeCheck: (self, data, errorHandler) => self.definition.inner.executeCheck(data, errorHandler),
33
22
  executeEncode: (self, codecContext, data, errorHandler) => self.definition.inner.executeEncode(codecContext, data, errorHandler),
34
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),
35
25
  isAsynchronous: (self) => self.definition.inner.isAsynchronous()
36
26
  }, {
37
27
  name,
@@ -44,24 +34,24 @@ const TaggedObjectStructure = require_base.createStructure(taggedObjectStructure
44
34
  const [codecs] = args;
45
35
  return (value) => self.decodeMap(codecs, value);
46
36
  }
47
- const errorHandler = require_error.createGetErrorHandler();
37
+ const errorHandler = require_base.createGetErrorHandler();
48
38
  const [codecs, data] = args;
49
39
  const result = self.executeDecode(codecs.context.value, require_isSimple.isSimple(data) ? {
50
40
  ...data,
51
41
  [objectTagKind.runTimeKey]: name
52
42
  } : data, errorHandler);
53
- 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());
54
44
  if (result === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
55
45
  return require_create$1.right("map-success", result);
56
46
  },
57
47
  map: (self, data) => {
58
- const errorHandler = require_error.createGetErrorHandler();
48
+ const errorHandler = require_base.createGetErrorHandler();
59
49
  const formattedData = require_isSimple.isSimple(data) ? {
60
50
  ...data,
61
51
  [objectTagKind.runTimeKey]: name
62
52
  } : data;
63
53
  const result = self.executeCheck(formattedData, errorHandler);
64
- 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());
65
55
  if (result === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
66
56
  return require_create$1.right("map-success", formattedData);
67
57
  },
@@ -71,7 +61,7 @@ const TaggedObjectStructure = require_base.createStructure(taggedObjectStructure
71
61
  return (value) => self.asyncDecodeMap(codecs, value);
72
62
  }
73
63
  return require_justExec.justExec(async () => {
74
- const errorHandler = require_error.createGetErrorHandler();
64
+ const errorHandler = require_base.createGetErrorHandler();
75
65
  const [codecs, data] = args;
76
66
  const result = await self.executeDecode(codecs.context.value, require_isSimple.isSimple(data) ? {
77
67
  ...data,
@@ -82,7 +72,7 @@ const TaggedObjectStructure = require_base.createStructure(taggedObjectStructure
82
72
  });
83
73
  },
84
74
  asyncMap: async (self, data) => {
85
- const errorHandler = require_error.createGetErrorHandler();
75
+ const errorHandler = require_base.createGetErrorHandler();
86
76
  const formattedData = require_isSimple.isSimple(data) ? {
87
77
  ...data,
88
78
  [objectTagKind.runTimeKey]: name
@@ -90,14 +80,18 @@ const TaggedObjectStructure = require_base.createStructure(taggedObjectStructure
90
80
  if (await self.executeCheck(formattedData, errorHandler) === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
91
81
  return require_create$1.right("map-success", formattedData);
92
82
  },
93
- encodeTaggedObject: async (self, codecs, data) => {
94
- const result = await self.asyncEncode(codecs, data);
95
- if (require_is.isLeft(result)) throw new EncodeTaggedObjectError(require_unwrap.unwrapLeft(result));
96
- return require_unwrap$1.unwrapRight(result);
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;
97
92
  }
98
93
  }));
99
94
  //#endregion
100
- exports.EncodeTaggedObjectError = EncodeTaggedObjectError;
101
95
  exports.TaggedObjectStructure = TaggedObjectStructure;
102
96
  exports.objectTagKind = objectTagKind;
103
97
  exports.taggedObjectStructureKind = taggedObjectStructureKind;
@@ -1,5 +1,5 @@
1
1
  import { NewType, NewTypeMap } from '../newType';
2
- import * as DKind from '../../kind';
2
+ import type * as DKind from '../../kind';
3
3
  import * as DCommon from '../../common';
4
4
  import * as DEither from '../../either';
5
5
  import * as DDataStructure from '../../dataStructure';
@@ -36,21 +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 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>;
39
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>>;
48
- encodeTaggedObject<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.StructureValue<this>): Promise<DDataStructure.EncodedValue<TaggedObjectMap<DKind.Remove<DDataStructure.StructureValue<this>>>, GenericCodecs>>;
49
- }
50
- declare const EncodeTaggedObjectError_base: DKind.KindClass<DKind.Handler<DKind.Definition<"@DuplojsLangModeling/encode-tagged-object-error", unknown>>, ErrorConstructor>;
51
- export declare class EncodeTaggedObjectError extends EncodeTaggedObjectError_base {
52
- error: DDataStructure.Error;
53
- constructor(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>;
54
53
  }
55
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>;
56
- export {};
@@ -1,13 +1,9 @@
1
- import { parentClass } from "../../kind/parentClass.mjs";
2
1
  import { isSimple } from "../../object/isSimple.mjs";
3
2
  import { left } from "../../either/left/create.mjs";
4
- import { isLeft } from "../../either/left/is.mjs";
5
3
  import { right } from "../../either/right/create.mjs";
6
- import { unwrapLeft } from "../../either/left/unwrap.mjs";
7
- import { unwrapRight } from "../../either/right/unwrap.mjs";
8
4
  import { justExec } from "../../common/justExec.mjs";
9
5
  import { ErrorSymbol } from "../../dataStructure/common/resultSymbol.mjs";
10
- import { createGetErrorHandler } from "../../dataStructure/common/error.mjs";
6
+ import { ErrorPromise, createGetErrorHandler } from "../../dataStructure/common/error/base.mjs";
11
7
  import { createStructure } from "../../dataStructure/structure/base.mjs";
12
8
  import { NonEncodableStringStructure } from "../../dataStructure/structure/defaults/nonEncodableString.mjs";
13
9
  import { ObjectStructure } from "../../dataStructure/structure/defaults/object.mjs";
@@ -15,13 +11,6 @@ import { createKind } from "../kind.mjs";
15
11
  //#region scripts/modeling/taggedObject/base.ts
16
12
  const objectTagKind = createKind("object-tag");
17
13
  const taggedObjectStructureKind = createKind("tagged-object-structure");
18
- var EncodeTaggedObjectError = class extends parentClass(createKind("encode-tagged-object-error"), Error) {
19
- error;
20
- constructor(error) {
21
- super(void 0, "An error occurred while encoding a TaggedObject. This can only happen if you are bypassing the type system.");
22
- this.error = error;
23
- }
24
- };
25
14
  const TaggedObjectStructure = createStructure(taggedObjectStructureKind, ({ init }) => (name, shape) => init({
26
15
  inner: ObjectStructure({
27
16
  ...shape,
@@ -32,6 +21,7 @@ const TaggedObjectStructure = createStructure(taggedObjectStructureKind, ({ init
32
21
  executeCheck: (self, data, errorHandler) => self.definition.inner.executeCheck(data, errorHandler),
33
22
  executeEncode: (self, codecContext, data, errorHandler) => self.definition.inner.executeEncode(codecContext, data, errorHandler),
34
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),
35
25
  isAsynchronous: (self) => self.definition.inner.isAsynchronous()
36
26
  }, {
37
27
  name,
@@ -50,7 +40,7 @@ const TaggedObjectStructure = createStructure(taggedObjectStructureKind, ({ init
50
40
  ...data,
51
41
  [objectTagKind.runTimeKey]: name
52
42
  } : data, errorHandler);
53
- if (result instanceof Promise) return left("async-error", void 0);
43
+ if (result instanceof Promise) return left("async-error", new ErrorPromise());
54
44
  if (result === ErrorSymbol) return left("map-error", errorHandler().createError());
55
45
  return right("map-success", result);
56
46
  },
@@ -61,7 +51,7 @@ const TaggedObjectStructure = createStructure(taggedObjectStructureKind, ({ init
61
51
  [objectTagKind.runTimeKey]: name
62
52
  } : data;
63
53
  const result = self.executeCheck(formattedData, errorHandler);
64
- if (result instanceof Promise) return left("async-error", void 0);
54
+ if (result instanceof Promise) return left("async-error", new ErrorPromise());
65
55
  if (result === ErrorSymbol) return left("map-error", errorHandler().createError());
66
56
  return right("map-success", formattedData);
67
57
  },
@@ -90,11 +80,16 @@ const TaggedObjectStructure = createStructure(taggedObjectStructureKind, ({ init
90
80
  if (await self.executeCheck(formattedData, errorHandler) === ErrorSymbol) return left("map-error", errorHandler().createError());
91
81
  return right("map-success", formattedData);
92
82
  },
93
- encodeTaggedObject: async (self, codecs, data) => {
94
- const result = await self.asyncEncode(codecs, data);
95
- if (isLeft(result)) throw new EncodeTaggedObjectError(unwrapLeft(result));
96
- return unwrapRight(result);
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;
97
92
  }
98
93
  }));
99
94
  //#endregion
100
- export { EncodeTaggedObjectError, TaggedObjectStructure, objectTagKind, taggedObjectStructureKind };
95
+ export { TaggedObjectStructure, objectTagKind, taggedObjectStructureKind };