@thisisagile/easy 18.5.0 → 18.7.0

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 (183) hide show
  1. package/dist/{chunk-WGDPSWDJ.mjs → chunk-5N6Q7OXJ.mjs} +3 -3
  2. package/dist/{chunk-32JNUNPT.mjs → chunk-63DTRTSC.mjs} +4 -8
  3. package/dist/{chunk-32JNUNPT.mjs.map → chunk-63DTRTSC.mjs.map} +1 -1
  4. package/dist/{chunk-TRHTO2EW.mjs → chunk-6PMTGQVO.mjs} +3 -3
  5. package/dist/{chunk-6BH22YKR.mjs → chunk-6YTIRHPN.mjs} +4 -6
  6. package/dist/{chunk-6BH22YKR.mjs.map → chunk-6YTIRHPN.mjs.map} +1 -1
  7. package/dist/{chunk-QFOUEEXU.mjs → chunk-7TW4TBFN.mjs} +8 -16
  8. package/dist/{chunk-QFOUEEXU.mjs.map → chunk-7TW4TBFN.mjs.map} +1 -1
  9. package/dist/{chunk-PYDTZUGI.mjs → chunk-AYR4US3Z.mjs} +2 -2
  10. package/dist/{chunk-A4BT3ONR.mjs → chunk-B37NZCNW.mjs} +2 -2
  11. package/dist/{chunk-5KIMOU2T.mjs → chunk-FF3BNZ4H.mjs} +3 -5
  12. package/dist/{chunk-5KIMOU2T.mjs.map → chunk-FF3BNZ4H.mjs.map} +1 -1
  13. package/dist/{chunk-YYLTSI5X.mjs → chunk-FFD2T6YV.mjs} +2 -2
  14. package/dist/{chunk-FM3C7UJ5.mjs → chunk-FSWASMJZ.mjs} +2 -2
  15. package/dist/{chunk-TZMIA2P4.mjs → chunk-GF7JYGJU.mjs} +4 -8
  16. package/dist/{chunk-TZMIA2P4.mjs.map → chunk-GF7JYGJU.mjs.map} +1 -1
  17. package/dist/{chunk-XCE2MDKJ.mjs → chunk-GKQMIKIY.mjs} +2 -2
  18. package/dist/{chunk-NDOE57NV.mjs → chunk-IESVFCB3.mjs} +3 -3
  19. package/dist/{chunk-S5ROAZ73.mjs → chunk-IYUYA5OX.mjs} +5 -5
  20. package/dist/{chunk-G2NE3X2O.mjs → chunk-J5PB7ZVO.mjs} +4 -6
  21. package/dist/{chunk-G2NE3X2O.mjs.map → chunk-J5PB7ZVO.mjs.map} +1 -1
  22. package/dist/{chunk-YH6IWZDQ.mjs → chunk-JI7MC5EA.mjs} +2 -2
  23. package/dist/{chunk-6L2QT25T.mjs → chunk-JM6NAJQ3.mjs} +4 -6
  24. package/dist/{chunk-6L2QT25T.mjs.map → chunk-JM6NAJQ3.mjs.map} +1 -1
  25. package/dist/{chunk-7HAFUM6F.mjs → chunk-JNZUGKMO.mjs} +2 -2
  26. package/dist/{chunk-7JZYEQC2.mjs → chunk-KPXOQFEB.mjs} +4 -6
  27. package/dist/{chunk-7JZYEQC2.mjs.map → chunk-KPXOQFEB.mjs.map} +1 -1
  28. package/dist/{chunk-UK7JEY65.mjs → chunk-LHDTOERW.mjs} +3 -5
  29. package/dist/{chunk-UK7JEY65.mjs.map → chunk-LHDTOERW.mjs.map} +1 -1
  30. package/dist/{chunk-ZA3RBSEC.mjs → chunk-M2S4OLVZ.mjs} +2 -2
  31. package/dist/{chunk-WIBO6IZF.mjs → chunk-O4RWZGFC.mjs} +4 -6
  32. package/dist/{chunk-WIBO6IZF.mjs.map → chunk-O4RWZGFC.mjs.map} +1 -1
  33. package/dist/{chunk-GSRE7B6A.mjs → chunk-QBPSI5NM.mjs} +4 -4
  34. package/dist/{chunk-75E6U7F3.mjs → chunk-QLEGIYVU.mjs} +3 -5
  35. package/dist/{chunk-75E6U7F3.mjs.map → chunk-QLEGIYVU.mjs.map} +1 -1
  36. package/dist/{chunk-YP6UP7XS.mjs → chunk-QZPBFVZL.mjs} +2 -2
  37. package/dist/{chunk-DBQGZ42Q.mjs → chunk-RBJBAJOK.mjs} +2 -2
  38. package/dist/{chunk-3QWILJ53.mjs → chunk-RW4AKBCN.mjs} +3 -3
  39. package/dist/{chunk-M2YNFJCR.mjs → chunk-SBT3WGBP.mjs} +7 -7
  40. package/dist/{chunk-WSSDODHS.mjs → chunk-TNIG6FU2.mjs} +2 -2
  41. package/dist/{chunk-UL2QXFW5.mjs → chunk-TUO7ZPSP.mjs} +541 -105
  42. package/dist/chunk-TUO7ZPSP.mjs.map +1 -0
  43. package/dist/{chunk-KMYWEWV2.mjs → chunk-WOUH6UVC.mjs} +3 -5
  44. package/dist/{chunk-KMYWEWV2.mjs.map → chunk-WOUH6UVC.mjs.map} +1 -1
  45. package/dist/{chunk-CUA35DFA.mjs → chunk-XQJ5LQEQ.mjs} +2 -2
  46. package/dist/{chunk-NTNX63YD.mjs → chunk-ZBOGLMG2.mjs} +4 -4
  47. package/dist/{chunk-DRKXISJA.mjs → chunk-ZRH6FGUK.mjs} +4 -4
  48. package/dist/{chunk-LHBXZT7D.mjs → chunk-ZZ73Z5CU.mjs} +2 -2
  49. package/dist/data/Condition.mjs +6 -5
  50. package/dist/data/Database.mjs +5 -6
  51. package/dist/data/Field.mjs +6 -5
  52. package/dist/data/Field.mjs.map +1 -1
  53. package/dist/data/InMemoryGateway.mjs +5 -10
  54. package/dist/data/InMemoryGateway.mjs.map +1 -1
  55. package/dist/domain/Audit.mjs +9 -14
  56. package/dist/domain/Child.mjs +6 -11
  57. package/dist/domain/Child.mjs.map +1 -1
  58. package/dist/domain/DateTime.mjs +5 -10
  59. package/dist/domain/Entity.mjs +9 -14
  60. package/dist/domain/Entity.mjs.map +1 -1
  61. package/dist/domain/Repo.mjs +8 -15
  62. package/dist/domain/Repo.mjs.map +1 -1
  63. package/dist/domain/Struct.mjs +5 -10
  64. package/dist/domain/Typo.mjs +5 -10
  65. package/dist/domain/Typo.mjs.map +1 -1
  66. package/dist/http/CacheControl.mjs +7 -13
  67. package/dist/http/CacheControl.mjs.map +1 -1
  68. package/dist/http/ContentType.mjs +5 -6
  69. package/dist/http/HttpStatus.mjs +5 -6
  70. package/dist/http/HttpVerb.mjs +5 -6
  71. package/dist/http/LocalRequestStore.mjs +3 -8
  72. package/dist/http/LocalRequestStore.mjs.map +1 -1
  73. package/dist/http/RequestOptions.mjs +5 -10
  74. package/dist/http/RestResult.mjs +5 -10
  75. package/dist/http/toResponse.mjs +6 -11
  76. package/dist/index.js +528 -523
  77. package/dist/index.js.map +1 -1
  78. package/dist/process/App.mjs +4 -9
  79. package/dist/process/App.mjs.map +1 -1
  80. package/dist/process/Manage.mjs +5 -10
  81. package/dist/process/Manage.mjs.map +1 -1
  82. package/dist/process/Scope.mjs +4 -9
  83. package/dist/process/Search.mjs +5 -10
  84. package/dist/process/UseCase.mjs +6 -13
  85. package/dist/process/UseCase.mjs.map +1 -1
  86. package/dist/resources/Req.mjs +5 -10
  87. package/dist/resources/Req.mjs.map +1 -1
  88. package/dist/services/Api.mjs +13 -18
  89. package/dist/services/ApiGateway.mjs +16 -21
  90. package/dist/services/AxiosProvider.mjs +11 -16
  91. package/dist/services/MappedRouteGateway.mjs +19 -24
  92. package/dist/services/MappedRouteGateway.mjs.map +1 -1
  93. package/dist/services/RouteGateway.mjs +17 -22
  94. package/dist/services/ViewRouteGateway.mjs +19 -25
  95. package/dist/services/ViewRouteGateway.mjs.map +1 -1
  96. package/dist/sql/Column.mjs +4 -9
  97. package/dist/sql/Count.mjs +7 -5
  98. package/dist/sql/Delete.mjs +6 -4
  99. package/dist/sql/Insert.mjs +6 -4
  100. package/dist/sql/Select.mjs +6 -4
  101. package/dist/sql/SqlQuery.mjs +5 -3
  102. package/dist/sql/Table.mjs +14 -19
  103. package/dist/sql/Table.mjs.map +1 -1
  104. package/dist/sql/TableGateway.mjs +6 -12
  105. package/dist/sql/TableGateway.mjs.map +1 -1
  106. package/dist/sql/Update.mjs +6 -4
  107. package/dist/types/Cache.mjs +4 -4
  108. package/dist/types/CacheAge.mjs +5 -10
  109. package/dist/types/Case.mjs +3 -8
  110. package/dist/types/Context.mjs +3 -8
  111. package/dist/types/Enum.mjs +4 -5
  112. package/dist/types/Environment.mjs +4 -5
  113. package/dist/types/Environment.mjs.map +1 -1
  114. package/dist/types/Exception.mjs +3 -8
  115. package/dist/types/Gateway.mjs +4 -9
  116. package/dist/types/IsEqual.mjs +3 -9
  117. package/dist/types/Json.mjs +5 -4
  118. package/dist/types/List.mjs +4 -2
  119. package/dist/types/Meta.mjs +4 -4
  120. package/dist/types/Number.mjs +4 -9
  121. package/dist/types/Object.mjs +4 -3
  122. package/dist/types/PageList.mjs +4 -9
  123. package/dist/types/Parser.mjs +3 -8
  124. package/dist/types/Parser.mjs.map +1 -1
  125. package/dist/types/Repository.mjs +4 -9
  126. package/dist/types/Result.mjs +3 -8
  127. package/dist/types/Results.mjs +3 -8
  128. package/dist/types/Tag.mjs +4 -4
  129. package/dist/types/Template.mjs +3 -8
  130. package/dist/types/ToText.mjs +3 -8
  131. package/dist/types/Try.mjs +3 -8
  132. package/dist/types/Uri.mjs +6 -14
  133. package/dist/types/Uri.mjs.map +1 -1
  134. package/dist/utils/If.d.ts +2 -0
  135. package/dist/utils/If.mjs +6 -2
  136. package/dist/utils/Mapper.mjs +6 -6
  137. package/dist/utils/Period.mjs +5 -10
  138. package/dist/utils/Period.mjs.map +1 -1
  139. package/dist/utils/Promise.mjs +4 -4
  140. package/dist/utils/Seconds.mjs +5 -3
  141. package/dist/utils/Sentence.mjs +3 -8
  142. package/dist/utils/Sentence.mjs.map +1 -1
  143. package/dist/utils/View.mjs +6 -12
  144. package/dist/validation/Contraints.mjs +4 -9
  145. package/dist/validation/Validate.mjs +3 -8
  146. package/dist/validation/When.mjs +3 -8
  147. package/package.json +1 -1
  148. package/src/utils/If.ts +7 -0
  149. package/dist/chunk-FECVT2OY.mjs +0 -58
  150. package/dist/chunk-FECVT2OY.mjs.map +0 -1
  151. package/dist/chunk-GRMWYEPU.mjs +0 -37
  152. package/dist/chunk-GRMWYEPU.mjs.map +0 -1
  153. package/dist/chunk-HNW64DUZ.mjs +0 -54
  154. package/dist/chunk-HNW64DUZ.mjs.map +0 -1
  155. package/dist/chunk-MQ6KZAFL.mjs +0 -310
  156. package/dist/chunk-MQ6KZAFL.mjs.map +0 -1
  157. package/dist/chunk-NYKMQY5N.mjs +0 -23
  158. package/dist/chunk-NYKMQY5N.mjs.map +0 -1
  159. package/dist/chunk-UL2QXFW5.mjs.map +0 -1
  160. package/dist/chunk-VN4JL4JB.mjs +0 -68
  161. package/dist/chunk-VN4JL4JB.mjs.map +0 -1
  162. /package/dist/{chunk-WGDPSWDJ.mjs.map → chunk-5N6Q7OXJ.mjs.map} +0 -0
  163. /package/dist/{chunk-TRHTO2EW.mjs.map → chunk-6PMTGQVO.mjs.map} +0 -0
  164. /package/dist/{chunk-PYDTZUGI.mjs.map → chunk-AYR4US3Z.mjs.map} +0 -0
  165. /package/dist/{chunk-A4BT3ONR.mjs.map → chunk-B37NZCNW.mjs.map} +0 -0
  166. /package/dist/{chunk-YYLTSI5X.mjs.map → chunk-FFD2T6YV.mjs.map} +0 -0
  167. /package/dist/{chunk-FM3C7UJ5.mjs.map → chunk-FSWASMJZ.mjs.map} +0 -0
  168. /package/dist/{chunk-XCE2MDKJ.mjs.map → chunk-GKQMIKIY.mjs.map} +0 -0
  169. /package/dist/{chunk-NDOE57NV.mjs.map → chunk-IESVFCB3.mjs.map} +0 -0
  170. /package/dist/{chunk-S5ROAZ73.mjs.map → chunk-IYUYA5OX.mjs.map} +0 -0
  171. /package/dist/{chunk-YH6IWZDQ.mjs.map → chunk-JI7MC5EA.mjs.map} +0 -0
  172. /package/dist/{chunk-7HAFUM6F.mjs.map → chunk-JNZUGKMO.mjs.map} +0 -0
  173. /package/dist/{chunk-ZA3RBSEC.mjs.map → chunk-M2S4OLVZ.mjs.map} +0 -0
  174. /package/dist/{chunk-GSRE7B6A.mjs.map → chunk-QBPSI5NM.mjs.map} +0 -0
  175. /package/dist/{chunk-YP6UP7XS.mjs.map → chunk-QZPBFVZL.mjs.map} +0 -0
  176. /package/dist/{chunk-DBQGZ42Q.mjs.map → chunk-RBJBAJOK.mjs.map} +0 -0
  177. /package/dist/{chunk-3QWILJ53.mjs.map → chunk-RW4AKBCN.mjs.map} +0 -0
  178. /package/dist/{chunk-M2YNFJCR.mjs.map → chunk-SBT3WGBP.mjs.map} +0 -0
  179. /package/dist/{chunk-WSSDODHS.mjs.map → chunk-TNIG6FU2.mjs.map} +0 -0
  180. /package/dist/{chunk-CUA35DFA.mjs.map → chunk-XQJ5LQEQ.mjs.map} +0 -0
  181. /package/dist/{chunk-NTNX63YD.mjs.map → chunk-ZBOGLMG2.mjs.map} +0 -0
  182. /package/dist/{chunk-DRKXISJA.mjs.map → chunk-ZRH6FGUK.mjs.map} +0 -0
  183. /package/dist/{chunk-LHBXZT7D.mjs.map → chunk-ZZ73Z5CU.mjs.map} +0 -0
@@ -1,24 +1,16 @@
1
1
  import {
2
2
  ctx,
3
+ entries,
4
+ meta,
5
+ toList,
3
6
  tryTo
4
- } from "../chunk-UL2QXFW5.mjs";
5
- import "../chunk-HNW64DUZ.mjs";
7
+ } from "../chunk-TUO7ZPSP.mjs";
6
8
  import "../chunk-GPNPXSOF.mjs";
7
- import "../chunk-AMS2ELWR.mjs";
8
- import "../chunk-VN4JL4JB.mjs";
9
- import {
10
- meta
11
- } from "../chunk-FECVT2OY.mjs";
12
- import {
13
- entries
14
- } from "../chunk-GRMWYEPU.mjs";
15
- import {
16
- toList
17
- } from "../chunk-MQ6KZAFL.mjs";
18
- import "../chunk-SSROJBD5.mjs";
19
9
  import {
20
10
  toArray
21
11
  } from "../chunk-QCPWEAAJ.mjs";
12
+ import "../chunk-SSROJBD5.mjs";
13
+ import "../chunk-AMS2ELWR.mjs";
22
14
  import {
23
15
  asString
24
16
  } from "../chunk-4Q6IHSAU.mjs";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/types/Uri.ts"],"sourcesContent":["import { isBoolean, isNotEmpty, isTrue } from './Is';\nimport { asString, Text } from './Text';\nimport { toName } from './Constructor';\nimport { ctx } from './Context';\nimport { List, toList } from './List';\nimport { meta } from './Meta';\nimport { tryTo } from './Try';\nimport { Optional } from './Types';\nimport { OneOrMore, toArray } from './Array';\nimport { entries } from './Object';\n\nexport type Segment = Text & { key?: string; segment?: string; query?: (value: unknown) => string };\n\nexport const toSegment = (\n key?: Text,\n {\n segment,\n query,\n }: {\n segment?: string;\n query?: (value: unknown) => string;\n } = {}\n): Segment => ({\n key: key as string,\n segment,\n query,\n toString: () => asString(key),\n});\n\nexport const uri = {\n host: (key?: string): Segment => toSegment(key, { segment: key ?? ctx.env.host ?? '$host' }),\n resource: <Props extends UriExpandProps>(resource: Uri<Props>): Segment => toSegment(toName(resource, 'Uri'), { segment: toName(resource, 'Uri') }),\n segment: (key?: Text): Segment => toSegment(key, { segment: key as string }),\n path: (key: Text): Segment => toSegment(key, { segment: `:${key}` }),\n query: (key: Text): Segment =>\n toSegment(key, {\n query: (value: unknown): string =>\n tryTo(value)\n .is.defined()\n .map(v => encodeURIComponent(asString(v)))\n .map(v => `${key}=${v}`)\n .orElse('') ?? '',\n }),\n boolean: (key: Text): Segment => toSegment(key, { query: (value: unknown): string => (isTrue(value) ? `${key}` : '') }),\n};\n\ntype Prop = { segment: Segment; value: any };\n\nconst toRoute = (...segments: Segment[]): string =>\n toList(segments)\n .mapDefined(s => s.segment)\n .join('/');\n\nexport type Uri<Props extends UriExpandProps = UriExpandProps> = {\n id: (id?: unknown) => Uri<Props>;\n ids: (ids: OneOrMore<unknown>) => Uri<Props>;\n query: (q?: unknown) => Uri<Props>;\n sort: (q?: any) => Uri<Props>;\n skip: (n?: number) => Uri<Props>;\n take: (n?: number) => Uri<Props>;\n path: string;\n route: (resource: string) => string;\n isInternal: boolean;\n toString: () => string;\n expand: (props: Partial<Props>) => Uri<Props>;\n};\n\nexport type UriExpandProps = { q?: string; s?: string; skip?: number; take?: number };\n\nexport class EasyUri<Props extends UriExpandProps = UriExpandProps> implements Uri<Props> {\n static readonly id = uri.path('id');\n static readonly ids = uri.query('ids');\n static readonly query = uri.query('q');\n static readonly sort = uri.query('s');\n static readonly skip = uri.query('skip');\n static readonly take = uri.query('take');\n\n readonly host = uri.host();\n protected resource: Segment = uri.resource(this);\n\n protected state: any = {};\n\n constructor(readonly segments: Segment[] = []) {}\n\n get path(): string {\n return toRoute(uri.segment(''), this.resource, ...this.segments);\n }\n\n get complete(): string {\n return toRoute(this.host, this.resource, ...this.segments);\n }\n\n get isInternal(): boolean {\n return toRoute(this.host) === (ctx.env.host ?? '$host');\n }\n\n protected get props(): List<Prop> {\n return meta(this.state).values<Prop>();\n }\n\n route = (resource: Optional<string> = this.resource.key): string => toRoute(uri.segment(''), uri.segment(resource?.toLowerCase()), ...this.segments);\n\n set = (segment: Segment, value?: unknown): this => {\n tryTo(value)\n .is.defined()\n .accept(value => (this.state[segment.key ?? ''] = { segment, value }));\n return this;\n };\n\n toString(): string {\n return tryTo(() => this.props)\n .map(ps => ps.filter(p => p.segment?.segment))\n .map(ps => ps.reduce((r: string, p: Prop) => r.replace(asString(p.segment.segment), asString(p.value)), this.complete))\n .map(route => ({\n route,\n query: this.props.mapDefined(p => (p.segment?.query ? p.segment?.query(p.value) : undefined))?.join('&'),\n }))\n .map(({ route, query }) => (isNotEmpty(query) ? `${route}?${query}` : route)).value;\n }\n\n id = (id?: unknown): this => this.set(EasyUri.id, id);\n ids = (ids: OneOrMore<unknown>): this => this.set(EasyUri.ids, toArray(ids).join(','));\n query = (q?: unknown): this => this.set(EasyUri.query, q);\n sort = (s?: any): this => this.set(EasyUri.sort, asString(s));\n\n skip = (index?: number): this => this.set(EasyUri.skip, index);\n take = (items?: number): this => this.set(EasyUri.take, items);\n\n expand(props: Partial<Props>): this {\n return entries(props as any)\n .filter(([_, v]) => isNotEmpty(v))\n .reduce((u, [k, v]) => (isBoolean(v) ? u.set(uri.boolean(k), v) : u.set(uri.query(k), toArray(v).join(','))), this);\n }\n}\n\nexport const clipUri = (uri?: EasyUri | string | null): string =>\n tryTo(() => asString(uri))\n .map(uri => uri.replace(/^(https?:\\/\\/)?(www\\.)?/, ''))\n .map(uri => uri.replace(/\\/$/, '')).value;\n"],"mappings":"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","names":["value","uri"]}
1
+ {"version":3,"sources":["../../src/types/Uri.ts"],"sourcesContent":["import { isBoolean, isNotEmpty, isTrue } from './Is';\nimport { asString, Text } from './Text';\nimport { toName } from './Constructor';\nimport { ctx } from './Context';\nimport { List, toList } from './List';\nimport { meta } from './Meta';\nimport { tryTo } from './Try';\nimport { Optional } from './Types';\nimport { OneOrMore, toArray } from './Array';\nimport { entries } from './Object';\n\nexport type Segment = Text & { key?: string; segment?: string; query?: (value: unknown) => string };\n\nexport const toSegment = (\n key?: Text,\n {\n segment,\n query,\n }: {\n segment?: string;\n query?: (value: unknown) => string;\n } = {}\n): Segment => ({\n key: key as string,\n segment,\n query,\n toString: () => asString(key),\n});\n\nexport const uri = {\n host: (key?: string): Segment => toSegment(key, { segment: key ?? ctx.env.host ?? '$host' }),\n resource: <Props extends UriExpandProps>(resource: Uri<Props>): Segment => toSegment(toName(resource, 'Uri'), { segment: toName(resource, 'Uri') }),\n segment: (key?: Text): Segment => toSegment(key, { segment: key as string }),\n path: (key: Text): Segment => toSegment(key, { segment: `:${key}` }),\n query: (key: Text): Segment =>\n toSegment(key, {\n query: (value: unknown): string =>\n tryTo(value)\n .is.defined()\n .map(v => encodeURIComponent(asString(v)))\n .map(v => `${key}=${v}`)\n .orElse('') ?? '',\n }),\n boolean: (key: Text): Segment => toSegment(key, { query: (value: unknown): string => (isTrue(value) ? `${key}` : '') }),\n};\n\ntype Prop = { segment: Segment; value: any };\n\nconst toRoute = (...segments: Segment[]): string =>\n toList(segments)\n .mapDefined(s => s.segment)\n .join('/');\n\nexport type Uri<Props extends UriExpandProps = UriExpandProps> = {\n id: (id?: unknown) => Uri<Props>;\n ids: (ids: OneOrMore<unknown>) => Uri<Props>;\n query: (q?: unknown) => Uri<Props>;\n sort: (q?: any) => Uri<Props>;\n skip: (n?: number) => Uri<Props>;\n take: (n?: number) => Uri<Props>;\n path: string;\n route: (resource: string) => string;\n isInternal: boolean;\n toString: () => string;\n expand: (props: Partial<Props>) => Uri<Props>;\n};\n\nexport type UriExpandProps = { q?: string; s?: string; skip?: number; take?: number };\n\nexport class EasyUri<Props extends UriExpandProps = UriExpandProps> implements Uri<Props> {\n static readonly id = uri.path('id');\n static readonly ids = uri.query('ids');\n static readonly query = uri.query('q');\n static readonly sort = uri.query('s');\n static readonly skip = uri.query('skip');\n static readonly take = uri.query('take');\n\n readonly host = uri.host();\n protected resource: Segment = uri.resource(this);\n\n protected state: any = {};\n\n constructor(readonly segments: Segment[] = []) {}\n\n get path(): string {\n return toRoute(uri.segment(''), this.resource, ...this.segments);\n }\n\n get complete(): string {\n return toRoute(this.host, this.resource, ...this.segments);\n }\n\n get isInternal(): boolean {\n return toRoute(this.host) === (ctx.env.host ?? '$host');\n }\n\n protected get props(): List<Prop> {\n return meta(this.state).values<Prop>();\n }\n\n route = (resource: Optional<string> = this.resource.key): string => toRoute(uri.segment(''), uri.segment(resource?.toLowerCase()), ...this.segments);\n\n set = (segment: Segment, value?: unknown): this => {\n tryTo(value)\n .is.defined()\n .accept(value => (this.state[segment.key ?? ''] = { segment, value }));\n return this;\n };\n\n toString(): string {\n return tryTo(() => this.props)\n .map(ps => ps.filter(p => p.segment?.segment))\n .map(ps => ps.reduce((r: string, p: Prop) => r.replace(asString(p.segment.segment), asString(p.value)), this.complete))\n .map(route => ({\n route,\n query: this.props.mapDefined(p => (p.segment?.query ? p.segment?.query(p.value) : undefined))?.join('&'),\n }))\n .map(({ route, query }) => (isNotEmpty(query) ? `${route}?${query}` : route)).value;\n }\n\n id = (id?: unknown): this => this.set(EasyUri.id, id);\n ids = (ids: OneOrMore<unknown>): this => this.set(EasyUri.ids, toArray(ids).join(','));\n query = (q?: unknown): this => this.set(EasyUri.query, q);\n sort = (s?: any): this => this.set(EasyUri.sort, asString(s));\n\n skip = (index?: number): this => this.set(EasyUri.skip, index);\n take = (items?: number): this => this.set(EasyUri.take, items);\n\n expand(props: Partial<Props>): this {\n return entries(props as any)\n .filter(([_, v]) => isNotEmpty(v))\n .reduce((u, [k, v]) => (isBoolean(v) ? u.set(uri.boolean(k), v) : u.set(uri.query(k), toArray(v).join(','))), this);\n }\n}\n\nexport const clipUri = (uri?: EasyUri | string | null): string =>\n tryTo(() => asString(uri))\n .map(uri => uri.replace(/^(https?:\\/\\/)?(www\\.)?/, ''))\n .map(uri => uri.replace(/\\/$/, '')).value;\n"],"mappings":"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","names":["value","uri"]}
@@ -10,6 +10,8 @@ export declare function ifDefined<Out, In = unknown>(o: Optional<In>, f: Constru
10
10
  export declare function ifNotEmpty<Out, In = unknown>(o: In, f: Construct<Out, NonNullable<In>>, alt: Construct<Out>): Out;
11
11
  export declare function ifNotEmpty<Out, In = unknown>(o: In, f?: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;
12
12
  export declare function ifNotEmpty<Out, In = unknown>(o: In, f: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;
13
+ export declare function ifEqual<Out>(one: unknown, another: unknown, f: Construct<Out>, alt: Construct<Out>): Out;
14
+ export declare function ifEqual<Out>(one: unknown, another: unknown, f: Construct<Out>, alt?: Construct<Out>): Optional<Out>;
13
15
  export declare function ifEither<Out, In = unknown>(os: OneOrMore<In>, f: Construct<Out, NonNullable<In>>, alt: Construct<Out>): Out;
14
16
  export declare function ifEither<Out, In = unknown>(os: OneOrMore<In>, f?: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;
15
17
  export declare function ifEither<Out, In = unknown>(os: OneOrMore<In>, f: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;
package/dist/utils/If.mjs CHANGED
@@ -1,12 +1,15 @@
1
1
  import {
2
2
  ifDefined,
3
3
  ifEither,
4
+ ifEqual,
4
5
  ifFalse,
5
6
  ifNotEmpty,
6
7
  ifTrue
7
- } from "../chunk-MQ6KZAFL.mjs";
8
- import "../chunk-SSROJBD5.mjs";
8
+ } from "../chunk-TUO7ZPSP.mjs";
9
+ import "../chunk-GPNPXSOF.mjs";
9
10
  import "../chunk-QCPWEAAJ.mjs";
11
+ import "../chunk-SSROJBD5.mjs";
12
+ import "../chunk-AMS2ELWR.mjs";
10
13
  import "../chunk-4Q6IHSAU.mjs";
11
14
  import "../chunk-SJGQU3OG.mjs";
12
15
  import "../chunk-MDIO6K2O.mjs";
@@ -18,6 +21,7 @@ import "../chunk-4N72FQFX.mjs";
18
21
  export {
19
22
  ifDefined,
20
23
  ifEither,
24
+ ifEqual,
21
25
  ifFalse,
22
26
  ifNotEmpty,
23
27
  ifTrue
@@ -2,16 +2,16 @@ import {
2
2
  Mapper,
3
3
  isMapping,
4
4
  mappings
5
- } from "../chunk-G2NE3X2O.mjs";
5
+ } from "../chunk-J5PB7ZVO.mjs";
6
6
  import "../chunk-KIC2K3GH.mjs";
7
7
  import "../chunk-RUKHONCR.mjs";
8
8
  import "../chunk-UAYAS3WM.mjs";
9
- import "../chunk-KMYWEWV2.mjs";
10
- import "../chunk-FECVT2OY.mjs";
11
- import "../chunk-GRMWYEPU.mjs";
12
- import "../chunk-MQ6KZAFL.mjs";
13
- import "../chunk-SSROJBD5.mjs";
9
+ import "../chunk-WOUH6UVC.mjs";
10
+ import "../chunk-TUO7ZPSP.mjs";
11
+ import "../chunk-GPNPXSOF.mjs";
14
12
  import "../chunk-QCPWEAAJ.mjs";
13
+ import "../chunk-SSROJBD5.mjs";
14
+ import "../chunk-AMS2ELWR.mjs";
15
15
  import "../chunk-4Q6IHSAU.mjs";
16
16
  import "../chunk-SJGQU3OG.mjs";
17
17
  import "../chunk-MDIO6K2O.mjs";
@@ -3,21 +3,16 @@ import {
3
3
  } from "../chunk-O3UNRTSC.mjs";
4
4
  import {
5
5
  DateTime
6
- } from "../chunk-7JZYEQC2.mjs";
7
- import "../chunk-ZA3RBSEC.mjs";
6
+ } from "../chunk-KPXOQFEB.mjs";
7
+ import "../chunk-M2S4OLVZ.mjs";
8
8
  import "../chunk-ADJAEGCT.mjs";
9
9
  import {
10
10
  choose
11
- } from "../chunk-UL2QXFW5.mjs";
12
- import "../chunk-HNW64DUZ.mjs";
11
+ } from "../chunk-TUO7ZPSP.mjs";
13
12
  import "../chunk-GPNPXSOF.mjs";
14
- import "../chunk-AMS2ELWR.mjs";
15
- import "../chunk-VN4JL4JB.mjs";
16
- import "../chunk-FECVT2OY.mjs";
17
- import "../chunk-GRMWYEPU.mjs";
18
- import "../chunk-MQ6KZAFL.mjs";
19
- import "../chunk-SSROJBD5.mjs";
20
13
  import "../chunk-QCPWEAAJ.mjs";
14
+ import "../chunk-SSROJBD5.mjs";
15
+ import "../chunk-AMS2ELWR.mjs";
21
16
  import "../chunk-4Q6IHSAU.mjs";
22
17
  import "../chunk-SJGQU3OG.mjs";
23
18
  import "../chunk-MDIO6K2O.mjs";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/Period.ts"],"sourcesContent":["import { choose } from '../types/Case';\nimport { DateTime } from '../domain/DateTime';\nimport { Period } from '../types/Period';\nimport { utc } from '../types/Timezone';\n\nexport type StartEnd = { start: DateTime; end: DateTime };\n\nexport type StartEndOptions = {\n period?: Period;\n start?: DateTime;\n end?: DateTime;\n zone?: string;\n};\nexport const toStartEnd = ({ period, start, end, zone = utc }: StartEndOptions): StartEnd => {\n const today = DateTime.now.withZone(zone).startOf('day');\n return choose(period)\n .equals('today', { start: today, end: today.endOf('day') })\n .equals('yesterday', { start: today.subtract(1, 'day'), end: today })\n .equals('tomorrow', { start: today.add(1, 'day'), end: today.add(1, 'day').endOf('day') })\n .equals('this-week', { start: today.startOf('week'), end: today.endOf('week') })\n .equals('last-seven-days', { start: today.subtract(6, 'day'), end: today.endOf('day') })\n .equals('last-week', {\n start: today.subtract(1, 'week').startOf('week'),\n end: today.subtract(1, 'week').endOf('week'),\n })\n .equals('last-two-weeks', { start: today.subtract(13, 'day'), end: today.endOf('day') })\n .equals('last-month', {\n start: today.subtract(1, 'month').startOf('month'),\n end: today.subtract(1, 'month').endOf('month'),\n })\n .equals('next-week', { start: today.add(1, 'week').startOf('week'), end: today.add(1, 'week').endOf('week') })\n .equals('this-month', { start: today.startOf('month'), end: today.endOf('month') })\n .equals('three-months-ago', {\n start: today.subtract(3, 'month').startOf('month'),\n end: today.subtract(3, 'month').endOf('month'),\n })\n .equals('two-months-ago', {\n start: today.subtract(2, 'month').startOf('month'),\n end: today.subtract(2, 'month').endOf('month'),\n })\n .equals('last-three-months', { start: today.subtract(3, 'month'), end: today.endOf('day') })\n .equals('next-month', { start: today.add(1, 'month').startOf('month'), end: today.add(1, 'month').endOf('month') })\n .equals('this-year', { start: today.startOf('year'), end: today.endOf('year') })\n .equals('last-year', {\n start: today.subtract(1, 'year').startOf('year'),\n end: today.subtract(1, 'year').endOf('year'),\n })\n .equals('two-years-ago', {\n start: today.subtract(2, 'year').startOf('year'),\n end: today.subtract(2, 'year').endOf('year'),\n })\n .equals('three-years-ago', {\n start: today.subtract(3, 'year').startOf('year'),\n end: today.subtract(3, 'year').endOf('year'),\n })\n .equals('next-year', { start: today.add(1, 'year').startOf('year'), end: today.add(1, 'year').endOf('year') })\n .equals('all-time', { start: new DateTime(0).withZone(zone), end: today.endOf('day') })\n .else({ start: start ?? today, end: end ?? today.endOf('day') });\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/utils/Period.ts"],"sourcesContent":["import { choose } from '../types/Case';\nimport { DateTime } from '../domain/DateTime';\nimport { Period } from '../types/Period';\nimport { utc } from '../types/Timezone';\n\nexport type StartEnd = { start: DateTime; end: DateTime };\n\nexport type StartEndOptions = {\n period?: Period;\n start?: DateTime;\n end?: DateTime;\n zone?: string;\n};\nexport const toStartEnd = ({ period, start, end, zone = utc }: StartEndOptions): StartEnd => {\n const today = DateTime.now.withZone(zone).startOf('day');\n return choose(period)\n .equals('today', { start: today, end: today.endOf('day') })\n .equals('yesterday', { start: today.subtract(1, 'day'), end: today })\n .equals('tomorrow', { start: today.add(1, 'day'), end: today.add(1, 'day').endOf('day') })\n .equals('this-week', { start: today.startOf('week'), end: today.endOf('week') })\n .equals('last-seven-days', { start: today.subtract(6, 'day'), end: today.endOf('day') })\n .equals('last-week', {\n start: today.subtract(1, 'week').startOf('week'),\n end: today.subtract(1, 'week').endOf('week'),\n })\n .equals('last-two-weeks', { start: today.subtract(13, 'day'), end: today.endOf('day') })\n .equals('last-month', {\n start: today.subtract(1, 'month').startOf('month'),\n end: today.subtract(1, 'month').endOf('month'),\n })\n .equals('next-week', { start: today.add(1, 'week').startOf('week'), end: today.add(1, 'week').endOf('week') })\n .equals('this-month', { start: today.startOf('month'), end: today.endOf('month') })\n .equals('three-months-ago', {\n start: today.subtract(3, 'month').startOf('month'),\n end: today.subtract(3, 'month').endOf('month'),\n })\n .equals('two-months-ago', {\n start: today.subtract(2, 'month').startOf('month'),\n end: today.subtract(2, 'month').endOf('month'),\n })\n .equals('last-three-months', { start: today.subtract(3, 'month'), end: today.endOf('day') })\n .equals('next-month', { start: today.add(1, 'month').startOf('month'), end: today.add(1, 'month').endOf('month') })\n .equals('this-year', { start: today.startOf('year'), end: today.endOf('year') })\n .equals('last-year', {\n start: today.subtract(1, 'year').startOf('year'),\n end: today.subtract(1, 'year').endOf('year'),\n })\n .equals('two-years-ago', {\n start: today.subtract(2, 'year').startOf('year'),\n end: today.subtract(2, 'year').endOf('year'),\n })\n .equals('three-years-ago', {\n start: today.subtract(3, 'year').startOf('year'),\n end: today.subtract(3, 'year').endOf('year'),\n })\n .equals('next-year', { start: today.add(1, 'year').startOf('year'), end: today.add(1, 'year').endOf('year') })\n .equals('all-time', { start: new DateTime(0).withZone(zone), end: today.endOf('day') })\n .else({ start: start ?? today, end: end ?? today.endOf('day') });\n};\n"],"mappings":"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","names":[]}
@@ -8,11 +8,11 @@ import {
8
8
  tuple4,
9
9
  tuple5,
10
10
  tupleO
11
- } from "../chunk-HNW64DUZ.mjs";
12
- import "../chunk-GRMWYEPU.mjs";
13
- import "../chunk-MQ6KZAFL.mjs";
14
- import "../chunk-SSROJBD5.mjs";
11
+ } from "../chunk-TUO7ZPSP.mjs";
12
+ import "../chunk-GPNPXSOF.mjs";
15
13
  import "../chunk-QCPWEAAJ.mjs";
14
+ import "../chunk-SSROJBD5.mjs";
15
+ import "../chunk-AMS2ELWR.mjs";
16
16
  import "../chunk-4Q6IHSAU.mjs";
17
17
  import "../chunk-SJGQU3OG.mjs";
18
18
  import "../chunk-MDIO6K2O.mjs";
@@ -1,9 +1,11 @@
1
1
  import {
2
2
  seconds
3
- } from "../chunk-ZA3RBSEC.mjs";
4
- import "../chunk-MQ6KZAFL.mjs";
5
- import "../chunk-SSROJBD5.mjs";
3
+ } from "../chunk-M2S4OLVZ.mjs";
4
+ import "../chunk-TUO7ZPSP.mjs";
5
+ import "../chunk-GPNPXSOF.mjs";
6
6
  import "../chunk-QCPWEAAJ.mjs";
7
+ import "../chunk-SSROJBD5.mjs";
8
+ import "../chunk-AMS2ELWR.mjs";
7
9
  import "../chunk-4Q6IHSAU.mjs";
8
10
  import "../chunk-SJGQU3OG.mjs";
9
11
  import "../chunk-MDIO6K2O.mjs";
@@ -1,15 +1,10 @@
1
1
  import {
2
2
  text
3
- } from "../chunk-UL2QXFW5.mjs";
4
- import "../chunk-HNW64DUZ.mjs";
3
+ } from "../chunk-TUO7ZPSP.mjs";
5
4
  import "../chunk-GPNPXSOF.mjs";
6
- import "../chunk-AMS2ELWR.mjs";
7
- import "../chunk-VN4JL4JB.mjs";
8
- import "../chunk-FECVT2OY.mjs";
9
- import "../chunk-GRMWYEPU.mjs";
10
- import "../chunk-MQ6KZAFL.mjs";
11
- import "../chunk-SSROJBD5.mjs";
12
5
  import "../chunk-QCPWEAAJ.mjs";
6
+ import "../chunk-SSROJBD5.mjs";
7
+ import "../chunk-AMS2ELWR.mjs";
13
8
  import "../chunk-4Q6IHSAU.mjs";
14
9
  import "../chunk-SJGQU3OG.mjs";
15
10
  import "../chunk-MDIO6K2O.mjs";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/Sentence.ts"],"sourcesContent":["import type { Text } from '../types/Text';\nimport { Id } from '../types/Id';\nimport { text } from '../types/ToText';\n\nexport class Sentence implements Text {\n constructor(\n word: Text,\n pre?: Sentence,\n private sentence: Text[] = (pre?.sentence ?? []).concat(word)\n ) {}\n\n toString(): string {\n return text(this.sentence.join(' ')).sentence.toString();\n }\n}\n\nclass Topic extends Sentence {\n it = new Sentence('it', this);\n anything = new Sentence('anything', this);\n id = (id: Id) => new Sentence(`id '${id}'`, this);\n your = (subject?: Text) => new Sentence(`your ${subject ?? 'item'}`, this);\n a = (subject?: Text) => new Sentence(subject ? `a ${subject}` : 'an item', this);\n an = (subject?: Text) => new Sentence(`an ${subject ?? 'item'}`, this);\n any = (subjects?: Text) => new Sentence(`any ${subjects ?? 'items'}`, this);\n}\n\nclass Verb extends Sentence {\n add = new Topic('add', this);\n check = new Topic('check', this);\n fetch = new Topic('fetch', this);\n find = new Topic('find', this);\n like = new Topic('like', this);\n process = new Topic('process', this);\n remove = new Topic('remove', this);\n translate = new Topic('translate', this);\n update = new Topic('update', this);\n validate = new Topic('validate', this);\n}\n\nclass Not extends Verb {}\n\nclass SupportVerb extends Verb {\n not = new Not('not', this);\n}\n\nclass We extends Sentence {\n could = new SupportVerb('could', this);\n did = new SupportVerb('did', this);\n\n added = new Topic('added', this);\n checked = new Topic('checked', this);\n fetched = new Topic('fetched', this);\n found = new Topic('found', this);\n liked = new Topic('liked', this);\n processed = new Topic('processed', this);\n removed = new Topic('removed', this);\n translated = new Topic('translated', this);\n updated = new Topic('updated', this);\n validated = new Topic('validated', this);\n}\n\nexport const we = new We('we');\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAIO,IAAM,WAAN,MAA+B;AAAA,EACpC,YACE,MACA,KACQ,YAAoB,KAAK,YAAY,CAAC,GAAG,OAAO,IAAI,GAC5D;AADQ;AAAA,EACP;AAAA,EAEH,WAAmB;AACjB,WAAO,KAAK,KAAK,SAAS,KAAK,GAAG,CAAC,EAAE,SAAS,SAAS;AAAA,EACzD;AACF;AAEA,IAAM,QAAN,cAAoB,SAAS;AAAA,EAC3B,KAAK,IAAI,SAAS,MAAM,IAAI;AAAA,EAC5B,WAAW,IAAI,SAAS,YAAY,IAAI;AAAA,EACxC,KAAK,CAAC,OAAW,IAAI,SAAS,OAAO,EAAE,KAAK,IAAI;AAAA,EAChD,OAAO,CAAC,YAAmB,IAAI,SAAS,QAAQ,WAAW,MAAM,IAAI,IAAI;AAAA,EACzE,IAAI,CAAC,YAAmB,IAAI,SAAS,UAAU,KAAK,OAAO,KAAK,WAAW,IAAI;AAAA,EAC/E,KAAK,CAAC,YAAmB,IAAI,SAAS,MAAM,WAAW,MAAM,IAAI,IAAI;AAAA,EACrE,MAAM,CAAC,aAAoB,IAAI,SAAS,OAAO,YAAY,OAAO,IAAI,IAAI;AAC5E;AAEA,IAAM,OAAN,cAAmB,SAAS;AAAA,EAC1B,MAAM,IAAI,MAAM,OAAO,IAAI;AAAA,EAC3B,QAAQ,IAAI,MAAM,SAAS,IAAI;AAAA,EAC/B,QAAQ,IAAI,MAAM,SAAS,IAAI;AAAA,EAC/B,OAAO,IAAI,MAAM,QAAQ,IAAI;AAAA,EAC7B,OAAO,IAAI,MAAM,QAAQ,IAAI;AAAA,EAC7B,UAAU,IAAI,MAAM,WAAW,IAAI;AAAA,EACnC,SAAS,IAAI,MAAM,UAAU,IAAI;AAAA,EACjC,YAAY,IAAI,MAAM,aAAa,IAAI;AAAA,EACvC,SAAS,IAAI,MAAM,UAAU,IAAI;AAAA,EACjC,WAAW,IAAI,MAAM,YAAY,IAAI;AACvC;AAEA,IAAM,MAAN,cAAkB,KAAK;AAAC;AAExB,IAAM,cAAN,cAA0B,KAAK;AAAA,EAC7B,MAAM,IAAI,IAAI,OAAO,IAAI;AAC3B;AAEA,IAAM,KAAN,cAAiB,SAAS;AAAA,EACxB,QAAQ,IAAI,YAAY,SAAS,IAAI;AAAA,EACrC,MAAM,IAAI,YAAY,OAAO,IAAI;AAAA,EAEjC,QAAQ,IAAI,MAAM,SAAS,IAAI;AAAA,EAC/B,UAAU,IAAI,MAAM,WAAW,IAAI;AAAA,EACnC,UAAU,IAAI,MAAM,WAAW,IAAI;AAAA,EACnC,QAAQ,IAAI,MAAM,SAAS,IAAI;AAAA,EAC/B,QAAQ,IAAI,MAAM,SAAS,IAAI;AAAA,EAC/B,YAAY,IAAI,MAAM,aAAa,IAAI;AAAA,EACvC,UAAU,IAAI,MAAM,WAAW,IAAI;AAAA,EACnC,aAAa,IAAI,MAAM,cAAc,IAAI;AAAA,EACzC,UAAU,IAAI,MAAM,WAAW,IAAI;AAAA,EACnC,YAAY,IAAI,MAAM,aAAa,IAAI;AACzC;AAEO,IAAM,KAAK,IAAI,GAAG,IAAI;","names":[]}
1
+ {"version":3,"sources":["../../src/utils/Sentence.ts"],"sourcesContent":["import type { Text } from '../types/Text';\nimport { Id } from '../types/Id';\nimport { text } from '../types/ToText';\n\nexport class Sentence implements Text {\n constructor(\n word: Text,\n pre?: Sentence,\n private sentence: Text[] = (pre?.sentence ?? []).concat(word)\n ) {}\n\n toString(): string {\n return text(this.sentence.join(' ')).sentence.toString();\n }\n}\n\nclass Topic extends Sentence {\n it = new Sentence('it', this);\n anything = new Sentence('anything', this);\n id = (id: Id) => new Sentence(`id '${id}'`, this);\n your = (subject?: Text) => new Sentence(`your ${subject ?? 'item'}`, this);\n a = (subject?: Text) => new Sentence(subject ? `a ${subject}` : 'an item', this);\n an = (subject?: Text) => new Sentence(`an ${subject ?? 'item'}`, this);\n any = (subjects?: Text) => new Sentence(`any ${subjects ?? 'items'}`, this);\n}\n\nclass Verb extends Sentence {\n add = new Topic('add', this);\n check = new Topic('check', this);\n fetch = new Topic('fetch', this);\n find = new Topic('find', this);\n like = new Topic('like', this);\n process = new Topic('process', this);\n remove = new Topic('remove', this);\n translate = new Topic('translate', this);\n update = new Topic('update', this);\n validate = new Topic('validate', this);\n}\n\nclass Not extends Verb {}\n\nclass SupportVerb extends Verb {\n not = new Not('not', this);\n}\n\nclass We extends Sentence {\n could = new SupportVerb('could', this);\n did = new SupportVerb('did', this);\n\n added = new Topic('added', this);\n checked = new Topic('checked', this);\n fetched = new Topic('fetched', this);\n found = new Topic('found', this);\n liked = new Topic('liked', this);\n processed = new Topic('processed', this);\n removed = new Topic('removed', this);\n translated = new Topic('translated', this);\n updated = new Topic('updated', this);\n validated = new Topic('validated', this);\n}\n\nexport const we = new We('we');\n"],"mappings":";;;;;;;;;;;;;;;;;AAIO,IAAM,WAAN,MAA+B;AAAA,EACpC,YACE,MACA,KACQ,YAAoB,KAAK,YAAY,CAAC,GAAG,OAAO,IAAI,GAC5D;AADQ;AAAA,EACP;AAAA,EAEH,WAAmB;AACjB,WAAO,KAAK,KAAK,SAAS,KAAK,GAAG,CAAC,EAAE,SAAS,SAAS;AAAA,EACzD;AACF;AAEA,IAAM,QAAN,cAAoB,SAAS;AAAA,EAC3B,KAAK,IAAI,SAAS,MAAM,IAAI;AAAA,EAC5B,WAAW,IAAI,SAAS,YAAY,IAAI;AAAA,EACxC,KAAK,CAAC,OAAW,IAAI,SAAS,OAAO,EAAE,KAAK,IAAI;AAAA,EAChD,OAAO,CAAC,YAAmB,IAAI,SAAS,QAAQ,WAAW,MAAM,IAAI,IAAI;AAAA,EACzE,IAAI,CAAC,YAAmB,IAAI,SAAS,UAAU,KAAK,OAAO,KAAK,WAAW,IAAI;AAAA,EAC/E,KAAK,CAAC,YAAmB,IAAI,SAAS,MAAM,WAAW,MAAM,IAAI,IAAI;AAAA,EACrE,MAAM,CAAC,aAAoB,IAAI,SAAS,OAAO,YAAY,OAAO,IAAI,IAAI;AAC5E;AAEA,IAAM,OAAN,cAAmB,SAAS;AAAA,EAC1B,MAAM,IAAI,MAAM,OAAO,IAAI;AAAA,EAC3B,QAAQ,IAAI,MAAM,SAAS,IAAI;AAAA,EAC/B,QAAQ,IAAI,MAAM,SAAS,IAAI;AAAA,EAC/B,OAAO,IAAI,MAAM,QAAQ,IAAI;AAAA,EAC7B,OAAO,IAAI,MAAM,QAAQ,IAAI;AAAA,EAC7B,UAAU,IAAI,MAAM,WAAW,IAAI;AAAA,EACnC,SAAS,IAAI,MAAM,UAAU,IAAI;AAAA,EACjC,YAAY,IAAI,MAAM,aAAa,IAAI;AAAA,EACvC,SAAS,IAAI,MAAM,UAAU,IAAI;AAAA,EACjC,WAAW,IAAI,MAAM,YAAY,IAAI;AACvC;AAEA,IAAM,MAAN,cAAkB,KAAK;AAAC;AAExB,IAAM,cAAN,cAA0B,KAAK;AAAA,EAC7B,MAAM,IAAI,IAAI,OAAO,IAAI;AAC3B;AAEA,IAAM,KAAN,cAAiB,SAAS;AAAA,EACxB,QAAQ,IAAI,YAAY,SAAS,IAAI;AAAA,EACrC,MAAM,IAAI,YAAY,OAAO,IAAI;AAAA,EAEjC,QAAQ,IAAI,MAAM,SAAS,IAAI;AAAA,EAC/B,UAAU,IAAI,MAAM,WAAW,IAAI;AAAA,EACnC,UAAU,IAAI,MAAM,WAAW,IAAI;AAAA,EACnC,QAAQ,IAAI,MAAM,SAAS,IAAI;AAAA,EAC/B,QAAQ,IAAI,MAAM,SAAS,IAAI;AAAA,EAC/B,YAAY,IAAI,MAAM,aAAa,IAAI;AAAA,EACvC,UAAU,IAAI,MAAM,WAAW,IAAI;AAAA,EACnC,aAAa,IAAI,MAAM,cAAc,IAAI;AAAA,EACzC,UAAU,IAAI,MAAM,WAAW,IAAI;AAAA,EACnC,YAAY,IAAI,MAAM,aAAa,IAAI;AACzC;AAEO,IAAM,KAAK,IAAI,GAAG,IAAI;","names":[]}
@@ -4,20 +4,14 @@ import {
4
4
  toViewer,
5
5
  view,
6
6
  views
7
- } from "../chunk-QFOUEEXU.mjs";
8
- import "../chunk-NYKMQY5N.mjs";
9
- import "../chunk-75E6U7F3.mjs";
10
- import "../chunk-KMYWEWV2.mjs";
11
- import "../chunk-UL2QXFW5.mjs";
12
- import "../chunk-HNW64DUZ.mjs";
7
+ } from "../chunk-7TW4TBFN.mjs";
8
+ import "../chunk-QLEGIYVU.mjs";
9
+ import "../chunk-WOUH6UVC.mjs";
10
+ import "../chunk-TUO7ZPSP.mjs";
13
11
  import "../chunk-GPNPXSOF.mjs";
14
- import "../chunk-AMS2ELWR.mjs";
15
- import "../chunk-VN4JL4JB.mjs";
16
- import "../chunk-FECVT2OY.mjs";
17
- import "../chunk-GRMWYEPU.mjs";
18
- import "../chunk-MQ6KZAFL.mjs";
19
- import "../chunk-SSROJBD5.mjs";
20
12
  import "../chunk-QCPWEAAJ.mjs";
13
+ import "../chunk-SSROJBD5.mjs";
14
+ import "../chunk-AMS2ELWR.mjs";
21
15
  import "../chunk-4Q6IHSAU.mjs";
22
16
  import "../chunk-SJGQU3OG.mjs";
23
17
  import "../chunk-MDIO6K2O.mjs";
@@ -18,18 +18,13 @@ import {
18
18
  required,
19
19
  rule,
20
20
  valid
21
- } from "../chunk-TZMIA2P4.mjs";
21
+ } from "../chunk-GF7JYGJU.mjs";
22
22
  import "../chunk-ADJAEGCT.mjs";
23
- import "../chunk-UL2QXFW5.mjs";
24
- import "../chunk-HNW64DUZ.mjs";
23
+ import "../chunk-TUO7ZPSP.mjs";
25
24
  import "../chunk-GPNPXSOF.mjs";
26
- import "../chunk-AMS2ELWR.mjs";
27
- import "../chunk-VN4JL4JB.mjs";
28
- import "../chunk-FECVT2OY.mjs";
29
- import "../chunk-GRMWYEPU.mjs";
30
- import "../chunk-MQ6KZAFL.mjs";
31
- import "../chunk-SSROJBD5.mjs";
32
25
  import "../chunk-QCPWEAAJ.mjs";
26
+ import "../chunk-SSROJBD5.mjs";
27
+ import "../chunk-AMS2ELWR.mjs";
33
28
  import "../chunk-4Q6IHSAU.mjs";
34
29
  import "../chunk-SJGQU3OG.mjs";
35
30
  import "../chunk-MDIO6K2O.mjs";
@@ -3,16 +3,11 @@ import {
3
3
  isValid,
4
4
  validate,
5
5
  validateReject
6
- } from "../chunk-UL2QXFW5.mjs";
7
- import "../chunk-HNW64DUZ.mjs";
6
+ } from "../chunk-TUO7ZPSP.mjs";
8
7
  import "../chunk-GPNPXSOF.mjs";
9
- import "../chunk-AMS2ELWR.mjs";
10
- import "../chunk-VN4JL4JB.mjs";
11
- import "../chunk-FECVT2OY.mjs";
12
- import "../chunk-GRMWYEPU.mjs";
13
- import "../chunk-MQ6KZAFL.mjs";
14
- import "../chunk-SSROJBD5.mjs";
15
8
  import "../chunk-QCPWEAAJ.mjs";
9
+ import "../chunk-SSROJBD5.mjs";
10
+ import "../chunk-AMS2ELWR.mjs";
16
11
  import "../chunk-4Q6IHSAU.mjs";
17
12
  import "../chunk-SJGQU3OG.mjs";
18
13
  import "../chunk-MDIO6K2O.mjs";
@@ -1,16 +1,11 @@
1
1
  import {
2
2
  When,
3
3
  when
4
- } from "../chunk-UL2QXFW5.mjs";
5
- import "../chunk-HNW64DUZ.mjs";
4
+ } from "../chunk-TUO7ZPSP.mjs";
6
5
  import "../chunk-GPNPXSOF.mjs";
7
- import "../chunk-AMS2ELWR.mjs";
8
- import "../chunk-VN4JL4JB.mjs";
9
- import "../chunk-FECVT2OY.mjs";
10
- import "../chunk-GRMWYEPU.mjs";
11
- import "../chunk-MQ6KZAFL.mjs";
12
- import "../chunk-SSROJBD5.mjs";
13
6
  import "../chunk-QCPWEAAJ.mjs";
7
+ import "../chunk-SSROJBD5.mjs";
8
+ import "../chunk-AMS2ELWR.mjs";
14
9
  import "../chunk-4Q6IHSAU.mjs";
15
10
  import "../chunk-SJGQU3OG.mjs";
16
11
  import "../chunk-MDIO6K2O.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thisisagile/easy",
3
- "version": "18.5.0",
3
+ "version": "18.7.0",
4
4
  "description": "Straightforward library for building domain-driven microservice architectures",
5
5
  "author": "Sander Hoogendoorn",
6
6
  "license": "MIT",
package/src/utils/If.ts CHANGED
@@ -3,6 +3,7 @@ import { Optional } from '../types/Types';
3
3
  import { Construct, ofConstruct, use } from '../types/Constructor';
4
4
  import { OneOrMore } from '../types/Array';
5
5
  import { toList } from '../types/List';
6
+ import { isEqual } from '../types/IsEqual';
6
7
 
7
8
  export function ifTrue<Out, In = unknown>(o: unknown, f: Construct<Out, NonNullable<In>>, alt: Construct<Out>): Out;
8
9
  export function ifTrue<Out, In = unknown>(o: unknown, f: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;
@@ -29,6 +30,12 @@ export function ifNotEmpty<Out, In = unknown>(o: In, f: Construct<Out, NonNullab
29
30
  return isNotEmpty(o) ? ofConstruct(f, o) : ofConstruct(alt, o);
30
31
  }
31
32
 
33
+ export function ifEqual<Out>(one: unknown, another: unknown, f: Construct<Out>, alt: Construct<Out>): Out;
34
+ export function ifEqual<Out>(one: unknown, another: unknown, f: Construct<Out>, alt?: Construct<Out>): Optional<Out>;
35
+ export function ifEqual<Out>(one: unknown, another: unknown, f: Construct<Out>, alt?: Construct<Out>): Optional<Out> {
36
+ return isEqual(one, another) ? ofConstruct(f) : ofConstruct(alt);
37
+ }
38
+
32
39
  export function ifEither<Out, In = unknown>(os: OneOrMore<In>, f: Construct<Out, NonNullable<In>>, alt: Construct<Out>): Out;
33
40
  export function ifEither<Out, In = unknown>(os: OneOrMore<In>, f?: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;
34
41
  export function ifEither<Out, In = unknown>(os: OneOrMore<In>, f: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;
@@ -1,58 +0,0 @@
1
- import {
2
- entries,
3
- values
4
- } from "./chunk-GRMWYEPU.mjs";
5
- import {
6
- toList
7
- } from "./chunk-MQ6KZAFL.mjs";
8
- import {
9
- on,
10
- use
11
- } from "./chunk-QK5XGRSM.mjs";
12
- import {
13
- isDefined
14
- } from "./chunk-YYWOQNZQ.mjs";
15
-
16
- // src/types/Meta.ts
17
- import "reflect-metadata";
18
- var ClassMeta = class {
19
- constructor(subject, data = (subject.prototype ?? subject).constructor) {
20
- this.subject = subject;
21
- this.data = data;
22
- }
23
- get = (key) => Reflect.getMetadata(key, this.data);
24
- set = (key, value) => {
25
- Reflect.defineMetadata(key, value, this.data);
26
- return value;
27
- };
28
- entries = () => entries(this.subject);
29
- parse = (f, options = {}) => {
30
- const { initial = {}, skipUndefined = false } = options;
31
- return this.entries().reduce((a, [k, val]) => use(f(val), (v) => isDefined(v) || !skipUndefined ? on(a, (a2) => a2[k] = v) : a), initial);
32
- };
33
- properties = (key) => toList([...Object.getOwnPropertyNames(this.subject), ...Object.getOwnPropertyNames(Object.getPrototypeOf(this.subject))]).map((p) => this.property(p)).filter((p) => key ? p.get(key) : p);
34
- keys = (key) => this.properties().map((p) => p.get(key)).reduce((list, u) => u ? list.add(u) : list, toList());
35
- values = () => values(this.subject);
36
- property = (property) => new PropertyMeta(this.subject, property);
37
- };
38
- var PropertyMeta = class {
39
- constructor(subject, property, data = Reflect.getMetadata(property, subject)) {
40
- this.subject = subject;
41
- this.property = property;
42
- this.data = data;
43
- }
44
- get value() {
45
- return this.subject[this.property];
46
- }
47
- get = (key) => isDefined(this.data) && isDefined(this.data[key]) ? this.data[key] : void 0;
48
- set = (key, value) => {
49
- Reflect.defineMetadata(this.property, { ...this.data, [key]: value }, this.subject);
50
- return value;
51
- };
52
- };
53
- var meta = (subject) => new ClassMeta(subject ?? {});
54
-
55
- export {
56
- meta
57
- };
58
- //# sourceMappingURL=chunk-FECVT2OY.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/types/Meta.ts"],"sourcesContent":["import 'reflect-metadata';\nimport { List, toList } from './List';\nimport { isDefined } from './Is';\nimport { on, use } from './Constructor';\nimport { Optional } from './Types';\nimport { Entry, entries, values } from './Object';\n\ntype MetaParseOptions = { initial?: any; skipUndefined?: boolean };\n\nclass ClassMeta {\n constructor(\n readonly subject: any,\n private readonly data: any = (subject.prototype ?? subject).constructor\n ) {}\n\n get = <T>(key: string): T => Reflect.getMetadata(key, this.data) as T;\n\n set = <T>(key: string, value: T): T => {\n Reflect.defineMetadata(key, value, this.data);\n return value;\n };\n\n entries = <T = unknown>(): List<Entry<T>> => entries<T>(this.subject);\n\n parse = <Out, Value>(f: (v: Value) => Out, options: MetaParseOptions = {}): Record<string, Out> => {\n const { initial = {}, skipUndefined = false } = options;\n return this.entries<Value>().reduce((a, [k, val]) => use(f(val), v => (isDefined(v) || !skipUndefined ? on(a, a => (a[k] = v)) : a)), initial);\n };\n\n properties = (key?: string): List<PropertyMeta> =>\n toList([...Object.getOwnPropertyNames(this.subject), ...Object.getOwnPropertyNames(Object.getPrototypeOf(this.subject))])\n .map(p => this.property(p))\n .filter(p => (key ? p.get(key) : p));\n\n keys = <T = any>(key: string): List<T> =>\n this.properties()\n .map(p => p.get<T>(key))\n .reduce((list, u) => (u ? list.add(u) : list), toList<T>());\n\n values = <T = unknown>(): List<T> => values<T>(this.subject);\n\n property = (property: string | symbol): PropertyMeta => new PropertyMeta(this.subject, property);\n}\n\nclass PropertyMeta {\n constructor(\n readonly subject: any,\n readonly property: string | symbol,\n private readonly data = Reflect.getMetadata(property, subject)\n ) {}\n\n get value(): any {\n return this.subject[this.property];\n }\n\n get = <T>(key: string): Optional<T> => (isDefined(this.data) && isDefined(this.data[key]) ? (this.data[key] as T) : undefined);\n\n set = <T>(key: string, value: T): T => {\n Reflect.defineMetadata(this.property, { ...this.data, [key]: value }, this.subject);\n return value;\n };\n}\n\nexport const meta = (subject: unknown): ClassMeta => new ClassMeta(subject ?? {});\n"],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAO;AASP,IAAM,YAAN,MAAgB;AAAA,EACd,YACW,SACQ,QAAa,QAAQ,aAAa,SAAS,aAC5D;AAFS;AACQ;AAAA,EAChB;AAAA,EAEH,MAAM,CAAI,QAAmB,QAAQ,YAAY,KAAK,KAAK,IAAI;AAAA,EAE/D,MAAM,CAAI,KAAa,UAAgB;AACrC,YAAQ,eAAe,KAAK,OAAO,KAAK,IAAI;AAC5C,WAAO;AAAA,EACT;AAAA,EAEA,UAAU,MAAmC,QAAW,KAAK,OAAO;AAAA,EAEpE,QAAQ,CAAa,GAAsB,UAA4B,CAAC,MAA2B;AACjG,UAAM,EAAE,UAAU,CAAC,GAAG,gBAAgB,MAAM,IAAI;AAChD,WAAO,KAAK,QAAe,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,MAAM,IAAI,EAAE,GAAG,GAAG,OAAM,UAAU,CAAC,KAAK,CAAC,gBAAgB,GAAG,GAAG,CAAAA,OAAMA,GAAE,CAAC,IAAI,CAAE,IAAI,CAAE,GAAG,OAAO;AAAA,EAC/I;AAAA,EAEA,aAAa,CAAC,QACZ,OAAO,CAAC,GAAG,OAAO,oBAAoB,KAAK,OAAO,GAAG,GAAG,OAAO,oBAAoB,OAAO,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,EACrH,IAAI,OAAK,KAAK,SAAS,CAAC,CAAC,EACzB,OAAO,OAAM,MAAM,EAAE,IAAI,GAAG,IAAI,CAAE;AAAA,EAEvC,OAAO,CAAU,QACf,KAAK,WAAW,EACb,IAAI,OAAK,EAAE,IAAO,GAAG,CAAC,EACtB,OAAO,CAAC,MAAM,MAAO,IAAI,KAAK,IAAI,CAAC,IAAI,MAAO,OAAU,CAAC;AAAA,EAE9D,SAAS,MAA4B,OAAU,KAAK,OAAO;AAAA,EAE3D,WAAW,CAAC,aAA4C,IAAI,aAAa,KAAK,SAAS,QAAQ;AACjG;AAEA,IAAM,eAAN,MAAmB;AAAA,EACjB,YACW,SACA,UACQ,OAAO,QAAQ,YAAY,UAAU,OAAO,GAC7D;AAHS;AACA;AACQ;AAAA,EAChB;AAAA,EAEH,IAAI,QAAa;AACf,WAAO,KAAK,QAAQ,KAAK,QAAQ;AAAA,EACnC;AAAA,EAEA,MAAM,CAAI,QAA8B,UAAU,KAAK,IAAI,KAAK,UAAU,KAAK,KAAK,GAAG,CAAC,IAAK,KAAK,KAAK,GAAG,IAAU;AAAA,EAEpH,MAAM,CAAI,KAAa,UAAgB;AACrC,YAAQ,eAAe,KAAK,UAAU,EAAE,GAAG,KAAK,MAAM,CAAC,GAAG,GAAG,MAAM,GAAG,KAAK,OAAO;AAClF,WAAO;AAAA,EACT;AACF;AAEO,IAAM,OAAO,CAAC,YAAgC,IAAI,UAAU,WAAW,CAAC,CAAC;","names":["a"]}
@@ -1,37 +0,0 @@
1
- import {
2
- ifDefined,
3
- toList
4
- } from "./chunk-MQ6KZAFL.mjs";
5
-
6
- // src/types/Object.ts
7
- function entries(subject) {
8
- return ifDefined(
9
- subject,
10
- () => toList([...Object.entries(subject), ...Object.entries(Object.getPrototypeOf(subject) ?? {})]),
11
- () => toList()
12
- );
13
- }
14
- function values(subject) {
15
- return toList([...Object.values(subject), ...Object.values(Object.getPrototypeOf(subject) ?? {})]);
16
- }
17
- function keys(subject) {
18
- return toList([...Object.keys(subject), ...Object.keys(Object.getPrototypeOf(subject) ?? {})]);
19
- }
20
- function extractKeys(obj, keys2) {
21
- return keys2.filter((k) => k in obj).reduce(
22
- (acc, key) => {
23
- acc.keys[key] = obj[key];
24
- delete acc[key];
25
- return acc;
26
- },
27
- { keys: {}, ...obj }
28
- );
29
- }
30
-
31
- export {
32
- entries,
33
- values,
34
- keys,
35
- extractKeys
36
- };
37
- //# sourceMappingURL=chunk-GRMWYEPU.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/types/Object.ts"],"sourcesContent":["import { List, toList } from './List';\nimport { ifDefined } from '../utils/If';\n\nexport type Entry<T = unknown> = [key: string, value: T];\n\nexport function entries<T = unknown>(subject: { [p: string]: T } | ArrayLike<T>): List<Entry<T>> {\n return ifDefined(\n subject,\n () => toList<Entry<T>>([...Object.entries(subject), ...Object.entries(Object.getPrototypeOf(subject) ?? {})] as Entry<T>[]),\n () => toList<Entry<T>>()\n );\n}\n\nexport function values<T = unknown>(subject: { [p: string]: T } | ArrayLike<T>): List<T> {\n return toList([...Object.values<T>(subject), ...Object.values<T>(Object.getPrototypeOf(subject) ?? {})]);\n}\n\nexport function keys<T = unknown>(subject: { [p: string]: T } | ArrayLike<T>): List<string> {\n return toList([...Object.keys(subject), ...Object.keys(Object.getPrototypeOf(subject) ?? {})]);\n}\n\nexport function extractKeys<T extends Record<string | number, unknown>, K extends keyof T>(\n obj: T,\n keys: K[] | readonly (keyof T)[]\n): {\n keys: Pick<T, K>;\n} & Omit<T, K> {\n return keys\n .filter((k): k is K => k in obj)\n .reduce(\n (acc, key) => {\n (acc.keys as T)[key] = obj[key];\n delete acc[key];\n return acc;\n },\n { keys: {} as Pick<T, K>, ...obj }\n );\n}\n"],"mappings":";;;;;;AAKO,SAAS,QAAqB,SAA4D;AAC/F,SAAO;AAAA,IACL;AAAA,IACA,MAAM,OAAiB,CAAC,GAAG,OAAO,QAAQ,OAAO,GAAG,GAAG,OAAO,QAAQ,OAAO,eAAe,OAAO,KAAK,CAAC,CAAC,CAAC,CAAe;AAAA,IAC1H,MAAM,OAAiB;AAAA,EACzB;AACF;AAEO,SAAS,OAAoB,SAAqD;AACvF,SAAO,OAAO,CAAC,GAAG,OAAO,OAAU,OAAO,GAAG,GAAG,OAAO,OAAU,OAAO,eAAe,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AACzG;AAEO,SAAS,KAAkB,SAA0D;AAC1F,SAAO,OAAO,CAAC,GAAG,OAAO,KAAK,OAAO,GAAG,GAAG,OAAO,KAAK,OAAO,eAAe,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/F;AAEO,SAAS,YACd,KACAA,OAGa;AACb,SAAOA,MACJ,OAAO,CAAC,MAAc,KAAK,GAAG,EAC9B;AAAA,IACC,CAAC,KAAK,QAAQ;AACZ,MAAC,IAAI,KAAW,GAAG,IAAI,IAAI,GAAG;AAC9B,aAAO,IAAI,GAAG;AACd,aAAO;AAAA,IACT;AAAA,IACA,EAAE,MAAM,CAAC,GAAiB,GAAG,IAAI;AAAA,EACnC;AACJ;","names":["keys"]}
@@ -1,54 +0,0 @@
1
- import {
2
- keys,
3
- values
4
- } from "./chunk-GRMWYEPU.mjs";
5
- import {
6
- toList
7
- } from "./chunk-MQ6KZAFL.mjs";
8
- import {
9
- toArray
10
- } from "./chunk-QCPWEAAJ.mjs";
11
- import {
12
- asString
13
- } from "./chunk-4Q6IHSAU.mjs";
14
- import {
15
- on,
16
- use
17
- } from "./chunk-QK5XGRSM.mjs";
18
-
19
- // src/utils/Promise.ts
20
- var resolve = (subject) => Promise.resolve(subject);
21
- var reject = (e) => Promise.reject(e);
22
- var tuple = {
23
- 2: (first, second) => Promise.all([first, second]),
24
- 3: (first, second, third) => Promise.all([first, second, third]),
25
- 4: (first, second, third, forth) => Promise.all([first, second, third, forth]),
26
- 5: (first, second, third, forth, fifth) => Promise.all([first, second, third, forth, fifth]),
27
- all: (first, second) => Promise.all([first, Promise.all(second)]),
28
- spread: (first, ...second) => Promise.all([first, Promise.all(toArray(second))]),
29
- list: (list) => Promise.all([...list]).then(toList),
30
- settled: (list) => Promise.allSettled([...list]).then((rs) => ({
31
- fulfilled: toList(...rs.filter((r) => r.status === "fulfilled").map((r) => r.value)),
32
- rejected: toList(...rs.filter((r) => r.status === "rejected").map((r) => asString(r.reason)))
33
- })),
34
- object: (obj) => use(keys(obj), (ks) => tuple.list(values(obj)).then((vs) => vs.reduce((acc, v, i) => on(acc, (a) => a[ks[i]] = v), {})))
35
- };
36
- var tuple2 = tuple[2];
37
- var tuple3 = tuple[3];
38
- var tuple4 = tuple[4];
39
- var tuple5 = tuple[5];
40
- var tupleO = tuple.object;
41
- var settled = tuple.settled;
42
-
43
- export {
44
- resolve,
45
- reject,
46
- tuple,
47
- tuple2,
48
- tuple3,
49
- tuple4,
50
- tuple5,
51
- tupleO,
52
- settled
53
- };
54
- //# sourceMappingURL=chunk-HNW64DUZ.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/Promise.ts"],"sourcesContent":["import { toArray } from '../types/Array';\nimport { ErrorOrigin } from '../types/ErrorOrigin';\nimport { List, toList } from '../types/List';\nimport { asString } from '../types/Text';\nimport { on, use } from '../types/Constructor';\nimport { keys, values } from '../types/Object';\n\ntype Pro<A> = A | PromiseLike<A>;\ntype Aw<A> = Awaited<A>;\n\nexport const resolve = <S = unknown>(subject: S | PromiseLike<S>): Promise<S> => Promise.resolve(subject);\nexport const reject = <S = never>(e: ErrorOrigin): Promise<S> => Promise.reject(e);\n\nexport const tuple = {\n 2: <F, S>(first: Pro<F>, second: Pro<S>): Promise<[Aw<F>, Aw<S>]> => Promise.all([first, second]),\n 3: <F, S, T>(first: Pro<F>, second: Pro<S>, third: Pro<T>): Promise<[Aw<F>, Aw<S>, Aw<T>]> => Promise.all([first, second, third]),\n 4: <F, S, T, Fo>(first: Pro<F>, second: Pro<S>, third: Pro<T>, forth: Pro<Fo>): Promise<[Aw<F>, Aw<S>, Aw<T>, Aw<Fo>]> =>\n Promise.all([first, second, third, forth]),\n 5: <F, S, T, Fo, Fi>(first: Pro<F>, second: Pro<S>, third: Pro<T>, forth: Pro<Fo>, fifth: Pro<Fi>): Promise<[Aw<F>, Aw<S>, Aw<T>, Aw<Fo>, Aw<Fi>]> =>\n Promise.all([first, second, third, forth, fifth]),\n all: <F, S>(first: Pro<F>, second: Pro<S>[]): Promise<[Aw<F>, Aw<S[]>]> => Promise.all([first, Promise.all(second)]),\n spread: <F, S>(first: Pro<F>, ...second: Pro<S>[]): Promise<[Aw<F>, Aw<S[]>]> => Promise.all([first, Promise.all(toArray(second))]),\n list: <T>(list: Pro<T>[]): Promise<List<Aw<T>>> => Promise.all([...list]).then(toList),\n settled: <T>(list: Pro<T>[]): Promise<{ fulfilled: List<Aw<T>>; rejected: List<string> }> =>\n Promise.allSettled([...list]).then(rs => ({\n fulfilled: toList(...rs.filter(r => r.status === 'fulfilled').map(r => r.value)),\n rejected: toList(...rs.filter(r => r.status === 'rejected').map(r => asString(r.reason))),\n })),\n object: <T extends Record<string, unknown>>(obj: T): Promise<{ [K in keyof T]: Aw<T[K]> }> =>\n use(keys(obj), ks => tuple.list(values(obj)).then(vs => vs.reduce((acc: any, v, i) => on(acc, a => (a[ks[i]] = v)), {}) as { [K in keyof T]: Aw<T[K]> })),\n};\n\nexport const tuple2 = tuple[2];\nexport const tuple3 = tuple[3];\nexport const tuple4 = tuple[4];\nexport const tuple5 = tuple[5];\nexport const tupleO = tuple.object;\nexport const settled = tuple.settled;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAUO,IAAM,UAAU,CAAc,YAA4C,QAAQ,QAAQ,OAAO;AACjG,IAAM,SAAS,CAAY,MAA+B,QAAQ,OAAO,CAAC;AAE1E,IAAM,QAAQ;AAAA,EACnB,GAAG,CAAO,OAAe,WAA4C,QAAQ,IAAI,CAAC,OAAO,MAAM,CAAC;AAAA,EAChG,GAAG,CAAU,OAAe,QAAgB,UAAkD,QAAQ,IAAI,CAAC,OAAO,QAAQ,KAAK,CAAC;AAAA,EAChI,GAAG,CAAc,OAAe,QAAgB,OAAe,UAC7D,QAAQ,IAAI,CAAC,OAAO,QAAQ,OAAO,KAAK,CAAC;AAAA,EAC3C,GAAG,CAAkB,OAAe,QAAgB,OAAe,OAAgB,UACjF,QAAQ,IAAI,CAAC,OAAO,QAAQ,OAAO,OAAO,KAAK,CAAC;AAAA,EAClD,KAAK,CAAO,OAAe,WAAgD,QAAQ,IAAI,CAAC,OAAO,QAAQ,IAAI,MAAM,CAAC,CAAC;AAAA,EACnH,QAAQ,CAAO,UAAkB,WAAgD,QAAQ,IAAI,CAAC,OAAO,QAAQ,IAAI,QAAQ,MAAM,CAAC,CAAC,CAAC;AAAA,EAClI,MAAM,CAAI,SAAyC,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,MAAM;AAAA,EACrF,SAAS,CAAI,SACX,QAAQ,WAAW,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,SAAO;AAAA,IACxC,WAAW,OAAO,GAAG,GAAG,OAAO,OAAK,EAAE,WAAW,WAAW,EAAE,IAAI,OAAK,EAAE,KAAK,CAAC;AAAA,IAC/E,UAAU,OAAO,GAAG,GAAG,OAAO,OAAK,EAAE,WAAW,UAAU,EAAE,IAAI,OAAK,SAAS,EAAE,MAAM,CAAC,CAAC;AAAA,EAC1F,EAAE;AAAA,EACJ,QAAQ,CAAoC,QAC1C,IAAI,KAAK,GAAG,GAAG,QAAM,MAAM,KAAK,OAAO,GAAG,CAAC,EAAE,KAAK,QAAM,GAAG,OAAO,CAAC,KAAU,GAAG,MAAM,GAAG,KAAK,OAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAE,GAAG,CAAC,CAAC,CAAiC,CAAC;AAC5J;AAEO,IAAM,SAAS,MAAM,CAAC;AACtB,IAAM,SAAS,MAAM,CAAC;AACtB,IAAM,SAAS,MAAM,CAAC;AACtB,IAAM,SAAS,MAAM,CAAC;AACtB,IAAM,SAAS,MAAM;AACrB,IAAM,UAAU,MAAM;","names":[]}