{"_id":"anti-trojan-source","_rev":"36-47a8b9eced582c6f638bcc6f89df7310","name":"anti-trojan-source","dist-tags":{"latest":"1.13.0"},"versions":{"1.0.0":{"name":"anti-trojan-source","version":"1.0.0","keywords":["trojan"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.0.0","maintainers":[{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"cli":"bin/cli.js"},"dist":{"shasum":"3958c48f5a27673f0cc0baaaa838078ba0901454","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.0.0.tgz","fileCount":5,"integrity":"sha512-Wne72/27yrOH2iUK5aC3awdpPKgoxMqAf51F/P1XZ2Hu7OvjDoDLLldn5lqOw+KkgmFR/wRN9tr77+f6WPU/yw==","signatures":[{"sig":"MEUCIQCLgCAakPgd/LXyFBXm0jonnUa7lVybhTTA9oNljoNltAIgKJYC5g0hDg1tGMV0rjJv4TtKijGyNWfHGdTAI7HIx/M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18290},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":"./src/main.js"},"gitHead":"3f14216952f082b7675b92d017bb3fd439ac97c4","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","format":"prettier --config .prettierrc.json --write '**/*.js'","prepare":"husky install && chmod 755 .husky/*","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release"},"_npmUser":{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"7.24.2","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"16.13.0","dependencies":{},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**"],"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.0","@semantic-release/npm":"^8.0.2","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^8.0.1","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^9.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.0.0_1636123117755_0.6045764881321702","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"anti-trojan-source","version":"1.1.0","keywords":["trojan"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.1.0","maintainers":[{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"cli":"bin/cli.js"},"dist":{"shasum":"0b822d33166b978f5fac861336f5605b2f0ba7ee","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.1.0.tgz","fileCount":6,"integrity":"sha512-zW/aD27r/2a5U7jcTxoFExtRaDyx7qDQbjg6nAO/T4bLMwBD8hWupO5P0WDrK62PSaOrsGc+KfsnAPVz7gQ4Ng==","signatures":[{"sig":"MEUCIQCNamwS33MGDnFGd5EeuTn9C+ad7+SdLm14Xx1eQB5KUgIgThuNsC6OKXaHyPzdwIwodTr8DZGYDFUrPYP4GOsP40c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18510},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":"./src/main.js"},"gitHead":"267f606aa140f2afd3b850dc51b44f7f9e584b2e","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","format":"prettier --config .prettierrc.json --write '**/*.js'","prepare":"husky install && chmod 755 .husky/*","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release"},"_npmUser":{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"7.24.2","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"16.13.0","dependencies":{},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**"],"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.0","@semantic-release/npm":"^8.0.2","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^8.0.1","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^9.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.1.0_1636123551724_0.31695719722509685","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"anti-trojan-source","version":"1.2.0","keywords":["trojan"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.2.0","maintainers":[{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"f325e829c2a07b05b8cde51174983656f8678e17","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.2.0.tgz","fileCount":6,"integrity":"sha512-81gn037vmwnBIqAHMGR3FIaTFzMtG+xPDTgyJdli98tQ+0GlzxcNOB86wjEax4MaBqSiKDw3rPWse70DyneuLA==","signatures":[{"sig":"MEQCIBhMnHgXdnkXfHPr6hGyxh08znyLV0l+K0OpzZTcoFfjAiAPf4+5qwxyHpNOd60IIvPyQ5XCwaDoR9Gk3VfPAfRFVA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":21241},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":"./src/main.js"},"gitHead":"6028467ad0d9b6f24b612832532d44d712f3e5b4","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","format":"prettier --config .prettierrc.json --write '**/*.js'","prepare":"husky install && chmod 755 .husky/*","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release"},"_npmUser":{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"7.24.2","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"16.13.0","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**"],"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.0","@semantic-release/npm":"^8.0.2","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^8.0.1","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^9.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.2.0_1636133441574_0.8005599398380592","host":"s3://npm-registry-packages"}},"1.2.2":{"name":"anti-trojan-source","version":"1.2.2","keywords":["trojan"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.2.2","maintainers":[{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"3c655022deed96e422391a56cd99c370e4a5eaf0","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.2.2.tgz","fileCount":6,"integrity":"sha512-DExrAdl7KOeh83mKLDLlCEe0U2VwfMzJNm3BA4dyle0Rt0pf4nKcnFfewHGWfH2hSSkZeQYrlT6zcg4oDLEXNQ==","signatures":[{"sig":"MEUCIQDw4JRUS16VbquYbhV1humlcaUjoI09zw3YJ0B3eocGaQIgA6PINUfw1LwvOEe3ilocalqNVq9b0qemp3UMW9fWRcY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23293},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":"./src/main.js"},"gitHead":"54f4cdb62cd3acb58818a76b58086a30dd1045f3","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","format":"prettier --config .prettierrc.json --write '**/*.js'","prepare":"husky install && chmod 755 .husky/*","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release"},"_npmUser":{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"7.24.2","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"16.13.0","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**"],"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.0","@semantic-release/npm":"^8.0.2","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^8.0.1","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^9.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.2.2_1636137335315_0.23016753767610343","host":"s3://npm-registry-packages"}},"1.2.3":{"name":"anti-trojan-source","version":"1.2.3","keywords":["trojan"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.2.3","maintainers":[{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"4afd6e27d1f4160e56ced0b648fa20884b96a4e6","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.2.3.tgz","fileCount":6,"integrity":"sha512-7K4Tx7p1GaUpQ8qn6qUaPFM68r5Bko52ewXMT3XnGBswDinXqrEps+fTXR9f+UI5pI3KUQIV6qnRyqSFHRSv+g==","signatures":[{"sig":"MEUCIA7DarVOztNcA0Xmx/t7DuYg5LRyMwReC/NbDMzW9U8tAiEAryJlImki2/fXfcNQMuRTyT4hHHM083IVzsvsHjHgCV4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23680},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":"./src/main.js"},"gitHead":"4b933fadec968bf1c0971abc50a731f65b52a999","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","format":"prettier --config .prettierrc.json --write '**/*.js'","prepare":"husky install && chmod 755 .husky/*","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release"},"_npmUser":{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"7.24.2","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"16.13.0","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**"],"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.0","@semantic-release/npm":"^8.0.2","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^8.0.1","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^9.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.2.3_1636151595387_0.3997673260421839","host":"s3://npm-registry-packages"}},"1.2.4":{"name":"anti-trojan-source","version":"1.2.4","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.2.4","maintainers":[{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"b126c29dd2e205d1b852ad3f73aa357c48444ae7","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.2.4.tgz","fileCount":6,"integrity":"sha512-n8b6DIMNpb4K1VtIs2VbVgqtu3mcbFjfaSb/Ylukpzv+1bZ2A0iTYhUbEpP3Gc0i2HmiiXNJaSIu2ay0lOMDwQ==","signatures":[{"sig":"MEQCIBMTVwqsZmaQBoNnsBWszjoj9uvTFMf4OGp5UpbaR0TVAiBO7SSo77GzCLUnCVhNxgajqe6lwULJrUqoIND5l04y4A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23867},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":"./src/main.js"},"gitHead":"bc8f77a080c1c5fc9f8bd64dfcbb41eee7575f84","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","format":"prettier --config .prettierrc.json --write '**/*.js'","prepare":"husky install && chmod 755 .husky/*","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release"},"_npmUser":{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"7.24.2","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"16.13.0","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**"],"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.0","@semantic-release/npm":"^8.0.2","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^8.0.1","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^9.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.2.4_1636188052350_0.23124682781506056","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"anti-trojan-source","version":"1.3.0","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.3.0","maintainers":[{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"b6d91a109889ff0ca33a30a2736621e148b6268b","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.3.0.tgz","fileCount":8,"integrity":"sha512-dQtAJv673kF4izkA61fcXDfR/X3o88sN1f/Yl8/o/NQpcKjVBv1d9WKFm5DJ5l+W313JslQ+pWsJ6FyaUpbMug==","signatures":[{"sig":"MEUCIQDcaaxqH1qreCCG2eLVJM5DJ+8NdA3VM0vgA5jKSC7Q4gIgT/eJdazjAjLBsvMDgh97PoFqbcvhVUXFlUMLbydFp48=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25330},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.js"}},"gitHead":"495a17526476379acfb2fe1a53feae1935b1d2c1","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"7.24.2","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"16.13.0","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.0","@semantic-release/npm":"^8.0.2","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^8.0.1","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^9.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.3.0_1636190363590_0.4903087650756275","host":"s3://npm-registry-packages"}},"1.3.1":{"name":"anti-trojan-source","version":"1.3.1","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.3.1","maintainers":[{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"a3e71e67da6be0985627dad0feeb53c5d443ed7b","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.3.1.tgz","fileCount":8,"integrity":"sha512-lQf5edoHkTJ30680Ft2l8GkygeXpcvzR3F7OkibSnvAqBvNPnNg9lzxnl/cSKhqGDUdkCrADPvtEezBu1yGZ+g==","signatures":[{"sig":"MEUCIFIaFg9Idtk7/mJgeFNht1SewJ1EIy0BVYuz6YvBGqvuAiEA+PauURNXZf17II3vIX923gBFzb3jMAgm0nXAeePnWXI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25331},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"c0d6f327314c3f6739f6c8345c50943d9b72bfac","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"7.24.2","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"16.13.0","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.0","@semantic-release/npm":"^8.0.2","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^8.0.1","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^9.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.3.1_1636190759312_0.5869453295704794","host":"s3://npm-registry-packages"}},"1.3.2":{"name":"anti-trojan-source","version":"1.3.2","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.3.2","maintainers":[{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"e1016ae6529b2643781c59ceeae5ba942a7027f6","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.3.2.tgz","fileCount":8,"integrity":"sha512-7ZlSTSBW+AULLsSkBuLU1naoWcV7pdjfYH54XgzXf4vZaxCgLF+iCiy4EOrpDtIXUQ1rOBdY91O2fxY/m0rXbg==","signatures":[{"sig":"MEYCIQCDxuKfGcBWQqkLJAfiRs/dCSOG6dkoWJKs8cyF/h8ZeAIhAIEjRwopvLzgZgolWrNcp3QiRNQvjX6+RZ60BEIGjlG4","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25820},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"d0a08c6627f11a23a780dbec712ff7a35025a457","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"7.24.2","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"16.13.0","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.0","@semantic-release/npm":"^8.0.2","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^8.0.1","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^9.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.3.2_1636235971212_0.1122086947381642","host":"s3://npm-registry-packages"}},"1.3.3":{"name":"anti-trojan-source","version":"1.3.3","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.3.3","maintainers":[{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"61c8971c24c4a4dff55593d9f349ba162318f568","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.3.3.tgz","fileCount":8,"integrity":"sha512-dSQeCqijkG/S5UHdomduZ3zD/cCuTzAiFqOTKdGXFpiNOu7aAlPaSekEKYyJ/au47zuaRgi5cGcKWhrvYuJ4mQ==","signatures":[{"sig":"MEQCIBl30wcw1BF16kt2iAfYBnHIY0IEaKomP9NwpnZ4ctThAiAQ1J/RnA9G9pASvTVbBiQoz2q/CDyfruXihLbd/MgWZg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25814,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhmUwFCRA9TVsSAnZWagAAbkQQAIz6Gxj5rSER32TunqJL\n25JZ7qumZ7MQnULPtEwpzmEXbWJddeCr3AMunbYUVif3HmjysILURs5WlP1C\nWuPkForz1z7jSZve2h5roH0NP0+HGtoUwiWLfZ9DKbNK8Y+wwsDoNDUqpFbO\nMGF9DzWMQuAuNRNDvpR9NiaIV5bwSs+9t0xxU54BPeFe6/F5IrGklRlW7QCy\nK7PMLKq0VLMsVHDX55MJ//LOcgiKKKPE5Ikue/CtK4mLHU8ed0d/F3p4gldA\nqCpLJMasAXE+wIyYXcvydR0Sf2d2/z2BoJ320L68G6WAC4VUXCeM1yN6nxvU\nvphXsjPVAW1aEkkHTulYL4oZCGL9nJBqXr1zjnjndjjoL36vsP42H86OvCFh\n+5yy8We1bFD9wosjo/AtOef0M+YFzZ0/7lwqSHBOwHijiJQyMGtZ8X4GoA/1\naAMzavBfPOChqjOwrz4U4NzsevOJ25ja9ryH4tzgb66woUm1rpZ4rjSNCoJe\nzIrNfrZDJImO2/NR4GTPF1G14rl+J5758faHBJPfT7OBQczaxsB4pS6EwvBz\nvDjCAHK+l0n7lariidu5kP+XDKS4SVB/za09lpEgjg/k6sDs6bY7eOB+mufg\n+mUuKfpOdIfgmJlX2Yas/D15HBEolCZnr5e7PjCAu6ODtjQQa8JoiFT6jSAi\nwQuq\r\n=9yBy\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"feb83e9e483d17441ea4cccdfd1c1c66df768822","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"7.24.2","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"16.13.0","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.0","@semantic-release/npm":"^8.0.2","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^8.0.1","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^9.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.3.3_1637436421731_0.7778828109091032","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"anti-trojan-source","version":"1.4.0","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.4.0","maintainers":[{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"9fa8fd5d55d4af29578bc6bb3200a6395f5abffa","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.4.0.tgz","fileCount":8,"integrity":"sha512-lIO5EgY7EIE2DkwB4RxXOSTfGf3C3uNK2DwhUUwM43ZZ+GGVOea6i32gi0Q4mXC1ES1UEg578BXFN9gafyJigQ==","signatures":[{"sig":"MEQCIE7jccvSoLBx1vNWQE3aSisO9NB5cfgxM5WySRJlzFM2AiAL4SlWsUsr4DUtNSmjm9F7yQ6I0ufdC5No6LT0GAJxOw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26152,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhs8DKCRA9TVsSAnZWagAAqBgP/iHXRwlR5JF6KA1CivEz\nOe0v/75X6L94SULpHZD3X6al/M/We+3KsilEPoeNF8iQUfmAgAx6OH868VTe\nnu3c61lj8QOYtAhiOK/ou0tmP2+jkVPrL3eFTmkfPsmDhRdP0y3AKo58o0rF\nTku0QW/hJUTKPsJBgxnI73TP84xmHHZpBn8wSJedfAhtRo72oux+oY0MWdWE\nkUfh6BROluVoq+5/7cJHz/exHhNB67m3qioZgm0LJNdxCy4kAterA/HHZkcP\nrvucQt8kvZAOJDg92vf3L4FHC6FQWDrncc8nVQC0MnqVryAVDrQ6wOxDe29a\nsT+wJidBOxznpXIt11MxKbwYc6FQQSNeTHMNDwoPfgMKd+6lc8vKrRGavD83\niaA4iTr+uD1cYE/EpDnC6UjJ+VH5EY5zpdnIGlHLRfFnEJYCTby36gLk4kty\nKxwRw7qxZdTHtOQZ/SoInplUc1ffNU9tV4/hv8PwCsQDLjzKTCQJLZoHTjlq\n1+whKzh9KZQAhtRlb6aXH2jyavs6DPawPuPOfSbn7i+i6yWTsVLY0YlvimyU\nis+6i+g5/XfK/se6Msl98tt7sgEeqRiqShxJamQSqxWAolg0vnYRnCOCVkGM\n3+A6GqZSP6YHJTy3ZzESdqCoicVjnFFHVZwgkJ6Ih2vwMH19DYJkdbWhvpee\nqEJB\r\n=bFHV\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"fbe5bbbd29fc1d96d009533e75111fea3ea9fef7","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"7.24.2","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"16.13.0","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.0","@semantic-release/npm":"^8.0.2","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^8.0.1","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^9.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.4.0_1639170249891_0.3925081304054745","host":"s3://npm-registry-packages"}},"1.4.1":{"name":"anti-trojan-source","version":"1.4.1","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.4.1","maintainers":[{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"54ce3b726cbf5240e10c6decf236cc624efd3b33","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.4.1.tgz","fileCount":8,"integrity":"sha512-DruSp30RgiEW36/n5+e2RtJf2W57jBS01YHvH8SL1vSFIpIeArfreTCxelHPMEhGLpk/BZUeA3uWt5AeTCHq9g==","signatures":[{"sig":"MEQCIDmr/oAZ0iZ7i99Qg/JUqt1jjfXNnMj6xpXaow8SO6BOAiBQ+2NpEgdS2DsROcidko2G++a/0UKWQF/ozf+X2qRc0g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26510,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjtXGmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrGFA//WkZPb4hndNTTmInRSHlxSrRO2bcJn5+VnbdtFxoLUQBanzMw\r\nb/UjViT/xC+SHPDwYpBi0gYH4cjasbJMJmBWmJaBuGHH1RodYSkAiNkaYqN6\r\n1g+HYlRGZaFPm6VY+e+/i5+q+30NlhSMMCn8POTZLJ3RRjm46jFjuIyDR3T4\r\nP2aQIUzt7kQ7HfBb6YuL+Yndz8Afw9rWYSzwaU3C6kUYT1gR19BVUCuMT+UH\r\nV8UUQQQ8pXrjsZAS2zxxL4RNGNGks80jSbEraEA+CygOGekJ31uOCVrD/eFu\r\nuZ6M/2mNt5veGY1r7ccDIbXP2G413ri35rwquReuhnGsrSwSkkRKoZiOO8qT\r\nFlHpM+FrqH5TAn0ntorKSCAHV80UEt2Qrmjw77yP7/plIF/15ui5dwgM3zXy\r\nGBKd/SrhzVv7gcW++eBkzoKopgJv5bC5Bwcg0nhoFcnr+IFwK6+tFnVwxreP\r\njOacZWW6G0WU1NoH0FQ0oo3ddnWZ25soMu0LlJ6Dk0kWuUVBnT1AkXP4w/DV\r\njpm7y+EBi+yFkpd7e5w1gPXxzHnHYBTP/86/dgqRV49kqC9SKGBZWbnGdjp9\r\nw73S9C28smJorWzVzwvkQvj2PXNtZmItOEzBUPgAVhowE/Sd7PubMU4DZUdZ\r\n/dFKkBmxJQBqMEdZTyGuZrH9Kt18LZhMyLQ=\r\n=ItbP\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"529a7d51591a4e210020768fb284b19728a4d60e","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"7.24.2","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"16.18.1","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.0","@semantic-release/npm":"^8.0.2","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^8.0.1","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^9.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.4.1_1672835493897_0.28397237809716835","host":"s3://npm-registry-packages"}},"1.4.2":{"name":"anti-trojan-source","version":"1.4.2","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.4.2","maintainers":[{"name":"lirantal","email":"liran.tal@gmail.com"},{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"e8e7a74a40457ab82d5140fd6b965dd8a9c04137","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.4.2.tgz","fileCount":8,"integrity":"sha512-J9vpe1+TspDlmGUtDEp1kYrFdnqVsWIRPHFvCRXFOFDtlP+s7Wpcx3mp7d119Pik6KJkeJP5XDLq/aR1SwnEHg==","signatures":[{"sig":"MEUCIQDG+x4wsbjER/lXB6jg+zsywYkTSHdQ+7sf/B9SXjIcaQIgQ11SwEjIcpwUZG5krDMHzPtxceouwVfVI7xAKOyoSsc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26510},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"57741a031d93482a489d25fccdcb9dfea02f37ab","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"7.24.2","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"16.20.2","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.0","@semantic-release/npm":"^8.0.2","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^8.0.1","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^9.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.4.2_1761838149044_0.9133705635971288","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"anti-trojan-source","version":"1.4.3","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.4.3","maintainers":[{"name":"lirantal","email":"liran.tal@gmail.com"},{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"fd1ab98a0061ce7725ef8737046fa8fdd3b9446c","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.4.3.tgz","fileCount":8,"integrity":"sha512-ROgtDGlFmXl3YSn7ACqFYJ6sUouYrcVac6g9y2FhjK80e6CTkDbrvQR2Rf3lNtoE4qS8859bjCWvBUTfcZSZvw==","signatures":[{"sig":"MEYCIQCtMy2WLcezpHKCELgMSr+Ge13QuWWsh1SiLv6Ywd3KXAIhAKfTc7QI04ZilIpyYwQWycRmS03XX1qsGJZfAiALlZs6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28687},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"a4ab0992d346fae534eb78836d91aa0d85a2906b","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"7.24.2","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"16.20.2","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.0","@semantic-release/npm":"^8.0.2","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^8.0.1","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^9.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.4.3_1761840277268_0.7890467307984275","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"anti-trojan-source","version":"1.5.0","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.5.0","maintainers":[{"name":"lirantal","email":"liran.tal@gmail.com"},{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"08c4ea3edeafd35c046ce45b6b2d8fee6872bd20","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.5.0.tgz","fileCount":8,"integrity":"sha512-RZk0Yu0RfKmGdi9JtoVcu+t2iPmqanaW0Ou5TxNR+zu9Yh/KBF+UHiCq7KmEENyAueFQoc/rbwZOTsH6nJKYLQ==","signatures":[{"sig":"MEYCIQDopkf5rcCovmrfIxn+oNlfhLPPi3pZD4ODF2KMLHaIpAIhAOoCSc2MnXwg4SJinXPdrbV//63aKM+fJiHtpTQYkpDb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28711},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"0439311e113cad4d480a24b686b16447b9260a7b","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"7.24.2","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"16.20.2","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.0","@semantic-release/npm":"^8.0.2","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^8.0.1","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^9.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.5.0_1761843694014_0.17633221794743048","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"anti-trojan-source","version":"1.6.0","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.6.0","maintainers":[{"name":"lirantal","email":"liran.tal@gmail.com"},{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"699e6030f36e99cbfc2a2100c6d9ddaf6dc13fe9","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.6.0.tgz","fileCount":8,"integrity":"sha512-15KszVOCkCDSq94zLtu/oqwhjAEwF+sLoYlvQppfDX+P6xicqOCkAjCmrU1cDfElJpaHHRbySEHfWoh0YpjE9w==","signatures":[{"sig":"MEYCIQC4pDCRtajs4+6LwLpxq0A4AcROkM1oEnJr5Mjb3u6bsQIhAOqK1u+5UixjFxI9+uH4yvhNMpceDSXhVJTdZSabfYBC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31570},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"300d43f89a3e4177dec09ce2f351fe984759497f","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"7.24.2","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"16.20.2","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.0","@semantic-release/npm":"^8.0.2","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^8.0.1","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^9.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.6.0_1761899601954_0.23639990610850892","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"anti-trojan-source","version":"1.7.0","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.7.0","maintainers":[{"name":"lirantal","email":"liran.tal@gmail.com"},{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"db5b96be07a2728d97925e84c96d5f2384dcffb0","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.7.0.tgz","fileCount":10,"integrity":"sha512-kGqWrFQh9IMyvuO5Yf37Y9XMYNSFfnXiURL7XO1xtiKrjER4AvY5JgtDR3l4eRQT/R1csx3sg58TrJsMV4VL3w==","signatures":[{"sig":"MEYCIQDFzwkCSq5nybzlJ6VAoUWD2rEOnK1EjosGQKJD4a2hrAIhAIlU9SzYOCWQtdxhfThVUiO8lgmF7ZawaZ0dijgM3CqJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54793},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"c37ea8d7990f4b0c10f87fc2289cc0aae583ddcf","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"7.24.2","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"16.20.2","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.0","@semantic-release/npm":"^8.0.2","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^8.0.1","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^9.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.7.0_1762018143734_0.42539154055115813","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"anti-trojan-source","version":"1.8.0","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.8.0","maintainers":[{"name":"lirantal","email":"liran.tal@gmail.com"},{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"b5c7c8a7a94263ad12ac9b8a22b7043cc9d7403e","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.8.0.tgz","fileCount":12,"integrity":"sha512-WcPmbGW+xYPRWj6ABUmD5L5o2AB5FCEtnvVBSv2Vec6Cquj4u9Bq7gPiN/tM+h66iyMB0u1cvgh+XDzB9lH6fQ==","signatures":[{"sig":"MEYCIQDswhmfOys/vNcX8VEuYzzuDve/J4ZrHAANrkf32ThV9QIhAITjNnfntnGPkNXDtDDId/5+1HfdrGcpaDTcuJ3+wpjn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76237},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"5a5bd9aad31a3bf9858cda64175a99e6332d7ab0","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"7.24.2","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"16.20.2","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.0","@semantic-release/npm":"^8.0.2","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^8.0.1","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^9.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.8.0_1762160390978_0.5974926316003755","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"anti-trojan-source","version":"1.8.1","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.8.1","maintainers":[{"name":"lirantal","email":"liran.tal@gmail.com"},{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"3b78276c55f48c028ede6c669c9a5f6924c3c867","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.8.1.tgz","fileCount":12,"integrity":"sha512-m3czWxpwc3XuVEYAabsEOfUwtIzq4sztTRlUDZInyjRG3g49GwWotI5+kyngv8wkuzQIAVoa7dxpgOX20wjDZA==","signatures":[{"sig":"MEYCIQD5aaXw3D+PcQ+zGPosjQQMaIbW8v+n2+GMEkyMFNjV4wIhAKw3LY1OKg31jDOwe6eiHmsks4PMq70nUy6KUNtMrtrk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78142},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"155e8994934e301ae67307c2f4597362b1f1997a","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"7.24.2","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"16.20.2","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.0","@semantic-release/npm":"^8.0.2","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^8.0.1","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^9.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.8.1_1762626123572_0.9623766278606576","host":"s3://npm-registry-packages-npm-production"}},"1.8.2":{"name":"anti-trojan-source","version":"1.8.2","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.8.2","maintainers":[{"name":"lirantal","email":"liran.tal@gmail.com"},{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"4a80ea710a0b2e91df75862a39a9be4999cc36fb","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.8.2.tgz","fileCount":12,"integrity":"sha512-NjdXkPJFdVoxBGmq4Gs7FdQTb6959YEqa8D9fvdZFjf4/MZ41PWETosujt7Ygt7gvDEmyZwooW7vHw5BaXp0dg==","signatures":[{"sig":"MEUCIQCZrxyyz0NRgFUkCnjbK+LNczuDGGMnjKgKoa81e8jekgIgSduG5wISY65yFeFs8h6QqpbrNPjjtkghTvm/aEIxE7s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/anti-trojan-source@1.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":78119},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"bdfdf29915ae6df70ed0f50b6ce6d7d0768fdc13","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e999c7a4-e351-4f05-a835-10d4827c30a6"}},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"11.13.0","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"24.14.1","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.0","@semantic-release/npm":"^8.0.2","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^8.0.1","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^9.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.8.2_1777220801933_0.3947962222594834","host":"s3://npm-registry-packages-npm-production"}},"1.8.3":{"name":"anti-trojan-source","version":"1.8.3","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.8.3","maintainers":[{"name":"lirantal","email":"liran.tal@gmail.com"},{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"acee9959766540950f7d298be3b9bb64c549c472","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.8.3.tgz","fileCount":12,"integrity":"sha512-2QMOTKYk3zZMTRNjo6tGyj5KLJI87x+r5ekbhExJbgaQvIWCYAbgjDd45kv8UUSVLhLu7O/htBPNwAVHQz18+w==","signatures":[{"sig":"MEYCIQCxY0vVImwmWcCYIWT2xZt2TGxiW3b6/x2vX2/q7QzVKAIhANILzYI7IeAOJTy6jYRbhDsXo0chGG87ZmU7vc2KsL3F","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/anti-trojan-source@1.8.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":78152},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"4b12605c44d41fb874be86dd7714557d394b2878","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e999c7a4-e351-4f05-a835-10d4827c30a6"}},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"11.13.0","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"24.14.1","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.0","@semantic-release/npm":"^8.0.2","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^8.0.1","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^9.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.8.3_1777324318804_0.8656058049793374","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"anti-trojan-source","version":"1.9.0","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.9.0","maintainers":[{"name":"lirantal","email":"liran.tal@gmail.com"},{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"09eb95bced6c8063c85a95ab2cf12f5ab41bbba7","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.9.0.tgz","fileCount":12,"integrity":"sha512-BWUWxZOkCYVeoE60hMUvGntbrYzjX3Pe2X7luhhax2FIWtFxxv6BM1DTc3BgpDNMUtZdD7ju8uuvFexehzO9yQ==","signatures":[{"sig":"MEYCIQD/hL1Q+OItmln+c7JluZ7m1T97pcvC/0pRjtxxup4jewIhAJmrDVsvKhOeMNovQfQtBKDGR2pF/A/39QyaBWYgVvdk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/anti-trojan-source@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":78755},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"2f5d1afbc44b7c244099551533451b5d06151b60","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e999c7a4-e351-4f05-a835-10d4827c30a6"}},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"11.13.0","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"24.14.1","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.0","@semantic-release/npm":"^8.0.2","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^8.0.1","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^9.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.9.0_1777970569305_0.49081341144058355","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"anti-trojan-source","version":"1.10.0","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.10.0","maintainers":[{"name":"lirantal","email":"liran.tal@gmail.com"},{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"a4d0e0fea52f90c3e6c8f3effee76ce099cd4968","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.10.0.tgz","fileCount":12,"integrity":"sha512-79y09qRVmoJJmWtNa90wT1wlux+XbIvgmQjpTxxQJry6mspRw8KkiCe2d5MjsGpUza/wYW+xVBrKJ4ZR/Ow4fQ==","signatures":[{"sig":"MEUCIQDc0FsXVix+VtVPMWLDuOH6Ng28Ny8/fpr25Vkt0WYw6gIgAPdQuDuwlxzyNDQsQsHdbr3OWGSucSOPphCl/sbeMLg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/anti-trojan-source@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":81694},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"dbd0634cfc48e838641aa1fbad2d0641a5ae4c24","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e999c7a4-e351-4f05-a835-10d4827c30a6"}},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"11.13.0","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"24.14.1","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.0","@semantic-release/npm":"^8.0.2","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^8.0.1","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^9.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.10.0_1777971506373_0.5682578987584679","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"anti-trojan-source","version":"1.11.0","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.11.0","maintainers":[{"name":"lirantal","email":"liran.tal@gmail.com"},{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"4bdd84d9539189149a4c77aefcc3aa7485a05998","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.11.0.tgz","fileCount":14,"integrity":"sha512-vuyHctpns3RjwSRJYjZCOYgiGZWKBB+SQpk7Ww3RMUyTjeG0+IrrLfZvBLTZtrCYY2qoGuqFZEg5OEFD6xOJbQ==","signatures":[{"sig":"MEUCIEOs3jLuw/RxMmxYUkqeqkSPt6fzrhQ2kDnqu3oE4wXyAiEA9V1hiqZuHvcdYpcpJfMNNIUBARVWUVWY8phRI+ZGbmE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/anti-trojan-source@1.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":94780},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"330ed42bab800f6d2bf1e0602fc4dd0648e70db9","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e999c7a4-e351-4f05-a835-10d4827c30a6"}},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"11.13.0","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"24.14.1","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.0","@semantic-release/npm":"^8.0.2","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^8.0.1","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^9.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.11.0_1778000277358_0.8807170480737481","host":"s3://npm-registry-packages-npm-production"}},"1.11.1":{"name":"anti-trojan-source","version":"1.11.1","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.11.1","maintainers":[{"name":"lirantal","email":"liran.tal@gmail.com"},{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"d2c266934457036651a752c636b0fd8a83bc25f6","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.11.1.tgz","fileCount":14,"integrity":"sha512-TKFjSTwzNq5m+lXE3ZzJT91xng/D2jpg25b3ers1NAbSOBua8Bw4bVZzSi9c7akaSY7snplUm0w/tOrEpYRhyg==","signatures":[{"sig":"MEUCIQDXuOIbCUevcdFpxNLkP8nl5ckIjLzYJ7yAZC4mENkOWAIgJn7fNGQ7sjhc3Rv4RM5UsWyVbA30p7EkjLK1qRDkHgY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/anti-trojan-source@1.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":94780},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"5d3384cecbfd2041d3929f0c7101c82dfc555ce3","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e999c7a4-e351-4f05-a835-10d4827c30a6"}},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"11.12.1","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"24.15.0","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.0","@semantic-release/npm":"^8.0.2","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^8.0.1","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^9.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.11.1_1779004998109_0.023592236387189214","host":"s3://npm-registry-packages-npm-production"}},"1.11.2":{"name":"anti-trojan-source","version":"1.11.2","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.11.2","maintainers":[{"name":"lirantal","email":"liran.tal@gmail.com"},{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"1b1f0c757e6e77603dda519071486a5b33543bbf","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.11.2.tgz","fileCount":14,"integrity":"sha512-Nw5YUkfbMV8zgUO/I1ymqfXahO58AQfqBSBjbhBY+3+38TXepbfhE0Lxc7E9GgWc1Bxa/NulJH4eDmKRot6ejw==","signatures":[{"sig":"MEUCIGu9AzDI+bjJtypdA1jf92mJ0yUkDGTzatBdm3HAMBnTAiEAqcEI33tN5JMlfgJSHINY77nqcPGx5rY9/57sztEZUfM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/anti-trojan-source@1.11.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":94780},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"f082967a0f92244a2025896a411dbfdd6f09737f","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e999c7a4-e351-4f05-a835-10d4827c30a6"}},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"11.12.1","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"24.15.0","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.0","@semantic-release/npm":"^8.0.2","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^8.0.1","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^9.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^10.0.2"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.11.2_1779028975510_0.7906952229603703","host":"s3://npm-registry-packages-npm-production"}},"1.11.3":{"name":"anti-trojan-source","version":"1.11.3","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.11.3","maintainers":[{"name":"lirantal","email":"liran.tal@gmail.com"},{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"df61b35eb8509dad275af09b462cbbf5f1a4234b","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.11.3.tgz","fileCount":14,"integrity":"sha512-BMib8rDunYnfIzFgBw9DIxfd3YtXYYWMMrgCQRJLdx+cyJg5/XSSEVNTpgfVn5/eBjtEfORBjPB6N7Somsr77w==","signatures":[{"sig":"MEUCIGfSTgWkAM9RN3Wd6x1Bv4ZSNnYXgEjE2ve+spEeblxcAiEAjgHJkE+Q57P5FnmS4gNwL8BUw0zBJib6jlJ5Xi9vrb0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/anti-trojan-source@1.11.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":94818},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"node":">=14.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"d9b7ae8884d7b1b16522798bc18f324cfca16ec1","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e999c7a4-e351-4f05-a835-10d4827c30a6"}},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"11.13.0","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"24.16.0","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","semantic-release":"^25.0.3","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^12.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^13.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^14.1.0"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.11.3_1779962032311_0.5599872058946815","host":"s3://npm-registry-packages-npm-production"}},"1.11.4":{"name":"anti-trojan-source","version":"1.11.4","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.11.4","maintainers":[{"name":"lirantal","email":"liran.tal@gmail.com"},{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"85fb602abc2f364879b0395c2db7232e7e235102","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.11.4.tgz","fileCount":14,"integrity":"sha512-cyt49G22WWo3zGAwikkMKubiDvDza6IRlMu3jf6HBz33Vo7lCsJi1XUxMvFaPtxpadBp1HAvZPqRPsiHKAfp9w==","signatures":[{"sig":"MEUCIQCVDWznPRaWQHgh+PuyOemjP0jcaQeYOVGmMvC2uHEOcAIgWl1AF8OR8KUY8STXA45aa6fsNMWiZxC1kJXlKgRGTJ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/anti-trojan-source@1.11.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":94842},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"npm":">=11.10.0","node":">=24.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"a1139915930af56805e47cad018d50a11813149f","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e999c7a4-e351-4f05-a835-10d4827c30a6"}},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"11.13.0","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"24.16.0","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","semantic-release":"^25.0.3","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^12.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^13.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^14.1.0"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.11.4_1781465165643_0.9818717464779223","host":"s3://npm-registry-packages-npm-production"}},"1.11.5":{"name":"anti-trojan-source","version":"1.11.5","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.11.5","maintainers":[{"name":"lirantal","email":"liran.tal@gmail.com"},{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"da8982d9dad665fbe857773d38c7a4706eae5ca7","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.11.5.tgz","fileCount":14,"integrity":"sha512-4acen6O8MzJ86UB1HwMVCx169uI4AdiaASTC6anhbhRlMsC+knIFddWfw50fdcU000hVXoYZ6ARnxZfbVztIsA==","signatures":[{"sig":"MEYCIQDwWvV6hHJs5I1riVFeSMwTbbtOCdrG7y2+27kG983EVwIhALinZMWVL7nKzb1pVUuPbwSxT3YHo4nIL3pcXkK10THC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/anti-trojan-source@1.11.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":94960},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"npm":">=11.10.0","node":">=24.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"bfc417a6303cceb8db04145fceddd41b9c7cbb0c","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e999c7a4-e351-4f05-a835-10d4827c30a6"}},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"11.13.0","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"24.17.0","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","semantic-release":"^25.0.3","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^12.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^13.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^14.1.0"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.11.5_1782325217525_0.4482386036086936","host":"s3://npm-registry-packages-npm-production"}},"1.11.6":{"name":"anti-trojan-source","version":"1.11.6","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.11.6","maintainers":[{"name":"lirantal","email":"liran.tal@gmail.com"},{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"97896072aa31d0a850792eab7be12be3b8c42006","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.11.6.tgz","fileCount":14,"integrity":"sha512-G6OCoyx+g+XuS0XctpvV77a49riMIq4LXExJctIxfV/SyK72Pn+Z6QEme2+Rs2biCqTYvHK+/b7rFZ78k1QJxA==","signatures":[{"sig":"MEUCIQC5+JziNWmZMe3AmfDSz09K1lDy2/SMd4/dZghf7TLeMQIgL0bo4h7Cg8NMr10VWpR3w8Q51h0wkHLasNYljSR6AFk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/anti-trojan-source@1.11.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":94960},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"npm":">=11.10.0","node":">=24.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"c9b7c5fba78949c0032489bc5a6c8cd3e372cfd6","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e999c7a4-e351-4f05-a835-10d4827c30a6"}},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"11.13.0","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"24.17.0","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","semantic-release":"^25.0.3","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^12.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^13.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^14.1.0"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.11.6_1782901040695_0.39761963350984497","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"anti-trojan-source","version":"1.12.0","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.12.0","maintainers":[{"name":"lirantal","email":"liran.tal@gmail.com"},{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"1a262e0d820fb4b5b3702c8895131097c6bd60d2","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.12.0.tgz","fileCount":14,"integrity":"sha512-ET/VoBtqPA5r9TsbpEAlNjYNY+hrzFfBF+LPOh+RkC8KrYY5G38Lkge5HgFa/vHWrl2TCKRDaIZjLgbNmPpvxg==","signatures":[{"sig":"MEQCIBeAq3VR6twY/xEDhfutRVY7ZUyJhJmes92fCVGYTSkxAiB2UoH4HnrSIbjcXYcRM/tNl6LealZeJkQVLAy7uDJP0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/anti-trojan-source@1.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96841},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"npm":">=11.10.0","node":">=24.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"150ea5528b548bf780abe0b4a0c0957a45e4cdb7","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e999c7a4-e351-4f05-a835-10d4827c30a6"}},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"11.13.0","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"24.17.0","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","semantic-release":"^25.0.3","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^12.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^13.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^14.1.0"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.12.0_1782940214786_0.22518313407284452","host":"s3://npm-registry-packages-npm-production"}},"1.12.1":{"name":"anti-trojan-source","version":"1.12.1","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.12.1","maintainers":[{"name":"lirantal","email":"liran.tal@gmail.com"},{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"e771179d12e5f27e97cabf8898bded936869e646","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.12.1.tgz","fileCount":14,"integrity":"sha512-GHzx0oxetdx0RHDxzU3nRYAYRo7xiZRwHjutFxVOsq6kOD/ARyc50wK0MMBWys/E3KIvaMNY4SzKElTrVmIvew==","signatures":[{"sig":"MEUCIQDj3TENspBbWW3Q8ErL3Z79xr3+1ua1yEoXr3vvIa6x+wIgT/wo+VfjgNycVBIBPKwnfkmOg9651niX8GvX0QAOG8o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/anti-trojan-source@1.12.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96841},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"npm":">=11.10.0","node":">=24.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"07a01dcfd61efa51b74d93c5607afeb3e8e63d42","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e999c7a4-e351-4f05-a835-10d4827c30a6"}},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"11.13.0","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"24.18.0","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","semantic-release":"^25.0.3","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^12.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^13.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^14.1.0"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.12.1_1784833077073_0.8641954923489028","host":"s3://npm-registry-packages-npm-production"}},"1.12.2":{"name":"anti-trojan-source","version":"1.12.2","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","_id":"anti-trojan-source@1.12.2","maintainers":[{"name":"lirantal","email":"liran.tal@gmail.com"},{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"homepage":"https://github.com/lirantal/anti-trojan-source","bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"dist":{"shasum":"427b859e03bad8cd4d86e12d75aba72f1f58c316","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.12.2.tgz","fileCount":14,"integrity":"sha512-11gqATvzpF8eLtnn2tY4P/KCmqfns0xdw8+KbX05XCZPqvyNLI+OWtRLhR9hmfpFKN4pX+3P5k06DCAzEOgwiQ==","signatures":[{"sig":"MEQCIEXjP/atVY4SZsIwLuY0Ax5/9e4DTkRK5cV69uC1u49rAiBlbjqXnUS+KuzdG/zw8CqlKQHBDFCSuECvmr/IpWDYfg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/anti-trojan-source@1.12.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97376},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"engines":{"npm":">=11.10.0","node":">=24.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"c450d421502b5111790c15fd23d7a501f5d44133","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e999c7a4-e351-4f05-a835-10d4827c30a6"}},"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"11.13.0","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"_nodeVersion":"24.19.0","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","semantic-release":"^25.0.3","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^12.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^13.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^14.1.0"},"_npmOperationalInternal":{"tmp":"tmp/anti-trojan-source_1.12.2_1787811681812_0.27157218545179473","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"_id":"anti-trojan-source@1.13.0","bin":{"anti-trojan-source":"bin/anti-trojan-source.js"},"bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"dist":{"shasum":"5a0b758f9a8fbc83d4ea33e7a5e63d0aa7a0c0f4","tarball":"https://registry.npmjs.org/anti-trojan-source/-/anti-trojan-source-1.13.0.tgz","fileCount":14,"integrity":"sha512-4gNW1RWgYLKl5sgKjwtO7HakYxM7qNgtK+Pp6F0qtH4B+GK3pY4dlnkJOwzyKn3yN1AlbUUryZemRA8OX1ZFDw==","signatures":[{"sig":"MEQCIG/I68SDvMHSk1q1V20z463LMQ3IMr2xEqMqcv4d8AXcAiARiw6k3sP3baqAMsgitFEA1YFhb7PAd80d1DoRRk4rCQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGXhZ1anmxiSmZgc/4P6G++LmOJD+azQiitLZ2/QCb2GAiEAz0sQWDh4tZtw0i9uZUQGVyrYjTgqdkh7tZpoS90w5HU="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/anti-trojan-source@1.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":97695},"jest":{"verbose":true,"testMatch":["**/*.test.js"],"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":80,"branches":80,"functions":80,"statements":80}},"collectCoverageFrom":["index.js","src/**/*.{js,ts}"],"testPathIgnorePatterns":["/__tests__/.*/__fixtures__/.*"]},"main":"main.js","name":"anti-trojan-source","type":"module","babel":{"plugins":["@babel/plugin-syntax-top-level-await"]},"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"engines":{"npm":">=11.10.0","node":">=24.0.0"},"exports":{".":{"import":"./src/main.js","require":"./cjs/main.cjs"}},"gitHead":"5c95bf53b3768b895038165d4dc086108db1b12a","license":"Apache-2.0","plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator",["@semantic-release/changelog",{"changelogFile":"CHANGELOG.md"}],"@semantic-release/npm",["@semantic-release/git",{"assets":["CHANGELOG.md"]}],"@semantic-release/github"],"release":{"branches":["main","master"],"analyzeCommits":{"preset":"angular","releaseRules":[{"type":"docs","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}},"scripts":{"lint":"eslint . && npm run lint:lockfile","test":"NODE_OPTIONS=--experimental-vm-modules npx jest","build":"rollup -c","format":"prettier --config .prettierrc.json --write '**/*.js'","lint:fix":"eslint . --fix","test:watch":"NODE_OPTIONS=--experimental-vm-modules npx jest --watch","coverage:view":"open-cli coverage/lcov-report/index.html","lint:lockfile":"lockfile-lint --path package-lock.json --validate-https --allowed-hosts npm yarn","semantic-release":"npx semantic-release","install-git-hooks":"husky install && chmod 755 .husky/*"},"version":"1.13.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e999c7a4-e351-4f05-a835-10d4827c30a6"}},"homepage":"https://github.com/lirantal/anti-trojan-source","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"standard":{"env":["jest"],"ignore":["**/out/"],"parser":"babel-eslint"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"_npmVersion":"11.13.0","description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","directories":{},"lint-staged":{"**/*.js":["npm run format"]},"maintainers":[{"name":"lirantal","email":"liran.tal@gmail.com"},{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"_nodeVersion":"24.20.0","dependencies":{"meow":"^10.1.1","globby":"^12.0.2"},"eslintConfig":{"rules":{"no-process-exit":"warn","object-curly-spacing":"off","jest/no-focused-tests":"error","jest/no-disabled-tests":"error","jest/no-identical-title":"error","node/no-unpublished-require":"off","space-before-function-paren":"off","node/no-unsupported-features":"off","security/detect-unsafe-regex":"error","security/detect-child-process":"error","security/detect-buffer-noassert":"error","security/detect-object-injection":"warn","security/detect-pseudoRandomBytes":"error","security/detect-non-literal-regexp":"error","security/detect-eval-with-expression":"error","node/no-unsupported-features/es-syntax":["error",{"ignores":["dynamicImport","modules"]}],"security/detect-disable-mustache-escape":"error","security/detect-non-literal-fs-filename":"error","security/detect-possible-timing-attacks":"error","security/detect-no-csrf-before-method-override":"error"},"parser":"@babel/eslint-parser","extends":["plugin:node/recommended"],"plugins":["node","security","jest"],"parserOptions":{"sourceType":"module","ecmaFeatures":{"impliedStrict":true}}},"eslintIgnore":["coverage/**","cjs/**","rollup.config.mjs"],"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.3.1","husky":"^7.0.4","eslint":"^8.0.1","rollup":"^2.59.0","open-cli":"^7.0.1","prettier":"^2.4.1","@babel/core":"^7.15.8","lint-staged":"^11.2.3","lockfile-lint":"^4.6.2","@commitlint/cli":"^13.2.1","semantic-release":"^25.0.3","eslint-plugin-jest":"^25.2.2","eslint-plugin-node":"^11.1.0","@babel/eslint-parser":"^7.15.8","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.5","eslint-plugin-security":"^1.4.0","eslint-plugin-standard":"^4.1.0","@semantic-release/github":"^12.0.6","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^13.2.0","@semantic-release/commit-analyzer":"^13.0.1","@babel/plugin-syntax-top-level-await":"^7.14.5","@semantic-release/release-notes-generator":"^14.1.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/anti-trojan-source_1.13.0_1788853038732_0.02960007738978221"}}},"time":{"created":"2021-11-05T14:38:37.755Z","modified":"2026-09-08T07:37:19.150Z","1.0.0":"2021-11-05T14:38:37.886Z","1.1.0":"2021-11-05T14:45:51.853Z","1.2.0":"2021-11-05T17:30:41.715Z","1.2.2":"2021-11-05T18:35:35.722Z","1.2.3":"2021-11-05T22:33:15.561Z","1.2.4":"2021-11-06T08:40:52.497Z","1.3.0":"2021-11-06T09:19:23.818Z","1.3.1":"2021-11-06T09:25:59.439Z","1.3.2":"2021-11-06T21:59:31.334Z","1.3.3":"2021-11-20T19:27:01.951Z","1.4.0":"2021-12-10T21:04:10.101Z","1.4.1":"2023-01-04T12:31:34.068Z","1.4.2":"2025-10-30T15:29:09.258Z","1.4.3":"2025-10-30T16:04:37.465Z","1.5.0":"2025-10-30T17:01:34.205Z","1.6.0":"2025-10-31T08:33:22.152Z","1.7.0":"2025-11-01T17:29:03.947Z","1.8.0":"2025-11-03T08:59:51.170Z","1.8.1":"2025-11-08T18:22:03.766Z","1.8.2":"2026-04-26T16:26:42.079Z","1.8.3":"2026-04-27T21:11:58.938Z","1.9.0":"2026-05-05T08:42:49.453Z","1.10.0":"2026-05-05T08:58:26.506Z","1.11.0":"2026-05-05T16:57:57.490Z","1.11.1":"2026-05-17T08:03:18.249Z","1.11.2":"2026-05-17T14:42:55.648Z","1.11.3":"2026-05-28T09:53:52.441Z","1.11.4":"2026-06-14T19:26:05.785Z","1.11.5":"2026-06-24T18:20:17.662Z","1.11.6":"2026-07-01T10:17:20.885Z","1.12.0":"2026-07-01T21:10:14.959Z","1.12.1":"2026-07-23T18:57:57.222Z","1.12.2":"2026-08-27T06:21:21.954Z","1.13.0":"2026-09-08T07:37:18.836Z"},"bugs":{"url":"https://github.com/lirantal/anti-trojan-source/issues"},"author":{"url":"https://github.com/lirantal","name":"Liran Tal","email":"liran.tal@gmail.com"},"license":"Apache-2.0","homepage":"https://github.com/lirantal/anti-trojan-source","keywords":["trojan","trojan source","source","unicode","bidi","bidirectional attacks","bidi attacks","bidi security","unicode security","attacks","security"],"repository":{"url":"git+https://github.com/lirantal/anti-trojan-source.git","type":"git"},"description":"Detect trojan source attacks that employ unicode bidi attacks to inject malicious code","maintainers":[{"name":"lirantal","email":"liran.tal@gmail.com"},{"name":"lirantal_bot","email":"liran.tal+npm@gmail.com"}],"readme":"<p align=\"center\"><h1 align=\"center\">\n  anti-trojan-source\n</h1>\n\n<p align=\"center\">\n  Detect trojan source attacks that employ unicode bidi attacks to inject malicious code\n</p>\n\n<p align=\"center\">\n  <img src=\"https://github.com/lirantal/anti-trojan-source/raw/main/.github/anti-trojan-source-logo.png\" height=\"220\">\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.org/package/anti-trojan-source\"><img src=\"https://badgen.net/npm/v/anti-trojan-source\" alt=\"npm version\"/></a>\n  <a href=\"https://www.npmjs.org/package/anti-trojan-source\"><img src=\"https://badgen.net/npm/license/anti-trojan-source\" alt=\"license\"/></a>\n  <a href=\"https://www.npmjs.org/package/anti-trojan-source\"><img src=\"https://badgen.net/npm/dt/anti-trojan-source\" alt=\"downloads\"/></a>\n  <a href=\"https://github.com/lirantal/anti-trojan-source/actions/workflows/main.yml\"><img src=\"https://github.com/lirantal/anti-trojan-source/actions/workflows/main.yml/badge.svg?branch=main\" alt=\"build\"/></a>\n  <a href=\"https://codecov.io/gh/lirantal/anti-trojan-source\"><img src=\"https://badgen.net/codecov/c/github/lirantal/anti-trojan-source\" alt=\"codecov\"/></a>\n  <a href=\"./SECURITY.md\"><img src=\"https://img.shields.io/badge/Security-Responsible%20Disclosure-yellow.svg\" alt=\"Responsible Disclosure Policy\" /></a>\n</p>\n\n# About\n\nDetects cases of [trojan source attacks](https://trojansource.codes) that employ unicode bidi attacks to inject malicious code, as well as other attacks that use confusable characters (such as glassworm attacks). The tool uses both an explicit list of dangerous Unicode characters and category-based detection to catch invisible characters by their Unicode category (Format and Control categories).\n\nFollowing is how `anti-trojan-source` CLI detects cases of potentially harmful characters, identified from the Glassworm attack:\n\n<img width=\"830\" height=\"443\" alt=\"SCR-20260821-sius\" src=\"https://github.com/user-attachments/assets/05c321f9-04d9-4c26-ab9c-6e05bb85893e\" />\n\n\n## Video example of Anti Trojan Source CLI\n\n<https://github.com/user-attachments/assets/8f10628f-3746-469e-a296-01523beeaa42>\n\nIf you're using ESLint:\n* See: [eslint-plugin-anti-trojan-source](https://github.com/lirantal/eslint-plugin-anti-trojan-source) for a purpose-bulit plugin to detect anti-trojan characters.\n* This plugin [inspired work](https://github.com/eslint-community/eslint-plugin-security/pull/95) to create an anti-trojan rule `detect-bidi-characters` in [eslint-plugin-security](https://github.com/eslint-community/eslint-plugin-security) and if you're already using that security plugin then it is advised to turn on that rule.\n\n## Detection Capabilities\n\n`anti-trojan-source` provides comprehensive protection by detecting:\n\n- **285 explicit confusable scalars** — bidirectional controls, zero-width characters, BMP variation selectors, a small set of non-Cf/Cc invisibles (Hangul fillers, U+034F), plus **240** supplementary variation selectors (U+E0100–U+E01EF)\n- **All Unicode Format characters (Cf category)** — invisible formatting characters by category (including Unicode **tag letters** used for ASCII smuggling / hidden payloads)\n- **All Unicode Control characters (Cc category)** — except commonly-used whitespace (TAB, LF, CR)\n\nCategory-based Cf/Cc detection keeps the tool **future-proof** as Unicode adds new format or control code points. The explicit list covers characters that matter for security but are **not** Cf/Cc (e.g. BMP and Mongolian free variation selectors are **Mn**, not Cf).\n\n## Scope\n\nThis project scans **decoded Unicode text** — the string you get after reading a UTF‑8 (or other Unicode encoding) file the usual way. It does **not** inspect raw bytes, URLs, or tokenizer-specific behavior.\n\n### In scope\n\n| Topic | Detection approach |\n| ----- | ------------------ |\n| Trojan Source (bidi embeddings, overrides, isolates, PDF, etc.) | Cf ranges + explicit list |\n| Zero-width / word joiner / BOM / soft hyphen (where Cf or listed) | Cf + explicit list |\n| **Unicode Tags block** (U+E0001, U+E0020–U+E007F) — invisible ASCII-shaped payloads ([background](https://embracethered.com/blog/posts/2024/hiding-and-finding-text-with-unicode-tags/)) | Cf |\n| Variation selectors (Mongolian FVS U+180B–U+180D/U+180F, BMP U+FE00–U+FE0F, supplement U+E0100–U+E01EF) | Explicit list (**Mn** in Unicode, not Cf) |\n| **Strict explicit blocklist** of a few **non-Cf/Cc** scalars that often render invisibly (U+034F, U+115F, U+1160, U+3164) | Explicit list only |\n| Any other **Format (Cf)** or **Control (Cc)** code point | Category tables (Cc minus TAB/LF/CR) |\n| Dangerous confusables on the maintained explicit list (e.g. NO-BREAK SPACE) | Explicit list |\n| **Optional extended blocklist** (CLI `--extended` / `--all`, library `extended: true`) — small set of **ASCII-lookalike** homoglyphs and extra invisible letters | [`src/extended-blocklist.js`](src/extended-blocklist.js); findings use **`severity`: `\"low\"`** vs default **`\"high\"`** |\n\n### Out of scope\n\n| Topic | Reason |\n| ----- | ------ |\n| Full homoglyph / mixed-script confusable-IDN databases (“every Cyrillic lookalike of Latin”) | Default scan still uses a **small** curated set; **`--extended`** adds more lookalikes but not a complete IDN/confusables database |\n| UTF‑8 “sneaky” byte patterns, overlong encodings, non-Unicode steganography | Needs **byte-level** analysis, not scalar-by-scalar Unicode |\n| URL / percent-encoded layers, HTML entities | Decode/normalize elsewhere first |\n| Full rendering, grapheme clusters, locale-specific display rules | Tooling is scalar-based and intentionally simple |\n| Whether a finding is malicious | High-signal alert for human review |\n\n## Invisible Characters Support Matrix\n\nThe following table summarizes attack styles versus what this tool flags:\n\n| Attack Type | Supported | Notes |\n| ----------- | :-------: | ----- |\n| **Trojan Source** | ✅ | Bidi / format controls per [trojansource.codes](https://trojansource.codes). |\n| **Glassworm / confusable identifiers** | ✅ (partial) | Flags **explicit** confusables and **all** Cf/Cc — not a complete homoglyph alphabet. |\n| **Unicode tag / “ASCII smuggling”** | ✅ | Tag letters are **Cf**; see [Embrace The Red](https://embracethered.com/blog/posts/2024/hiding-and-finding-text-with-unicode-tags/). |\n| **Variation-selector hidden payloads** | ✅ | Mongolian FVS U+180B–U+180D/U+180F, BMP selectors U+FE00–U+FE0F, and supplement U+E0100–U+E01EF are on the explicit list. |\n| **Category-based Cf / Cc** | ✅ | Future-proof for new format/control code points. |\n| **Invisible letters (strict list)** | ✅ | U+034F, Hangul fillers — explicit blocklist only. |\n| **Extended homoglyphs / extra invisibles** | ✅ (opt-in) | Use CLI **`--extended`** or **`--all`**, or `hasConfusables({ extended: true })`. Noisier; see [`src/extended-blocklist.js`](src/extended-blocklist.js). |\n\n## Why is Confusable Unicode Character detection important?\n\nThe following publication on the topic of unicode characters attacks, dubbed [Trojan Source: Invisible Vulnerabilities](https://trojansource.codes/trojan-source.pdf), has caused a lot of concern from potential supply chain attacks where adversaries are able to inject malicious code into the source code of a project, slipping by unseen in the code review process. This project expands on that to detect other forms of confusable characters that can be used in similar attacks.\n\nInvisible variation selectors can support the same adversary action pattern: an attacker can insert default-ignorable selectors into source, generated code, prompts, policy files, or reviewed text so that the displayed content looks ordinary while the decoded text contains extra scalars. That can evade naive review, string comparisons, allow/deny lists, signing workflows, or downstream tools that treat the raw Unicode text differently from the reviewer. `anti-trojan-source` reports these selectors as high-severity findings so reviewers can remove them unless the file intentionally contains Mongolian or other standardized variation sequences.\n\nFor more information on the topic, you're welcome to read on the official website [trojansource.codes](https://trojansource.codes/) and the following [source code repository](https://github.com/nickboucher/trojan-source/) which contains the source code of the publication.\n\n---\n\nTable of Contents\n\n- [About](#about)\n  - [Detection Capabilities](#detection-capabilities)\n  - [Scope](#scope)\n  - [Invisible Characters Support Matrix](#invisible-characters-support-matrix)\n  - [Why is Confusable Unicode Character detection important?](#why-is-confusable-unicode-character-detection-important)\n- [Use as a CLI](#use-as-a-cli)\n  - [Detect confusable characters using file globbing](#detect-confusable-characters-using-file-globbing)\n  - [Detect confusable characters using file paths](#detect-confusable-characters-using-file-paths)\n  - [Detect confusable characters by piping input](#detect-confusable-characters-by-piping-input)\n  - [Verbose output mode](#verbose-output-mode)\n  - [JSON output mode](#json-output-mode)\n  - [Extended scan (--extended / --all)](#extended-scan---extended--all)\n- [Use as an eslint plugin](#use-as-an-eslint-plugin)\n- [Use as a library](#use-as-a-library)\n  - [Simple boolean check](#simple-boolean-check)\n  - [Detailed findings](#detailed-findings)\n- [Use as a pre-commit hook](#use-as-a-pre-commit-hook)\n- [References](#references)\n- [Contributing](#contributing)\n- [Author](#author)\n\n---\n\n# Use as a CLI\n\n`anti-trojan-source` is an npm package that supports detecting files that contain confusable unicode characters in them, per the research.\n\n## Detect confusable characters using file globbing\n\nThe following command will detect all files that contain confusable unicode characters in them based on the file matching pattern that was provided to it:\n\n```bash\nnpx anti-trojan-source --files='src/**/*.js'\n```\n\nIf it doesn't find anything it will return with a 0 exit code and print to stdout:\n\n```\n[✓] No confusable characters detected\n```\n\n## Detect confusable characters using file paths\n\n```bash\nnpx anti-trojan-source '/src/index.js' '/src/helper.js'\n```\n\nIf it found any matching confusable unicode characters, it will return with an exit code of 1 and print to stderr:\n\n```\n[x] Detected cases of confusable characters in the following files:\n|\n - /src/index.js\n - /src/helper.js\nNote: For backward compatibility, `hasTrojanSource({...})` is still exported as an alias to `hasConfusables({...})`. It is deprecated and will be removed in a future major version. Prefer `hasConfusables` going forward.\n\n```\n\n## Detect confusable characters by piping input\n\nIf you just run `npx anti-trojan-source` and pipe in a file contents, it will detect the confusable unicode characters in that file:\n\n```bash\ncat /src/index.js | npx anti-trojan-source\n```\n\n## Verbose output mode\n\nUse the `--verbose` (or `-v`) flag to get detailed information about each detected character, including line and column numbers, character names, and Unicode code points:\n\n```bash\nnpx anti-trojan-source --files='src/**/*.js' --verbose\n```\n\nExample output:\n\n```\n[x] Detected cases of trojan source in the following files:\n| \n - src/utils.js\n\n   Line 12:34 - U+200B ZERO WIDTH SPACE [Cf (Format)]\n   Snippet: const value = getUserInput()\n   Line 45:10 - U+202E RIGHT-TO-LEFT OVERRIDE [Cf (Format)]\n   Snippet: if (isAdmin) { // Check permissions\n```\n\nThis mode is particularly useful for:\n- **Code reviews**: Quickly identify where invisible characters are located\n- **Debugging**: Understand which specific characters are causing issues\n- **Security audits**: Get detailed reports of all suspicious characters\n\n## Extended scan (`--extended` / `--all`)\n\nBy default, the tool only reports **high**-severity matches: all Cf/Cc (except TAB/LF/CR) plus the core explicit list in [`src/constants.js`](src/constants.js). To also flag a **curated** set of ASCII-lookalike homoglyphs and a few extra invisible letters (see [`src/extended-blocklist.js`](src/extended-blocklist.js)), pass **`--extended`** or **`--all`**. Those findings are labeled **`severity`: `\"low\"`** in JSON and in verbose CLI output (still exit code **1** when any finding is present).\n\nLow-severity hits can appear in legitimate localized text; treat them as **review prompts**, not automatic malice.\n\n```bash\nnpx anti-trojan-source --files='src/**/*.js' --extended\nnpx anti-trojan-source --files='src/**/*.js' --extended --verbose\n```\n\n## JSON output mode\n\nUse the `--json` (or `-j`) flag to get machine-readable JSON output, perfect for CI/CD integration and automated processing:\n\n```bash\nnpx anti-trojan-source --files='src/**/*.js' --json\n```\n\nExample output:\n\n```json\n[\n  {\n    \"file\": \"src/utils.js\",\n    \"findings\": [\n      {\n        \"line\": 12,\n        \"column\": 34,\n        \"codePoint\": \"U+200B\",\n        \"name\": \"ZERO WIDTH SPACE\",\n        \"category\": \"Cf (Format)\",\n        \"severity\": \"high\",\n        \"snippet\": \"const value = getUserInput()\"\n      }\n    ]\n  }\n]\n```\n\nThis mode enables:\n- **CI/CD integration**: Parse results programmatically in your pipeline\n- **Custom reporting**: Build your own reporting tools on top of the detection\n- **Automated workflows**: Trigger specific actions based on findings\n\n# Use as an eslint plugin\n\nRefer to the ESLint Plugin for this CLI and the README on that repository which clearly explains how to set it up: [eslint-plugin-anti-trojan-source](https://github.com/lirantal/eslint-plugin-anti-trojan-source).\n\n# Use as a library\n\n## Simple boolean check\n\nTo use it as a library and pass it file contents to detect (backward compatible):\n\n```js\nimport { hasConfusables } from 'anti-trojan-source'\n\nconst isDangerous = hasConfusables({\n  sourceText: 'if (accessLevel != \"user‮ ⁦// Check if admin⁩ ⁦\") {'\n})\n\nconsole.log(isDangerous) // true or false\n```\n\n`hasConfusables` returns a boolean when called without the `detailed` option.\n\n## Detailed findings\n\nGet comprehensive information about detected characters including their location, names, and categories:\n\n```js\nimport { hasConfusables } from 'anti-trojan-source'\n\nconst findings = hasConfusables({\n  sourceText: 'const value\\u200b = 123', // ZERO WIDTH SPACE\n  detailed: true\n})\n\n// Optional: pass extended: true to include homoglyphs / extra invisibles (severity \"low\").\n\nconsole.log(findings)\n// [\n//   {\n//     line: 1,\n//     column: 12,\n//     codePoint: \"U+200B\",\n//     name: \"ZERO WIDTH SPACE\",\n//     category: \"Cf (Format)\",\n//     severity: \"high\",\n//     snippet: \"const value = 123\"\n//   }\n// ]\n```\n\nEach finding includes:\n- **line**: Line number where the character was found\n- **column**: Column number where the character was found  \n- **codePoint**: Unicode code point (e.g., \"U+200B\")\n- **name**: Descriptive name of the character\n- **category**: Unicode category, `Confusable`, `Variation Selector`, or `Extended blocklist` (when `severity` is `low`)\n- **severity**: `\"high\"` (default scan: Cf/Cc + core explicit list) or `\"low\"` (extended blocklist only, when `extended: true`)\n- **snippet**: Context from the line (up to 80 characters)\n\nThe package also exports **`extendedConfusableChars`** if you need to introspect the opt-in list.\n\nYou can also check multiple files at once:\n\n```js\nimport { hasConfusablesInFiles } from 'anti-trojan-source'\n\nconst results = hasConfusablesInFiles({\n  filePaths: ['src/index.js', 'src/utils.js'],\n  detailed: true // Optional: get detailed findings\n})\n\nconsole.log(results)\n// [\n//   {\n//     file: \"src/index.js\",\n//     findings: [ /* array of findings */ ]\n//   }\n// ]\n```\n\n# Use as a pre-commit hook\n\nTo add this tool to your project as a [`pre-commit`](https://pre-commit.com) hook, try this sample configuration in `.pre-commit-config.yaml`:\n\n```yaml\nrepos:\n  - repo: https://github.com/lirantal/anti-trojan-source\n    rev: v1.8.1  # choose the release you want\n    hooks:\n      - id: anti-trojan-source\n```\n\n# References\n\n- [Hiding and finding text with Unicode Tags](https://embracethered.com/blog/posts/2024/hiding-and-finding-text-with-unicode-tags/) — Unicode tag letters, LLM / review bypass, and links to specs (Embrace The Red).\n- [ASCII Smuggler](https://embracethered.com/blog/ascii-smuggler.html) — encode/decode tool for tags, variant selectors, and related invisible patterns (Embrace The Red).\n- [Trojan Source](https://trojansource.codes/) — original bidi / trojan source research and paper.\n\n# Contributing\n\nPlease consult [CONTRIBUTING](./CONTRIBUTING.md) for guidelines on contributing to this project.\n\n# Author\n\n**anti-trojan-source** © [Liran Tal](https://github.com/lirantal), Released under the [Apache-2.0](./LICENSE) License.\n\n## Documentation\n\n- [Project documentation](./docs/README.md) - development, testing, architecture, and conventions.\n","readmeFilename":"README.md"}