eslint-plugin-json-schema-validator
Version:
ESLint plugin that validates data using JSON Schema Validator.
1 lines • 6.02 kB
JSON
{"title":"JSON schema for WebExtensions manifest files","$schema":"http://json-schema.org/draft-04/schema#","type":"object","additionalProperties":true,"required":["manifest_version","name","version"],"properties":{"applications":{"type":"object","properties":{"gecko":{"type":"object","properties":{"id":{"type":"string","pattern":"^\\{[A-Fa-f0-9]{8}-([A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12}\\}$|^[A-Za-z0-9-._]*@[A-Za-z0-9-._]+$"},"strict_min_version":{"type":"string","default":"42a1"},"strict_max_version":{"type":"string","default":"*"},"update_url":{"type":"string","format":"uri"}}}}},"author":{"type":"string"},"background":{"type":"object","properties":{"persistent":{"type":"boolean","default":true},"page":{"type":"string"},"scripts":{"type":"array","items":{"type":"string"}}}},"browser_action":{"allOf":[{"$ref":"#/properties/page_action"}],"properties":{"default_area":{"enum":["navbar","menupanel","tabstrip","personaltoolbar"],"default":"navbar"}}},"chrome_settings_overrides":{"type":"object","properties":{"homepage":{"type":"string"}}},"chrome_url_overrides":{"type":"object","properties":{"bookmarks":{"type":"string"},"history":{"type":"string"},"newtab":{"type":"string"}}},"commands":{"type":"object","properties":{"_execute_browser_action":{"$ref":"#/definitions/command"},"_execute_page_action":{"$ref":"#/definitions/command"},"_execute_sidebar_action":{"$ref":"#/definitions/command"}},"additionalProperties":{"$ref":"#/definitions/command"}},"content_scripts":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"object","required":["matches"],"additionalProperties":false,"properties":{"matches":{"type":"array","minItems":1,"uniqueItems":true,"items":{"$ref":"#/definitions/match_pattern"}},"exclude_matches":{"type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/match_pattern"}},"css":{"type":"array","uniqueItems":true,"items":{"type":"string"}},"js":{"$ref":"#/definitions/scripts"},"run_at":{"type":"string","enum":["document_start","document_end","document_idle"],"default":"document_idle"},"all_frames":{"type":"boolean","default":false},"include_globs":{"type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/glob_pattern"}},"exclude_globs":{"type":"array","uniqueItems":true,"items":{"$ref":"#/definitions/glob_pattern"}},"match_about_blank":{"type":"boolean","default":false}}}},"content_security_policy":{"$ref":"#/definitions/content_security_policy"},"default_locale":{"type":"string","default":"en"},"description":{"type":"string"},"developer":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string","format":"uri"}}},"devtools_page":{"type":"string"},"homepage_url":{"type":"string","format":"uri"},"icons":{"additionalProperties":false,"patternProperties":{"^[1-9]\\d*$":{"type":"string"}}},"incognito":{"type":"string","enum":["spanning","split","not_allowed"],"default":"spanning"},"manifest_version":{"type":"integer","enum":[2]},"name":{"type":"string","minLength":2,"maxLength":45},"omnibox":{"type":"object","required":["keyword"],"properties":{"keyword":{"type":"string"}}},"optional_permissions":{"type":"array","uniqueItems":true,"items":{"anyOf":[{"type":"string"},{"enum":["activeTab","background","bookmarks","clipboardRead","clipboardWrite","contentSettings","contextMenus","cookies","debugger","geolocation","history","idle","management","notifications","pageCapture","tabs","topSites","webNavigation","webRequest","webRequestBlocking"]}]}},"options_ui":{"type":"object","required":["page"],"properties":{"page":{"type":"string"},"browser_style":{"type":"boolean","default":true},"open_in_tab":{"type":"boolean","default":false}}},"page_action":{"type":"object","properties":{"browser_style":{"type":"boolean","default":false},"default_icon":{"$ref":"#/definitions/icon"},"default_popup":{"type":"string"},"default_title":{"type":"string"}}},"permissions":{"$ref":"#/definitions/permissions"},"protocol_handlers":{"type":"object","properties":{"protocol":{"anyOf":[{"enum":["bitcoin","geo","im","irc","ircs","magnet","mailto","mms","news","nntp","sip","sms","smsto","ssh","tel","urn","webcal","wtai","xmpp"]},{"type":"string","pattern":"^(ext|web)\\+.+"}]},"name":{"type":"string"},"uriTemplate":{"pattern":"%s"}}},"short_name":{"type":"string","minLength":2,"maxLength":12},"sidebar_action":{"type":"object","properties":{"default_icon":{"$ref":"#/definitions/icon"},"default_panel":{"type":"string"},"default_title":{"type":"string"}}},"version":{"pattern":"^(?:\\d{1,5}\\.){0,3}\\d{1,5}$"},"web_accessible_resources":{"type":"array","uniqueItems":true,"items":{"type":"string"}}},"definitions":{"action":{"type":"object","properties":{"browser_style":{"type":"boolean","default":false},"default_icon":{"$ref":"#/definitions/icon"},"default_popup":{"type":"string"},"default_title":{"type":"string"}}},"command":{"type":"object","properties":{"description":{"type":"string"},"suggested_key":{"type":"object","properties":{"default":{"type":"string"},"mac":{"type":"string"},"linux":{"type":"string"},"windows":{"type":"string"},"chromeos":{"type":"string"},"ios":{"type":"string"},"android":{"type":"string"}}}}},"icon":{"type":["string","object"],"additionalProperties":false,"patternProperties":{"^[1-9]\\d*$":{"type":"string"}}},"content_security_policy":{"type":"string","default":"script-src 'self'; object-src 'self'"},"glob_pattern":{"type":"string"},"match_pattern":{"type":"string","pattern":"^((\\*|http|https|file|ftp|chrome-extension):\\/\\/(\\*|\\*\\.[^\\/\\*]+|[^\\/\\*]+)?(\\/.*))|<all_urls>$"},"permissions":{"type":"array","uniqueItems":true,"items":{"anyOf":[{"type":"string"},{"enum":["<all_urls>","activeTab","alarms","bookmarks","browsingData","contextMenus","contextualIdentities","cookies","downloads","downloads.open","geolocation","history","identity","idle","management","nativeMessaging","notifications","proxy","sessions","storage","tabs","topSites","webNavigation","webRequest","webRequestBlocking"]}]}},"scripts":{"type":"array","uniqueItems":true,"items":{"type":"string"}}}}