aurix-ai 2.7.3 → 2.7.4

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 (286) hide show
  1. package/dist/agent/AgentLoop.d.ts.map +1 -1
  2. package/dist/agent/AgentLoop.js +1 -52
  3. package/dist/agent/AgentLoop.js.map +1 -1
  4. package/dist/cli/App.d.ts.map +1 -1
  5. package/dist/cli/App.js +6 -0
  6. package/dist/cli/App.js.map +1 -1
  7. package/dist/cli/commands.d.ts.map +1 -1
  8. package/dist/cli/commands.js +7 -0
  9. package/dist/cli/commands.js.map +1 -1
  10. package/dist/tools/Browser.d.ts.map +1 -1
  11. package/dist/tools/Browser.js +44 -615
  12. package/dist/tools/Browser.js.map +1 -1
  13. package/dist/tools/captcha/CaptchaRouter.d.ts +6 -0
  14. package/dist/tools/captcha/CaptchaRouter.d.ts.map +1 -0
  15. package/dist/tools/captcha/CaptchaRouter.js +371 -0
  16. package/dist/tools/captcha/CaptchaRouter.js.map +1 -0
  17. package/dist/tools/captcha/RecaptchaSolver.d.ts +2 -0
  18. package/dist/tools/captcha/RecaptchaSolver.d.ts.map +1 -0
  19. package/dist/tools/captcha/RecaptchaSolver.js +1114 -0
  20. package/dist/tools/captcha/RecaptchaSolver.js.map +1 -0
  21. package/dist/tools/captcha/common.d.ts +35 -0
  22. package/dist/tools/captcha/common.d.ts.map +1 -0
  23. package/dist/tools/captcha/common.js +445 -0
  24. package/dist/tools/captcha/common.js.map +1 -0
  25. package/dist/tools/captcha/index.d.ts +5 -0
  26. package/dist/tools/captcha/index.d.ts.map +1 -0
  27. package/dist/tools/captcha/index.js +4 -0
  28. package/dist/tools/captcha/index.js.map +1 -0
  29. package/package.json +1 -2
  30. package/scripts/build.cjs +0 -15
  31. package/scripts/run-task.mjs +86 -0
  32. package/native/token-counter/index.d.ts +0 -7
  33. package/native/token-counter/index.js +0 -316
  34. package/native/token-counter/node_modules/.package-lock.json +0 -568
  35. package/native/token-counter/node_modules/2/array.js +0 -25
  36. package/native/token-counter/node_modules/2/index.js +0 -12
  37. package/native/token-counter/node_modules/2/iterator.js +0 -13
  38. package/native/token-counter/node_modules/2/license.txt +0 -21
  39. package/native/token-counter/node_modules/2/map.js +0 -27
  40. package/native/token-counter/node_modules/2/number.js +0 -109
  41. package/native/token-counter/node_modules/2/object.js +0 -23
  42. package/native/token-counter/node_modules/2/package.json +0 -60
  43. package/native/token-counter/node_modules/2/readme.md +0 -246
  44. package/native/token-counter/node_modules/2/string.js +0 -11
  45. package/native/token-counter/node_modules/2/test.js +0 -520
  46. package/native/token-counter/node_modules/@lamansky/every/index.js +0 -16
  47. package/native/token-counter/node_modules/@lamansky/every/license.txt +0 -21
  48. package/native/token-counter/node_modules/@lamansky/every/package.json +0 -38
  49. package/native/token-counter/node_modules/@lamansky/every/readme.md +0 -46
  50. package/native/token-counter/node_modules/@lamansky/flatten/index.js +0 -5
  51. package/native/token-counter/node_modules/@lamansky/flatten/license.txt +0 -21
  52. package/native/token-counter/node_modules/@lamansky/flatten/package.json +0 -35
  53. package/native/token-counter/node_modules/@lamansky/flatten/readme.md +0 -41
  54. package/native/token-counter/node_modules/@napi-rs/cli/LICENSE +0 -21
  55. package/native/token-counter/node_modules/@napi-rs/cli/README.md +0 -96
  56. package/native/token-counter/node_modules/@napi-rs/cli/package.json +0 -65
  57. package/native/token-counter/node_modules/@napi-rs/cli/scripts/index.js +0 -51371
  58. package/native/token-counter/node_modules/add-counter/index.js +0 -3
  59. package/native/token-counter/node_modules/add-counter/license.txt +0 -21
  60. package/native/token-counter/node_modules/add-counter/package.json +0 -34
  61. package/native/token-counter/node_modules/add-counter/readme.md +0 -36
  62. package/native/token-counter/node_modules/array-pad/LICENSE +0 -22
  63. package/native/token-counter/node_modules/array-pad/README.md +0 -80
  64. package/native/token-counter/node_modules/array-pad/index.js +0 -30
  65. package/native/token-counter/node_modules/array-pad/package.json +0 -28
  66. package/native/token-counter/node_modules/arrify/index.js +0 -8
  67. package/native/token-counter/node_modules/arrify/license +0 -21
  68. package/native/token-counter/node_modules/arrify/package.json +0 -33
  69. package/native/token-counter/node_modules/arrify/readme.md +0 -36
  70. package/native/token-counter/node_modules/case-insensitive/index.js +0 -72
  71. package/native/token-counter/node_modules/case-insensitive/license.txt +0 -21
  72. package/native/token-counter/node_modules/case-insensitive/package.json +0 -39
  73. package/native/token-counter/node_modules/case-insensitive/readme.md +0 -39
  74. package/native/token-counter/node_modules/case-insensitive/test.js +0 -114
  75. package/native/token-counter/node_modules/class-chain/index.js +0 -32
  76. package/native/token-counter/node_modules/class-chain/license.txt +0 -21
  77. package/native/token-counter/node_modules/class-chain/package.json +0 -39
  78. package/native/token-counter/node_modules/class-chain/readme.md +0 -23
  79. package/native/token-counter/node_modules/class-chain/test.js +0 -77
  80. package/native/token-counter/node_modules/copy-own/index.js +0 -10
  81. package/native/token-counter/node_modules/copy-own/license.txt +0 -21
  82. package/native/token-counter/node_modules/copy-own/package.json +0 -37
  83. package/native/token-counter/node_modules/copy-own/readme.md +0 -67
  84. package/native/token-counter/node_modules/def-props/index.js +0 -43
  85. package/native/token-counter/node_modules/def-props/license.txt +0 -21
  86. package/native/token-counter/node_modules/def-props/node_modules/is-obj/index.d.ts +0 -22
  87. package/native/token-counter/node_modules/def-props/node_modules/is-obj/index.js +0 -6
  88. package/native/token-counter/node_modules/def-props/node_modules/is-obj/license +0 -9
  89. package/native/token-counter/node_modules/def-props/node_modules/is-obj/package.json +0 -34
  90. package/native/token-counter/node_modules/def-props/node_modules/is-obj/readme.md +0 -39
  91. package/native/token-counter/node_modules/def-props/package.json +0 -51
  92. package/native/token-counter/node_modules/def-props/readme.md +0 -117
  93. package/native/token-counter/node_modules/empty-iterator/index.js +0 -3
  94. package/native/token-counter/node_modules/empty-iterator/license.txt +0 -21
  95. package/native/token-counter/node_modules/empty-iterator/package.json +0 -33
  96. package/native/token-counter/node_modules/empty-iterator/readme.md +0 -23
  97. package/native/token-counter/node_modules/enforce-range/index.js +0 -15
  98. package/native/token-counter/node_modules/enforce-range/license.txt +0 -21
  99. package/native/token-counter/node_modules/enforce-range/node_modules/2/array.js +0 -43
  100. package/native/token-counter/node_modules/enforce-range/node_modules/2/index.js +0 -10
  101. package/native/token-counter/node_modules/enforce-range/node_modules/2/iterator.js +0 -26
  102. package/native/token-counter/node_modules/enforce-range/node_modules/2/license.txt +0 -21
  103. package/native/token-counter/node_modules/enforce-range/node_modules/2/map.js +0 -47
  104. package/native/token-counter/node_modules/enforce-range/node_modules/2/number.js +0 -33
  105. package/native/token-counter/node_modules/enforce-range/node_modules/2/object.js +0 -61
  106. package/native/token-counter/node_modules/enforce-range/node_modules/2/package.json +0 -41
  107. package/native/token-counter/node_modules/enforce-range/node_modules/2/readme.md +0 -210
  108. package/native/token-counter/node_modules/enforce-range/node_modules/2/string.js +0 -37
  109. package/native/token-counter/node_modules/enforce-range/node_modules/2/test.js +0 -413
  110. package/native/token-counter/node_modules/enforce-range/package.json +0 -36
  111. package/native/token-counter/node_modules/enforce-range/readme.md +0 -53
  112. package/native/token-counter/node_modules/english-list/.travis.yml +0 -6
  113. package/native/token-counter/node_modules/english-list/LICENSE +0 -22
  114. package/native/token-counter/node_modules/english-list/README.md +0 -44
  115. package/native/token-counter/node_modules/english-list/index.js +0 -34
  116. package/native/token-counter/node_modules/english-list/package.json +0 -31
  117. package/native/token-counter/node_modules/english-list/test.log +0 -6
  118. package/native/token-counter/node_modules/errate/index.js +0 -19
  119. package/native/token-counter/node_modules/errate/license.txt +0 -21
  120. package/native/token-counter/node_modules/errate/package.json +0 -39
  121. package/native/token-counter/node_modules/errate/readme.md +0 -79
  122. package/native/token-counter/node_modules/ffn/index.js +0 -9
  123. package/native/token-counter/node_modules/ffn/license.txt +0 -21
  124. package/native/token-counter/node_modules/ffn/package.json +0 -34
  125. package/native/token-counter/node_modules/ffn/readme.md +0 -51
  126. package/native/token-counter/node_modules/get-own-property/index.js +0 -5
  127. package/native/token-counter/node_modules/get-own-property/license.txt +0 -21
  128. package/native/token-counter/node_modules/get-own-property/package.json +0 -31
  129. package/native/token-counter/node_modules/get-own-property/readme.md +0 -22
  130. package/native/token-counter/node_modules/has-duplicates/index.js +0 -11
  131. package/native/token-counter/node_modules/has-duplicates/license.txt +0 -21
  132. package/native/token-counter/node_modules/has-duplicates/package.json +0 -32
  133. package/native/token-counter/node_modules/has-duplicates/readme.md +0 -23
  134. package/native/token-counter/node_modules/has-duplicates/test.js +0 -30
  135. package/native/token-counter/node_modules/if-else-throw/index.js +0 -8
  136. package/native/token-counter/node_modules/if-else-throw/license.txt +0 -21
  137. package/native/token-counter/node_modules/if-else-throw/package.json +0 -37
  138. package/native/token-counter/node_modules/if-else-throw/readme.md +0 -32
  139. package/native/token-counter/node_modules/is-array-of-length/index.js +0 -7
  140. package/native/token-counter/node_modules/is-array-of-length/license.txt +0 -21
  141. package/native/token-counter/node_modules/is-array-of-length/package.json +0 -42
  142. package/native/token-counter/node_modules/is-array-of-length/readme.md +0 -41
  143. package/native/token-counter/node_modules/is-class-of/index.js +0 -7
  144. package/native/token-counter/node_modules/is-class-of/license.txt +0 -21
  145. package/native/token-counter/node_modules/is-class-of/package.json +0 -35
  146. package/native/token-counter/node_modules/is-class-of/readme.md +0 -57
  147. package/native/token-counter/node_modules/is-global-object/index.js +0 -6
  148. package/native/token-counter/node_modules/is-global-object/license.txt +0 -21
  149. package/native/token-counter/node_modules/is-global-object/package.json +0 -34
  150. package/native/token-counter/node_modules/is-global-object/readme.md +0 -22
  151. package/native/token-counter/node_modules/is-instance-of/index.js +0 -28
  152. package/native/token-counter/node_modules/is-instance-of/license.txt +0 -21
  153. package/native/token-counter/node_modules/is-instance-of/package.json +0 -44
  154. package/native/token-counter/node_modules/is-instance-of/readme.md +0 -55
  155. package/native/token-counter/node_modules/is-iterable/index.js +0 -5
  156. package/native/token-counter/node_modules/is-iterable/license +0 -21
  157. package/native/token-counter/node_modules/is-iterable/package.json +0 -30
  158. package/native/token-counter/node_modules/is-iterable/readme.md +0 -23
  159. package/native/token-counter/node_modules/is-nil/LICENSE +0 -21
  160. package/native/token-counter/node_modules/is-nil/README.md +0 -47
  161. package/native/token-counter/node_modules/is-nil/index.js +0 -6
  162. package/native/token-counter/node_modules/is-nil/package.json +0 -46
  163. package/native/token-counter/node_modules/is-obj/index.js +0 -5
  164. package/native/token-counter/node_modules/is-obj/license +0 -21
  165. package/native/token-counter/node_modules/is-obj/package.json +0 -33
  166. package/native/token-counter/node_modules/is-obj/readme.md +0 -34
  167. package/native/token-counter/node_modules/is-object/.eslintignore +0 -1
  168. package/native/token-counter/node_modules/is-object/.eslintrc +0 -5
  169. package/native/token-counter/node_modules/is-object/.nycrc +0 -13
  170. package/native/token-counter/node_modules/is-object/.testem.json +0 -14
  171. package/native/token-counter/node_modules/is-object/CHANGELOG.md +0 -121
  172. package/native/token-counter/node_modules/is-object/LICENSE +0 -19
  173. package/native/token-counter/node_modules/is-object/README.md +0 -48
  174. package/native/token-counter/node_modules/is-object/index.js +0 -5
  175. package/native/token-counter/node_modules/is-object/package.json +0 -78
  176. package/native/token-counter/node_modules/is-object/test/index.js +0 -44
  177. package/native/token-counter/node_modules/is-plain-object/LICENSE +0 -21
  178. package/native/token-counter/node_modules/is-plain-object/README.md +0 -104
  179. package/native/token-counter/node_modules/is-plain-object/index.d.ts +0 -5
  180. package/native/token-counter/node_modules/is-plain-object/index.js +0 -37
  181. package/native/token-counter/node_modules/is-plain-object/package.json +0 -79
  182. package/native/token-counter/node_modules/isobject/LICENSE +0 -21
  183. package/native/token-counter/node_modules/isobject/README.md +0 -122
  184. package/native/token-counter/node_modules/isobject/index.d.ts +0 -5
  185. package/native/token-counter/node_modules/isobject/index.js +0 -12
  186. package/native/token-counter/node_modules/isobject/package.json +0 -74
  187. package/native/token-counter/node_modules/lodash.set/LICENSE +0 -47
  188. package/native/token-counter/node_modules/lodash.set/README.md +0 -18
  189. package/native/token-counter/node_modules/lodash.set/index.js +0 -990
  190. package/native/token-counter/node_modules/lodash.set/package.json +0 -17
  191. package/native/token-counter/node_modules/longest-first/index.js +0 -3
  192. package/native/token-counter/node_modules/longest-first/license.txt +0 -21
  193. package/native/token-counter/node_modules/longest-first/package.json +0 -36
  194. package/native/token-counter/node_modules/longest-first/readme.md +0 -29
  195. package/native/token-counter/node_modules/m-o/index.js +0 -27
  196. package/native/token-counter/node_modules/m-o/license.txt +0 -21
  197. package/native/token-counter/node_modules/m-o/node_modules/new-object/index.js +0 -23
  198. package/native/token-counter/node_modules/m-o/node_modules/new-object/license.txt +0 -21
  199. package/native/token-counter/node_modules/m-o/node_modules/new-object/package.json +0 -40
  200. package/native/token-counter/node_modules/m-o/node_modules/new-object/readme.md +0 -55
  201. package/native/token-counter/node_modules/m-o/package.json +0 -45
  202. package/native/token-counter/node_modules/m-o/readme.md +0 -87
  203. package/native/token-counter/node_modules/map-iter/index.js +0 -6
  204. package/native/token-counter/node_modules/map-iter/license.txt +0 -21
  205. package/native/token-counter/node_modules/map-iter/package.json +0 -40
  206. package/native/token-counter/node_modules/map-iter/readme.md +0 -46
  207. package/native/token-counter/node_modules/new-object/index.js +0 -5
  208. package/native/token-counter/node_modules/new-object/license.txt +0 -21
  209. package/native/token-counter/node_modules/new-object/package.json +0 -49
  210. package/native/token-counter/node_modules/new-object/readme.md +0 -145
  211. package/native/token-counter/node_modules/ofn/index.js +0 -22
  212. package/native/token-counter/node_modules/ofn/license.txt +0 -21
  213. package/native/token-counter/node_modules/ofn/package.json +0 -40
  214. package/native/token-counter/node_modules/ofn/readme.md +0 -63
  215. package/native/token-counter/node_modules/otherwise/index.js +0 -11
  216. package/native/token-counter/node_modules/otherwise/license.txt +0 -21
  217. package/native/token-counter/node_modules/otherwise/package.json +0 -38
  218. package/native/token-counter/node_modules/otherwise/readme.md +0 -29
  219. package/native/token-counter/node_modules/parser-factory/index.js +0 -138
  220. package/native/token-counter/node_modules/parser-factory/license.txt +0 -21
  221. package/native/token-counter/node_modules/parser-factory/node_modules/arrify/index.d.ts +0 -38
  222. package/native/token-counter/node_modules/parser-factory/node_modules/arrify/index.js +0 -23
  223. package/native/token-counter/node_modules/parser-factory/node_modules/arrify/license +0 -9
  224. package/native/token-counter/node_modules/parser-factory/node_modules/arrify/package.json +0 -35
  225. package/native/token-counter/node_modules/parser-factory/node_modules/arrify/readme.md +0 -39
  226. package/native/token-counter/node_modules/parser-factory/package.json +0 -38
  227. package/native/token-counter/node_modules/parser-factory/readme.md +0 -15
  228. package/native/token-counter/node_modules/pfn/index.js +0 -5
  229. package/native/token-counter/node_modules/pfn/license.txt +0 -21
  230. package/native/token-counter/node_modules/pfn/package.json +0 -41
  231. package/native/token-counter/node_modules/pfn/readme.md +0 -111
  232. package/native/token-counter/node_modules/pfn/strict.js +0 -8
  233. package/native/token-counter/node_modules/plainify/index.js +0 -5
  234. package/native/token-counter/node_modules/plainify/license.txt +0 -21
  235. package/native/token-counter/node_modules/plainify/package.json +0 -36
  236. package/native/token-counter/node_modules/plainify/readme.md +0 -47
  237. package/native/token-counter/node_modules/possible-function/changelog.md +0 -7
  238. package/native/token-counter/node_modules/possible-function/index.js +0 -43
  239. package/native/token-counter/node_modules/possible-function/license.txt +0 -21
  240. package/native/token-counter/node_modules/possible-function/package.json +0 -34
  241. package/native/token-counter/node_modules/possible-function/readme.md +0 -77
  242. package/native/token-counter/node_modules/possible-function/test.js +0 -32
  243. package/native/token-counter/node_modules/qfn/index.js +0 -11
  244. package/native/token-counter/node_modules/qfn/license.txt +0 -21
  245. package/native/token-counter/node_modules/qfn/package.json +0 -40
  246. package/native/token-counter/node_modules/qfn/readme.md +0 -45
  247. package/native/token-counter/node_modules/roadblock/index.js +0 -3
  248. package/native/token-counter/node_modules/roadblock/license.txt +0 -21
  249. package/native/token-counter/node_modules/roadblock/package.json +0 -40
  250. package/native/token-counter/node_modules/roadblock/readme.md +0 -59
  251. package/native/token-counter/node_modules/round-to/index.d.ts +0 -56
  252. package/native/token-counter/node_modules/round-to/index.js +0 -37
  253. package/native/token-counter/node_modules/round-to/license +0 -9
  254. package/native/token-counter/node_modules/round-to/package.json +0 -38
  255. package/native/token-counter/node_modules/round-to/readme.md +0 -71
  256. package/native/token-counter/node_modules/rtrim-array/index.js +0 -10
  257. package/native/token-counter/node_modules/rtrim-array/license.txt +0 -21
  258. package/native/token-counter/node_modules/rtrim-array/package.json +0 -41
  259. package/native/token-counter/node_modules/rtrim-array/readme.md +0 -75
  260. package/native/token-counter/node_modules/sbo/index.js +0 -25
  261. package/native/token-counter/node_modules/sbo/license.txt +0 -21
  262. package/native/token-counter/node_modules/sbo/package.json +0 -50
  263. package/native/token-counter/node_modules/sbo/readme.md +0 -105
  264. package/native/token-counter/node_modules/sorp/index.js +0 -3
  265. package/native/token-counter/node_modules/sorp/license.txt +0 -21
  266. package/native/token-counter/node_modules/sorp/package.json +0 -34
  267. package/native/token-counter/node_modules/sorp/readme.md +0 -25
  268. package/native/token-counter/node_modules/trim-call/index.js +0 -6
  269. package/native/token-counter/node_modules/trim-call/license.txt +0 -21
  270. package/native/token-counter/node_modules/trim-call/package.json +0 -40
  271. package/native/token-counter/node_modules/trim-call/readme.md +0 -80
  272. package/native/token-counter/node_modules/type-error/LICENSE +0 -21
  273. package/native/token-counter/node_modules/type-error/README.md +0 -24
  274. package/native/token-counter/node_modules/type-error/index.js +0 -35
  275. package/native/token-counter/node_modules/type-error/package.json +0 -11
  276. package/native/token-counter/node_modules/vfn/index.js +0 -21
  277. package/native/token-counter/node_modules/vfn/license.txt +0 -21
  278. package/native/token-counter/node_modules/vfn/package.json +0 -40
  279. package/native/token-counter/node_modules/vfn/readme.md +0 -81
  280. package/native/token-counter/node_modules/wfn/index.js +0 -43
  281. package/native/token-counter/node_modules/wfn/license.txt +0 -21
  282. package/native/token-counter/node_modules/wfn/package.json +0 -38
  283. package/native/token-counter/node_modules/wfn/readme.md +0 -81
  284. package/native/token-counter/package-lock.json +0 -578
  285. package/native/token-counter/package.json +0 -21
  286. package/native/token-counter/token-counter.linux-x64-gnu.node +0 -0
@@ -1,109 +0,0 @@
1
- 'use strict'
2
-
3
- const otherwise = require('otherwise')
4
- const roundTo = require('round-to')
5
- const sbo = require('sbo')
6
-
7
- const thousandsSepOnly = [' ', '\u2009', "'"]
8
- const numberDigits = '0123456789'
9
-
10
- const infinities = [
11
- ['infinity', '+infinity'],
12
- ['-infinity', '\u2212infinity'],
13
- ]
14
- const suffixes = ['kg', 'm', 'b']
15
-
16
- const stringToNumber = require('parser-factory')('main', {
17
- main ({char, consume, consumeRest, shift}, {userArgs: [{decimalComma, decimalPlacesInInt, ignoreBadChars} = {}]}) {
18
- let thousandsSep = ''
19
- let decimalSep = ''
20
- let decimals = ''
21
- let units = ''
22
- let group = ''
23
- let sign = 1
24
-
25
- let leftParen
26
- const rightParen = consume(')')
27
-
28
- for (const [i, s] of suffixes.entries()) {
29
- if (consume(...s)) {
30
- units = '000'.repeat(i + 1)
31
- break
32
- }
33
- }
34
-
35
- while (char()) {
36
- const sep = consume(',', '.', ...thousandsSepOnly)
37
- if (sep) {
38
- if (!decimals && !thousandsSep && !thousandsSepOnly.includes(sep)) {
39
- decimalSep = sep
40
- decimals = units
41
- units = ''
42
- group = ''
43
- } else if ((group.length !== 3 && !(group.length === 2 && units.length >= 5 && (units - 3) % 2 === 0)) || (thousandsSep && thousandsSep !== sep && !(thousandsSep === '.' && sep === ' ')) || (decimalSep && decimalSep === sep)) {
44
- if (!ignoreBadChars) return NaN
45
- } else {
46
- if (!thousandsSep) thousandsSep = sep
47
- group = ''
48
- }
49
- } else if (consumeRest('-', '\u2212')) {
50
- sign = -1
51
- } else if (rightParen && consumeRest('(')) {
52
- sign = -1
53
- leftParen = true
54
- } else {
55
- const n = shift(1)
56
- if (numberDigits.includes(n)) {
57
- units = n + units
58
- group = n + group
59
- } else if (!ignoreBadChars) {
60
- return NaN
61
- }
62
- }
63
- }
64
-
65
- if (!ignoreBadChars && rightParen && !leftParen) return NaN
66
-
67
- if (decimals.length === 3 && decimalSep && !thousandsSep && !decimalComma === (decimalSep === ',')) {
68
- units += decimals
69
- decimals = ''
70
- } else if (decimals) {
71
- if (decimalPlacesInInt > 0) {
72
- decimals = decimals.substr(0, decimalPlacesInInt).padEnd(2, '0')
73
- } else {
74
- decimals = '.' + decimals
75
- }
76
- }
77
-
78
- const n = units + decimals
79
- if (!n.length) return NaN
80
- return sign * Number(n)
81
- },
82
- })
83
-
84
- module.exports = sbo(function toNumber (x, {decimalComma, decimalPlacesInInt, elseCall, elseReturn = 0, elseThrow, finite = true, ignoreBadChars, round = false} = {}) {
85
- if (x instanceof String) x = String(x)
86
- if (typeof x === 'string') {
87
- x = x.toLowerCase()
88
-
89
- const testForInfinityString = positive => infinities[+!positive].some(
90
- ignoreBadChars ? inf => x.includes(inf) : inf => x === inf,
91
- )
92
-
93
- x = testForInfinityString(true) ? Infinity
94
- : testForInfinityString(false) ? -Infinity
95
- : stringToNumber(
96
- x.split('').reverse().join(''),
97
- {decimalComma, decimalPlacesInInt, ignoreBadChars},
98
- )
99
- } else if (x !== null) {
100
- x = Number(x)
101
- }
102
- if (x === null || Number.isNaN(x) || (finite && !Number.isFinite(x))) {
103
- return otherwise({elseCall, elseReturn, elseThrow}, {defaultErrorClass: TypeError})
104
- }
105
- if (!decimalPlacesInInt && (round || round === 0)) {
106
- return roundTo(x, round === true ? 0 : +round)
107
- }
108
- return x
109
- })
@@ -1,23 +0,0 @@
1
- 'use strict'
2
-
3
- const addCounter = require('add-counter')
4
- const every = require('@lamansky/every')
5
- const isArrayOfLength = require('is-array-of-length')
6
- const isInstanceOf = require('is-instance-of')
7
- const isIterable = require('is-iterable')
8
- const isObject = require('is-object')
9
- const map = require('map-iter')
10
- const newObject = require('new-object')
11
- const otherwise = require('otherwise')
12
- const sbo = require('sbo')
13
-
14
- module.exports = sbo(function toObject (x, {arrays = [], descriptors: descDefaults, elseCall, elseReturn = {}, elseThrow, maps = [], mirror = false, throwIfEquivKeys = true} = {}) {
15
- if (isInstanceOf(x, [Map, maps])) return newObject(x.entries(), {descDefaults, throwIfEquivKeys})
16
- if (isIterable(x) && typeof x !== 'string') {
17
- if (every(x, el => isArrayOfLength(el, 2))) return newObject(x, {descDefaults, throwIfEquivKeys})
18
- if (mirror) return newObject(map(x, v => [v, v]), {descDefaults, throwIfEquivKeys})
19
- return newObject(addCounter(x), {descDefaults})
20
- }
21
- if (isObject(x)) return x
22
- return otherwise({elseCall, elseReturn, elseThrow}, {defaultErrorClass: TypeError})
23
- })
@@ -1,60 +0,0 @@
1
- {
2
- "name": "2",
3
- "version": "3.0.0",
4
- "description": "The Type Conversion Library. Numbers, Strings, Arrays, Maps, Objects, and Iterators.",
5
- "keywords": [
6
- "type",
7
- "convert",
8
- "conversion",
9
- "to",
10
- "array",
11
- "iterator",
12
- "map",
13
- "number",
14
- "int",
15
- "integer",
16
- "float",
17
- "object",
18
- "string"
19
- ],
20
- "author": {
21
- "name": "Fr. John Lamansky",
22
- "url": "lamansky.com"
23
- },
24
- "license": "MIT",
25
- "homepage": "https://github.com/lamansky/2",
26
- "repository": "lamansky/2",
27
- "main": "index.js",
28
- "engines": {
29
- "node": ">=8.3.0"
30
- },
31
- "dependencies": {
32
- "@lamansky/every": "^1.0.0",
33
- "add-counter": "^1.0.0",
34
- "empty-iterator": "^1.0.0",
35
- "is-array-of-length": "^1.0.0",
36
- "is-instance-of": "^1.0.2",
37
- "is-iterable": "^1.1.1",
38
- "is-nil": "^1.0.1",
39
- "is-object": "^1.0.1",
40
- "map-iter": "^1.0.0",
41
- "new-object": "^4.0.0",
42
- "otherwise": "^2.0.0",
43
- "parser-factory": "^1.1.0",
44
- "round-to": "^4.0.0",
45
- "sbo": "^1.1.0"
46
- },
47
- "devDependencies": {
48
- "eslint-config-lamansky": "^2.0.0",
49
- "mocha": "^6.2.2"
50
- },
51
- "scripts": {
52
- "test": "mocha"
53
- },
54
- "eslintConfig": {
55
- "extends": "lamansky",
56
- "env": {
57
- "mocha": true
58
- }
59
- }
60
- }
@@ -1,246 +0,0 @@
1
- # “2”: The Type Conversion Library
2
-
3
- A [Node.js](https://nodejs.org/) module for converting between various JavaScript types: arrays, iterators, maps, numbers, objects, and strings.
4
-
5
- ```javascript
6
- const {toArray, toIterator, toMap, toNumber, toObject, toString} = require('2')
7
-
8
- const obj = {a: 1, b: 2}
9
- obj::toMap()::toArray()::toObject()::toIterator()
10
- ::toArray()::toMap()::toObject() // {a: 1, b: 2}
11
-
12
- let data = '1.23'
13
- data = toNumber(data)
14
- data = toString(data) // '1.23'
15
- ```
16
-
17
- ## Installation
18
-
19
- Requires [Node.js](https://nodejs.org/) 8.3.0 or above.
20
-
21
- ```bash
22
- npm i 2
23
- ```
24
-
25
- ## Usage
26
-
27
- ### Requiring the Functions
28
-
29
- You can require needed functions via a destructuring assignment:
30
-
31
- ```javascript
32
- const {toArray, toIterator, toMap, toNumber, toObject, toString} = require('2')
33
- ```
34
-
35
- (If your project has a linting rule that precludes shadowing the global `toString` function, you can also destructure the `toStr` function, which is the same as `toString`.)
36
-
37
- You can also require individual functions via submodules:
38
-
39
- ```javascript
40
- const toArray = require('2/array')
41
- const toIterator = require('2/iterator')
42
- const toMap = require('2/map')
43
- const toNumber = require('2/number')
44
- const toObject = require('2/object')
45
- const toString = require('2/string')
46
- ```
47
-
48
- ### Converting to Arrays
49
- ```javascript
50
- const toArray = require('2/array')
51
-
52
- // Map => Array
53
- const map = new Map()
54
- map.set('a', 1)
55
- map.set('b', 2)
56
- toArray(map) // [['a', 1], ['b', 2]]
57
-
58
- // Iterator => Array
59
- toArray(map.values()) // [1, 2]
60
-
61
- // Object => Array
62
- toArray({a: 1, b: 2}) // [['a', 1], ['b', 2]]
63
-
64
- // Array-like object => Array
65
- toArray({0: 'first', 1: 'second'}, {detectIndexKeys: true}) // ['first', 'second']
66
-
67
- // Primitive value => Array
68
- toArray('test') // ['test']
69
- ```
70
-
71
- ### Converting to Iterators
72
- ```javascript
73
- const toIterator = require('2/iterator')
74
-
75
- // Object => Iterator
76
- let iterator = toIterator({a: 1, b: 2})
77
- iterator.next().value // ['a', 1]
78
- iterator.next().value // ['b', 2]
79
- iterator.next().done // true
80
-
81
- // Primitive value => Iterator
82
- toIterator('test').next().value // 'test'
83
- ```
84
-
85
- ### Converting to Maps
86
- ```javascript
87
- const toMap = require('2/map')
88
-
89
- // Array of key/value pairs => Map
90
- const map1 = toMap([['a', 1], ['b', 2]])
91
- map1.get('a') // 1
92
- map1.get('b') // 2
93
-
94
- // Array of values => Map
95
- const map2 = toMap(['a', 'b'])
96
- map2.get(0) // 'a'
97
- map2.get(1) // 'b'
98
-
99
- // Object => Map
100
- const map3 = toMap({a: 1, b: 2})
101
- map3.get('a') // 1
102
- map3.get('b') // 2
103
- ```
104
-
105
- ### Converting to Numbers
106
- ```javascript
107
- const toNumber = require('2/number')
108
-
109
- toNumber('1.2') // 1.2
110
- toNumber(Infinity) // 0
111
- toNumber(NaN) // 0
112
- toNumber('not a number') // 0
113
-
114
- // Can specify a fallback other than zero:
115
- toNumber('not a number', {elseReturn: 100}) // 100
116
-
117
- // You can choose to throw an error for invalid inputs.
118
- toNumber('not a number', {elseThrow: true}) // throws error
119
- toNumber('not a number', {elseThrow: new TypeError('Not a number!')})
120
-
121
- // Option to round floats:
122
- toNumber('4.7') // 4.7
123
- toNumber('4.7', {round: true}) // 5
124
-
125
- // By default, Infinity is not considered a valid number,
126
- // but this can be changed:
127
- toNumber(Infinity) // 0
128
- toNumber(Infinity, {finite: false}) // Infinity
129
-
130
- // Number object => Number
131
- const numberObject = new Number(123)
132
- typeof numberObject // 'object'
133
- typeof toNumber(numberObject) // 'number'
134
-
135
- // Can parse strings that have digit grouping:
136
- toNumber('1,234') // 1234
137
- // The built-in Number function, on the other hand, cannot:
138
- Number('1,234') // NaN
139
-
140
- // Can be configured to interpret the comma as a decimal point:
141
- toNumber('1,234', {decimalComma: true}) // 1.234
142
- ```
143
-
144
- ### Converting to Objects
145
- ```javascript
146
- const toObject = require('2/object')
147
-
148
- // Array of key/value pairs => Object
149
- const obj1 = toObject([['a', 1], ['b', 2]])
150
- obj1.a // 1
151
- obj1.b // 2
152
-
153
- // Array => Object
154
- const obj2 = toObject(['first', 'second'])
155
- Object.keys(obj2).length // 2
156
- obj2[0] // 'first'
157
- obj2[1] // 'second'
158
-
159
- // In the above example, the array indices become the object keys.
160
- // But you can make the keys mirror the values instead:
161
- const obj3 = toObject(['first', 'second'], {mirror: true})
162
- Object.keys(obj3).length // 2
163
- obj3.first // 'first'
164
- obj3.second // 'second'
165
-
166
- // Map => Object
167
- const map = new Map()
168
- map.set('key1', 'value1')
169
- map.set('key2', 'value2')
170
- const obj4 = toObject(map)
171
- obj4.key1 // 'value1'
172
- obj4.key2 // 'value2'
173
-
174
- // Duplicate keys
175
- toObject([['key', 1], ['key', 2]]) // throws an error (default behavior)
176
- const obj5 = toObject([['key', 1], ['key', 2]], {throwIfEquivKeys: false}) // error-throwing disabled
177
- Object.keys(obj5).length // 1
178
- obj5.key // 2
179
-
180
- // Setting property descriptors
181
- const obj6 = toObject([['a', 1], ['b', 2]], {descriptors: {enumerable: false}})
182
- Object.keys(obj6).length // 0 (because the properties are non-enumerable)
183
- obj6.a // 1
184
- obj6.b // 2
185
- ```
186
-
187
- ### Converting to Strings
188
- ```javascript
189
- const toString = require('2/string')
190
-
191
- toString(123) // '123'
192
- toString(-0) // '0'
193
-
194
- toString(true) // ''
195
- toString(false) // ''
196
- toString(undefined) // ''
197
- toString(null) // ''
198
- toString(Infinity) // ''
199
- toString(NaN) // ''
200
- toString({}) // ''
201
- toString([]) // ''
202
- toString(function () {}) // ''
203
- toString(Symbol('test')) // ''
204
-
205
- // Compare the above to standard JavaScript string conversion:
206
- String(true) // 'true'
207
- String(false) // 'false'
208
- String(undefined) // 'undefined'
209
- String(null) // 'null'
210
- String(Infinity) // 'Infinity'
211
- String(NaN) // 'NaN'
212
- String({}) // '[object Object]'
213
- String([]) // ''
214
- String(function () {}) // 'function () {}'
215
- String(Symbol('test')) // 'Symbol(test)'
216
-
217
- // Default fallback is an empty string, but you can change it:
218
- toString(undefined) // ''
219
- toString(undefined, {elseReturn: 'N/A'}) // 'N/A'
220
-
221
- // You can choose to throw an error for invalid inputs.
222
- toString(undefined, {elseThrow: true}) // throws error
223
-
224
- // String object => String
225
- const stringObject = new String('test')
226
- typeof stringObject // 'object'
227
- typeof toString(stringObject) // 'string'
228
- ```
229
-
230
- ## Version Migration Guide
231
-
232
- Here are backward-incompatible changes you need to know about.
233
-
234
- ### 2.x ⇒ 3.x
235
-
236
- * The minimum supported Node version is now 8.3.0 (instead of 7.0.0).
237
- * `toNumber` no lounger rounds the `elseReturn` value when `round` is `true`. If you need this behavior, apply `Math.round` to your `elseReturn` value manually.
238
- * `toObject` will now throw an error if an entries array contains duplicate keys. In version 2, the last equivalent key would have silently overwritten the prior ones. You can restore the previous behavior by setting the new `throwIfEquivKeys` option to `false`.
239
-
240
- ### 1.x ⇒ 2.x
241
-
242
- * `fallback` has been renamed to `elseReturn`.
243
- * Use `elseThrow: true` instead of `fallback: null`.
244
- * Unlike the old `fallback` parameter, `elseReturn` does _not_ type-enforce its values.
245
- * `toObject` with `mirror: true` will now throw an error if any key would overwrite another key. In version 1, this would have been allowed.
246
- * `toObject` with `mirror: true` will now allow an object to become an object key, so long as its string representation is not equivalent to that of any other key. In version 1, attempting to use an object as an object key would silently fail and would result in numeric index keys being used instead.
@@ -1,11 +0,0 @@
1
- 'use strict'
2
-
3
- const isObject = require('is-object')
4
- const otherwise = require('otherwise')
5
- const sbo = require('sbo')
6
-
7
- module.exports = sbo(function toStr (x, {elseCall, elseReturn = '', elseThrow} = {}) {
8
- if (typeof x === 'string') return x
9
- if (x instanceof String || Number.isFinite(x) || (isObject(x) && x.toString !== Object.prototype.toString)) return String(x)
10
- return otherwise({elseCall, elseReturn, elseThrow}, {defaultErrorClass: TypeError})
11
- })