{"id":13540765,"url":"https://github.com/ragingwind/chrome-manifest","last_synced_at":"2025-05-05T21:30:59.783Z","repository":{"id":26785479,"uuid":"30243708","full_name":"ragingwind/chrome-manifest","owner":"ragingwind","description":"Help you using manifest for Chrome Apps and Extension","archived":false,"fork":false,"pushed_at":"2016-07-18T23:48:08.000Z","size":80,"stargazers_count":9,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-02T03:04:10.724Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ragingwind.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-02-03T13:22:57.000Z","updated_at":"2018-08-22T17:10:37.000Z","dependencies_parsed_at":"2022-07-30T19:18:08.640Z","dependency_job_id":null,"html_url":"https://github.com/ragingwind/chrome-manifest","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ragingwind%2Fchrome-manifest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ragingwind%2Fchrome-manifest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ragingwind%2Fchrome-manifest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ragingwind%2Fchrome-manifest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ragingwind","download_url":"https://codeload.github.com/ragingwind/chrome-manifest/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252579994,"owners_count":21771248,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T10:00:32.458Z","updated_at":"2025-05-05T21:30:59.481Z","avatar_url":"https://github.com/ragingwind.png","language":"JavaScript","funding_links":[],"categories":["Tools"],"sub_categories":["Development"],"readme":"# chrome-manifest [![Build Status](https://travis-ci.org/ragingwind/chrome-manifest.svg?branch=master)](https://travis-ci.org/ragingwind/chrome-manifest)\n\n\u003e Help you manage manifest when you are developing Chrome Apps and Extensions\n\n\n## Install\n\n```sh\n$ npm install --save chrome-manifest\n```\n\n## Usage\n\n### Manifest\n\n```js\nvar Manifest = require('chrome-manifest');\nvar manifest = new Manifest('manifest.json');\n\n// exclude value or key what you want\nmanifest.exclude([\n  {\n    // you can use string array expression to access array property\n    'content_scripts.[0].matches': [\n      \"http://*/*\"\n    ]\n  },\n  {\n    'background.scripts': [\n      'scripts/willbe-remove-only-for-debug.js',\n      'scripts/user-script.js'\n    ]\n  },\n  'manifest_version',\n  'key'\n]);\n\n// get/set\nconsole.log(manifest.content_scripts.[0].matches.length);\nconsole.log(manifest.content_scripts.[0]);\nconsole.log(manifest.background.scripts);\nconsole.log(manifest.manifest_version);\nconsole.log(manifest.manifest['key']);\n\n// patch version from 0.0.1 to 0.0.2\nmanifest.patch();\n\n// Get various types\nconsole.log(manifest.toJSON());\nconsole.log(manifest.toBuffer());\nconsole.log(manifest.toString());\n```\n\n### Metadata\n\nGenerating manifest.json with basic sample configures\n\n```js\nvar Manifest = require('chrome-manifest');\n\n// Query permissions by stable and platform_app(Chrome Apps)\nvar metadata = Manifest.queryMetadata({\n  channel: 'stable',\n  extensionTypes: ['platform_app']\n});\n\n// Create a manifest with selected fields and permissions of Chrome Manifest\nvar manifest = new Manifest({\n  fields: Object.keys(metadata.fields),\n  permissions: Object.keys(metadata.permissions)\n});\n\n// Merge with new value\nmanifest.merge({\n  name: 'My Apps',\n  author: 'New Author',\n  app: {\n    background: {\n      scripts: [\n        \"scripts/background.js\",\n        \"scripts/addmore.js\"\n      ]\n    }\n  },\n  permissions: [\n    'tabs',\n    'http://*/**',\n    'https://*/**',\n    'test permissions'\n  ]\n});\n\nassert.equal(manifest.name, 'My Apps');\nassert.equal(manifest.author, 'New Author');\nassert.equal(manifest.app.background.scripts.length, 2);\nassert.equal(manifest.app.background.scripts[1], 'scripts/addmore.js');\nassert(manifest.permissions.indexOf('test permissions') \u003e= 0);\n```\n\n## License\n\nMIT ©[Jimmy Moon](http://ragingwind.me)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fragingwind%2Fchrome-manifest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fragingwind%2Fchrome-manifest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fragingwind%2Fchrome-manifest/lists"}