{"id":18437226,"url":"https://github.com/power-assert-js/power-assert-formatter","last_synced_at":"2025-12-18T13:04:48.921Z","repository":{"id":12700692,"uuid":"15373103","full_name":"power-assert-js/power-assert-formatter","owner":"power-assert-js","description":"Power Assert output formatter","archived":false,"fork":false,"pushed_at":"2017-06-12T01:33:15.000Z","size":833,"stargazers_count":6,"open_issues_count":2,"forks_count":3,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-11-10T11:40:02.768Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/power-assert-js.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"MIT-LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-12-22T09:27:10.000Z","updated_at":"2018-08-13T02:02:18.000Z","dependencies_parsed_at":"2022-08-31T00:01:24.521Z","dependency_job_id":null,"html_url":"https://github.com/power-assert-js/power-assert-formatter","commit_stats":null,"previous_names":["twada/power-assert-formatter"],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/power-assert-js/power-assert-formatter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/power-assert-js%2Fpower-assert-formatter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/power-assert-js%2Fpower-assert-formatter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/power-assert-js%2Fpower-assert-formatter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/power-assert-js%2Fpower-assert-formatter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/power-assert-js","download_url":"https://codeload.github.com/power-assert-js/power-assert-formatter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/power-assert-js%2Fpower-assert-formatter/sbom","scorecard":{"id":742396,"data":{"date":"2025-08-11","repo":{"name":"github.com/power-assert-js/power-assert-formatter","commit":"0230ea9c3c7119be28b9bdab64afd82e47cb139f"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: MIT-LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: MIT-LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 7 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-22T17:47:49.517Z","repository_id":12700692,"created_at":"2025-08-22T17:47:49.517Z","updated_at":"2025-08-22T17:47:49.517Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27797038,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-18T02:00:09.725Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T06:14:10.487Z","updated_at":"2025-12-18T13:04:48.903Z","avatar_url":"https://github.com/power-assert-js.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"power-assert-formatter\n================================\n\n[![Build Status][travis-image]][travis-url]\n[![NPM package][npm-image]][npm-url]\n[![Bower package][bower-image]][bower-url]\n[![Dependency Status][depstat-image]][depstat-url]\n[![Coverage Status][coverage-image]][coverage-url]\n[![Code Climate][codeclimate-image]][codeclimate-url]\n[![License][license-image]][license-url]\n[![Built with Gulp][gulp-image]][gulp-url]\n\nPower Assert output formatter.\n\n\nDESCRIPTION\n---------------------------------------\n`power-assert-formatter` is a formatter module for Power Assert output.\n\nPull-requests, issue reports and patches are always welcomed. See [power-assert](https://github.com/power-assert-js/power-assert) project for more documentation.\n\n\nCHANGELOG\n---------------------------------------\nSee [CHANGELOG](https://github.com/power-assert-js/power-assert-formatter/blob/master/CHANGELOG.md)\n\n\nAPI\n---------------------------------------\n\n### var createFormatter = require('power-assert-formatter');\n\n| return type |\n|:------------|\n| `function`  |\n\nReturns creator function for power-assert.\n\n### var formatter = createFormatter([options]);\n\n| return type |\n|:------------|\n| `function`  |\n\nCreate formatter function with options. `options` argument is optional.\n\n#### options\n\n| type     | default value |\n|:---------|:--------------|\n| `object` | (return value of `createFormatter.defaultOptions()`) |\n\nConfiguration options. If not passed, default options will be used.\n\n#### options.lineDiffThreshold\n\n| type     | default value |\n|:---------|:--------------|\n| `number` | `5`           |\n\nThreshold to show diff at character level or line level. If number of lines in target string is greater than `lineDiffThreshold`, then line diff mode will be used to show diff output.\n\n#### options.maxDepth\n\n| type     | default value |\n|:---------|:--------------|\n| `number` | `1`           |\n\nDepth of object traversal. If object depth is greater than `maxDepth`, compound object (IOW, `Array` or `object`) will be pruned with `#` like `[\"foo\",#Array#,#Object#]`.\n\n#### options.outputOffset\n\n| type     | default value |\n|:---------|:--------------|\n| `number` | `2`           |\n\nNumber of spaces inserted at the left in power-assert output.\n\n#### options.anonymous\n\n| type     | default value |\n|:---------|:--------------|\n| `string` | `\"Object\"`    |\n\nType name to show when target object is created by anonymous constructor.\n\n#### options.circular\n\n| type     | default value   |\n|:---------|:----------------|\n| `string` | `\"#@Circular#\"` |\n\nName to show when target object is detected as circular structure.\n\n#### options.lineSeparator\n\n| type     | default value |\n|:---------|:--------------|\n| `string` | `\"\\n\"`        |\n\nLine separator in power assert output.\n\n#### options.ambiguousEastAsianCharWidth\n\n| type     | default value |\n|:---------|:--------------|\n| `number` | `2`           |\n\nWidth of 'Ambiguous' characters defined in [Unicode Standard Annex \\#11 EAST ASIAN WIDTH](http://www.unicode.org/reports/tr11/#Ambiguous). Configure `options.ambiguousEastAsianCharWidth` to treat ambiguous east asian character as fullwidth (= `2`) or narrow (= `1`). Default is `2`.\n\n#### options.widthOf\n\n| type       | default value |\n|:-----------|:--------------|\n| `function` | [string-width.js](https://github.com/twada/power-assert-runtime/blob/master/packages/power-assert-renderer-diagram/lib/string-width.js) |\n\nFunction to calculate width of string.\n\n#### options.stringify\n\n| type       | default value |\n|:-----------|:--------------|\n| `function` | [stringifier module](https://github.com/twada/stringifier) |\n\nFunction to stringify any target value.\n\n#### options.diff\n\n| type       | default value |\n|:-----------|:--------------|\n| `function` | [udiff.js](https://github.com/twada/power-assert-runtime/blob/master/packages/power-assert-renderer-comparison/lib/udiff.js) |\n\nFunction to create diff string between two strings.\n\n#### options.writerClass\n\n| type       | default value |\n|:-----------|:--------------|\n| `function` | [string-writer.js](https://github.com/twada/power-assert-runtime/blob/master/packages/power-assert-context-formatter/lib/string-writer.js) |\n\nConstructor Function for output writer class.\n\n#### options.renderers\n\n| type                                | default value |\n|:------------------------------------|:--------------|\n| `Array` of (`string` or `function` )| shown below   |\n\n```javascript\n[\n    './built-in/file',\n    './built-in/assertion',\n    './built-in/diagram',\n    './built-in/binary-expression'\n]\n```\n\nOutput renderers. Power assert output is rendered by renderers in order. You can create custom renderer and add its constructor function to customize power-assert-output.\n\n```javascript\n[\n    './built-in/file',\n    './built-in/assertion',\n    YourCustomRenderer,\n    './built-in/binary-expression'\n]\n```\n\n\n### var options = createFormatter.defaultOptions();\n\nReturns default options object for createFormatter function. In other words, returns\n\n```javascript\n{\n    lineDiffThreshold: 5,\n    maxDepth: 1,\n    anonymous: 'Object',\n    circular: '#@Circular#',\n    lineSeparator: '\\n',\n    ambiguousEastAsianCharWidth: 2,\n    renderers: [\n        './built-in/file',\n        './built-in/assertion',\n        './built-in/diagram',\n        './built-in/binary-expression'\n    ]\n};\n```\n\n\n### var formattedText = formatter(powerAssertContext);\n\n| return type |\n|:------------|\n| `string`  |\n\nFormat `powerAssertContext` into `formattedText`. `powerAssertContext` is an internal object structure, containing informations to render. Example of `powerAssertContext` is:\n\n```javascript\n{\n    source: {\n        content: \"assert.equal(foo, bar)\",\n        filepath: \"/path/to/some_test.js\",\n        line: 1\n    },\n    args: [\n        {\n            value: \"foo\",\n            events: [\n                {\n                    value: \"foo\",\n                    espath: \"arguments/0\"\n                }\n            ]\n        },\n        {\n            value: \"bar\",\n            events: [\n                {\n                    value: \"bar\",\n                    espath: \"arguments/1\"\n                }\n            ]\n        }\n    ]\n}\n```\n\nNote that structure of powerAssertContext may change.\n\n\nINSTALL\n---------------------------------------\n\n### via npm\n\nInstall\n\n    $ npm install --save-dev power-assert-formatter\n\n\n#### use power-assert-formatter npm module on browser\n\n`powerAssertFormatter` function is exported\n\n    \u003cscript type=\"text/javascript\" src=\"./path/to/node_modules/power-assert-formatter/build/power-assert-formatter.js\"\u003e\u003c/script\u003e\n\n\n### via bower\n\nInstall\n\n    $ bower install --save-dev power-assert-formatter\n\nThen load (`powerAssertFormatter` function is exported)\n\n    \u003cscript type=\"text/javascript\" src=\"./path/to/bower_components/power-assert-formatter/build/power-assert-formatter.js\"\u003e\u003c/script\u003e\n\n\nAUTHOR\n---------------------------------------\n* [Takuto Wada](https://github.com/twada)\n\n\nCONTRIBUTORS\n---------------------------------------\n* [James Talmage (jamestalmage)](https://github.com/jamestalmage)\n\n\nLICENSE\n---------------------------------------\nLicensed under the [MIT](https://github.com/power-assert-js/power-assert-formatter/blob/master/MIT-LICENSE.txt) license.\n\n\n[npm-url]: https://npmjs.org/package/power-assert-formatter\n[npm-image]: https://badge.fury.io/js/power-assert-formatter.svg\n\n[bower-url]: https://badge.fury.io/bo/power-assert-formatter\n[bower-image]: https://badge.fury.io/bo/power-assert-formatter.svg\n\n[travis-url]: https://travis-ci.org/power-assert-js/power-assert-formatter\n[travis-image]: https://secure.travis-ci.org/power-assert-js/power-assert-formatter.svg?branch=master\n\n[depstat-url]: https://gemnasium.com/power-assert-js/power-assert-formatter\n[depstat-image]: https://gemnasium.com/power-assert-js/power-assert-formatter.svg\n\n[license-url]: https://github.com/power-assert-js/power-assert-formatter/blob/master/MIT-LICENSE.txt\n[license-image]: https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat\n\n[codeclimate-url]: https://codeclimate.com/github/power-assert-js/power-assert-formatter\n[codeclimate-image]: https://codeclimate.com/github/power-assert-js/power-assert-formatter/badges/gpa.svg\n\n[coverage-url]: https://coveralls.io/r/power-assert-js/power-assert-formatter?branch=master\n[coverage-image]: https://coveralls.io/repos/power-assert-js/power-assert-formatter/badge.svg?branch=master\n\n[gulp-url]: http://gulpjs.com/\n[gulp-image]: https://img.shields.io/badge/built_with-gulp-brightgreen.svg\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpower-assert-js%2Fpower-assert-formatter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpower-assert-js%2Fpower-assert-formatter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpower-assert-js%2Fpower-assert-formatter/lists"}