@duplojs/lang 0.0.1-beta.1 → 0.0.1-beta.10

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 (561) hide show
  1. package/dist/array/at/default.d.ts +1 -1
  2. package/dist/array/chunk.d.ts +3 -2
  3. package/dist/array/concat.d.ts +1 -1
  4. package/dist/array/copyWithin.d.ts +1 -1
  5. package/dist/array/fill/all.d.ts +1 -1
  6. package/dist/array/fill/default.d.ts +3 -3
  7. package/dist/array/filter.d.ts +1 -1
  8. package/dist/array/findAndReplace.d.ts +1 -1
  9. package/dist/array/findAndSplice/delete.d.ts +1 -1
  10. package/dist/array/findAndSplice/insert.d.ts +1 -1
  11. package/dist/array/index.cjs +0 -3
  12. package/dist/array/index.d.ts +0 -1
  13. package/dist/array/index.mjs +1 -3
  14. package/dist/array/insert.d.ts +3 -3
  15. package/dist/array/length.d.ts +1 -1
  16. package/dist/array/lengthEqual.d.ts +1 -1
  17. package/dist/array/map.d.ts +1 -1
  18. package/dist/array/maxElements.d.ts +1 -1
  19. package/dist/array/minElements.d.ts +1 -1
  20. package/dist/array/pop.d.ts +1 -1
  21. package/dist/array/prepend.d.ts +1 -1
  22. package/dist/array/push.d.ts +3 -3
  23. package/dist/array/reverse.d.ts +1 -1
  24. package/dist/array/shift.d.ts +1 -1
  25. package/dist/array/sort.d.ts +1 -1
  26. package/dist/array/splice/delete.d.ts +1 -1
  27. package/dist/array/splice/insert.d.ts +1 -1
  28. package/dist/array/unshift.d.ts +3 -3
  29. package/dist/chrono/createDate.cjs +9 -9
  30. package/dist/chrono/createDate.d.ts +3 -3
  31. package/dist/chrono/createDate.mjs +9 -9
  32. package/dist/chrono/createTime.cjs +24 -13
  33. package/dist/chrono/createTime.mjs +24 -13
  34. package/dist/chrono/theDate.cjs +15 -16
  35. package/dist/chrono/theDate.d.ts +15 -15
  36. package/dist/chrono/theDate.mjs +15 -16
  37. package/dist/chrono/theTime.cjs +0 -1
  38. package/dist/chrono/theTime.mjs +0 -1
  39. package/dist/chrono/types/spoolingTime.d.ts +2 -1
  40. package/dist/common/constraint/cast/index.d.ts +3 -3
  41. package/dist/common/constraint/cast/number.d.ts +15 -0
  42. package/dist/common/constraint/cast/string.d.ts +21 -0
  43. package/dist/common/constraint/index.d.ts +2 -0
  44. package/dist/common/constraint/infer/array.d.ts +7 -0
  45. package/dist/{array/infer.cjs → common/constraint/infer/index.cjs} +1 -1
  46. package/dist/common/constraint/infer/index.d.ts +26 -0
  47. package/dist/{string/infer.mjs → common/constraint/infer/index.mjs} +1 -1
  48. package/dist/common/constraint/infer/number.d.ts +11 -0
  49. package/dist/common/constraint/infer/string.d.ts +13 -0
  50. package/dist/common/constraint/remove.cjs +6 -0
  51. package/dist/common/constraint/remove.d.ts +2 -0
  52. package/dist/common/constraint/remove.mjs +6 -0
  53. package/dist/common/index.cjs +6 -0
  54. package/dist/common/index.mjs +5 -1
  55. package/dist/common/isType.d.ts +3 -2
  56. package/dist/common/types/forward.d.ts +1 -0
  57. package/dist/common/types/index.d.ts +3 -0
  58. package/dist/common/types/isObject.d.ts +8 -0
  59. package/dist/common/types/json.d.ts +1 -1
  60. package/dist/common/types/splitPromise.d.ts +1 -0
  61. package/dist/dataStructure/common/codec/base.cjs +29 -0
  62. package/dist/dataStructure/common/{codec.d.ts → codec/base.d.ts} +8 -8
  63. package/dist/dataStructure/common/codec/base.mjs +26 -0
  64. package/dist/dataStructure/common/codec/defaults/index.d.ts +2 -0
  65. package/dist/dataStructure/common/codec/defaults/json.cjs +26 -0
  66. package/dist/dataStructure/common/codec/defaults/json.d.ts +6 -0
  67. package/dist/dataStructure/common/codec/defaults/json.mjs +26 -0
  68. package/dist/dataStructure/common/codec/defaults/string.cjs +44 -0
  69. package/dist/dataStructure/common/codec/defaults/string.d.ts +11 -0
  70. package/dist/dataStructure/common/codec/defaults/string.mjs +44 -0
  71. package/dist/dataStructure/common/codec/index.d.ts +2 -0
  72. package/dist/dataStructure/common/error/base.cjs +73 -0
  73. package/dist/dataStructure/common/error/base.d.ts +50 -0
  74. package/dist/dataStructure/common/error/base.mjs +69 -0
  75. package/dist/dataStructure/common/error/defaultInterpreter.cjs +84 -0
  76. package/dist/dataStructure/common/error/defaultInterpreter.d.ts +57 -0
  77. package/dist/dataStructure/common/error/defaultInterpreter.mjs +83 -0
  78. package/dist/dataStructure/common/error/index.d.ts +3 -0
  79. package/dist/dataStructure/common/error/interpreter.cjs +45 -0
  80. package/dist/dataStructure/common/error/interpreter.d.ts +36 -0
  81. package/dist/dataStructure/common/error/interpreter.mjs +45 -0
  82. package/dist/dataStructure/constraint/base.cjs +34 -5
  83. package/dist/dataStructure/constraint/base.d.ts +13 -4
  84. package/dist/dataStructure/constraint/base.mjs +34 -6
  85. package/dist/dataStructure/constraint/defaults/absolutePath.cjs +13 -0
  86. package/dist/dataStructure/constraint/defaults/absolutePath.d.ts +10 -0
  87. package/dist/dataStructure/constraint/defaults/absolutePath.mjs +12 -0
  88. package/dist/dataStructure/constraint/defaults/allowedCharacters.cjs +1 -1
  89. package/dist/dataStructure/constraint/defaults/allowedCharacters.d.ts +1 -3
  90. package/dist/dataStructure/constraint/defaults/allowedCharacters.mjs +1 -1
  91. package/dist/dataStructure/constraint/defaults/arrayLengthEqual.cjs +1 -1
  92. package/dist/dataStructure/constraint/defaults/arrayLengthEqual.d.ts +1 -1
  93. package/dist/dataStructure/constraint/defaults/arrayLengthEqual.mjs +1 -1
  94. package/dist/dataStructure/constraint/defaults/betweenThan.cjs +1 -1
  95. package/dist/dataStructure/constraint/defaults/betweenThan.d.ts +1 -1
  96. package/dist/dataStructure/constraint/defaults/betweenThan.mjs +1 -1
  97. package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.cjs +1 -1
  98. package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.d.ts +1 -1
  99. package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.mjs +1 -1
  100. package/dist/dataStructure/constraint/defaults/email.cjs +1 -1
  101. package/dist/dataStructure/constraint/defaults/email.d.ts +1 -1
  102. package/dist/dataStructure/constraint/defaults/email.mjs +1 -1
  103. package/dist/dataStructure/constraint/defaults/even.cjs +1 -1
  104. package/dist/dataStructure/constraint/defaults/even.d.ts +1 -1
  105. package/dist/dataStructure/constraint/defaults/even.mjs +1 -1
  106. package/dist/dataStructure/constraint/defaults/greaterThan.cjs +1 -1
  107. package/dist/dataStructure/constraint/defaults/greaterThan.d.ts +1 -1
  108. package/dist/dataStructure/constraint/defaults/greaterThan.mjs +1 -1
  109. package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.cjs +1 -1
  110. package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.d.ts +1 -1
  111. package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.mjs +1 -1
  112. package/dist/dataStructure/constraint/defaults/index.d.ts +6 -0
  113. package/dist/dataStructure/constraint/defaults/integer.cjs +1 -1
  114. package/dist/dataStructure/constraint/defaults/integer.d.ts +1 -1
  115. package/dist/dataStructure/constraint/defaults/integer.mjs +1 -1
  116. package/dist/dataStructure/constraint/defaults/lessThan.cjs +1 -1
  117. package/dist/dataStructure/constraint/defaults/lessThan.d.ts +1 -1
  118. package/dist/dataStructure/constraint/defaults/lessThan.mjs +1 -1
  119. package/dist/dataStructure/constraint/defaults/lessThanOrEqual.cjs +1 -1
  120. package/dist/dataStructure/constraint/defaults/lessThanOrEqual.d.ts +1 -1
  121. package/dist/dataStructure/constraint/defaults/lessThanOrEqual.mjs +1 -1
  122. package/dist/dataStructure/constraint/defaults/maxCharacters.cjs +1 -1
  123. package/dist/dataStructure/constraint/defaults/maxCharacters.d.ts +1 -1
  124. package/dist/dataStructure/constraint/defaults/maxCharacters.mjs +1 -1
  125. package/dist/dataStructure/constraint/defaults/maxElements.cjs +1 -1
  126. package/dist/dataStructure/constraint/defaults/maxElements.d.ts +1 -1
  127. package/dist/dataStructure/constraint/defaults/maxElements.mjs +1 -1
  128. package/dist/dataStructure/constraint/defaults/minCharacters.cjs +4 -4
  129. package/dist/dataStructure/constraint/defaults/minCharacters.d.ts +2 -2
  130. package/dist/dataStructure/constraint/defaults/minCharacters.mjs +4 -4
  131. package/dist/dataStructure/constraint/defaults/minElements.cjs +1 -1
  132. package/dist/dataStructure/constraint/defaults/minElements.d.ts +1 -1
  133. package/dist/dataStructure/constraint/defaults/minElements.mjs +1 -1
  134. package/dist/dataStructure/constraint/defaults/multipleOf.cjs +1 -1
  135. package/dist/dataStructure/constraint/defaults/multipleOf.d.ts +1 -1
  136. package/dist/dataStructure/constraint/defaults/multipleOf.mjs +1 -1
  137. package/dist/dataStructure/constraint/defaults/negative.cjs +1 -1
  138. package/dist/dataStructure/constraint/defaults/negative.d.ts +1 -1
  139. package/dist/dataStructure/constraint/defaults/negative.mjs +1 -1
  140. package/dist/dataStructure/constraint/defaults/notEmpty.cjs +1 -1
  141. package/dist/dataStructure/constraint/defaults/notEmpty.d.ts +1 -1
  142. package/dist/dataStructure/constraint/defaults/notEmpty.mjs +1 -1
  143. package/dist/dataStructure/constraint/defaults/notZero.cjs +1 -1
  144. package/dist/dataStructure/constraint/defaults/notZero.d.ts +1 -1
  145. package/dist/dataStructure/constraint/defaults/notZero.mjs +1 -1
  146. package/dist/dataStructure/constraint/defaults/numberInString.cjs +13 -0
  147. package/dist/dataStructure/constraint/defaults/numberInString.d.ts +10 -0
  148. package/dist/dataStructure/constraint/defaults/numberInString.mjs +12 -0
  149. package/dist/dataStructure/constraint/defaults/odd.cjs +1 -1
  150. package/dist/dataStructure/constraint/defaults/odd.d.ts +1 -1
  151. package/dist/dataStructure/constraint/defaults/odd.mjs +1 -1
  152. package/dist/dataStructure/constraint/defaults/path.cjs +13 -0
  153. package/dist/dataStructure/constraint/defaults/path.d.ts +10 -0
  154. package/dist/dataStructure/constraint/defaults/path.mjs +12 -0
  155. package/dist/dataStructure/constraint/defaults/positive.cjs +1 -1
  156. package/dist/dataStructure/constraint/defaults/positive.d.ts +1 -1
  157. package/dist/dataStructure/constraint/defaults/positive.mjs +1 -1
  158. package/dist/dataStructure/constraint/defaults/refine.cjs +1 -1
  159. package/dist/dataStructure/constraint/defaults/refine.d.ts +1 -1
  160. package/dist/dataStructure/constraint/defaults/refine.mjs +1 -1
  161. package/dist/dataStructure/constraint/defaults/regex.cjs +13 -0
  162. package/dist/dataStructure/constraint/defaults/regex.d.ts +10 -0
  163. package/dist/dataStructure/constraint/defaults/regex.mjs +12 -0
  164. package/dist/dataStructure/constraint/defaults/safe.cjs +1 -1
  165. package/dist/dataStructure/constraint/defaults/safe.d.ts +1 -1
  166. package/dist/dataStructure/constraint/defaults/safe.mjs +1 -1
  167. package/dist/dataStructure/constraint/defaults/segmentPath.cjs +13 -0
  168. package/dist/dataStructure/constraint/defaults/segmentPath.d.ts +10 -0
  169. package/dist/dataStructure/constraint/defaults/segmentPath.mjs +12 -0
  170. package/dist/dataStructure/constraint/defaults/strictNegative.cjs +1 -1
  171. package/dist/dataStructure/constraint/defaults/strictNegative.d.ts +1 -1
  172. package/dist/dataStructure/constraint/defaults/strictNegative.mjs +1 -1
  173. package/dist/dataStructure/constraint/defaults/strictPositive.cjs +1 -1
  174. package/dist/dataStructure/constraint/defaults/strictPositive.d.ts +1 -1
  175. package/dist/dataStructure/constraint/defaults/strictPositive.mjs +1 -1
  176. package/dist/dataStructure/constraint/defaults/stringLengthEqual.cjs +1 -1
  177. package/dist/dataStructure/constraint/defaults/stringLengthEqual.d.ts +1 -1
  178. package/dist/dataStructure/constraint/defaults/stringLengthEqual.mjs +1 -1
  179. package/dist/dataStructure/constraint/defaults/trimmed.cjs +13 -0
  180. package/dist/dataStructure/constraint/defaults/trimmed.d.ts +10 -0
  181. package/dist/dataStructure/constraint/defaults/trimmed.mjs +12 -0
  182. package/dist/dataStructure/constraint/defaults/url.cjs +2 -2
  183. package/dist/dataStructure/constraint/defaults/url.d.ts +2 -3
  184. package/dist/dataStructure/constraint/defaults/url.mjs +2 -2
  185. package/dist/dataStructure/constraint/defaults/uuid.cjs +2 -4
  186. package/dist/dataStructure/constraint/defaults/uuid.d.ts +1 -3
  187. package/dist/dataStructure/constraint/defaults/uuid.mjs +4 -5
  188. package/dist/dataStructure/constraint/identifier.d.ts +3 -4
  189. package/dist/dataStructure/constraint/types/constraints.d.ts +22 -15
  190. package/dist/dataStructure/fundamentalType/base.cjs +3 -3
  191. package/dist/dataStructure/fundamentalType/base.d.ts +4 -5
  192. package/dist/dataStructure/fundamentalType/base.mjs +3 -3
  193. package/dist/dataStructure/fundamentalType/defaults/bigint.cjs +4 -2
  194. package/dist/dataStructure/fundamentalType/defaults/bigint.d.ts +4 -4
  195. package/dist/dataStructure/fundamentalType/defaults/bigint.mjs +5 -2
  196. package/dist/dataStructure/fundamentalType/defaults/boolean.cjs +4 -2
  197. package/dist/dataStructure/fundamentalType/defaults/boolean.d.ts +4 -4
  198. package/dist/dataStructure/fundamentalType/defaults/boolean.mjs +5 -2
  199. package/dist/dataStructure/fundamentalType/defaults/date.cjs +4 -2
  200. package/dist/dataStructure/fundamentalType/defaults/date.d.ts +4 -4
  201. package/dist/dataStructure/fundamentalType/defaults/date.mjs +5 -2
  202. package/dist/dataStructure/fundamentalType/defaults/null.cjs +4 -2
  203. package/dist/dataStructure/fundamentalType/defaults/null.d.ts +4 -4
  204. package/dist/dataStructure/fundamentalType/defaults/null.mjs +5 -2
  205. package/dist/dataStructure/fundamentalType/defaults/number.cjs +4 -2
  206. package/dist/dataStructure/fundamentalType/defaults/number.d.ts +4 -4
  207. package/dist/dataStructure/fundamentalType/defaults/number.mjs +5 -2
  208. package/dist/dataStructure/fundamentalType/defaults/string.cjs +4 -2
  209. package/dist/dataStructure/fundamentalType/defaults/string.d.ts +4 -4
  210. package/dist/dataStructure/fundamentalType/defaults/string.mjs +5 -2
  211. package/dist/dataStructure/fundamentalType/defaults/time.cjs +4 -2
  212. package/dist/dataStructure/fundamentalType/defaults/time.d.ts +4 -4
  213. package/dist/dataStructure/fundamentalType/defaults/time.mjs +5 -2
  214. package/dist/dataStructure/fundamentalType/defaults/undefined.cjs +4 -2
  215. package/dist/dataStructure/fundamentalType/defaults/undefined.d.ts +4 -4
  216. package/dist/dataStructure/fundamentalType/defaults/undefined.mjs +5 -2
  217. package/dist/dataStructure/fundamentalType/identifier.d.ts +3 -4
  218. package/dist/dataStructure/helpers/absolutePath.cjs +7 -0
  219. package/dist/dataStructure/helpers/absolutePath.d.ts +2 -0
  220. package/dist/dataStructure/helpers/absolutePath.mjs +7 -0
  221. package/dist/dataStructure/helpers/array.d.ts +1 -1
  222. package/dist/dataStructure/helpers/bigint.d.ts +1 -1
  223. package/dist/dataStructure/helpers/boolean.d.ts +1 -1
  224. package/dist/dataStructure/helpers/date.d.ts +1 -1
  225. package/dist/dataStructure/helpers/extend.d.ts +1 -1
  226. package/dist/dataStructure/helpers/index.d.ts +10 -1
  227. package/dist/dataStructure/helpers/isNullable.cjs +12 -0
  228. package/dist/dataStructure/helpers/isNullable.d.ts +2 -0
  229. package/dist/dataStructure/helpers/isNullable.mjs +12 -0
  230. package/dist/dataStructure/helpers/isOptional.cjs +12 -0
  231. package/dist/dataStructure/helpers/isOptional.d.ts +2 -0
  232. package/dist/dataStructure/helpers/isOptional.mjs +12 -0
  233. package/dist/dataStructure/helpers/lazy.d.ts +1 -1
  234. package/dist/dataStructure/helpers/null.d.ts +1 -1
  235. package/dist/dataStructure/helpers/nullable.cjs +5 -2
  236. package/dist/dataStructure/helpers/nullable.mjs +5 -2
  237. package/dist/dataStructure/helpers/number.d.ts +1 -1
  238. package/dist/dataStructure/helpers/numberInString.cjs +7 -0
  239. package/dist/dataStructure/helpers/numberInString.d.ts +2 -0
  240. package/dist/dataStructure/helpers/numberInString.mjs +7 -0
  241. package/dist/dataStructure/helpers/object.d.ts +1 -1
  242. package/dist/dataStructure/helpers/optional.cjs +5 -2
  243. package/dist/dataStructure/helpers/optional.mjs +5 -2
  244. package/dist/dataStructure/helpers/partial.cjs +5 -2
  245. package/dist/dataStructure/helpers/partial.mjs +5 -2
  246. package/dist/dataStructure/helpers/path.cjs +7 -0
  247. package/dist/dataStructure/helpers/path.d.ts +2 -0
  248. package/dist/dataStructure/helpers/path.mjs +7 -0
  249. package/dist/dataStructure/helpers/record.d.ts +1 -1
  250. package/dist/dataStructure/helpers/regex.cjs +7 -0
  251. package/dist/dataStructure/helpers/regex.d.ts +2 -0
  252. package/dist/dataStructure/helpers/regex.mjs +7 -0
  253. package/dist/dataStructure/helpers/required.cjs +6 -3
  254. package/dist/dataStructure/helpers/required.d.ts +2 -1
  255. package/dist/dataStructure/helpers/required.mjs +6 -3
  256. package/dist/dataStructure/helpers/segmentPath.cjs +7 -0
  257. package/dist/dataStructure/helpers/segmentPath.d.ts +2 -0
  258. package/dist/dataStructure/helpers/segmentPath.mjs +7 -0
  259. package/dist/dataStructure/helpers/string.d.ts +1 -1
  260. package/dist/dataStructure/helpers/time.d.ts +1 -1
  261. package/dist/dataStructure/helpers/trimmed.cjs +7 -0
  262. package/dist/dataStructure/helpers/trimmed.d.ts +2 -0
  263. package/dist/dataStructure/helpers/trimmed.mjs +7 -0
  264. package/dist/dataStructure/helpers/undefined.d.ts +1 -1
  265. package/dist/dataStructure/helpers/union.d.ts +1 -1
  266. package/dist/dataStructure/helpers/unwrapLazy.cjs +9 -0
  267. package/dist/dataStructure/helpers/unwrapLazy.d.ts +2 -0
  268. package/dist/dataStructure/helpers/unwrapLazy.mjs +9 -0
  269. package/dist/dataStructure/helpers/url.cjs +2 -2
  270. package/dist/dataStructure/helpers/url.d.ts +1 -2
  271. package/dist/dataStructure/helpers/url.mjs +2 -2
  272. package/dist/dataStructure/index.cjs +158 -60
  273. package/dist/dataStructure/index.mjs +80 -21
  274. package/dist/dataStructure/structure/base.cjs +22 -12
  275. package/dist/dataStructure/structure/base.d.ts +8 -5
  276. package/dist/dataStructure/structure/base.mjs +16 -6
  277. package/dist/dataStructure/structure/defaults/array.d.ts +2 -2
  278. package/dist/dataStructure/structure/defaults/index.d.ts +1 -0
  279. package/dist/dataStructure/structure/defaults/lazy.cjs +10 -3
  280. package/dist/dataStructure/structure/defaults/lazy.d.ts +2 -2
  281. package/dist/dataStructure/structure/defaults/lazy.mjs +10 -3
  282. package/dist/dataStructure/structure/defaults/nonEncodableString.cjs +17 -0
  283. package/dist/dataStructure/structure/defaults/nonEncodableString.d.ts +10 -0
  284. package/dist/dataStructure/structure/defaults/nonEncodableString.mjs +16 -0
  285. package/dist/dataStructure/structure/defaults/object.d.ts +2 -2
  286. package/dist/dataStructure/structure/defaults/record.cjs +7 -7
  287. package/dist/dataStructure/structure/defaults/record.d.ts +3 -3
  288. package/dist/dataStructure/structure/defaults/record.mjs +7 -7
  289. package/dist/dataStructure/structure/defaults/type.cjs +1 -1
  290. package/dist/dataStructure/structure/defaults/type.d.ts +2 -2
  291. package/dist/dataStructure/structure/defaults/type.mjs +2 -2
  292. package/dist/dataStructure/structure/defaults/union.cjs +23 -17
  293. package/dist/dataStructure/structure/defaults/union.d.ts +3 -3
  294. package/dist/dataStructure/structure/defaults/union.mjs +21 -15
  295. package/dist/dataStructure/structure/identifier.d.ts +3 -4
  296. package/dist/dataStructure/structure/types/constraintsValue.d.ts +1 -1
  297. package/dist/dataStructure/structure/types/structures.d.ts +2 -1
  298. package/dist/dataStructure/structure/types/value.d.ts +1 -1
  299. package/dist/dataStructure/type/base.cjs +17 -4
  300. package/dist/dataStructure/type/base.d.ts +7 -3
  301. package/dist/dataStructure/type/base.mjs +17 -4
  302. package/dist/dataStructure/type/defaults/bigint.d.ts +1 -1
  303. package/dist/dataStructure/type/defaults/bigintLiteral.cjs +1 -1
  304. package/dist/dataStructure/type/defaults/bigintLiteral.d.ts +1 -1
  305. package/dist/dataStructure/type/defaults/bigintLiteral.mjs +1 -1
  306. package/dist/dataStructure/type/defaults/boolean.d.ts +1 -1
  307. package/dist/dataStructure/type/defaults/booleanLiteral.cjs +1 -1
  308. package/dist/dataStructure/type/defaults/booleanLiteral.d.ts +1 -1
  309. package/dist/dataStructure/type/defaults/booleanLiteral.mjs +1 -1
  310. package/dist/dataStructure/type/defaults/date.d.ts +1 -1
  311. package/dist/dataStructure/type/defaults/null.d.ts +1 -1
  312. package/dist/dataStructure/type/defaults/number.d.ts +1 -1
  313. package/dist/dataStructure/type/defaults/numberLiteral.cjs +1 -1
  314. package/dist/dataStructure/type/defaults/numberLiteral.d.ts +1 -1
  315. package/dist/dataStructure/type/defaults/numberLiteral.mjs +1 -1
  316. package/dist/dataStructure/type/defaults/string.d.ts +1 -1
  317. package/dist/dataStructure/type/defaults/stringLiteral.cjs +1 -1
  318. package/dist/dataStructure/type/defaults/stringLiteral.d.ts +1 -1
  319. package/dist/dataStructure/type/defaults/stringLiteral.mjs +1 -1
  320. package/dist/dataStructure/type/defaults/time.d.ts +1 -1
  321. package/dist/dataStructure/type/defaults/undefined.d.ts +1 -1
  322. package/dist/dataStructure/type/identifier.d.ts +3 -4
  323. package/dist/either/index.cjs +30 -8
  324. package/dist/either/index.d.ts +4 -0
  325. package/dist/either/index.mjs +23 -9
  326. package/dist/either/left/index.d.ts +3 -2
  327. package/dist/either/left/none.cjs +15 -0
  328. package/dist/either/left/none.d.ts +7 -0
  329. package/dist/either/left/none.mjs +14 -0
  330. package/dist/either/matchInformationOtherwise.d.ts +1 -1
  331. package/dist/either/rewriteInformation.cjs +22 -0
  332. package/dist/either/rewriteInformation.d.ts +14 -0
  333. package/dist/either/rewriteInformation.mjs +22 -0
  334. package/dist/either/right/asyncGroup.cjs +2 -2
  335. package/dist/either/right/asyncGroup.mjs +2 -2
  336. package/dist/either/right/group.cjs +1 -1
  337. package/dist/either/right/group.mjs +1 -1
  338. package/dist/either/right/index.d.ts +6 -5
  339. package/dist/either/right/some.cjs +15 -0
  340. package/dist/either/right/some.d.ts +7 -0
  341. package/dist/either/right/some.mjs +14 -0
  342. package/dist/either/toMaybe.cjs +12 -0
  343. package/dist/either/toMaybe.d.ts +5 -0
  344. package/dist/either/toMaybe.mjs +12 -0
  345. package/dist/either/types/mayBe.d.ts +3 -0
  346. package/dist/either/unwrapOr.cjs +14 -0
  347. package/dist/either/unwrapOr.d.ts +8 -0
  348. package/dist/either/unwrapOr.mjs +14 -0
  349. package/dist/either/unwrapOtherwise.cjs +14 -0
  350. package/dist/either/unwrapOtherwise.d.ts +8 -0
  351. package/dist/either/unwrapOtherwise.mjs +14 -0
  352. package/dist/generator/asyncChunk.d.ts +3 -2
  353. package/dist/generator/chunk.d.ts +3 -2
  354. package/dist/generator/reduce.cjs +2 -1
  355. package/dist/generator/reduce.mjs +1 -1
  356. package/dist/generator/types/flat.d.ts +2 -2
  357. package/dist/index.cjs +43 -39
  358. package/dist/index.mjs +4 -2
  359. package/dist/invocation/flow/base.d.ts +8 -3
  360. package/dist/invocation/flow/controller/base.d.ts +1 -0
  361. package/dist/invocation/flow/controller/defaults/aborter.cjs +38 -0
  362. package/dist/invocation/flow/controller/defaults/aborter.d.ts +17 -0
  363. package/dist/invocation/flow/controller/defaults/aborter.mjs +36 -0
  364. package/dist/invocation/flow/controller/defaults/debounce.d.ts +1 -1
  365. package/dist/invocation/flow/controller/defaults/filter.cjs +5 -3
  366. package/dist/invocation/flow/controller/defaults/filter.d.ts +1 -1
  367. package/dist/invocation/flow/controller/defaults/filter.mjs +5 -3
  368. package/dist/invocation/flow/controller/defaults/index.d.ts +1 -0
  369. package/dist/invocation/flow/controller/defaults/retry.d.ts +1 -1
  370. package/dist/invocation/flow/controller/defaults/throttling.d.ts +1 -1
  371. package/dist/invocation/flow/controller/defaults/timeout.d.ts +1 -1
  372. package/dist/invocation/index.cjs +15 -8
  373. package/dist/invocation/index.d.ts +1 -1
  374. package/dist/invocation/index.mjs +10 -6
  375. package/dist/invocation/reader.cjs +26 -0
  376. package/dist/invocation/reader.d.ts +28 -0
  377. package/dist/invocation/reader.mjs +25 -0
  378. package/dist/kind/createIdentifier.d.ts +8 -4
  379. package/dist/kind/types/getName.d.ts +2 -0
  380. package/dist/kind/types/getNamespaceName.d.ts +3 -0
  381. package/dist/kind/types/index.d.ts +2 -0
  382. package/dist/kind/types/remove.d.ts +2 -2
  383. package/dist/modeling/entity/base.cjs +38 -11
  384. package/dist/modeling/entity/base.d.ts +25 -10
  385. package/dist/modeling/entity/base.mjs +32 -6
  386. package/dist/modeling/entity/helper.d.ts +1 -1
  387. package/dist/modeling/entity/index.d.ts +0 -1
  388. package/dist/modeling/entity/namespace.cjs +2 -2
  389. package/dist/modeling/entity/namespace.d.ts +1 -1
  390. package/dist/modeling/entity/namespace.mjs +3 -3
  391. package/dist/modeling/flag/base.cjs +1 -5
  392. package/dist/modeling/flag/base.d.ts +6 -7
  393. package/dist/modeling/flag/base.mjs +1 -5
  394. package/dist/modeling/index.cjs +45 -28
  395. package/dist/modeling/index.d.ts +1 -0
  396. package/dist/modeling/index.mjs +18 -9
  397. package/dist/modeling/newType/base.cjs +34 -13
  398. package/dist/modeling/newType/base.d.ts +9 -2
  399. package/dist/modeling/newType/base.mjs +26 -7
  400. package/dist/modeling/newType/helper.cjs +2 -2
  401. package/dist/modeling/newType/helper.d.ts +1 -1
  402. package/dist/modeling/newType/helper.mjs +2 -2
  403. package/dist/modeling/taggedObject/base.cjs +113 -0
  404. package/dist/modeling/taggedObject/base.d.ts +61 -0
  405. package/dist/modeling/taggedObject/base.mjs +110 -0
  406. package/dist/modeling/taggedObject/helper.cjs +34 -0
  407. package/dist/modeling/taggedObject/helper.d.ts +15 -0
  408. package/dist/modeling/taggedObject/helper.mjs +31 -0
  409. package/dist/modeling/taggedObject/index.d.ts +2 -0
  410. package/dist/number/betweenThan.d.ts +2 -2
  411. package/dist/number/betweenThanOrEqual.d.ts +2 -2
  412. package/dist/number/greaterThan.d.ts +1 -1
  413. package/dist/number/greaterThanOrEqual.d.ts +1 -1
  414. package/dist/number/index.cjs +0 -3
  415. package/dist/number/index.d.ts +0 -1
  416. package/dist/number/index.mjs +1 -3
  417. package/dist/number/lessThan.d.ts +1 -1
  418. package/dist/number/lessThanOrEqual.d.ts +1 -1
  419. package/dist/number/sort.d.ts +1 -1
  420. package/dist/number/types/isGreater.d.ts +5 -5
  421. package/dist/object/assign.d.ts +3 -3
  422. package/dist/object/types/assign.d.ts +2 -0
  423. package/dist/object/types/forbiddenUndefinedProps.d.ts +3 -0
  424. package/dist/object/types/index.d.ts +4 -2
  425. package/dist/object/types/override.d.ts +4 -0
  426. package/dist/object/types/split.d.ts +2 -2
  427. package/dist/path/computeRelative.cjs +5 -6
  428. package/dist/path/computeRelative.d.ts +1 -1
  429. package/dist/path/computeRelative.mjs +5 -6
  430. package/dist/path/constraints/absolute.d.ts +1 -1
  431. package/dist/path/constraints/index.d.ts +2 -1
  432. package/dist/path/constraints/segment.d.ts +3 -0
  433. package/dist/path/getBaseName.cjs +7 -7
  434. package/dist/path/getBaseName.d.ts +2 -2
  435. package/dist/path/getBaseName.mjs +7 -7
  436. package/dist/path/getExtensionName.cjs +9 -4
  437. package/dist/path/getExtensionName.d.ts +2 -2
  438. package/dist/path/getExtensionName.mjs +9 -4
  439. package/dist/path/getParentFolderPath.cjs +9 -4
  440. package/dist/path/getParentFolderPath.d.ts +1 -2
  441. package/dist/path/getParentFolderPath.mjs +9 -4
  442. package/dist/path/index.cjs +6 -3
  443. package/dist/path/index.d.ts +3 -2
  444. package/dist/path/index.mjs +5 -3
  445. package/dist/path/is.cjs +9 -4
  446. package/dist/path/is.d.ts +4 -2
  447. package/dist/path/is.mjs +9 -4
  448. package/dist/path/isAbsolute.cjs +3 -5
  449. package/dist/path/isAbsolute.d.ts +4 -2
  450. package/dist/path/isAbsolute.mjs +3 -5
  451. package/dist/path/isSegment.cjs +6 -0
  452. package/dist/path/isSegment.d.ts +4 -0
  453. package/dist/path/isSegment.mjs +6 -0
  454. package/dist/path/normalize.cjs +18 -0
  455. package/dist/path/normalize.d.ts +2 -0
  456. package/dist/path/normalize.mjs +18 -0
  457. package/dist/path/resolveFrom.cjs +4 -5
  458. package/dist/path/resolveFrom.d.ts +10 -2
  459. package/dist/path/resolveFrom.mjs +4 -5
  460. package/dist/path/resolveRelative.cjs +17 -20
  461. package/dist/path/resolveRelative.d.ts +9 -2
  462. package/dist/path/resolveRelative.mjs +17 -20
  463. package/dist/path/types/index.d.ts +6 -0
  464. package/dist/path/types/isLiteralAbsolutePath.d.ts +2 -0
  465. package/dist/path/types/isLiteralPath.d.ts +20 -0
  466. package/dist/path/types/isLiteralSegmentPath.d.ts +9 -0
  467. package/dist/path/types/requireLiteralAbsolutePath.d.ts +3 -0
  468. package/dist/path/types/requireLiteralPath.d.ts +3 -0
  469. package/dist/path/types/requireLiteralSegmentPath.d.ts +3 -0
  470. package/dist/pattern/index.cjs +12 -0
  471. package/dist/pattern/index.d.ts +4 -0
  472. package/dist/pattern/index.mjs +9 -1
  473. package/dist/pattern/matchWithEntity.cjs +12 -0
  474. package/dist/pattern/matchWithEntity.d.ts +12 -0
  475. package/dist/pattern/matchWithEntity.mjs +12 -0
  476. package/dist/pattern/matchWithEntityOtherwise.cjs +13 -0
  477. package/dist/pattern/matchWithEntityOtherwise.d.ts +14 -0
  478. package/dist/pattern/matchWithEntityOtherwise.mjs +13 -0
  479. package/dist/pattern/matchWithNumber.d.ts +4 -4
  480. package/dist/pattern/matchWithNumberOtherwise.cjs +2 -6
  481. package/dist/pattern/matchWithNumberOtherwise.d.ts +4 -4
  482. package/dist/pattern/matchWithNumberOtherwise.mjs +2 -6
  483. package/dist/pattern/matchWithString.d.ts +4 -4
  484. package/dist/pattern/matchWithStringOtherwise.cjs +2 -6
  485. package/dist/pattern/matchWithStringOtherwise.d.ts +5 -5
  486. package/dist/pattern/matchWithStringOtherwise.mjs +2 -6
  487. package/dist/pattern/matchWithTaggedObject.cjs +12 -0
  488. package/dist/pattern/matchWithTaggedObject.d.ts +12 -0
  489. package/dist/pattern/matchWithTaggedObject.mjs +12 -0
  490. package/dist/pattern/matchWithTaggedObjectOtherwise.cjs +13 -0
  491. package/dist/pattern/matchWithTaggedObjectOtherwise.d.ts +14 -0
  492. package/dist/pattern/matchWithTaggedObjectOtherwise.mjs +13 -0
  493. package/dist/string/at.d.ts +2 -2
  494. package/dist/string/constraints/allowedCharacters.d.ts +3 -3
  495. package/dist/string/constraints/index.d.ts +2 -1
  496. package/dist/string/constraints/number.d.ts +4 -0
  497. package/dist/string/first.d.ts +1 -1
  498. package/dist/string/index.cjs +6 -3
  499. package/dist/string/index.d.ts +1 -1
  500. package/dist/string/index.mjs +5 -3
  501. package/dist/string/isComposedOf.cjs +0 -1
  502. package/dist/string/isComposedOf.d.ts +5 -8
  503. package/dist/string/isComposedOf.mjs +0 -1
  504. package/dist/string/isNumber.cjs +7 -0
  505. package/dist/string/isNumber.d.ts +5 -0
  506. package/dist/string/isNumber.mjs +7 -0
  507. package/dist/string/isUrl.cjs +2 -11
  508. package/dist/string/isUrl.d.ts +1 -5
  509. package/dist/string/isUrl.mjs +2 -11
  510. package/dist/string/last.d.ts +1 -1
  511. package/dist/string/lengthEqual.d.ts +1 -1
  512. package/dist/string/maxCharacters.d.ts +1 -1
  513. package/dist/string/minCharacters.d.ts +1 -1
  514. package/dist/string/padEnd.d.ts +1 -1
  515. package/dist/string/padStart.d.ts +1 -1
  516. package/dist/string/pop.d.ts +1 -1
  517. package/dist/string/shift.d.ts +1 -1
  518. package/dist/string/slice.d.ts +1 -1
  519. package/dist/string/substring.d.ts +1 -1
  520. package/dist/string/to.d.ts +9 -2
  521. package/dist/string/trim/default.d.ts +1 -1
  522. package/dist/string/trim/end.d.ts +1 -1
  523. package/dist/string/trim/index.d.ts +1 -0
  524. package/dist/string/trim/is.cjs +6 -0
  525. package/dist/string/trim/is.d.ts +2 -0
  526. package/dist/string/trim/is.mjs +6 -0
  527. package/dist/string/trim/start.d.ts +1 -1
  528. package/dist/string/types/IsAllowedString.d.ts +5 -0
  529. package/dist/string/types/index.d.ts +5 -5
  530. package/dist/string/types/numberInString.d.ts +1 -0
  531. package/dist/string/types/split.d.ts +1 -1
  532. package/dist/tuple/from.cjs +6 -0
  533. package/dist/tuple/from.d.ts +8 -0
  534. package/dist/tuple/from.mjs +6 -0
  535. package/dist/tuple/index.cjs +6 -1
  536. package/dist/tuple/index.d.ts +1 -0
  537. package/dist/tuple/index.mjs +6 -2
  538. package/package.json +2 -2
  539. package/dist/array/infer.d.ts +0 -14
  540. package/dist/array/infer.mjs +0 -6
  541. package/dist/dataStructure/common/codec.cjs +0 -28
  542. package/dist/dataStructure/common/codec.mjs +0 -25
  543. package/dist/dataStructure/common/error.cjs +0 -53
  544. package/dist/dataStructure/common/error.d.ts +0 -30
  545. package/dist/dataStructure/common/error.mjs +0 -52
  546. package/dist/invocation/useCase.cjs +0 -26
  547. package/dist/invocation/useCase.d.ts +0 -28
  548. package/dist/invocation/useCase.mjs +0 -25
  549. package/dist/modeling/entity/entityName.cjs +0 -13
  550. package/dist/modeling/entity/entityName.d.ts +0 -13
  551. package/dist/modeling/entity/entityName.mjs +0 -13
  552. package/dist/number/infer.cjs +0 -6
  553. package/dist/number/infer.d.ts +0 -12
  554. package/dist/number/infer.mjs +0 -6
  555. package/dist/object/types/assignObjects.d.ts +0 -2
  556. package/dist/path/fix.cjs +0 -8
  557. package/dist/path/fix.d.ts +0 -1
  558. package/dist/path/fix.mjs +0 -8
  559. package/dist/string/infer.cjs +0 -6
  560. package/dist/string/infer.d.ts +0 -12
  561. package/dist/string/types/number.d.ts +0 -1
@@ -1,13 +1,12 @@
1
- const require_fix = require("./fix.cjs");
2
1
  //#region scripts/path/computeRelative.ts
3
2
  function computeRelative(source, destination) {
4
- const sourceSegments = require_fix.fix(source).split("/");
5
- const destinationSegments = require_fix.fix(destination).split("/");
6
- let commonIndex = 1;
3
+ const sourceSegments = source === "/" ? [] : source.slice(1).split("/");
4
+ const destinationSegments = destination === "/" ? [] : destination.slice(1).split("/");
5
+ let commonIndex = 0;
7
6
  while (commonIndex < sourceSegments.length && commonIndex < destinationSegments.length && sourceSegments[commonIndex] === destinationSegments[commonIndex]) commonIndex++;
8
7
  let result = "";
9
- for (let index = commonIndex; index < sourceSegments.length; index++) result += result === "" ? ".." : "/..";
10
- for (let index = commonIndex; index < destinationSegments.length; index++) result += result === "" ? destinationSegments[index] : `/${destinationSegments[index]}`;
8
+ for (let index = commonIndex; index < sourceSegments.length; index++) result += result ? "/.." : "..";
9
+ for (let index = commonIndex; index < destinationSegments.length; index++) result += result ? `/${destinationSegments[index]}` : destinationSegments[index];
11
10
  return result || ".";
12
11
  }
13
12
  //#endregion
@@ -1,2 +1,2 @@
1
1
  import { Absolute, Path } from './constraints';
2
- export declare function computeRelative<GenericSourcePath extends string & Path & Absolute, GenericDestinationPath extends string & Path & Absolute>(source: GenericSourcePath, destination: GenericDestinationPath): string & Path;
2
+ export declare function computeRelative<GenericSourcePath extends string & Absolute, GenericDestinationPath extends string & Absolute>(source: GenericSourcePath, destination: GenericDestinationPath): string & Path;
@@ -1,13 +1,12 @@
1
- import { fix } from "./fix.mjs";
2
1
  //#region scripts/path/computeRelative.ts
3
2
  function computeRelative(source, destination) {
4
- const sourceSegments = fix(source).split("/");
5
- const destinationSegments = fix(destination).split("/");
6
- let commonIndex = 1;
3
+ const sourceSegments = source === "/" ? [] : source.slice(1).split("/");
4
+ const destinationSegments = destination === "/" ? [] : destination.slice(1).split("/");
5
+ let commonIndex = 0;
7
6
  while (commonIndex < sourceSegments.length && commonIndex < destinationSegments.length && sourceSegments[commonIndex] === destinationSegments[commonIndex]) commonIndex++;
8
7
  let result = "";
9
- for (let index = commonIndex; index < sourceSegments.length; index++) result += result === "" ? ".." : "/..";
10
- for (let index = commonIndex; index < destinationSegments.length; index++) result += result === "" ? destinationSegments[index] : `/${destinationSegments[index]}`;
8
+ for (let index = commonIndex; index < sourceSegments.length; index++) result += result ? "/.." : "..";
9
+ for (let index = commonIndex; index < destinationSegments.length; index++) result += result ? `/${destinationSegments[index]}` : destinationSegments[index];
11
10
  return result || ".";
12
11
  }
13
12
  //#endregion
@@ -1,3 +1,3 @@
1
1
  import type * as DCommon from '../../common';
2
- export interface Absolute extends DCommon.Constraint<"path" | "path-absolute"> {
2
+ export interface Absolute extends DCommon.Constraint<"path-absolute"> {
3
3
  }
@@ -1,2 +1,3 @@
1
- export type * from './path';
2
1
  export type * from './absolute';
2
+ export type * from './path';
3
+ export type * from './segment';
@@ -0,0 +1,3 @@
1
+ import type * as DCommon from '../../common';
2
+ export interface Segment extends DCommon.Constraint<"path-segment"> {
3
+ }
@@ -1,12 +1,12 @@
1
+ const require_isSegment = require("./isSegment.cjs");
1
2
  //#region scripts/path/getBaseName.ts
2
- const baseNameRegex = /\/?([^/]+)$/;
3
- const extensionNameRegex = /\.([^./]+)$/;
4
- const segmentTrailingRegex = /\/+$/;
3
+ const baseNameRegex = /([^/]+)$/;
4
+ const extensionNameRegex = /(?<!^)\.[^./]+$/;
5
5
  function getBaseName(path, params) {
6
- const fixedPath = path.replace(segmentTrailingRegex, "");
7
- const baseName = baseNameRegex.exec(fixedPath)?.[1] ?? "";
8
- if (params?.removeExtension) return baseName.replace(extensionNameRegex, "");
9
- return baseName;
6
+ const baseName = baseNameRegex.exec(path)?.[1];
7
+ if (baseName === void 0) return null;
8
+ const result = params?.removeExtension ? baseName.replace(extensionNameRegex, "") : baseName;
9
+ return require_isSegment.isSegment(result) ? result : null;
10
10
  }
11
11
  //#endregion
12
12
  exports.getBaseName = getBaseName;
@@ -1,5 +1,5 @@
1
- import { Path } from './constraints';
1
+ import { Absolute, Path, Segment } from './constraints';
2
2
  export interface GetBaseNameParams {
3
3
  removeExtension?: boolean;
4
4
  }
5
- export declare function getBaseName<GenericPath extends string & Path>(path: GenericPath, params?: GetBaseNameParams): string;
5
+ export declare function getBaseName<GenericPath extends string & (Path | Absolute | Segment)>(path: GenericPath, params?: GetBaseNameParams): (string & Segment) | null;
@@ -1,12 +1,12 @@
1
+ import { isSegment } from "./isSegment.mjs";
1
2
  //#region scripts/path/getBaseName.ts
2
- const baseNameRegex = /\/?([^/]+)$/;
3
- const extensionNameRegex = /\.([^./]+)$/;
4
- const segmentTrailingRegex = /\/+$/;
3
+ const baseNameRegex = /([^/]+)$/;
4
+ const extensionNameRegex = /(?<!^)\.[^./]+$/;
5
5
  function getBaseName(path, params) {
6
- const fixedPath = path.replace(segmentTrailingRegex, "");
7
- const baseName = baseNameRegex.exec(fixedPath)?.[1] ?? "";
8
- if (params?.removeExtension) return baseName.replace(extensionNameRegex, "");
9
- return baseName;
6
+ const baseName = baseNameRegex.exec(path)?.[1];
7
+ if (baseName === void 0) return null;
8
+ const result = params?.removeExtension ? baseName.replace(extensionNameRegex, "") : baseName;
9
+ return isSegment(result) ? result : null;
10
10
  }
11
11
  //#endregion
12
12
  export { getBaseName };
@@ -1,9 +1,14 @@
1
+ const require_isSegment = require("./isSegment.cjs");
1
2
  //#region scripts/path/getExtensionName.ts
2
- const extensionNameRegex = /\.([^./]+)$/;
3
+ const basenameRegex = /([^/]+)$/;
3
4
  function getExtensionName(path, params) {
4
- const match = extensionNameRegex.exec(path);
5
- if (match) return params?.withDot ? `.${match[1]}` : match[1];
6
- return "";
5
+ const baseName = basenameRegex.exec(path)?.[1];
6
+ if (!baseName || baseName === "." || baseName === "..") return null;
7
+ const dotIndex = baseName.lastIndexOf(".");
8
+ if (dotIndex <= 0 || dotIndex === baseName.length - 1) return null;
9
+ const extension = baseName.slice(dotIndex + 1);
10
+ const result = params?.withDot ? `.${extension}` : extension;
11
+ return require_isSegment.isSegment(result) ? result : null;
7
12
  }
8
13
  //#endregion
9
14
  exports.getExtensionName = getExtensionName;
@@ -1,5 +1,5 @@
1
- import { Path } from './constraints';
1
+ import { Absolute, Path, Segment } from './constraints';
2
2
  export interface GetExtensionNameParams {
3
3
  withDot?: boolean;
4
4
  }
5
- export declare function getExtensionName<GenericPath extends string & Path>(path: GenericPath, params?: GetExtensionNameParams): string;
5
+ export declare function getExtensionName<GenericPath extends string & (Path | Absolute | Segment)>(path: GenericPath, params?: GetExtensionNameParams): (string & Segment) | null;
@@ -1,9 +1,14 @@
1
+ import { isSegment } from "./isSegment.mjs";
1
2
  //#region scripts/path/getExtensionName.ts
2
- const extensionNameRegex = /\.([^./]+)$/;
3
+ const basenameRegex = /([^/]+)$/;
3
4
  function getExtensionName(path, params) {
4
- const match = extensionNameRegex.exec(path);
5
- if (match) return params?.withDot ? `.${match[1]}` : match[1];
6
- return "";
5
+ const baseName = basenameRegex.exec(path)?.[1];
6
+ if (!baseName || baseName === "." || baseName === "..") return null;
7
+ const dotIndex = baseName.lastIndexOf(".");
8
+ if (dotIndex <= 0 || dotIndex === baseName.length - 1) return null;
9
+ const extension = baseName.slice(dotIndex + 1);
10
+ const result = params?.withDot ? `.${extension}` : extension;
11
+ return isSegment(result) ? result : null;
7
12
  }
8
13
  //#endregion
9
14
  export { getExtensionName };
@@ -1,9 +1,14 @@
1
1
  //#region scripts/path/getParentFolderPath.ts
2
- const folderNameRegex = /([^]+)\/[^/]+\/?$/;
2
+ const parentFolderPathRegex = /^([^]*)\/[^/]+$/;
3
+ const onlyParentSegmentsRegex = /^(?:\.\.)(?:\/\.\.)*$/;
3
4
  function getParentFolderPath(path) {
4
- const match = path.match(folderNameRegex);
5
- if (!match) return "";
6
- return match[1];
5
+ if (path === "/") return null;
6
+ if (path === ".") return "..";
7
+ if (onlyParentSegmentsRegex.test(path)) return `${path}/..`;
8
+ const parent = parentFolderPathRegex.exec(path)?.[1];
9
+ if (parent === void 0) return ".";
10
+ if (parent === "") return "/";
11
+ return parent;
7
12
  }
8
13
  //#endregion
9
14
  exports.getParentFolderPath = getParentFolderPath;
@@ -1,3 +1,2 @@
1
1
  import { Absolute, Path } from './constraints';
2
- export declare function getParentFolderPath<GenericPath extends string & Path & Absolute>(path: GenericPath): string;
3
- export declare function getParentFolderPath<GenericPath extends string & Path>(path: GenericPath): string;
2
+ export declare function getParentFolderPath<GenericPath extends string & (Path | Absolute)>(path: GenericPath): (string & Path) | null;
@@ -1,9 +1,14 @@
1
1
  //#region scripts/path/getParentFolderPath.ts
2
- const folderNameRegex = /([^]+)\/[^/]+\/?$/;
2
+ const parentFolderPathRegex = /^([^]*)\/[^/]+$/;
3
+ const onlyParentSegmentsRegex = /^(?:\.\.)(?:\/\.\.)*$/;
3
4
  function getParentFolderPath(path) {
4
- const match = path.match(folderNameRegex);
5
- if (!match) return "";
6
- return match[1];
5
+ if (path === "/") return null;
6
+ if (path === ".") return "..";
7
+ if (onlyParentSegmentsRegex.test(path)) return `${path}/..`;
8
+ const parent = parentFolderPathRegex.exec(path)?.[1];
9
+ if (parent === void 0) return ".";
10
+ if (parent === "") return "/";
11
+ return parent;
7
12
  }
8
13
  //#endregion
9
14
  export { getParentFolderPath };
@@ -1,33 +1,36 @@
1
1
  const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
2
- const require_fix = require("./fix.cjs");
3
2
  const require_computeRelative = require("./computeRelative.cjs");
3
+ const require_isSegment = require("./isSegment.cjs");
4
4
  const require_getBaseName = require("./getBaseName.cjs");
5
5
  const require_getExtensionName = require("./getExtensionName.cjs");
6
6
  const require_getParentFolderPath = require("./getParentFolderPath.cjs");
7
7
  const require_is = require("./is.cjs");
8
8
  const require_isAbsolute = require("./isAbsolute.cjs");
9
+ const require_normalize = require("./normalize.cjs");
9
10
  const require_resolveRelative = require("./resolveRelative.cjs");
10
11
  const require_resolveFrom = require("./resolveFrom.cjs");
11
12
  //#region scripts/path/index.ts
12
13
  var path_exports = /* @__PURE__ */ require_runtime.__exportAll({
13
14
  computeRelative: () => require_computeRelative.computeRelative,
14
- fix: () => require_fix.fix,
15
15
  getBaseName: () => require_getBaseName.getBaseName,
16
16
  getExtensionName: () => require_getExtensionName.getExtensionName,
17
17
  getParentFolderPath: () => require_getParentFolderPath.getParentFolderPath,
18
18
  is: () => require_is.is,
19
19
  isAbsolute: () => require_isAbsolute.isAbsolute,
20
+ isSegment: () => require_isSegment.isSegment,
21
+ normalize: () => require_normalize.normalize,
20
22
  resolveFrom: () => require_resolveFrom.resolveFrom,
21
23
  resolveRelative: () => require_resolveRelative.resolveRelative
22
24
  });
23
25
  //#endregion
24
26
  exports.computeRelative = require_computeRelative.computeRelative;
25
- exports.fix = require_fix.fix;
26
27
  exports.getBaseName = require_getBaseName.getBaseName;
27
28
  exports.getExtensionName = require_getExtensionName.getExtensionName;
28
29
  exports.getParentFolderPath = require_getParentFolderPath.getParentFolderPath;
29
30
  exports.is = require_is.is;
30
31
  exports.isAbsolute = require_isAbsolute.isAbsolute;
32
+ exports.isSegment = require_isSegment.isSegment;
33
+ exports.normalize = require_normalize.normalize;
31
34
  Object.defineProperty(exports, "path_exports", {
32
35
  enumerable: true,
33
36
  get: function() {
@@ -1,11 +1,12 @@
1
- export type * from './constraints';
2
1
  export * from './computeRelative';
3
- export * from './fix';
2
+ export type * from './constraints';
4
3
  export * from './getBaseName';
5
4
  export * from './getExtensionName';
6
5
  export * from './getParentFolderPath';
7
6
  export * from './is';
8
7
  export * from './isAbsolute';
8
+ export * from './isSegment';
9
+ export * from './normalize';
9
10
  export * from './resolveFrom';
10
11
  export * from './resolveRelative';
11
12
  export type * from './types';
@@ -1,24 +1,26 @@
1
1
  import { __exportAll } from "../_virtual/_rolldown/runtime.mjs";
2
- import { fix } from "./fix.mjs";
3
2
  import { computeRelative } from "./computeRelative.mjs";
3
+ import { isSegment } from "./isSegment.mjs";
4
4
  import { getBaseName } from "./getBaseName.mjs";
5
5
  import { getExtensionName } from "./getExtensionName.mjs";
6
6
  import { getParentFolderPath } from "./getParentFolderPath.mjs";
7
7
  import { is } from "./is.mjs";
8
8
  import { isAbsolute } from "./isAbsolute.mjs";
9
+ import { normalize } from "./normalize.mjs";
9
10
  import { resolveRelative } from "./resolveRelative.mjs";
10
11
  import { resolveFrom } from "./resolveFrom.mjs";
11
12
  //#region scripts/path/index.ts
12
13
  var path_exports = /* @__PURE__ */ __exportAll({
13
14
  computeRelative: () => computeRelative,
14
- fix: () => fix,
15
15
  getBaseName: () => getBaseName,
16
16
  getExtensionName: () => getExtensionName,
17
17
  getParentFolderPath: () => getParentFolderPath,
18
18
  is: () => is,
19
19
  isAbsolute: () => isAbsolute,
20
+ isSegment: () => isSegment,
21
+ normalize: () => normalize,
20
22
  resolveFrom: () => resolveFrom,
21
23
  resolveRelative: () => resolveRelative
22
24
  });
23
25
  //#endregion
24
- export { computeRelative, fix, getBaseName, getExtensionName, getParentFolderPath, is, isAbsolute, path_exports, resolveFrom, resolveRelative };
26
+ export { computeRelative, getBaseName, getExtensionName, getParentFolderPath, is, isAbsolute, isSegment, normalize, path_exports, resolveFrom, resolveRelative };
package/dist/path/is.cjs CHANGED
@@ -1,8 +1,13 @@
1
1
  //#region scripts/path/is.ts
2
- const nullCharacter = String.fromCharCode(0);
3
- const posixPathRegex = /^(?:\/|\/?[^/]+(?:\/[^/]+)*(?:\/+)?)$/;
4
- function is(path) {
5
- return !path.includes(nullCharacter) && posixPathRegex.test(path);
2
+ const dotSegmentRegExp = /(^|\/)\.(\/|$)/;
3
+ const endsWithSlash = /[^]+\/$/;
4
+ const dotDotRegExp = /(^|\/)\.\.(\/|$)/;
5
+ const invalidDotDotRegExp = /(^|\/)(?!\.\.(?:\/|$))[^/]+\/\.\.(?:\/|$)/;
6
+ function is(value) {
7
+ if (value === ".") return true;
8
+ if (value === "" || value.includes("\0") || value.includes("//") || endsWithSlash.test(value) || dotSegmentRegExp.test(value)) return false;
9
+ if (value.startsWith("/")) return !dotDotRegExp.test(value);
10
+ return !invalidDotDotRegExp.test(value);
6
11
  }
7
12
  //#endregion
8
13
  exports.is = is;
package/dist/path/is.d.ts CHANGED
@@ -1,2 +1,4 @@
1
- import { Path } from './constraints';
2
- export declare function is<GenericPath extends string>(path: GenericPath): path is GenericPath & Path;
1
+ import { Absolute, Path } from './constraints';
2
+ import { IsLiteralPath } from './types';
3
+ import type * as DString from '../string';
4
+ export declare function is<GenericPath extends string>(value: GenericPath): value is (GenericPath extends (Path | Absolute) ? GenericPath : IsLiteralPath<GenericPath> extends true ? GenericPath : DString.IsLiteral<GenericPath> extends true ? never : GenericPath & Path);
package/dist/path/is.mjs CHANGED
@@ -1,8 +1,13 @@
1
1
  //#region scripts/path/is.ts
2
- const nullCharacter = String.fromCharCode(0);
3
- const posixPathRegex = /^(?:\/|\/?[^/]+(?:\/[^/]+)*(?:\/+)?)$/;
4
- function is(path) {
5
- return !path.includes(nullCharacter) && posixPathRegex.test(path);
2
+ const dotSegmentRegExp = /(^|\/)\.(\/|$)/;
3
+ const endsWithSlash = /[^]+\/$/;
4
+ const dotDotRegExp = /(^|\/)\.\.(\/|$)/;
5
+ const invalidDotDotRegExp = /(^|\/)(?!\.\.(?:\/|$))[^/]+\/\.\.(?:\/|$)/;
6
+ function is(value) {
7
+ if (value === ".") return true;
8
+ if (value === "" || value.includes("\0") || value.includes("//") || endsWithSlash.test(value) || dotSegmentRegExp.test(value)) return false;
9
+ if (value.startsWith("/")) return !dotDotRegExp.test(value);
10
+ return !invalidDotDotRegExp.test(value);
6
11
  }
7
12
  //#endregion
8
13
  export { is };
@@ -1,9 +1,7 @@
1
+ const require_is = require("./is.cjs");
1
2
  //#region scripts/path/isAbsolute.ts
2
- const containBackPathRegex = /(^|\/)\.\.(?=\/|$)/;
3
- const nullCharacter = String.fromCharCode(0);
4
- const posixAbsolutePathRegex = /^\/(?:$|[^/]+(?:\/[^/]+)*(?:\/+)?$)/;
5
- function isAbsolute(path) {
6
- return !path.includes(nullCharacter) && posixAbsolutePathRegex.test(path) && !containBackPathRegex.test(path);
3
+ function isAbsolute(value) {
4
+ return value.startsWith("/") && require_is.is(value);
7
5
  }
8
6
  //#endregion
9
7
  exports.isAbsolute = isAbsolute;
@@ -1,2 +1,4 @@
1
- import { Absolute, Path } from './constraints';
2
- export declare function isAbsolute<GenericPath extends string>(path: GenericPath): path is GenericPath & Path & Absolute;
1
+ import { Absolute } from './constraints';
2
+ import { IsLiteralAbsolutePath } from './types';
3
+ import type * as DString from '../string';
4
+ export declare function isAbsolute<GenericPath extends string>(value: GenericPath): value is (GenericPath extends Absolute ? GenericPath : IsLiteralAbsolutePath<GenericPath> extends true ? GenericPath : DString.IsLiteral<GenericPath> extends true ? never : GenericPath & Absolute);
@@ -1,9 +1,7 @@
1
+ import { is } from "./is.mjs";
1
2
  //#region scripts/path/isAbsolute.ts
2
- const containBackPathRegex = /(^|\/)\.\.(?=\/|$)/;
3
- const nullCharacter = String.fromCharCode(0);
4
- const posixAbsolutePathRegex = /^\/(?:$|[^/]+(?:\/[^/]+)*(?:\/+)?$)/;
5
- function isAbsolute(path) {
6
- return !path.includes(nullCharacter) && posixAbsolutePathRegex.test(path) && !containBackPathRegex.test(path);
3
+ function isAbsolute(value) {
4
+ return value.startsWith("/") && is(value);
7
5
  }
8
6
  //#endregion
9
7
  export { isAbsolute };
@@ -0,0 +1,6 @@
1
+ //#region scripts/path/isSegment.ts
2
+ function isSegment(value) {
3
+ return value !== "" && value !== "." && value !== ".." && !value.includes("/") && !value.includes("\0");
4
+ }
5
+ //#endregion
6
+ exports.isSegment = isSegment;
@@ -0,0 +1,4 @@
1
+ import { Segment } from './constraints';
2
+ import { IsLiteralSegmentPath } from './types';
3
+ import type * as DString from '../string';
4
+ export declare function isSegment<GenericValue extends string>(value: GenericValue): value is (GenericValue extends Segment ? GenericValue : IsLiteralSegmentPath<GenericValue> extends true ? GenericValue : DString.IsLiteral<GenericValue> extends true ? never : GenericValue & Segment);
@@ -0,0 +1,6 @@
1
+ //#region scripts/path/isSegment.ts
2
+ function isSegment(value) {
3
+ return value !== "" && value !== "." && value !== ".." && !value.includes("/") && !value.includes("\0");
4
+ }
5
+ //#endregion
6
+ export { isSegment };
@@ -0,0 +1,18 @@
1
+ //#region scripts/path/normalize.ts
2
+ function normalize(path) {
3
+ if (path.includes("\0")) return null;
4
+ const absolute = path.startsWith("/");
5
+ const result = [];
6
+ for (const segment of path.split("/")) {
7
+ if (segment === "" || segment === ".") continue;
8
+ if (segment === "..") {
9
+ if (result.length !== 0 && result.at(-1) !== "..") result.pop();
10
+ else if (!absolute) result.push("..");
11
+ continue;
12
+ }
13
+ result.push(segment);
14
+ }
15
+ return absolute ? `/${result.join("/")}` : result.join("/") || ".";
16
+ }
17
+ //#endregion
18
+ exports.normalize = normalize;
@@ -0,0 +1,2 @@
1
+ import { Path } from './constraints';
2
+ export declare function normalize(path: string): (string & Path) | null;
@@ -0,0 +1,18 @@
1
+ //#region scripts/path/normalize.ts
2
+ function normalize(path) {
3
+ if (path.includes("\0")) return null;
4
+ const absolute = path.startsWith("/");
5
+ const result = [];
6
+ for (const segment of path.split("/")) {
7
+ if (segment === "" || segment === ".") continue;
8
+ if (segment === "..") {
9
+ if (result.length !== 0 && result.at(-1) !== "..") result.pop();
10
+ else if (!absolute) result.push("..");
11
+ continue;
12
+ }
13
+ result.push(segment);
14
+ }
15
+ return absolute ? `/${result.join("/")}` : result.join("/") || ".";
16
+ }
17
+ //#endregion
18
+ export { normalize };
@@ -1,10 +1,9 @@
1
1
  const require_resolveRelative = require("./resolveRelative.cjs");
2
2
  //#region scripts/path/resolveFrom.ts
3
- const aboveRootRegex = /^(?:\.\.\/)+/;
4
- function resolveFrom(origin, segments) {
5
- const result = require_resolveRelative.resolveRelative([origin, ...segments]);
6
- if (!result.startsWith("../")) return result;
7
- return `/${result.replace(aboveRootRegex, "")}`;
3
+ function resolveFrom(origin, segments, params) {
4
+ const resultRelative = require_resolveRelative.resolveRelative(segments);
5
+ if (params?.stayInOrigin && (resultRelative === ".." || resultRelative.startsWith("../") || resultRelative.startsWith("/"))) return null;
6
+ return require_resolveRelative.resolveRelative([origin, resultRelative]);
8
7
  }
9
8
  //#endregion
10
9
  exports.resolveFrom = resolveFrom;
@@ -1,3 +1,11 @@
1
- import { Absolute, Path } from './constraints';
1
+ import { Absolute, Path, Segment } from './constraints';
2
2
  import { RequireSegments } from './types';
3
- export declare function resolveFrom<const GenericSegments extends readonly (string & Path)[]>(origin: string & Path & Absolute, segments: GenericSegments & RequireSegments<GenericSegments>): string & Path & Absolute;
3
+ import type * as DCommon from '../common';
4
+ export interface ResolveFromParams {
5
+ stayInOrigin?: boolean;
6
+ }
7
+ export declare function resolveFrom<const GenericSegments extends readonly (string & (Path | Absolute | Segment))[], const GenericParams extends ResolveFromParams>(origin: string & Absolute, segments: GenericSegments & RequireSegments<GenericSegments>, params?: GenericParams): (string & Absolute) | (DCommon.BreakGenericLink<DCommon.Or<[
8
+ DCommon.IsEqual<GenericParams["stayInOrigin"], ResolveFromParams["stayInOrigin"]>,
9
+ DCommon.IsEqual<GenericParams["stayInOrigin"], false>,
10
+ DCommon.IsEqual<GenericParams["stayInOrigin"], unknown>
11
+ ]> extends true ? never : null>);
@@ -1,10 +1,9 @@
1
1
  import { resolveRelative } from "./resolveRelative.mjs";
2
2
  //#region scripts/path/resolveFrom.ts
3
- const aboveRootRegex = /^(?:\.\.\/)+/;
4
- function resolveFrom(origin, segments) {
5
- const result = resolveRelative([origin, ...segments]);
6
- if (!result.startsWith("../")) return result;
7
- return `/${result.replace(aboveRootRegex, "")}`;
3
+ function resolveFrom(origin, segments, params) {
4
+ const resultRelative = resolveRelative(segments);
5
+ if (params?.stayInOrigin && (resultRelative === ".." || resultRelative.startsWith("../") || resultRelative.startsWith("/"))) return null;
6
+ return resolveRelative([origin, resultRelative]);
8
7
  }
9
8
  //#endregion
10
9
  export { resolveFrom };
@@ -1,26 +1,23 @@
1
1
  //#region scripts/path/resolveRelative.ts
2
- const segmentTrailingRegex = /\/$/;
3
- const segmentRelativeRegex = /^(.\/)/;
4
- function resolveRelative(segments) {
5
- let clearedPath = "";
6
- for (const segment of segments) {
7
- if (segment.length === 0) continue;
8
- else if (segment === "/") {
9
- clearedPath = segment;
10
- continue;
2
+ function resolveRelative(paths) {
3
+ let absolute = false;
4
+ const result = [];
5
+ for (const path of paths) {
6
+ if (path === ".") continue;
7
+ if (path.startsWith("/")) {
8
+ absolute = true;
9
+ result.length = 0;
10
+ }
11
+ for (const segment of path.split("/")) {
12
+ if (segment === "") continue;
13
+ if (segment === "..") {
14
+ if (result.length && result.at(-1) !== "..") result.pop();
15
+ else if (!absolute) result.push("..");
16
+ } else result.push(segment);
11
17
  }
12
- const formattedSegment = segment.replace(segmentTrailingRegex, "").replace(segmentRelativeRegex, "");
13
- if (formattedSegment.startsWith("/") || clearedPath === "") clearedPath = formattedSegment;
14
- else if (clearedPath === "/") clearedPath += formattedSegment;
15
- else clearedPath += `/${formattedSegment}`;
16
18
  }
17
- const dotResult = [];
18
- const result = [];
19
- for (const element of clearedPath.split("/")) if (element === "..") {
20
- if (!result.pop()) dotResult.push(element);
21
- } else result.push(element);
22
- if (dotResult.length === 0) return result.join("/");
23
- return `${dotResult.join("/")}/${result.join("/")}`;
19
+ if (absolute) return `/${result.join("/")}`;
20
+ return result.join("/") || ".";
24
21
  }
25
22
  //#endregion
26
23
  exports.resolveRelative = resolveRelative;
@@ -1,3 +1,10 @@
1
- import { Path } from './constraints';
1
+ import { Absolute, Path, Segment } from './constraints';
2
2
  import { RequireSegments } from './types';
3
- export declare function resolveRelative<const GenericSegments extends readonly (string & Path)[]>(segments: GenericSegments & RequireSegments<GenericSegments>): string & Path;
3
+ import type * as DCommon from '../common';
4
+ type HasAbsolutePath<GenericSegments extends readonly (string & (Path | Absolute | Segment))[]> = DCommon.ContainExtends<{
5
+ [Prop in keyof GenericSegments]: [DCommon.IsExtends<GenericSegments[Prop], Absolute>];
6
+ }[Extract<keyof GenericSegments, number>], [
7
+ true
8
+ ]>;
9
+ export declare function resolveRelative<const GenericSegments extends readonly (string & (Path | Absolute | Segment))[]>(segments: GenericSegments & RequireSegments<GenericSegments>): string & Path & (DCommon.BreakGenericLink<HasAbsolutePath<GenericSegments> extends true ? Absolute : unknown>);
10
+ export {};
@@ -1,26 +1,23 @@
1
1
  //#region scripts/path/resolveRelative.ts
2
- const segmentTrailingRegex = /\/$/;
3
- const segmentRelativeRegex = /^(.\/)/;
4
- function resolveRelative(segments) {
5
- let clearedPath = "";
6
- for (const segment of segments) {
7
- if (segment.length === 0) continue;
8
- else if (segment === "/") {
9
- clearedPath = segment;
10
- continue;
2
+ function resolveRelative(paths) {
3
+ let absolute = false;
4
+ const result = [];
5
+ for (const path of paths) {
6
+ if (path === ".") continue;
7
+ if (path.startsWith("/")) {
8
+ absolute = true;
9
+ result.length = 0;
10
+ }
11
+ for (const segment of path.split("/")) {
12
+ if (segment === "") continue;
13
+ if (segment === "..") {
14
+ if (result.length && result.at(-1) !== "..") result.pop();
15
+ else if (!absolute) result.push("..");
16
+ } else result.push(segment);
11
17
  }
12
- const formattedSegment = segment.replace(segmentTrailingRegex, "").replace(segmentRelativeRegex, "");
13
- if (formattedSegment.startsWith("/") || clearedPath === "") clearedPath = formattedSegment;
14
- else if (clearedPath === "/") clearedPath += formattedSegment;
15
- else clearedPath += `/${formattedSegment}`;
16
18
  }
17
- const dotResult = [];
18
- const result = [];
19
- for (const element of clearedPath.split("/")) if (element === "..") {
20
- if (!result.pop()) dotResult.push(element);
21
- } else result.push(element);
22
- if (dotResult.length === 0) return result.join("/");
23
- return `${dotResult.join("/")}/${result.join("/")}`;
19
+ if (absolute) return `/${result.join("/")}`;
20
+ return result.join("/") || ".";
24
21
  }
25
22
  //#endregion
26
23
  export { resolveRelative };
@@ -1 +1,7 @@
1
+ export type * from './isLiteralAbsolutePath';
2
+ export type * from './isLiteralPath';
3
+ export type * from './isLiteralSegmentPath';
4
+ export type * from './requireLiteralAbsolutePath';
5
+ export type * from './requireLiteralPath';
6
+ export type * from './requireLiteralSegmentPath';
1
7
  export type * from './requireSegments';
@@ -0,0 +1,2 @@
1
+ import { IsLiteralPath } from './isLiteralPath';
2
+ export type IsLiteralAbsolutePath<GenericValue extends string> = IsLiteralPath<GenericValue> extends true ? GenericValue extends `/${string}` ? true : false : false;