@bifravst/aws-cdk-lambda-helpers 4.0.96 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (744) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +16 -0
  3. package/dist/cdk/TestApp.d.ts +5 -0
  4. package/dist/cdk/TestApp.js +12 -0
  5. package/dist/cdk/TestStack.d.ts +14 -0
  6. package/dist/cdk/TestStack.js +44 -0
  7. package/dist/cdk/baseLayer.d.ts +2 -0
  8. package/dist/cdk/baseLayer.js +7 -0
  9. package/dist/cdk/e2e.js +11 -0
  10. package/dist/cdk/lambda-updated.d.ts +2 -0
  11. package/dist/cdk/lambda-updated.js +4 -0
  12. package/dist/cdk/lambda-with-subpath.d.ts +2 -0
  13. package/dist/cdk/lambda-with-subpath.js +7 -0
  14. package/dist/cdk/lambda.d.ts +2 -0
  15. package/dist/cdk/lambda.js +4 -0
  16. package/dist/cdk/packTestLambdas.d.ts +6 -0
  17. package/dist/cdk/packTestLambdas.js +14 -0
  18. package/dist/cdk/update-lambdas.js +21 -0
  19. package/dist/e2e-updated.spec.js +17 -0
  20. package/dist/e2e.spec.js +27 -0
  21. package/dist/lambdas/test.zip +0 -0
  22. package/dist/lambdas/testAliasImports.zip +0 -0
  23. package/dist/layers/baseLayer/nodejs/node_modules/.package-lock.json +21 -0
  24. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Alt/package.json +6 -0
  25. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Alternative/package.json +6 -0
  26. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Applicative/package.json +6 -0
  27. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Apply/package.json +6 -0
  28. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Array/package.json +6 -0
  29. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Bifunctor/package.json +6 -0
  30. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/BooleanAlgebra/package.json +6 -0
  31. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Bounded/package.json +6 -0
  32. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/BoundedDistributiveLattice/package.json +6 -0
  33. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/BoundedJoinSemilattice/package.json +6 -0
  34. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/BoundedLattice/package.json +6 -0
  35. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/BoundedMeetSemilattice/package.json +6 -0
  36. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/CHANGELOG.md +3375 -0
  37. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Category/package.json +6 -0
  38. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Chain/package.json +6 -0
  39. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/ChainRec/package.json +6 -0
  40. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Choice/package.json +6 -0
  41. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Comonad/package.json +6 -0
  42. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Compactable/package.json +6 -0
  43. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Console/package.json +6 -0
  44. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Const/package.json +6 -0
  45. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Contravariant/package.json +6 -0
  46. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Date/package.json +6 -0
  47. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/DistributiveLattice/package.json +6 -0
  48. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Either/package.json +6 -0
  49. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/EitherT/package.json +6 -0
  50. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Endomorphism/package.json +6 -0
  51. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Eq/package.json +6 -0
  52. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Extend/package.json +6 -0
  53. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Field/package.json +6 -0
  54. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Filterable/package.json +6 -0
  55. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/FilterableWithIndex/package.json +6 -0
  56. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Foldable/package.json +6 -0
  57. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/FoldableWithIndex/package.json +6 -0
  58. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/FromEither/package.json +6 -0
  59. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/FromIO/package.json +6 -0
  60. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/FromReader/package.json +6 -0
  61. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/FromState/package.json +6 -0
  62. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/FromTask/package.json +6 -0
  63. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/FromThese/package.json +6 -0
  64. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Functor/package.json +6 -0
  65. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/FunctorWithIndex/package.json +6 -0
  66. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Group/package.json +6 -0
  67. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/HKT/package.json +6 -0
  68. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/HKT.d.ts +94 -0
  69. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/HeytingAlgebra/package.json +6 -0
  70. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/IO/package.json +6 -0
  71. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/IOEither/package.json +6 -0
  72. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/IOOption/package.json +6 -0
  73. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/IORef/package.json +6 -0
  74. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Identity/package.json +6 -0
  75. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Invariant/package.json +6 -0
  76. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/JoinSemilattice/package.json +6 -0
  77. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Json/package.json +6 -0
  78. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/LICENSE +21 -0
  79. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Lattice/package.json +6 -0
  80. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Magma/package.json +6 -0
  81. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Map/package.json +6 -0
  82. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/MeetSemilattice/package.json +6 -0
  83. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Monad/package.json +6 -0
  84. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/MonadIO/package.json +6 -0
  85. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/MonadTask/package.json +6 -0
  86. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/MonadThrow/package.json +6 -0
  87. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Monoid/package.json +6 -0
  88. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/NaturalTransformation/package.json +6 -0
  89. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/NonEmptyArray/package.json +6 -0
  90. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Option/package.json +6 -0
  91. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/OptionT/package.json +6 -0
  92. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Ord/package.json +6 -0
  93. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Ordering/package.json +6 -0
  94. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Pointed/package.json +6 -0
  95. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Predicate/package.json +6 -0
  96. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Profunctor/package.json +6 -0
  97. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/README.md +110 -0
  98. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Random/package.json +6 -0
  99. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Reader/package.json +6 -0
  100. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/ReaderEither/package.json +6 -0
  101. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/ReaderIO/package.json +6 -0
  102. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/ReaderT/package.json +6 -0
  103. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/ReaderTask/package.json +6 -0
  104. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/ReaderTaskEither/package.json +6 -0
  105. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/ReadonlyArray/package.json +6 -0
  106. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/ReadonlyMap/package.json +6 -0
  107. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/ReadonlyNonEmptyArray/package.json +6 -0
  108. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/ReadonlyRecord/package.json +6 -0
  109. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/ReadonlySet/package.json +6 -0
  110. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/ReadonlyTuple/package.json +6 -0
  111. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Record/package.json +6 -0
  112. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Refinement/package.json +6 -0
  113. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Ring/package.json +6 -0
  114. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Semigroup/package.json +6 -0
  115. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Semigroupoid/package.json +6 -0
  116. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Semiring/package.json +6 -0
  117. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Separated/package.json +6 -0
  118. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Set/package.json +6 -0
  119. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Show/package.json +6 -0
  120. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/State/package.json +6 -0
  121. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/StateReaderTaskEither/package.json +6 -0
  122. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/StateT/package.json +6 -0
  123. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Store/package.json +6 -0
  124. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Strong/package.json +6 -0
  125. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Task/package.json +6 -0
  126. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/TaskEither/package.json +6 -0
  127. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/TaskOption/package.json +6 -0
  128. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/TaskThese/package.json +6 -0
  129. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/These/package.json +6 -0
  130. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/TheseT/package.json +6 -0
  131. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Traced/package.json +6 -0
  132. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Traversable/package.json +6 -0
  133. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/TraversableWithIndex/package.json +6 -0
  134. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Tree/package.json +6 -0
  135. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Tuple/package.json +6 -0
  136. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Unfoldable/package.json +6 -0
  137. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/ValidationT/package.json +6 -0
  138. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Witherable/package.json +6 -0
  139. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Writer/package.json +6 -0
  140. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/WriterT/package.json +6 -0
  141. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/Zero/package.json +6 -0
  142. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/boolean/package.json +6 -0
  143. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Alt.d.ts +86 -0
  144. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Alt.js +3 -0
  145. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Alternative.d.ts +108 -0
  146. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Alternative.js +33 -0
  147. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Applicative.d.ts +267 -0
  148. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Applicative.js +39 -0
  149. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Apply.d.ts +658 -0
  150. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Apply.js +178 -0
  151. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Array.d.ts +2215 -0
  152. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Array.js +2517 -0
  153. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Bifunctor.d.ts +60 -0
  154. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/BooleanAlgebra.d.ts +43 -0
  155. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/BooleanAlgebra.js +78 -0
  156. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Bounded.d.ts +41 -0
  157. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Bounded.js +51 -0
  158. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/BoundedDistributiveLattice.d.ts +20 -0
  159. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/BoundedDistributiveLattice.js +17 -0
  160. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/BoundedJoinSemilattice.d.ts +15 -0
  161. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/BoundedLattice.d.ts +15 -0
  162. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/BoundedMeetSemilattice.d.ts +15 -0
  163. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Category.d.ts +33 -0
  164. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Category.js +1 -0
  165. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Chain.d.ts +172 -0
  166. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Chain.js +14 -0
  167. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ChainRec.d.ts +59 -0
  168. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ChainRec.js +10 -0
  169. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Choice.d.ts +174 -0
  170. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Choice.js +16 -0
  171. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Comonad.d.ts +54 -0
  172. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Comonad.js +1 -0
  173. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Compactable.d.ts +320 -0
  174. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Compactable.js +21 -0
  175. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Console.d.ts +20 -0
  176. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Console.js +32 -0
  177. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Const.d.ts +169 -0
  178. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Const.js +176 -0
  179. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Contravariant.d.ts +62 -0
  180. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Contravariant.js +1 -0
  181. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Date.d.ts +49 -0
  182. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Date.js +61 -0
  183. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/DistributiveLattice.d.ts +20 -0
  184. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/DistributiveLattice.js +14 -0
  185. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Either.d.ts +1354 -0
  186. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Either.js +1480 -0
  187. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/EitherT.d.ts +669 -0
  188. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/EitherT.js +137 -0
  189. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Endomorphism.d.ts +40 -0
  190. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Endomorphism.js +28 -0
  191. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Eq.d.ts +206 -0
  192. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Eq.js +214 -0
  193. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Extend.d.ts +54 -0
  194. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Extend.js +1 -0
  195. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Field.d.ts +36 -0
  196. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Field.js +43 -0
  197. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Filterable.d.ts +628 -0
  198. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Filterable.js +52 -0
  199. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FilterableWithIndex.d.ts +255 -0
  200. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FilterableWithIndex.js +1 -0
  201. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Foldable.d.ts +423 -0
  202. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Foldable.js +64 -0
  203. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FoldableWithIndex.d.ts +290 -0
  204. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FoldableWithIndex.js +49 -0
  205. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FromEither.d.ts +337 -0
  206. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FromEither.js +56 -0
  207. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FromIO.d.ts +152 -0
  208. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FromIO.js +25 -0
  209. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FromReader.d.ts +136 -0
  210. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FromReader.js +30 -0
  211. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FromState.d.ts +128 -0
  212. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FromState.js +21 -0
  213. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FromTask.d.ts +144 -0
  214. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FromTask.js +25 -0
  215. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FromThese.d.ts +73 -0
  216. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FromThese.js +9 -0
  217. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Functor.d.ts +452 -0
  218. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Functor.js +53 -0
  219. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FunctorWithIndex.d.ts +203 -0
  220. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/FunctorWithIndex.js +27 -0
  221. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Group.d.ts +15 -0
  222. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Group.js +1 -0
  223. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/HKT/index.js +6 -0
  224. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/HKT/package.json +3 -0
  225. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/HeytingAlgebra.d.ts +32 -0
  226. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/HeytingAlgebra.js +1 -0
  227. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/IO.d.ts +311 -0
  228. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/IO.js +340 -0
  229. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/IOEither.d.ts +1042 -0
  230. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/IOEither.js +1062 -0
  231. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/IOOption.d.ts +616 -0
  232. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/IOOption.js +626 -0
  233. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/IORef.d.ts +37 -0
  234. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/IORef.js +46 -0
  235. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Identity.d.ts +295 -0
  236. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Identity.js +340 -0
  237. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Invariant.d.ts +62 -0
  238. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Invariant.js +1 -0
  239. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/JoinSemilattice.d.ts +19 -0
  240. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/JoinSemilattice.js +13 -0
  241. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Json.d.ts +54 -0
  242. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Json.js +49 -0
  243. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Lattice.d.ts +15 -0
  244. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Lattice.js +1 -0
  245. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Magma.d.ts +58 -0
  246. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Magma.js +75 -0
  247. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Map.d.ts +421 -0
  248. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Map.js +750 -0
  249. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/MeetSemilattice.d.ts +19 -0
  250. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/MeetSemilattice.js +13 -0
  251. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Monad.d.ts +61 -0
  252. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Monad.js +1 -0
  253. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/MonadIO.d.ts +43 -0
  254. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/MonadIO.js +1 -0
  255. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/MonadTask.d.ts +43 -0
  256. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/MonadTask.js +1 -0
  257. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/MonadThrow.d.ts +61 -0
  258. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/MonadThrow.js +1 -0
  259. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Monoid.d.ts +268 -0
  260. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Monoid.js +278 -0
  261. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/NaturalTransformation.d.ts +132 -0
  262. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/NaturalTransformation.js +1 -0
  263. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/NonEmptyArray.d.ts +855 -0
  264. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/NonEmptyArray.js +1152 -0
  265. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Option.d.ts +1150 -0
  266. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Option.js +1224 -0
  267. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/OptionT.d.ts +551 -0
  268. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/OptionT.js +94 -0
  269. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Ord.d.ts +355 -0
  270. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Ord.js +429 -0
  271. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Ordering.d.ts +84 -0
  272. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Ordering.js +92 -0
  273. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Pointed.d.ts +62 -0
  274. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Pointed.js +1 -0
  275. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Predicate.d.ts +68 -0
  276. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Predicate.js +84 -0
  277. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Profunctor.d.ts +49 -0
  278. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Profunctor.js +1 -0
  279. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Random.d.ts +36 -0
  280. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Random.js +45 -0
  281. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Reader.d.ts +492 -0
  282. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Reader.js +535 -0
  283. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReaderEither.d.ts +1057 -0
  284. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReaderEither.js +956 -0
  285. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReaderIO.d.ts +499 -0
  286. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReaderIO.js +472 -0
  287. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReaderT.d.ts +298 -0
  288. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReaderT.js +42 -0
  289. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReaderTask.d.ts +787 -0
  290. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReaderTask.js +781 -0
  291. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReaderTaskEither.d.ts +1773 -0
  292. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReaderTaskEither.js +1605 -0
  293. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReadonlyArray.d.ts +1716 -0
  294. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReadonlyArray.js +2125 -0
  295. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReadonlyMap.d.ts +476 -0
  296. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReadonlyMap.js +959 -0
  297. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReadonlyNonEmptyArray.d.ts +933 -0
  298. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReadonlyNonEmptyArray.js +1224 -0
  299. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReadonlyRecord.d.ts +1385 -0
  300. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReadonlyRecord.js +1365 -0
  301. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReadonlySet.d.ts +258 -0
  302. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReadonlySet.js +448 -0
  303. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReadonlyTuple.d.ts +203 -0
  304. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ReadonlyTuple.js +329 -0
  305. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Record.d.ts +1334 -0
  306. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Record.js +1139 -0
  307. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Refinement.d.ts +55 -0
  308. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Refinement.js +73 -0
  309. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Ring.d.ts +53 -0
  310. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Ring.js +76 -0
  311. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Semigroup.d.ts +302 -0
  312. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Semigroup.js +373 -0
  313. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Semigroupoid.d.ts +54 -0
  314. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Semigroupoid.js +1 -0
  315. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Semiring.d.ts +18 -0
  316. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Semiring.js +35 -0
  317. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Separated.d.ts +91 -0
  318. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Separated.js +97 -0
  319. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Set.d.ts +231 -0
  320. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Set.js +387 -0
  321. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Show.d.ts +64 -0
  322. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Show.js +93 -0
  323. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/State.d.ts +291 -0
  324. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/State.js +322 -0
  325. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/StateReaderTaskEither.d.ts +1241 -0
  326. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/StateReaderTaskEither.js +1144 -0
  327. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/StateT.d.ts +313 -0
  328. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/StateT.js +69 -0
  329. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Store.d.ts +117 -0
  330. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Store.js +101 -0
  331. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Strong.d.ts +172 -0
  332. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Strong.js +18 -0
  333. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Task.d.ts +500 -0
  334. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Task.js +592 -0
  335. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/TaskEither.d.ts +1437 -0
  336. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/TaskEither.js +1464 -0
  337. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/TaskOption.d.ts +767 -0
  338. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/TaskOption.js +871 -0
  339. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/TaskThese.d.ts +401 -0
  340. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/TaskThese.js +457 -0
  341. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/These.d.ts +468 -0
  342. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/These.js +663 -0
  343. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/TheseT.d.ts +463 -0
  344. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/TheseT.js +91 -0
  345. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Traced.d.ts +85 -0
  346. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Traced.js +93 -0
  347. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Traversable.d.ts +550 -0
  348. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Traversable.js +38 -0
  349. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/TraversableWithIndex.d.ts +191 -0
  350. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/TraversableWithIndex.js +1 -0
  351. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Tree.d.ts +393 -0
  352. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Tree.js +482 -0
  353. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Tuple.d.ts +198 -0
  354. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Tuple.js +316 -0
  355. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Unfoldable.d.ts +65 -0
  356. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Unfoldable.js +1 -0
  357. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ValidationT.d.ts +73 -0
  358. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/ValidationT.js +21 -0
  359. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Witherable.d.ts +575 -0
  360. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Witherable.js +19 -0
  361. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Writer.d.ts +141 -0
  362. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Writer.js +192 -0
  363. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/WriterT.d.ts +147 -0
  364. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/WriterT.js +59 -0
  365. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Zero.d.ts +83 -0
  366. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Zero.js +3 -0
  367. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/boolean.d.ts +139 -0
  368. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/boolean.js +162 -0
  369. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/function.d.ts +579 -0
  370. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/function.js +345 -0
  371. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/index.d.ts +718 -0
  372. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/index.js +717 -0
  373. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/internal.d.ts +1 -0
  374. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/internal.js +120 -0
  375. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/number.d.ts +99 -0
  376. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/number.js +126 -0
  377. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/pipeable.d.ts +2275 -0
  378. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/pipeable.js +198 -0
  379. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/string.d.ts +226 -0
  380. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/string.js +266 -0
  381. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/struct.d.ts +42 -0
  382. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/struct.js +61 -0
  383. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/void.d.ts +15 -0
  384. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/void.js +17 -0
  385. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/function/package.json +6 -0
  386. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/internal/package.json +6 -0
  387. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Alt.d.ts +86 -0
  388. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Alt.js +6 -0
  389. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Alternative.d.ts +108 -0
  390. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Alternative.js +37 -0
  391. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Applicative.d.ts +267 -0
  392. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Applicative.js +43 -0
  393. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Apply.d.ts +658 -0
  394. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Apply.js +210 -0
  395. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Array.d.ts +2215 -0
  396. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Array.js +2621 -0
  397. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Bifunctor.d.ts +60 -0
  398. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Bifunctor.js +2 -0
  399. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/BooleanAlgebra.d.ts +43 -0
  400. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/BooleanAlgebra.js +82 -0
  401. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Bounded.d.ts +41 -0
  402. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Bounded.js +79 -0
  403. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/BoundedDistributiveLattice.d.ts +20 -0
  404. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/BoundedDistributiveLattice.js +20 -0
  405. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/BoundedJoinSemilattice.d.ts +15 -0
  406. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/BoundedJoinSemilattice.js +2 -0
  407. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/BoundedLattice.d.ts +15 -0
  408. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/BoundedLattice.js +2 -0
  409. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/BoundedMeetSemilattice.d.ts +15 -0
  410. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/BoundedMeetSemilattice.js +2 -0
  411. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Category.d.ts +33 -0
  412. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Category.js +2 -0
  413. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Chain.d.ts +172 -0
  414. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Chain.js +19 -0
  415. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ChainRec.d.ts +59 -0
  416. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ChainRec.js +14 -0
  417. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Choice.d.ts +174 -0
  418. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Choice.js +22 -0
  419. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Comonad.d.ts +54 -0
  420. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Comonad.js +2 -0
  421. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Compactable.d.ts +320 -0
  422. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Compactable.js +49 -0
  423. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Console.d.ts +20 -0
  424. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Console.js +39 -0
  425. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Const.d.ts +169 -0
  426. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Const.js +186 -0
  427. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Contravariant.d.ts +62 -0
  428. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Contravariant.js +2 -0
  429. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Date.d.ts +49 -0
  430. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Date.js +89 -0
  431. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/DistributiveLattice.d.ts +20 -0
  432. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/DistributiveLattice.js +17 -0
  433. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Either.d.ts +1354 -0
  434. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Either.js +1542 -0
  435. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/EitherT.d.ts +669 -0
  436. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/EitherT.js +189 -0
  437. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Endomorphism.d.ts +40 -0
  438. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Endomorphism.js +33 -0
  439. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Eq.d.ts +206 -0
  440. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Eq.js +223 -0
  441. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Extend.d.ts +54 -0
  442. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Extend.js +2 -0
  443. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Field.d.ts +36 -0
  444. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Field.js +48 -0
  445. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Filterable.d.ts +628 -0
  446. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Filterable.js +59 -0
  447. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FilterableWithIndex.d.ts +255 -0
  448. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FilterableWithIndex.js +2 -0
  449. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Foldable.d.ts +423 -0
  450. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Foldable.js +76 -0
  451. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FoldableWithIndex.d.ts +290 -0
  452. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FoldableWithIndex.js +55 -0
  453. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FromEither.d.ts +337 -0
  454. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FromEither.js +90 -0
  455. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FromIO.d.ts +152 -0
  456. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FromIO.js +31 -0
  457. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FromReader.d.ts +136 -0
  458. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FromReader.js +61 -0
  459. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FromState.d.ts +128 -0
  460. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FromState.js +52 -0
  461. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FromTask.d.ts +144 -0
  462. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FromTask.js +31 -0
  463. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FromThese.d.ts +73 -0
  464. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FromThese.js +12 -0
  465. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Functor.d.ts +452 -0
  466. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Functor.js +57 -0
  467. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FunctorWithIndex.d.ts +203 -0
  468. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/FunctorWithIndex.js +31 -0
  469. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Group.d.ts +15 -0
  470. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Group.js +2 -0
  471. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/HKT/index.js +7 -0
  472. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/HKT/package.json +3 -0
  473. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/HeytingAlgebra.d.ts +32 -0
  474. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/HeytingAlgebra.js +2 -0
  475. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/IO.d.ts +311 -0
  476. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/IO.js +366 -0
  477. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/IOEither.d.ts +1042 -0
  478. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/IOEither.js +1102 -0
  479. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/IOOption.d.ts +616 -0
  480. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/IOOption.js +650 -0
  481. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/IORef.d.ts +37 -0
  482. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/IORef.js +50 -0
  483. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Identity.d.ts +295 -0
  484. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Identity.js +370 -0
  485. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Invariant.d.ts +62 -0
  486. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Invariant.js +2 -0
  487. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/JoinSemilattice.d.ts +19 -0
  488. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/JoinSemilattice.js +14 -0
  489. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Json.d.ts +54 -0
  490. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Json.js +54 -0
  491. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Lattice.d.ts +15 -0
  492. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Lattice.js +2 -0
  493. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Magma.d.ts +58 -0
  494. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Magma.js +83 -0
  495. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Map.d.ts +421 -0
  496. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Map.js +814 -0
  497. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/MeetSemilattice.d.ts +19 -0
  498. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/MeetSemilattice.js +14 -0
  499. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Monad.d.ts +61 -0
  500. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Monad.js +2 -0
  501. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/MonadIO.d.ts +43 -0
  502. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/MonadIO.js +2 -0
  503. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/MonadTask.d.ts +43 -0
  504. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/MonadTask.js +2 -0
  505. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/MonadThrow.d.ts +61 -0
  506. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/MonadThrow.js +2 -0
  507. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Monoid.d.ts +268 -0
  508. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Monoid.js +311 -0
  509. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/NaturalTransformation.d.ts +132 -0
  510. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/NaturalTransformation.js +2 -0
  511. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/NonEmptyArray.d.ts +855 -0
  512. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/NonEmptyArray.js +1234 -0
  513. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Option.d.ts +1150 -0
  514. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Option.js +1286 -0
  515. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/OptionT.d.ts +551 -0
  516. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/OptionT.js +138 -0
  517. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Ord.d.ts +355 -0
  518. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Ord.js +448 -0
  519. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Ordering.d.ts +84 -0
  520. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Ordering.js +98 -0
  521. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Pointed.d.ts +62 -0
  522. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Pointed.js +2 -0
  523. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Predicate.d.ts +68 -0
  524. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Predicate.js +95 -0
  525. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Profunctor.d.ts +49 -0
  526. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Profunctor.js +2 -0
  527. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Random.d.ts +36 -0
  528. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Random.js +52 -0
  529. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Reader.d.ts +492 -0
  530. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Reader.js +572 -0
  531. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReaderEither.d.ts +1057 -0
  532. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReaderEither.js +988 -0
  533. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReaderIO.d.ts +499 -0
  534. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReaderIO.js +502 -0
  535. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReaderT.d.ts +298 -0
  536. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReaderT.js +52 -0
  537. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReaderTask.d.ts +787 -0
  538. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReaderTask.js +811 -0
  539. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReaderTaskEither.d.ts +1773 -0
  540. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReaderTaskEither.js +1654 -0
  541. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReadonlyArray.d.ts +1716 -0
  542. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReadonlyArray.js +2253 -0
  543. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReadonlyMap.d.ts +476 -0
  544. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReadonlyMap.js +1041 -0
  545. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReadonlyNonEmptyArray.d.ts +933 -0
  546. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReadonlyNonEmptyArray.js +1316 -0
  547. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReadonlyRecord.d.ts +1385 -0
  548. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReadonlyRecord.js +1470 -0
  549. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReadonlySet.d.ts +258 -0
  550. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReadonlySet.js +485 -0
  551. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReadonlyTuple.d.ts +203 -0
  552. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ReadonlyTuple.js +350 -0
  553. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Record.d.ts +1334 -0
  554. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Record.js +1201 -0
  555. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Refinement.d.ts +55 -0
  556. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Refinement.js +107 -0
  557. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Ring.d.ts +53 -0
  558. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Ring.js +81 -0
  559. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Semigroup.d.ts +302 -0
  560. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Semigroup.js +409 -0
  561. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Semigroupoid.d.ts +54 -0
  562. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Semigroupoid.js +2 -0
  563. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Semiring.d.ts +18 -0
  564. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Semiring.js +38 -0
  565. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Separated.d.ts +91 -0
  566. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Separated.js +106 -0
  567. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Set.d.ts +231 -0
  568. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Set.js +436 -0
  569. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Show.d.ts +64 -0
  570. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Show.js +121 -0
  571. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/State.d.ts +291 -0
  572. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/State.js +358 -0
  573. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/StateReaderTaskEither.d.ts +1241 -0
  574. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/StateReaderTaskEither.js +1195 -0
  575. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/StateT.d.ts +313 -0
  576. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/StateT.js +81 -0
  577. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Store.d.ts +117 -0
  578. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Store.js +111 -0
  579. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Strong.d.ts +172 -0
  580. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Strong.js +24 -0
  581. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Task.d.ts +500 -0
  582. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Task.js +627 -0
  583. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/TaskEither.d.ts +1437 -0
  584. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/TaskEither.js +1510 -0
  585. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/TaskOption.d.ts +767 -0
  586. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/TaskOption.js +902 -0
  587. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/TaskThese.d.ts +401 -0
  588. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/TaskThese.js +493 -0
  589. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/These.d.ts +468 -0
  590. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/These.js +724 -0
  591. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/TheseT.d.ts +463 -0
  592. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/TheseT.js +131 -0
  593. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Traced.d.ts +85 -0
  594. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Traced.js +102 -0
  595. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Traversable.d.ts +550 -0
  596. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Traversable.js +43 -0
  597. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/TraversableWithIndex.d.ts +191 -0
  598. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/TraversableWithIndex.js +2 -0
  599. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Tree.d.ts +393 -0
  600. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Tree.js +525 -0
  601. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Tuple.d.ts +198 -0
  602. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Tuple.js +355 -0
  603. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Unfoldable.d.ts +65 -0
  604. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Unfoldable.js +2 -0
  605. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ValidationT.d.ts +73 -0
  606. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/ValidationT.js +47 -0
  607. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Witherable.d.ts +575 -0
  608. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Witherable.js +47 -0
  609. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Writer.d.ts +141 -0
  610. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Writer.js +210 -0
  611. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/WriterT.d.ts +147 -0
  612. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/WriterT.js +62 -0
  613. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Zero.d.ts +83 -0
  614. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/Zero.js +6 -0
  615. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/boolean.d.ts +139 -0
  616. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/boolean.js +167 -0
  617. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/function.d.ts +579 -0
  618. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/function.js +369 -0
  619. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/index.d.ts +718 -0
  620. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/index.js +273 -0
  621. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/internal.d.ts +1 -0
  622. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/internal.js +143 -0
  623. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/number.d.ts +99 -0
  624. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/number.js +130 -0
  625. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/pipeable.d.ts +2275 -0
  626. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/pipeable.js +227 -0
  627. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/string.d.ts +226 -0
  628. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/string.js +283 -0
  629. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/struct.d.ts +42 -0
  630. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/struct.js +89 -0
  631. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/void.d.ts +15 -0
  632. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/lib/void.js +43 -0
  633. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/number/package.json +6 -0
  634. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/package.json +29 -0
  635. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/pipeable/package.json +6 -0
  636. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/string/package.json +6 -0
  637. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/struct/package.json +6 -0
  638. package/dist/layers/baseLayer/nodejs/node_modules/fp-ts/void/package.json +6 -0
  639. package/dist/layers/baseLayer/nodejs/node_modules/id128/CHANGES +20 -0
  640. package/dist/layers/baseLayer/nodejs/node_modules/id128/LICENSE +18 -0
  641. package/dist/layers/baseLayer/nodejs/node_modules/id128/README.md +853 -0
  642. package/dist/layers/baseLayer/nodejs/node_modules/id128/index.d.ts +167 -0
  643. package/dist/layers/baseLayer/nodejs/node_modules/id128/index.js +49 -0
  644. package/dist/layers/baseLayer/nodejs/node_modules/id128/package.json +68 -0
  645. package/dist/layers/baseLayer/nodejs/node_modules/id128/src/coder/base.js +53 -0
  646. package/dist/layers/baseLayer/nodejs/node_modules/id128/src/coder/crockford32.js +114 -0
  647. package/dist/layers/baseLayer/nodejs/node_modules/id128/src/coder/hex.js +63 -0
  648. package/dist/layers/baseLayer/nodejs/node_modules/id128/src/coder/uuid.js +77 -0
  649. package/dist/layers/baseLayer/nodejs/node_modules/id128/src/common/byte-array.js +26 -0
  650. package/dist/layers/baseLayer/nodejs/node_modules/id128/src/common/epoch-converter.js +32 -0
  651. package/dist/layers/baseLayer/nodejs/node_modules/id128/src/common/exception.js +18 -0
  652. package/dist/layers/baseLayer/nodejs/node_modules/id128/src/common/fake-machine.js +26 -0
  653. package/dist/layers/baseLayer/nodejs/node_modules/id128/src/common/machine.js +37 -0
  654. package/dist/layers/baseLayer/nodejs/node_modules/id128/src/common/random-bytes-browser.js +9 -0
  655. package/dist/layers/baseLayer/nodejs/node_modules/id128/src/common/random-bytes.js +17 -0
  656. package/dist/layers/baseLayer/nodejs/node_modules/id128/src/factory/id.js +96 -0
  657. package/dist/layers/baseLayer/nodejs/node_modules/id128/src/factory/versioned-id.js +72 -0
  658. package/dist/layers/baseLayer/nodejs/node_modules/id128/src/id/base.js +39 -0
  659. package/dist/layers/baseLayer/nodejs/node_modules/id128/src/id/ulid-monotonic.js +71 -0
  660. package/dist/layers/baseLayer/nodejs/node_modules/id128/src/id/ulid.js +64 -0
  661. package/dist/layers/baseLayer/nodejs/node_modules/id128/src/id/uuid-1.js +149 -0
  662. package/dist/layers/baseLayer/nodejs/node_modules/id128/src/id/uuid-4.js +24 -0
  663. package/dist/layers/baseLayer/nodejs/node_modules/id128/src/id/uuid-6.js +146 -0
  664. package/dist/layers/baseLayer/nodejs/node_modules/id128/src/id/uuid-nil.js +33 -0
  665. package/dist/layers/baseLayer/nodejs/node_modules/id128/src/id/uuid.js +58 -0
  666. package/dist/layers/baseLayer/nodejs/node_modules/id128/utils.js +35 -0
  667. package/dist/layers/baseLayer/nodejs/package-lock.json +6702 -0
  668. package/dist/layers/baseLayer/nodejs/package.json +1 -0
  669. package/dist/layers/baseLayer.zip +0 -0
  670. package/dist/package.json +132 -0
  671. package/{npm → dist/src}/IoTActionRole.js +10 -11
  672. package/{npm → dist/src}/LambdaLogGroup.js +11 -5
  673. package/{npm → dist/src}/LambdaSource.js +2 -2
  674. package/{npm → dist/src}/PackedLambdaFn.js +10 -8
  675. package/dist/src/checkSumOfFiles.spec.d.ts +1 -0
  676. package/dist/src/checkSumOfFiles.spec.js +16 -0
  677. package/dist/src/checksumOfFiles.js +40 -0
  678. package/{npm → dist/src}/commonParent.js +5 -3
  679. package/dist/src/commonParent.spec.d.ts +1 -0
  680. package/dist/src/commonParent.spec.js +20 -0
  681. package/{npm → dist/src}/findDependencies.js +49 -32
  682. package/dist/src/findDependencies.spec.d.ts +1 -0
  683. package/{npm → dist/src}/findDependencies.spec.js +8 -8
  684. package/dist/src/isTest.js +1 -0
  685. package/dist/src/isTest.spec.d.ts +1 -0
  686. package/{npm → dist/src}/isTest.spec.js +4 -4
  687. package/dist/src/module-folder-named-like-handler-bug.spec.d.ts +1 -0
  688. package/dist/src/module-folder-named-like-handler-bug.spec.js +19 -0
  689. package/{npm → dist/src}/packLambda.js +40 -43
  690. package/dist/src/packLambda.spec.d.ts +1 -0
  691. package/{npm → dist/src}/packLambda.spec.js +4 -7
  692. package/{npm → dist/src}/packLambdaFromPath.js +7 -9
  693. package/{npm → dist/src}/packLayer.js +29 -29
  694. package/dist/src/packLayer.spec.d.ts +1 -0
  695. package/{npm → dist/src}/packLayer.spec.js +3 -5
  696. package/dist/src/test/getFileFromZip.js +25 -0
  697. package/dist/src/test-data/resolve-paths/foo/1.d.ts +1 -0
  698. package/dist/src/test-data/resolve-paths/foo/1.js +1 -0
  699. package/dist/src/test-data/resolve-paths/foo/2.d.ts +1 -0
  700. package/dist/src/test-data/resolve-paths/foo/2.js +1 -0
  701. package/dist/src/test-data/resolve-paths/foo/index.d.ts +1 -0
  702. package/dist/src/test-data/resolve-paths/foo/index.js +1 -0
  703. package/dist/src/updateImports.js +1 -0
  704. package/dist/src/updateImports.spec.d.ts +1 -0
  705. package/{npm → dist/src}/updateImports.spec.js +3 -3
  706. package/dist/src/updateLambdaCode.js +75 -0
  707. package/package.json +37 -34
  708. package/npm/checkSumOfFiles.spec.js +0 -15
  709. package/npm/checksumOfFiles.js +0 -44
  710. package/npm/commonParent.spec.js +0 -22
  711. package/npm/isTest.js +0 -1
  712. package/npm/module-folder-named-like-handler-bug.spec.js +0 -19
  713. package/npm/updateImports.js +0 -1
  714. package/npm/updateLambdaCode.js +0 -75
  715. /package/{npm/checkSumOfFiles.spec.d.ts → dist/cdk/e2e.d.ts} +0 -0
  716. /package/{npm/commonParent.spec.d.ts → dist/cdk/update-lambdas.d.ts} +0 -0
  717. /package/{npm/findDependencies.spec.d.ts → dist/e2e-updated.spec.d.ts} +0 -0
  718. /package/{npm/isTest.spec.d.ts → dist/e2e.spec.d.ts} +0 -0
  719. /package/{npm/module-folder-named-like-handler-bug.spec.d.ts → dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/Bifunctor.js} +0 -0
  720. /package/{npm/packLambda.spec.d.ts → dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/BoundedJoinSemilattice.js} +0 -0
  721. /package/{npm/packLayer.spec.d.ts → dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/BoundedLattice.js} +0 -0
  722. /package/{npm/updateImports.spec.d.ts → dist/layers/baseLayer/nodejs/node_modules/fp-ts/es6/BoundedMeetSemilattice.js} +0 -0
  723. /package/{npm → dist/src}/IoTActionRole.d.ts +0 -0
  724. /package/{npm → dist/src}/LambdaLogGroup.d.ts +0 -0
  725. /package/{npm → dist/src}/LambdaSource.d.ts +0 -0
  726. /package/{npm → dist/src}/PackedLambdaFn.d.ts +0 -0
  727. /package/{npm → dist/src}/cdk.d.ts +0 -0
  728. /package/{npm → dist/src}/cdk.js +0 -0
  729. /package/{npm → dist/src}/checksumOfFiles.d.ts +0 -0
  730. /package/{npm → dist/src}/commonParent.d.ts +0 -0
  731. /package/{npm → dist/src}/findDependencies.d.ts +0 -0
  732. /package/{npm → dist/src}/isTest.d.ts +0 -0
  733. /package/{npm → dist/src}/lambda.d.ts +0 -0
  734. /package/{npm → dist/src}/lambda.js +0 -0
  735. /package/{npm → dist/src}/layer.d.ts +0 -0
  736. /package/{npm → dist/src}/layer.js +0 -0
  737. /package/{npm → dist/src}/packLambda.d.ts +0 -0
  738. /package/{npm → dist/src}/packLambdaFromPath.d.ts +0 -0
  739. /package/{npm → dist/src}/packLayer.d.ts +0 -0
  740. /package/{npm → dist/src}/test/getFileFromZip.d.ts +0 -0
  741. /package/{npm → dist/src}/updateImports.d.ts +0 -0
  742. /package/{npm → dist/src}/updateLambdaCode.d.ts +0 -0
  743. /package/{npm → dist/src}/util.d.ts +0 -0
  744. /package/{npm → dist/src}/util.js +0 -0
@@ -0,0 +1,2517 @@
1
+ import { apFirst as apFirst_, apS as apS_, apSecond as apSecond_ } from './Apply';
2
+ import { bind as bind_, chainFirst as chainFirst_ } from './Chain';
3
+ import { fromEitherK as fromEitherK_ } from './FromEither';
4
+ import { dual, identity, pipe } from './function';
5
+ import { bindTo as bindTo_, flap as flap_, let as let__ } from './Functor';
6
+ import * as _ from './internal';
7
+ import * as NEA from './NonEmptyArray';
8
+ import * as RA from './ReadonlyArray';
9
+ import { separated } from './Separated';
10
+ import { filterE as filterE_, wiltDefault, witherDefault } from './Witherable';
11
+ import { guard as guard_ } from './Zero';
12
+ // -------------------------------------------------------------------------------------
13
+ // refinements
14
+ // -------------------------------------------------------------------------------------
15
+ /**
16
+ * Test whether an array is empty
17
+ *
18
+ * @example
19
+ * import { isEmpty } from 'fp-ts/Array'
20
+ *
21
+ * assert.strictEqual(isEmpty([]), true)
22
+ * assert.strictEqual(isEmpty(['a']), false)
23
+ *
24
+ * @category refinements
25
+ * @since 2.0.0
26
+ */
27
+ export var isEmpty = function (as) { return as.length === 0; };
28
+ /**
29
+ * Test whether an array is non empty narrowing down the type to `NonEmptyArray<A>`
30
+ *
31
+ * @example
32
+ * import { isNonEmpty } from 'fp-ts/Array'
33
+ *
34
+ * assert.strictEqual(isNonEmpty([]), false)
35
+ * assert.strictEqual(isNonEmpty(['a']), true)
36
+ *
37
+ * @category refinements
38
+ * @since 2.0.0
39
+ */
40
+ export var isNonEmpty = NEA.isNonEmpty;
41
+ // -------------------------------------------------------------------------------------
42
+ // constructors
43
+ // -------------------------------------------------------------------------------------
44
+ /**
45
+ * Prepend an element to the front of a `Array`, creating a new `NonEmptyArray`.
46
+ *
47
+ * @example
48
+ * import { prepend } from 'fp-ts/Array'
49
+ * import { pipe } from 'fp-ts/function'
50
+ *
51
+ * assert.deepStrictEqual(pipe([2, 3, 4], prepend(1)), [1, 2, 3, 4])
52
+ *
53
+ * @since 2.10.0
54
+ */
55
+ export var prepend = NEA.prepend;
56
+ /**
57
+ * Less strict version of [`prepend`](#prepend).
58
+ *
59
+ * @example
60
+ * import { prependW } from 'fp-ts/Array'
61
+ * import { pipe } from 'fp-ts/function'
62
+ *
63
+ * assert.deepStrictEqual(pipe([2, 3, 4], prependW("a")), ["a", 2, 3, 4]);
64
+ *
65
+ * @since 2.11.0
66
+ */
67
+ export var prependW = NEA.prependW;
68
+ /**
69
+ * Append an element to the end of a `Array`, creating a new `NonEmptyArray`.
70
+ *
71
+ * @example
72
+ * import { append } from 'fp-ts/Array'
73
+ * import { pipe } from 'fp-ts/function'
74
+ *
75
+ * assert.deepStrictEqual(pipe([1, 2, 3], append(4)), [1, 2, 3, 4])
76
+ *
77
+ * @since 2.10.0
78
+ */
79
+ export var append = NEA.append;
80
+ /**
81
+ * Less strict version of [`append`](#append).
82
+ *
83
+ * @example
84
+ * import { appendW } from 'fp-ts/Array'
85
+ * import { pipe } from 'fp-ts/function'
86
+ *
87
+ * assert.deepStrictEqual(pipe([1, 2, 3], appendW("d")), [1, 2, 3, "d"]);
88
+ *
89
+ * @since 2.11.0
90
+ */
91
+ export var appendW = NEA.appendW;
92
+ /**
93
+ * Return a `Array` of length `n` with element `i` initialized with `f(i)`.
94
+ *
95
+ * **Note**. `n` is normalized to a non negative integer.
96
+ *
97
+ * @example
98
+ * import { makeBy } from 'fp-ts/Array'
99
+ *
100
+ * const double = (i: number): number => i * 2
101
+ * assert.deepStrictEqual(makeBy(5, double), [0, 2, 4, 6, 8])
102
+ * assert.deepStrictEqual(makeBy(-3, double), [])
103
+ * assert.deepStrictEqual(makeBy(4.32164, double), [0, 2, 4, 6])
104
+ *
105
+ * @category constructors
106
+ * @since 2.0.0
107
+ */
108
+ export var makeBy = function (n, f) { return (n <= 0 ? [] : NEA.makeBy(f)(n)); };
109
+ /**
110
+ * Create a `Array` containing a value repeated the specified number of times.
111
+ *
112
+ * **Note**. `n` is normalized to a non negative integer.
113
+ *
114
+ * @example
115
+ * import { replicate } from 'fp-ts/Array'
116
+ *
117
+ * assert.deepStrictEqual(replicate(3, 'a'), ['a', 'a', 'a'])
118
+ * assert.deepStrictEqual(replicate(-3, 'a'), [])
119
+ * assert.deepStrictEqual(replicate(2.985647, 'a'), ['a', 'a'])
120
+ *
121
+ * @category constructors
122
+ * @since 2.0.0
123
+ */
124
+ export var replicate = function (n, a) { return makeBy(n, function () { return a; }); };
125
+ export function fromPredicate(predicate) {
126
+ return function (a) { return (predicate(a) ? [a] : []); };
127
+ }
128
+ // -------------------------------------------------------------------------------------
129
+ // conversions
130
+ // -------------------------------------------------------------------------------------
131
+ /**
132
+ * Create an array from an `Option`. The resulting array will contain the content of the
133
+ * `Option` if it is `Some` and it will be empty if the `Option` is `None`.
134
+ *
135
+ * @example
136
+ * import { fromOption } from 'fp-ts/Array'
137
+ * import { option } from "fp-ts";
138
+ * import { pipe } from 'fp-ts/function'
139
+ *
140
+ * assert.deepStrictEqual(pipe(option.some("a"), fromOption),["a"])
141
+ * assert.deepStrictEqual(pipe(option.none, fromOption),[])
142
+ *
143
+ * @category conversions
144
+ * @since 2.11.0
145
+ */
146
+ export var fromOption = function (ma) { return (_.isNone(ma) ? [] : [ma.value]); };
147
+ /**
148
+ * Create an array from an `Either`. The resulting array will contain the content of the
149
+ * `Either` if it is `Right` and it will be empty if the `Either` is `Left`.
150
+ *
151
+ * @example
152
+ * import { fromEither } from 'fp-ts/Array'
153
+ * import { either } from "fp-ts";
154
+ * import { pipe } from 'fp-ts/function'
155
+ *
156
+ * assert.deepStrictEqual(pipe(either.right("r"), fromEither), ["r"]);
157
+ * assert.deepStrictEqual(pipe(either.left("l"), fromEither), []);
158
+ *
159
+ * @category conversions
160
+ * @since 2.11.0
161
+ */
162
+ export var fromEither = function (e) { return (_.isLeft(e) ? [] : [e.right]); };
163
+ /**
164
+ * Less strict version of [`match`](#match).
165
+ *
166
+ * The `W` suffix (short for **W**idening) means that the handler return types will be merged.
167
+ *
168
+ * @example
169
+ * import { matchW } from 'fp-ts/Array'
170
+ * import { pipe } from 'fp-ts/function'
171
+ *
172
+ * const matcherW = matchW(
173
+ * () => "No elements",
174
+ * (as) => as.length
175
+ * );
176
+ * assert.deepStrictEqual(pipe([1, 2, 3, 4], matcherW), 4);
177
+ * assert.deepStrictEqual(pipe([], matcherW), "No elements");
178
+ *
179
+ * @category pattern matching
180
+ * @since 2.11.0
181
+ */
182
+ export var matchW = function (onEmpty, onNonEmpty) {
183
+ return function (as) {
184
+ return isNonEmpty(as) ? onNonEmpty(as) : onEmpty();
185
+ };
186
+ };
187
+ /**
188
+ * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise
189
+ * it passes the array to `onNonEmpty` and returns the result.
190
+ *
191
+ * @example
192
+ * import { match } from 'fp-ts/Array'
193
+ * import { pipe } from 'fp-ts/function'
194
+ *
195
+ * const matcher = match(
196
+ * () => "No elements",
197
+ * (as) => `Found ${as.length} element(s)`
198
+ * );
199
+ * assert.deepStrictEqual(pipe([1, 2, 3, 4], matcher), "Found 4 element(s)");
200
+ * assert.deepStrictEqual(pipe([], matcher), "No elements");
201
+ *
202
+ * @category pattern matching
203
+ * @since 2.11.0
204
+ */
205
+ export var match = matchW;
206
+ /**
207
+ * Less strict version of [`matchLeft`](#matchleft). It will work when `onEmpty` and
208
+ * `onNonEmpty` have different return types.
209
+ *
210
+ * @example
211
+ * import { matchLeftW } from 'fp-ts/Array'
212
+ *
213
+ * const f = matchLeftW(
214
+ * () => 0,
215
+ * (head: string, tail: string[]) => `Found "${head}" followed by ${tail.length} elements`
216
+ * );
217
+ * assert.strictEqual(f(["a", "b", "c"]), 'Found "a" followed by 2 elements');
218
+ * assert.strictEqual(f([]), 0);
219
+ *
220
+ * @category pattern matching
221
+ * @since 2.11.0
222
+ */
223
+ export var matchLeftW = function (onEmpty, onNonEmpty) {
224
+ return function (as) {
225
+ return isNonEmpty(as) ? onNonEmpty(NEA.head(as), NEA.tail(as)) : onEmpty();
226
+ };
227
+ };
228
+ /**
229
+ * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise
230
+ * it passes the array to `onNonEmpty` broken into its first element and remaining elements.
231
+ *
232
+ * @example
233
+ * import { matchLeft } from 'fp-ts/Array'
234
+ *
235
+ * const len: <A>(as: Array<A>) => number = matchLeft(() => 0, (_, tail) => 1 + len(tail))
236
+ * assert.strictEqual(len([1, 2, 3]), 3)
237
+ *
238
+ * @category pattern matching
239
+ * @since 2.10.0
240
+ */
241
+ export var matchLeft = matchLeftW;
242
+ /**
243
+ * Alias of [`matchLeft`](#matchleft).
244
+ *
245
+ * @category pattern matching
246
+ * @since 2.0.0
247
+ */
248
+ export var foldLeft = matchLeft;
249
+ /**
250
+ * Less strict version of [`matchRight`](#matchright). It will work when `onEmpty` and
251
+ * `onNonEmpty` have different return types.
252
+ *
253
+ * @example
254
+ * import { matchRightW } from 'fp-ts/Array'
255
+ *
256
+ * const f = matchRightW(
257
+ * () => 0,
258
+ * (head: string[], tail: string) => `Found ${head.length} elements folllowed by "${tail}"`
259
+ * );
260
+ * assert.strictEqual(f(["a", "b", "c"]), 'Found 2 elements folllowed by "c"');
261
+ * assert.strictEqual(f([]), 0);
262
+ *
263
+ * @category pattern matching
264
+ * @since 2.11.0
265
+ */
266
+ export var matchRightW = function (onEmpty, onNonEmpty) {
267
+ return function (as) {
268
+ return isNonEmpty(as) ? onNonEmpty(NEA.init(as), NEA.last(as)) : onEmpty();
269
+ };
270
+ };
271
+ /**
272
+ * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise
273
+ * it passes the array to `onNonEmpty` broken into its initial elements and the last element.
274
+ *
275
+ * @example
276
+ * import { matchRight } from 'fp-ts/Array'
277
+ *
278
+ * const len: <A>(as: Array<A>) => number = matchRight(
279
+ * () => 0,
280
+ * (head, _) => 1 + len(head)
281
+ * );
282
+ * assert.strictEqual(len([1, 2, 3]), 3);
283
+ *
284
+ * @category pattern matching
285
+ * @since 2.10.0
286
+ */
287
+ export var matchRight = matchRightW;
288
+ /**
289
+ * Alias of [`matchRight`](#matchright).
290
+ *
291
+ * @category pattern matching
292
+ * @since 2.0.0
293
+ */
294
+ export var foldRight = matchRight;
295
+ // -------------------------------------------------------------------------------------
296
+ // combinators
297
+ // -------------------------------------------------------------------------------------
298
+ /**
299
+ * Same as [`chain`](#chain), but passing also the index to the iterating function.
300
+ *
301
+ * @example
302
+ * import { chainWithIndex, replicate } from 'fp-ts/Array'
303
+ * import { pipe } from 'fp-ts/function'
304
+ *
305
+ * const f = (index: number, x: string) => replicate(2, `${x}${index}`);
306
+ * assert.deepStrictEqual(pipe(["a", "b", "c"], chainWithIndex(f)), ["a0", "a0", "b1", "b1", "c2", "c2"]);
307
+ *
308
+ * @category sequencing
309
+ * @since 2.7.0
310
+ */
311
+ export var chainWithIndex = function (f) {
312
+ return function (as) {
313
+ var out = [];
314
+ for (var i = 0; i < as.length; i++) {
315
+ var bs = f(i, as[i]);
316
+ for (var j = 0; j < bs.length; j++) {
317
+ out.push(bs[j]);
318
+ }
319
+ }
320
+ return out;
321
+ };
322
+ };
323
+ /**
324
+ * Same as `reduce` but it carries over the intermediate steps
325
+ *
326
+ * @example
327
+ * import { scanLeft } from 'fp-ts/Array'
328
+ *
329
+ * assert.deepStrictEqual(scanLeft(10, (b, a: number) => b - a)([1, 2, 3]), [10, 9, 7, 4])
330
+ *
331
+ * @since 2.0.0
332
+ */
333
+ export var scanLeft = function (b, f) {
334
+ return function (as) {
335
+ var len = as.length;
336
+ var out = new Array(len + 1);
337
+ out[0] = b;
338
+ for (var i = 0; i < len; i++) {
339
+ out[i + 1] = f(out[i], as[i]);
340
+ }
341
+ return out;
342
+ };
343
+ };
344
+ /**
345
+ * Fold an array from the right, keeping all intermediate results instead of only the final result
346
+ *
347
+ * @example
348
+ * import { scanRight } from 'fp-ts/Array'
349
+ *
350
+ * assert.deepStrictEqual(scanRight(10, (a: number, b) => b - a)([1, 2, 3]), [4, 5, 7, 10])
351
+ *
352
+ * @since 2.0.0
353
+ */
354
+ export var scanRight = function (b, f) {
355
+ return function (as) {
356
+ var len = as.length;
357
+ var out = new Array(len + 1);
358
+ out[len] = b;
359
+ for (var i = len - 1; i >= 0; i--) {
360
+ out[i] = f(as[i], out[i + 1]);
361
+ }
362
+ return out;
363
+ };
364
+ };
365
+ /**
366
+ * Calculate the number of elements in a `Array`.
367
+ *
368
+ * @example
369
+ * import { size } from 'fp-ts/Array'
370
+ *
371
+ * assert.strictEqual(size(["a","b","c"]),3)
372
+ *
373
+ * @since 2.10.0
374
+ */
375
+ export var size = function (as) { return as.length; };
376
+ /**
377
+ * Test whether an array contains a particular index
378
+ *
379
+ * @example
380
+ * import { isOutOfBound } from 'fp-ts/Array'
381
+ *
382
+ * assert.strictEqual(isOutOfBound(1,["a","b","c"]),false)
383
+ * assert.strictEqual(isOutOfBound(-1,["a","b","c"]),true)
384
+ * assert.strictEqual(isOutOfBound(3,["a","b","c"]),true)
385
+ *
386
+ * @since 2.0.0
387
+ */
388
+ export var isOutOfBound = NEA.isOutOfBound;
389
+ // TODO: remove non-curried overloading in v3
390
+ /**
391
+ * This function provides a safe way to read a value at a particular index from an array.
392
+ * It returns a `none` if the index is out of bounds, and a `some` of the element if the
393
+ * index is valid.
394
+ *
395
+ * @example
396
+ * import { lookup } from 'fp-ts/Array'
397
+ * import { some, none } from 'fp-ts/Option'
398
+ * import { pipe } from 'fp-ts/function'
399
+ *
400
+ * assert.deepStrictEqual(pipe([1, 2, 3], lookup(1)), some(2))
401
+ * assert.deepStrictEqual(pipe([1, 2, 3], lookup(3)), none)
402
+ *
403
+ * @since 2.0.0
404
+ */
405
+ export var lookup = RA.lookup;
406
+ /**
407
+ * Get the first element in an array, or `None` if the array is empty
408
+ *
409
+ * @example
410
+ * import { head } from 'fp-ts/Array'
411
+ * import { some, none } from 'fp-ts/Option'
412
+ *
413
+ * assert.deepStrictEqual(head([1, 2, 3]), some(1))
414
+ * assert.deepStrictEqual(head([]), none)
415
+ *
416
+ * @since 2.0.0
417
+ */
418
+ export var head = RA.head;
419
+ /**
420
+ * Get the last element in an array, or `None` if the array is empty
421
+ *
422
+ * @example
423
+ * import { last } from 'fp-ts/Array'
424
+ * import { some, none } from 'fp-ts/Option'
425
+ *
426
+ * assert.deepStrictEqual(last([1, 2, 3]), some(3))
427
+ * assert.deepStrictEqual(last([]), none)
428
+ *
429
+ * @since 2.0.0
430
+ */
431
+ export var last = RA.last;
432
+ /**
433
+ * Get all but the first element of an array, creating a new array, or `None` if the array is empty
434
+ *
435
+ * @example
436
+ * import { tail } from 'fp-ts/Array'
437
+ * import { some, none } from 'fp-ts/Option'
438
+ *
439
+ * assert.deepStrictEqual(tail([1, 2, 3]), some([2, 3]))
440
+ * assert.deepStrictEqual(tail([]), none)
441
+ *
442
+ * @since 2.0.0
443
+ */
444
+ export var tail = function (as) { return (isNonEmpty(as) ? _.some(NEA.tail(as)) : _.none); };
445
+ /**
446
+ * Get all but the last element of an array, creating a new array, or `None` if the array is empty
447
+ *
448
+ * @example
449
+ * import { init } from 'fp-ts/Array'
450
+ * import { some, none } from 'fp-ts/Option'
451
+ *
452
+ * assert.deepStrictEqual(init([1, 2, 3]), some([1, 2]))
453
+ * assert.deepStrictEqual(init([]), none)
454
+ *
455
+ * @since 2.0.0
456
+ */
457
+ export var init = function (as) { return (isNonEmpty(as) ? _.some(NEA.init(as)) : _.none); };
458
+ /**
459
+ * Keep only a max number of elements from the start of an `Array`, creating a new `Array`.
460
+ *
461
+ * **Note**. `n` is normalized to a non negative integer.
462
+ *
463
+ * @example
464
+ * import { takeLeft } from 'fp-ts/Array'
465
+ *
466
+ * assert.deepStrictEqual(takeLeft(2)([1, 2, 3, 4, 5]), [1, 2]);
467
+ * assert.deepStrictEqual(takeLeft(7)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);
468
+ * assert.deepStrictEqual(takeLeft(0)([1, 2, 3, 4, 5]), []);
469
+ * assert.deepStrictEqual(takeLeft(-1)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);
470
+ *
471
+ * @since 2.0.0
472
+ */
473
+ export var takeLeft = function (n) {
474
+ return function (as) {
475
+ return isOutOfBound(n, as) ? copy(as) : as.slice(0, n);
476
+ };
477
+ };
478
+ /**
479
+ * Keep only a max number of elements from the end of an `Array`, creating a new `Array`.
480
+ *
481
+ * **Note**. `n` is normalized to a non negative integer.
482
+ *
483
+ * @example
484
+ * import { takeRight } from 'fp-ts/Array'
485
+ *
486
+ * assert.deepStrictEqual(takeRight(2)([1, 2, 3, 4, 5]), [4, 5]);
487
+ * assert.deepStrictEqual(takeRight(7)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);
488
+ * assert.deepStrictEqual(takeRight(0)([1, 2, 3, 4, 5]), []);
489
+ * assert.deepStrictEqual(takeRight(-1)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);
490
+ *
491
+ * @since 2.0.0
492
+ */
493
+ export var takeRight = function (n) {
494
+ return function (as) {
495
+ return isOutOfBound(n, as) ? copy(as) : n === 0 ? [] : as.slice(-n);
496
+ };
497
+ };
498
+ export function takeLeftWhile(predicate) {
499
+ return function (as) {
500
+ var out = [];
501
+ for (var _i = 0, as_1 = as; _i < as_1.length; _i++) {
502
+ var a = as_1[_i];
503
+ if (!predicate(a)) {
504
+ break;
505
+ }
506
+ out.push(a);
507
+ }
508
+ return out;
509
+ };
510
+ }
511
+ var spanLeftIndex = function (as, predicate) {
512
+ var l = as.length;
513
+ var i = 0;
514
+ for (; i < l; i++) {
515
+ if (!predicate(as[i])) {
516
+ break;
517
+ }
518
+ }
519
+ return i;
520
+ };
521
+ export function spanLeft(predicate) {
522
+ return function (as) {
523
+ var _a = splitAt(spanLeftIndex(as, predicate))(as), init = _a[0], rest = _a[1];
524
+ return { init: init, rest: rest };
525
+ };
526
+ }
527
+ /**
528
+ * Creates a new `Array` which is a copy of the input dropping a max number of elements from the start.
529
+ *
530
+ * **Note**. `n` is normalized to a non negative integer.
531
+ *
532
+ * @example
533
+ * import { dropLeft } from 'fp-ts/Array'
534
+ *
535
+ * assert.deepStrictEqual(dropLeft(2)([1, 2, 3]), [3]);
536
+ * assert.deepStrictEqual(dropLeft(5)([1, 2, 3]), []);
537
+ * assert.deepStrictEqual(dropLeft(0)([1, 2, 3]), [1, 2, 3]);
538
+ * assert.deepStrictEqual(dropLeft(-2)([1, 2, 3]), [1, 2, 3]);
539
+ *
540
+ * @since 2.0.0
541
+ */
542
+ export var dropLeft = function (n) {
543
+ return function (as) {
544
+ return n <= 0 || isEmpty(as) ? copy(as) : n >= as.length ? [] : as.slice(n, as.length);
545
+ };
546
+ };
547
+ /**
548
+ * Creates a new `Array` which is a copy of the input dropping a max number of elements from the end.
549
+ *
550
+ * **Note**. `n` is normalized to a non negative integer.
551
+ *
552
+ * @example
553
+ * import { dropRight } from 'fp-ts/Array'
554
+ *
555
+ * assert.deepStrictEqual(dropRight(2)([1, 2, 3]), [1]);
556
+ * assert.deepStrictEqual(dropRight(5)([1, 2, 3]), []);
557
+ * assert.deepStrictEqual(dropRight(0)([1, 2, 3]), [1, 2, 3]);
558
+ * assert.deepStrictEqual(dropRight(-2)([1, 2, 3]), [1, 2, 3]);
559
+ *
560
+ * @since 2.0.0
561
+ */
562
+ export var dropRight = function (n) {
563
+ return function (as) {
564
+ return n <= 0 || isEmpty(as) ? copy(as) : n >= as.length ? [] : as.slice(0, as.length - n);
565
+ };
566
+ };
567
+ export function dropLeftWhile(predicate) {
568
+ return function (as) { return as.slice(spanLeftIndex(as, predicate)); };
569
+ }
570
+ /**
571
+ * `findIndex` returns an `Option` containing the first index for which a predicate holds.
572
+ * It returns `None` if no element satisfies the predicate.
573
+ * Similar to [`findFirst`](#findFirst) but returning the index instead of the element.
574
+ *
575
+ * @example
576
+ * import { findIndex } from 'fp-ts/Array'
577
+ * import { some, none } from 'fp-ts/Option'
578
+ *
579
+ * assert.deepStrictEqual(findIndex((n: number) => n === 2)([1, 2, 3]), some(1))
580
+ * assert.deepStrictEqual(findIndex((n: number) => n === 2)([]), none)
581
+ *
582
+ * @since 2.0.0
583
+ */
584
+ export var findIndex = RA.findIndex;
585
+ export function findFirst(predicate) {
586
+ return RA.findFirst(predicate);
587
+ }
588
+ /**
589
+ * Given a selector function which takes an element and returns an option,
590
+ * this function applies the selector to each element of the array and
591
+ * returns the first `Some` result. Otherwise it returns `None`.
592
+ *
593
+ * @example
594
+ * import { findFirstMap } from 'fp-ts/Array'
595
+ * import { some, none } from 'fp-ts/Option'
596
+ *
597
+ * interface Person {
598
+ * readonly name: string;
599
+ * readonly age: number;
600
+ * }
601
+ *
602
+ * const persons: Array<Person> = [
603
+ * { name: "John", age: 16 },
604
+ * { name: "Mary", age: 45 },
605
+ * { name: "Joey", age: 28 },
606
+ * ];
607
+ *
608
+ * const nameOfPersonAbove18 = (p: Person) => (p.age <= 18 ? none : some(p.name));
609
+ * const nameOfPersonAbove70 = (p: Person) => (p.age <= 70 ? none : some(p.name));
610
+ * assert.deepStrictEqual(findFirstMap(nameOfPersonAbove18)(persons), some("Mary"));
611
+ * assert.deepStrictEqual(findFirstMap(nameOfPersonAbove70)(persons), none);
612
+ *
613
+ * @since 2.0.0
614
+ */
615
+ export var findFirstMap = RA.findFirstMap;
616
+ export function findLast(predicate) {
617
+ return RA.findLast(predicate);
618
+ }
619
+ /**
620
+ * Given a selector function which takes an element and returns an option,
621
+ * this function applies the selector to each element of the array starting from the
622
+ * end and returns the last `Some` result. Otherwise it returns `None`.
623
+ *
624
+ * @example
625
+ * import { findLastMap } from 'fp-ts/Array'
626
+ * import { some, none } from 'fp-ts/Option'
627
+ *
628
+ * interface Person {
629
+ * readonly name: string;
630
+ * readonly age: number;
631
+ * }
632
+ *
633
+ * const persons: Array<Person> = [
634
+ * { name: "John", age: 16 },
635
+ * { name: "Mary", age: 45 },
636
+ * { name: "Joey", age: 28 },
637
+ * ];
638
+ *
639
+ * const nameOfPersonAbove18 = (p: Person) => (p.age <= 18 ? none : some(p.name));
640
+ * const nameOfPersonAbove70 = (p: Person) => (p.age <= 70 ? none : some(p.name));
641
+ * assert.deepStrictEqual(findLastMap(nameOfPersonAbove18)(persons), some("Joey"));
642
+ * assert.deepStrictEqual(findLastMap(nameOfPersonAbove70)(persons), none);
643
+ *
644
+ * @since 2.0.0
645
+ */
646
+ export var findLastMap = RA.findLastMap;
647
+ /**
648
+ * Returns the index of the last element of the list which matches the predicate.
649
+ * It returns an `Option` containing the index or `None` if not found.
650
+ *
651
+ * @example
652
+ * import { findLastIndex } from 'fp-ts/Array'
653
+ * import { some, none } from 'fp-ts/Option'
654
+ *
655
+ * interface X {
656
+ * readonly a: number
657
+ * readonly b: number
658
+ * }
659
+ * const xs: Array<X> = [{ a: 1, b: 0 }, { a: 1, b: 1 }]
660
+ * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 1)(xs), some(1))
661
+ * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 4)(xs), none)
662
+ *
663
+ * @since 2.0.0
664
+ */
665
+ export var findLastIndex = RA.findLastIndex;
666
+ /**
667
+ * This function takes an array and makes a new array containing the same elements.
668
+ *
669
+ * @since 2.0.0
670
+ */
671
+ export var copy = function (as) { return as.slice(); };
672
+ /**
673
+ * Insert an element at the specified index, creating a new array,
674
+ * or returning `None` if the index is out of bounds.
675
+ *
676
+ * @example
677
+ * import { insertAt } from 'fp-ts/Array'
678
+ * import { some } from 'fp-ts/Option'
679
+ *
680
+ * assert.deepStrictEqual(insertAt(2, 5)([1, 2, 3, 4]), some([1, 2, 5, 3, 4]))
681
+ *
682
+ * @since 2.0.0
683
+ */
684
+ export var insertAt = function (i, a) {
685
+ return function (as) {
686
+ return i < 0 || i > as.length ? _.none : _.some(unsafeInsertAt(i, a, as));
687
+ };
688
+ };
689
+ /**
690
+ * Change the element at the specified index, creating a new array,
691
+ * or returning `None` if the index is out of bounds.
692
+ *
693
+ * @example
694
+ * import { updateAt } from 'fp-ts/Array'
695
+ * import { some, none } from 'fp-ts/Option'
696
+ *
697
+ * assert.deepStrictEqual(updateAt(1, 1)([1, 2, 3]), some([1, 1, 3]))
698
+ * assert.deepStrictEqual(updateAt(1, 1)([]), none)
699
+ *
700
+ * @since 2.0.0
701
+ */
702
+ export var updateAt = function (i, a) { return modifyAt(i, function () { return a; }); };
703
+ /**
704
+ * Delete the element at the specified index, creating a new array, or returning `None` if the index is out of bounds.
705
+ *
706
+ * @example
707
+ * import { deleteAt } from 'fp-ts/Array'
708
+ * import { some, none } from 'fp-ts/Option'
709
+ *
710
+ * assert.deepStrictEqual(deleteAt(0)([1, 2, 3]), some([2, 3]))
711
+ * assert.deepStrictEqual(deleteAt(1)([]), none)
712
+ *
713
+ * @since 2.0.0
714
+ */
715
+ export var deleteAt = function (i) {
716
+ return function (as) {
717
+ return isOutOfBound(i, as) ? _.none : _.some(unsafeDeleteAt(i, as));
718
+ };
719
+ };
720
+ /**
721
+ * Apply a function to the element at the specified index, creating a new array, or returning `None` if the index is out
722
+ * of bounds.
723
+ *
724
+ * @example
725
+ * import { modifyAt } from 'fp-ts/Array'
726
+ * import { some, none } from 'fp-ts/Option'
727
+ *
728
+ * const double = (x: number): number => x * 2
729
+ * assert.deepStrictEqual(modifyAt(1, double)([1, 2, 3]), some([1, 4, 3]))
730
+ * assert.deepStrictEqual(modifyAt(1, double)([]), none)
731
+ *
732
+ * @since 2.0.0
733
+ */
734
+ export var modifyAt = function (i, f) {
735
+ return function (as) {
736
+ return isOutOfBound(i, as) ? _.none : _.some(unsafeUpdateAt(i, f(as[i]), as));
737
+ };
738
+ };
739
+ /**
740
+ * Reverse an array, creating a new array
741
+ *
742
+ * @example
743
+ * import { reverse } from 'fp-ts/Array'
744
+ *
745
+ * assert.deepStrictEqual(reverse([1, 2, 3]), [3, 2, 1])
746
+ *
747
+ * @since 2.0.0
748
+ */
749
+ export var reverse = function (as) { return (isEmpty(as) ? [] : as.slice().reverse()); };
750
+ /**
751
+ * Takes an `Array` of `Either` and produces a new `Array` containing
752
+ * the values of all the `Right` elements in the same order.
753
+ *
754
+ * @example
755
+ * import { rights } from 'fp-ts/Array'
756
+ * import { right, left } from 'fp-ts/Either'
757
+ *
758
+ * assert.deepStrictEqual(rights([right(1), left('foo'), right(2)]), [1, 2])
759
+ *
760
+ * @since 2.0.0
761
+ */
762
+ export var rights = function (as) {
763
+ var r = [];
764
+ for (var i = 0; i < as.length; i++) {
765
+ var a = as[i];
766
+ if (a._tag === 'Right') {
767
+ r.push(a.right);
768
+ }
769
+ }
770
+ return r;
771
+ };
772
+ /**
773
+ * Takes an `Array` of `Either` and produces a new `Array` containing
774
+ * the values of all the `Left` elements in the same order.
775
+ *
776
+ * @example
777
+ * import { lefts } from 'fp-ts/Array'
778
+ * import { left, right } from 'fp-ts/Either'
779
+ *
780
+ * assert.deepStrictEqual(lefts([right(1), left('foo'), right(2)]), ['foo'])
781
+ *
782
+ * @since 2.0.0
783
+ */
784
+ export var lefts = function (as) {
785
+ var r = [];
786
+ for (var i = 0; i < as.length; i++) {
787
+ var a = as[i];
788
+ if (a._tag === 'Left') {
789
+ r.push(a.left);
790
+ }
791
+ }
792
+ return r;
793
+ };
794
+ /**
795
+ * Sort the elements of an array in increasing order, creating a new array
796
+ *
797
+ * @example
798
+ * import { sort } from 'fp-ts/Array'
799
+ * import * as N from 'fp-ts/number'
800
+ *
801
+ * assert.deepStrictEqual(sort(N.Ord)([3, 2, 1]), [1, 2, 3])
802
+ *
803
+ * @since 2.0.0
804
+ */
805
+ export var sort = function (O) {
806
+ return function (as) {
807
+ return as.length <= 1 ? copy(as) : as.slice().sort(O.compare);
808
+ };
809
+ };
810
+ /**
811
+ * Apply a function to pairs of elements at the same index in two arrays, collecting the results in a new array. If one
812
+ * input array is short, excess elements of the longer array are discarded.
813
+ *
814
+ * @example
815
+ * import { zipWith } from 'fp-ts/Array'
816
+ *
817
+ * assert.deepStrictEqual(zipWith([1, 2, 3], ['a', 'b', 'c', 'd'], (n, s) => s + n), ['a1', 'b2', 'c3'])
818
+ *
819
+ * @since 2.0.0
820
+ */
821
+ export var zipWith = function (fa, fb, f) {
822
+ var fc = [];
823
+ var len = Math.min(fa.length, fb.length);
824
+ for (var i = 0; i < len; i++) {
825
+ fc[i] = f(fa[i], fb[i]);
826
+ }
827
+ return fc;
828
+ };
829
+ export function zip(as, bs) {
830
+ if (bs === undefined) {
831
+ return function (bs) { return zip(bs, as); };
832
+ }
833
+ return zipWith(as, bs, function (a, b) { return [a, b]; });
834
+ }
835
+ /**
836
+ * The function is reverse of `zip`. Takes an array of pairs and return two corresponding arrays
837
+ *
838
+ * @example
839
+ * import { unzip } from 'fp-ts/Array'
840
+ *
841
+ * assert.deepStrictEqual(unzip([[1, 'a'], [2, 'b'], [3, 'c']]), [[1, 2, 3], ['a', 'b', 'c']])
842
+ *
843
+ * @since 2.0.0
844
+ */
845
+ export var unzip = function (as) {
846
+ var fa = [];
847
+ var fb = [];
848
+ for (var i = 0; i < as.length; i++) {
849
+ fa[i] = as[i][0];
850
+ fb[i] = as[i][1];
851
+ }
852
+ return [fa, fb];
853
+ };
854
+ /**
855
+ * Creates a new `Array`, prepending an element to every member of the input `Array`.
856
+ *
857
+ * @example
858
+ * import { prependAll } from 'fp-ts/Array'
859
+ *
860
+ * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4])
861
+ *
862
+ * @since 2.10.0
863
+ */
864
+ export var prependAll = function (middle) {
865
+ var f = NEA.prependAll(middle);
866
+ return function (as) { return (isNonEmpty(as) ? f(as) : []); };
867
+ };
868
+ /**
869
+ * Creates a new `Array` placing an element in between members of the input `Array`.
870
+ *
871
+ * @example
872
+ * import { intersperse } from 'fp-ts/Array'
873
+ *
874
+ * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4])
875
+ *
876
+ * @since 2.9.0
877
+ */
878
+ export var intersperse = function (middle) {
879
+ var f = NEA.intersperse(middle);
880
+ return function (as) { return (isNonEmpty(as) ? f(as) : copy(as)); };
881
+ };
882
+ /**
883
+ * Creates a new `Array` rotating the input `Array` by `n` steps.
884
+ *
885
+ * @example
886
+ * import { rotate } from 'fp-ts/Array'
887
+ *
888
+ * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3])
889
+ *
890
+ * @since 2.0.0
891
+ */
892
+ export var rotate = function (n) {
893
+ var f = NEA.rotate(n);
894
+ return function (as) { return (isNonEmpty(as) ? f(as) : copy(as)); };
895
+ };
896
+ // TODO: remove non-curried overloading in v3
897
+ /**
898
+ * Test if a value is a member of an `Array`. Takes a `Eq<A>` as a single
899
+ * argument which returns the function to use to search for a value of type `A` in
900
+ * an `Array<A>`.
901
+ *
902
+ * @example
903
+ * import { elem } from 'fp-ts/Array'
904
+ * import * as N from 'fp-ts/number'
905
+ * import { pipe } from 'fp-ts/function'
906
+ *
907
+ * assert.strictEqual(pipe([1, 2, 3], elem(N.Eq)(2)), true)
908
+ * assert.strictEqual(pipe([1, 2, 3], elem(N.Eq)(0)), false)
909
+ *
910
+ * @since 2.0.0
911
+ */
912
+ export var elem = RA.elem;
913
+ /**
914
+ * Creates a new `Array` removing duplicate elements, keeping the first occurrence of an element,
915
+ * based on a `Eq<A>`.
916
+ *
917
+ * @example
918
+ * import { uniq } from 'fp-ts/Array'
919
+ * import * as N from 'fp-ts/number'
920
+ *
921
+ * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2])
922
+ *
923
+ * @since 2.0.0
924
+ */
925
+ export var uniq = function (E) {
926
+ var f = NEA.uniq(E);
927
+ return function (as) { return (isNonEmpty(as) ? f(as) : copy(as)); };
928
+ };
929
+ /**
930
+ * Sort the elements of an array in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`,
931
+ * etc...
932
+ *
933
+ * @example
934
+ * import { sortBy } from 'fp-ts/Array'
935
+ * import { contramap } from 'fp-ts/Ord'
936
+ * import * as S from 'fp-ts/string'
937
+ * import * as N from 'fp-ts/number'
938
+ * import { pipe } from 'fp-ts/function'
939
+ *
940
+ * interface Person {
941
+ * readonly name: string
942
+ * readonly age: number
943
+ * }
944
+ * const byName = pipe(S.Ord, contramap((p: Person) => p.name))
945
+ * const byAge = pipe(N.Ord, contramap((p: Person) => p.age))
946
+ *
947
+ * const sortByNameByAge = sortBy([byName, byAge])
948
+ *
949
+ * const persons = [{ name: 'a', age: 1 }, { name: 'b', age: 3 }, { name: 'c', age: 2 }, { name: 'b', age: 2 }]
950
+ * assert.deepStrictEqual(sortByNameByAge(persons), [
951
+ * { name: 'a', age: 1 },
952
+ * { name: 'b', age: 2 },
953
+ * { name: 'b', age: 3 },
954
+ * { name: 'c', age: 2 }
955
+ * ])
956
+ *
957
+ * @since 2.0.0
958
+ */
959
+ export var sortBy = function (ords) {
960
+ var f = NEA.sortBy(ords);
961
+ return function (as) { return (isNonEmpty(as) ? f(as) : copy(as)); };
962
+ };
963
+ /**
964
+ * A useful recursion pattern for processing an array to produce a new array, often used for "chopping" up the input
965
+ * array. Typically chop is called with some function that will consume an initial prefix of the array and produce a
966
+ * value and the rest of the array.
967
+ *
968
+ * @example
969
+ * import { Eq } from 'fp-ts/Eq'
970
+ * import * as A from 'fp-ts/Array'
971
+ * import * as N from 'fp-ts/number'
972
+ * import { pipe } from 'fp-ts/function'
973
+ *
974
+ * const group = <A>(S: Eq<A>): ((as: Array<A>) => Array<Array<A>>) => {
975
+ * return A.chop(as => {
976
+ * const { init, rest } = pipe(as, A.spanLeft((a: A) => S.equals(a, as[0])))
977
+ * return [init, rest]
978
+ * })
979
+ * }
980
+ * assert.deepStrictEqual(group(N.Eq)([1, 1, 2, 3, 3, 4]), [[1, 1], [2], [3, 3], [4]])
981
+ *
982
+ * @since 2.0.0
983
+ */
984
+ export var chop = function (f) {
985
+ var g = NEA.chop(f);
986
+ return function (as) { return (isNonEmpty(as) ? g(as) : []); };
987
+ };
988
+ /**
989
+ * Splits an `Array` into two pieces, the first piece has max `n` elements.
990
+ *
991
+ * @example
992
+ * import { splitAt } from 'fp-ts/Array'
993
+ *
994
+ * assert.deepStrictEqual(splitAt(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4, 5]])
995
+ *
996
+ * @since 2.0.0
997
+ */
998
+ export var splitAt = function (n) {
999
+ return function (as) {
1000
+ return n >= 1 && isNonEmpty(as) ? NEA.splitAt(n)(as) : isEmpty(as) ? [copy(as), []] : [[], copy(as)];
1001
+ };
1002
+ };
1003
+ /**
1004
+ * Splits an array into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of
1005
+ * the array. Note that `chunksOf(n)([])` is `[]`, not `[[]]`. This is intentional, and is consistent with a recursive
1006
+ * definition of `chunksOf`; it satisfies the property that
1007
+ *
1008
+ * ```ts
1009
+ * chunksOf(n)(xs).concat(chunksOf(n)(ys)) == chunksOf(n)(xs.concat(ys)))
1010
+ * ```
1011
+ *
1012
+ * whenever `n` evenly divides the length of `xs`.
1013
+ *
1014
+ * @example
1015
+ * import { chunksOf } from 'fp-ts/Array'
1016
+ *
1017
+ * assert.deepStrictEqual(chunksOf(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4], [5]])
1018
+ *
1019
+ * @since 2.0.0
1020
+ */
1021
+ export var chunksOf = function (n) {
1022
+ var f = NEA.chunksOf(n);
1023
+ return function (as) { return (isNonEmpty(as) ? f(as) : []); };
1024
+ };
1025
+ /**
1026
+ * @category lifting
1027
+ * @since 2.11.0
1028
+ */
1029
+ export var fromOptionK = function (f) {
1030
+ return function () {
1031
+ var a = [];
1032
+ for (var _i = 0; _i < arguments.length; _i++) {
1033
+ a[_i] = arguments[_i];
1034
+ }
1035
+ return fromOption(f.apply(void 0, a));
1036
+ };
1037
+ };
1038
+ export function comprehension(input, f, g) {
1039
+ if (g === void 0) { g = function () { return true; }; }
1040
+ var go = function (scope, input) {
1041
+ return isNonEmpty(input)
1042
+ ? flatMap(NEA.head(input), function (a) { return go(pipe(scope, append(a)), NEA.tail(input)); })
1043
+ : g.apply(void 0, scope) ? [f.apply(void 0, scope)]
1044
+ : [];
1045
+ };
1046
+ return go([], input);
1047
+ }
1048
+ /**
1049
+ * @since 2.11.0
1050
+ */
1051
+ export var concatW = function (second) {
1052
+ return function (first) {
1053
+ return isEmpty(first) ? copy(second) : isEmpty(second) ? copy(first) : first.concat(second);
1054
+ };
1055
+ };
1056
+ /**
1057
+ * @since 2.11.0
1058
+ */
1059
+ export var concat = concatW;
1060
+ export function union(E) {
1061
+ var unionE = NEA.union(E);
1062
+ return function (first, second) {
1063
+ if (second === undefined) {
1064
+ var unionE_1 = union(E);
1065
+ return function (second) { return unionE_1(second, first); };
1066
+ }
1067
+ return isNonEmpty(first) && isNonEmpty(second)
1068
+ ? unionE(second)(first)
1069
+ : isNonEmpty(first)
1070
+ ? copy(first)
1071
+ : copy(second);
1072
+ };
1073
+ }
1074
+ export function intersection(E) {
1075
+ var elemE = elem(E);
1076
+ return function (xs, ys) {
1077
+ if (ys === undefined) {
1078
+ var intersectionE_1 = intersection(E);
1079
+ return function (ys) { return intersectionE_1(ys, xs); };
1080
+ }
1081
+ return xs.filter(function (a) { return elemE(a, ys); });
1082
+ };
1083
+ }
1084
+ export function difference(E) {
1085
+ var elemE = elem(E);
1086
+ return function (xs, ys) {
1087
+ if (ys === undefined) {
1088
+ var differenceE_1 = difference(E);
1089
+ return function (ys) { return differenceE_1(ys, xs); };
1090
+ }
1091
+ return xs.filter(function (a) { return !elemE(a, ys); });
1092
+ };
1093
+ }
1094
+ var _map = function (fa, f) { return pipe(fa, map(f)); };
1095
+ /* istanbul ignore next */
1096
+ var _mapWithIndex = function (fa, f) { return pipe(fa, mapWithIndex(f)); };
1097
+ var _ap = function (fab, fa) { return pipe(fab, ap(fa)); };
1098
+ /* istanbul ignore next */
1099
+ var _filter = function (fa, predicate) { return pipe(fa, filter(predicate)); };
1100
+ /* istanbul ignore next */
1101
+ var _filterMap = function (fa, f) { return pipe(fa, filterMap(f)); };
1102
+ /* istanbul ignore next */
1103
+ var _partition = function (fa, predicate) {
1104
+ return pipe(fa, partition(predicate));
1105
+ };
1106
+ /* istanbul ignore next */
1107
+ var _partitionMap = function (fa, f) { return pipe(fa, partitionMap(f)); };
1108
+ /* istanbul ignore next */
1109
+ var _partitionWithIndex = function (fa, predicateWithIndex) { return pipe(fa, partitionWithIndex(predicateWithIndex)); };
1110
+ /* istanbul ignore next */
1111
+ var _partitionMapWithIndex = function (fa, f) { return pipe(fa, partitionMapWithIndex(f)); };
1112
+ /* istanbul ignore next */
1113
+ var _alt = function (fa, that) { return pipe(fa, alt(that)); };
1114
+ var _reduce = function (fa, b, f) { return pipe(fa, reduce(b, f)); };
1115
+ /* istanbul ignore next */
1116
+ var _foldMap = function (M) {
1117
+ var foldMapM = foldMap(M);
1118
+ return function (fa, f) { return pipe(fa, foldMapM(f)); };
1119
+ };
1120
+ /* istanbul ignore next */
1121
+ var _reduceRight = function (fa, b, f) { return pipe(fa, reduceRight(b, f)); };
1122
+ /* istanbul ignore next */
1123
+ var _reduceWithIndex = function (fa, b, f) {
1124
+ return pipe(fa, reduceWithIndex(b, f));
1125
+ };
1126
+ /* istanbul ignore next */
1127
+ var _foldMapWithIndex = function (M) {
1128
+ var foldMapWithIndexM = foldMapWithIndex(M);
1129
+ return function (fa, f) { return pipe(fa, foldMapWithIndexM(f)); };
1130
+ };
1131
+ /* istanbul ignore next */
1132
+ var _reduceRightWithIndex = function (fa, b, f) {
1133
+ return pipe(fa, reduceRightWithIndex(b, f));
1134
+ };
1135
+ /* istanbul ignore next */
1136
+ var _filterMapWithIndex = function (fa, f) { return pipe(fa, filterMapWithIndex(f)); };
1137
+ /* istanbul ignore next */
1138
+ var _filterWithIndex = function (fa, predicateWithIndex) { return pipe(fa, filterWithIndex(predicateWithIndex)); };
1139
+ /* istanbul ignore next */
1140
+ var _extend = function (fa, f) { return pipe(fa, extend(f)); };
1141
+ /* istanbul ignore next */
1142
+ var _traverse = function (F) {
1143
+ var traverseF = traverse(F);
1144
+ return function (ta, f) { return pipe(ta, traverseF(f)); };
1145
+ };
1146
+ /* istanbul ignore next */
1147
+ var _traverseWithIndex = function (F) {
1148
+ var traverseWithIndexF = traverseWithIndex(F);
1149
+ return function (ta, f) { return pipe(ta, traverseWithIndexF(f)); };
1150
+ };
1151
+ var _chainRecDepthFirst = RA._chainRecDepthFirst;
1152
+ var _chainRecBreadthFirst = RA._chainRecBreadthFirst;
1153
+ /**
1154
+ * Given an element of the base type, `of` builds an `Array` containing just that
1155
+ * element of the base type (this is useful for building a `Monad`).
1156
+ *
1157
+ * @example
1158
+ * import { of } from 'fp-ts/Array'
1159
+ *
1160
+ * assert.deepStrictEqual(of("a"), ["a"]);
1161
+ *
1162
+ * @category constructors
1163
+ * @since 2.0.0
1164
+ */
1165
+ export var of = NEA.of;
1166
+ /**
1167
+ * Makes an empty `Array`, useful for building a [`Monoid`](#Monoid)
1168
+ *
1169
+ * @since 2.7.0
1170
+ */
1171
+ export var zero = function () { return []; };
1172
+ /**
1173
+ * `map` can be used to turn functions `(a: A) => B` into functions `(fa: Array<A>) => Array<B>`.
1174
+ * In practice it applies the base function to each element of the array and collects the
1175
+ * results in a new array.
1176
+ *
1177
+ * @example
1178
+ * import { map } from 'fp-ts/Array'
1179
+ * import { pipe } from 'fp-ts/function'
1180
+ *
1181
+ * const f = (n: number) => n * 2;
1182
+ * assert.deepStrictEqual(pipe([1, 2, 3], map(f)), [2, 4, 6]);
1183
+ *
1184
+ * @category mapping
1185
+ * @since 2.0.0
1186
+ */
1187
+ export var map = function (f) { return function (fa) { return fa.map(function (a) { return f(a); }); }; };
1188
+ /**
1189
+ * @example
1190
+ * import { ap, map, of } from 'fp-ts/Array'
1191
+ * import { pipe } from 'fp-ts/function'
1192
+ *
1193
+ * // a curried function with 3 input parameteres
1194
+ * const f = (s1: string) => (n: number) => (s2: string) => s1 + n + s2;
1195
+ *
1196
+ * // let's use `ap` to iterate `f` over an array for each input parameter
1197
+ * assert.deepStrictEqual(pipe(["a", "b"], map(f), ap([1, 2]), ap(["😀", "😫", "😎"])), [
1198
+ * "a1😀", "a1😫", "a1😎",
1199
+ * "a2😀", "a2😫", "a2😎",
1200
+ * "b1😀", "b1😫", "b1😎",
1201
+ * "b2😀", "b2😫", "b2😎",
1202
+ * ]);
1203
+ *
1204
+ * // given Array implements the Applicative interface with the `of` method,
1205
+ * // we can write exactly the same thing in a more symmetric way
1206
+ * // using `of` on `f` and `ap` on each array in input
1207
+ * assert.deepStrictEqual(
1208
+ * pipe(of(f), ap(["a", "b"]), ap([1, 2]), ap(["😀", "😫", "😎"])),
1209
+ * pipe(["a", "b"], map(f), ap([1, 2]), ap(["😀", "😫", "😎"]))
1210
+ * );
1211
+ *
1212
+ * @since 2.0.0
1213
+ */
1214
+ export var ap = function (fa) {
1215
+ return flatMap(function (f) { return pipe(fa, map(f)); });
1216
+ };
1217
+ /**
1218
+ * Composes computations in sequence, using the return value of one computation to
1219
+ * determine the next computation.
1220
+ *
1221
+ * In other words it takes a function `f` that produces an array from a single element of
1222
+ * the base type `A` and returns a new function which applies `f` to each element of the
1223
+ * input array (like [`map`](#map)) and, instead of returning an array of arrays, concatenates the
1224
+ * results into a single array (like [`flatten`](#flatten)).
1225
+ *
1226
+ * @example
1227
+ * import { flatMap, map, replicate } from 'fp-ts/Array'
1228
+ * import { pipe } from 'fp-ts/function'
1229
+ *
1230
+ * const f = (n: number) => replicate(n, `${n}`);
1231
+ * assert.deepStrictEqual(pipe([1, 2, 3], map(f)), [["1"], ["2", "2"], ["3", "3", "3"]]);
1232
+ * assert.deepStrictEqual(pipe([1, 2, 3], flatMap(f)), ["1", "2", "2", "3", "3", "3"]);
1233
+ *
1234
+ * @category sequencing
1235
+ * @since 2.14.0
1236
+ */
1237
+ export var flatMap = /*#__PURE__*/ dual(2, function (ma, f) {
1238
+ return pipe(ma, chainWithIndex(function (i, a) { return f(a, i); }));
1239
+ });
1240
+ /**
1241
+ * Takes an array of arrays of `A` and flattens them into an array of `A`
1242
+ * by concatenating the elements of each array in order.
1243
+ *
1244
+ * @example
1245
+ * import { flatten } from 'fp-ts/Array'
1246
+ *
1247
+ * assert.deepStrictEqual(flatten([["a"], ["b", "c"], ["d", "e", "f"]]), ["a", "b", "c", "d", "e", "f"]);
1248
+ *
1249
+ * @category sequencing
1250
+ * @since 2.5.0
1251
+ */
1252
+ export var flatten = /*#__PURE__*/ flatMap(identity);
1253
+ /**
1254
+ * Same as [`map`](#map), but the iterating function takes both the index and the value
1255
+ * of the element.
1256
+ *
1257
+ * @example
1258
+ * import { mapWithIndex } from 'fp-ts/Array'
1259
+ * import { pipe } from 'fp-ts/function'
1260
+ *
1261
+ * const f = (i: number, s: string) => `${s} - ${i}`;
1262
+ * assert.deepStrictEqual(pipe(["a", "b", "c"], mapWithIndex(f)), ["a - 0", "b - 1", "c - 2"]);
1263
+ *
1264
+ * @category mapping
1265
+ * @since 2.0.0
1266
+ */
1267
+ export var mapWithIndex = function (f) { return function (fa) {
1268
+ return fa.map(function (a, i) { return f(i, a); });
1269
+ }; };
1270
+ /**
1271
+ * Maps an array with an iterating function that takes the index and the value of
1272
+ * each element and returns an `Option`. It keeps only the `Some` values discarding
1273
+ * the `None`s.
1274
+ *
1275
+ * Same as [`filterMap`](#filterMap), but with an iterating function which takes also
1276
+ * the index as input.
1277
+ *
1278
+ * @example
1279
+ * import { filterMapWithIndex } from 'fp-ts/Array'
1280
+ * import { pipe } from 'fp-ts/function'
1281
+ * import { option } from "fp-ts";
1282
+ *
1283
+ * const f = (i: number, s: string) => (i % 2 === 1 ? option.some(s.toUpperCase()) : option.none);
1284
+ * assert.deepStrictEqual(pipe(["a", "no", "neither", "b"], filterMapWithIndex(f)), ["NO", "B"]);
1285
+ *
1286
+ * @category filtering
1287
+ * @since 2.0.0
1288
+ */
1289
+ export var filterMapWithIndex = function (f) {
1290
+ return function (fa) {
1291
+ var out = [];
1292
+ for (var i = 0; i < fa.length; i++) {
1293
+ var optionB = f(i, fa[i]);
1294
+ if (_.isSome(optionB)) {
1295
+ out.push(optionB.value);
1296
+ }
1297
+ }
1298
+ return out;
1299
+ };
1300
+ };
1301
+ /**
1302
+ * Maps an array with an iterating function that returns an `Option`
1303
+ * and it keeps only the `Some` values discarding the `None`s.
1304
+ *
1305
+ * @example
1306
+ * import { filterMap } from 'fp-ts/Array'
1307
+ * import { pipe } from 'fp-ts/function'
1308
+ * import { option } from "fp-ts";
1309
+ *
1310
+ * const f = (s: string) => s.length === 1 ? option.some(s.toUpperCase()) : option.none;
1311
+ * assert.deepStrictEqual(pipe(["a", "no", "neither", "b"], filterMap(f)), ["A", "B"]);
1312
+ *
1313
+ * @category filtering
1314
+ * @since 2.0.0
1315
+ */
1316
+ export var filterMap = function (f) {
1317
+ return filterMapWithIndex(function (_, a) { return f(a); });
1318
+ };
1319
+ /**
1320
+ * Compact an array of `Option`s discarding the `None` values and
1321
+ * keeping the `Some` values. It returns a new array containing the values of
1322
+ * the `Some` options.
1323
+ *
1324
+ * @example
1325
+ * import { compact } from 'fp-ts/Array'
1326
+ * import { option } from "fp-ts";
1327
+ *
1328
+ * assert.deepStrictEqual(compact([option.some("a"), option.none, option.some("b")]), ["a", "b"]);
1329
+ *
1330
+ * @category filtering
1331
+ * @since 2.0.0
1332
+ */
1333
+ export var compact = /*#__PURE__*/ filterMap(identity);
1334
+ /**
1335
+ * Separate an array of `Either`s into `Left`s and `Right`s, creating two new arrays:
1336
+ * one containing all the left values and one containing all the right values.
1337
+ *
1338
+ * @example
1339
+ * import { separate } from 'fp-ts/Array'
1340
+ * import { either } from "fp-ts";
1341
+ *
1342
+ * assert.deepStrictEqual(separate([either.right("r1"), either.left("l1"), either.right("r2")]), {
1343
+ * left: ["l1"],
1344
+ * right: ["r1", "r2"],
1345
+ * });
1346
+ *
1347
+ * @category filtering
1348
+ * @since 2.0.0
1349
+ */
1350
+ export var separate = function (fa) {
1351
+ var left = [];
1352
+ var right = [];
1353
+ for (var _i = 0, fa_1 = fa; _i < fa_1.length; _i++) {
1354
+ var e = fa_1[_i];
1355
+ if (e._tag === 'Left') {
1356
+ left.push(e.left);
1357
+ }
1358
+ else {
1359
+ right.push(e.right);
1360
+ }
1361
+ }
1362
+ return separated(left, right);
1363
+ };
1364
+ /**
1365
+ * Given an iterating function that is a `Predicate` or a `Refinement`,
1366
+ * `filter` creates a new `Array` containing the elements of the original
1367
+ * `Array` for which the iterating function is `true`.
1368
+ *
1369
+ * @example
1370
+ * import { filter } from 'fp-ts/Array'
1371
+ * import { isString } from "fp-ts/string";
1372
+ *
1373
+ * assert.deepStrictEqual(filter(isString)(["a", 1, {}, "b", 5]), ["a", "b"]);
1374
+ * assert.deepStrictEqual(filter((x:number) => x > 0)([-3, 1, -2, 5]), [1, 5]);
1375
+ *
1376
+ * @category filtering
1377
+ * @since 2.0.0
1378
+ */
1379
+ export var filter = function (predicate) {
1380
+ return function (as) {
1381
+ return as.filter(predicate);
1382
+ };
1383
+ };
1384
+ /**
1385
+ * Given an iterating function that is a `Predicate` or a `Refinement`,
1386
+ * `partition` creates two new `Array`s: `right` containing the elements of the original
1387
+ * `Array` for which the iterating function is `true`, `left` containing the elements
1388
+ * for which it is false.
1389
+ *
1390
+ * @example
1391
+ * import { partition } from 'fp-ts/Array'
1392
+ * import { isString } from "fp-ts/string";
1393
+ *
1394
+ * assert.deepStrictEqual(partition(isString)(["a", 1, {}, "b", 5]), { left: [1, {}, 5], right: ["a", "b"] });
1395
+ * assert.deepStrictEqual(partition((x: number) => x > 0)([-3, 1, -2, 5]), { left: [-3, -2], right: [1, 5] });
1396
+ *
1397
+ * @category filtering
1398
+ * @since 2.0.0
1399
+ */
1400
+ export var partition = function (predicate) {
1401
+ return partitionWithIndex(function (_, a) { return predicate(a); });
1402
+ };
1403
+ /**
1404
+ * Same as [`partition`](#partition), but passing also the index to the iterating function.
1405
+ *
1406
+ * @example
1407
+ * import { partitionWithIndex } from 'fp-ts/Array'
1408
+ *
1409
+ * assert.deepStrictEqual(partitionWithIndex((index, x: number) => index < 3 && x > 0)([-2, 5, 6, 7]), {
1410
+ * left: [-2, 7],
1411
+ * right: [5, 6],
1412
+ * });
1413
+ *
1414
+ * @category filtering
1415
+ * @since 2.0.0
1416
+ */
1417
+ export var partitionWithIndex = function (predicateWithIndex) {
1418
+ return function (as) {
1419
+ var left = [];
1420
+ var right = [];
1421
+ for (var i = 0; i < as.length; i++) {
1422
+ var b = as[i];
1423
+ if (predicateWithIndex(i, b)) {
1424
+ right.push(b);
1425
+ }
1426
+ else {
1427
+ left.push(b);
1428
+ }
1429
+ }
1430
+ return separated(left, right);
1431
+ };
1432
+ };
1433
+ /**
1434
+ * Given an iterating function that returns an `Either`,
1435
+ * `partitionMap` applies the iterating function to each element and it creates two `Array`s:
1436
+ * `right` containing the values of `Right` results, `left` containing the values of `Left` results.
1437
+ *
1438
+ * @example
1439
+ * import { partitionMap } from 'fp-ts/Array'
1440
+ * import { Either, left, right } from "fp-ts/Either";
1441
+ *
1442
+ * const upperIfString = <B>(x: B): Either<B, string> =>
1443
+ * typeof x === "string" ? right(x.toUpperCase()) : left(x);
1444
+ * assert.deepStrictEqual(partitionMap(upperIfString)([-2, "hello", 6, 7, "world"]), {
1445
+ * left: [-2, 6, 7],
1446
+ * right: [ 'HELLO', 'WORLD' ],
1447
+ * });
1448
+ *
1449
+ * @category filtering
1450
+ * @since 2.0.0
1451
+ */
1452
+ export var partitionMap = function (f) { return partitionMapWithIndex(function (_, a) { return f(a); }); };
1453
+ /**
1454
+ * Same as [`partitionMap`](#partitionMap), but passing also the index to the iterating function.
1455
+ *
1456
+ * @example
1457
+ * import { partitionMapWithIndex } from 'fp-ts/Array'
1458
+ * import { Either, left, right } from "fp-ts/Either";
1459
+ *
1460
+ * const upperIfStringBefore3 = <B>(index: number, x: B): Either<B, string> =>
1461
+ * index < 3 && typeof x === "string" ? right(x.toUpperCase()) : left(x);
1462
+ * assert.deepStrictEqual(partitionMapWithIndex(upperIfStringBefore3)([-2, "hello", 6, 7, "world"]), {
1463
+ * left: [-2, 6, 7, "world"],
1464
+ * right: ["HELLO"],
1465
+ * });
1466
+ *
1467
+ * @category filtering
1468
+ * @since 2.0.0
1469
+ */
1470
+ export var partitionMapWithIndex = function (f) {
1471
+ return function (fa) {
1472
+ var left = [];
1473
+ var right = [];
1474
+ for (var i = 0; i < fa.length; i++) {
1475
+ var e = f(i, fa[i]);
1476
+ if (e._tag === 'Left') {
1477
+ left.push(e.left);
1478
+ }
1479
+ else {
1480
+ right.push(e.right);
1481
+ }
1482
+ }
1483
+ return separated(left, right);
1484
+ };
1485
+ };
1486
+ /**
1487
+ * Less strict version of [`alt`](#alt).
1488
+ *
1489
+ * The `W` suffix (short for **W**idening) means that the return types will be merged.
1490
+ *
1491
+ * @example
1492
+ * import * as A from 'fp-ts/Array'
1493
+ * import { pipe } from 'fp-ts/function'
1494
+ *
1495
+ * assert.deepStrictEqual(
1496
+ * pipe(
1497
+ * [1, 2, 3],
1498
+ * A.altW(() => ['a', 'b'])
1499
+ * ),
1500
+ * [1, 2, 3, 'a', 'b']
1501
+ * )
1502
+ *
1503
+ * @category error handling
1504
+ * @since 2.9.0
1505
+ */
1506
+ export var altW = function (that) {
1507
+ return function (fa) {
1508
+ return fa.concat(that());
1509
+ };
1510
+ };
1511
+ /**
1512
+ * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to
1513
+ * types of kind `* -> *`.
1514
+ *
1515
+ * In case of `Array` concatenates the inputs into a single array.
1516
+ *
1517
+ * @example
1518
+ * import * as A from 'fp-ts/Array'
1519
+ * import { pipe } from 'fp-ts/function'
1520
+ *
1521
+ * assert.deepStrictEqual(
1522
+ * pipe(
1523
+ * [1, 2, 3],
1524
+ * A.alt(() => [4, 5])
1525
+ * ),
1526
+ * [1, 2, 3, 4, 5]
1527
+ * )
1528
+ *
1529
+ * @category error handling
1530
+ * @since 2.0.0
1531
+ */
1532
+ export var alt = altW;
1533
+ /**
1534
+ * Same as [`filter`](#filter), but passing also the index to the iterating function.
1535
+ *
1536
+ * @example
1537
+ * import { filterWithIndex } from 'fp-ts/Array';
1538
+ *
1539
+ * const f = (index: number, x: number) => x > 0 && index <= 2;
1540
+ * assert.deepStrictEqual(filterWithIndex(f)([-3, 1, -2, 5]), [1]);
1541
+ *
1542
+ * @category filtering
1543
+ * @since 2.0.0
1544
+ */
1545
+ export var filterWithIndex = function (predicateWithIndex) {
1546
+ return function (as) {
1547
+ return as.filter(function (b, i) { return predicateWithIndex(i, b); });
1548
+ };
1549
+ };
1550
+ /**
1551
+ * Given an iterating function that takes `Array<A>` as input, `extend` returns
1552
+ * an array containing the results of the iterating function applied to the whole input
1553
+ * `Array`, then to the input `Array` without the first element, then to the input
1554
+ * `Array` without the first two elements, etc.
1555
+ *
1556
+ * @example
1557
+ * import { extend } from 'fp-ts/Array'
1558
+ *
1559
+ * const f = (a: string[]) => a.join(",");
1560
+ * assert.deepStrictEqual(extend(f)(["a", "b", "c"]), ["a,b,c", "b,c", "c"]);
1561
+ *
1562
+ * @since 2.0.0
1563
+ */
1564
+ export var extend = function (f) { return function (wa) {
1565
+ return wa.map(function (_, i) { return f(wa.slice(i)); });
1566
+ }; };
1567
+ /**
1568
+ * `duplicate` returns an array containing the whole input `Array`,
1569
+ * then to the input `Array` dropping the first element, then to the input
1570
+ * `Array` dropping the first two elements, etc.
1571
+ *
1572
+ * @example
1573
+ * import { duplicate } from 'fp-ts/Array'
1574
+ *
1575
+ * assert.deepStrictEqual(duplicate(["a", "b", "c"]), [["a", "b", "c"], ["b", "c"], ["c"]]);
1576
+ *
1577
+ * @since 2.0.0
1578
+ */
1579
+ export var duplicate = /*#__PURE__*/ extend(identity);
1580
+ /**
1581
+ * Map and fold an `Array`.
1582
+ * Map the `Array` passing each value to the iterating function.
1583
+ * Then fold the results using the provided `Monoid`.
1584
+ *
1585
+ * @example
1586
+ * import { foldMap } from 'fp-ts/Array'
1587
+ *
1588
+ * const monoid = { concat: (a: string, b: string) => a + b, empty: "" };
1589
+ * const f = (s: string) => s.toUpperCase()
1590
+ * assert.deepStrictEqual(foldMap(monoid)(f)(["a", "b", "c"]), "ABC");
1591
+ *
1592
+ * @category folding
1593
+ * @since 2.0.0
1594
+ */
1595
+ export var foldMap = RA.foldMap;
1596
+ /**
1597
+ * Same as [`foldMap`](#foldMap) but passing also the index to the iterating function.
1598
+ *
1599
+ * @example
1600
+ * import { foldMapWithIndex } from 'fp-ts/Array'
1601
+ *
1602
+ * const monoid = { concat: (a: string, b: string) => a + b, empty: "" };
1603
+ * const f = (index:number, s: string) => `${s.toUpperCase()}(${index})`
1604
+ * assert.deepStrictEqual(foldMapWithIndex(monoid)(f)(["a", "b", "c"]), "A(0)B(1)C(2)");
1605
+ *
1606
+ * @category folding
1607
+ * @since 2.0.0
1608
+ */
1609
+ export var foldMapWithIndex = RA.foldMapWithIndex;
1610
+ /**
1611
+ * Reduces an `Array`.
1612
+ *
1613
+ * `reduce` executes the supplied iterating function on each element of the array,
1614
+ * in order, passing in the element and the return value from the calculation on the preceding element.
1615
+ *
1616
+ * The first time that the iterating function is called there is no "return value of the
1617
+ * previous calculation", the initial value is used in its place.
1618
+ *
1619
+ * @example
1620
+ * import { reduce } from 'fp-ts/Array'
1621
+ *
1622
+ * assert.deepStrictEqual(reduce(5, (acc: number, cur: number) => acc * cur)([2, 3]), 5 * 2 * 3);
1623
+ *
1624
+ * @category folding
1625
+ * @since 2.0.0
1626
+ */
1627
+ export var reduce = RA.reduce;
1628
+ /**
1629
+ * Same as [`reduce`](#reduce) but passing also the index to the iterating function.
1630
+ *
1631
+ * @example
1632
+ * import { reduceWithIndex } from 'fp-ts/Array'
1633
+ *
1634
+ * const f = (index: number, acc: string, cur: unknown) =>
1635
+ * acc + (typeof cur === "string" ? cur.toUpperCase() + index : "");
1636
+ * assert.deepStrictEqual(reduceWithIndex("", f)([2, "a", "b", null]), "A1B2");
1637
+ *
1638
+ * @category folding
1639
+ * @since 2.0.0
1640
+ */
1641
+ export var reduceWithIndex = RA.reduceWithIndex;
1642
+ /**
1643
+ * Same as [`reduce`](#reduce) but applied from the end to the start.
1644
+ *
1645
+ * *Note*: the iterating function in this case takes the accumulator as the last argument.
1646
+ *
1647
+ * @example
1648
+ * import { reduceRight } from 'fp-ts/Array'
1649
+ *
1650
+ * assert.deepStrictEqual(reduceRight("", (cur: string, acc: string) => acc + cur)(["a", "b", "c"]), "cba");
1651
+ *
1652
+ * @category folding
1653
+ * @since 2.0.0
1654
+ */
1655
+ export var reduceRight = RA.reduceRight;
1656
+ /**
1657
+ * Same as [`reduceRight`](#reduceRight) but passing also the index to the iterating function.
1658
+ *
1659
+ * @example
1660
+ * import { reduceRightWithIndex } from 'fp-ts/Array'
1661
+ *
1662
+ * const f = (index: number, cur: unknown, acc: string) =>
1663
+ * acc + (typeof cur === "string" ? cur.toUpperCase() + index : "");
1664
+ * assert.deepStrictEqual(reduceRightWithIndex("", f)([2, "a", "b", null]), "B2A1");
1665
+ *
1666
+ * @category folding
1667
+ * @since 2.0.0
1668
+ */
1669
+ export var reduceRightWithIndex = RA.reduceRightWithIndex;
1670
+ /**
1671
+ * Given an iterating function that returns a `HKT` (higher kinded type), `traverse`
1672
+ * applies the iterating function to each element of the `Array` and then [`sequence`](#sequence)-s
1673
+ * the results using the provided `Applicative`.
1674
+ *
1675
+ * E.g. suppose you have an `Array` and you want to format each element with a function
1676
+ * that returns a result or an error as `f = (a: A) => Either<Error, B>`, using `traverse`
1677
+ * you can apply `f` to all elements and directly obtain as a result an `Either<Error,Array<B>>`
1678
+ * i.e. an `Array<B>` if all the results are `B`, or an `Error` if some of the results
1679
+ * are `Error`s.
1680
+ *
1681
+ * @example
1682
+ * import { traverse } from 'fp-ts/Array'
1683
+ * import { Applicative, left, right } from "fp-ts/Either";
1684
+ *
1685
+ * const f = (x: unknown) =>
1686
+ * typeof x === "string" ? right(x.toUpperCase()) : left(new Error("not a string"));
1687
+ * assert.deepStrictEqual(traverse(Applicative)(f)(["a", "b"]), right(["A", "B"]));
1688
+ * assert.deepStrictEqual(traverse(Applicative)(f)(["a", 5]), left(new Error("not a string")));
1689
+ *
1690
+ * @category traversing
1691
+ * @since 2.6.3
1692
+ */
1693
+ export var traverse = function (F) {
1694
+ var traverseWithIndexF = traverseWithIndex(F);
1695
+ return function (f) { return traverseWithIndexF(function (_, a) { return f(a); }); };
1696
+ };
1697
+ /**
1698
+ * `sequence` takes an `Array` where elements are `HKT<A>` (higher kinded type) and,
1699
+ * using an applicative of that `HKT`, returns an `HKT` of `Array<A>`.
1700
+ * E.g. it can turn an `Array<Either<Error, string>>` into an `Either<Error, Array<string>>`.
1701
+ *
1702
+ * `sequence` requires an `Applicative` of the `HKT` you are targeting, e.g. to turn an
1703
+ * `Array<Either<E, A>>` into an `Either<E, Array<A>>`, it needs an
1704
+ * `Applicative` for `Either`, to to turn an `Array<Option<A>>` into an `Option<Array<A>>`,
1705
+ * it needs an `Applicative` for `Option`.
1706
+ *
1707
+ * @example
1708
+ * import { sequence } from 'fp-ts/Array'
1709
+ * import { Applicative, left, right } from "fp-ts/Either";
1710
+ *
1711
+ * assert.deepStrictEqual(sequence(Applicative)([right("a"), right("b")]), right(["a", "b"]));
1712
+ * assert.deepStrictEqual(
1713
+ * sequence(Applicative)([right("a"), left(new Error("not a string"))]),
1714
+ * left(new Error("not a string"))
1715
+ * );
1716
+ *
1717
+ * @category traversing
1718
+ * @since 2.6.3
1719
+ */
1720
+ export var sequence = function (F) {
1721
+ return function (ta) {
1722
+ return _reduce(ta, F.of(zero()), function (fas, fa) {
1723
+ return F.ap(F.map(fas, function (as) { return function (a) { return pipe(as, append(a)); }; }), fa);
1724
+ });
1725
+ };
1726
+ };
1727
+ /**
1728
+ * Same as [`traverse`](#traverse) but passing also the index to the iterating function.
1729
+ *
1730
+ * @example
1731
+ * import { traverseWithIndex } from 'fp-ts/Array'
1732
+ * import { Applicative, left, right } from "fp-ts/Either";
1733
+ *
1734
+ * const f = (index:number, x:unknown) =>
1735
+ * typeof x === "string" ? right(x.toUpperCase() + index) : left(new Error("not a string"));
1736
+ * assert.deepStrictEqual(traverseWithIndex(Applicative)(f)(["a", "b"]), right(["A0", "B1"]));
1737
+ * assert.deepStrictEqual(traverseWithIndex(Applicative)(f)(["a", 5]), left(new Error("not a string")));
1738
+ *
1739
+ * @category sequencing
1740
+ * @since 2.6.3
1741
+ */
1742
+ export var traverseWithIndex = function (F) {
1743
+ return function (f) {
1744
+ return reduceWithIndex(F.of(zero()), function (i, fbs, a) {
1745
+ return F.ap(F.map(fbs, function (bs) { return function (b) { return pipe(bs, append(b)); }; }), f(i, a));
1746
+ });
1747
+ };
1748
+ };
1749
+ /**
1750
+ * @category filtering
1751
+ * @since 2.6.5
1752
+ */
1753
+ export var wither = function (F) {
1754
+ var _witherF = _wither(F);
1755
+ return function (f) { return function (fa) { return _witherF(fa, f); }; };
1756
+ };
1757
+ /**
1758
+ * @category filtering
1759
+ * @since 2.6.5
1760
+ */
1761
+ export var wilt = function (F) {
1762
+ var _wiltF = _wilt(F);
1763
+ return function (f) { return function (fa) { return _wiltF(fa, f); }; };
1764
+ };
1765
+ /**
1766
+ * `unfold` takes a function `f` which returns an `Option` of a tuple containing an outcome
1767
+ * value and an input for the following iteration.
1768
+ * `unfold` applies `f` to the initial value `b` and then recursively to the second
1769
+ * element of the tuple contained in the returned `option` of the previous
1770
+ * calculation until `f` returns `Option.none`.
1771
+ *
1772
+ * @example
1773
+ * import { unfold } from 'fp-ts/Array'
1774
+ * import { option } from 'fp-ts'
1775
+ *
1776
+ * const f = (n: number) => {
1777
+ * if (n <= 0) return option.none;
1778
+ * const returnValue = n * 2;
1779
+ * const inputForNextRound = n - 1;
1780
+ * return option.some([returnValue, inputForNextRound] as const);
1781
+ * };
1782
+ * assert.deepStrictEqual(unfold(5, f), [10, 8, 6, 4, 2]);
1783
+ *
1784
+ * @since 2.6.6
1785
+ */
1786
+ export var unfold = function (b, f) {
1787
+ var out = [];
1788
+ var bb = b;
1789
+ // eslint-disable-next-line no-constant-condition
1790
+ while (true) {
1791
+ var mt = f(bb);
1792
+ if (_.isSome(mt)) {
1793
+ var _a = mt.value, a = _a[0], b_1 = _a[1];
1794
+ out.push(a);
1795
+ bb = b_1;
1796
+ }
1797
+ else {
1798
+ break;
1799
+ }
1800
+ }
1801
+ return out;
1802
+ };
1803
+ /**
1804
+ * @category type lambdas
1805
+ * @since 2.0.0
1806
+ */
1807
+ export var URI = 'Array';
1808
+ /**
1809
+ * `getShow` makes a `Show` for an `Array<A>` from a `Show` for
1810
+ * an `A`.
1811
+ *
1812
+ * @example
1813
+ * import { getShow } from 'fp-ts/Array'
1814
+ *
1815
+ * const numShow = { show: (n: number) => (n >= 0 ? `${n}` : `(${-n})`) };
1816
+ * assert.deepStrictEqual(getShow(numShow).show([-2, -1, 0, 1]), "[(2), (1), 0, 1]");
1817
+ *
1818
+ * @category instances
1819
+ * @since 2.0.0
1820
+ */
1821
+ export var getShow = RA.getShow;
1822
+ /**
1823
+ * Get a `Semigroup` based on the concatenation of `Array`s.
1824
+ * See also [`getMonoid`](#getMonoid).
1825
+ *
1826
+ * @example
1827
+ * import { getSemigroup } from 'fp-ts/Array'
1828
+ *
1829
+ * const S = getSemigroup<number>();
1830
+ * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1, 2, 2, 3]);
1831
+ *
1832
+ * @category instances
1833
+ * @since 2.10.0
1834
+ */
1835
+ export var getSemigroup = function () { return ({
1836
+ concat: function (first, second) { return first.concat(second); }
1837
+ }); };
1838
+ /**
1839
+ * Returns a `Monoid` for `Array<A>` based on the concatenation of `Array`s.
1840
+ *
1841
+ * @example
1842
+ * import { getMonoid } from 'fp-ts/Array'
1843
+ *
1844
+ * const M = getMonoid<number>()
1845
+ * assert.deepStrictEqual(M.concat([1, 2], [3, 4]), [1, 2, 3, 4])
1846
+ *
1847
+ * @category instances
1848
+ * @since 2.0.0
1849
+ */
1850
+ export var getMonoid = function () { return ({
1851
+ concat: getSemigroup().concat,
1852
+ empty: []
1853
+ }); };
1854
+ /**
1855
+ * Derives an `Eq` over the `Array` of a given element type from the `Eq` of that type. The derived `Eq` defines two
1856
+ * arrays as equal if all elements of both arrays are compared equal pairwise with the given `E`. In case of arrays of
1857
+ * different lengths, the result is non equality.
1858
+ *
1859
+ * @example
1860
+ * import * as S from 'fp-ts/string'
1861
+ * import { getEq } from 'fp-ts/Array'
1862
+ *
1863
+ * const E = getEq(S.Eq)
1864
+ * assert.strictEqual(E.equals(['a', 'b'], ['a', 'b']), true)
1865
+ * assert.strictEqual(E.equals(['a'], []), false)
1866
+ *
1867
+ * @category instances
1868
+ * @since 2.0.0
1869
+ */
1870
+ export var getEq = RA.getEq;
1871
+ /**
1872
+ * Derives an `Ord` over the `Array` of a given element type from the `Ord` of that type. The ordering between two such
1873
+ * arrays is equal to: the first non equal comparison of each arrays elements taken pairwise in increasing order, in
1874
+ * case of equality over all the pairwise elements; the longest array is considered the greatest, if both arrays have
1875
+ * the same length, the result is equality.
1876
+ *
1877
+ * @example
1878
+ * import { getOrd } from 'fp-ts/Array'
1879
+ * import * as S from 'fp-ts/string'
1880
+ *
1881
+ * const O = getOrd(S.Ord)
1882
+ * assert.strictEqual(O.compare(['b'], ['a']), 1)
1883
+ * assert.strictEqual(O.compare(['a'], ['a']), 0)
1884
+ * assert.strictEqual(O.compare(['a'], ['b']), -1)
1885
+ *
1886
+ * @category instances
1887
+ * @since 2.0.0
1888
+ */
1889
+ export var getOrd = RA.getOrd;
1890
+ /**
1891
+ * Get a `Semigroup` based on the union of the elements of `Array`s.
1892
+ * Elements which equal according to the provided `Eq` are included
1893
+ * only once in the result.
1894
+ * See also [`getUnionMonoid`](#getUnionMonoid).
1895
+ *
1896
+ * @example
1897
+ * import { getUnionSemigroup } from 'fp-ts/Array';
1898
+ * import { Eq } from 'fp-ts/number';
1899
+ *
1900
+ * const S = getUnionSemigroup<number>(Eq);
1901
+ * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1, 2, 3]);
1902
+ *
1903
+ * @category instances
1904
+ * @since 2.11.0
1905
+ */
1906
+ export var getUnionSemigroup = function (E) {
1907
+ var unionE = union(E);
1908
+ return {
1909
+ concat: function (first, second) { return unionE(second)(first); }
1910
+ };
1911
+ };
1912
+ /**
1913
+ * Get a `Monoid` based on the union of the elements of `Array`s.
1914
+ * Elements which equal according to the provided `Eq` are included
1915
+ * only once in the result.
1916
+ *
1917
+ * @example
1918
+ * import { getUnionMonoid } from 'fp-ts/Array'
1919
+ * import { Eq } from 'fp-ts/number';
1920
+ *
1921
+ * const M = getUnionMonoid<number>(Eq);
1922
+ * assert.deepStrictEqual(M.concat([1, 2], [2, 3]), [1, 2, 3]);
1923
+ * assert.deepStrictEqual(M.empty,[]);
1924
+ *
1925
+ * @category instances
1926
+ * @since 2.11.0
1927
+ */
1928
+ export var getUnionMonoid = function (E) { return ({
1929
+ concat: getUnionSemigroup(E).concat,
1930
+ empty: []
1931
+ }); };
1932
+ /**
1933
+ * Get a `Semigroup` based on the intersection of the elements of `Array`s.
1934
+ * Only elements present in the two arrays which are equal according to the
1935
+ * provided `Eq` are included in the result.
1936
+ *
1937
+ * @example
1938
+ * import { getIntersectionSemigroup } from 'fp-ts/Array'
1939
+ * import { Eq } from 'fp-ts/number';
1940
+ *
1941
+ * const S = getIntersectionSemigroup<number>(Eq);
1942
+ * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [2]);
1943
+ *
1944
+ * @category instances
1945
+ * @since 2.11.0
1946
+ */
1947
+ export var getIntersectionSemigroup = function (E) {
1948
+ var intersectionE = intersection(E);
1949
+ return {
1950
+ concat: function (first, second) { return intersectionE(second)(first); }
1951
+ };
1952
+ };
1953
+ /**
1954
+ * Get a `Magma` for `Array` where the `concat` function is the differnce between
1955
+ * the first and the second array, i.e. the result contains all the elements of the
1956
+ * first array for which their is no equal element in the second array according
1957
+ * to the `Eq` provided.
1958
+ *
1959
+ *
1960
+ * @example
1961
+ * import { getDifferenceMagma } from 'fp-ts/Array'
1962
+ * import { Eq } from 'fp-ts/number';
1963
+ *
1964
+ * const S = getDifferenceMagma<number>(Eq);
1965
+ * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1]);
1966
+ *
1967
+ * @category instances
1968
+ * @since 2.11.0
1969
+ */
1970
+ export var getDifferenceMagma = function (E) {
1971
+ var differenceE = difference(E);
1972
+ return {
1973
+ concat: function (first, second) { return differenceE(second)(first); }
1974
+ };
1975
+ };
1976
+ /**
1977
+ * @category instances
1978
+ * @since 2.7.0
1979
+ */
1980
+ export var Functor = {
1981
+ URI: URI,
1982
+ map: _map
1983
+ };
1984
+ /**
1985
+ * Given an input an `Array` of functions, `flap` returns an `Array` containing
1986
+ * the results of applying each function to the given input.
1987
+ *
1988
+ * @example
1989
+ * import { flap } from 'fp-ts/Array'
1990
+ *
1991
+ * const funs = [
1992
+ * (n: number) => `Double: ${n * 2}`,
1993
+ * (n: number) => `Triple: ${n * 3}`,
1994
+ * (n: number) => `Square: ${n * n}`,
1995
+ * ];
1996
+ * assert.deepStrictEqual(flap(4)(funs), ['Double: 8', 'Triple: 12', 'Square: 16']);
1997
+ *
1998
+ * @category mapping
1999
+ * @since 2.10.0
2000
+ */
2001
+ export var flap = /*#__PURE__*/ flap_(Functor);
2002
+ /**
2003
+ * @category instances
2004
+ * @since 2.10.0
2005
+ */
2006
+ export var Pointed = {
2007
+ URI: URI,
2008
+ of: of
2009
+ };
2010
+ /**
2011
+ * @category instances
2012
+ * @since 2.7.0
2013
+ */
2014
+ export var FunctorWithIndex = {
2015
+ URI: URI,
2016
+ map: _map,
2017
+ mapWithIndex: _mapWithIndex
2018
+ };
2019
+ /**
2020
+ * @category instances
2021
+ * @since 2.10.0
2022
+ */
2023
+ export var Apply = {
2024
+ URI: URI,
2025
+ map: _map,
2026
+ ap: _ap
2027
+ };
2028
+ /**
2029
+ * Combine two effectful actions, keeping only the result of the first.
2030
+ *
2031
+ * @since 2.5.0
2032
+ */
2033
+ export var apFirst = /*#__PURE__*/ apFirst_(Apply);
2034
+ /**
2035
+ * Combine two effectful actions, keeping only the result of the second.
2036
+ *
2037
+ * @since 2.5.0
2038
+ */
2039
+ export var apSecond = /*#__PURE__*/ apSecond_(Apply);
2040
+ /**
2041
+ * @category instances
2042
+ * @since 2.7.0
2043
+ */
2044
+ export var Applicative = {
2045
+ URI: URI,
2046
+ map: _map,
2047
+ ap: _ap,
2048
+ of: of
2049
+ };
2050
+ /**
2051
+ * @category instances
2052
+ * @since 2.10.0
2053
+ */
2054
+ export var Chain = {
2055
+ URI: URI,
2056
+ map: _map,
2057
+ ap: _ap,
2058
+ chain: flatMap
2059
+ };
2060
+ /**
2061
+ * Composes computations in sequence, using the return value of one computation to determine the next computation and
2062
+ * keeping only the result of the first.
2063
+ *
2064
+ * @example
2065
+ * import * as A from 'fp-ts/Array'
2066
+ * import { pipe } from 'fp-ts/function'
2067
+ *
2068
+ * assert.deepStrictEqual(
2069
+ * pipe(
2070
+ * [1, 2, 3],
2071
+ * A.chainFirst(() => ['a', 'b'])
2072
+ * ),
2073
+ * [1, 1, 2, 2, 3, 3]
2074
+ * )
2075
+ * assert.deepStrictEqual(
2076
+ * pipe(
2077
+ * [1, 2, 3],
2078
+ * A.chainFirst(() => [])
2079
+ * ),
2080
+ * []
2081
+ * )
2082
+ *
2083
+ * @category sequencing
2084
+ * @since 2.0.0
2085
+ */
2086
+ export var chainFirst =
2087
+ /*#__PURE__*/ chainFirst_(Chain);
2088
+ /**
2089
+ * @category instances
2090
+ * @since 2.7.0
2091
+ */
2092
+ export var Monad = {
2093
+ URI: URI,
2094
+ map: _map,
2095
+ ap: _ap,
2096
+ of: of,
2097
+ chain: flatMap
2098
+ };
2099
+ /**
2100
+ * @category instances
2101
+ * @since 2.7.0
2102
+ */
2103
+ export var Unfoldable = {
2104
+ URI: URI,
2105
+ unfold: unfold
2106
+ };
2107
+ /**
2108
+ * @category instances
2109
+ * @since 2.7.0
2110
+ */
2111
+ export var Alt = {
2112
+ URI: URI,
2113
+ map: _map,
2114
+ alt: _alt
2115
+ };
2116
+ /**
2117
+ * @category instances
2118
+ * @since 2.11.0
2119
+ */
2120
+ export var Zero = {
2121
+ URI: URI,
2122
+ zero: zero
2123
+ };
2124
+ /**
2125
+ * @category do notation
2126
+ * @since 2.11.0
2127
+ */
2128
+ export var guard = /*#__PURE__*/ guard_(Zero, Pointed);
2129
+ /**
2130
+ * @category instances
2131
+ * @since 2.7.0
2132
+ */
2133
+ export var Alternative = {
2134
+ URI: URI,
2135
+ map: _map,
2136
+ ap: _ap,
2137
+ of: of,
2138
+ alt: _alt,
2139
+ zero: zero
2140
+ };
2141
+ /**
2142
+ * @category instances
2143
+ * @since 2.7.0
2144
+ */
2145
+ export var Extend = {
2146
+ URI: URI,
2147
+ map: _map,
2148
+ extend: _extend
2149
+ };
2150
+ /**
2151
+ * @category instances
2152
+ * @since 2.7.0
2153
+ */
2154
+ export var Compactable = {
2155
+ URI: URI,
2156
+ compact: compact,
2157
+ separate: separate
2158
+ };
2159
+ /**
2160
+ * @category instances
2161
+ * @since 2.7.0
2162
+ */
2163
+ export var Filterable = {
2164
+ URI: URI,
2165
+ map: _map,
2166
+ compact: compact,
2167
+ separate: separate,
2168
+ filter: _filter,
2169
+ filterMap: _filterMap,
2170
+ partition: _partition,
2171
+ partitionMap: _partitionMap
2172
+ };
2173
+ /**
2174
+ * @category instances
2175
+ * @since 2.7.0
2176
+ */
2177
+ export var FilterableWithIndex = {
2178
+ URI: URI,
2179
+ map: _map,
2180
+ mapWithIndex: _mapWithIndex,
2181
+ compact: compact,
2182
+ separate: separate,
2183
+ filter: _filter,
2184
+ filterMap: _filterMap,
2185
+ partition: _partition,
2186
+ partitionMap: _partitionMap,
2187
+ partitionMapWithIndex: _partitionMapWithIndex,
2188
+ partitionWithIndex: _partitionWithIndex,
2189
+ filterMapWithIndex: _filterMapWithIndex,
2190
+ filterWithIndex: _filterWithIndex
2191
+ };
2192
+ /**
2193
+ * @category instances
2194
+ * @since 2.7.0
2195
+ */
2196
+ export var Foldable = {
2197
+ URI: URI,
2198
+ reduce: _reduce,
2199
+ foldMap: _foldMap,
2200
+ reduceRight: _reduceRight
2201
+ };
2202
+ /**
2203
+ * @category instances
2204
+ * @since 2.7.0
2205
+ */
2206
+ export var FoldableWithIndex = {
2207
+ URI: URI,
2208
+ reduce: _reduce,
2209
+ foldMap: _foldMap,
2210
+ reduceRight: _reduceRight,
2211
+ reduceWithIndex: _reduceWithIndex,
2212
+ foldMapWithIndex: _foldMapWithIndex,
2213
+ reduceRightWithIndex: _reduceRightWithIndex
2214
+ };
2215
+ /**
2216
+ * @category instances
2217
+ * @since 2.7.0
2218
+ */
2219
+ export var Traversable = {
2220
+ URI: URI,
2221
+ map: _map,
2222
+ reduce: _reduce,
2223
+ foldMap: _foldMap,
2224
+ reduceRight: _reduceRight,
2225
+ traverse: _traverse,
2226
+ sequence: sequence
2227
+ };
2228
+ /**
2229
+ * @category instances
2230
+ * @since 2.7.0
2231
+ */
2232
+ export var TraversableWithIndex = {
2233
+ URI: URI,
2234
+ map: _map,
2235
+ mapWithIndex: _mapWithIndex,
2236
+ reduce: _reduce,
2237
+ foldMap: _foldMap,
2238
+ reduceRight: _reduceRight,
2239
+ reduceWithIndex: _reduceWithIndex,
2240
+ foldMapWithIndex: _foldMapWithIndex,
2241
+ reduceRightWithIndex: _reduceRightWithIndex,
2242
+ traverse: _traverse,
2243
+ sequence: sequence,
2244
+ traverseWithIndex: _traverseWithIndex
2245
+ };
2246
+ var _wither = /*#__PURE__*/ witherDefault(Traversable, Compactable);
2247
+ var _wilt = /*#__PURE__*/ wiltDefault(Traversable, Compactable);
2248
+ /**
2249
+ * @category instances
2250
+ * @since 2.7.0
2251
+ */
2252
+ export var Witherable = {
2253
+ URI: URI,
2254
+ map: _map,
2255
+ compact: compact,
2256
+ separate: separate,
2257
+ filter: _filter,
2258
+ filterMap: _filterMap,
2259
+ partition: _partition,
2260
+ partitionMap: _partitionMap,
2261
+ reduce: _reduce,
2262
+ foldMap: _foldMap,
2263
+ reduceRight: _reduceRight,
2264
+ traverse: _traverse,
2265
+ sequence: sequence,
2266
+ wither: _wither,
2267
+ wilt: _wilt
2268
+ };
2269
+ /**
2270
+ * @category sequencing
2271
+ * @since 2.11.0
2272
+ */
2273
+ export var chainRecDepthFirst = RA.chainRecDepthFirst;
2274
+ /**
2275
+ * @category instances
2276
+ * @since 2.11.0
2277
+ */
2278
+ export var ChainRecDepthFirst = {
2279
+ URI: URI,
2280
+ map: _map,
2281
+ ap: _ap,
2282
+ chain: flatMap,
2283
+ chainRec: _chainRecDepthFirst
2284
+ };
2285
+ /**
2286
+ * @category sequencing
2287
+ * @since 2.11.0
2288
+ */
2289
+ export var chainRecBreadthFirst = RA.chainRecBreadthFirst;
2290
+ /**
2291
+ * @category instances
2292
+ * @since 2.11.0
2293
+ */
2294
+ export var ChainRecBreadthFirst = {
2295
+ URI: URI,
2296
+ map: _map,
2297
+ ap: _ap,
2298
+ chain: flatMap,
2299
+ chainRec: _chainRecBreadthFirst
2300
+ };
2301
+ /**
2302
+ * Filter values inside a context.
2303
+ *
2304
+ * @since 2.11.0
2305
+ */
2306
+ export var filterE = /*#__PURE__*/ filterE_(Witherable);
2307
+ /**
2308
+ * @category instances
2309
+ * @since 2.11.0
2310
+ */
2311
+ export var FromEither = {
2312
+ URI: URI,
2313
+ fromEither: fromEither
2314
+ };
2315
+ /**
2316
+ * @category lifting
2317
+ * @since 2.11.0
2318
+ */
2319
+ export var fromEitherK = /*#__PURE__*/ fromEitherK_(FromEither);
2320
+ // -------------------------------------------------------------------------------------
2321
+ // unsafe
2322
+ // -------------------------------------------------------------------------------------
2323
+ /**
2324
+ * @category unsafe
2325
+ * @since 2.0.0
2326
+ */
2327
+ export var unsafeInsertAt = NEA.unsafeInsertAt;
2328
+ /**
2329
+ * @category unsafe
2330
+ * @since 2.0.0
2331
+ */
2332
+ export var unsafeUpdateAt = function (i, a, as) {
2333
+ return isNonEmpty(as) ? NEA.unsafeUpdateAt(i, a, as) : [];
2334
+ };
2335
+ /**
2336
+ * @category unsafe
2337
+ * @since 2.0.0
2338
+ */
2339
+ export var unsafeDeleteAt = function (i, as) {
2340
+ var xs = as.slice();
2341
+ xs.splice(i, 1);
2342
+ return xs;
2343
+ };
2344
+ // -------------------------------------------------------------------------------------
2345
+ // utils
2346
+ // -------------------------------------------------------------------------------------
2347
+ /**
2348
+ * `every` tells if the provided predicate holds true for every element in the `Array`.
2349
+ *
2350
+ * @example
2351
+ * import { every } from 'fp-ts/Array'
2352
+ *
2353
+ * assert.equal(every((x: number) => x >= 0)([1, 2, 3]), true);
2354
+ * assert.equal(every((x: number) => x >= 0)([-1, 2, 3]), false);
2355
+ *
2356
+ * @since 2.9.0
2357
+ */
2358
+ export var every = RA.every;
2359
+ /**
2360
+ * `some` tells if the provided predicate holds true at least for one element in the `Array`.
2361
+ *
2362
+ * @example
2363
+ * import { some } from 'fp-ts/Array'
2364
+ *
2365
+ * assert.equal(some((x: number) => x >= 0)([1, 2, 3]), true);
2366
+ * assert.equal(some((x: number) => x >= 10)([1, 2, 3]), false);
2367
+ *
2368
+ * @since 2.9.0
2369
+ */
2370
+ export var some = function (predicate) {
2371
+ return function (as) {
2372
+ return as.some(predicate);
2373
+ };
2374
+ };
2375
+ /**
2376
+ * Alias of [`some`](#some)
2377
+ *
2378
+ * @since 2.11.0
2379
+ */
2380
+ export var exists = some;
2381
+ /**
2382
+ * Places an element in between members of an `Array`, then folds the results using the provided `Monoid`.
2383
+ *
2384
+ * @example
2385
+ * import * as S from 'fp-ts/string'
2386
+ * import { intercalate } from 'fp-ts/Array'
2387
+ *
2388
+ * assert.deepStrictEqual(intercalate(S.Monoid)('-')(['a', 'b', 'c']), 'a-b-c')
2389
+ *
2390
+ * @since 2.12.0
2391
+ */
2392
+ export var intercalate = RA.intercalate;
2393
+ // -------------------------------------------------------------------------------------
2394
+ // do notation
2395
+ // -------------------------------------------------------------------------------------
2396
+ /**
2397
+ * @category do notation
2398
+ * @since 2.9.0
2399
+ */
2400
+ export var Do = /*#__PURE__*/ of(_.emptyRecord);
2401
+ /**
2402
+ * @category do notation
2403
+ * @since 2.8.0
2404
+ */
2405
+ export var bindTo = /*#__PURE__*/ bindTo_(Functor);
2406
+ var let_ = /*#__PURE__*/ let__(Functor);
2407
+ export {
2408
+ /**
2409
+ * @category do notation
2410
+ * @since 2.13.0
2411
+ */
2412
+ let_ as let };
2413
+ /**
2414
+ * @category do notation
2415
+ * @since 2.8.0
2416
+ */
2417
+ export var bind = /*#__PURE__*/ bind_(Chain);
2418
+ /**
2419
+ * @category do notation
2420
+ * @since 2.8.0
2421
+ */
2422
+ export var apS = /*#__PURE__*/ apS_(Apply);
2423
+ // -------------------------------------------------------------------------------------
2424
+ // legacy
2425
+ // -------------------------------------------------------------------------------------
2426
+ /**
2427
+ * Alias of `flatMap`.
2428
+ *
2429
+ * @category legacy
2430
+ * @since 2.0.0
2431
+ */
2432
+ export var chain = flatMap;
2433
+ // -------------------------------------------------------------------------------------
2434
+ // deprecated
2435
+ // -------------------------------------------------------------------------------------
2436
+ /**
2437
+ * Use `NonEmptyArray` module instead.
2438
+ *
2439
+ * @category zone of death
2440
+ * @since 2.0.0
2441
+ * @deprecated
2442
+ */
2443
+ export var range = NEA.range;
2444
+ /**
2445
+ * Use a new `[]` instead.
2446
+ *
2447
+ * @category zone of death
2448
+ * @since 2.0.0
2449
+ * @deprecated
2450
+ */
2451
+ export var empty = [];
2452
+ /**
2453
+ * Use `prepend` instead.
2454
+ *
2455
+ * @category zone of death
2456
+ * @since 2.0.0
2457
+ * @deprecated
2458
+ */
2459
+ export var cons = NEA.cons;
2460
+ /**
2461
+ * Use `append` instead.
2462
+ *
2463
+ * @category zone of death
2464
+ * @since 2.0.0
2465
+ * @deprecated
2466
+ */
2467
+ export var snoc = NEA.snoc;
2468
+ /**
2469
+ * Use `prependAll` instead
2470
+ *
2471
+ * @category zone of death
2472
+ * @since 2.9.0
2473
+ * @deprecated
2474
+ */
2475
+ export var prependToAll = prependAll;
2476
+ /**
2477
+ * This instance is deprecated, use small, specific instances instead.
2478
+ * For example if a function needs a `Functor` instance, pass `A.Functor` instead of `A.array`
2479
+ * (where `A` is from `import A from 'fp-ts/Array'`)
2480
+ *
2481
+ * @category zone of death
2482
+ * @since 2.0.0
2483
+ * @deprecated
2484
+ */
2485
+ export var array = {
2486
+ URI: URI,
2487
+ compact: compact,
2488
+ separate: separate,
2489
+ map: _map,
2490
+ ap: _ap,
2491
+ of: of,
2492
+ chain: flatMap,
2493
+ filter: _filter,
2494
+ filterMap: _filterMap,
2495
+ partition: _partition,
2496
+ partitionMap: _partitionMap,
2497
+ mapWithIndex: _mapWithIndex,
2498
+ partitionMapWithIndex: _partitionMapWithIndex,
2499
+ partitionWithIndex: _partitionWithIndex,
2500
+ filterMapWithIndex: _filterMapWithIndex,
2501
+ filterWithIndex: _filterWithIndex,
2502
+ alt: _alt,
2503
+ zero: zero,
2504
+ unfold: unfold,
2505
+ reduce: _reduce,
2506
+ foldMap: _foldMap,
2507
+ reduceRight: _reduceRight,
2508
+ traverse: _traverse,
2509
+ sequence: sequence,
2510
+ reduceWithIndex: _reduceWithIndex,
2511
+ foldMapWithIndex: _foldMapWithIndex,
2512
+ reduceRightWithIndex: _reduceRightWithIndex,
2513
+ traverseWithIndex: _traverseWithIndex,
2514
+ extend: _extend,
2515
+ wither: _wither,
2516
+ wilt: _wilt
2517
+ };