{"_id":"@anaslaham/talib-wasm","_rev":"1-93ff6e7fb330c6d86392e19e29fa1e9c","name":"@anaslaham/talib-wasm","dist-tags":{"latest":"4.0.0"},"versions":{"3.0.1":{"name":"@anaslaham/talib-wasm","version":"3.0.1","description":"ta-lib.org package parsed with emscripten, that can be added to browser","main":"build/main.js","scripts":{"build":"bash ./build.sh && webpack && bash ./post-build.sh","deep-update-deps":"eval $(node -e \"console.log('npm i -S ' + Object.keys(require('./package.json').dependencies || {}).map(v => v + '@latest').join(' ') + ' && ' + 'npm i --save-dev ' + Object.keys(require('./package.json').devDependencies).map(v => v + '@latest').join(' '))\")","test":"jest"},"repository":{"type":"git","url":"git+https://github.dev/anaslaham/talib-wasm"},"keywords":["talib","ta-lib","emscripten","wasm","technical","analysis","bower","browser","webassembly","stocks","stock market"],"author":{"name":"anaslaham"},"license":"MIT","bugs":{"url":"https://github.dev/anaslaham/talib-wasm/issues"},"homepage":"https://github.dev/anaslaham/talib-wasm#readme","devDependencies":{"@babel/core":"^7.24.5","@babel/preset-env":"^7.24.5","@types/jest":"^29.5.12","babel-loader":"^9.1.3","babel-plugin-syntax-dynamic-import":"^6.18.0","jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.4.5","uglify-js":"^3.17.4","uglifyjs":"^2.4.11","webpack":"^5.91.0","webpack-cli":"^5.1.4","xml-loader":"^1.2.1","xml2js":"^0.6.2"},"jest":{"coverageDirectory":"<rootDir>/coverage","testEnvironment":"node","moduleFileExtensions":["ts","js"],"transform":{"^.+\\.(ts|tsx)$":"ts-jest"},"testMatch":["**/*.spec.(ts|js)"],"globals":{"ts-jest":{"tsconfig":"tsconfig.json"}}},"types":"./build/main.d.ts","gitHead":"c9a6b00824fa6c45ee3704f7abdb1b41ee859f52","_id":"@anaslaham/talib-wasm@3.0.1","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-1bvwO0O6NEkuQOkeA2VJhr/6fWEBmgWcmdJTwyX7UxaCfF8ahxhUpHlHdBBimmwTMN9xpXw0iC7Ewwhpjnsy7Q==","shasum":"673180fa4afa590d67ef7a1396b2deb5c85d3a73","tarball":"https://registry.npmjs.org/@anaslaham/talib-wasm/-/talib-wasm-3.0.1.tgz","fileCount":304,"unpackedSize":10422664,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDct4kLcvOrYCx3fn9tLxQj/6gRAXiY1NSRIKPRuxS/3AiB4qWz3czvTE4OuegZ7F+w+f2IKwmn7TYXmk/tjopmUMA=="}]},"_npmUser":{"name":"anaslaham","email":"anoslaham@gmail.com"},"directories":{},"maintainers":[{"name":"anaslaham","email":"anoslaham@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/talib-wasm_3.0.1_1715814499064_0.5113456653428052"},"_hasShrinkwrap":false},"4.0.0":{"name":"@anaslaham/talib-wasm","version":"4.0.0","description":"ta-lib.org package parsed with emscripten, that can be added to browser","main":"build/main.js","scripts":{"build":"bash ./build.sh && webpack && bash ./post-build.sh","deep-update-deps":"eval $(node -e \"console.log('npm i -S ' + Object.keys(require('./package.json').dependencies || {}).map(v => v + '@latest').join(' ') + ' && ' + 'npm i --save-dev ' + Object.keys(require('./package.json').devDependencies).map(v => v + '@latest').join(' '))\")","test":"jest"},"repository":{"type":"git","url":"git+https://github.dev/anaslaham/talib-wasm"},"keywords":["talib","ta-lib","emscripten","wasm","technical","analysis","bower","browser","webassembly","stocks","stock market"],"author":{"name":"anaslaham"},"license":"MIT","bugs":{"url":"https://github.dev/anaslaham/talib-wasm/issues"},"homepage":"https://github.dev/anaslaham/talib-wasm#readme","devDependencies":{"@babel/core":"^7.24.5","@babel/preset-env":"^7.24.5","@types/jest":"^29.5.12","babel-loader":"^9.1.3","babel-plugin-syntax-dynamic-import":"^6.18.0","jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.4.5","uglify-js":"^3.17.4","uglifyjs":"^2.4.11","webpack":"^5.91.0","webpack-cli":"^5.1.4","xml-loader":"^1.2.1","xml2js":"^0.6.2"},"jest":{"coverageDirectory":"<rootDir>/coverage","testEnvironment":"node","moduleFileExtensions":["ts","js"],"transform":{"^.+\\.(ts|tsx)$":"ts-jest"},"testMatch":["**/*.spec.(ts|js)"],"globals":{"ts-jest":{"tsconfig":"tsconfig.json"}}},"types":"./build/main.d.ts","gitHead":"eb163eee6a1b8f4124ff326adce6c30bebd525f0","_id":"@anaslaham/talib-wasm@4.0.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-CNtv+CNhWKcDvyUupRePrB3FxpCdYcMdWYzZ6Qp+nh9yCfIJsdRlYv5lh2w0PRf5mbfqECz9lx/Q1CwYidxcmA==","shasum":"f1b83dd143acab40b09ab99279a1a3a14d66e29a","tarball":"https://registry.npmjs.org/@anaslaham/talib-wasm/-/talib-wasm-4.0.0.tgz","fileCount":20,"unpackedSize":4176577,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICIKWJix4QGh4udh0uG6CGZl/NyJdPnCHAK25NE8NyttAiApzzVhOqy02PvEBgjS77kKQXVv0iRa4Iiv3gRyklqZDA=="}]},"_npmUser":{"name":"anaslaham","email":"anoslaham@gmail.com"},"directories":{},"maintainers":[{"name":"anaslaham","email":"anoslaham@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/talib-wasm_4.0.0_1715814809182_0.32802699036829663"},"_hasShrinkwrap":false}},"time":{"created":"2024-05-15T23:08:18.948Z","3.0.1":"2024-05-15T23:08:19.359Z","modified":"2024-05-15T23:13:29.662Z","4.0.0":"2024-05-15T23:13:29.495Z"},"maintainers":[{"name":"anaslaham","email":"anoslaham@gmail.com"}],"description":"ta-lib.org package parsed with emscripten, that can be added to browser","homepage":"https://github.dev/anaslaham/talib-wasm#readme","keywords":["talib","ta-lib","emscripten","wasm","technical","analysis","bower","browser","webassembly","stocks","stock market"],"repository":{"type":"git","url":"git+https://github.dev/anaslaham/talib-wasm"},"author":{"name":"anaslaham"},"bugs":{"url":"https://github.dev/anaslaham/talib-wasm/issues"},"license":"MIT","readme":"# talib-wasm\nAn emscripten wrapper around TA-LIB, that allows you to use technical analysis library from [ta-lib.org](https://ta-lib.org) with webpack or inside node.js.\n\nSupports typescript types.\n\n## Installation\nTo install the most recent release from npm, run:\n\n```npm install talib-wasm --save```\n\n## Examples\n### Simple usage\n```javascript\nrequire('talib-wasm')\n    .then((funcs) => {\n        const totalLength = 50;\n        const inputArray1 = new Array(totalLength);\n        const inputArray2 = new Array(totalLength);\n\n        for (let i = 0; i < totalLength; i++) {\n            inputArray1[i] = Math.random() * 100;\n            inputArray2[i] = Math.random() * 100;\n        }\n\n        const result = funcs.CORREL({\n            startIdx: 0,\n            begIdx: totalLength - 1,\n            inReal0: inputArray1,\n            inReal1: inputArray2,\n            optInTimePeriod: 5\n        });\n\n        console.log(\n            result        \n        );\n    });\n```\nOutput:\n```\n{ \n    outReal: Float64Array [\n        -0.6928388933464642,\n        -0.5839394251640864,\n        -0.14373076952669628,\n        0.6790200559640114,\n        0.8465738940590309,\n        0.28576183066199495,\n        ...\n    ],\n    returnCode: 0,\n    returnCodeName: 'TA_SUCCESS'\n}\n```\n### Get all function definitions\n```\nrequire('talib-wasm')\n    .then((funcs) => {\n        console.log(\n            JSON.stringify(funcs.describeFunctions(), null, 2)\n        )\n    });\n```\nOutput:\n```\n{\n  \"ACOS\": {\n    \"RequiredInputArguments\": [\n      {\n        \"name\": \"inReal\",\n        \"defaultValue\": null\n      }\n    ],\n    \"OptionalInputArguments\": [],\n    \"OutputArguments\": [\n      {\n        \"name\": \"outReal\"\n      }\n    ]\n  },\n  \"AD\": {\n    \"RequiredInputArguments\": [\n      {\n        \"name\": \"High\",\n        \"defaultValue\": null\n      },\n      {\n        \"name\": \"Low\",\n        \"defaultValue\": null\n      },\n      {\n        \"name\": \"Close\",\n        \"defaultValue\": null\n      },\n      {\n        \"name\": \"Volume\",\n        \"defaultValue\": null\n      }\n    ],\n    \"OptionalInputArguments\": [],\n    \"OutputArguments\": [\n      {\n        \"name\": \"outReal\"\n      }\n    ]\n  },\n  \"ADD\": {\n    \"RequiredInputArguments\": [\n      {\n        \"name\": \"inReal0\",\n        \"defaultValue\": null\n      },\n      {\n        \"name\": \"inReal1\",\n        \"defaultValue\": null\n      }\n    ],\n    \"OptionalInputArguments\": [],\n    \"OutputArguments\": [\n      {\n        \"name\": \"outReal\"\n      }\n    ]\n  },\n  ...\n}\n```\n### MA Types\nSome indicators require or accept a optInMAType property:\n```\nSMA   = 0\nEMA   = 1\nWMA   = 2\nDEMA  = 3\nTEMA  = 4\nTRIMA = 5\nKAMA  = 6\nMAMA  = 7\nT3    = 8\n```\n\n## Local build\n\nYou need manually install [emscripten](https://emscripten.org/) to build this package.\n\n```\nnpm run build\n```\n\n## Modules versions\n\n### Version 3.0.1\n* Bugfix with nested C-functions (ffi) + tests\n\n```\nemcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 2.0.14\nclang version 12.0.0\nnode (EMSDK_NODE) version - 15.10.0\npython (EMSDK_PYTHON) version - 3.9.2\n```\n\n### Version 3.0.0\n* Result arrays now not contain blank fields at the end. Length of result array in version 2.x can be different with version 3.x\n* Result arrays now are not Float64Array.\n* Fixed memory leaks on functions calls.\n* Added `lookback` functions to get lookback info. Very useful to get difference between input and output arrays lengths.\n* Talib C++ sources from ta-lib.org now in project.\n* Added tests (uses jest).\n\n```\nemcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 2.0.10\nclang version 12.0.0 (/opt/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project 445289aa63e1b82b9eea6497fb2d0443813a9d4e)\nnode (EMSDK_NODE) version - 15.3.0\npython (EMSDK_PYTHON) version - 3.8.5\n```\n\n\n### Versions 2.0.1 - 2.0.6\nAdded main.d.ts file for typescript typings support.\n```\nemcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 2.0.0\nclang version 12.0.0\ntalib version - 1.1.3\nnode (EMSDK_NODE) version - 14.8.0\npython (EMSDK_PYTHON) version - 3.8.5\n```\n\n### Version 2.0.0\nSwitch to emscripten v2.0.0\n```\nemcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 2.0.0\nclang version 12.0.0\ntalib version - 1.1.3\nnode (EMSDK_NODE) version - 14.8.0\npython (EMSDK_PYTHON) version - 3.8.5\n```\n\n### Version 1.1.3\n```\nemcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 1.40.1\ntalib - 1.1.3\nnode - 14.7.0\n```\n\n### Version 1.1.2\n```\nemcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 1.39.18\ntalib - 1.1.3\nnode - 14.5.0\n```\n\n### Version 1.1.1\n```\nemcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 1.39.14\ntalib - 1.1.3\nnode - 14.2.0\n```\n\n### Version 1.1.0\n```\nemcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 1.39.13\ntalib - 1.1.3\nnode - 14.0.0\n```\n\n### Version 1.0.6\n```\nemcc - (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 1.39.6\ntalib - 1.1.3\nnode - 13.7.0\n```\n\n### Version 1.0.5\n```\nemcc - (Emscripten gcc/clang-like replacement) 1.39.3\ntalib - 1.1.3\nnode - 13.2.0\n```\n\n### Version 1.0.4\n```\nemcc - (Emscripten gcc/clang-like replacement) 1.39.1\ntalib - 1.1.3\nnode - 13.0.1\n```\n\n### Version 1.0.3\n```\nemcc - (Emscripten gcc/clang-like replacement) 1.38.44\ntalib - 1.1.2\nnode - 12.10.0\nbinaryen - 89\n```","readmeFilename":"README.md"}