{"_id":"comment-json","_rev":"4100861","name":"comment-json","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","dist-tags":{"latest":"4.5.1"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"time":{"modified":"2026-01-11T18:38:44.000Z","created":"2014-08-18T09:28:47.284Z","4.5.1":"2025-12-26T03:16:55.254Z","4.5.0":"2025-12-11T05:59:06.389Z","4.4.1":"2025-10-03T01:28:57.595Z","4.4.0":"2025-10-02T13:58:34.880Z","4.3.0":"2025-09-29T03:02:32.035Z","4.2.5":"2024-08-11T13:01:44.756Z","4.2.4":"2024-07-04T04:25:34.852Z","4.2.3":"2022-08-17T04:25:37.487Z","4.2.2":"2022-02-03T16:06:31.468Z","4.2.1":"2022-02-03T15:37:46.242Z","4.2.0":"2022-02-03T15:32:46.575Z","4.1.1":"2021-07-27T04:11:54.688Z","4.1.0":"2020-10-02T11:57:51.400Z","4.0.6":"2020-09-08T14:18:23.950Z","4.0.5":"2020-09-08T12:21:17.062Z","4.0.4":"2020-09-02T13:14:16.628Z","4.0.3":"2020-09-02T12:54:05.325Z","4.0.2":"2020-09-01T07:05:17.997Z","4.0.1":"2020-09-01T07:00:54.979Z","4.0.0":"2020-09-01T06:13:34.021Z","3.0.3":"2020-08-11T07:15:56.241Z","3.0.2":"2020-02-12T05:28:12.265Z","3.0.1":"2020-02-12T05:27:23.010Z","3.0.0":"2020-02-12T05:09:07.225Z","2.4.2":"2020-02-11T03:30:32.481Z","2.4.1":"2020-01-09T15:43:29.970Z","2.4.0":"2020-01-09T15:42:07.329Z","2.3.1":"2019-12-14T13:27:48.933Z","2.3.0":"2019-12-14T13:19:20.121Z","2.2.0":"2019-09-23T12:15:13.983Z","2.1.0":"2019-06-24T13:13:38.432Z","2.0.9":"2019-06-21T10:31:23.706Z","2.0.8":"2019-06-21T10:20:24.790Z","2.0.7":"2019-06-21T10:16:44.859Z","2.0.6":"2019-06-21T09:55:24.950Z","2.0.5":"2019-06-21T09:54:31.823Z","2.0.4":"2019-06-21T09:41:35.014Z","2.0.3":"2019-06-21T09:07:04.811Z","2.0.2":"2019-06-21T08:59:25.346Z","2.0.1":"2019-06-21T08:57:50.921Z","2.0.0":"2019-06-21T08:55:18.247Z","1.1.3":"2015-10-11T06:18:38.084Z","1.1.2":"2015-10-11T06:15:17.881Z","1.1.1":"2015-09-27T07:49:04.522Z","1.1.0":"2015-09-27T07:47:24.197Z","1.0.2":"2015-09-24T01:47:56.074Z","1.0.1":"2015-09-11T11:02:07.700Z","1.0.0":"2015-07-23T07:57:24.781Z","0.1.11":"2014-08-20T16:17:47.157Z","0.1.10":"2014-08-20T16:13:58.324Z","0.1.9":"2014-08-20T11:10:13.272Z","0.1.8":"2014-08-20T10:43:33.246Z","0.1.7":"2014-08-20T01:16:00.944Z","0.1.6":"2014-08-19T18:40:31.442Z","0.1.5":"2014-08-19T18:35:09.083Z","0.1.4":"2014-08-19T18:33:06.135Z","0.1.3":"2014-08-19T18:28:29.114Z","0.1.2":"2014-08-19T18:19:50.381Z","0.1.1":"2014-08-18T10:12:41.192Z","0.1.0":"2014-08-18T09:28:47.284Z"},"users":{"nycdotnet":true},"author":{"name":"kaelzhang"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"versions":{"4.5.1":{"name":"comment-json","version":"4.5.1","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","types":"index.d.ts","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc -b test/ts/tsconfig.build.json && node test/ts/test-ts.js","test:node":"cross-env NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.6.0","ava":"^4.0.1","codecov":"^3.8.2","cross-env":"^10.0.0","eslint":"^8.57.1","eslint-plugin-import":"^2.25.4","nyc":"^15.1.0","test-fixture":"^2.4.1","typescript":"^5.9.2"},"dependencies":{"array-timsort":"^1.0.3","core-util-is":"^1.0.3","esprima":"^4.0.1"},"_id":"comment-json@4.5.1","gitHead":"d57478d6f3b1449f8f7dd1303028f055fc06fd25","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_nodeVersion":"22.8.0","_npmVersion":"10.8.2","dist":{"shasum":"2da1b85d5471b6494a344ed166fed3e831d268ed","size":18130,"noattachment":false,"key":"/comment-json/-/comment-json-4.5.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-4.5.1.tgz"},"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/comment-json_4.5.1_1766719015088_0.28316015583973253"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-12-26T03:16:55.254Z","publish_time":1766719015254,"_source_registry_name":"default","_cnpm_publish_time":1766719015254},"4.5.0":{"name":"comment-json","version":"4.5.0","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","types":"index.d.ts","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc -b test/ts/tsconfig.build.json && node test/ts/test-ts.js","test:node":"cross-env NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.6.0","ava":"^4.0.1","codecov":"^3.8.2","cross-env":"^10.0.0","eslint":"^8.57.1","eslint-plugin-import":"^2.25.4","nyc":"^15.1.0","test-fixture":"^2.4.1","typescript":"^5.9.2"},"dependencies":{"array-timsort":"^1.0.3","core-util-is":"^1.0.3","esprima":"^4.0.1"},"_id":"comment-json@4.5.0","gitHead":"6ce3761b5fdfd9a60085fa9c8390af68a4040dc8","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_nodeVersion":"22.8.0","_npmVersion":"10.8.2","dist":{"shasum":"19f51e1005d5f0e2a8306bdc04ffac59b042fa13","size":18135,"noattachment":false,"key":"/comment-json/-/comment-json-4.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-4.5.0.tgz"},"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/comment-json_4.5.0_1765432746223_0.20100882412375043"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-12-11T05:59:06.389Z","publish_time":1765432746389,"_source_registry_name":"default","_cnpm_publish_time":1765432746389},"4.4.1":{"name":"comment-json","version":"4.4.1","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","types":"index.d.ts","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc -b test/ts/tsconfig.build.json && node test/ts/test-ts.js","test:node":"cross-env NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.6.0","ava":"^4.0.1","codecov":"^3.8.2","cross-env":"^10.0.0","eslint":"^8.57.1","eslint-plugin-import":"^2.25.4","nyc":"^15.1.0","test-fixture":"^2.4.1","typescript":"^5.9.2"},"dependencies":{"array-timsort":"^1.0.3","core-util-is":"^1.0.3","esprima":"^4.0.1"},"_id":"comment-json@4.4.1","gitHead":"7e9dd53545ccc77079b168736195f63c3162c23c","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_nodeVersion":"22.8.0","_npmVersion":"10.8.2","dist":{"shasum":"0757e3ba31a9e56f3f6e00bdaae114384ac8bcf3","size":14723,"noattachment":false,"key":"/comment-json/-/comment-json-4.4.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-4.4.1.tgz"},"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/comment-json_4.4.1_1759454937392_0.26935335430802443"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-10-03T01:28:57.595Z","publish_time":1759454937595,"_source_registry_name":"default","_cnpm_publish_time":1759454937595},"4.4.0":{"name":"comment-json","version":"4.4.0","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","types":"index.d.ts","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc -b test/ts/tsconfig.build.json && node test/ts/test-ts.js","test:node":"cross-env NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.6.0","ava":"^4.0.1","codecov":"^3.8.2","cross-env":"^10.0.0","eslint":"^8.57.1","eslint-plugin-import":"^2.25.4","nyc":"^15.1.0","test-fixture":"^2.4.1","typescript":"^5.9.2"},"dependencies":{"array-timsort":"^1.0.3","core-util-is":"^1.0.3","esprima":"^4.0.1"},"_id":"comment-json@4.4.0","gitHead":"2b9208e529c25d77442117640415903caaf0d1c1","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_nodeVersion":"22.8.0","_npmVersion":"10.8.2","dist":{"shasum":"2631550b64da35a1ef801335f8cc7de4022ea455","size":14590,"noattachment":false,"key":"/comment-json/-/comment-json-4.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-4.4.0.tgz"},"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/comment-json_4.4.0_1759413514701_0.4338471965186048"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-10-02T13:58:34.880Z","publish_time":1759413514880,"_source_registry_name":"default","_cnpm_publish_time":1759413514880},"4.3.0":{"name":"comment-json","version":"4.3.0","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","types":"index.d.ts","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc -b test/ts/tsconfig.build.json && node test/ts/test-ts.js","test:node":"cross-env NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.6.0","ava":"^4.0.1","codecov":"^3.8.2","cross-env":"^10.0.0","eslint":"^8.8.0","eslint-plugin-import":"^2.25.4","nyc":"^15.1.0","test-fixture":"^2.4.1","typescript":"^4.5.5"},"dependencies":{"array-timsort":"^1.0.3","core-util-is":"^1.0.3","esprima":"^4.0.1"},"_id":"comment-json@4.3.0","gitHead":"ec3a018e3a9189db5adfc0852ba357ba7d9b8adb","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_nodeVersion":"22.8.0","_npmVersion":"10.8.2","dist":{"shasum":"74e1f35b4a6b76ac000d5cb8d02f950e44ff68ee","size":14197,"noattachment":false,"key":"/comment-json/-/comment-json-4.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-4.3.0.tgz"},"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/comment-json_4.3.0_1759114951815_0.3338972846967334"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-09-29T03:02:32.035Z","publish_time":1759114952035,"_source_registry_name":"default","_cnpm_publish_time":1759114952035},"4.2.5":{"name":"comment-json","version":"4.2.5","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","types":"index.d.ts","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc -b test/ts/tsconfig.build.json && node test/ts/test-ts.js","test:node":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.6.0","ava":"^4.0.1","codecov":"^3.8.2","eslint":"^8.8.0","eslint-plugin-import":"^2.25.4","nyc":"^15.1.0","test-fixture":"^2.4.1","typescript":"^4.5.5"},"dependencies":{"array-timsort":"^1.0.3","core-util-is":"^1.0.3","esprima":"^4.0.1","has-own-prop":"^2.0.0","repeat-string":"^1.6.1"},"_id":"comment-json@4.2.5","gitHead":"0f4f85a325222fc2ee42a9f35acf174deb27b74f","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_nodeVersion":"21.6.2","_npmVersion":"10.2.4","dist":{"shasum":"482e085f759c2704b60bc6f97f55b8c01bc41e70","size":14134,"noattachment":false,"key":"/comment-json/-/comment-json-4.2.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-4.2.5.tgz"},"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_4.2.5_1723381304604_0.4638245021370029"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-08-11T13:01:44.756Z","publish_time":1723381304756,"_source_registry_name":"default","_cnpm_publish_time":1723381304756},"4.2.4":{"name":"comment-json","version":"4.2.4","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc -b test/ts/tsconfig.build.json && node test/ts/test-ts.js","test:node":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.6.0","ava":"^4.0.1","codecov":"^3.8.2","eslint":"^8.8.0","eslint-plugin-import":"^2.25.4","nyc":"^15.1.0","test-fixture":"^2.4.1","typescript":"^4.5.5"},"dependencies":{"array-timsort":"^1.0.3","core-util-is":"^1.0.3","esprima":"^4.0.1","has-own-prop":"^2.0.0","repeat-string":"^1.6.1"},"_id":"comment-json@4.2.4","gitHead":"6e774bbc70b1f9c97b1d428b73d501f83a8887cb","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_nodeVersion":"21.6.2","_npmVersion":"10.2.4","dist":{"shasum":"7d1cfe2e934f0c55ae3c2c2cc0436ba4e8901083","size":14131,"noattachment":false,"key":"/comment-json/-/comment-json-4.2.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-4.2.4.tgz"},"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_4.2.4_1720067134695_0.0007652022867843389"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-07-04T04:25:34.852Z","publish_time":1720067134852,"_source_registry_name":"default","_cnpm_publish_time":1720067134852},"4.2.3":{"name":"comment-json","version":"4.2.3","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc -b test/ts/tsconfig.build.json && node test/ts/test-ts.js","test:node":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.6.0","ava":"^4.0.1","codecov":"^3.8.2","eslint":"^8.8.0","eslint-plugin-import":"^2.25.4","nyc":"^15.1.0","test-fixture":"^2.4.1","typescript":"^4.5.5"},"dependencies":{"array-timsort":"^1.0.3","core-util-is":"^1.0.3","esprima":"^4.0.1","has-own-prop":"^2.0.0","repeat-string":"^1.6.1"},"gitHead":"ffec399ae579daf2e789482c7fe48af22991a75a","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@4.2.3","_nodeVersion":"18.1.0","_npmVersion":"8.8.0","dist":{"shasum":"50b487ebbf43abe44431f575ebda07d30d015365","size":14053,"noattachment":false,"key":"/comment-json/-/comment-json-4.2.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-4.2.3.tgz"},"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_4.2.3_1660710337215_0.23314267327965954"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-08-17T04:25:49.461Z","publish_time":1660710337487,"_cnpm_publish_time":1660710337487},"4.2.2":{"name":"comment-json","version":"4.2.2","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc test/ts/test-ts.ts && node test/ts/test-ts.js","test:node":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.6.0","ava":"^4.0.1","codecov":"^3.8.2","eslint":"^8.8.0","eslint-plugin-import":"^2.25.4","nyc":"^15.1.0","test-fixture":"^2.4.1","typescript":"^4.5.5"},"dependencies":{"array-timsort":"^1.0.3","core-util-is":"^1.0.3","esprima":"^4.0.1","has-own-prop":"^2.0.0","repeat-string":"^1.6.1"},"gitHead":"ed1d9f4c138e90ea951cfba3e286fcfc8b24b6b5","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@4.2.2","_nodeVersion":"16.5.0","_npmVersion":"8.3.0","dist":{"shasum":"5fae70a94e0c8f84a077bd31df5aa5269252f293","size":13692,"noattachment":false,"key":"/comment-json/-/comment-json-4.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-4.2.2.tgz"},"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_4.2.2_1643904391334_0.3987063827259847"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-02-03T16:06:39.759Z","publish_time":1643904391468,"_cnpm_publish_time":1643904391468},"4.2.1":{"name":"comment-json","version":"4.2.1","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc test/ts/test-ts.ts && node test/ts/test-ts.js","test:node":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.6.0","ava":"^4.0.1","codecov":"^3.8.2","eslint":"^8.8.0","eslint-plugin-import":"^2.25.4","nyc":"^15.1.0","test-fixture":"^2.4.1","typescript":"^4.5.5"},"dependencies":{"array-timsort":"^1.0.3","core-util-is":"^1.0.3","esprima":"^4.0.1","has-own-prop":"^2.0.0","repeat-string":"^1.6.1"},"gitHead":"0f834c1b30b5b01f1bf723c050dd2840392a990d","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@4.2.1","_nodeVersion":"16.5.0","_npmVersion":"8.3.0","dist":{"shasum":"e226f49a12259742fff7f30a689da34174756c5e","size":13612,"noattachment":false,"key":"/comment-json/-/comment-json-4.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-4.2.1.tgz"},"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_4.2.1_1643902666092_0.4508049882808203"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-02-03T15:37:51.875Z","publish_time":1643902666242,"_cnpm_publish_time":1643902666242},"4.2.0":{"name":"comment-json","version":"4.2.0","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc test/ts/test-ts.ts && node test/ts/test-ts.js","test:node":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.6.0","ava":"^4.0.1","codecov":"^3.8.2","eslint":"^8.8.0","eslint-plugin-import":"^2.25.4","nyc":"^15.1.0","test-fixture":"^2.4.1","typescript":"^4.5.5"},"dependencies":{"array-timsort":"^1.0.3","core-util-is":"^1.0.3","esprima":"^4.0.1","has-own-prop":"^2.0.0","repeat-string":"^1.6.1"},"gitHead":"80a774bddf41684b337b7548f75241a212eaecd0","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@4.2.0","_nodeVersion":"16.5.0","_npmVersion":"8.3.0","dist":{"shasum":"d94b567fcdb52865e4a0a712a89333d32cb41ade","size":13619,"noattachment":false,"key":"/comment-json/-/comment-json-4.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-4.2.0.tgz"},"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_4.2.0_1643902366399_0.6411091977237129"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-02-03T15:33:04.918Z","publish_time":1643902366575,"_cnpm_publish_time":1643902366575},"4.1.1":{"name":"comment-json","version":"4.1.1","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc test/ts/test-ts.ts && node test/ts/test-ts.js","test:node":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.5.0","ava":"^3.13.0","codecov":"^3.7.2","eslint":"^7.10.0","eslint-plugin-import":"^2.22.1","nyc":"^15.1.0","test-fixture":"^2.4.1","typescript":"^4.0.3"},"dependencies":{"array-timsort":"^1.0.3","core-util-is":"^1.0.2","esprima":"^4.0.1","has-own-prop":"^2.0.0","repeat-string":"^1.6.1"},"gitHead":"7d6135d5c699a6928b9605ba8fc84222f3aafa05","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@4.1.1","_nodeVersion":"16.5.0","_npmVersion":"7.19.1","dist":{"shasum":"49df4948704bebb1cc0ffa6910e25669b668b7c5","size":13723,"noattachment":false,"key":"/comment-json/-/comment-json-4.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-4.1.1.tgz"},"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_4.1.1_1627359114555_0.0811134499489139"},"_hasShrinkwrap":false,"publish_time":1627359114688,"_cnpm_publish_time":1627359114688},"4.1.0":{"name":"comment-json","version":"4.1.0","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc test/ts/test-ts.ts && node test/ts/test-ts.js","test:node":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.5.0","ava":"^3.13.0","codecov":"^3.7.2","eslint":"^7.10.0","eslint-plugin-import":"^2.22.1","nyc":"^15.1.0","test-fixture":"^2.4.1","typescript":"^4.0.3"},"dependencies":{"array-timsort":"^1.0.3","core-util-is":"^1.0.2","esprima":"^4.0.1","has-own-prop":"^2.0.0","repeat-string":"^1.6.1"},"gitHead":"b829d3d00102a726eb0abb8cd7957093701816d5","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@4.1.0","_nodeVersion":"14.12.0","_npmVersion":"6.14.8","dist":{"shasum":"09d08f0fbc4ad5eeccbac20f469adbb967dcbd2c","size":13807,"noattachment":false,"key":"/comment-json/-/comment-json-4.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-4.1.0.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_4.1.0_1601639871262_0.35876010785256396"},"_hasShrinkwrap":false,"publish_time":1601639871400,"_cnpm_publish_time":1601639871400},"4.0.6":{"name":"comment-json","version":"4.0.6","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc test/ts/test-ts.ts && node test/ts/test-ts.js","test:node":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.5.0","ava":"^3.12.1","codecov":"^3.7.2","eslint":"^7.8.0","eslint-plugin-import":"^2.22.0","nyc":"^15.1.0","test-fixture":"^2.4.1","typescript":"^4.0.2"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","has-own-prop":"^2.0.0","repeat-string":"^1.6.1"},"gitHead":"420a7fc91a7f0a4ab565ad0e329cff110b624edb","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@4.0.6","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"shasum":"b9fa19400c558fba4fe70d1d77ed5871e47e9bdf","size":13263,"noattachment":false,"key":"/comment-json/-/comment-json-4.0.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-4.0.6.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_4.0.6_1599574703838_0.7333063473289361"},"_hasShrinkwrap":false,"publish_time":1599574703950,"_cnpm_publish_time":1599574703950},"4.0.5":{"name":"comment-json","version":"4.0.5","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc test/ts/test-ts.ts && node test/ts/test-ts.js","test:node":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.5.0","ava":"^3.12.1","codecov":"^3.7.2","eslint":"^7.8.0","eslint-plugin-import":"^2.22.0","nyc":"^15.1.0","test-fixture":"^2.4.1","typescript":"^4.0.2"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","has-own-prop":"^2.0.0","repeat-string":"^1.6.1"},"gitHead":"eb44eaad39757774e6a766f431423a2fb75e51d4","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@4.0.5","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"shasum":"f522b150c483f9da36908d22b7d98fab6974fa43","size":13214,"noattachment":false,"key":"/comment-json/-/comment-json-4.0.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-4.0.5.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_4.0.5_1599567676917_0.11036607707250923"},"_hasShrinkwrap":false,"publish_time":1599567677062,"_cnpm_publish_time":1599567677062},"4.0.4":{"name":"comment-json","version":"4.0.4","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc test/ts/test-ts.ts && node test/ts/test-ts.js","test:node":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.5.0","ava":"^3.12.1","codecov":"^3.7.2","eslint":"^7.8.0","eslint-plugin-import":"^2.22.0","nyc":"^15.1.0","test-fixture":"^2.4.1","typescript":"^4.0.2"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","has-own-prop":"^2.0.0","repeat-string":"^1.6.1"},"gitHead":"eb761e479b6957b559e7edb95d043f73f5e21cbf","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@4.0.4","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"shasum":"60f254a8e207e6616cbe903e5709696ed4d83529","size":13215,"noattachment":false,"key":"/comment-json/-/comment-json-4.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-4.0.4.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_4.0.4_1599052456504_0.6664387133542196"},"_hasShrinkwrap":false,"publish_time":1599052456628,"_cnpm_publish_time":1599052456628},"4.0.3":{"name":"comment-json","version":"4.0.3","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc test/ts/test-ts.ts && node test/ts/test-ts.js","test:node":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.5.0","ava":"^3.12.1","codecov":"^3.7.2","eslint":"^7.8.0","eslint-plugin-import":"^2.22.0","nyc":"^15.1.0","test-fixture":"^2.4.1","typescript":"^4.0.2"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","has-own-prop":"^2.0.0","repeat-string":"^1.6.1"},"gitHead":"22e096c32371e380e0cfdd5aa84c4128f5821d42","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@4.0.3","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"shasum":"94266be2a2d83fd2ab9520c4f6edb67691ddb355","size":13043,"noattachment":false,"key":"/comment-json/-/comment-json-4.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-4.0.3.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_4.0.3_1599051245015_0.5651700715330159"},"_hasShrinkwrap":false,"publish_time":1599051245325,"_cnpm_publish_time":1599051245325,"deprecated":"4.0.3 is buggy, upgrading to 4.0.4 is recommended"},"4.0.2":{"name":"comment-json","version":"4.0.2","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc test/ts/test-ts.ts && node test/ts/test-ts.js","test:node":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.5.0","ava":"^3.12.1","codecov":"^3.7.2","eslint":"^7.8.0","eslint-plugin-import":"^2.22.0","nyc":"^15.1.0","test-fixture":"^2.4.1","typescript":"^4.0.2"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","has-own-prop":"^2.0.0","repeat-string":"^1.6.1"},"gitHead":"2a7bfde98e1cfcc6fe329bec53c44ce9684591f7","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@4.0.2","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"shasum":"5e5de44d3a5291b935ca9e4a49ee5ffb08240496","size":12986,"noattachment":false,"key":"/comment-json/-/comment-json-4.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-4.0.2.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_4.0.2_1598943917847_0.1716938497832885"},"_hasShrinkwrap":false,"publish_time":1598943917997,"_cnpm_publish_time":1598943917997},"4.0.1":{"name":"comment-json","version":"4.0.1","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc test/ts/test-ts.ts && node test/ts/test-ts.js","test:node":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.5.0","ava":"^3.12.1","codecov":"^3.7.2","eslint":"^7.8.0","eslint-plugin-import":"^2.22.0","nyc":"^15.1.0","test-fixture":"^2.4.1","typescript":"^4.0.2"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","has-own-prop":"^2.0.0","repeat-string":"^1.6.1"},"gitHead":"7bdafc9a70969555e62701529e94b35bf25b7379","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@4.0.1","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"shasum":"29169c5505c452ef1031e22b5a0290c69c688bd3","size":12961,"noattachment":false,"key":"/comment-json/-/comment-json-4.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-4.0.1.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_4.0.1_1598943654737_0.06282597894559272"},"_hasShrinkwrap":false,"publish_time":1598943654979,"_cnpm_publish_time":1598943654979},"4.0.0":{"name":"comment-json","version":"4.0.0","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc test/ts/test-ts.ts && node test/ts/test-ts.js","test:node":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.5.0","ava":"^3.12.1","codecov":"^3.7.2","eslint":"^7.8.0","eslint-plugin-import":"^2.22.0","nyc":"^15.1.0","test-fixture":"^2.4.1","typescript":"^4.0.2"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","has-own-prop":"^2.0.0","repeat-string":"^1.6.1"},"gitHead":"2abcad39276eddf6c9bc00b2cd4ec60bc9a3c9b3","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@4.0.0","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"shasum":"263d02dd1614f013200907ebcc06484f4044655f","size":12692,"noattachment":false,"key":"/comment-json/-/comment-json-4.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-4.0.0.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_4.0.0_1598940813864_0.8447961123569512"},"_hasShrinkwrap":false,"publish_time":1598940814021,"_cnpm_publish_time":1598940814021},"3.0.3":{"name":"comment-json","version":"3.0.3","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc test/ts/test-ts.ts && node test/ts/test-ts.js","test:node":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.5.0","ava":"^3.8.2","codecov":"^3.7.0","eslint":"^7.1.0","eslint-plugin-import":"^2.20.2","nyc":"^15.0.1","test-fixture":"^2.4.1","typescript":"^3.9.3"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","has-own-prop":"^2.0.0","repeat-string":"^1.6.1"},"gitHead":"265f965a4be71fee7a9607cd693548f274015ff2","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@3.0.3","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"shasum":"0cadacd6278602b57b8c51b1814dc5d311d228c4","size":12456,"noattachment":false,"key":"/comment-json/-/comment-json-3.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-3.0.3.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_3.0.3_1597130156116_0.5427250865498707"},"_hasShrinkwrap":false,"publish_time":1597130156241,"_cnpm_publish_time":1597130156241},"3.0.2":{"name":"comment-json","version":"3.0.2","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc test/ts/test-ts.ts && node test/ts/test-ts.js","test:node":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"babel":false,"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.5.0","ava":"^2.4.0","codecov":"^3.6.1","eslint":"^6.6.0","eslint-plugin-import":"^2.18.2","nyc":"^14.1.1","test-fixture":"^2.4.1","typescript":"^3.7.4"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","has-own-prop":"^2.0.0","repeat-string":"^1.6.1"},"gitHead":"58a0d613650921ed8801b17c9f191ff3ce141e6c","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@3.0.2","_nodeVersion":"12.9.1","_npmVersion":"6.10.2","dist":{"shasum":"a5652a491910e338080bcbf98fc9a37cbd7f3733","size":12428,"noattachment":false,"key":"/comment-json/-/comment-json-3.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-3.0.2.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_3.0.2_1581485292056_0.4372166398323729"},"_hasShrinkwrap":false,"publish_time":1581485292265,"_cnpm_publish_time":1581485292265},"3.0.1":{"name":"comment-json","version":"3.0.1","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc test/ts/test-ts.ts && node test/ts/test-ts.js","test:node":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"babel":false,"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.5.0","ava":"^2.4.0","codecov":"^3.6.1","eslint":"^6.6.0","eslint-plugin-import":"^2.18.2","nyc":"^14.1.1","test-fixture":"^2.4.1","typescript":"^3.7.4"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","has-own-prop":"^2.0.0","repeat-string":"^1.6.1"},"gitHead":"3a89122f2eed5ed8f0776c14208c063ae7cf8513","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@3.0.1","_nodeVersion":"12.9.1","_npmVersion":"6.10.2","dist":{"shasum":"9e3000fcb008502756c9da32212fe922797b6d6d","size":12398,"noattachment":false,"key":"/comment-json/-/comment-json-3.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-3.0.1.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_3.0.1_1581485242916_0.3912310760581066"},"_hasShrinkwrap":false,"publish_time":1581485243010,"_cnpm_publish_time":1581485243010},"3.0.0":{"name":"comment-json","version":"3.0.0","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc test/ts/test-ts.ts && node test/ts/test-ts.js","test:node":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"babel":false,"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.5.0","ava":"^2.4.0","codecov":"^3.6.1","eslint":"^6.6.0","eslint-plugin-import":"^2.18.2","nyc":"^14.1.1","test-fixture":"^2.4.1","typescript":"^3.7.4"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","has-own-prop":"^2.0.0","repeat-string":"^1.6.1"},"gitHead":"d6bef5bc304f9ced59bdfdd37625c1df1ed70830","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@3.0.0","_nodeVersion":"12.9.1","_npmVersion":"6.10.2","dist":{"shasum":"84e917b892ab5d8e4dd655299bc46937e876987e","size":12296,"noattachment":false,"key":"/comment-json/-/comment-json-3.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-3.0.0.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_3.0.0_1581484147057_0.5146046457560998"},"_hasShrinkwrap":false,"publish_time":1581484147225,"_cnpm_publish_time":1581484147225},"2.4.2":{"name":"comment-json","version":"2.4.2","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc test/ts/test-ts.ts && node test/ts/test-ts.js","test:node":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"babel":false,"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.5.0","ava":"^2.4.0","codecov":"^3.6.1","eslint":"^6.6.0","eslint-plugin-import":"^2.18.2","nyc":"^14.1.1","test-fixture":"^2.4.1","typescript":"^3.7.4"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","has-own-prop":"^2.0.0","repeat-string":"^1.6.1"},"gitHead":"8e2c5ded11f6572d63dff8ea059fc4e611b398e4","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@2.4.2","_nodeVersion":"12.9.1","_npmVersion":"6.10.2","dist":{"shasum":"2111c065864338ad8d98ae01eecde9e02cd2f549","size":11931,"noattachment":false,"key":"/comment-json/-/comment-json-2.4.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-2.4.2.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_2.4.2_1581391832354_0.4513654262511664"},"_hasShrinkwrap":false,"publish_time":1581391832481,"_cnpm_publish_time":1581391832481},"2.4.1":{"name":"comment-json","version":"2.4.1","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc test/ts/test-ts.ts && node test/ts/test-ts.js","test:node":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"babel":false,"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.5.0","ava":"^2.4.0","codecov":"^3.6.1","eslint":"^6.6.0","eslint-plugin-import":"^2.18.2","nyc":"^14.1.1","test-fixture":"^2.4.1","typescript":"^3.7.4"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","has-own-prop":"^2.0.0","repeat-string":"^1.6.1"},"gitHead":"aa756c7656180821c6d35b6f70b1fa6d2cd39fa8","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@2.4.1","_nodeVersion":"12.9.1","_npmVersion":"6.10.2","dist":{"shasum":"2b4223550dc2ec66d147fa43070a77228c86ff33","size":11922,"noattachment":false,"key":"/comment-json/-/comment-json-2.4.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-2.4.1.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_2.4.1_1578584609762_0.6808381278457245"},"_hasShrinkwrap":false,"publish_time":1578584609970,"_cnpm_publish_time":1578584609970},"2.4.0":{"name":"comment-json","version":"2.4.0","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"npm run test:only","test:only":"npm run test:ts && npm run test:node","test:ts":"tsc test/ts/test-ts.ts && node test/ts/test-ts.js","test:node":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"npm run test:only && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"babel":false,"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.5.0","ava":"^2.4.0","codecov":"^3.6.1","eslint":"^6.6.0","eslint-plugin-import":"^2.18.2","nyc":"^14.1.1","test-fixture":"^2.4.1","typescript":"^3.7.4"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","has-own-prop":"^2.0.0","repeat-string":"^1.6.1"},"gitHead":"c35cf858cb11051021b865783d8fe1545c92c1a3","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@2.4.0","_nodeVersion":"12.9.1","_npmVersion":"6.10.2","dist":{"shasum":"a6cd8f2e07826ce04907dd5881b8271c045d269f","size":11920,"noattachment":false,"key":"/comment-json/-/comment-json-2.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-2.4.0.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"_npmUser":{"name":"kael","email":"i@kael.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_2.4.0_1578584527166_0.6927481765524728"},"_hasShrinkwrap":false,"publish_time":1578584527329,"_cnpm_publish_time":1578584527329},"2.3.1":{"name":"comment-json","version":"2.3.1","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"babel":false,"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.5.0","ava":"^2.4.0","codecov":"^3.6.1","eslint":"^6.6.0","eslint-plugin-import":"^2.18.2","nyc":"^14.1.1","test-fixture":"^2.4.1"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","has-own-prop":"^2.0.0","repeat-string":"^1.6.1"},"gitHead":"b97714e3e1ccf13d51038a0e61a5d357dd08c21e","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@2.3.1","_nodeVersion":"12.12.0","_npmVersion":"6.11.3","_npmUser":{"name":"kael","email":"i@kael.me"},"dist":{"shasum":"40f24f573ffece9b9a87806244c330d614a32604","size":11030,"noattachment":false,"key":"/comment-json/-/comment-json-2.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-2.3.1.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_2.3.1_1576330068813_0.4342817712315836"},"_hasShrinkwrap":false,"publish_time":1576330068933,"_cnpm_publish_time":1576330068933},"2.3.0":{"name":"comment-json","version":"2.3.0","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"babel":false,"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.2.0","ava":"^2.1.0","codecov":"^3.5.0","eslint":"^5.16.0","eslint-plugin-import":"^2.17.3","nyc":"^14.1.1","test-fixture":"^2.4.0"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","has-own-prop":"^2.0.0","repeat-string":"^1.6.1"},"gitHead":"81c929d15026974732114701f5b2b5d0fad00789","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@2.3.0","_nodeVersion":"12.12.0","_npmVersion":"6.11.3","_npmUser":{"name":"kael","email":"i@kael.me"},"dist":{"shasum":"f693e29577e007a7dfa90acfe9cab516c60035de","size":10953,"noattachment":false,"key":"/comment-json/-/comment-json-2.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-2.3.0.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_2.3.0_1576329559991_0.5351554336411695"},"_hasShrinkwrap":false,"publish_time":1576329560121,"_cnpm_publish_time":1576329560121},"2.2.0":{"name":"comment-json","version":"2.2.0","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"babel":false,"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.2.0","ava":"^2.1.0","codecov":"^3.5.0","eslint":"^5.16.0","eslint-plugin-import":"^2.17.3","nyc":"^14.1.1","test-fixture":"^2.4.0"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","has-own-prop":"^2.0.0","repeat-string":"^1.6.1"},"gitHead":"164772463353d1e2491939e4d039fc49bd44e0f7","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@2.2.0","_nodeVersion":"12.8.0","_npmVersion":"6.10.2","_npmUser":{"name":"kael","email":"i@kael.me"},"dist":{"shasum":"ab3013f95ec141ae8ae0af62847690aebf02dad4","size":10837,"noattachment":false,"key":"/comment-json/-/comment-json-2.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-2.2.0.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_2.2.0_1569240913824_0.8426527293328583"},"_hasShrinkwrap":false,"publish_time":1569240913983,"_cnpm_publish_time":1569240913983},"2.1.0":{"name":"comment-json","version":"2.1.0","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"babel":false,"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.2.0","ava":"^2.1.0","codecov":"^3.5.0","eslint":"^5.16.0","eslint-plugin-import":"^2.17.3","nyc":"^14.1.1","test-fixture":"^2.4.0"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","has-own-prop":"^2.0.0","repeat-string":"^1.6.1"},"gitHead":"12c5c98edb1f79b47bdb84629aee973b873da6df","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@2.1.0","_nodeVersion":"12.3.1","_npmVersion":"6.9.0","_npmUser":{"name":"kael","email":"i@kael.me"},"dist":{"shasum":"ed8c23d591652eb5229f693c177077f1377059a9","size":10758,"noattachment":false,"key":"/comment-json/-/comment-json-2.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-2.1.0.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_2.1.0_1561382018327_0.9164435465009935"},"_hasShrinkwrap":false,"publish_time":1561382018432,"_cnpm_publish_time":1561382018432},"2.0.9":{"name":"comment-json","version":"2.0.9","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"babel":false,"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.2.0","ava":"^2.1.0","codecov":"^3.5.0","eslint":"^5.16.0","eslint-plugin-import":"^2.17.3","nyc":"^14.1.1","test-fixture":"^2.4.0"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","repeat-string":"^1.6.1"},"gitHead":"41766cb36a89b8c6eac421119c3c492be1171111","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@2.0.9","_nodeVersion":"12.3.1","_npmVersion":"6.9.0","_npmUser":{"name":"kael","email":"i@kael.me"},"dist":{"shasum":"b2f46cd9268d1a821ad5688d5db1f51ffaf094f3","size":8572,"noattachment":false,"key":"/comment-json/-/comment-json-2.0.9.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-2.0.9.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_2.0.9_1561113083520_0.9269629516352778"},"_hasShrinkwrap":false,"publish_time":1561113083706,"_cnpm_publish_time":1561113083706},"2.0.8":{"name":"comment-json","version":"2.0.8","description":"Parse and stringify JSON with comments. It will retain comments even after saved!","main":"src/index.js","scripts":{"test":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"babel":false,"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.2.0","ava":"^2.1.0","codecov":"^3.5.0","eslint":"^5.16.0","eslint-plugin-import":"^2.17.3","nyc":"^14.1.1","test-fixture":"^2.4.0"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","repeat-string":"^1.6.1"},"gitHead":"c61b8392f96814bf4321cc8404b98e1c2c3f4291","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@2.0.8","_nodeVersion":"12.3.1","_npmVersion":"6.9.0","_npmUser":{"name":"kael","email":"i@kael.me"},"dist":{"shasum":"e1f4163317c5113060385432024207c2fb3ae692","size":8526,"noattachment":false,"key":"/comment-json/-/comment-json-2.0.8.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-2.0.8.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_2.0.8_1561112424651_0.4403709355007297"},"_hasShrinkwrap":false,"publish_time":1561112424790,"_cnpm_publish_time":1561112424790},"2.0.7":{"name":"comment-json","version":"2.0.7","description":"Parse and stringify JSON with comments. It will retain comments even when after saved!","main":"src/index.js","scripts":{"test":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"babel":false,"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.2.0","ava":"^2.1.0","codecov":"^3.5.0","eslint":"^5.16.0","eslint-plugin-import":"^2.17.3","nyc":"^14.1.1","test-fixture":"^2.4.0"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","repeat-string":"^1.6.1"},"gitHead":"5c7dcf72574e666136586e8be22a45837d90ad60","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@2.0.7","_nodeVersion":"12.3.1","_npmVersion":"6.9.0","_npmUser":{"name":"kael","email":"i@kael.me"},"dist":{"shasum":"98bc5095b53cc0f2057ea60304f84831348c0199","size":8538,"noattachment":false,"key":"/comment-json/-/comment-json-2.0.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-2.0.7.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_2.0.7_1561112204666_0.38322375763708716"},"_hasShrinkwrap":false,"publish_time":1561112204859,"_cnpm_publish_time":1561112204859},"2.0.6":{"name":"comment-json","version":"2.0.6","description":"Parse and stringify JSON with comments. It will retain comments even when after saved!","main":"src/index.js","scripts":{"test":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"babel":false,"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.2.0","ava":"^2.1.0","codecov":"^3.5.0","eslint":"^5.16.0","eslint-plugin-import":"^2.17.3","nyc":"^14.1.1","test-fixture":"^2.4.0"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","repeat-string":"^1.6.1"},"gitHead":"52716dc1ec21489a9a7b98523c0a83091a1aed6e","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@2.0.6","_nodeVersion":"12.3.1","_npmVersion":"6.9.0","_npmUser":{"name":"kael","email":"i@kael.me"},"dist":{"shasum":"f4f12b3b875e96514f88cb2d76533de995c7f2fb","size":8126,"noattachment":false,"key":"/comment-json/-/comment-json-2.0.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-2.0.6.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_2.0.6_1561110924842_0.8415230223274455"},"_hasShrinkwrap":false,"publish_time":1561110924950,"_cnpm_publish_time":1561110924950},"2.0.5":{"name":"comment-json","version":"2.0.5","description":"Parse and stringify JSON with comments. It will retain comments even when after saved!","main":"src/index.js","scripts":{"test":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"babel":false,"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.2.0","ava":"^2.1.0","codecov":"^3.5.0","eslint":"^5.16.0","eslint-plugin-import":"^2.17.3","nyc":"^14.1.1","test-fixture":"^2.4.0"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","repeat-string":"^1.6.1"},"gitHead":"3e0cc176fe567fe2239736f1b3708e456e1d1940","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@2.0.5","_nodeVersion":"12.3.1","_npmVersion":"6.9.0","_npmUser":{"name":"kael","email":"i@kael.me"},"dist":{"shasum":"061961b83773f19430cd90473ff15658da5e7b4d","size":8126,"noattachment":false,"key":"/comment-json/-/comment-json-2.0.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-2.0.5.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_2.0.5_1561110871678_0.8954580352306101"},"_hasShrinkwrap":false,"publish_time":1561110871823,"_cnpm_publish_time":1561110871823},"2.0.4":{"name":"comment-json","version":"2.0.4","description":"Parse and stringify JSON with comments. It will retain comments even when after saved!","main":"src/index.js","scripts":{"test":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"babel":false,"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.2.0","ava":"^2.1.0","codecov":"^3.5.0","eslint":"^5.16.0","eslint-plugin-import":"^2.17.3","nyc":"^14.1.1"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","repeat-string":"^1.6.1","test-fixture":"^2.4.0"},"gitHead":"3a3532e6baebe984609f281662a360f99cc29316","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@2.0.4","_nodeVersion":"12.3.1","_npmVersion":"6.9.0","_npmUser":{"name":"kael","email":"i@kael.me"},"dist":{"shasum":"75e592ac31297cb67942ba11f399552eff6fd59c","size":8126,"noattachment":false,"key":"/comment-json/-/comment-json-2.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-2.0.4.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_2.0.4_1561110094839_0.6191161549533548"},"_hasShrinkwrap":false,"publish_time":1561110095014,"_cnpm_publish_time":1561110095014},"2.0.3":{"name":"comment-json","version":"2.0.3","description":"Parse and stringify JSON with comments. It will retain comments even when after saved!","main":"src/index.js","scripts":{"test":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"babel":false,"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.2.0","ava":"^2.1.0","codecov":"^3.5.0","eslint":"^5.16.0","eslint-plugin-import":"^2.17.3","nyc":"^14.1.1"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","json-parser":"^2.1.2","repeat-string":"^1.6.1","test-fixture":"^2.4.0"},"gitHead":"e4cee2d2b83d2963b26b1be3e6f1d320af66e11f","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@2.0.3","_nodeVersion":"12.3.1","_npmVersion":"6.9.0","_npmUser":{"name":"kael","email":"i@kael.me"},"dist":{"shasum":"3792184d55a6ad9fef15ac6b414a2d732f8eb315","size":8131,"noattachment":false,"key":"/comment-json/-/comment-json-2.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-2.0.3.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_2.0.3_1561108024683_0.9741441120319145"},"_hasShrinkwrap":false,"publish_time":1561108024811,"_cnpm_publish_time":1561108024811},"2.0.2":{"name":"comment-json","version":"2.0.2","description":"Parse and stringify JSON with comments. It will retain comments even when after saved!","main":"src/index.js","scripts":{"test":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"babel":false,"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.2.0","ava":"^2.1.0","codecov":"^3.5.0","eslint":"^5.16.0","eslint-plugin-import":"^2.17.3","nyc":"^14.1.1"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","json-parser":"^2.1.2","repeat-string":"^1.6.1","test-fixture":"^2.4.0"},"gitHead":"895c738b208bd24a3e688204678153863bef0b15","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@2.0.2","_nodeVersion":"12.3.1","_npmVersion":"6.9.0","_npmUser":{"name":"kael","email":"i@kael.me"},"dist":{"shasum":"5e081b661bca5e25ab6098f416da6f322cfb9b25","size":8120,"noattachment":false,"key":"/comment-json/-/comment-json-2.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-2.0.2.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_2.0.2_1561107565227_0.6496191753635063"},"_hasShrinkwrap":false,"publish_time":1561107565346,"_cnpm_publish_time":1561107565346},"2.0.1":{"name":"comment-json","version":"2.0.1","description":"Parse and stringify JSON with comments. It will retain comments even when after saved!","main":"src/index.js","scripts":{"test":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"babel":false,"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.2.0","ava":"^2.1.0","codecov":"^3.5.0","eslint":"^5.16.0","eslint-plugin-import":"^2.17.3","nyc":"^14.1.1"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","json-parser":"^2.1.2","repeat-string":"^1.6.1","test-fixture":"^2.4.0"},"gitHead":"7558c404cc534360005c1a29d722254b4aa2de57","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@2.0.1","_nodeVersion":"12.3.1","_npmVersion":"6.9.0","_npmUser":{"name":"kael","email":"i@kael.me"},"dist":{"shasum":"700f8bb568623429aea8707ea9fa1f1f71edfc1a","size":8112,"noattachment":false,"key":"/comment-json/-/comment-json-2.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-2.0.1.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_2.0.1_1561107470620_0.5103519663069565"},"_hasShrinkwrap":false,"publish_time":1561107470921,"_cnpm_publish_time":1561107470921},"2.0.0":{"name":"comment-json","version":"2.0.0","description":"Parse and stringify JSON with comments. It will retain comments even when after saved!","main":"src/index.js","scripts":{"test":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose","test:dev":"NODE_DEBUG=comment-json nyc ava --timeout=10s --verbose && npm run report:dev","lint":"eslint .","fix":"eslint . --fix","posttest":"npm run report","report":"nyc report --reporter=text-lcov > coverage.lcov && codecov","report:dev":"nyc report --reporter=html && npm run report:open","report:open":"open coverage/index.html"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser","comments-json","json-comments"],"engines":{"node":">= 6"},"ava":{"babel":false,"files":["test/*.test.js"]},"author":{"name":"kaelzhang"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"@ostai/eslint-config":"^3.2.0","ava":"^2.1.0","codecov":"^3.5.0","eslint":"^5.16.0","eslint-plugin-import":"^2.17.3","nyc":"^14.1.1"},"dependencies":{"core-util-is":"^1.0.2","esprima":"^4.0.1","json-parser":"^2.1.2","repeat-string":"^1.6.1","test-fixture":"^2.4.0"},"gitHead":"5357c8dedc1a28ee9259318b580faa1061a04fb5","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@2.0.0","_nodeVersion":"12.3.1","_npmVersion":"6.9.0","_npmUser":{"name":"kael","email":"i@kael.me"},"dist":{"shasum":"4f7988cd110ad0a672c17c18680ab957c8007cef","size":8101,"noattachment":false,"key":"/comment-json/-/comment-json-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-2.0.0.tgz"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/comment-json_2.0.0_1561107318125_0.6115038036674549"},"_hasShrinkwrap":false,"publish_time":1561107318247,"_cnpm_publish_time":1561107318247},"1.1.3":{"name":"comment-json","version":"1.1.3","description":"Parse and stringify JSON file with comments","main":"index.js","scripts":{"test":"mocha --reporter spec ./test/*.js"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser"],"engines":{"node":">=0.10.0"},"author":{"name":"kael"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"chai":"*","mocha":"*","test-fixture":"^1.0.2"},"dependencies":{"json-parser":"^1.0.0"},"gitHead":"d5bb6c90374034d750d507fe59985dd9c9b50daf","homepage":"https://github.com/kaelzhang/node-comment-json","_id":"comment-json@1.1.3","_shasum":"6986c3330fee0c4c9e00c2398cd61afa5d8f239e","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.1","_npmUser":{"name":"kael","email":"i@kael.me"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"dist":{"shasum":"6986c3330fee0c4c9e00c2398cd61afa5d8f239e","size":8150,"noattachment":false,"key":"/comment-json/-/comment-json-1.1.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-1.1.3.tgz"},"directories":{},"publish_time":1444544318084,"_cnpm_publish_time":1444544318084,"_hasShrinkwrap":false},"1.1.2":{"name":"comment-json","version":"1.1.2","description":"Parse and stringify JSON file with comments","main":"index.js","scripts":{"test":"mocha --reporter spec ./test/*.js"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser"],"engines":{"node":">=0.10.0"},"author":{"name":"kael"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"chai":"*","mocha":"*","test-fixture":"^1.0.2"},"dependencies":{"json-parser":"^1.0.0"},"gitHead":"29783c3c64669e9362f71a590db4dd510eb85f9f","homepage":"https://github.com/kaelzhang/node-comment-json","_id":"comment-json@1.1.2","_shasum":"b30a7877f83bfc6c1298c0adfb80560b56b0f6a0","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.1","_npmUser":{"name":"kael","email":"i@kael.me"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"dist":{"shasum":"b30a7877f83bfc6c1298c0adfb80560b56b0f6a0","size":8112,"noattachment":false,"key":"/comment-json/-/comment-json-1.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-1.1.2.tgz"},"directories":{},"publish_time":1444544117881,"_cnpm_publish_time":1444544117881,"_hasShrinkwrap":false},"1.1.1":{"name":"comment-json","version":"1.1.1","description":"Parse and stringify JSON file with comments","main":"index.js","scripts":{"test":"mocha --reporter spec ./test/*.js"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser"],"engines":{"node":">=0.10.0"},"author":{"name":"kael"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"chai":"*","mocha":"*","test-fixture":"^1.0.2"},"dependencies":{"json-parser":"^1.0.0"},"gitHead":"c6863f4d260404c4762836c4933693d8149a5e17","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@1.1.1","_shasum":"402f645a38afc5fd7f0e24c847ec05d6ed3f5f25","_from":".","_npmVersion":"3.3.3","_nodeVersion":"0.12.1","_npmUser":{"name":"kael","email":"i@kael.me"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"dist":{"shasum":"402f645a38afc5fd7f0e24c847ec05d6ed3f5f25","size":8105,"noattachment":false,"key":"/comment-json/-/comment-json-1.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-1.1.1.tgz"},"directories":{},"publish_time":1443340144522,"_cnpm_publish_time":1443340144522,"_hasShrinkwrap":false},"1.1.0":{"name":"comment-json","version":"1.1.0","description":"Parse and stringify JSON file with comments","main":"index.js","scripts":{"test":"mocha --reporter spec ./test/*.js"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser"],"engines":{"node":">=0.10.0"},"author":{"name":"kael"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"chai":"*","mocha":"*","test-fixture":"^1.0.2"},"dependencies":{"json-parser":"^1.0.0"},"gitHead":"b18de9de3d25bea549c42ffc552a1ade17525fa2","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@1.1.0","_shasum":"56fe252825825a7076e19600407c0f1fe05cb053","_from":".","_npmVersion":"3.3.3","_nodeVersion":"0.12.1","_npmUser":{"name":"kael","email":"i@kael.me"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"dist":{"shasum":"56fe252825825a7076e19600407c0f1fe05cb053","size":8077,"noattachment":false,"key":"/comment-json/-/comment-json-1.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-1.1.0.tgz"},"directories":{},"publish_time":1443340044197,"_cnpm_publish_time":1443340044197,"_hasShrinkwrap":false},"1.0.2":{"name":"comment-json","version":"1.0.2","description":"Parse and stringify JSON file with comments","main":"index.js","scripts":{"test":"mocha --reporter spec ./test/*.js"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser"],"engines":{"node":">=0.10.0"},"author":{"name":"kael"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"chai":"*","mocha":"*","test-fixture":"^1.0.2"},"dependencies":{"json-parser":"^1.0.0"},"gitHead":"df1aec0a5d8c8380f22ef1febd66eb08eac7886a","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@1.0.2","_shasum":"5c96370b55a0f3709d107197d073f4a74c1e3307","_from":".","_npmVersion":"3.3.3","_nodeVersion":"0.12.1","_npmUser":{"name":"kael","email":"i@kael.me"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"dist":{"shasum":"5c96370b55a0f3709d107197d073f4a74c1e3307","size":7986,"noattachment":false,"key":"/comment-json/-/comment-json-1.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-1.0.2.tgz"},"directories":{},"publish_time":1443059276074,"_cnpm_publish_time":1443059276074,"_hasShrinkwrap":false},"1.0.1":{"name":"comment-json","version":"1.0.1","description":"Parse and stringify JSON file with comments","main":"index.js","scripts":{"test":"mocha --reporter spec ./test/*.js"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser"],"engines":{"node":">=0.10.0"},"author":{"name":"kael"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"chai":"*","mocha":"*","test-fixture":"^1.0.2"},"dependencies":{"json-parser":"^1.0.0"},"gitHead":"1ec419b1ae649eeefff165d1e3056400299793fe","homepage":"https://github.com/kaelzhang/node-comment-json#readme","_id":"comment-json@1.0.1","_shasum":"6b69e15196e28f19a5b30d76f898bbc98270e0ca","_from":".","_npmVersion":"3.3.0","_nodeVersion":"0.12.1","_npmUser":{"name":"kael","email":"i@kael.me"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"dist":{"shasum":"6b69e15196e28f19a5b30d76f898bbc98270e0ca","size":7982,"noattachment":false,"key":"/comment-json/-/comment-json-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-1.0.1.tgz"},"directories":{},"publish_time":1441969327700,"_cnpm_publish_time":1441969327700,"_hasShrinkwrap":false},"1.0.0":{"name":"comment-json","version":"1.0.0","description":"Parse and stringify JSON file with comments","main":"index.js","scripts":{"test":"mocha --reporter spec ./test/*.js"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","annotations","json","json-stringify","json-parse","parser"],"engines":{"node":">=0.10.0"},"author":{"name":"kael"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"chai":"*","mocha":"*","test-fixture":"^1.0.2"},"dependencies":{"json-parser":"^1.0.0"},"gitHead":"1946a9a67fc88ea294eedce82a7b5259950b5628","homepage":"https://github.com/kaelzhang/node-comment-json","_id":"comment-json@1.0.0","_shasum":"9ba23aeaf247859adf43e16a2bf2cf998efbfcfd","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.1","_npmUser":{"name":"kael","email":"i@kael.me"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"dist":{"shasum":"9ba23aeaf247859adf43e16a2bf2cf998efbfcfd","size":7977,"noattachment":false,"key":"/comment-json/-/comment-json-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-1.0.0.tgz"},"directories":{},"publish_time":1437638244781,"_cnpm_publish_time":1437638244781,"_hasShrinkwrap":false},"0.1.11":{"name":"comment-json","version":"0.1.11","description":"Parse and stringify JSON file with comments","main":"index.js","scripts":{"test":"mocha --reporter spec ./test/*.js"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","json","json-stringify","json-parse","parser"],"engines":{"node":">=0.10.0"},"author":{"name":"kael"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"chai":"*","mocha":"*","test-fixture":"^1.0.2"},"dependencies":{"json-parser":"^0.2.0"},"homepage":"https://github.com/kaelzhang/node-comment-json","_id":"comment-json@0.1.11","_shasum":"a68000c011a0bfa24d51ff1182627ae5ccd044f2","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"kael","email":"i@kael.me"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"dist":{"shasum":"a68000c011a0bfa24d51ff1182627ae5ccd044f2","size":7789,"noattachment":false,"key":"/comment-json/-/comment-json-0.1.11.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-0.1.11.tgz"},"directories":{},"publish_time":1408551467157,"_cnpm_publish_time":1408551467157,"_hasShrinkwrap":false},"0.1.10":{"name":"comment-json","version":"0.1.10","description":"Parse and stringify JSON file with comments","main":"index.js","scripts":{"test":"mocha --reporter spec ./test/*.js"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","json","json-stringify","json-parse","parser"],"engines":{"node":">=0.10.0"},"author":{"name":"kael"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"chai":"*","mocha":"*","test-fixture":"^1.0.2"},"dependencies":{"json-parser":"^0.2.0"},"homepage":"https://github.com/kaelzhang/node-comment-json","_id":"comment-json@0.1.10","_shasum":"5dc6c10df518f2f41037feddcdb73f342225967d","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"kael","email":"i@kael.me"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"dist":{"shasum":"5dc6c10df518f2f41037feddcdb73f342225967d","size":7780,"noattachment":false,"key":"/comment-json/-/comment-json-0.1.10.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-0.1.10.tgz"},"directories":{},"publish_time":1408551238324,"_cnpm_publish_time":1408551238324,"_hasShrinkwrap":false},"0.1.9":{"name":"comment-json","version":"0.1.9","description":"Parse and stringify JSON file with comments","main":"index.js","scripts":{"test":"mocha --reporter spec ./test/*.js"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","json","json-stringify","json-parse","parser"],"engines":{"node":">=0.10.0"},"author":{"name":"kael"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"chai":"*","mocha":"*","test-fixture":"^1.0.2"},"dependencies":{"json-parser":"^0.2.0"},"homepage":"https://github.com/kaelzhang/node-comment-json","_id":"comment-json@0.1.9","_shasum":"5a66241876a0a8761ad309e8052bb7445d038352","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"kael","email":"i@kael.me"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"dist":{"shasum":"5a66241876a0a8761ad309e8052bb7445d038352","size":6823,"noattachment":false,"key":"/comment-json/-/comment-json-0.1.9.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-0.1.9.tgz"},"directories":{},"publish_time":1408533013272,"_cnpm_publish_time":1408533013272,"_hasShrinkwrap":false},"0.1.8":{"name":"comment-json","version":"0.1.8","description":"Parse and stringify JSON file with comments","main":"index.js","scripts":{"test":"mocha --reporter spec ./test/*.js"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","json","json-stringify","json-parse","parser"],"engines":{"node":">=0.10.0"},"author":{"name":"kael"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"chai":"*","mocha":"*","test-fixture":"^1.0.2"},"dependencies":{"json-parser":"^0.2.0"},"homepage":"https://github.com/kaelzhang/node-comment-json","_id":"comment-json@0.1.8","_shasum":"0d06064d02b68deb13f6e28f2ff271a772edafbc","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"kael","email":"i@kael.me"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"dist":{"shasum":"0d06064d02b68deb13f6e28f2ff271a772edafbc","size":6838,"noattachment":false,"key":"/comment-json/-/comment-json-0.1.8.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-0.1.8.tgz"},"directories":{},"publish_time":1408531413246,"_cnpm_publish_time":1408531413246,"_hasShrinkwrap":false},"0.1.7":{"name":"comment-json","version":"0.1.7","description":"Parse and stringify JSON file with comments","main":"index.js","scripts":{"test":"mocha --reporter spec ./test/*.js"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","json","json-stringify","json-parse","parser"],"engines":{"node":">=0.10.0"},"author":{"name":"kael"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"chai":"*","mocha":"*","test-fixture":"^1.0.2"},"dependencies":{"json-parser":"^0.2.0"},"homepage":"https://github.com/kaelzhang/node-comment-json","_id":"comment-json@0.1.7","_shasum":"cba395f04af8ec6d0afb7da0fedf6abdfe478af6","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"kael","email":"i@kael.me"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"dist":{"shasum":"cba395f04af8ec6d0afb7da0fedf6abdfe478af6","size":6709,"noattachment":false,"key":"/comment-json/-/comment-json-0.1.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-0.1.7.tgz"},"directories":{},"publish_time":1408497360944,"_cnpm_publish_time":1408497360944,"_hasShrinkwrap":false},"0.1.6":{"name":"comment-json","version":"0.1.6","description":"Parse and stringify JSON file with comments","main":"index.js","scripts":{"test":"mocha --reporter spec ./test/*.js"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","json","json-stringify","json-parse","parser"],"engines":{"node":">=0.10.0"},"author":{"name":"kael"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"chai":"*","mocha":"*","test-fixture":"^1.0.2"},"dependencies":{"json-parser":"^0.2.0"},"homepage":"https://github.com/kaelzhang/node-comment-json","_id":"comment-json@0.1.6","_shasum":"95feda5204e8cbbd04ce09791c56f4ee6e4c0a36","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"kael","email":"i@kael.me"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"dist":{"shasum":"95feda5204e8cbbd04ce09791c56f4ee6e4c0a36","size":6694,"noattachment":false,"key":"/comment-json/-/comment-json-0.1.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-0.1.6.tgz"},"directories":{},"publish_time":1408473631442,"_cnpm_publish_time":1408473631442,"_hasShrinkwrap":false},"0.1.5":{"name":"comment-json","version":"0.1.5","description":"Parse and stringify JSON file with domments","main":"index.js","scripts":{"test":"mocha --reporter spec ./test/*.js"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","json","json-stringify","json-parse","parser"],"engines":{"node":">=0.10.0"},"author":{"name":"kael"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"chai":"*","mocha":"*","test-fixture":"^1.0.2"},"dependencies":{"json-parser":"^0.2.0"},"homepage":"https://github.com/kaelzhang/node-comment-json","_id":"comment-json@0.1.5","_shasum":"595ecbe2cb3f6c82466561bc8015b91ba6ee024c","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"kael","email":"i@kael.me"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"dist":{"shasum":"595ecbe2cb3f6c82466561bc8015b91ba6ee024c","size":6697,"noattachment":false,"key":"/comment-json/-/comment-json-0.1.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-0.1.5.tgz"},"directories":{},"publish_time":1408473309083,"_cnpm_publish_time":1408473309083,"_hasShrinkwrap":false},"0.1.4":{"name":"comment-json","version":"0.1.4","description":"Parse and stringify JSON file with domments","main":"index.js","scripts":{"test":"mocha --reporter spec ./test/*.js"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","json","json-stringify","json-parse","parser"],"engines":{"node":">=0.10.0"},"author":{"name":"kael"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"chai":"*","mocha":"*","test-fixture":"^1.0.2"},"dependencies":{"json-parser":"^0.2.0"},"homepage":"https://github.com/kaelzhang/node-comment-json","_id":"comment-json@0.1.4","_shasum":"d3d073466701910929bc95886572ccaf5072a30a","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"kael","email":"i@kael.me"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"dist":{"shasum":"d3d073466701910929bc95886572ccaf5072a30a","size":6696,"noattachment":false,"key":"/comment-json/-/comment-json-0.1.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-0.1.4.tgz"},"directories":{},"publish_time":1408473186135,"_cnpm_publish_time":1408473186135,"_hasShrinkwrap":false},"0.1.3":{"name":"comment-json","version":"0.1.3","description":"Parse and stringify JSON file with domments","main":"index.js","scripts":{"test":"mocha --reporter spec ./test/*.js"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","json","json-stringify","json-parse","parser"],"engines":{"node":">=0.10.0"},"author":{"name":"kael"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"chai":"*","mocha":"*","test-fixture":"^1.0.2"},"dependencies":{"json-parser":"^0.2.0"},"homepage":"https://github.com/kaelzhang/node-comment-json","_id":"comment-json@0.1.3","_shasum":"992795d2aa8c3381406b1f581fea5107e9cfd5f3","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"kael","email":"i@kael.me"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"dist":{"shasum":"992795d2aa8c3381406b1f581fea5107e9cfd5f3","size":6691,"noattachment":false,"key":"/comment-json/-/comment-json-0.1.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-0.1.3.tgz"},"directories":{},"publish_time":1408472909114,"_cnpm_publish_time":1408472909114,"_hasShrinkwrap":false},"0.1.2":{"name":"comment-json","version":"0.1.2","description":"Parse and stringify JSON file with domments","main":"index.js","scripts":{"test":"mocha --reporter spec ./test/*.js"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","json","json-stringify","json-parse","parser"],"engines":{"node":">=0.10.0"},"author":{"name":"kael"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"chai":"*","mocha":"*","test-fixture":"^1.0.2"},"dependencies":{"json-parser":"^0.2.0"},"homepage":"https://github.com/kaelzhang/node-comment-json","_id":"comment-json@0.1.2","_shasum":"60049194aa777812f74005edecb9b9a9299f34d4","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"kael","email":"i@kael.me"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"dist":{"shasum":"60049194aa777812f74005edecb9b9a9299f34d4","size":6513,"noattachment":false,"key":"/comment-json/-/comment-json-0.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-0.1.2.tgz"},"directories":{},"publish_time":1408472390381,"_cnpm_publish_time":1408472390381,"_hasShrinkwrap":false},"0.1.1":{"name":"comment-json","version":"0.1.1","description":"Parse and stringify JSON file with documments","main":"index.js","scripts":{"test":"mocha --reporter spec ./test/*.js"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","json","json-stringify","json-parse","parser"],"engines":{"node":">=0.10.0"},"author":{"name":"kael"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"mocha":"*","chai":"*"},"homepage":"https://github.com/kaelzhang/node-comment-json","_id":"comment-json@0.1.1","_shasum":"3c690bff873db080381d156199a6014e41a874e0","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"kael","email":"i@kael.me"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"dist":{"shasum":"3c690bff873db080381d156199a6014e41a874e0","size":2163,"noattachment":false,"key":"/comment-json/-/comment-json-0.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-0.1.1.tgz"},"directories":{},"publish_time":1408356761192,"_cnpm_publish_time":1408356761192,"_hasShrinkwrap":false},"0.1.0":{"name":"comment-json","version":"0.1.0","description":"Parse and stringify JSON file with documments","main":"index.js","scripts":{"test":"mocha --reporter spec ./test/*.js"},"repository":{"type":"git","url":"git://github.com/kaelzhang/node-comment-json.git"},"keywords":["comment-json","comments","json","json-stringify","json-parse"],"engines":{"node":">=0.10.0"},"author":{"name":"kael"},"license":"MIT","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"devDependencies":{"mocha":"*","chai":"*"},"homepage":"https://github.com/kaelzhang/node-comment-json","_id":"comment-json@0.1.0","_shasum":"08d1fd0591220d04182a6ffc5ac3b0ef835af89b","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"kael","email":"i@kael.me"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"dist":{"shasum":"08d1fd0591220d04182a6ffc5ac3b0ef835af89b","size":1760,"noattachment":false,"key":"/comment-json/-/comment-json-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/comment-json/download/comment-json-0.1.0.tgz"},"directories":{},"publish_time":1408354127284,"_cnpm_publish_time":1408354127284,"_hasShrinkwrap":false}},"readme":"[![Build Status](https://github.com/kaelzhang/node-comment-json/actions/workflows/nodejs.yml/badge.svg)](https://github.com/kaelzhang/node-comment-json/actions/workflows/nodejs.yml)\n[![Coverage](https://codecov.io/gh/kaelzhang/node-comment-json/branch/master/graph/badge.svg)](https://codecov.io/gh/kaelzhang/node-comment-json)\n[![npm module downloads per month](http://img.shields.io/npm/dm/comment-json.svg)](https://www.npmjs.org/package/comment-json)\n<!-- optional appveyor tst\n[![Windows Build Status](https://ci.appveyor.com/api/projects/status/github/kaelzhang/node-comment-json?branch=master&svg=true)](https://ci.appveyor.com/project/kaelzhang/node-comment-json)\n-->\n<!-- optional npm version\n[![NPM version](https://badge.fury.io/js/comment-json.svg)](http://badge.fury.io/js/comment-json)\n-->\n<!-- optional dependency status\n[![Dependency Status](https://david-dm.org/kaelzhang/node-comment-json.svg)](https://david-dm.org/kaelzhang/node-comment-json)\n-->\n\n# comment-json\n\nParse and stringify JSON with comments. It will retain comments even after saved!\n\n- [Parse](#parse) JSON strings with comments into JavaScript objects and MAINTAIN comments\n  - supports comments everywhere, yes, **EVERYWHERE** in a JSON file, eventually ????\n  - fixes the known issue about comments inside arrays.\n- [Stringify](#stringify) the objects into JSON strings with comments if there are\n\nThe usage of `comment-json` is exactly the same as the vanilla [`JSON`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON) object.\n\n## Table of Contents\n\n- [Why](#why) and [How](#how)\n- [Usage and examples](#usage)\n- API reference\n  - [parse](#parse)\n  - [stringify](#stringify)\n  - [assign](#assigntarget-object-source-object-keys-array)\n  - [moveComments](#movecommentssource-object-target-object-from-object-to-object-override-boolean)\n  - [removeComments](#removecommentstarget-object-location-object)\n  - [CommentArray](#commentarray)\n- [Change Logs](https://github.com/kaelzhang/node-comment-json/releases)\n\n## Why?\n\nThere are many other libraries that can deal with JSON with comments, such as [json5](https://npmjs.org/package/json5), or [strip-json-comments](https://npmjs.org/package/strip-json-comments), but none of them can stringify the parsed object and return back a JSON string the same as the original content.\n\nImagine that if the user settings are saved in `${library}.json`， and the user has written a lot of comments to improve readability. If the library `library` need to modify the user setting, such as modifying some property values and adding new fields, and if the library uses `json5` to read the settings, all comments will disappear after modified which will drive people insane.\n\nSo, **if you want to parse a JSON string with comments, modify it, then save it back**, `comment-json` is your must choice!\n\n## How?\n\n`comment-json` parse JSON strings with comments and save comment tokens into [symbol](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol) properties.\n\nFor JSON array with comments, `comment-json` extends the vanilla `Array` object into [`CommentArray`](#commentarray) whose instances could handle comments changes even after a comment array is modified.\n\n## Install\n\n```sh\n$ npm i comment-json\n```\n\n~~For TypeScript developers, [`@types/comment-json`](https://www.npmjs.com/package/@types/comment-json) could be used~~\n\nSince `2.4.1`, `comment-json` contains typescript declarations, so you might as well remove `@types/comment-json`.\n\n## Usage\n\npackage.json:\n\n```js\n{\n  // package name\n  \"name\": \"comment-json\"\n}\n```\n\n```js\nconst {\n  parse,\n  stringify,\n  assign,\n  moveComments,\n  removeComments\n} = require('comment-json')\nconst fs = require('fs')\n\nconst obj = parse(fs.readFileSync('package.json').toString())\n\nconsole.log(obj.name) // comment-json\n\nstringify(obj, null, 2)\n// Will be the same as package.json, Oh yeah! ????\n// which will be very useful if we use a json file to store configurations.\n```\n\n### Sort keys\n\nIt is a common use case to sort the keys of a JSON file\n\n```js\nconst parsed = parse(`{\n  // b\n  \"b\": 2,\n  // a\n  \"a\": 1\n}`)\n\n// Copy the properties including comments from `parsed` to the new object `{}`\n// according to the sequence of the given keys\nconst sorted = assign(\n  {},\n  parsed,\n  // You could also use your custom sorting function\n  Object.keys(parsed).sort()\n)\n\nconsole.log(stringify(sorted, null, 2))\n// {\n//   // a\n//   \"a\": 1,\n//   // b\n//   \"b\": 2\n// }\n```\n\nFor details about `assign`, see [here](#assigntarget-object-source-object-keys-array).\n\n## parse()\n\n```ts\nparse(text, reviver? = null, remove_comments? = false)\n  : object | string | number | boolean | null\n```\n\n- **text** `string` The string to parse as JSON. See the [JSON](http://json.org/) object for a description of JSON syntax.\n- **reviver?** `Function() | null` Default to `null`. It acts the same as the second parameter of [`JSON.parse`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse). If a function, prescribes how the value originally produced by parsing is transformed, before being returned.\n  - `comment-json` also passes the 3rd parameter `context` to the function `reviver`, as described in https://github.com/tc39/proposal-json-parse-with-source, which will be useful to parse a JSON string with `BigInt` values.\n- **remove_comments?** `boolean = false` If true, the comments won't be maintained, which is often used when we want to get a clean object.\n\nReturns `CommentJSONValue` (`object | string | number | boolean | null`) corresponding to the given JSON text.\n\nIf the `content` is:\n\n```js\n/**\n before-all\n */\n// before-all\n{ // before:foo\n  // before:foo\n  /* before:foo */\n  \"foo\" /* after-prop:foo */: // after-colon:foo\n  1 // after-value:foo\n  // after-value:foo\n  , // after:foo\n  // before:bar\n  \"bar\": [ // before:0\n    // before:0\n    \"baz\" // after-value:0\n    // after-value:0\n    , // after:0\n    \"quux\"\n    // after:1\n  ] // after:bar\n  // after:bar\n}\n// after-all\n```\n\n```js\nconst {inspect} = require('util')\n\nconst parsed = parse(content)\n\nconsole.log(\n  inspect(parsed, {\n    // Since 4.0.0, symbol properties of comments are not enumerable,\n    // use `showHidden: true` to print them\n    showHidden: true\n  })\n)\n\nconsole.log(Object.keys(parsed))\n// > ['foo', 'bar']\n\nconsole.log(stringify(parsed, null, 2))\n// ???? Exact as the content above! ????\n```\n\nAnd the value of `parsed` will be:\n\n```js\n{\n  // Comments before the JSON object\n  [Symbol.for('before-all')]: [{\n    type: 'BlockComment',\n    value: '\\n before-all\\n ',\n    inline: false,\n    loc: {\n      // The start location of `/**`\n      start: {\n        line: 1,\n        column: 0\n      },\n      // The end location of `*/`\n      end: {\n        line: 3,\n        column: 3\n      }\n    }\n  }, {\n    type: 'LineComment',\n    value: ' before-all',\n    inline: false,\n    loc: ...\n  }],\n  ...\n\n  [Symbol.for('after-prop:foo')]: [{\n    type: 'BlockComment',\n    value: ' after-prop:foo ',\n    inline: true,\n    loc: ...\n  }],\n\n  // The real value\n  foo: 1,\n  bar: [\n    \"baz\",\n    \"quux\",\n\n    // The property of the array\n    [Symbol.for('after-value:0')]: [{\n      type: 'LineComment',\n      value: ' after-value:0',\n      inline: true,\n    loc: ...\n    }, ...],\n    ...\n  ]\n}\n```\n\nThere are **NINE** kinds of symbol properties:\n\n```js\n// Comments before everything\nSymbol.for('before-all')\n\n// If all things inside an object or an array are comments\nSymbol.for('before')\n\n// comment tokens before\n// - a property of an object\n// - an item of an array\n// and after the previous comma(`,`) or the opening bracket(`{` or `[`)\nSymbol.for(`before:${prop}`)\n\n// comment tokens after property key `prop` and before colon(`:`)\nSymbol.for(`after-prop:${prop}`)\n\n// comment tokens after the colon(`:`) of property `prop` and before property value\nSymbol.for(`after-colon:${prop}`)\n\n// comment tokens after\n// - the value of property `prop` inside an object\n// - the item of index `prop` inside an array\n// and before the next key-value/item delimiter(`,`)\n// or the closing bracket(`}` or `]`)\nSymbol.for(`after-value:${prop}`)\n\n// comment tokens after\n// - comma(`,`)\n// - the value of property `prop` if it is the last property\nSymbol.for(`after:${prop}`)\n\n// Always at the inner end of an object or an array,\n// only used for stringification\nSymbol.for('after')\n\n// Comments after everything\nSymbol.for('after-all')\n```\n\nAnd the value of each symbol property is an **array** of `CommentToken`\n\n```ts\ninterface CommentToken {\n  type: 'BlockComment' | 'LineComment'\n  // The content of the comment, including whitespaces and line breaks\n  value: string\n  // If the start location is the same line as the previous token,\n  // then `inline` is `true`\n  inline: boolean\n\n  // But pay attention that,\n  // locations will NOT be maintained when stringified\n  loc: CommentLocation\n}\n\ninterface CommentLocation {\n  // The start location begins at the `//` or `/*` symbol\n  start: Location\n  // The end location of multi-line comment ends at the `*/` symbol\n  end: Location\n}\n\ninterface Location {\n  line: number\n  column: number\n}\n```\n\n### Query comments in TypeScript\n\n`comment-json` provides a `symbol`-type called `CommentSymbol` which can be used for querying comments.\nFurthermore, a type `CommentDescriptor` is provided for enforcing properly formatted symbol names:\n\n```ts\nimport {\n  CommentDescriptor, CommentSymbol, parse, CommentArray\n} from 'comment-json'\n\nconst parsed = parse(`{ /* test */ \"foo\": \"bar\" }`)\n // typescript only allows properly formatted symbol names here\nconst symbolName: CommentDescriptor = 'before:foo'\n\nconsole.log((parsed as CommentArray<string>)[Symbol.for(symbolName) as CommentSymbol][0].value)\n```\n\nIn this example, casting to `Symbol.for(symbolName)` to `CommentSymbol` is mandatory.\nOtherwise, TypeScript won't detect that you're trying to query comments.\n\n### Parse into an object without comments\n\n```js\nconsole.log(parse(content, null, true))\n```\n\nAnd the result will be:\n\n```js\n{\n  foo: 1,\n  bar: [\n    \"baz\",\n    \"quux\"\n  ]\n}\n```\n\n### Special cases\n\n```js\nconst parsed = parse(`\n// comment\n1\n`)\n\nconsole.log(parsed === 1)\n// false\n```\n\nIf we parse a JSON of primative type with `remove_comments:false`, then the return value of `parse()` will be of object type.\n\nThe value of `parsed` is equivalent to:\n\n```js\nconst parsed = new Number(1)\n\nparsed[Symbol.for('before-all')] = [{\n  type: 'LineComment',\n  value: ' comment',\n  inline: false,\n  loc: ...\n}]\n```\n\nWhich is similar for:\n\n- `Boolean` type\n- `String` type\n\nFor example\n\n```js\nconst parsed = parse(`\n\"foo\" /* comment */\n`)\n```\n\nWhich is equivalent to\n\n```js\nconst parsed = new String('foo')\n\nparsed[Symbol.for('after-all')] = [{\n  type: 'BlockComment',\n  value: ' comment ',\n  inline: true,\n  loc: ...\n}]\n```\n\nBut there is one exception:\n\n```js\nconst parsed = parse(`\n// comment\nnull\n`)\n\nconsole.log(parsed === null) // true\n```\n\n## stringify()\n\n```ts\nstringify(object: any, replacer?, space?): string\n```\n\nThe arguments are the same as the vanilla [`JSON.stringify`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify).\n\nAnd it does the similar thing as the vanilla one, but also deal with extra properties and convert them into comments.\n\n```js\nconsole.log(stringify(parsed, null, 2))\n// Exactly the same as `content`\n```\n\n#### space\n\nIf space is not specified, or the space is an empty string, the result of `stringify()` will have no comments.\n\nFor the case above:\n\n```js\nconsole.log(stringify(result)) // {\"a\":1}\nconsole.log(stringify(result, null, 2)) // is the same as `code`\n```\n\n## assign(target: object, source?: object, keys?: Array<string>)\n\n- **target** `object` the target object\n- **source?** `object` the source object. This parameter is optional but it is silly to not pass this argument.\n- **keys?** `Array<string>` If not specified, all enumerable own properties of `source` will be used.\n\nThis method is used to copy the enumerable own properties and their corresponding comment symbol properties to the target object.\n\n```js\nconst parsed = parse(`// before all\n{\n  // This is a comment\n  \"foo\": \"bar\"\n}`)\n\nconst obj = assign({\n  bar: 'baz'\n}, parsed)\n\nstringify(obj, null, 2)\n// // before all\n// {\n//   \"bar\": \"baz\",\n//   // This is a comment\n//   \"foo\": \"bar\"\n// }\n```\n\n### Special cases about `keys`\n\nBut if argument `keys` is specified and is not empty, then comment ` before all`, which belongs to non-properties, will **NOT** be copied.\n\n```js\nconst obj = assign({\n  bar: 'baz'\n}, parsed, ['foo'])\n\nstringify(obj, null, 2)\n// {\n//   \"bar\": \"baz\",\n//   // This is a comment\n//   \"foo\": \"bar\"\n// }\n```\n\nSpecifying the argument `keys` as an empty array indicates that it will only copy non-property symbols of comments\n\n```js\nconst obj = assign({\n  bar: 'baz'\n}, parsed, [])\n\nstringify(obj, null, 2)\n// // before all\n// {\n//   \"bar\": \"baz\",\n// }\n```\n\nNon-property symbols include:\n\n```js\nSymbol.for('before-all')\nSymbol.for('before')\nSymbol.for('after')      // only for stringify\nSymbol.for('after-all')\n```\n\n## moveComments(source: object, target?: object, from: object, to: object, override?: boolean)\n\n- **source** `object` The source object containing comments to move.\n- **target?** `object` The target object to move comments to. If not provided, defaults to source (move within same object).\n- **from** `object` The source comment location.\n  - **from.where** `CommentPrefix` The comment position (e.g., 'before', 'after', 'before-all', etc.).\n  - **from.key?** `string` The property key for property-specific comments. Omit for non-property comments.\n- **to** `object` The target comment location.\n  - **to.where** `CommentPrefix` The comment position (e.g., 'before', 'after', 'before-all', etc.).\n  - **to.key?** `string` The property key for property-specific comments. Omit for non-property comments.\n- **override?** `boolean = false` Whether to override existing comments at the target location. If false, comments will be appended.\n\nThis method is used to move comments from one location to another within objects. It's particularly useful when you need to reorganize comments or move them between different comment positions.\n\n```js\nconst {parse, stringify, moveComments} = require('comment-json')\n\nconst obj = parse(`{\n  \"foo\": 1, // comment after foo\n  \"bar\": 2\n}`)\n\n// Move comment from `after 'foo'` to `after`\nmoveComments(obj, obj,\n  { where: 'after', key: 'foo' },\n  { where: 'after' }\n)\n\nobj.baz = 3\n\nconsole.log(stringify(obj, null, 2))\n// {\n//   \"foo\": 1,\n//   \"bar\": 2,\n//   \"baz\": 3\n// // comment after foo\n// }\n```\n\n### Moving non-property comments\n\n```js\nconst obj = parse(`// top comment\n{\n  \"foo\": 1\n}`)\n\n// Move top comment to bottom\nmoveComments(obj, obj,\n  { where: 'before-all' },\n  { where: 'after-all' }\n)\n\nconsole.log(stringify(obj, null, 2))\n// {\n//   \"foo\": 1\n// }\n// // top comment\n```\n\n### Moving comments between objects\n\n```js\nconst source = parse(`{\n  \"foo\": 1 // source comment\n}`)\n\nconst target = { bar: 2 }\n\n// Move comment from source to target\nmoveComments(source, target,\n  { where: 'after-value', key: 'foo' },\n  { where: 'before', key: 'bar' }\n)\n\nconsole.log(stringify(target, null, 2))\n// {\n//   // source comment\n//   \"bar\": 2\n// }\n```\n\n### Appending vs overriding comments\n\n```js\nconst obj = parse(`{\n  // existing comment\n  \"foo\": 1, // another comment\n  \"bar\": 2\n}`)\n\n// By default, comments are appended (override = false)\nmoveComments(obj, obj,\n  { where: 'after-value', key: 'foo' },\n  { where: 'before', key: 'foo' }\n)\n\nconsole.log(stringify(obj, null, 2))\n// {\n//   // existing comment\n//   // another comment\n//   \"foo\": 1,\n//   \"bar\": 2\n// }\n\n// With override = true, existing comments are replaced\nmoveComments(obj, obj,\n  { where: 'before', key: 'bar' },\n  { where: 'before', key: 'foo' },\n  true // override existing comments\n)\n```\n\n## removeComments(target: object, location: object)\n\n- **target** `object` The target object to remove comments from.\n- **location** `object` The comment location to remove.\n  - **location.where** `CommentPrefix` The comment position (e.g., 'before', 'after', 'before-all', etc.).\n  - **location.key?** `string` The property key for property-specific comments. Omit for non-property comments.\n\nThis method is used to remove comments from a specific location within objects. It's useful for cleaning up comments or removing unwanted comment annotations.\n\n### Basic usage\n\n```js\nconst {parse, stringify, removeComments} = require('comment-json')\n\nconst obj = parse(`{\n  // comment before foo\n  \"foo\": 1, // comment after foo\n  \"bar\": 2\n}`)\n\n// Remove comment before 'foo'\nremoveComments(obj, { where: 'before', key: 'foo' })\n\nconsole.log(stringify(obj, null, 2))\n// {\n//   \"foo\": 1, // comment after foo\n//   \"bar\": 2\n// }\n```\n\n### Removing non-property comments\n\n```js\nconst obj = parse(`// top comment\n{\n  \"foo\": 1\n}\n// bottom comment`)\n\n// Remove top comment\nremoveComments(obj, { where: 'before-all' })\n\n// Remove bottom comment\nremoveComments(obj, { where: 'after-all' })\n\nconsole.log(stringify(obj, null, 2))\n// {\n//   \"foo\": 1\n// }\n```\n\n## `CommentArray`\n\n> Advanced Section\n\nAll arrays of the parsed object are `CommentArray`s.\n\nThe constructor of `CommentArray` could be accessed by:\n\n```js\nconst {CommentArray} = require('comment-json')\n```\n\nIf we modify a comment array, its comment symbol properties could be handled automatically.\n\n```js\nconst parsed = parse(`{\n  \"foo\": [\n    // bar\n    \"bar\",\n    // baz,\n    \"baz\"\n  ]\n}`)\n\nparsed.foo.unshift('qux')\n\nstringify(parsed, null, 2)\n// {\n//   \"foo\": [\n//     \"qux\",\n//     // bar\n//     \"bar\",\n//     // baz\n//     \"baz\"\n//   ]\n// }\n```\n\nOh yeah! ????\n\nBut pay attention, if you reassign the property of a comment array with a normal array, all comments will be gone:\n\n```js\nparsed.foo = ['quux'].concat(parsed.foo)\nstringify(parsed, null, 2)\n// {\n//   \"foo\": [\n//     \"quux\",\n//     \"qux\",\n//     \"bar\",\n//     \"baz\"\n//   ]\n// }\n\n// Whoooops!! ???? Comments are gone\n```\n\nInstead, we should:\n\n```js\nparsed.foo = new CommentArray('quux').concat(parsed.foo)\nstringify(parsed, null, 2)\n// {\n//   \"foo\": [\n//     \"quux\",\n//     \"qux\",\n//     // bar\n//     \"bar\",\n//     // baz\n//     \"baz\"\n//   ]\n// }\n```\n\n## Special Cases about Trailing Comma\n\nIf we have a JSON string `str`\n\n```js\n{\n  \"foo\": \"bar\", // comment\n}\n```\n\n```js\n// When stringify, trailing commas will be eliminated\nconst stringified = stringify(parse(str), null, 2)\nconsole.log(stringified)\n```\n\nAnd it will print:\n\n```js\n{\n  \"foo\": \"bar\" // comment\n}\n```\n\n## Dealing with `BigInt`s\n\n> Advanced Section\n\n`comment-json` implements the TC39 proposal [proposal-json-parse-with-source](https://github.com/tc39/proposal-json-parse-with-source)\n\n```js\nconst {parse, stringify} = require('comment-json')\n\nconst parsed = parse(\n  `{\"foo\": 9007199254740993}`,\n  // The reviver function now has a 3rd param that contains the string source.\n  (key, value, {source}) =>\n    /^[0-9]+$/.test(source) ? BigInt(source) : value\n)\n\nconsole.log(parsed)\n// {\n//   \"foo\": 9007199254740993n\n// }\n\nstringify(parsed, (key, val) =>\n  typeof value === 'bigint'\n    // Pay attention that\n    //   JSON.rawJSON is supported in node >= 21\n    ? JSON.rawJSON(String(val))\n    : value\n)\n// {\"foo\":9007199254740993}\n```\n\n## License\n\n[MIT](LICENSE)\n\n## Change Logs\n\nSee [releases](https://github.com/kaelzhang/node-comment-json/releases)\n","_attachments":{},"homepage":"https://github.com/kaelzhang/node-comment-json#readme","bugs":{"url":"https://github.com/kaelzhang/node-comment-json/issues"},"license":"MIT"}