aurix-ai 2.7.2 → 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.
- package/dist/agent/AgentLoop.d.ts.map +1 -1
- package/dist/agent/AgentLoop.js +1 -52
- package/dist/agent/AgentLoop.js.map +1 -1
- package/dist/cli/App.d.ts.map +1 -1
- package/dist/cli/App.js +6 -0
- package/dist/cli/App.js.map +1 -1
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +7 -0
- package/dist/cli/commands.js.map +1 -1
- package/dist/tools/Browser.d.ts.map +1 -1
- package/dist/tools/Browser.js +46 -625
- package/dist/tools/Browser.js.map +1 -1
- package/dist/tools/captcha/CaptchaRouter.d.ts +6 -0
- package/dist/tools/captcha/CaptchaRouter.d.ts.map +1 -0
- package/dist/tools/captcha/CaptchaRouter.js +371 -0
- package/dist/tools/captcha/CaptchaRouter.js.map +1 -0
- package/dist/tools/captcha/RecaptchaSolver.d.ts +2 -0
- package/dist/tools/captcha/RecaptchaSolver.d.ts.map +1 -0
- package/dist/tools/captcha/RecaptchaSolver.js +1114 -0
- package/dist/tools/captcha/RecaptchaSolver.js.map +1 -0
- package/dist/tools/captcha/common.d.ts +35 -0
- package/dist/tools/captcha/common.d.ts.map +1 -0
- package/dist/tools/captcha/common.js +445 -0
- package/dist/tools/captcha/common.js.map +1 -0
- package/dist/tools/captcha/index.d.ts +5 -0
- package/dist/tools/captcha/index.d.ts.map +1 -0
- package/dist/tools/captcha/index.js +4 -0
- package/dist/tools/captcha/index.js.map +1 -0
- package/package.json +1 -2
- package/scripts/build.cjs +0 -15
- package/scripts/run-task.mjs +86 -0
- package/native/token-counter/index.d.ts +0 -7
- package/native/token-counter/index.js +0 -316
- package/native/token-counter/node_modules/.package-lock.json +0 -568
- package/native/token-counter/node_modules/2/array.js +0 -25
- package/native/token-counter/node_modules/2/index.js +0 -12
- package/native/token-counter/node_modules/2/iterator.js +0 -13
- package/native/token-counter/node_modules/2/license.txt +0 -21
- package/native/token-counter/node_modules/2/map.js +0 -27
- package/native/token-counter/node_modules/2/number.js +0 -109
- package/native/token-counter/node_modules/2/object.js +0 -23
- package/native/token-counter/node_modules/2/package.json +0 -60
- package/native/token-counter/node_modules/2/readme.md +0 -246
- package/native/token-counter/node_modules/2/string.js +0 -11
- package/native/token-counter/node_modules/2/test.js +0 -520
- package/native/token-counter/node_modules/@lamansky/every/index.js +0 -16
- package/native/token-counter/node_modules/@lamansky/every/license.txt +0 -21
- package/native/token-counter/node_modules/@lamansky/every/package.json +0 -38
- package/native/token-counter/node_modules/@lamansky/every/readme.md +0 -46
- package/native/token-counter/node_modules/@lamansky/flatten/index.js +0 -5
- package/native/token-counter/node_modules/@lamansky/flatten/license.txt +0 -21
- package/native/token-counter/node_modules/@lamansky/flatten/package.json +0 -35
- package/native/token-counter/node_modules/@lamansky/flatten/readme.md +0 -41
- package/native/token-counter/node_modules/@napi-rs/cli/LICENSE +0 -21
- package/native/token-counter/node_modules/@napi-rs/cli/README.md +0 -96
- package/native/token-counter/node_modules/@napi-rs/cli/package.json +0 -65
- package/native/token-counter/node_modules/@napi-rs/cli/scripts/index.js +0 -51371
- package/native/token-counter/node_modules/add-counter/index.js +0 -3
- package/native/token-counter/node_modules/add-counter/license.txt +0 -21
- package/native/token-counter/node_modules/add-counter/package.json +0 -34
- package/native/token-counter/node_modules/add-counter/readme.md +0 -36
- package/native/token-counter/node_modules/array-pad/LICENSE +0 -22
- package/native/token-counter/node_modules/array-pad/README.md +0 -80
- package/native/token-counter/node_modules/array-pad/index.js +0 -30
- package/native/token-counter/node_modules/array-pad/package.json +0 -28
- package/native/token-counter/node_modules/arrify/index.js +0 -8
- package/native/token-counter/node_modules/arrify/license +0 -21
- package/native/token-counter/node_modules/arrify/package.json +0 -33
- package/native/token-counter/node_modules/arrify/readme.md +0 -36
- package/native/token-counter/node_modules/case-insensitive/index.js +0 -72
- package/native/token-counter/node_modules/case-insensitive/license.txt +0 -21
- package/native/token-counter/node_modules/case-insensitive/package.json +0 -39
- package/native/token-counter/node_modules/case-insensitive/readme.md +0 -39
- package/native/token-counter/node_modules/case-insensitive/test.js +0 -114
- package/native/token-counter/node_modules/class-chain/index.js +0 -32
- package/native/token-counter/node_modules/class-chain/license.txt +0 -21
- package/native/token-counter/node_modules/class-chain/package.json +0 -39
- package/native/token-counter/node_modules/class-chain/readme.md +0 -23
- package/native/token-counter/node_modules/class-chain/test.js +0 -77
- package/native/token-counter/node_modules/copy-own/index.js +0 -10
- package/native/token-counter/node_modules/copy-own/license.txt +0 -21
- package/native/token-counter/node_modules/copy-own/package.json +0 -37
- package/native/token-counter/node_modules/copy-own/readme.md +0 -67
- package/native/token-counter/node_modules/def-props/index.js +0 -43
- package/native/token-counter/node_modules/def-props/license.txt +0 -21
- package/native/token-counter/node_modules/def-props/node_modules/is-obj/index.d.ts +0 -22
- package/native/token-counter/node_modules/def-props/node_modules/is-obj/index.js +0 -6
- package/native/token-counter/node_modules/def-props/node_modules/is-obj/license +0 -9
- package/native/token-counter/node_modules/def-props/node_modules/is-obj/package.json +0 -34
- package/native/token-counter/node_modules/def-props/node_modules/is-obj/readme.md +0 -39
- package/native/token-counter/node_modules/def-props/package.json +0 -51
- package/native/token-counter/node_modules/def-props/readme.md +0 -117
- package/native/token-counter/node_modules/empty-iterator/index.js +0 -3
- package/native/token-counter/node_modules/empty-iterator/license.txt +0 -21
- package/native/token-counter/node_modules/empty-iterator/package.json +0 -33
- package/native/token-counter/node_modules/empty-iterator/readme.md +0 -23
- package/native/token-counter/node_modules/enforce-range/index.js +0 -15
- package/native/token-counter/node_modules/enforce-range/license.txt +0 -21
- package/native/token-counter/node_modules/enforce-range/node_modules/2/array.js +0 -43
- package/native/token-counter/node_modules/enforce-range/node_modules/2/index.js +0 -10
- package/native/token-counter/node_modules/enforce-range/node_modules/2/iterator.js +0 -26
- package/native/token-counter/node_modules/enforce-range/node_modules/2/license.txt +0 -21
- package/native/token-counter/node_modules/enforce-range/node_modules/2/map.js +0 -47
- package/native/token-counter/node_modules/enforce-range/node_modules/2/number.js +0 -33
- package/native/token-counter/node_modules/enforce-range/node_modules/2/object.js +0 -61
- package/native/token-counter/node_modules/enforce-range/node_modules/2/package.json +0 -41
- package/native/token-counter/node_modules/enforce-range/node_modules/2/readme.md +0 -210
- package/native/token-counter/node_modules/enforce-range/node_modules/2/string.js +0 -37
- package/native/token-counter/node_modules/enforce-range/node_modules/2/test.js +0 -413
- package/native/token-counter/node_modules/enforce-range/package.json +0 -36
- package/native/token-counter/node_modules/enforce-range/readme.md +0 -53
- package/native/token-counter/node_modules/english-list/.travis.yml +0 -6
- package/native/token-counter/node_modules/english-list/LICENSE +0 -22
- package/native/token-counter/node_modules/english-list/README.md +0 -44
- package/native/token-counter/node_modules/english-list/index.js +0 -34
- package/native/token-counter/node_modules/english-list/package.json +0 -31
- package/native/token-counter/node_modules/english-list/test.log +0 -6
- package/native/token-counter/node_modules/errate/index.js +0 -19
- package/native/token-counter/node_modules/errate/license.txt +0 -21
- package/native/token-counter/node_modules/errate/package.json +0 -39
- package/native/token-counter/node_modules/errate/readme.md +0 -79
- package/native/token-counter/node_modules/ffn/index.js +0 -9
- package/native/token-counter/node_modules/ffn/license.txt +0 -21
- package/native/token-counter/node_modules/ffn/package.json +0 -34
- package/native/token-counter/node_modules/ffn/readme.md +0 -51
- package/native/token-counter/node_modules/get-own-property/index.js +0 -5
- package/native/token-counter/node_modules/get-own-property/license.txt +0 -21
- package/native/token-counter/node_modules/get-own-property/package.json +0 -31
- package/native/token-counter/node_modules/get-own-property/readme.md +0 -22
- package/native/token-counter/node_modules/has-duplicates/index.js +0 -11
- package/native/token-counter/node_modules/has-duplicates/license.txt +0 -21
- package/native/token-counter/node_modules/has-duplicates/package.json +0 -32
- package/native/token-counter/node_modules/has-duplicates/readme.md +0 -23
- package/native/token-counter/node_modules/has-duplicates/test.js +0 -30
- package/native/token-counter/node_modules/if-else-throw/index.js +0 -8
- package/native/token-counter/node_modules/if-else-throw/license.txt +0 -21
- package/native/token-counter/node_modules/if-else-throw/package.json +0 -37
- package/native/token-counter/node_modules/if-else-throw/readme.md +0 -32
- package/native/token-counter/node_modules/is-array-of-length/index.js +0 -7
- package/native/token-counter/node_modules/is-array-of-length/license.txt +0 -21
- package/native/token-counter/node_modules/is-array-of-length/package.json +0 -42
- package/native/token-counter/node_modules/is-array-of-length/readme.md +0 -41
- package/native/token-counter/node_modules/is-class-of/index.js +0 -7
- package/native/token-counter/node_modules/is-class-of/license.txt +0 -21
- package/native/token-counter/node_modules/is-class-of/package.json +0 -35
- package/native/token-counter/node_modules/is-class-of/readme.md +0 -57
- package/native/token-counter/node_modules/is-global-object/index.js +0 -6
- package/native/token-counter/node_modules/is-global-object/license.txt +0 -21
- package/native/token-counter/node_modules/is-global-object/package.json +0 -34
- package/native/token-counter/node_modules/is-global-object/readme.md +0 -22
- package/native/token-counter/node_modules/is-instance-of/index.js +0 -28
- package/native/token-counter/node_modules/is-instance-of/license.txt +0 -21
- package/native/token-counter/node_modules/is-instance-of/package.json +0 -44
- package/native/token-counter/node_modules/is-instance-of/readme.md +0 -55
- package/native/token-counter/node_modules/is-iterable/index.js +0 -5
- package/native/token-counter/node_modules/is-iterable/license +0 -21
- package/native/token-counter/node_modules/is-iterable/package.json +0 -30
- package/native/token-counter/node_modules/is-iterable/readme.md +0 -23
- package/native/token-counter/node_modules/is-nil/LICENSE +0 -21
- package/native/token-counter/node_modules/is-nil/README.md +0 -47
- package/native/token-counter/node_modules/is-nil/index.js +0 -6
- package/native/token-counter/node_modules/is-nil/package.json +0 -46
- package/native/token-counter/node_modules/is-obj/index.js +0 -5
- package/native/token-counter/node_modules/is-obj/license +0 -21
- package/native/token-counter/node_modules/is-obj/package.json +0 -33
- package/native/token-counter/node_modules/is-obj/readme.md +0 -34
- package/native/token-counter/node_modules/is-object/.eslintignore +0 -1
- package/native/token-counter/node_modules/is-object/.eslintrc +0 -5
- package/native/token-counter/node_modules/is-object/.nycrc +0 -13
- package/native/token-counter/node_modules/is-object/.testem.json +0 -14
- package/native/token-counter/node_modules/is-object/CHANGELOG.md +0 -121
- package/native/token-counter/node_modules/is-object/LICENSE +0 -19
- package/native/token-counter/node_modules/is-object/README.md +0 -48
- package/native/token-counter/node_modules/is-object/index.js +0 -5
- package/native/token-counter/node_modules/is-object/package.json +0 -78
- package/native/token-counter/node_modules/is-object/test/index.js +0 -44
- package/native/token-counter/node_modules/is-plain-object/LICENSE +0 -21
- package/native/token-counter/node_modules/is-plain-object/README.md +0 -104
- package/native/token-counter/node_modules/is-plain-object/index.d.ts +0 -5
- package/native/token-counter/node_modules/is-plain-object/index.js +0 -37
- package/native/token-counter/node_modules/is-plain-object/package.json +0 -79
- package/native/token-counter/node_modules/isobject/LICENSE +0 -21
- package/native/token-counter/node_modules/isobject/README.md +0 -122
- package/native/token-counter/node_modules/isobject/index.d.ts +0 -5
- package/native/token-counter/node_modules/isobject/index.js +0 -12
- package/native/token-counter/node_modules/isobject/package.json +0 -74
- package/native/token-counter/node_modules/lodash.set/LICENSE +0 -47
- package/native/token-counter/node_modules/lodash.set/README.md +0 -18
- package/native/token-counter/node_modules/lodash.set/index.js +0 -990
- package/native/token-counter/node_modules/lodash.set/package.json +0 -17
- package/native/token-counter/node_modules/longest-first/index.js +0 -3
- package/native/token-counter/node_modules/longest-first/license.txt +0 -21
- package/native/token-counter/node_modules/longest-first/package.json +0 -36
- package/native/token-counter/node_modules/longest-first/readme.md +0 -29
- package/native/token-counter/node_modules/m-o/index.js +0 -27
- package/native/token-counter/node_modules/m-o/license.txt +0 -21
- package/native/token-counter/node_modules/m-o/node_modules/new-object/index.js +0 -23
- package/native/token-counter/node_modules/m-o/node_modules/new-object/license.txt +0 -21
- package/native/token-counter/node_modules/m-o/node_modules/new-object/package.json +0 -40
- package/native/token-counter/node_modules/m-o/node_modules/new-object/readme.md +0 -55
- package/native/token-counter/node_modules/m-o/package.json +0 -45
- package/native/token-counter/node_modules/m-o/readme.md +0 -87
- package/native/token-counter/node_modules/map-iter/index.js +0 -6
- package/native/token-counter/node_modules/map-iter/license.txt +0 -21
- package/native/token-counter/node_modules/map-iter/package.json +0 -40
- package/native/token-counter/node_modules/map-iter/readme.md +0 -46
- package/native/token-counter/node_modules/new-object/index.js +0 -5
- package/native/token-counter/node_modules/new-object/license.txt +0 -21
- package/native/token-counter/node_modules/new-object/package.json +0 -49
- package/native/token-counter/node_modules/new-object/readme.md +0 -145
- package/native/token-counter/node_modules/ofn/index.js +0 -22
- package/native/token-counter/node_modules/ofn/license.txt +0 -21
- package/native/token-counter/node_modules/ofn/package.json +0 -40
- package/native/token-counter/node_modules/ofn/readme.md +0 -63
- package/native/token-counter/node_modules/otherwise/index.js +0 -11
- package/native/token-counter/node_modules/otherwise/license.txt +0 -21
- package/native/token-counter/node_modules/otherwise/package.json +0 -38
- package/native/token-counter/node_modules/otherwise/readme.md +0 -29
- package/native/token-counter/node_modules/parser-factory/index.js +0 -138
- package/native/token-counter/node_modules/parser-factory/license.txt +0 -21
- package/native/token-counter/node_modules/parser-factory/node_modules/arrify/index.d.ts +0 -38
- package/native/token-counter/node_modules/parser-factory/node_modules/arrify/index.js +0 -23
- package/native/token-counter/node_modules/parser-factory/node_modules/arrify/license +0 -9
- package/native/token-counter/node_modules/parser-factory/node_modules/arrify/package.json +0 -35
- package/native/token-counter/node_modules/parser-factory/node_modules/arrify/readme.md +0 -39
- package/native/token-counter/node_modules/parser-factory/package.json +0 -38
- package/native/token-counter/node_modules/parser-factory/readme.md +0 -15
- package/native/token-counter/node_modules/pfn/index.js +0 -5
- package/native/token-counter/node_modules/pfn/license.txt +0 -21
- package/native/token-counter/node_modules/pfn/package.json +0 -41
- package/native/token-counter/node_modules/pfn/readme.md +0 -111
- package/native/token-counter/node_modules/pfn/strict.js +0 -8
- package/native/token-counter/node_modules/plainify/index.js +0 -5
- package/native/token-counter/node_modules/plainify/license.txt +0 -21
- package/native/token-counter/node_modules/plainify/package.json +0 -36
- package/native/token-counter/node_modules/plainify/readme.md +0 -47
- package/native/token-counter/node_modules/possible-function/changelog.md +0 -7
- package/native/token-counter/node_modules/possible-function/index.js +0 -43
- package/native/token-counter/node_modules/possible-function/license.txt +0 -21
- package/native/token-counter/node_modules/possible-function/package.json +0 -34
- package/native/token-counter/node_modules/possible-function/readme.md +0 -77
- package/native/token-counter/node_modules/possible-function/test.js +0 -32
- package/native/token-counter/node_modules/qfn/index.js +0 -11
- package/native/token-counter/node_modules/qfn/license.txt +0 -21
- package/native/token-counter/node_modules/qfn/package.json +0 -40
- package/native/token-counter/node_modules/qfn/readme.md +0 -45
- package/native/token-counter/node_modules/roadblock/index.js +0 -3
- package/native/token-counter/node_modules/roadblock/license.txt +0 -21
- package/native/token-counter/node_modules/roadblock/package.json +0 -40
- package/native/token-counter/node_modules/roadblock/readme.md +0 -59
- package/native/token-counter/node_modules/round-to/index.d.ts +0 -56
- package/native/token-counter/node_modules/round-to/index.js +0 -37
- package/native/token-counter/node_modules/round-to/license +0 -9
- package/native/token-counter/node_modules/round-to/package.json +0 -38
- package/native/token-counter/node_modules/round-to/readme.md +0 -71
- package/native/token-counter/node_modules/rtrim-array/index.js +0 -10
- package/native/token-counter/node_modules/rtrim-array/license.txt +0 -21
- package/native/token-counter/node_modules/rtrim-array/package.json +0 -41
- package/native/token-counter/node_modules/rtrim-array/readme.md +0 -75
- package/native/token-counter/node_modules/sbo/index.js +0 -25
- package/native/token-counter/node_modules/sbo/license.txt +0 -21
- package/native/token-counter/node_modules/sbo/package.json +0 -50
- package/native/token-counter/node_modules/sbo/readme.md +0 -105
- package/native/token-counter/node_modules/sorp/index.js +0 -3
- package/native/token-counter/node_modules/sorp/license.txt +0 -21
- package/native/token-counter/node_modules/sorp/package.json +0 -34
- package/native/token-counter/node_modules/sorp/readme.md +0 -25
- package/native/token-counter/node_modules/trim-call/index.js +0 -6
- package/native/token-counter/node_modules/trim-call/license.txt +0 -21
- package/native/token-counter/node_modules/trim-call/package.json +0 -40
- package/native/token-counter/node_modules/trim-call/readme.md +0 -80
- package/native/token-counter/node_modules/type-error/LICENSE +0 -21
- package/native/token-counter/node_modules/type-error/README.md +0 -24
- package/native/token-counter/node_modules/type-error/index.js +0 -35
- package/native/token-counter/node_modules/type-error/package.json +0 -11
- package/native/token-counter/node_modules/vfn/index.js +0 -21
- package/native/token-counter/node_modules/vfn/license.txt +0 -21
- package/native/token-counter/node_modules/vfn/package.json +0 -40
- package/native/token-counter/node_modules/vfn/readme.md +0 -81
- package/native/token-counter/node_modules/wfn/index.js +0 -43
- package/native/token-counter/node_modules/wfn/license.txt +0 -21
- package/native/token-counter/node_modules/wfn/package.json +0 -38
- package/native/token-counter/node_modules/wfn/readme.md +0 -81
- package/native/token-counter/package-lock.json +0 -578
- package/native/token-counter/package.json +0 -21
- 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
|
-
})
|