@duplojs/lang 0.0.0 → 0.0.1-beta.2

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 (275) hide show
  1. package/dist/array/at/default.d.ts +1 -1
  2. package/dist/array/chunk.d.ts +3 -2
  3. package/dist/array/concat.d.ts +1 -1
  4. package/dist/array/copyWithin.d.ts +1 -1
  5. package/dist/array/fill/all.d.ts +1 -1
  6. package/dist/array/fill/default.d.ts +3 -3
  7. package/dist/array/filter.d.ts +1 -1
  8. package/dist/array/findAndReplace.d.ts +1 -1
  9. package/dist/array/findAndSplice/delete.d.ts +1 -1
  10. package/dist/array/findAndSplice/insert.d.ts +1 -1
  11. package/dist/array/insert.d.ts +3 -3
  12. package/dist/array/length.d.ts +1 -1
  13. package/dist/array/lengthEqual.d.ts +1 -1
  14. package/dist/array/map.d.ts +1 -1
  15. package/dist/array/maxElements.d.ts +1 -1
  16. package/dist/array/minElements.d.ts +1 -1
  17. package/dist/array/pop.d.ts +1 -1
  18. package/dist/array/prepend.d.ts +1 -1
  19. package/dist/array/push.d.ts +3 -3
  20. package/dist/array/reverse.d.ts +1 -1
  21. package/dist/array/shift.d.ts +1 -1
  22. package/dist/array/sort.d.ts +1 -1
  23. package/dist/array/splice/delete.d.ts +1 -1
  24. package/dist/array/splice/insert.d.ts +1 -1
  25. package/dist/array/unshift.d.ts +3 -3
  26. package/dist/common/formData.cjs +4 -2
  27. package/dist/common/formData.mjs +4 -2
  28. package/dist/common/queue.cjs +9 -7
  29. package/dist/common/queue.mjs +9 -7
  30. package/dist/common/types/index.d.ts +1 -0
  31. package/dist/common/types/splitPromise.d.ts +1 -0
  32. package/dist/dataStructure/common/codec.cjs +5 -4
  33. package/dist/dataStructure/common/codec.d.ts +2 -2
  34. package/dist/dataStructure/common/codec.mjs +5 -4
  35. package/dist/dataStructure/common/error.cjs +34 -16
  36. package/dist/dataStructure/common/error.d.ts +29 -11
  37. package/dist/dataStructure/common/error.mjs +32 -17
  38. package/dist/dataStructure/common/errorInterpreter.cjs +45 -0
  39. package/dist/dataStructure/common/errorInterpreter.d.ts +32 -0
  40. package/dist/dataStructure/common/errorInterpreter.mjs +45 -0
  41. package/dist/dataStructure/common/index.d.ts +1 -0
  42. package/dist/dataStructure/constraint/base.cjs +16 -3
  43. package/dist/dataStructure/constraint/base.d.ts +8 -4
  44. package/dist/dataStructure/constraint/base.mjs +16 -3
  45. package/dist/dataStructure/constraint/defaults/allowedCharacters.cjs +1 -1
  46. package/dist/dataStructure/constraint/defaults/allowedCharacters.mjs +1 -1
  47. package/dist/dataStructure/constraint/defaults/arrayLengthEqual.cjs +1 -1
  48. package/dist/dataStructure/constraint/defaults/arrayLengthEqual.mjs +1 -1
  49. package/dist/dataStructure/constraint/defaults/betweenThan.cjs +1 -1
  50. package/dist/dataStructure/constraint/defaults/betweenThan.mjs +1 -1
  51. package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.cjs +1 -1
  52. package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.mjs +1 -1
  53. package/dist/dataStructure/constraint/defaults/email.cjs +1 -1
  54. package/dist/dataStructure/constraint/defaults/email.mjs +1 -1
  55. package/dist/dataStructure/constraint/defaults/even.cjs +1 -1
  56. package/dist/dataStructure/constraint/defaults/even.mjs +1 -1
  57. package/dist/dataStructure/constraint/defaults/greaterThan.cjs +1 -1
  58. package/dist/dataStructure/constraint/defaults/greaterThan.mjs +1 -1
  59. package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.cjs +1 -1
  60. package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.mjs +1 -1
  61. package/dist/dataStructure/constraint/defaults/index.d.ts +1 -0
  62. package/dist/dataStructure/constraint/defaults/integer.cjs +1 -1
  63. package/dist/dataStructure/constraint/defaults/integer.mjs +1 -1
  64. package/dist/dataStructure/constraint/defaults/lessThan.cjs +1 -1
  65. package/dist/dataStructure/constraint/defaults/lessThan.mjs +1 -1
  66. package/dist/dataStructure/constraint/defaults/lessThanOrEqual.cjs +1 -1
  67. package/dist/dataStructure/constraint/defaults/lessThanOrEqual.mjs +1 -1
  68. package/dist/dataStructure/constraint/defaults/maxCharacters.cjs +1 -1
  69. package/dist/dataStructure/constraint/defaults/maxCharacters.mjs +1 -1
  70. package/dist/dataStructure/constraint/defaults/maxElements.cjs +1 -1
  71. package/dist/dataStructure/constraint/defaults/maxElements.mjs +1 -1
  72. package/dist/dataStructure/constraint/defaults/minCharacters.cjs +1 -1
  73. package/dist/dataStructure/constraint/defaults/minCharacters.mjs +1 -1
  74. package/dist/dataStructure/constraint/defaults/minElements.cjs +1 -1
  75. package/dist/dataStructure/constraint/defaults/minElements.mjs +1 -1
  76. package/dist/dataStructure/constraint/defaults/multipleOf.cjs +1 -1
  77. package/dist/dataStructure/constraint/defaults/multipleOf.mjs +1 -1
  78. package/dist/dataStructure/constraint/defaults/negative.cjs +1 -1
  79. package/dist/dataStructure/constraint/defaults/negative.mjs +1 -1
  80. package/dist/dataStructure/constraint/defaults/notEmpty.cjs +1 -1
  81. package/dist/dataStructure/constraint/defaults/notEmpty.mjs +1 -1
  82. package/dist/dataStructure/constraint/defaults/notZero.cjs +1 -1
  83. package/dist/dataStructure/constraint/defaults/notZero.mjs +1 -1
  84. package/dist/dataStructure/constraint/defaults/odd.cjs +1 -1
  85. package/dist/dataStructure/constraint/defaults/odd.mjs +1 -1
  86. package/dist/dataStructure/constraint/defaults/positive.cjs +1 -1
  87. package/dist/dataStructure/constraint/defaults/positive.mjs +1 -1
  88. package/dist/dataStructure/constraint/defaults/refine.cjs +1 -1
  89. package/dist/dataStructure/constraint/defaults/refine.mjs +1 -1
  90. package/dist/dataStructure/constraint/defaults/safe.cjs +1 -1
  91. package/dist/dataStructure/constraint/defaults/safe.mjs +1 -1
  92. package/dist/dataStructure/constraint/defaults/strictNegative.cjs +1 -1
  93. package/dist/dataStructure/constraint/defaults/strictNegative.mjs +1 -1
  94. package/dist/dataStructure/constraint/defaults/strictPositive.cjs +1 -1
  95. package/dist/dataStructure/constraint/defaults/strictPositive.mjs +1 -1
  96. package/dist/dataStructure/constraint/defaults/stringLengthEqual.cjs +1 -1
  97. package/dist/dataStructure/constraint/defaults/stringLengthEqual.mjs +1 -1
  98. package/dist/dataStructure/constraint/defaults/trimmed.cjs +13 -0
  99. package/dist/dataStructure/constraint/defaults/trimmed.d.ts +10 -0
  100. package/dist/dataStructure/constraint/defaults/trimmed.mjs +12 -0
  101. package/dist/dataStructure/constraint/defaults/url.cjs +1 -1
  102. package/dist/dataStructure/constraint/defaults/url.mjs +1 -1
  103. package/dist/dataStructure/constraint/defaults/uuid.cjs +1 -1
  104. package/dist/dataStructure/constraint/defaults/uuid.mjs +1 -1
  105. package/dist/dataStructure/fundamentalType/base.cjs +3 -3
  106. package/dist/dataStructure/fundamentalType/base.d.ts +4 -5
  107. package/dist/dataStructure/fundamentalType/base.mjs +3 -3
  108. package/dist/dataStructure/fundamentalType/defaults/bigint.cjs +4 -2
  109. package/dist/dataStructure/fundamentalType/defaults/bigint.d.ts +4 -4
  110. package/dist/dataStructure/fundamentalType/defaults/bigint.mjs +5 -2
  111. package/dist/dataStructure/fundamentalType/defaults/boolean.cjs +4 -2
  112. package/dist/dataStructure/fundamentalType/defaults/boolean.d.ts +4 -4
  113. package/dist/dataStructure/fundamentalType/defaults/boolean.mjs +5 -2
  114. package/dist/dataStructure/fundamentalType/defaults/date.cjs +4 -2
  115. package/dist/dataStructure/fundamentalType/defaults/date.d.ts +4 -4
  116. package/dist/dataStructure/fundamentalType/defaults/date.mjs +5 -2
  117. package/dist/dataStructure/fundamentalType/defaults/null.cjs +4 -2
  118. package/dist/dataStructure/fundamentalType/defaults/null.d.ts +4 -4
  119. package/dist/dataStructure/fundamentalType/defaults/null.mjs +5 -2
  120. package/dist/dataStructure/fundamentalType/defaults/number.cjs +4 -2
  121. package/dist/dataStructure/fundamentalType/defaults/number.d.ts +4 -4
  122. package/dist/dataStructure/fundamentalType/defaults/number.mjs +5 -2
  123. package/dist/dataStructure/fundamentalType/defaults/string.cjs +4 -2
  124. package/dist/dataStructure/fundamentalType/defaults/string.d.ts +4 -4
  125. package/dist/dataStructure/fundamentalType/defaults/string.mjs +5 -2
  126. package/dist/dataStructure/fundamentalType/defaults/time.cjs +4 -2
  127. package/dist/dataStructure/fundamentalType/defaults/time.d.ts +4 -4
  128. package/dist/dataStructure/fundamentalType/defaults/time.mjs +5 -2
  129. package/dist/dataStructure/fundamentalType/defaults/undefined.cjs +4 -2
  130. package/dist/dataStructure/fundamentalType/defaults/undefined.d.ts +4 -4
  131. package/dist/dataStructure/fundamentalType/defaults/undefined.mjs +5 -2
  132. package/dist/dataStructure/fundamentalType/identifier.d.ts +2 -2
  133. package/dist/dataStructure/helpers/array.d.ts +1 -1
  134. package/dist/dataStructure/helpers/bigint.d.ts +1 -1
  135. package/dist/dataStructure/helpers/boolean.d.ts +1 -1
  136. package/dist/dataStructure/helpers/date.d.ts +1 -1
  137. package/dist/dataStructure/helpers/index.d.ts +1 -0
  138. package/dist/dataStructure/helpers/lazy.d.ts +1 -1
  139. package/dist/dataStructure/helpers/null.d.ts +1 -1
  140. package/dist/dataStructure/helpers/number.d.ts +1 -1
  141. package/dist/dataStructure/helpers/object.d.ts +1 -1
  142. package/dist/dataStructure/helpers/record.d.ts +1 -1
  143. package/dist/dataStructure/helpers/string.d.ts +1 -1
  144. package/dist/dataStructure/helpers/time.d.ts +1 -1
  145. package/dist/dataStructure/helpers/trimmed.cjs +7 -0
  146. package/dist/dataStructure/helpers/trimmed.d.ts +2 -0
  147. package/dist/dataStructure/helpers/trimmed.mjs +7 -0
  148. package/dist/dataStructure/helpers/undefined.d.ts +1 -1
  149. package/dist/dataStructure/helpers/union.d.ts +1 -1
  150. package/dist/dataStructure/index.cjs +38 -0
  151. package/dist/dataStructure/index.mjs +31 -10
  152. package/dist/dataStructure/structure/base.cjs +15 -5
  153. package/dist/dataStructure/structure/base.d.ts +7 -4
  154. package/dist/dataStructure/structure/base.mjs +15 -5
  155. package/dist/dataStructure/structure/defaults/array.d.ts +1 -1
  156. package/dist/dataStructure/structure/defaults/array.mjs +8 -5
  157. package/dist/dataStructure/structure/defaults/index.d.ts +1 -0
  158. package/dist/dataStructure/structure/defaults/lazy.cjs +4 -2
  159. package/dist/dataStructure/structure/defaults/lazy.d.ts +1 -1
  160. package/dist/dataStructure/structure/defaults/lazy.mjs +4 -2
  161. package/dist/dataStructure/structure/defaults/nonEncodableString.cjs +17 -0
  162. package/dist/dataStructure/structure/defaults/nonEncodableString.d.ts +10 -0
  163. package/dist/dataStructure/structure/defaults/nonEncodableString.mjs +16 -0
  164. package/dist/dataStructure/structure/defaults/object.d.ts +1 -1
  165. package/dist/dataStructure/structure/defaults/object.mjs +8 -5
  166. package/dist/dataStructure/structure/defaults/record.d.ts +1 -1
  167. package/dist/dataStructure/structure/defaults/record.mjs +8 -5
  168. package/dist/dataStructure/structure/defaults/type.cjs +1 -1
  169. package/dist/dataStructure/structure/defaults/type.d.ts +1 -1
  170. package/dist/dataStructure/structure/defaults/type.mjs +2 -2
  171. package/dist/dataStructure/structure/defaults/union.cjs +9 -9
  172. package/dist/dataStructure/structure/defaults/union.d.ts +1 -1
  173. package/dist/dataStructure/structure/defaults/union.mjs +18 -15
  174. package/dist/dataStructure/structure/identifier.d.ts +2 -2
  175. package/dist/dataStructure/structure/types/constraintsValue.d.ts +1 -1
  176. package/dist/dataStructure/structure/types/structures.d.ts +2 -1
  177. package/dist/dataStructure/structure/types/value.d.ts +1 -1
  178. package/dist/dataStructure/type/base.cjs +17 -4
  179. package/dist/dataStructure/type/base.d.ts +7 -3
  180. package/dist/dataStructure/type/base.mjs +17 -4
  181. package/dist/dataStructure/type/defaults/bigintLiteral.cjs +1 -1
  182. package/dist/dataStructure/type/defaults/bigintLiteral.mjs +1 -1
  183. package/dist/dataStructure/type/defaults/booleanLiteral.cjs +1 -1
  184. package/dist/dataStructure/type/defaults/booleanLiteral.mjs +1 -1
  185. package/dist/dataStructure/type/defaults/numberLiteral.cjs +1 -1
  186. package/dist/dataStructure/type/defaults/numberLiteral.mjs +1 -1
  187. package/dist/dataStructure/type/defaults/stringLiteral.cjs +1 -1
  188. package/dist/dataStructure/type/defaults/stringLiteral.mjs +1 -1
  189. package/dist/dataStructure/type/identifier.d.ts +2 -2
  190. package/dist/generator/asyncChunk.d.ts +3 -2
  191. package/dist/generator/chunk.d.ts +3 -2
  192. package/dist/generator/types/flat.d.ts +2 -2
  193. package/dist/invocation/flow/base.d.ts +7 -2
  194. package/dist/invocation/flow/controller/base.d.ts +1 -0
  195. package/dist/invocation/flow/controller/defaults/aborter.cjs +35 -0
  196. package/dist/invocation/flow/controller/defaults/aborter.d.ts +14 -0
  197. package/dist/invocation/flow/controller/defaults/aborter.mjs +33 -0
  198. package/dist/invocation/flow/controller/defaults/filter.cjs +5 -3
  199. package/dist/invocation/flow/controller/defaults/filter.d.ts +1 -1
  200. package/dist/invocation/flow/controller/defaults/filter.mjs +5 -3
  201. package/dist/invocation/flow/controller/defaults/index.d.ts +1 -0
  202. package/dist/invocation/index.cjs +7 -0
  203. package/dist/invocation/index.mjs +5 -1
  204. package/dist/kind/types/getName.d.ts +2 -0
  205. package/dist/kind/types/getNamespaceName.d.ts +3 -0
  206. package/dist/kind/types/index.d.ts +2 -0
  207. package/dist/kind/types/remove.d.ts +2 -2
  208. package/dist/modeling/entity/base.cjs +2 -2
  209. package/dist/modeling/entity/base.d.ts +14 -10
  210. package/dist/modeling/entity/base.mjs +2 -2
  211. package/dist/modeling/entity/index.d.ts +0 -1
  212. package/dist/modeling/index.cjs +17 -6
  213. package/dist/modeling/index.d.ts +1 -0
  214. package/dist/modeling/index.mjs +11 -5
  215. package/dist/modeling/newType/base.cjs +6 -3
  216. package/dist/modeling/newType/base.mjs +6 -3
  217. package/dist/modeling/taggedObject/base.cjs +23 -0
  218. package/dist/modeling/taggedObject/base.d.ts +32 -0
  219. package/dist/modeling/taggedObject/base.mjs +21 -0
  220. package/dist/modeling/taggedObject/helper.cjs +29 -0
  221. package/dist/modeling/taggedObject/helper.d.ts +14 -0
  222. package/dist/modeling/taggedObject/helper.mjs +26 -0
  223. package/dist/modeling/taggedObject/index.d.ts +2 -0
  224. package/dist/number/betweenThan.d.ts +2 -2
  225. package/dist/number/betweenThanOrEqual.d.ts +2 -2
  226. package/dist/number/greaterThan.d.ts +1 -1
  227. package/dist/number/greaterThanOrEqual.d.ts +1 -1
  228. package/dist/number/lessThan.d.ts +1 -1
  229. package/dist/number/lessThanOrEqual.d.ts +1 -1
  230. package/dist/number/sort.d.ts +1 -1
  231. package/dist/pattern/index.cjs +12 -0
  232. package/dist/pattern/index.d.ts +4 -0
  233. package/dist/pattern/index.mjs +9 -1
  234. package/dist/pattern/matchWithEntity.cjs +12 -0
  235. package/dist/pattern/matchWithEntity.d.ts +12 -0
  236. package/dist/pattern/matchWithEntity.mjs +12 -0
  237. package/dist/pattern/matchWithEntityOtherwise.cjs +13 -0
  238. package/dist/pattern/matchWithEntityOtherwise.d.ts +14 -0
  239. package/dist/pattern/matchWithEntityOtherwise.mjs +13 -0
  240. package/dist/pattern/matchWithNumberOtherwise.cjs +2 -6
  241. package/dist/pattern/matchWithNumberOtherwise.mjs +2 -6
  242. package/dist/pattern/matchWithStringOtherwise.cjs +2 -6
  243. package/dist/pattern/matchWithStringOtherwise.d.ts +1 -1
  244. package/dist/pattern/matchWithStringOtherwise.mjs +2 -6
  245. package/dist/pattern/matchWithTaggedObject.cjs +12 -0
  246. package/dist/pattern/matchWithTaggedObject.d.ts +12 -0
  247. package/dist/pattern/matchWithTaggedObject.mjs +12 -0
  248. package/dist/pattern/matchWithTaggedObjectOtherwise.cjs +13 -0
  249. package/dist/pattern/matchWithTaggedObjectOtherwise.d.ts +14 -0
  250. package/dist/pattern/matchWithTaggedObjectOtherwise.mjs +13 -0
  251. package/dist/string/at.d.ts +2 -2
  252. package/dist/string/first.d.ts +1 -1
  253. package/dist/string/index.cjs +3 -0
  254. package/dist/string/index.mjs +3 -1
  255. package/dist/string/last.d.ts +1 -1
  256. package/dist/string/lengthEqual.d.ts +1 -1
  257. package/dist/string/maxCharacters.d.ts +1 -1
  258. package/dist/string/minCharacters.d.ts +1 -1
  259. package/dist/string/padEnd.d.ts +1 -1
  260. package/dist/string/padStart.d.ts +1 -1
  261. package/dist/string/pop.d.ts +1 -1
  262. package/dist/string/shift.d.ts +1 -1
  263. package/dist/string/slice.d.ts +1 -1
  264. package/dist/string/substring.d.ts +1 -1
  265. package/dist/string/trim/default.d.ts +1 -1
  266. package/dist/string/trim/end.d.ts +1 -1
  267. package/dist/string/trim/index.d.ts +1 -0
  268. package/dist/string/trim/is.cjs +6 -0
  269. package/dist/string/trim/is.d.ts +2 -0
  270. package/dist/string/trim/is.mjs +6 -0
  271. package/dist/string/trim/start.d.ts +1 -1
  272. package/package.json +1 -1
  273. package/dist/modeling/entity/entityName.cjs +0 -13
  274. package/dist/modeling/entity/entityName.d.ts +0 -13
  275. package/dist/modeling/entity/entityName.mjs +0 -13
@@ -0,0 +1,35 @@
1
+ const require_parentClass = require("../../../../kind/parentClass.cjs");
2
+ const require_create = require("../../../../either/left/create.cjs");
3
+ const require_kind = require("../../../kind.cjs");
4
+ const require_base = require("../base.cjs");
5
+ //#region scripts/invocation/flow/controller/defaults/aborter.ts
6
+ const flowControllerAborterKind = require_kind.createKind("flow-controller-aborter");
7
+ var AbortErrorFlowController = class extends require_parentClass.parentClass(require_kind.createKind("abort-error-flow-controller"), Error) {
8
+ abortController;
9
+ constructor(abortController) {
10
+ super(null, "Flow is aborted by FlowControllerAborter.");
11
+ this.abortController = abortController;
12
+ }
13
+ };
14
+ const aborter = require_base.createFlowController(flowControllerAborterKind, ({ init, exitFlow }) => (theFunction) => {
15
+ let aborter = void 0;
16
+ return init(async (previousFunction) => {
17
+ const result = previousFunction();
18
+ if (require_base.flowControllerExitKind.has(result)) return result;
19
+ aborter?.abort(new AbortErrorFlowController(aborter));
20
+ const currentAborter = new AbortController();
21
+ aborter = currentAborter;
22
+ try {
23
+ const abortResult = await theFunction(result, currentAborter);
24
+ if (currentAborter.signal.aborted === true) return exitFlow(require_create.left("signal-aborted", currentAborter.signal.reason));
25
+ return abortResult;
26
+ } catch (error) {
27
+ if (error instanceof AbortErrorFlowController) return exitFlow(require_create.left("signal-aborted", currentAborter.signal.reason));
28
+ throw error;
29
+ }
30
+ });
31
+ });
32
+ //#endregion
33
+ exports.AbortErrorFlowController = AbortErrorFlowController;
34
+ exports.aborter = aborter;
35
+ exports.flowControllerAborterKind = flowControllerAborterKind;
@@ -0,0 +1,14 @@
1
+ import { FlowController } from '../base';
2
+ import type * as DCommon from '../../../../common';
3
+ import * as DKind from '../../../../kind';
4
+ import * as DEither from '../../../../either';
5
+ export declare const flowControllerAborterKind: DKind.Handler<DKind.Definition<"@DuplojsLangInvocation/flow-controller-aborter", unknown>>;
6
+ export interface FlowControllerAborter<GenericInput extends unknown = unknown, GenericOutput extends unknown = unknown> extends DCommon.UnionToIntersection<FlowController<GenericInput, Promise<Awaited<GenericOutput> | DEither.Left<"signal-aborted", AbortErrorFlowController>>> & DKind.Kind<typeof flowControllerAborterKind>> {
7
+ }
8
+ declare const AbortErrorFlowController_base: DKind.KindClass<DKind.Handler<DKind.Definition<"@DuplojsLangInvocation/abort-error-flow-controller", unknown>>, ErrorConstructor>;
9
+ export declare class AbortErrorFlowController extends AbortErrorFlowController_base {
10
+ abortController: AbortController;
11
+ constructor(abortController: AbortController);
12
+ }
13
+ export declare const aborter: <GenericInput extends unknown, GenericOutput extends unknown>(theFunction: (input: GenericInput, aborter: AbortController) => GenericOutput) => FlowControllerAborter<GenericInput, GenericOutput>;
14
+ export {};
@@ -0,0 +1,33 @@
1
+ import { parentClass } from "../../../../kind/parentClass.mjs";
2
+ import { left } from "../../../../either/left/create.mjs";
3
+ import { createKind } from "../../../kind.mjs";
4
+ import { createFlowController, flowControllerExitKind } from "../base.mjs";
5
+ //#region scripts/invocation/flow/controller/defaults/aborter.ts
6
+ const flowControllerAborterKind = createKind("flow-controller-aborter");
7
+ var AbortErrorFlowController = class extends parentClass(createKind("abort-error-flow-controller"), Error) {
8
+ abortController;
9
+ constructor(abortController) {
10
+ super(null, "Flow is aborted by FlowControllerAborter.");
11
+ this.abortController = abortController;
12
+ }
13
+ };
14
+ const aborter = createFlowController(flowControllerAborterKind, ({ init, exitFlow }) => (theFunction) => {
15
+ let aborter = void 0;
16
+ return init(async (previousFunction) => {
17
+ const result = previousFunction();
18
+ if (flowControllerExitKind.has(result)) return result;
19
+ aborter?.abort(new AbortErrorFlowController(aborter));
20
+ const currentAborter = new AbortController();
21
+ aborter = currentAborter;
22
+ try {
23
+ const abortResult = await theFunction(result, currentAborter);
24
+ if (currentAborter.signal.aborted === true) return exitFlow(left("signal-aborted", currentAborter.signal.reason));
25
+ return abortResult;
26
+ } catch (error) {
27
+ if (error instanceof AbortErrorFlowController) return exitFlow(left("signal-aborted", currentAborter.signal.reason));
28
+ throw error;
29
+ }
30
+ });
31
+ });
32
+ //#endregion
33
+ export { AbortErrorFlowController, aborter, flowControllerAborterKind };
@@ -7,9 +7,11 @@ const require_base = require("../base.cjs");
7
7
  const flowControllerFilterKind = require_kind.createKind("flow-controller-filter");
8
8
  const filter = require_base.createFlowController(flowControllerFilterKind, ({ init, exitFlow }) => (filterFunction) => init((previousFunction) => require_callThen.callThen(previousFunction(), (result) => {
9
9
  if (require_base.flowControllerExitKind.has(result)) return result;
10
- const filterResult = require_unwrap.unwrapRight(filterFunction(result));
11
- if (require_is.isLeft(filterResult)) return exitFlow(filterResult);
12
- return filterResult;
10
+ return require_callThen.callThen(filterFunction(result), (filterResult) => {
11
+ const result = require_unwrap.unwrapRight(filterResult);
12
+ if (require_is.isLeft(result)) return exitFlow(result);
13
+ return result;
14
+ });
13
15
  })));
14
16
  //#endregion
15
17
  exports.filter = filter;
@@ -3,6 +3,6 @@ import * as DCommon from '../../../../common';
3
3
  import type * as DKind from '../../../../kind';
4
4
  import * as DEither from '../../../../either';
5
5
  export declare const flowControllerFilterKind: DKind.Handler<DKind.Definition<"@DuplojsLangInvocation/flow-controller-filter", unknown>>;
6
- export interface FlowControllerFilter<GenericInput extends unknown = unknown, GenericOutput extends unknown = unknown> extends DCommon.UnionToIntersection<FlowController<GenericInput, GenericOutput extends DEither.Left ? FlowControllerExit<GenericOutput> : GenericOutput extends DEither.Right ? DEither.GetValue<GenericOutput> : GenericOutput> & DKind.Kind<typeof flowControllerFilterKind>> {
6
+ export interface FlowControllerFilter<GenericInput extends unknown = unknown, GenericOutput extends unknown = unknown> extends DCommon.UnionToIntersection<FlowController<GenericInput, DCommon.SplitPromise<GenericOutput> extends infer InferredOutput ? InferredOutput extends unknown ? Awaited<InferredOutput> extends infer InferredAwaited ? (InferredAwaited extends DEither.Left ? FlowControllerExit<InferredAwaited> : InferredAwaited extends DEither.Right ? DEither.GetValue<InferredAwaited> : InferredAwaited) extends infer InferredResult ? InferredOutput extends Promise<unknown> ? Promise<InferredResult> : InferredResult : never : never : never : never> & DKind.Kind<typeof flowControllerFilterKind>> {
7
7
  }
8
8
  export declare const filter: <GenericInput extends unknown, GenericOutput extends unknown>(filterFunction: (input: GenericInput) => GenericOutput) => FlowControllerFilter<GenericInput, GenericOutput>;
@@ -7,9 +7,11 @@ import { createFlowController, flowControllerExitKind } from "../base.mjs";
7
7
  const flowControllerFilterKind = createKind("flow-controller-filter");
8
8
  const filter = createFlowController(flowControllerFilterKind, ({ init, exitFlow }) => (filterFunction) => init((previousFunction) => callThen(previousFunction(), (result) => {
9
9
  if (flowControllerExitKind.has(result)) return result;
10
- const filterResult = unwrapRight(filterFunction(result));
11
- if (isLeft(filterResult)) return exitFlow(filterResult);
12
- return filterResult;
10
+ return callThen(filterFunction(result), (filterResult) => {
11
+ const result = unwrapRight(filterResult);
12
+ if (isLeft(result)) return exitFlow(result);
13
+ return result;
14
+ });
13
15
  })));
14
16
  //#endregion
15
17
  export { filter, flowControllerFilterKind };
@@ -1,3 +1,4 @@
1
+ export * from './aborter';
1
2
  export * from './debounce';
2
3
  export * from './filter';
3
4
  export * from './retry';
@@ -2,6 +2,7 @@ const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
2
2
  const require_evidence = require("./evidence.cjs");
3
3
  const require_kind = require("./kind.cjs");
4
4
  const require_base = require("./flow/controller/base.cjs");
5
+ const require_aborter = require("./flow/controller/defaults/aborter.cjs");
5
6
  const require_debounce = require("./flow/controller/defaults/debounce.cjs");
6
7
  const require_filter = require("./flow/controller/defaults/filter.cjs");
7
8
  const require_retry = require("./flow/controller/defaults/retry.cjs");
@@ -12,6 +13,8 @@ const require_port = require("./port.cjs");
12
13
  const require_useCase = require("./useCase.cjs");
13
14
  //#region scripts/invocation/index.ts
14
15
  var invocation_exports = /* @__PURE__ */ require_runtime.__exportAll({
16
+ AbortErrorFlowController: () => require_aborter.AbortErrorFlowController,
17
+ aborter: () => require_aborter.aborter,
15
18
  appendEvidence: () => require_evidence.appendEvidence,
16
19
  createFlowController: () => require_base.createFlowController,
17
20
  createKind: () => require_kind.createKind,
@@ -21,6 +24,7 @@ var invocation_exports = /* @__PURE__ */ require_runtime.__exportAll({
21
24
  evidenceResult: () => require_evidence.evidenceResult,
22
25
  filter: () => require_filter.filter,
23
26
  flow: () => require_base$1.flow,
27
+ flowControllerAborterKind: () => require_aborter.flowControllerAborterKind,
24
28
  flowControllerDebounceKind: () => require_debounce.flowControllerDebounceKind,
25
29
  flowControllerExitKind: () => require_base.flowControllerExitKind,
26
30
  flowControllerFilterKind: () => require_filter.flowControllerFilterKind,
@@ -36,6 +40,8 @@ var invocation_exports = /* @__PURE__ */ require_runtime.__exportAll({
36
40
  wireUseCases: () => require_useCase.wireUseCases
37
41
  });
38
42
  //#endregion
43
+ exports.AbortErrorFlowController = require_aborter.AbortErrorFlowController;
44
+ exports.aborter = require_aborter.aborter;
39
45
  exports.appendEvidence = require_evidence.appendEvidence;
40
46
  exports.createFlowController = require_base.createFlowController;
41
47
  exports.createKind = require_kind.createKind;
@@ -45,6 +51,7 @@ exports.debounce = require_debounce.debounce;
45
51
  exports.evidenceResult = require_evidence.evidenceResult;
46
52
  exports.filter = require_filter.filter;
47
53
  exports.flow = require_base$1.flow;
54
+ exports.flowControllerAborterKind = require_aborter.flowControllerAborterKind;
48
55
  exports.flowControllerDebounceKind = require_debounce.flowControllerDebounceKind;
49
56
  exports.flowControllerExitKind = require_base.flowControllerExitKind;
50
57
  exports.flowControllerFilterKind = require_filter.flowControllerFilterKind;
@@ -2,6 +2,7 @@ import { __exportAll } from "../_virtual/_rolldown/runtime.mjs";
2
2
  import { appendEvidence, evidenceResult } from "./evidence.mjs";
3
3
  import { createKind } from "./kind.mjs";
4
4
  import { createFlowController, flowControllerExitKind, flowControllerKind } from "./flow/controller/base.mjs";
5
+ import { AbortErrorFlowController, aborter, flowControllerAborterKind } from "./flow/controller/defaults/aborter.mjs";
5
6
  import { debounce, flowControllerDebounceKind } from "./flow/controller/defaults/debounce.mjs";
6
7
  import { filter, flowControllerFilterKind } from "./flow/controller/defaults/filter.mjs";
7
8
  import { flowControllerRetryKind, retry } from "./flow/controller/defaults/retry.mjs";
@@ -12,6 +13,8 @@ import { createPort, portHandlerKind } from "./port.mjs";
12
13
  import { createUseCase, useCaseHandlerKind, wireUseCases } from "./useCase.mjs";
13
14
  //#region scripts/invocation/index.ts
14
15
  var invocation_exports = /* @__PURE__ */ __exportAll({
16
+ AbortErrorFlowController: () => AbortErrorFlowController,
17
+ aborter: () => aborter,
15
18
  appendEvidence: () => appendEvidence,
16
19
  createFlowController: () => createFlowController,
17
20
  createKind: () => createKind,
@@ -21,6 +24,7 @@ var invocation_exports = /* @__PURE__ */ __exportAll({
21
24
  evidenceResult: () => evidenceResult,
22
25
  filter: () => filter,
23
26
  flow: () => flow,
27
+ flowControllerAborterKind: () => flowControllerAborterKind,
24
28
  flowControllerDebounceKind: () => flowControllerDebounceKind,
25
29
  flowControllerExitKind: () => flowControllerExitKind,
26
30
  flowControllerFilterKind: () => flowControllerFilterKind,
@@ -36,4 +40,4 @@ var invocation_exports = /* @__PURE__ */ __exportAll({
36
40
  wireUseCases: () => wireUseCases
37
41
  });
38
42
  //#endregion
39
- export { appendEvidence, createFlowController, createKind, createPort, createUseCase, debounce, evidenceResult, filter, flow, flowControllerDebounceKind, flowControllerExitKind, flowControllerFilterKind, flowControllerKind, flowControllerRetryKind, flowControllerThrottlingKind, flowControllerTimeoutKind, invocation_exports, portHandlerKind, retry, throttling, timeout, useCaseHandlerKind, wireUseCases };
43
+ export { AbortErrorFlowController, aborter, appendEvidence, createFlowController, createKind, createPort, createUseCase, debounce, evidenceResult, filter, flow, flowControllerAborterKind, flowControllerDebounceKind, flowControllerExitKind, flowControllerFilterKind, flowControllerKind, flowControllerRetryKind, flowControllerThrottlingKind, flowControllerTimeoutKind, invocation_exports, portHandlerKind, retry, throttling, timeout, useCaseHandlerKind, wireUseCases };
@@ -0,0 +1,2 @@
1
+ import { Definition, Handler, Kind } from '../base';
2
+ export type GetName<GenericValue extends Kind<Handler>> = GenericValue extends Kind<Handler<Definition<infer InferredKindName>>> ? InferredKindName : never;
@@ -0,0 +1,3 @@
1
+ import { Definition, Handler } from '../base';
2
+ import { createNamespace } from '../namespace';
3
+ export type GetNamespaceName<GenericKindConstructor extends ReturnType<typeof createNamespace>> = ReturnType<GenericKindConstructor> extends Handler<Definition<`@${infer InferredName}/${string}`>> ? InferredName : never;
@@ -1,3 +1,5 @@
1
1
  export type * from './getHandler';
2
+ export type * from './getName';
3
+ export type * from './getNamespaceName';
2
4
  export type * from './getValue';
3
5
  export type * from './remove';
@@ -1,2 +1,2 @@
1
- import { KeySymbol, Kind } from '../base';
2
- export type Remove<GenericObject extends Kind<any>> = Omit<GenericObject, KeySymbol>;
1
+ import { Kind, KeySymbol } from '../base';
2
+ export type Remove<GenericObject extends object> = GenericObject extends Kind<any> ? Omit<GenericObject, KeySymbol> : GenericObject;
@@ -6,16 +6,16 @@ const require_memo = require("../../common/memo.cjs");
6
6
  const require_resultSymbol = require("../../dataStructure/common/resultSymbol.cjs");
7
7
  const require_error = require("../../dataStructure/common/error.cjs");
8
8
  const require_base = require("../../dataStructure/structure/base.cjs");
9
+ const require_nonEncodableString = require("../../dataStructure/structure/defaults/nonEncodableString.cjs");
9
10
  const require_object = require("../../dataStructure/structure/defaults/object.cjs");
10
11
  const require_kind = require("../kind.cjs");
11
- const require_entityName = require("./entityName.cjs");
12
12
  //#region scripts/modeling/entity/base.ts
13
13
  const entityKind = require_kind.createKind("entity");
14
14
  const entityStructureKind = require_kind.createKind("entity-structure");
15
15
  const EntityStructure = require_base.createStructure(entityStructureKind, ({ init }) => (name, shape) => init({
16
16
  inner: require_memo.memo(() => require_object.ObjectStructure({
17
17
  ...shape(),
18
- [entityKind.runTimeKey]: require_entityName.EntityNameStructure(name)
18
+ [entityKind.runTimeKey]: require_nonEncodableString.NonEncodableStringStructure(name)
19
19
  }, [])),
20
20
  constraints: []
21
21
  }, {
@@ -1,3 +1,4 @@
1
+ import { Codecs, EncodedValue } from '../../dataStructure/common';
1
2
  import { NewType, NewTypeMap } from '../newType';
2
3
  import type * as DKind from '../../kind';
3
4
  import * as DCommon from '../../common';
@@ -7,9 +8,11 @@ declare module '../../dataStructure' {
7
8
  interface StructuresStore {
8
9
  entity: EntityStructure;
9
10
  }
10
- interface EncodeStructure<GenericValue extends unknown, GenericCodecs extends DDataStructure.Codecs> {
11
+ }
12
+ declare module '../../dataStructure/common' {
13
+ interface EncodeStructure<GenericValue extends unknown, GenericCodecs extends Codecs> {
11
14
  entity: GenericValue extends Entity<infer InferredName> ? (Entity<InferredName> & {
12
- [Prop in Exclude<keyof GenericValue, DKind.KeySymbol>]: DDataStructure.EncodedValue<GenericValue[Prop], GenericCodecs>;
15
+ [Prop in Exclude<keyof GenericValue, DKind.KeySymbol>]: EncodedValue<GenericValue[Prop], GenericCodecs>;
13
16
  }) : never;
14
17
  }
15
18
  }
@@ -17,11 +20,12 @@ export declare const entityKind: DKind.Handler<DKind.Definition<"@DuplojsLangMod
17
20
  export interface Entity<GenericName extends string = string> extends DKind.Kind<typeof entityKind, GenericName> {
18
21
  }
19
22
  export type GetEntityName<GenericEntity extends Entity> = GenericEntity extends Entity<infer InferredName> ? InferredName : never;
23
+ export type ExtractByEntityName<GenericValue extends unknown, GenericEntityName extends string> = GenericValue extends Entity<GenericEntityName> ? GenericValue : never;
20
24
  export declare const entityStructureKind: DKind.Handler<DKind.Definition<"@DuplojsLangModeling/entity-structure", unknown>>;
21
25
  export interface EntityStructureDefinition extends DDataStructure.StructureDefinition<readonly []> {
22
26
  readonly inner: DCommon.Memoized<DDataStructure.ObjectStructure>;
23
27
  }
24
- export type EntityMap<GenericValue extends unknown, GenericRawValue = DCommon.RemoveConstraint<GenericValue>> = GenericRawValue extends NewType ? NewTypeMap<GenericRawValue> : GenericRawValue extends object ? DCommon.Or<[
28
+ export type EntityMap<GenericValue extends unknown, GenericRawValue = DCommon.RemoveConstraint<GenericValue>> = GenericRawValue extends NewType ? NewTypeMap<GenericRawValue> : GenericRawValue extends Entity ? GenericRawValue : GenericRawValue extends object ? DCommon.Or<[
25
29
  DCommon.IsExtends<GenericRawValue, readonly any[]>,
26
30
  DCommon.And<[
27
31
  DCommon.IsExtends<keyof GenericRawValue, string>,
@@ -29,15 +33,15 @@ export type EntityMap<GenericValue extends unknown, GenericRawValue = DCommon.Re
29
33
  ]>
30
34
  ]> extends true ? {
31
35
  [Prop in keyof GenericRawValue]: NewTypeMap<GenericRawValue[Prop]>;
32
- } : GenericRawValue extends Entity ? EntityMap<DKind.Remove<GenericRawValue>> : GenericRawValue : GenericRawValue;
36
+ } : GenericRawValue : GenericRawValue;
33
37
  export interface EntityStructure<GenericName extends string = string, GenericProperties extends Record<string, unknown> = Record<string, unknown>> extends DCommon.UnionToIntersection<DDataStructure.Structure<Entity<GenericName> & GenericProperties, EntityStructureDefinition> & DKind.Kind<typeof entityStructureKind>> {
34
38
  readonly name: GenericName;
35
39
  "new"<GenericNewProperties extends GenericProperties>(properties: GenericNewProperties): (Entity<GenericName> & GenericNewProperties);
36
- decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<EntityMap<DDataStructure.StructureValue<this>>, GenericCodecs>) => (DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"map-error", DDataStructure.Error>);
37
- decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<EntityMap<DDataStructure.StructureValue<this>>, GenericCodecs>): (DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"map-error", DDataStructure.Error>);
38
- map(data: EntityMap<DDataStructure.StructureValue<this>>): (DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"map-error", DDataStructure.Error>);
39
- asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<EntityMap<DDataStructure.StructureValue<this>>, GenericCodecs>) => Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
40
- asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<EntityMap<DDataStructure.StructureValue<this>>, GenericCodecs>): Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
41
- asyncMap(data: EntityMap<DDataStructure.StructureValue<this>>): Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
40
+ decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<EntityMap<DKind.Remove<DDataStructure.StructureValue<this>>>, GenericCodecs>) => (DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"map-error", DDataStructure.Error>);
41
+ decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<EntityMap<DKind.Remove<DDataStructure.StructureValue<this>>>, GenericCodecs>): (DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"map-error", DDataStructure.Error>);
42
+ map(data: EntityMap<DKind.Remove<DDataStructure.StructureValue<this>>>): (DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"map-error", DDataStructure.Error>);
43
+ asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<EntityMap<DKind.Remove<DDataStructure.StructureValue<this>>>, GenericCodecs>) => Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
44
+ asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<EntityMap<DKind.Remove<DDataStructure.StructureValue<this>>>, GenericCodecs>): Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
45
+ asyncMap(data: EntityMap<DKind.Remove<DDataStructure.StructureValue<this>>>): Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
42
46
  }
43
47
  export declare const EntityStructure: <GenericName extends string, GenericShape extends DDataStructure.ShapeObjectStructure, const GenericProperties extends DDataStructure.ShapeObjectStructureValue<GenericShape>>(name: GenericName, shape: () => GenericShape) => EntityStructure<GenericName, GenericProperties>;
@@ -6,16 +6,16 @@ import { memo } from "../../common/memo.mjs";
6
6
  import { ErrorSymbol } from "../../dataStructure/common/resultSymbol.mjs";
7
7
  import { createGetErrorHandler } from "../../dataStructure/common/error.mjs";
8
8
  import { createStructure } from "../../dataStructure/structure/base.mjs";
9
+ import { NonEncodableStringStructure } from "../../dataStructure/structure/defaults/nonEncodableString.mjs";
9
10
  import { ObjectStructure } from "../../dataStructure/structure/defaults/object.mjs";
10
11
  import { createKind } from "../kind.mjs";
11
- import { EntityNameStructure } from "./entityName.mjs";
12
12
  //#region scripts/modeling/entity/base.ts
13
13
  const entityKind = createKind("entity");
14
14
  const entityStructureKind = createKind("entity-structure");
15
15
  const EntityStructure = createStructure(entityStructureKind, ({ init }) => (name, shape) => init({
16
16
  inner: memo(() => ObjectStructure({
17
17
  ...shape(),
18
- [entityKind.runTimeKey]: EntityNameStructure(name)
18
+ [entityKind.runTimeKey]: NonEncodableStringStructure(name)
19
19
  }, [])),
20
20
  constraints: []
21
21
  }, {
@@ -1,4 +1,3 @@
1
1
  export * from './base';
2
- export * from './entityName';
3
2
  export * from './helper';
4
3
  export * from './namespace';
@@ -1,42 +1,50 @@
1
1
  const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
2
2
  const require_kind = require("./kind.cjs");
3
- const require_entityName = require("./entity/entityName.cjs");
4
3
  const require_base = require("./entity/base.cjs");
5
4
  const require_helper = require("./entity/helper.cjs");
6
5
  const require_base$1 = require("./newType/base.cjs");
7
6
  const require_helper$1 = require("./newType/helper.cjs");
8
7
  const require_base$2 = require("./flag/base.cjs");
9
8
  const require_namespace = require("./entity/namespace.cjs");
9
+ const require_base$3 = require("./taggedObject/base.cjs");
10
+ const require_helper$2 = require("./taggedObject/helper.cjs");
10
11
  //#region scripts/modeling/index.ts
11
12
  var modeling_exports = /* @__PURE__ */ require_runtime.__exportAll({
12
- EntityNameStructure: () => require_entityName.EntityNameStructure,
13
13
  EntityStructure: () => require_base.EntityStructure,
14
14
  NewTypeStructure: () => require_base$1.NewTypeStructure,
15
+ TaggedObjectStructure: () => require_base$3.TaggedObjectStructure,
15
16
  createEntity: () => require_helper.createEntity,
16
17
  createEntityNamespace: () => require_namespace.createEntityNamespace,
17
18
  createFlag: () => require_base$2.createFlag,
18
19
  createKind: () => require_kind.createKind,
19
20
  createNewEntity: () => require_helper$1.createNewEntity,
21
+ createTaggedObject: () => require_helper$2.createTaggedObject,
20
22
  entityKind: () => require_base.entityKind,
21
- entityNameStructureKind: () => require_entityName.entityNameStructureKind,
22
23
  entityStructureKind: () => require_base.entityStructureKind,
23
24
  flagKind: () => require_base$2.flagKind,
25
+ getTagValue: () => require_helper$2.getTagValue,
26
+ hasTagValue: () => require_helper$2.hasTagValue,
24
27
  namespaceKind: () => require_namespace.namespaceKind,
25
- newTypeStructureKind: () => require_base$1.newTypeStructureKind
28
+ newTypeStructureKind: () => require_base$1.newTypeStructureKind,
29
+ objectTagKind: () => require_base$3.objectTagKind,
30
+ taggedObject: () => require_helper$2.taggedObject,
31
+ taggedObjectStructureKind: () => require_base$3.taggedObjectStructureKind
26
32
  });
27
33
  //#endregion
28
- exports.EntityNameStructure = require_entityName.EntityNameStructure;
29
34
  exports.EntityStructure = require_base.EntityStructure;
30
35
  exports.NewTypeStructure = require_base$1.NewTypeStructure;
36
+ exports.TaggedObjectStructure = require_base$3.TaggedObjectStructure;
31
37
  exports.createEntity = require_helper.createEntity;
32
38
  exports.createEntityNamespace = require_namespace.createEntityNamespace;
33
39
  exports.createFlag = require_base$2.createFlag;
34
40
  exports.createKind = require_kind.createKind;
35
41
  exports.createNewEntity = require_helper$1.createNewEntity;
42
+ exports.createTaggedObject = require_helper$2.createTaggedObject;
36
43
  exports.entityKind = require_base.entityKind;
37
- exports.entityNameStructureKind = require_entityName.entityNameStructureKind;
38
44
  exports.entityStructureKind = require_base.entityStructureKind;
39
45
  exports.flagKind = require_base$2.flagKind;
46
+ exports.getTagValue = require_helper$2.getTagValue;
47
+ exports.hasTagValue = require_helper$2.hasTagValue;
40
48
  Object.defineProperty(exports, "modeling_exports", {
41
49
  enumerable: true,
42
50
  get: function() {
@@ -45,3 +53,6 @@ Object.defineProperty(exports, "modeling_exports", {
45
53
  });
46
54
  exports.namespaceKind = require_namespace.namespaceKind;
47
55
  exports.newTypeStructureKind = require_base$1.newTypeStructureKind;
56
+ exports.objectTagKind = require_base$3.objectTagKind;
57
+ exports.taggedObject = require_helper$2.taggedObject;
58
+ exports.taggedObjectStructureKind = require_base$3.taggedObjectStructureKind;
@@ -2,3 +2,4 @@ export * from './entity';
2
2
  export * from './flag';
3
3
  export * from './kind';
4
4
  export * from './newType';
5
+ export * from './taggedObject';
@@ -1,28 +1,34 @@
1
1
  import { __exportAll } from "../_virtual/_rolldown/runtime.mjs";
2
2
  import { createKind } from "./kind.mjs";
3
- import { EntityNameStructure, entityNameStructureKind } from "./entity/entityName.mjs";
4
3
  import { EntityStructure, entityKind, entityStructureKind } from "./entity/base.mjs";
5
4
  import { createEntity } from "./entity/helper.mjs";
6
5
  import { NewTypeStructure, newTypeStructureKind } from "./newType/base.mjs";
7
6
  import { createNewEntity } from "./newType/helper.mjs";
8
7
  import { createFlag, flagKind } from "./flag/base.mjs";
9
8
  import { createEntityNamespace, namespaceKind } from "./entity/namespace.mjs";
9
+ import { TaggedObjectStructure, objectTagKind, taggedObjectStructureKind } from "./taggedObject/base.mjs";
10
+ import { createTaggedObject, getTagValue, hasTagValue, taggedObject } from "./taggedObject/helper.mjs";
10
11
  //#region scripts/modeling/index.ts
11
12
  var modeling_exports = /* @__PURE__ */ __exportAll({
12
- EntityNameStructure: () => EntityNameStructure,
13
13
  EntityStructure: () => EntityStructure,
14
14
  NewTypeStructure: () => NewTypeStructure,
15
+ TaggedObjectStructure: () => TaggedObjectStructure,
15
16
  createEntity: () => createEntity,
16
17
  createEntityNamespace: () => createEntityNamespace,
17
18
  createFlag: () => createFlag,
18
19
  createKind: () => createKind,
19
20
  createNewEntity: () => createNewEntity,
21
+ createTaggedObject: () => createTaggedObject,
20
22
  entityKind: () => entityKind,
21
- entityNameStructureKind: () => entityNameStructureKind,
22
23
  entityStructureKind: () => entityStructureKind,
23
24
  flagKind: () => flagKind,
25
+ getTagValue: () => getTagValue,
26
+ hasTagValue: () => hasTagValue,
24
27
  namespaceKind: () => namespaceKind,
25
- newTypeStructureKind: () => newTypeStructureKind
28
+ newTypeStructureKind: () => newTypeStructureKind,
29
+ objectTagKind: () => objectTagKind,
30
+ taggedObject: () => taggedObject,
31
+ taggedObjectStructureKind: () => taggedObjectStructureKind
26
32
  });
27
33
  //#endregion
28
- export { EntityNameStructure, EntityStructure, NewTypeStructure, createEntity, createEntityNamespace, createFlag, createKind, createNewEntity, entityKind, entityNameStructureKind, entityStructureKind, flagKind, modeling_exports, namespaceKind, newTypeStructureKind };
34
+ export { EntityStructure, NewTypeStructure, TaggedObjectStructure, createEntity, createEntityNamespace, createFlag, createKind, createNewEntity, createTaggedObject, entityKind, entityStructureKind, flagKind, getTagValue, hasTagValue, modeling_exports, namespaceKind, newTypeStructureKind, objectTagKind, taggedObject, taggedObjectStructureKind };
@@ -7,14 +7,17 @@ const require_error = require("../../dataStructure/common/error.cjs");
7
7
  const require_base = require("../../dataStructure/structure/base.cjs");
8
8
  //#region scripts/modeling/newType/base.ts
9
9
  const newTypeStructureKind = require("../kind.cjs").createKind("new-type-structure");
10
+ function executeNewTypeConstraints(structure, data, errorHandler) {
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);
12
+ }
10
13
  const NewTypeStructure = require_base.createStructure(newTypeStructureKind, ({ init }) => (name, structure, newTypeConstraints) => init({
11
14
  constraints: [],
12
15
  newTypeConstraints,
13
16
  inner: structure
14
17
  }, {
15
- executeCheck: (self, data, errorHandler) => require_callThen.callThen(self.definition.inner.executeCheck(data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : self.definition.newTypeConstraints.reduce((accumulator, constraint) => require_callThen.callThen(accumulator, (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : constraint.executeCheck(data, errorHandler)), require_resultSymbol.SuccessSymbol)),
16
- 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(self.definition.newTypeConstraints.reduce((accumulator, constraint) => require_callThen.callThen(accumulator, (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : constraint.executeCheck(data, errorHandler)), require_resultSymbol.SuccessSymbol), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedInnerResult))),
17
- 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(self.definition.newTypeConstraints.reduce((accumulator, constraint) => require_callThen.callThen(accumulator, (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : constraint.executeCheck(awaitedInnerResult, errorHandler)), require_resultSymbol.SuccessSymbol), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(awaitedInnerResult, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedInnerResult))),
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)),
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))),
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))),
18
21
  isAsynchronous: (self) => self.definition.inner.isAsynchronous() || self.definition.newTypeConstraints.some((value) => value.isAsynchronous())
19
22
  }, {
20
23
  name,
@@ -8,14 +8,17 @@ import { createStructure } from "../../dataStructure/structure/base.mjs";
8
8
  import { createKind } from "../kind.mjs";
9
9
  //#region scripts/modeling/newType/base.ts
10
10
  const newTypeStructureKind = createKind("new-type-structure");
11
+ function executeNewTypeConstraints(structure, data, errorHandler) {
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);
13
+ }
11
14
  const NewTypeStructure = createStructure(newTypeStructureKind, ({ init }) => (name, structure, newTypeConstraints) => init({
12
15
  constraints: [],
13
16
  newTypeConstraints,
14
17
  inner: structure
15
18
  }, {
16
- executeCheck: (self, data, errorHandler) => callThen(self.definition.inner.executeCheck(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : self.definition.newTypeConstraints.reduce((accumulator, constraint) => callThen(accumulator, (result) => result === ErrorSymbol ? ErrorSymbol : constraint.executeCheck(data, errorHandler)), SuccessSymbol)),
17
- executeEncode: (self, codec, data, errorHandler) => callThen(self.definition.inner.executeEncode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === ErrorSymbol ? ErrorSymbol : callThen(self.definition.newTypeConstraints.reduce((accumulator, constraint) => callThen(accumulator, (result) => result === ErrorSymbol ? ErrorSymbol : constraint.executeCheck(data, errorHandler)), SuccessSymbol), (result) => result === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedInnerResult))),
18
- executeDecode: (self, codec, data, errorHandler) => callThen(self.definition.inner.executeDecode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === ErrorSymbol ? ErrorSymbol : callThen(self.definition.newTypeConstraints.reduce((accumulator, constraint) => callThen(accumulator, (result) => result === ErrorSymbol ? ErrorSymbol : constraint.executeCheck(awaitedInnerResult, errorHandler)), SuccessSymbol), (result) => result === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedInnerResult, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedInnerResult))),
19
+ executeCheck: (self, data, errorHandler) => callThen(self.definition.inner.executeCheck(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : executeNewTypeConstraints(self, data, errorHandler)),
20
+ executeEncode: (self, codec, data, errorHandler) => callThen(self.definition.inner.executeEncode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === ErrorSymbol ? ErrorSymbol : callThen(executeNewTypeConstraints(self, data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedInnerResult))),
21
+ 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))),
19
22
  isAsynchronous: (self) => self.definition.inner.isAsynchronous() || self.definition.newTypeConstraints.some((value) => value.isAsynchronous())
20
23
  }, {
21
24
  name,
@@ -0,0 +1,23 @@
1
+ const require_base = require("../../dataStructure/structure/base.cjs");
2
+ const require_nonEncodableString = require("../../dataStructure/structure/defaults/nonEncodableString.cjs");
3
+ const require_object = require("../../dataStructure/structure/defaults/object.cjs");
4
+ const require_kind = require("../kind.cjs");
5
+ //#region scripts/modeling/taggedObject/base.ts
6
+ const objectTagKind = require_kind.createKind("object-tag");
7
+ const taggedObjectStructureKind = require_kind.createKind("tagged-object-structure");
8
+ const TaggedObjectStructure = require_base.createStructure(taggedObjectStructureKind, ({ init }) => (name, shape) => init({
9
+ inner: require_object.ObjectStructure({
10
+ ...shape,
11
+ [objectTagKind.runTimeKey]: require_nonEncodableString.NonEncodableStringStructure(name)
12
+ }, []),
13
+ constraints: []
14
+ }, {
15
+ executeCheck: (self, data, errorHandler) => self.definition.inner.executeCheck(data, errorHandler),
16
+ executeEncode: (self, codecContext, data, errorHandler) => self.definition.inner.executeEncode(codecContext, data, errorHandler),
17
+ executeDecode: (self, codecContext, data, errorHandler) => self.definition.inner.executeDecode(codecContext, data, errorHandler),
18
+ isAsynchronous: (self) => self.definition.inner.isAsynchronous()
19
+ }, { name }));
20
+ //#endregion
21
+ exports.TaggedObjectStructure = TaggedObjectStructure;
22
+ exports.objectTagKind = objectTagKind;
23
+ exports.taggedObjectStructureKind = taggedObjectStructureKind;
@@ -0,0 +1,32 @@
1
+ import { Codecs, EncodedValue } from '../../dataStructure/common';
2
+ import type * as DKind from '../../kind';
3
+ import type * as DCommon from '../../common';
4
+ import * as DDataStructure from '../../dataStructure';
5
+ declare module '../../dataStructure' {
6
+ interface StructuresStore {
7
+ taggedObject: TaggedObjectStructure;
8
+ }
9
+ }
10
+ declare module '../../dataStructure/common' {
11
+ interface EncodeStructure<GenericValue extends unknown, GenericCodecs extends Codecs> {
12
+ taggedObject: GenericValue extends ObjectTag<infer InferredName> ? (ObjectTag<InferredName> & {
13
+ [Prop in Exclude<keyof GenericValue, DKind.KeySymbol>]: EncodedValue<GenericValue[Prop], GenericCodecs>;
14
+ }) : never;
15
+ }
16
+ }
17
+ export declare const objectTagKind: DKind.Handler<DKind.Definition<"@DuplojsLangModeling/object-tag", string>>;
18
+ export interface ObjectTag<GenericValue extends string = string> extends DKind.Kind<typeof objectTagKind, GenericValue> {
19
+ }
20
+ export type GetTagValue<GenericTaggedObject extends ObjectTag> = DKind.GetValue<typeof objectTagKind, GenericTaggedObject>;
21
+ export type ExtractByTagValue<GenericValue extends unknown, GenericTagValue extends string> = GenericValue extends ObjectTag<GenericTagValue> ? GenericValue : never;
22
+ export type ShapeTaggedObjectStructure<GenericTaggedObject extends ObjectTag = ObjectTag> = {
23
+ [Prop in Extract<keyof GenericTaggedObject, string>]: DDataStructure.Structure<GenericTaggedObject[Prop]>;
24
+ };
25
+ export declare const taggedObjectStructureKind: DKind.Handler<DKind.Definition<"@DuplojsLangModeling/tagged-object-structure", unknown>>;
26
+ export interface TaggedObjectStructureDefinition extends DDataStructure.StructureDefinition<readonly []> {
27
+ readonly inner: DDataStructure.ObjectStructure;
28
+ }
29
+ export interface TaggedObjectStructure<GenericTaggedObject extends ObjectTag = ObjectTag> extends DCommon.UnionToIntersection<DDataStructure.Structure<GenericTaggedObject, TaggedObjectStructureDefinition> & DKind.Kind<typeof taggedObjectStructureKind>> {
30
+ readonly name: GetTagValue<GenericTaggedObject>;
31
+ }
32
+ 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>;
@@ -0,0 +1,21 @@
1
+ import { createStructure } from "../../dataStructure/structure/base.mjs";
2
+ import { NonEncodableStringStructure } from "../../dataStructure/structure/defaults/nonEncodableString.mjs";
3
+ import { ObjectStructure } from "../../dataStructure/structure/defaults/object.mjs";
4
+ import { createKind } from "../kind.mjs";
5
+ //#region scripts/modeling/taggedObject/base.ts
6
+ const objectTagKind = createKind("object-tag");
7
+ const taggedObjectStructureKind = createKind("tagged-object-structure");
8
+ const TaggedObjectStructure = createStructure(taggedObjectStructureKind, ({ init }) => (name, shape) => init({
9
+ inner: ObjectStructure({
10
+ ...shape,
11
+ [objectTagKind.runTimeKey]: NonEncodableStringStructure(name)
12
+ }, []),
13
+ constraints: []
14
+ }, {
15
+ executeCheck: (self, data, errorHandler) => self.definition.inner.executeCheck(data, errorHandler),
16
+ executeEncode: (self, codecContext, data, errorHandler) => self.definition.inner.executeEncode(codecContext, data, errorHandler),
17
+ executeDecode: (self, codecContext, data, errorHandler) => self.definition.inner.executeDecode(codecContext, data, errorHandler),
18
+ isAsynchronous: (self) => self.definition.inner.isAsynchronous()
19
+ }, { name }));
20
+ //#endregion
21
+ export { TaggedObjectStructure, objectTagKind, taggedObjectStructureKind };