{"_id":"@ampproject/toolbox-validator-rules","_rev":"43-9ecdd69bcfa998eeb793d34cd1346d31","name":"@ampproject/toolbox-validator-rules","description":"A library that helps query AMP Validator rules","dist-tags":{"beta":"1.1.0-beta.0","alpha":"2.7.1-alpha.0","canary":"3.0.0-canary.2","latest":"2.10.1"},"versions":{"1.0.0-beta.4":{"name":"@ampproject/toolbox-validator-rules","version":"1.0.0-beta.4","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@1.0.0-beta.4","maintainers":[{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"prateekbh","email":"prateek89born@gmail.com"},{"name":"choumx","email":"willchou@google.com"},{"name":"sepandparhami","email":"sparhami@google.com"},{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"kristoferbaxter","email":"kbax@me.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/master/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"a8d08c94a11aab7067e06626b1bef59a8e20ea13","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-1.0.0-beta.4.tgz","fileCount":5,"integrity":"sha512-RbysQL9U0sPA2dez3bTh9R3t1yw7BM9q0pu1oWELrJ0odG+7wysz7jRjPvd8QAXK+nrTvO5qlEfRQZLG6y+FlQ==","signatures":[{"sig":"MEYCIQDRD/MEBIf00of6y6jfeZ8DTFQJP/2j1pMyoOiBRyEYjAIhAL/53T1qxyEuovbbzt5Biz3uRZ0CVaiFIw4W+LbF8uPU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12280,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJ0l8CRA9TVsSAnZWagAAztoQAIHCiIveJI+ktIKrnmVI\n1HMxeLmwjWdMiEj3a87Vnu2QbLAWTeKeeVNn59JSoIkBdTct7lpXvU0bQM36\ngLaPKaumsy2Pr8be2DHbxmw24ZGSKkqb2hejIt2kq3aIjoUQn/Iv/sSDv6Sf\nI1QWEX7enJ7njzbgIBI4ok7cNJMsd1p2bMx/ZC1Ru7PbZRBQiJiee0kpCAHE\nC6/UsaDU7uokGiBM1jo7wc2F1F5VceNVi+bi+YZ/ssjnRzUgq60yrubdWBeU\nAv2WgBqQRZv6suVnjH3ohd37okw1Wpi18SZNt0vS6N8hMGUb0++4r5zS/rMP\n1/fcHzrZD4FEl3BYfxvIji/bAqKbAdGZ6DulS74sj4khUOqapZ1vuHgS2oLc\nga2PGBPLk7sb4S6JLtRzujTF8Lmq5s/jVL6OP/5eP5k4qilHr1j4hkaKj3Ee\n1GEnmPfZlDAXVzWJ/Dy5Qzykl91jEM3AbhUynkZwhj90JwK9VKYJi75rxdtx\nf/TTGD7VtB5/7B6SsCeN9O8jw/eGEz5tQRj3Oh1+7zwTi3nJaClCW3RtAP6E\nSTHT91Sb7RTWIvH5fdZxlQ0DiaRk8GgAhY+hXUye4SlwFdrUwx+XfNt9Yfi4\nHbsHZu5LRg8loczWs3E7eoCeE4LP6sAPAJD3sRGVqnWNDaDAb8yBISL/60Nz\nW/uL\r\n=JsZd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator.json --output validator.json"},"_npmUser":{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git"},"_npmVersion":"6.9.0","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"10.16.0","dependencies":{"@ampproject/toolbox-core":"^1.0.0-beta.4"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_1.0.0-beta.4_1562855803599_0.3388436018129657","host":"s3://npm-registry-packages"}},"1.0.0-beta.5":{"name":"@ampproject/toolbox-validator-rules","version":"1.0.0-beta.5","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@1.0.0-beta.5","maintainers":[{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"choumx","email":"willchou@google.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"kristoferbaxter","email":"kbax@me.com"},{"name":"prateekbh","email":"prateek89born@gmail.com"},{"name":"sepandparhami","email":"sparhami@google.com"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/master/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"abe2e6a9e759038c4cf44a381d387c4d8cdbbcc0","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-1.0.0-beta.5.tgz","fileCount":6,"integrity":"sha512-fzIBiWcs66mF3IWRJ4oY+UdbCE/hqSTN6MA5xr0OX07JrhwOFL6/F60p6p6P7frxWy8Cw0HO5xbOiJJDErhAyg==","signatures":[{"sig":"MEUCIDburdhvJNo/oMROaEzLwq4abuYO0ndvLoXJzWDMrH4LAiEA/T+1JJjIFW81q4Qg0Rx8KqayiWK3hwlr9BOnq5y1hcY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23601,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdLJ1dCRA9TVsSAnZWagAAjAkQAIL+6ymfAUOksghCDChd\nmrcvOr5KyF9jowBmP3OsvcX9b0dwBdx3wH5pR/bAtuPwApv713fU6GvolzgM\nUINJD5J0yhIVKmfKFeLUtMQmL5aseW9rxDe9Pzlrv15LW45Nes/PVrtekoOk\nr+YhwAAT6iYaWShbftHhooW0cwCP7JDY6uElA8gFc2KUmhBKF2ZzlQRFSc0S\ndGFBFu+0YLXo6c0daTpfEDtvLK/z1+vXS93cTxd+0ccucraLN6L/XCiTcOUL\nlkris/+U1mrFKabz400OnfKPMMwlcGwsdPlAhliastA3x784yKYJmv7O+Jke\nHGqYx+gS91MJ21eO+Eh17NOEKJJm24Ddba85vQ5fZcAwW4MkYDQJUBU5HwdK\nsmHYf1cJYL29vzqRWVmyqzT41mrpLKR+fS0lskLTqSK/gIO7ac28gLh4+VW5\n/7T4LjhzH4s8YQyfnEj9D1L4kxZnUXTb22HaLoSyjX15EAskc52fmPhsqbkM\nB2dVDyPPV/lgm12M/f0dG9jxTfDJDPkyKLje4uxozRAMircXe8kzoe2dNXkx\n2gF/TbAXpjG454LeTE2b0icKOeNIfghWWe7oWnQZK0vX0KBwv9BqaO8fBLaX\nHqRUhiUOjQNJo8ORSM78xmfkxvCcpfwgFzT+OJ/fohKXZjx8MTagio5Dm8bX\n0eCs\r\n=xbFh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# AMP-Toolbox Validator Rules\n\nQueries published AMP Validator rules and extracts information about required\nmarkup and attributes for all AMP formats.\n\n## Usage\n\nInstall via:\n\n```\n$ npm install @ampproject/toolbox-validator-rules@canary\n```\n\n### Including the Module\n\n#### ES Module (Browser)\n\n```javascript\nimport validatorRules from '@ampproject/toolbox-validator-rules';\n```\n\n#### CommonJs (Node)\n\n```javascript\nconst validatorRules = require('@ampproject/toolbox-validator-rules');\n```\n\n### Using the module\n\n```javascript\n  // Loads the validator rules remotely with default options\n  const rules = await validatorRules.fetch();\n\n\n  // The raw unprocessed rules\n  console.log(rules.raw);\n\n  // All tags, combined with their respective attribute lists\n  console.log(rules.tags);\n\n  // All extensions\n  console.log(rules.extensions);\n\n  // Get all tag names used in AMP for Email\n  // The supported formats are AMP, AMP4EMAIL, AMP4ADS and ACTIONS\n  const tags = rules.getTagsForFormat('AMP4EMAIL');\n\n  // Display their names\n  console.log(tags.map(tag => tag.tagName));\n\n  // Get information about an extension\n  const ext = rules.getExtension('AMP4EMAIL', 'amp-carousel');\n\n  // Display supported versions\n  console.log(ext.versions);\n```\n\n### Format of rules\n\nThe rules used closely follow the proto definitions from [validator.proto](https://github.com/ampproject/amphtml/blob/master/validator/validator.proto).\n\nSpecifically:\n\n-   The `raw` property is unprocessed [ValidatorRules](https://github.com/ampproject/amphtml/blob/master/validator/validator.proto#L643), the same format used by `https://cdn.ampproject.org/v0/validator.json`\n-   The result of `getTagsForFormat` and the `tags` property is a list of [TagSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L463)\n-   The result of `getExtension` is [ExtensionSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L388) with the `htmlFormat` field from `TagSpec`\n-   The `extensions` property a list of [ExtensionSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L388) with the `htmlFormat` field from `TagSpec`\n-   The `errors` property combines [ErrorFormat](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L874) and [ErrorSpecificity](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L869)\n\n### Options\n\n`fetch` optionally accepts an options object allowing you to customize its\nbehaviour.\n\nThe following options are supported:\n\n   * `noCache`: true to always fetch latest rules (by default, subsequent calls to `fetch` reuse the same result).\n   * `rules`: object to use locally specified rules instead of fetching them from the AMP CDN.\n   * `url`: override the URL where validator rules are fetched from.\n   * `source`: one of `'local'` (load rules from local file named \"validator.json\"), `'remote'` (fetch rules from CDN) or `'auto'` which is the default (tries looking for the local file first, then tries to fetch from CDN).\n\nExample:\n\n```\nvalidatorRules.fetch({\n  noCache: true,\n  source: 'remote'\n});\n```\n","gitHead":"630677e390bf5f63f82f4d2c6a0c53a20c33bc2e","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator.json --output validator.json"},"_npmUser":{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git"},"_npmVersion":"lerna/3.15.0/node@v10.16.0+x64 (darwin)","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"10.16.0","dependencies":{"cross-fetch":"3.0.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_1.0.0-beta.5_1563204957045_0.8344708237686311","host":"s3://npm-registry-packages"}},"1.0.0-beta.6":{"name":"@ampproject/toolbox-validator-rules","version":"1.0.0-beta.6","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@1.0.0-beta.6","maintainers":[{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"choumx","email":"willchou@google.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"kristoferbaxter","email":"kbax@me.com"},{"name":"prateekbh","email":"prateek89born@gmail.com"},{"name":"sepandparhami","email":"sparhami@google.com"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/master/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"8433a3d5f27bfbf356c83d13e4e9725ca0bc565b","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-1.0.0-beta.6.tgz","fileCount":5,"integrity":"sha512-GlIUtmu2B7EjlP1ZQKB+t+nBt9c3r7OAuhrEqcRIwfc85O5BfdxC+lAiFmwkCfyOxU/mXObJPs2bIN0gRIqmvw==","signatures":[{"sig":"MEYCIQDaZ+qgTlXh/xd7bsOsPiQzNSl8mvuOhPg/DuUghIqaBgIhAN8k3gWCd2SflOwZ2Soo+fE/3A9Ywv/lWV9mdrVmzWpB","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12258,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdNwUDCRA9TVsSAnZWagAAvJMP/3CJ+SipdC+x+JAtH1d4\n4ejTprfZHlNbM2bRliognjeIf4xFlUxfpbgu5hVPYsbbK5g9e7/GBiuFhCxD\nycKHXyuZ1cs4vcrDnjsHW8qeYasOaKpW929uhuWe+Uz23ex0+IeLBWRoqDuC\njrex9YXDm85oFVrmAw+M+6Rw70KvSLocdQ2fkRppE6EZFjVJfk5/oP7JlZtH\ny17sch3l/7PprqPEUX8/Y9ijBJYqRgTf3LLYyPSX0Rlyu+gI7CynJdDLcpuc\nyvVcYGDgWVo5O1dKt0F+PY4N572k9UXqP6c40PNUDYm2GHbeMIBL9V32waSh\n2R32+1d2NJy5+9QlgIlJUrPQm3S8U/ENrfObWNQsKjIAjX1H9lQgBeJyHYny\nW6wTd213kayl6cg3BXphUADjifhFGZ2BAabXqh69JN5o8NsCCPL6KfDhp1rm\nRbOPUG4e0w5eybUtLifblkjxr9WDMOJxvYoND9yxjnKyR9f31CT24iKjypTM\nWBxoMG0Pi/iqfW8FVy1gfxr6Vk/yqgyez/w7hOuL+3q5Aj5Q1+alcqruplLJ\nCyeRAMGaw0pq8vCEDnwPW8ZEBsWjgSXb+bnCBSzPAoQXqWs9TXle3s9+QVKi\n0DEzGt5PjeTfjN8x8hZwg65F4noZ0FWJbi9nq36kdRLQwq29k2HcAA3n1p1L\n3SfS\r\n=uqEJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# AMP-Toolbox Validator Rules\n\nQueries published AMP Validator rules and extracts information about required\nmarkup and attributes for all AMP formats.\n\n## Usage\n\nInstall via:\n\n```\n$ npm install @ampproject/toolbox-validator-rules@canary\n```\n\n### Including the Module\n\n#### ES Module (Browser)\n\n```javascript\nimport validatorRules from '@ampproject/toolbox-validator-rules';\n```\n\n#### CommonJs (Node)\n\n```javascript\nconst validatorRules = require('@ampproject/toolbox-validator-rules');\n```\n\n### Using the module\n\n```javascript\n  // Loads the validator rules remotely with default options\n  const rules = await validatorRules.fetch();\n\n\n  // The raw unprocessed rules\n  console.log(rules.raw);\n\n  // All tags, combined with their respective attribute lists\n  console.log(rules.tags);\n\n  // All extensions\n  console.log(rules.extensions);\n\n  // Get all tag names used in AMP for Email\n  // The supported formats are AMP, AMP4EMAIL, AMP4ADS and ACTIONS\n  const tags = rules.getTagsForFormat('AMP4EMAIL');\n\n  // Display their names\n  console.log(tags.map(tag => tag.tagName));\n\n  // Get information about an extension\n  const ext = rules.getExtension('AMP4EMAIL', 'amp-carousel');\n\n  // Display supported versions\n  console.log(ext.versions);\n```\n\n### Format of rules\n\nThe rules used closely follow the proto definitions from [validator.proto](https://github.com/ampproject/amphtml/blob/master/validator/validator.proto).\n\nSpecifically:\n\n-   The `raw` property is unprocessed [ValidatorRules](https://github.com/ampproject/amphtml/blob/master/validator/validator.proto#L643), the same format used by `https://cdn.ampproject.org/v0/validator.json`\n-   The result of `getTagsForFormat` and the `tags` property is a list of [TagSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L463)\n-   The result of `getExtension` is [ExtensionSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L388) with the `htmlFormat` field from `TagSpec`\n-   The `extensions` property a list of [ExtensionSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L388) with the `htmlFormat` field from `TagSpec`\n-   The `errors` property combines [ErrorFormat](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L874) and [ErrorSpecificity](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L869)\n\n### Options\n\n`fetch` optionally accepts an options object allowing you to customize its\nbehaviour.\n\nThe following options are supported:\n\n   * `noCache`: true to always fetch latest rules (by default, subsequent calls to `fetch` reuse the same result).\n   * `rules`: object to use locally specified rules instead of fetching them from the AMP CDN.\n   * `url`: override the URL where validator rules are fetched from.\n   * `source`: one of `'local'` (load rules from local file named \"validator.json\"), `'remote'` (fetch rules from CDN) or `'auto'` which is the default (tries looking for the local file first, then tries to fetch from CDN).\n\nExample:\n\n```\nvalidatorRules.fetch({\n  noCache: true,\n  source: 'remote'\n});\n```\n","gitHead":"4c1963ce6f32ce607ce3925653ab38db250e79c3","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator.json --output validator.json"},"_npmUser":{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git"},"_npmVersion":"6.9.0","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"10.16.0","dependencies":{"cross-fetch":"3.0.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_1.0.0-beta.6_1563886850619_0.9262834356640759","host":"s3://npm-registry-packages"}},"1.0.0-beta.7":{"name":"@ampproject/toolbox-validator-rules","version":"1.0.0-beta.7","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@1.0.0-beta.7","maintainers":[{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"choumx","email":"willchou@google.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"kristoferbaxter","email":"kbax@me.com"},{"name":"prateekbh","email":"prateek89born@gmail.com"},{"name":"sepandparhami","email":"sparhami@google.com"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/master/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"c305ce93fb209fe7818aa1a7736c950c6f7247b3","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-1.0.0-beta.7.tgz","fileCount":6,"integrity":"sha512-/IdXeFmgud70/rOBAlCzK1e2rl06AC/SdgDqeZijUMuarzswkFVSHmM/lzvXtlm+9ITVFKL6LOP0hBj7G6Gymw==","signatures":[{"sig":"MEUCIG/4I/qmXn32qYI6OjcNwtjd3XRKMxaBma1CJjzH+IQTAiEAvINVOsodDuiAxTwi94prIPbzyo+FU3GOSPfk7BPpCCU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23601,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdOGJeCRA9TVsSAnZWagAAFnwP/iwMy7s+59Ph+aVJ/tEF\nLo2LxDopwmMEbxQAjoIdiRjRRf0N1bagumk7m5N4EbvC4NRiULhoMu2Npcua\ny3aJ2S/QwycbB/oJ6IYWA2yoNQcCT7DZIk4cxdAs+Pschpuf1/thIGHMsAKw\nN/pCcDdRJlkI7MFhSMOnCJ9KTk/phPWV7BrkKianCdNUr3Sw/KQIGT0eh02v\nVHeC00bJabaP4RrZu/lCuiT8dkcNEdFr4Fkx6Vd2YvDsd9M+kr4GDVadpmM0\n1c5QebvYltLD0+pwdRY3kF8E3N7C99wSspgIDD2aWWrJJe69pdUUoHw+O8LJ\nyXL0PMto+tQ5ATWnwkhPB3+l9XRtu+zbeuaQh/y8jP5EIwMa15AplAixUect\nuOcj+KygEMO0fKy9oPnvHkkdBtCqHAUagX3jUXRWcaoxQ8Hno9JjeeagfI3E\nWLonTVteW+TgLBtyv/ra3I6s8O6e2jNd8MqAIJmoVXHD+801Q2s35qIlWseL\nMRVgLK4lsVTgpfnRpVTRLALK8iefJqF96ltxuvwWvCeP1Nczq/XkJ0pqNBRe\nky1sVAQ7PDSGd8CpcD9CSoQKqhUvThKeoA1RK+HeJONk2vmQUo2i2O8kATUa\nsv/Htna7CqhbaxiPbB1HRARNOcOjV+wqTUQSeYcvYmo3FedDqdQDIeuGjFdU\naTJk\r\n=Unsu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# AMP-Toolbox Validator Rules\n\nQueries published AMP Validator rules and extracts information about required\nmarkup and attributes for all AMP formats.\n\n## Usage\n\nInstall via:\n\n```\n$ npm install @ampproject/toolbox-validator-rules@canary\n```\n\n### Including the Module\n\n#### ES Module (Browser)\n\n```javascript\nimport validatorRules from '@ampproject/toolbox-validator-rules';\n```\n\n#### CommonJs (Node)\n\n```javascript\nconst validatorRules = require('@ampproject/toolbox-validator-rules');\n```\n\n### Using the module\n\n```javascript\n  // Loads the validator rules remotely with default options\n  const rules = await validatorRules.fetch();\n\n\n  // The raw unprocessed rules\n  console.log(rules.raw);\n\n  // All tags, combined with their respective attribute lists\n  console.log(rules.tags);\n\n  // All extensions\n  console.log(rules.extensions);\n\n  // Get all tag names used in AMP for Email\n  // The supported formats are AMP, AMP4EMAIL, AMP4ADS and ACTIONS\n  const tags = rules.getTagsForFormat('AMP4EMAIL');\n\n  // Display their names\n  console.log(tags.map(tag => tag.tagName));\n\n  // Get information about an extension\n  const ext = rules.getExtension('AMP4EMAIL', 'amp-carousel');\n\n  // Display supported versions\n  console.log(ext.versions);\n```\n\n### Format of rules\n\nThe rules used closely follow the proto definitions from [validator.proto](https://github.com/ampproject/amphtml/blob/master/validator/validator.proto).\n\nSpecifically:\n\n-   The `raw` property is unprocessed [ValidatorRules](https://github.com/ampproject/amphtml/blob/master/validator/validator.proto#L643), the same format used by `https://cdn.ampproject.org/v0/validator.json`\n-   The result of `getTagsForFormat` and the `tags` property is a list of [TagSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L463)\n-   The result of `getExtension` is [ExtensionSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L388) with the `htmlFormat` field from `TagSpec`\n-   The `extensions` property a list of [ExtensionSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L388) with the `htmlFormat` field from `TagSpec`\n-   The `errors` property combines [ErrorFormat](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L874) and [ErrorSpecificity](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L869)\n\n### Options\n\n`fetch` optionally accepts an options object allowing you to customize its\nbehaviour.\n\nThe following options are supported:\n\n   * `noCache`: true to always fetch latest rules (by default, subsequent calls to `fetch` reuse the same result).\n   * `rules`: object to use locally specified rules instead of fetching them from the AMP CDN.\n   * `url`: override the URL where validator rules are fetched from.\n   * `source`: one of `'local'` (load rules from local file named \"validator.json\"), `'remote'` (fetch rules from CDN) or `'auto'` which is the default (tries looking for the local file first, then tries to fetch from CDN).\n\nExample:\n\n```\nvalidatorRules.fetch({\n  noCache: true,\n  source: 'remote'\n});\n```\n","gitHead":"386bd4636da2dfd92569a6f0c0ede7bd2b49580c","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator.json --output validator.json"},"_npmUser":{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git"},"_npmVersion":"lerna/3.16.0/node@v10.16.0+x64 (darwin)","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"10.16.0","dependencies":{"cross-fetch":"3.0.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_1.0.0-beta.7_1563976286035_0.11469346228603738","host":"s3://npm-registry-packages"}},"1.0.0-beta.8":{"name":"@ampproject/toolbox-validator-rules","version":"1.0.0-beta.8","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@1.0.0-beta.8","maintainers":[{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"choumx","email":"willchou@google.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"kristoferbaxter","email":"kbax@me.com"},{"name":"prateekbh","email":"prateek89born@gmail.com"},{"name":"sepandparhami","email":"sparhami@google.com"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/master/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"77f9695388d79e286effe30c0f4e73ebc8006007","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-1.0.0-beta.8.tgz","fileCount":6,"integrity":"sha512-VC/rXRC0uVJ2pH9e5aSl0xHLhABJuzmCn3Elta/pE76kjSfARIY2wcD/aPE6qgwL0tig4QH9uPCjmBUhAx6MUQ==","signatures":[{"sig":"MEUCIQC9utvW3YDsJRJzy13BDBQYp9T3ZLDVADeISMebqR3C+QIgTUtla5syqZPpSME86pRwyMO3npplcOyXu43lNDnKSg0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23601,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQqwrCRA9TVsSAnZWagAAzcoP/jxmcnQVqmoRWiDQELwV\nCNtUVlM82fc6CPQBiuvcmfC5VUMM4MxRDPKsyyqBEwbSu7XzrM/EqKpo5r77\nTNGeGcNtnLZ8MvGI+frrLrjIdMj2Ptum8bVPGleGt+XmFC+Yui1tD22CJ+C6\nxccdKe2b6fix5mfTFsYZoO0sXoJ3KEt4Lw6v/uWmYWeTUlkFdGjg+m1n8zCh\naVLOeTKoV3kTZKu0qQ1whOzboLkr1zuxxQ+C7NBu1WnjQIEUhacLAIeCuq1o\n+Fb7Q9Yz/v1lgAL7iHS8LfkLXcZOZPyTE4of0eqMtJs1tswkLMLNH02g39wE\nazVUHjFy0NTEosioDncLzOf61FjStDgXC0HNwCeP8mFGH7TG+envjS+FqLG3\nNIVeu5AThV8X4/V3FqYu5whXeVd7gefDXoRCsoN16g4NgWJ/0HloiTJmtm2F\nadFdnppbAaKQ9NRfMK4u8LBo5rR2gxggT5IFL+W9DzutaEfAlaO7yBCn8ySM\nQDUPOX+nIPdoXtoxJVi+hn8y6r7s5GnS2MkQlTt/kXOVUbOdFEJS03x/+NNm\ngqAlsLqkJm9gWf1xl7+gbfVHnaOaf/AQMHBxtjk5caInUVf62YCZRnfoElCJ\nbI14u/hR/6L2DvlV4734x3C5ac2AMtpNujCYNphXDDmWhvXQd2/PANtflJKA\nvjh9\r\n=bxIw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# AMP-Toolbox Validator Rules\n\nQueries published AMP Validator rules and extracts information about required\nmarkup and attributes for all AMP formats.\n\n## Usage\n\nInstall via:\n\n```\n$ npm install @ampproject/toolbox-validator-rules@canary\n```\n\n### Including the Module\n\n#### ES Module (Browser)\n\n```javascript\nimport validatorRules from '@ampproject/toolbox-validator-rules';\n```\n\n#### CommonJs (Node)\n\n```javascript\nconst validatorRules = require('@ampproject/toolbox-validator-rules');\n```\n\n### Using the module\n\n```javascript\n  // Loads the validator rules remotely with default options\n  const rules = await validatorRules.fetch();\n\n\n  // The raw unprocessed rules\n  console.log(rules.raw);\n\n  // All tags, combined with their respective attribute lists\n  console.log(rules.tags);\n\n  // All extensions\n  console.log(rules.extensions);\n\n  // Get all tag names used in AMP for Email\n  // The supported formats are AMP, AMP4EMAIL, AMP4ADS and ACTIONS\n  const tags = rules.getTagsForFormat('AMP4EMAIL');\n\n  // Display their names\n  console.log(tags.map(tag => tag.tagName));\n\n  // Get information about an extension\n  const ext = rules.getExtension('AMP4EMAIL', 'amp-carousel');\n\n  // Display supported versions\n  console.log(ext.versions);\n```\n\n### Format of rules\n\nThe rules used closely follow the proto definitions from [validator.proto](https://github.com/ampproject/amphtml/blob/master/validator/validator.proto).\n\nSpecifically:\n\n-   The `raw` property is unprocessed [ValidatorRules](https://github.com/ampproject/amphtml/blob/master/validator/validator.proto#L643), the same format used by `https://cdn.ampproject.org/v0/validator.json`\n-   The result of `getTagsForFormat` and the `tags` property is a list of [TagSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L463)\n-   The result of `getExtension` is [ExtensionSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L388) with the `htmlFormat` field from `TagSpec`\n-   The `extensions` property a list of [ExtensionSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L388) with the `htmlFormat` field from `TagSpec`\n-   The `errors` property combines [ErrorFormat](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L874) and [ErrorSpecificity](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L869)\n\n### Options\n\n`fetch` optionally accepts an options object allowing you to customize its\nbehaviour.\n\nThe following options are supported:\n\n   * `noCache`: true to always fetch latest rules (by default, subsequent calls to `fetch` reuse the same result).\n   * `rules`: object to use locally specified rules instead of fetching them from the AMP CDN.\n   * `url`: override the URL where validator rules are fetched from.\n   * `source`: one of `'local'` (load rules from local file named \"validator.json\"), `'remote'` (fetch rules from CDN) or `'auto'` which is the default (tries looking for the local file first, then tries to fetch from CDN).\n\nExample:\n\n```\nvalidatorRules.fetch({\n  noCache: true,\n  source: 'remote'\n});\n```\n","gitHead":"6f291b4f9b0a00a24e3af763c918a2b70d47bb5e","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator.json --output validator.json"},"_npmUser":{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.0+x64 (darwin)","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"10.16.0","dependencies":{"cross-fetch":"3.0.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_1.0.0-beta.8_1564650538733_0.09087021267862294","host":"s3://npm-registry-packages"}},"1.0.0-beta.9":{"name":"@ampproject/toolbox-validator-rules","version":"1.0.0-beta.9","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@1.0.0-beta.9","maintainers":[{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"choumx","email":"willchou@google.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"kristoferbaxter","email":"kbax@me.com"},{"name":"prateekbh","email":"prateek89born@gmail.com"},{"name":"sepandparhami","email":"sparhami@google.com"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/master/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"154a7ff334a2bf6c92d9f701f49e1a4b0246b852","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-1.0.0-beta.9.tgz","fileCount":6,"integrity":"sha512-577AMNKGnyBWZTDmgNoBSeQgWGA33letBJ8kaoc+HKEISYOvrKDlGPeXfhe0SNdKlc4sqLJj1BQTGi2jRgY9Vg==","signatures":[{"sig":"MEUCIHVW39cEAO+sKPYK5ha3n/s3pF0OORN2W8z9nJu6uMpfAiEAxWzJjZgplcLFKPYsRunm5GfVPPUKTVs6asRis1nNWZA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23601,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQq3ICRA9TVsSAnZWagAAIogP/1A86zbkxReIdDavJaHI\nr7qkiPfrwds43qctOjF+HfG+hB4sR6PETU5dme0ggByqHFgTXU/HrzEEBpGJ\nvO5EtCP/UqMqgdkzAV7n1V6/NrSCHJGE5czSiX11bbvY+BZ1jHdM9lrItI6x\n2S5ayYPv8Icl9iZvBwpz6rJfgkZzmXSZDwWOdFi6+43LnFMsnacDpkLR4qJa\nWH/JXfQbs+e1vzSJMYkdb33pQYCj1PT/esuJQ+0hABtUNVCJzkT4tcErQ5u3\nJY/K9REzQaUN1jA0hPoGQFnZhJxX7OUoRDkIH5vdoHrhlBjxN1wWGOgLLjhb\n2Rh0UnSTRZ9La56Bk+4+E+eWDV3dAL24OFOGTVi8an1bztz2Yu7mZkwxQEn9\nnURB6/5AVKfk44JUHuq++psvCZY4YKs91Co2LbiPtHR+E+uHUWt5InYQjvJX\n0oi95ZNgH71ANb7bNvQcM1o3ojaNjLOF+fBnUQjdiQnH3O+z5DwoCdmgw/QT\nnODoT1rg4wUdfBIUWdUGeoN6GJMvkQQovUDFVY7AuqQJJTxS6EBVcnuIlIwt\npG0Qbs1MdBCUxVxMtRTSwa4exIYL1h8Qsy4E/s9XtxMM00bnUyTWu+2zo8e6\nqmdcNwTeFkZmjyELvQLqus3tHxXDMMZudvjc/136oe5Iu4d8Bi2sRuH8/oSh\nJN99\r\n=kcve\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# AMP-Toolbox Validator Rules\n\nQueries published AMP Validator rules and extracts information about required\nmarkup and attributes for all AMP formats.\n\n## Usage\n\nInstall via:\n\n```\n$ npm install @ampproject/toolbox-validator-rules@canary\n```\n\n### Including the Module\n\n#### ES Module (Browser)\n\n```javascript\nimport validatorRules from '@ampproject/toolbox-validator-rules';\n```\n\n#### CommonJs (Node)\n\n```javascript\nconst validatorRules = require('@ampproject/toolbox-validator-rules');\n```\n\n### Using the module\n\n```javascript\n  // Loads the validator rules remotely with default options\n  const rules = await validatorRules.fetch();\n\n\n  // The raw unprocessed rules\n  console.log(rules.raw);\n\n  // All tags, combined with their respective attribute lists\n  console.log(rules.tags);\n\n  // All extensions\n  console.log(rules.extensions);\n\n  // Get all tag names used in AMP for Email\n  // The supported formats are AMP, AMP4EMAIL, AMP4ADS and ACTIONS\n  const tags = rules.getTagsForFormat('AMP4EMAIL');\n\n  // Display their names\n  console.log(tags.map(tag => tag.tagName));\n\n  // Get information about an extension\n  const ext = rules.getExtension('AMP4EMAIL', 'amp-carousel');\n\n  // Display supported versions\n  console.log(ext.versions);\n```\n\n### Format of rules\n\nThe rules used closely follow the proto definitions from [validator.proto](https://github.com/ampproject/amphtml/blob/master/validator/validator.proto).\n\nSpecifically:\n\n-   The `raw` property is unprocessed [ValidatorRules](https://github.com/ampproject/amphtml/blob/master/validator/validator.proto#L643), the same format used by `https://cdn.ampproject.org/v0/validator.json`\n-   The result of `getTagsForFormat` and the `tags` property is a list of [TagSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L463)\n-   The result of `getExtension` is [ExtensionSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L388) with the `htmlFormat` field from `TagSpec`\n-   The `extensions` property a list of [ExtensionSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L388) with the `htmlFormat` field from `TagSpec`\n-   The `errors` property combines [ErrorFormat](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L874) and [ErrorSpecificity](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L869)\n\n### Options\n\n`fetch` optionally accepts an options object allowing you to customize its\nbehaviour.\n\nThe following options are supported:\n\n   * `noCache`: true to always fetch latest rules (by default, subsequent calls to `fetch` reuse the same result).\n   * `rules`: object to use locally specified rules instead of fetching them from the AMP CDN.\n   * `url`: override the URL where validator rules are fetched from.\n   * `source`: one of `'local'` (load rules from local file named \"validator.json\"), `'remote'` (fetch rules from CDN) or `'auto'` which is the default (tries looking for the local file first, then tries to fetch from CDN).\n\nExample:\n\n```\nvalidatorRules.fetch({\n  noCache: true,\n  source: 'remote'\n});\n```\n","gitHead":"2b6eaa91c3654fc1523f7fc2ff93b37579b52869","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator.json --output validator.json"},"_npmUser":{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.0+x64 (darwin)","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"10.16.0","dependencies":{"cross-fetch":"3.0.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_1.0.0-beta.9_1564650951472_0.8394600228654776","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@ampproject/toolbox-validator-rules","version":"1.0.0","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@1.0.0","maintainers":[{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"choumx","email":"willchou@google.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"kristoferbaxter","email":"kbax@me.com"},{"name":"prateekbh","email":"prateek89born@gmail.com"},{"name":"sepandparhami","email":"sparhami@google.com"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/master/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"5aff2d0f318afe1e9b0ccd7380ae4aea22f28976","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-1.0.0.tgz","fileCount":6,"integrity":"sha512-21IC5gMRPNoBq1f1Fb240q5GPdlgxEG+HUWCc9kJSYDLzp4egZclbdDZC9d09H0hoy/VZb9pURi5oF8S1Bp0UQ==","signatures":[{"sig":"MEQCIF55uMwYPXHvYGuZ/n7Jj7gT45RSAerNTws+uOxr7h3qAiAZwDd/Q1pmrLe6GAilI7rSmuXz5bq5mb/khmM/pF8nxg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23587,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdSdwoCRA9TVsSAnZWagAAeLwP+wV3Sy3YetRI164eCcg+\nGefjScWAYDmViC7lm8TdfNX0Zcr3pZPUb8iCG51Un39Hpnvt/eWudp5xoR2Y\nyFkSrt14fIw6CZBPAxbIyXyC6KbsVqBXn6tiry6BzKaU8AfOJJ7axGmt+FUj\nXrFlx8XqnOlQy0T8OhQoTp1Eu6nDo8YqyECdxLegTXu40Ttuncb6V+Pv+cyH\n1Q/Rbrjn6LW3bwKgNcum6mrV2h/YOo6LQb6Rs5c16bcdB1wlkyzv4dLtHmYV\nJZzQphNjggw6idWYWgVQvBVEc7wZYvoEmKse1VDKFG9m2XNcxp3RfosXgwoN\nCeD2TqL+XgRdyH82vZbNkCa1fSBdu7r5oWmxf7tkREqiY/rDxn5qLlJ/9Hg2\nXDdZfpeUXgN0yoQq12gyVEYz1bQjve6GkfbkR7dnRNmB7aHz7bzctEmldEsr\n95QqxU+3Vqct8NYPNjEAEKDuZ95OP7VDkQBosws/2SU1SeSqgW/LwwDI/Rlb\nnDlEIZrqbzQct21+BjelzhVxK1KR6ZkmYLpts3hFslO/xh1GG9EgyX1qqRAl\nZSYtonbxZyaLSAXLY1hr0xn86ibTeLScVdnaS1V+/7RWfHvLfnzw7qBk3JAk\nnL9Li+qLIfEhkpANifcFoztnuF6isruN+nxVigUgJeFcDLhUBo0VaZbE8qhe\nPKw6\r\n=WqZr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"cc04a8267a51e57290ca81610ac6854de1aea986","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator.json --output validator.json"},"_npmUser":{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.0+x64 (darwin)","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"10.16.0","dependencies":{"cross-fetch":"3.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_1.0.0_1565121575835_0.043239281715558686","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@ampproject/toolbox-validator-rules","version":"1.0.1","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@1.0.1","maintainers":[{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"choumx","email":"willchou@google.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"kristoferbaxter","email":"kbax@me.com"},{"name":"prateekbh","email":"prateek89born@gmail.com"},{"name":"sepandparhami","email":"sparhami@google.com"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/master/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"8c305c0898239d152223b3b3397b66c70b3c5e8b","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-1.0.1.tgz","fileCount":6,"integrity":"sha512-+mExrRkBBaZLV9o735k4p13wJuoCfwAFg5FoFcHvmI+dsXhZKTx3pxV6uNJC9hBTOQ2NVx8OE0rZfO48cw8+Pw==","signatures":[{"sig":"MEUCIQChj5YL39Ik6Kqx2O7zmIJ+5kCQ5sZwpJneoozH2YH7JQIget0JL5H2Zdkw3ryBZNS0bbbNwAKf34rx+9XnCIxrnX0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23587,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdSd7ZCRA9TVsSAnZWagAAvssP/1sBMuCVZjaEvCYZzRQq\nWD8q/C06oSgwSzQQ4/7QDh/klJBG7vG8fteQXeRMVR6Gmkq0Z5tYe5lRxIXf\nDh6bf/9dErIFIIJ1GS54VcQA1h8hDy5RGMTbbUKQ+djIn1dWXqwGRm7WlCUw\nPXKrbOP4ZDcUEDy7WyJ70oabCBSiJTuPdT6Ck/f2FbqoaA6chE4xmg33br4s\nPWfkfJUMO+UeNi3QPGU2jmDrOAsXKcAStlRUg0oby2n+ZYgmVs/i+vz1FFn1\nAORmIq02cRHGn+WFRJ3qUZEP793XqDm2XOLOSp3j+iQKv8waUYtb94uQCE1J\nGVCc3WjTy85YhtQH44UJdU/TElyVRQ3xP6/lZ7I3VXw1fxsDd5ZFLTIdAzeG\nG5n8U2Z7iVgFE3waLr2+71psaNeoG0gQLhwHoW7WfGEzFMtSBXPc+wMV63cn\nFfdefR59m1607iH1t3Lxd1GYzvuLPj0Hwt5YDYKzQFgNa+x09nmmZ/HgNrY+\nOLcwqn8/x4Lk5I2i9BNC4RGgLkF6FitrragZPcENniBZiT2C/JuZ2woHlrEE\nx3E7iqc8CEVXffwh2tW5TSfEqj2ANOKNBVRHRDL3dbaeuVZ8h4bOzxAsXVw8\njVxEf8V424oZbfHdketemjVzFLupVMS/oOrhF59nKi7LiD5Dk7rfaJnOcJf3\nAOQw\r\n=Xpae\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"4da05d4a419241bbcc8157553022af3a84676e9a","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator.json --output validator.json"},"_npmUser":{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.0+x64 (darwin)","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"10.16.0","dependencies":{"cross-fetch":"3.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_1.0.1_1565122264712_0.22983009290602308","host":"s3://npm-registry-packages"}},"1.1.0-beta.0":{"name":"@ampproject/toolbox-validator-rules","version":"1.1.0-beta.0","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@1.1.0-beta.0","maintainers":[{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"choumx","email":"willchou@google.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"kristoferbaxter","email":"kbax@me.com"},{"name":"prateekbh","email":"prateek89born@gmail.com"},{"name":"sepandparhami","email":"sparhami@google.com"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/master/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"d6793b7390b3c808cff839fb5f6fa5ea38c419d8","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-1.1.0-beta.0.tgz","fileCount":5,"integrity":"sha512-TXq9Fvu00kfQRZ406ifcdtElqJm2oyHvNhKW7BdJl0Vw1cMvbrZXSaZ+wzoklSAHnPtc8w67kmLolxtBoJJZkg==","signatures":[{"sig":"MEUCIQCN66/JhEypeXano+tsWRvdTSCi/jWuAAiAd6zdlNPeWQIgB7nVNJA6FY+tfZgxG0VVgE3glDnjctSG49gC+r26C+M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12405,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdaDU1CRA9TVsSAnZWagAALmwQAJBiyDpa6bfU3vQGebLR\n/imO8xa3dKly5zl6scFx0JvCGGUzZ9nCnmUuHxkJKaj6FcgELO6H1wwnrNfo\nm1lzBLpvWVWguHDaRBYF/kI9TSJoK++mMTVyUYNfhhnYXJdlYZ13KR+fLVJJ\nZCNk+lhkGxPetX+NRXsAZmbfXjKLGUDlCqemAL7LcbKmzaqgfMkrxT0qTBF3\nDaydACNpZAOdP+/RfErUPFPZ4Jxv/s7XZe7dwL32y68ed/plJjhDUITMBUAs\nxokLQyscxQw6I2lhywKmT2UQtKoV/pEo+8fWMI5mv/iXxiui6A7iv7Ngp90Y\nmb3O1fHJjV7w6N69MjMerk1R30cKkqP9oi4tXsIrSXHJd/bnXxMTUlGq0aSe\nmsv8dSmFhRCzSKH9gsm8CA1kYtuvK3Dehgzbd7jDlwtZNJLWEPOxwhZbBP1n\nmLmwfsyf5K+r/Z/4cYR4JjuNYBRjqKbvF6lfKxLFu2EQCoBAl4folq08fSen\nq9GaQhBP0N2zzOAoUGfjOOHI3ZzLUWOn5cvb3+V8wYtA5EIrZmBNjnhPPlqz\nubadig/hTukJs97SP+TyHtVTGvQfS0vSWS0MqEeDCQmcG36j31ATmJYglEL/\nyyr8Zf4m+nDhWI9uMDLC483Q2Lmy1jhd4/593T3v4A2Cmisw2axMr02O7Pe7\nY6vB\r\n=duaw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# AMP-Toolbox Validator Rules\n\n[![npm version](https://badge.fury.io/js/%40ampproject%2Ftoolbox-validator-rules.svg)](https://badge.fury.io/js/%40ampproject%2Ftoolbox-validator-rules)\n\nQueries published AMP Validator rules and extracts information about required\nmarkup and attributes for all AMP formats.\n\n## Usage\n\nInstall via:\n\n```\n$ npm install @ampproject/toolbox-validator-rules\n```\n\n### Including the Module\n\n#### ES Module (Browser)\n\n```javascript\nimport validatorRules from '@ampproject/toolbox-validator-rules';\n```\n\n#### CommonJs (Node)\n\n```javascript\nconst validatorRules = require('@ampproject/toolbox-validator-rules');\n```\n\n### Using the module\n\n```javascript\n  // Loads the validator rules remotely with default options\n  const rules = await validatorRules.fetch();\n\n\n  // The raw unprocessed rules\n  console.log(rules.raw);\n\n  // All tags, combined with their respective attribute lists\n  console.log(rules.tags);\n\n  // All extensions\n  console.log(rules.extensions);\n\n  // Get all tag names used in AMP for Email\n  // The supported formats are AMP, AMP4EMAIL, AMP4ADS and ACTIONS\n  const tags = rules.getTagsForFormat('AMP4EMAIL');\n\n  // Display their names\n  console.log(tags.map(tag => tag.tagName));\n\n  // Get information about an extension\n  const ext = rules.getExtension('AMP4EMAIL', 'amp-carousel');\n\n  // Display supported versions\n  console.log(ext.versions);\n```\n\n### Format of rules\n\nThe rules used closely follow the proto definitions from [validator.proto](https://github.com/ampproject/amphtml/blob/master/validator/validator.proto).\n\nSpecifically:\n\n-   The `raw` property is unprocessed [ValidatorRules](https://github.com/ampproject/amphtml/blob/master/validator/validator.proto#L643), the same format used by `https://cdn.ampproject.org/v0/validator.json`\n-   The result of `getTagsForFormat` and the `tags` property is a list of [TagSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L463)\n-   The result of `getExtension` is [ExtensionSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L388) with the `htmlFormat` field from `TagSpec`\n-   The `extensions` property a list of [ExtensionSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L388) with the `htmlFormat` field from `TagSpec`\n-   The `errors` property combines [ErrorFormat](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L874) and [ErrorSpecificity](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L869)\n\n### Options\n\n`fetch` optionally accepts an options object allowing you to customize its\nbehaviour.\n\nThe following options are supported:\n\n   * `noCache`: true to always fetch latest rules (by default, subsequent calls to `fetch` reuse the same result).\n   * `rules`: object to use locally specified rules instead of fetching them from the AMP CDN.\n   * `url`: override the URL where validator rules are fetched from.\n   * `source`: one of `'local'` (load rules from local file named \"validator.json\"), `'remote'` (fetch rules from CDN) or `'auto'` which is the default (tries looking for the local file first, then tries to fetch from CDN).\n\nExample:\n\n```\nvalidatorRules.fetch({\n  noCache: true,\n  source: 'remote'\n});\n```\n","gitHead":"cc04a8267a51e57290ca81610ac6854de1aea986","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator.json --output validator.json"},"_npmUser":{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git"},"_npmVersion":"6.11.2","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"10.16.3","dependencies":{"cross-fetch":"3.0.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_1.1.0-beta.0_1567110452470_0.7213784045783747","host":"s3://npm-registry-packages"}},"1.1.0-beta.1":{"name":"@ampproject/toolbox-validator-rules","version":"1.1.0-beta.1","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@1.1.0-beta.1","maintainers":[{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"choumx","email":"willchou@google.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"kristoferbaxter","email":"kbax@me.com"},{"name":"prateekbh","email":"prateek89born@gmail.com"},{"name":"sepandparhami","email":"sparhami@google.com"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/master/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"7b723f795db0d394303b6edf7866c5f54d283989","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-1.1.0-beta.1.tgz","fileCount":6,"integrity":"sha512-qbzkX3Rlfw6SQN06sltFmy/TRELpt8GOHvhUiBSUnKxNyTwzMURzEYyeyUBbiDepG92CiYEGzm1ofWQkKuHDWA==","signatures":[{"sig":"MEYCIQDGNJCayQNVBrV0quYzoXPiTVp5IO9WjcGx4c/eIQhonAIhAMDzmTASp/vHqWZK8tJvl53KLZi0tjCZY4NDAu/+ffmO","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23748,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdg9UACRA9TVsSAnZWagAAT5IP/2tIocWJ4e6NieDYz5mf\nzQGK+267plR2njmxKUlAdCKjSS39L2j0do1CAwC2V35WFE/8dQ8THIEsnDui\n73Uaj//f5Jy0IxEjm+glP/EM5j+Du7dj5ARTZSgooZYxeGsA8lN9NvTRmxCG\nHkVkYpWSDljXk9aWshQ5jP9OxX1aX9S0DUwfw8/DTrJ1WUNgSQn/gDknipq7\nmVjB6k+4CxFSjtIX0qajm/uspn/i6mjJTsvUyq4VI2KWAIOeHWvEhcT7RUkg\n2cDIowpZ5bGZ+MtIRTbhA19o7QM2KAZ21IctkiUpVouYAW0NHxSBcKRP0wef\nXH4G9rov2spOIe4cgXjz3BJarSSNEvB2ZD4ZL/FLYb9qh+rYsNjZVv/kDjz7\nQnBVYpT05rkKH05pvoR8deSVxkun1sJTeYlAZqGbFIpJXNAYSoMd7qfN0Zf6\nlw/Fi2Jj1oEIQo1i2SbUOhmMEiW1kjnDgeBFjBK/ABS/rTTEqtVtpltPcJZb\neW7lJmJQQ1wY6S9wVv4Sxi3xei+iNxJpI2bljvO9np9wAu4lsHqthV1chXcL\nIrRs/dv78bgI3t4xMKCJ/EoVSIEI0Et5Wj6xgXiT4f8Z7SnNSI0thrBnbaIA\ncoFVAO8CsizB8VPyRPfqW6tYP00HtPEzvqjF6TDc5B54hryPGZ9eMbCw/4ZL\nOw8h\r\n=HWAq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# AMP-Toolbox Validator Rules\n\n[![npm version](https://badge.fury.io/js/%40ampproject%2Ftoolbox-validator-rules.svg)](https://badge.fury.io/js/%40ampproject%2Ftoolbox-validator-rules)\n\nQueries published AMP Validator rules and extracts information about required\nmarkup and attributes for all AMP formats.\n\n## Usage\n\nInstall via:\n\n```\n$ npm install @ampproject/toolbox-validator-rules\n```\n\n### Including the Module\n\n#### ES Module (Browser)\n\n```javascript\nimport validatorRules from '@ampproject/toolbox-validator-rules';\n```\n\n#### CommonJs (Node)\n\n```javascript\nconst validatorRules = require('@ampproject/toolbox-validator-rules');\n```\n\n### Using the module\n\n```javascript\n  // Loads the validator rules remotely with default options\n  const rules = await validatorRules.fetch();\n\n\n  // The raw unprocessed rules\n  console.log(rules.raw);\n\n  // All tags, combined with their respective attribute lists\n  console.log(rules.tags);\n\n  // All extensions\n  console.log(rules.extensions);\n\n  // Get all tag names used in AMP for Email\n  // The supported formats are AMP, AMP4EMAIL, AMP4ADS and ACTIONS\n  const tags = rules.getTagsForFormat('AMP4EMAIL');\n\n  // Display their names\n  console.log(tags.map(tag => tag.tagName));\n\n  // Get information about an extension\n  const ext = rules.getExtension('AMP4EMAIL', 'amp-carousel');\n\n  // Display supported versions\n  console.log(ext.versions);\n```\n\n### Format of rules\n\nThe rules used closely follow the proto definitions from [validator.proto](https://github.com/ampproject/amphtml/blob/master/validator/validator.proto).\n\nSpecifically:\n\n-   The `raw` property is unprocessed [ValidatorRules](https://github.com/ampproject/amphtml/blob/master/validator/validator.proto#L643), the same format used by `https://cdn.ampproject.org/v0/validator.json`\n-   The result of `getTagsForFormat` and the `tags` property is a list of [TagSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L463)\n-   The result of `getExtension` is [ExtensionSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L388) with the `htmlFormat` field from `TagSpec`\n-   The `extensions` property a list of [ExtensionSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L388) with the `htmlFormat` field from `TagSpec`\n-   The `errors` property combines [ErrorFormat](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L874) and [ErrorSpecificity](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L869)\n\n### Options\n\n`fetch` optionally accepts an options object allowing you to customize its\nbehaviour.\n\nThe following options are supported:\n\n   * `noCache`: true to always fetch latest rules (by default, subsequent calls to `fetch` reuse the same result).\n   * `rules`: object to use locally specified rules instead of fetching them from the AMP CDN.\n   * `url`: override the URL where validator rules are fetched from.\n   * `source`: one of `'local'` (load rules from local file named \"validator.json\"), `'remote'` (fetch rules from CDN) or `'auto'` which is the default (tries looking for the local file first, then tries to fetch from CDN).\n\nExample:\n\n```\nvalidatorRules.fetch({\n  noCache: true,\n  source: 'remote'\n});\n```\n","gitHead":"b5c4db9bdc2962da78862a181d409f6082b9b3ce","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator.json --output validator.json"},"_npmUser":{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"10.16.3","dependencies":{"cross-fetch":"3.0.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_1.1.0-beta.1_1568920831394_0.9984578200476195","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@ampproject/toolbox-validator-rules","version":"1.1.0","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@1.1.0","maintainers":[{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"choumx","email":"willchou@google.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"kristoferbaxter","email":"kbax@me.com"},{"name":"prateekbh","email":"prateek89born@gmail.com"},{"name":"sepandparhami","email":"sparhami@google.com"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/master/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"2d960ae1a765fe28984da63c07d553fb6ee8bde7","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-1.1.0.tgz","fileCount":6,"integrity":"sha512-GxSif/7N42JImi8t15MVlJ1BG2olDbGcXeh07b4xzV3ZYUXenUxOfXyIcghMFyryabWglOki0vRrjxLA10jiDA==","signatures":[{"sig":"MEQCIGef03SINJzSvh0B2tUaOk4Sz3745yPdjyNGMlzOQ0EbAiAFMF3PtuW5FTDDq2utiKy3O3cX+or0krEezUEcEchJLw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23741,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnJmwCRA9TVsSAnZWagAAr90P/2aLECADnNpNQz3pPi85\n+VAh1j1Slokmh7928fVM0c9jlOvMF2Zv0HAY5HmBT7pc4nFscG+bdNWz28or\nN0q7BQobnpJWA9ALPKDsMgfnNEftEIpj/pnQZAa8v0vXYGQUVaTmcX52D1Jx\nlEi+B7y19qSzvn2xXhJl4CP1NOucTdCKFPkpE+YlCxth0TpYopXx5kjeETdt\nGzahyhZyops8iUQTfpf7Lgzfu/PsdRO7b9FAZeFrmzke/PloKHN+D4ATUHDA\nhRvcXUshi5gO1siIOtADwh4KxLjp3vZ/dqPTqDyNoPi84q3ZVU5jvo84GKN5\nNiX2WUjf0D8m4rC40v3e6Axem9vJJhtxCzl908Tpw+ZzKOYlDA/aBojrNWo4\nX9tsQCtE9l0MjFEVI4aPYuD4QmHR5asGTUgm43F4e6IS6BpSNj46rmFmQLno\nRhHYLOBTW0H79wfPBrSKn3n4xqF4dJDEZ0PaUq7wagZXeT22Cs+5ze7Ex5Hy\nGIdBBrH6T63w1nzum9X3UDUlfFSoJRjD4OqCHw5Rs14BCGGZmzfPIVn03tVJ\nKdY2Y4D6iMCfLRHERyrJTIqGs6X4hX0QKa+03WYJrogjTomnhJ7yjzD3k7Jj\n3O/rIdkPgCSns5yoLDQV/ka2tYeFNhXkK/ma5IrZZIg+4xGCN/6YgyxXdr3s\nRdhw\r\n=pOYC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"783938063dde0c32f5a79af4148eec53f26e903f","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator.json --output validator.json"},"_npmUser":{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git"},"_npmVersion":"lerna/3.16.5/node@v10.16.3+x64 (darwin)","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"10.16.3","dependencies":{"cross-fetch":"3.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_1.1.0_1570544047660_0.1314349840393687","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"@ampproject/toolbox-validator-rules","version":"1.1.1","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@1.1.1","maintainers":[{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"choumx","email":"willchou@google.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"kristoferbaxter","email":"kbax@me.com"},{"name":"prateekbh","email":"prateek89born@gmail.com"},{"name":"sepandparhami","email":"sparhami@google.com"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/master/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"f172169fe96203cc7594327b5a76cea7b35d8903","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-1.1.1.tgz","fileCount":6,"integrity":"sha512-w3zHv2gO6Gv47dOOBwAM/xmN8YhGP/mWohnlun6ouYiPV2oMRqJ34xlcffbCoZf/D6q+chRMaSGa/td5jik/Fw==","signatures":[{"sig":"MEYCIQCRpFz3zo9NsKHnUksa89Q31vwYm8l7mVbYk3HiVkFQpQIhANhDE6oL/Al5wL3VNF+zBVJyeLYgM6Y80JkrjaT5ilZD","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23741,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnKCDCRA9TVsSAnZWagAA/y4P+wadinSSKabQ+umbbDbV\nWkarSingLhuKqja+0n5bTQQO4VT0+ZENWhVlLwEEmDWXWaSJhE6uHkXbC7vW\ny3NIlbsgekZVRDsrBcTOX4TDoz1viHailoMUQBu+vQEYbJIfqBYFkQTI6YTf\nFMfdSWln/g3mt1ODZqaITVhSIKhYK7TYejg2FQCxnVt44H1z1tVju4PMumNg\nnBIj8ZKYL//HolLijMhx3n0eXwQdxwmwG1KM6d/76E4YlFCwf/jWps69NimH\nksCFsgk5bQfAKlkANLEQPLRgmq6f99Ol/hP4gTMEMiU/01TYT4qZiMw9zdsw\nzbv4iRghpzXzmffyksIqGjSvS2FH9BebJx7MZExCi6/DrnC5h880lSW+BDPR\nIJKd1XIjonWcNOf0zLG8y/dR7Qu0KYZR+MDWul3NGUNOb90WsVAA4s+g7uUd\nEP0CbS6qTQOh3++UjLZxRrbNlqQ+OlVXMK2piMIGOe9tsUTCr5AGgU7c52aZ\nYjflcZ0PTWb83bAPXPS4+E1XJGyjjTanKM5upoLcXtuow0vxzjpxarySAamr\n5v5p4xVjdHfo+I+wHa69Jmc1W+IljtrrCzb9XGehKzFkFIRnokRFOhvHhm4x\n8Fsxb+aQ7215X1j9fr66SHGLT+cs/0j711LS6PlRCMKq/WPyljMmWAX1fgzj\njiYG\r\n=pSLY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"6ce20613dba3e66b7722df599f62f35dc6391962","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator.json --output validator.json"},"_npmUser":{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git"},"_npmVersion":"lerna/3.16.5/node@v10.16.3+x64 (darwin)","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"10.16.3","dependencies":{"cross-fetch":"3.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_1.1.1_1570545794954_0.8620520422348874","host":"s3://npm-registry-packages"}},"2.0.0-alpha.0":{"name":"@ampproject/toolbox-validator-rules","version":"2.0.0-alpha.0","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@2.0.0-alpha.0","maintainers":[{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"choumx","email":"willchou@google.com"},{"name":"erwinmombay","email":"erwin.mombay@gmail.com"},{"name":"fstanis","email":"filip@stanis.me"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"kristoferbaxter","email":"kbax@me.com"},{"name":"sepandparhami","email":"sparhami@google.com"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/master/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"e7523bb4523239e738d6ed73af43c574d4a12620","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.0.0-alpha.0.tgz","fileCount":6,"integrity":"sha512-QD838RHnp7o/mwBei7rUJvVfqvOhUljARgp2IsOhOPUv12YfhwBx3pCdjpmyMss7tICjZ1twoPnU6NvtMQFcmQ==","signatures":[{"sig":"MEYCIQDv+DyLnDFnHgfh07BdNoD0Bjq93LXTDtMsK9PAbMPwEwIhALO0+6J4a4bqn4ZhUkRfXQeqC9PkkO2/ALhnPueaP1Rh","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23798,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeKFx5CRA9TVsSAnZWagAAKVgP/2+QF81N+IQmqf9jkZVZ\npRjcKAoih5OUjEPKzwzRkd7lwU3ZLkR8HQmIRlCncAQSaGxjMnexKsDFumOY\nnz7vqFBlcJj65wbD09W7g3EiXW5pa146Ayw5kMDis027s7RIvQpOErkb40UB\n7q/QzAXC8k2Kk1tDZu2OmgAsU9iq815zIuT7usZr32CeKXIujgLjQRBw12uR\nnQDFvnGu3CioGFFOmB+xETHnY73ezpMVQv1W6p6fv9PFJ7/YRKEouDOOdM3O\n/9yTkDuvD92lUl8g2b+KCsTU7AoosO+f9jk/L+ewR6ybTx4jSq07fNPQ79Q3\nm565HPSt4AtC5FrVNQHbvmXDAd4VpcT67c+I0j3qcOPQbIIAJRxMk6YyTqwc\njfUZFDpsCh2XpeOt1DyDzQzN4Pitydgh3+QnhKvZAh090OisXkWncUkFUXnv\nUdWYwXQTvsdHTJEZpSf+0zHUVGaTY0pIplW4xktcuY2UAXUrzzb8+LJJqtSR\ngdjnDkynUgPT4qy0WAXctxcejOfbDfkpwmxuoGlVfUItLBBC7JIMIsY6L4k7\ngANeBqlDqd9EamsmaUqiWQ7KCFrkO3TlCdT9s2Re4RdAZAPy6q4gg6YASLFu\nW0zAyOlnZAtJ3zTl8C0djRfZk1hev6r3dC/XTh0F/j4XVl4C0P9wTjefpFmt\nSGRv\r\n=rgAK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"6140009b75eaa18afeaccf0a5f1996f490dcebfb","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator.json --output validator.json"},"_npmUser":{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git","directory":"packages/validator-rules"},"_npmVersion":"lerna/3.20.2/node@v12.14.1+x64 (darwin)","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"12.14.1","dependencies":{"cross-fetch":"3.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_2.0.0-alpha.0_1579703417436_0.3734650318581496","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@ampproject/toolbox-validator-rules","version":"2.0.0","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@2.0.0","maintainers":[{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"choumx","email":"willchou@google.com"},{"name":"erwinmombay","email":"erwin.mombay@gmail.com"},{"name":"fstanis","email":"filip@stanis.me"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"kristoferbaxter","email":"kbax@me.com"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/master/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"eefdce2f7f773e4675d72c7a1068c70105a647c3","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.0.0.tgz","fileCount":6,"integrity":"sha512-5f2IvT1m/zNtqfNXFE9V4ZtKofIttST65QL1wf4lKjBhJsbZgAAeR/u4DgOvftRVRmgn6IpUiWY1pt9xWaI5yA==","signatures":[{"sig":"MEUCIQCIJMzi6HUFkh+sGlm6a/soEN7Gw3pLCxSpnW1+ATVUugIgIp1+srg40i/dtLU5VYOC/v5YcQQ3T3bT0wt4YWgz3Qo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23790,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeRb6VCRA9TVsSAnZWagAAJoAQAIZjACCEINhUwZGP+Rs2\nteS7FggWUESv44PhipiRO2DB6yUGRpIpFILY5+9xroXfhlmrR0he3RU+ckMk\nC6HsAKXx6rfcPg+7fUZRbBgbF2vqdGOZWsCILl4kzSRoTU2ebFUCdCz0S3b4\nueWB3GsEly/8HDPfwa6vdfMsvmZgRXOtWFoAG5NxCX2gRUWhafg+4YOeg3iC\nPmmCJP+7oC6g9Amvb9lD7EK1PQ4jEFt42w6se8Xtp3yF9FjLU+Z+lfoYwjtr\nLw8as/10pTx+olQrjCWuBhAWhD6MubKfugJodpSGjMcfseAXyWCGdCT5a7Ue\n+QWCInjUUmYauTwLGgsrvjWc/Pqt7rQt2OAJTzB6APUsd2qKyMeBVZvaWMR5\nl5XOZkmKaDmi7CaUF60Ow1cWkj7K9OWmrfaC2V4vOen3WwlDPhFhp+z3iaDh\nooFntaWASzMYqM2++xbpljEPwv+h/8RlUbDhvhpsjKMAdpG8rstkEoXS6sKH\nPG9PvJI0vsM9EvdiwhAyAJyXXPv0PZocvNesnIma2cP6hbheMKjm0N2+aW6r\n2YIlKTNu3NVmSkraBynL3T3HDnIH1hobvhvoBgPUXSdioISnjD3kJvpIrd/I\ndJilYChSD/STp1YpZu7De6iRV9h0kevlXeRMnfgL8cibh3V5UvuSV16qs8Gv\n1xYq\r\n=SkVr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"908b78b9d007d18d97c50b5a79421d5936150233","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator.json --output validator.json"},"_npmUser":{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git","directory":"packages/validator-rules"},"_npmVersion":"lerna/3.20.2/node@v12.14.1+x64 (darwin)","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"12.14.1","dependencies":{"cross-fetch":"3.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_2.0.0_1581629077573_0.9089607684486916","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"@ampproject/toolbox-validator-rules","version":"2.1.0","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@2.1.0","maintainers":[{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"choumx","email":"willchou@google.com"},{"name":"erwinmombay","email":"erwin.mombay@gmail.com"},{"name":"fstanis","email":"filip@stanis.me"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"kristoferbaxter","email":"kbax@me.com"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/master/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"206d80b3660879deae04cdf70fa7473ab49c2680","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.1.0.tgz","fileCount":6,"integrity":"sha512-3RQeYpAJR8v+7hgH69gHp+v1RNhGaPb8eSwnzVBES8KybgDkWbE/mvYO95Q4PNkgWeYWK/QM5OyivLCtZanQ2Q==","signatures":[{"sig":"MEYCIQCE6lSeN+z+v//2oVBlL9DeX74LyiirO0Rg42y81W1pzwIhAM1plMtqHj8Vo/l6K27O8YE1Zlf80kxSZu46D4+ef2+2","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23667,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehFgDCRA9TVsSAnZWagAA718QAJkPW+Y7c2t7FLZ3FtLb\nKPb5Xope9oD633RUXNoK43Mzs5LK/CD705Xi++dZzLYPMobWy4iAjpE1rAYx\nadRgGLvM3TzVjb7nAwuTelAxF5oY5CS20SqhE/uurLeyYJbWW6LuAaNU3OwZ\n+GA4Q918AYPrQORV70b9EWxDNHtnY5ZpOj3C9gM7WDHC9q4kDJ2FIN91i5Gq\ngdehtu/lIEmKLZz1/jwYo/MmP/jgxUuDUZYzA1vuTRkA9Zs8Vzh5KvrVUmzs\n8Y9yyak+Ub6J3+17RefSpnzslB/ZpZ5Mj4Y6rGz1y4r1xv27XB0iVoCs2NNy\nWAMf0Qtas+EQxILGvAmrYqP4dCIjrKW8kZSiO/qoqZ8lN/AVy2SavSely8vA\nMbD4Y5E9YB/Qw7eE6omCyhaWnzYgZNLzjde/AUJnBBilBSaM9O0ufVBkf9Br\nSQWFFaY1QKs0XE0mTMQIDLYps+x6FL0J3lJ8w4IEOLZDjznXAfcVgz/siMVm\nNiZMOZjQgAD1f9zAprZlK1pnGcyRmE2j2ITmAGkZPR+/QcIggNAUWHSMimHg\nM0IJ1S5d3cC+Jdq8SKk1Ue6VLv9gfdquKn3vWgu0lV1HeYzz2tNvXjhKvu9z\nrA8AG60f91yU7CD/55iM5KDqXaYlNcwuk7OZh0qqDDRN47OidaVn4yLhGZe/\nqlfO\r\n=q5GX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"a6bc962a0af397c2fc21de1e8a730257947d8fb6","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator.json --output validator.json"},"_npmUser":{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git","directory":"packages/validator-rules"},"_npmVersion":"lerna/3.20.2/node@v12.14.1+x64 (darwin)","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"12.14.1","dependencies":{"cross-fetch":"3.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_2.1.0_1585731586780_0.19185958112106083","host":"s3://npm-registry-packages"}},"2.2.0":{"name":"@ampproject/toolbox-validator-rules","version":"2.2.0","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@2.2.0","maintainers":[{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"choumx","email":"willchou@google.com"},{"name":"erwinmombay","email":"erwin.mombay@gmail.com"},{"name":"fstanis","email":"filip@stanis.me"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"kristoferbaxter","email":"kbax@me.com"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/master/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"830a2bc22a09dc17ff37835991858902d04cfe19","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.2.0.tgz","fileCount":6,"integrity":"sha512-R5VkDmhmNatq9SuuHaeA2Uno4O5K4YSh11o6A/5jJZ2EjilAcpuAKvZlRp9tjucPWHi+/z/n5PCJ8YUxzCzWaQ==","signatures":[{"sig":"MEUCIB+KDfC8VyScqRSoI+g/GSZa7lttT3SbN+OVQURJrX37AiEA+2Io3xlTXBIujsY2IY8W2lpG2fSHcfBUK+0paDJJPno=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23667,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehvKCCRA9TVsSAnZWagAA958P/RDg1HkiSrgoFABqF6cl\nlb+eg7xM5ZPbO3KMWAxoCWmrBra0pRSqUltm+yao3JsqDmz5+hnmNPZFOcNm\njcLh7ALfhvmHpC4fs8iBc/PrFrez8Of9R3cmidf9Mh1Me7Y0p7Lmbc0KelE9\n0/vgdsmAnSUk7VygWd1osi/ZVCd9npO8P/XTWqJ411NY26TmuTMk6HK1GGat\nx7ETL7PjmoHBL/nxXwnOBv3IBfzbfPb+G3iktMAYaWrwF3mwFvTidtWSUkNx\nEoc9z7o1MMd7ff1aTrO8sOfoRXbChlyBDHieP8wjLZoXUCr7ZPSOHyvgULwG\nH20+wZbrsFT9rhL9ZuIMsVGfClvs7OTJov9sOnmg0KCqFO35I3xr+GEJ8cfz\n6NdBq5JoKKWSQpCSpnpIq1BTL3AqocSGARhfIRSJMlgbU99Bd31Bk4aop/hc\nbMLZKdKCBqp1MHDDjU2HQ29nHZKDwaWr5wk398WMO00eu/4AnyFUN2VqSorm\n53xSpkHMj7QDBi4Ahx3zFaMcN6aw1CykiTy6bqvgIz32nAllylTBGxjAthZW\nLcn282Tpn9a+0KS4O4QNPXC9afLXKP2vr5u4AdzhqrrLEXid5h0VjDW94GX5\n04Ktid2zm5Xm8jzDKwqKF145W5/l/GSG9E0Q3cF68T4c7lqIBmV9kL7kuvpd\nRgoT\r\n=Dif/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"e2bea7ac7d4cb6a57d196e124ee8a5f818123a02","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator.json --output validator.json"},"_npmUser":{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git","directory":"packages/validator-rules"},"_npmVersion":"lerna/3.20.2/node@v12.14.1+x64 (darwin)","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"12.14.1","dependencies":{"cross-fetch":"3.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_2.2.0_1585902209637_0.7899245185353345","host":"s3://npm-registry-packages"}},"2.3.0":{"name":"@ampproject/toolbox-validator-rules","version":"2.3.0","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@2.3.0","maintainers":[{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"choumx","email":"willchou@google.com"},{"name":"erwinmombay","email":"erwin.mombay@gmail.com"},{"name":"fstanis","email":"filip@stanis.me"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"kristoferbaxter","email":"kbax@me.com"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/master/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"047d8a8106ba777f1df308c19f1c1c41ffea4054","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.3.0.tgz","fileCount":6,"integrity":"sha512-S10YIyOKettoRDWoyRymRyjzWZD4/qW7YfHNhHAS13QVneabRcU5MF7vEwkG6dHWx/UdufT5GbqYnvpQRMNt3Q==","signatures":[{"sig":"MEUCIQC6A3hwUgC5lLNLP++4xm2hSiFCP0pNvWhztj6W10P6JwIgb3oclacd3XUmxrWRCQl5tmC7fRcUQ2tuqBUBdXVqiOw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23667,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeltR4CRA9TVsSAnZWagAAlsIP/3/PK5Fav1k1Jny+9IDF\nAiITN25Yd1NsyU48/3X0hxwte199OKttiQ1qMWMrFs8MW+aiE9U9u2PaC8b9\n1/s6Ss7bbJe4vBPC2vVIsv9CdzofgcfJct7wk5huvAiRJ5VJOv2AkmQytdVW\n8xBIo8ZufncKV3xlwfhptsYtiakU1LkQNxDcPGyBmNVXygYXt3I710iPgqXQ\n1jW03LnRWcFMRvOgwHhTaXixAGhqx4paPrAfFaXATn1bTt7z/dFDzSjr/MQp\nvZxY/f0yfaw840tWK8F5Gg35EX/wwexKQHQh86KrCAzAoVdot0ZvG0WSg7Na\njSJS8dK9+I6g8FHQh3PrKD6DsUSlhUInNPHKePyeruDvlHSrzpH4eJCxGjxr\neEKntiieFkvnLC6RV3Olk8EIg8SDaKob4g+Nja/t722BPYul9VffoVA/PQeF\nNTFFPi80e6//Y99J4a/gySEXa57WjWJmEr1n+ZFZ1lIyBNMpu2LBEeyd56Hk\nXsMAbFZFgdYJsxYchVVpUeeVw0pO5MezKwpu3NnjJSylUs3SrN3ikc9o9/4X\noYiGwVk8eSMwvDuK5Fzhg9rs2hAZFOEpN/GuDGot7zHL/Xa8QDH5GWbmH6ec\ndvu+hMoIIDIrq7W4bQ4ZehbB02aBv89byMv4N7jaPWlWGTheoIpo2kvyF4Q6\nLaLj\r\n=Tj9E\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"bb7eaa6c720044e84f01c6406f5f0805dc637923","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator.json --output validator.json"},"_npmUser":{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git","directory":"packages/validator-rules"},"_npmVersion":"lerna/3.20.2/node@v13.12.0+x64 (darwin)","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"13.12.0","dependencies":{"cross-fetch":"3.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_2.3.0_1586943096315_0.970363911109112","host":"s3://npm-registry-packages"}},"2.5.4":{"name":"@ampproject/toolbox-validator-rules","version":"2.5.4","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@2.5.4","maintainers":[{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"choumx","email":"willchou@google.com"},{"name":"erwinmombay","email":"erwin.mombay@gmail.com"},{"name":"fstanis","email":"filip@stanis.me"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"kristoferbaxter","email":"kbax@me.com"},{"name":"samouri","email":"jzfisgreat@gmail.com"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/main/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"7dee3a3edceefea459d060571db8cc6e7bbf0dd6","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.5.4.tgz","fileCount":6,"integrity":"sha512-bS7uF+h0s5aiklc/iRaujiSsiladOsZBLrJ6QImJDXvubCAQtvE7om7ShlGSXixkMAO0OVMDWyuwLlEy8V1Ing==","signatures":[{"sig":"MEUCIAmXXCdFIzu3pO0DD54WRL1hHbNhkI89gM5Do2rp7xJrAiEA4HQskUd5x5k1wsIlRw7BycxYlivuu10iSB28cgcPX7Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23665,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8QvgCRA9TVsSAnZWagAAV/cP/1GX4fzA0o2RUqyNWvMS\nC2xQxPOC5UnFOgBN7hI36dryDTgoG4DuXyN9HlecTMvb/bcAyGAn4oVrMddi\nBm7m/nBD/5aGNmFCv3ZgeLWQcI1nIrBYK8kc+0bgG39cMaMe0NwsSqT/LebB\noHflM8NI4vTkYpjK1ESTDRlOWH/ZAT2IeJSjlUQcMNWGK/731h8R4ucq6Hfe\nF14SxH0cn3E4G95rZtSKBt3iRQs05j6d4ilaHgFIagE7UDRODmhaN/NsKgH8\nqgYydp8jQx0CoUDJScF0rH7jfENgmCVmn2A+r0/Qu81LV2fA1n1SnMUofeUH\nDnCo9IV6iK1vMCbbgz+GQbJZvRY4eDiygt3CsLVSpKGHMxJ3KWtNy8Oon5aw\nkKx1HZA6fDrCXdGVn/phkGkx+RZ0A1MohZBpkPg/DaOSIdDZ7CpfQsT+Xieb\n+C/t7mw/FmQXHYJsGUzckVNTEcVuTUrr01GBCWrbUvF3Og9fnWPs+Ff8u5r4\na8XPm31nqYeNHrpiF5XSXg+gVYWEq6XYtUJt5mC2RkOpn1D0Euy0Uv8AqUUQ\nzO5FeYY+F4sAGht+6tggpeoeLXgklDYkl8D0EQIv20i21vjBSP3CiJ1bW5Ro\nBcW1VIixegZnCJUnyw6ze4aRsKPvbQcMHZaiiu88gwmUI43VTq6sy/lh6k9+\nREIr\r\n=rx7h\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"c194eb829c2d0d4cda21c961107d73bd7528f53f","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator.json --output validator.json"},"_npmUser":{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git","directory":"packages/validator-rules"},"_npmVersion":"lerna/3.22.1/node@v12.16.1+x64 (darwin)","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"12.16.1","dependencies":{"cross-fetch":"3.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_2.5.4_1592855519602_0.5791648343118052","host":"s3://npm-registry-packages"}},"2.7.1-alpha.0":{"name":"@ampproject/toolbox-validator-rules","version":"2.7.1-alpha.0","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@2.7.1-alpha.0","maintainers":[{"name":"alanorozco","email":"orozcoalan@gmail.com"},{"name":"patrickkettner","email":"patrickkettner@gmail.com"},{"name":"dvoytenko","email":"dvoytenko@gmail.com"},{"name":"rsimha","email":"rsimha@amp.dev"},{"name":"caroqliu","email":"carolineliu@google.com"},{"name":"samouri","email":"jzfisgreat@gmail.com"},{"name":"erwinmombay","email":"erwin.mombay@gmail.com"},{"name":"fstanis","email":"filip@stanis.me"},{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"choumx","email":"willchou@google.com"},{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"kristoferbaxter","email":"kbax@me.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/main/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"ff00958bc2015d9d4697143da606e34fc773577a","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.7.1-alpha.0.tgz","fileCount":6,"integrity":"sha512-1+nrZDkHIk8Go4Qh9DUfjTrbsW0OTvLYdwcI716LdgyB3WsmLfsAx/fJU/9Tc14a1YS73ptx2Xb0Tdh+ewwEIw==","signatures":[{"sig":"MEUCIQDGwd+aNpAFFVPPMKsciP98Zo5g43QcyZDElvj4TDRKvAIgRUXVWWEPkCvINto5MwsTCtHa3rnsRC0L0J/80ZlOktY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23674,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfxpODCRA9TVsSAnZWagAAqtIP/0UNIdFBnZnhLsNsdpMi\nkmzzfHOdVSNgMUzWKGiTkV/J3+qnKEGWTHmXBqoL9LNNweN22CdGFGmxka0s\n5YGGAQ085akKYlyLbpEiSDtqW0YKRcecuvJL6ryNHEO74dev+oYx2OlvqwgI\nF89yZvmqub66qUYTm1Pe+W37rexuB5gNZxxzWWLmLOFzV45DpWW9jk1q5/aO\nfsJCDLOxOdbv+nrzSLv6ICkJ7iEPTixqmypeDThkinxKbpTtCo93VqTe4sCt\n8J/7iX8t7BZou0bquc2HpcoVIVml5/6lAAc69L7M/mMdg6rWzbQLTih4dP6a\nUhU69iwz6TnBXDLLtYlrFcGF9b0ZWMiFB4bfIPUxNTifXBC9j8CoZi31N6uP\no5Vwl6yurrLjGBnMPQISp4YJwSz0nFGYgRNbAo2oxx6NOnNWp4wmYonyulwy\nundWfXbL2djviHnntQK11fqQHHiux//pU8QkFfK5vkN6Ks46Ez2iOnVXIqMH\nNhLT0xoIWL/q7P9XasYlJFBx3eD8qOkj5CuF1b4YoDKrCTbGlpLnwLqAbl75\nYKiLPG5Okl4+tJC9V0Tb2lwm6SgfX2fwWXs9kQCAuWoPiFJi85fpH0b93ICy\ncFGCB5QTyRyxD04vPoQyPc2jTKs3MQV8I7SIcW41WMFMXzMPBFqkEKWSYvft\nTEZc\r\n=2Xg8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# AMP-Toolbox Validator Rules\n\n[![npm version](https://badge.fury.io/js/%40ampproject%2Ftoolbox-validator-rules.svg)](https://badge.fury.io/js/%40ampproject%2Ftoolbox-validator-rules)\n\nQueries published AMP Validator rules and extracts information about required\nmarkup and attributes for all AMP formats.\n\n## Usage\n\nInstall via:\n\n```\n$ npm install @ampproject/toolbox-validator-rules\n```\n\n### Including the Module\n\n#### ES Module (Browser)\n\n```javascript\nimport validatorRules from '@ampproject/toolbox-validator-rules';\n```\n\n#### CommonJs (Node)\n\n```javascript\nconst validatorRules = require('@ampproject/toolbox-validator-rules');\n```\n\n### Using the module\n\n```javascript\n  // Loads the validator rules remotely with default options\n  const rules = await validatorRules.fetch();\n\n\n  // The raw unprocessed rules\n  console.log(rules.raw);\n\n  // All tags, combined with their respective attribute lists\n  console.log(rules.tags);\n\n  // All extensions\n  console.log(rules.extensions);\n\n  // Get all tag names used in AMP for Email\n  // The supported formats are AMP, AMP4EMAIL, AMP4ADS and ACTIONS\n  const tags = rules.getTagsForFormat('AMP4EMAIL');\n\n  // Display their names\n  console.log(tags.map(tag => tag.tagName));\n\n  // Get information about an extension\n  const ext = rules.getExtension('AMP4EMAIL', 'amp-carousel');\n\n  // Display supported versions\n  console.log(ext.versions);\n```\n\n### Format of rules\n\nThe rules used closely follow the proto definitions from [validator.proto](https://github.com/ampproject/amphtml/blob/master/validator/validator.proto).\n\nSpecifically:\n\n-   The `raw` property is unprocessed [ValidatorRules](https://github.com/ampproject/amphtml/blob/master/validator/validator.proto#L643), the same format used by `https://cdn.ampproject.org/v0/validator.json`\n-   The result of `getTagsForFormat` and the `tags` property is a list of [TagSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L463)\n-   The result of `getExtension` is [ExtensionSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L388) with the `htmlFormat` field from `TagSpec`\n-   The `extensions` property a list of [ExtensionSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L388) with the `htmlFormat` field from `TagSpec`\n-   The `errors` property combines [ErrorFormat](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L874) and [ErrorSpecificity](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L869)\n\n### Options\n\n`fetch` optionally accepts an options object allowing you to customize its\nbehaviour.\n\nThe following options are supported:\n\n   * `noCache`: true to always fetch latest rules (by default, subsequent calls to `fetch` reuse the same result).\n   * `rules`: object to use locally specified rules instead of fetching them from the AMP CDN.\n   * `url`: override the URL where validator rules are fetched from.\n   * `source`: one of `'local'` (load rules from local file named \"validator.json\"), `'remote'` (fetch rules from CDN) or `'auto'` which is the default (tries looking for the local file first, then tries to fetch from CDN).\n\nExample:\n\n```\nvalidatorRules.fetch({\n  noCache: true,\n  source: 'remote'\n});\n```\n","gitHead":"4acd4490ce69050e3e2b46b79aeecb788f58b205","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator.json --output validator.json"},"_npmUser":{"name":"patrickkettner","email":"patrickkettner@gmail.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git","directory":"packages/validator-rules"},"_npmVersion":"lerna/3.22.1/node@v14.15.1+x64 (darwin)","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"14.15.1","dependencies":{"cross-fetch":"^3.0.6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_2.7.1-alpha.0_1606849410731_0.6095961521145841","host":"s3://npm-registry-packages"}},"2.7.1":{"name":"@ampproject/toolbox-validator-rules","version":"2.7.1","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@2.7.1","maintainers":[{"name":"alanorozco","email":"orozcoalan@gmail.com"},{"name":"patrickkettner","email":"patrickkettner@gmail.com"},{"name":"dvoytenko","email":"dvoytenko@gmail.com"},{"name":"rsimha","email":"rsimha@amp.dev"},{"name":"caroqliu","email":"carolineliu@google.com"},{"name":"samouri","email":"jzfisgreat@gmail.com"},{"name":"erwinmombay","email":"erwin.mombay@gmail.com"},{"name":"fstanis","email":"filip@stanis.me"},{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"choumx","email":"willchou@google.com"},{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"kristoferbaxter","email":"kbax@me.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/main/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"5a257f2b21d1d44167769fe3eae7f587d249d9fa","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.7.1.tgz","fileCount":6,"integrity":"sha512-LYkGKqFBOC39lvRX38wGjbLf4r8VXJyiCZSLRepiHjO4xbstZLyHPwxHlobQrBhD7UbHZn5TVD+qw+VMJNMSxw==","signatures":[{"sig":"MEQCIGBuiQc3tcpVAEsaY/sxRhcZcqzQGVlDnOwVij5TsCYBAiB+S9xMMZskImUVoXj3ani++eHHNegkHg5Y1K+XbOQ/Ag==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23666,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfx6q+CRA9TVsSAnZWagAAy2MP/iJxIqZ47k4h3boo8xpq\nUAlhZpka9/VTNENPlLV4N2joCKPDzOC6Q6mbhD3UZ2Q4ogojI4PwF4x72jT5\n68p+4w+zCkwVr0fGjWaNw38s8qCLdJ6hvJyoaZvLLAy/X12Zrm+r2xPYXhcM\nDgVVy3mJ18Xvcb/o2fus+Q3wis/v1mO/vwybhqqatPGX3gZtkkkkWEg+ybnB\nd5hqzVbHnVbWWFUbIkzpMlEpcp0fqTrFSf0xqFDmp2U/2nzSz3uxzxUEAW0c\nH2IcRn4jb9zXxlDxway8JhCwE3Oaqi2t3IjewNt2i9eHdeeKaVUjjbYLEylK\nP27mqX7V1YHZZp78zeFUcE5kijQtTHzKjpwdMhF1SMwyjbeNW2fW4dUEN5qZ\nf6weceZ5Gy1TtSkZl+JbJuwrVGrR6Yt2q/boLLpM6hR4OczKfC9s7YSb+QIt\nu+lzbmuKLQ6sal+bD1HPhLjzqP6qeQTHZzMDMeK608Ig5JCSOveUQWlc5g7L\n0ricChbjMc69wY6LUBb6ytEXuxvQKGY1cUXb+w7YSc3M3IMWDSRvoFWDE9Aj\nD4jf/zM3MaBbG7rUFV5kk9AfEVb+KWi0ivrqzZ5zIUK3R2Q6BNAnkJmp0mzn\n+ODugbaLrD5hLe/gYQ2J5rWWo6WG5Iz4dWwl1IHPGb6a60bAMr2i6bR+Sxze\nb1av\r\n=5Rcj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"9b159391d776396512b01ec250fa76941713c763","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator.json --output validator.json"},"_npmUser":{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git","directory":"packages/validator-rules"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (darwin)","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"12.18.3","dependencies":{"cross-fetch":"^3.0.6"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_2.7.1_1606920894308_0.7411103657060389","host":"s3://npm-registry-packages"}},"2.7.2":{"name":"@ampproject/toolbox-validator-rules","version":"2.7.2","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@2.7.2","maintainers":[{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"kristoferbaxter","email":"kbax@me.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"choumx","email":"willchou@google.com"},{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"fstanis","email":"filip@stanis.me"},{"name":"erwinmombay","email":"erwin.mombay@gmail.com"},{"name":"samouri","email":"jzfisgreat@gmail.com"},{"name":"caroqliu","email":"carolineliu@google.com"},{"name":"rsimha","email":"rsimha@amp.dev"},{"name":"dvoytenko","email":"dvoytenko@gmail.com"},{"name":"patrickkettner","email":"patrickkettner@gmail.com"},{"name":"alanorozco","email":"orozcoalan@gmail.com"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/main/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"6e13245418a27cc9a1c49692890a6113b087cbdf","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.7.2.tgz","fileCount":6,"integrity":"sha512-/XNa5nhyZl8ET63HQv73AjgEZN03YMBZVZwZ62luxsuEsfzpVzs/tU/RaOHCnL2EuRyaAX95O7GO3Gyxp8z79g==","signatures":[{"sig":"MEYCIQDucLKFTTZcHAz6UEoO19M1w9QKbwzZgf6+56iz0G82VgIhAOli8DNxHwesCfsrt2KH4fdPbZs1KtQ8pjLgwRnYYsWX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23663,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2ROYCRA9TVsSAnZWagAAQrEP/R15QhEhQr5XC9OUQtSi\ncvg8eUUiOJ8pqwyaHnKLDFhBJv1PKCfAq5oCFcQrECYyTJz4aWW9HfaGPzMm\n8nMsDBE7U18H04dGSxlwS6niGH/mezl+M06bocM/5RXY8RatsZT5z9dsIBuf\nfc+jaLT7ekRqwmvVq30sSSe3LfpKQ3BDMK2Q7VepSKJ2nduUq7e3HIS1onYg\n2GCGoOFuECHzLbvcekpMzlAimmSKNGO/QfXTR5Gfdz5Ze+zoHikNWM8w3M82\nyA4eVdritWn5NVYcxCPK0cxDhYFJUapC7T2ErU2+0FDv0jLDGwK2nfvCgPXE\nhutPqzYeeQHW4X31muWzfX7GGPHa0HdELZ8tLhh9VnTtl03AXvlvwu6c20Wu\n9vHmzSIjK/LR8vxjOEW5udoP7i+LIFXQ+I9ogX6Lq//0c8EWj3F2qP/4XDRU\neu3Sb7r+7twUlghXMejQIG6oAOmE4R9POnCbHPXlgLY9BtBmr2wdF90CUj2G\nbiXgb8ytm79eopf3vjubtI6Wapv7pcGVJiSy76Mx5598hp6+bGz7ZMyMU6ug\ns6iUZ2MVo02zwc7aLN2TfEROgAAI768qweHR7X5hUcUL2ksiIwI9n4h9OO59\n0cgUTdp+b1fgbG30pCQ3eVVOnyAkbOPZ5MJtJh0Tf2srYkB7zh+l8HrtyHdZ\nScNr\r\n=v9B8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"83d1d4290d9da2683596506cff266c68e618fa81","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator.json --output validator.json"},"_npmUser":{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git","directory":"packages/validator-rules"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (darwin)","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"12.18.3","dependencies":{"node-fetch":"2.6.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_2.7.2_1608061847967_0.2100950502971275","host":"s3://npm-registry-packages"}},"2.7.4":{"name":"@ampproject/toolbox-validator-rules","version":"2.7.4","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@2.7.4","maintainers":[{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"kristoferbaxter","email":"kbax@me.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"choumx","email":"willchou@google.com"},{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"fstanis","email":"filip@stanis.me"},{"name":"erwinmombay","email":"erwin.mombay@gmail.com"},{"name":"samouri","email":"jzfisgreat@gmail.com"},{"name":"caroqliu","email":"carolineliu@google.com"},{"name":"rsimha","email":"rsimha@amp.dev"},{"name":"dvoytenko","email":"dvoytenko@gmail.com"},{"name":"patrickkettner","email":"patrickkettner@gmail.com"},{"name":"alanorozco","email":"orozcoalan@gmail.com"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/main/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"a58b5eca723f6c3557ac83b696de0247f5f03ce4","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.7.4.tgz","fileCount":6,"integrity":"sha512-z3JRcpIZLLdVC9XVe7YTZuB3a/eR9s2SjElYB9AWRdyJyL5Jt7+pGNv4Uwh1uHVoBXsWEVQzNOWSNtrO3mSwZA==","signatures":[{"sig":"MEQCIFxs1488BNTXAVTSM/3yP3OTJJmmtWAbLnLhG9eJz45oAiBfDUOpv14j2Hjdxnh6Dy1TumQtHvVcvgkRfHllel36mg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23665,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4y8NCRA9TVsSAnZWagAAbUsP/3cS+nce6PoYlpDFnflA\nGp+CnBYETKNEjkcHFSWriyTApvFlbLbv5FSu4gnnAbkkUHvD4l0kj9cuoeyf\nV9x+gSq4vQPIDc7zG0xWLabXTzPcov0eSWX7oEtFpB9ywCxZP/cQctiTqd30\nmVtKfKqMwteAyIgI5BjlbYh5ih3/nGI5Bhg3+bN23j8wqZ4uwFT+5N5QfwIs\n2jlZvFOes1AUBjuVibrg1D4QTY5WIt3P07ji5arhYX21FDugR90fAkl1tu2a\ncCuQgoVy6xnX8O9YzhzBVd9a7r2P7+TUE1vPf0NM2g5vfAcb+LMIgo7572Kd\nLQDBcAqaLKcP94U8jPov3L6t8Dcz/p0KlTIzNRvCRT7HUh6fczr7WsucBV3V\n8zae++M1kgGpYIg57HD/XlzzB9yjfVwWvnUu4fQf+eT2IxTlo6XbzU08kGNI\nO93feKDng+D1rKwARdFnUp9hcJw4Gj8EkjhO63hb65I1q1yxL/MDmE93ZhtG\n+V2bguKAMmaqrzgnmryc2hPWO+BlHMGY3/HZOk4P4B6CdgnBuOpSB0N/v7kO\nBZR9kiovRfDSuhiG9LBy50aF+YLEpObZwE9ysrFZfOCWka9vQbP0SdnKxdXA\n9NjCpLSDoArmtWfs/7FXgZQ5bBnUtS/HZiTzWkAa8UouQQAsGaKbGD4SNCOC\n3AWz\r\n=8vuD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"881ffbde5be5e78e039b132f0daae3a3598ae248","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator.json --output validator.json"},"_npmUser":{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git","directory":"packages/validator-rules"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (darwin)","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"12.18.3","dependencies":{"cross-fetch":"3.0.6"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_2.7.4_1608724237143_0.9343741741553202","host":"s3://npm-registry-packages"}},"2.8.0-canary.0":{"name":"@ampproject/toolbox-validator-rules","version":"2.8.0-canary.0","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@2.8.0-canary.0","maintainers":[{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"kristoferbaxter","email":"kbax@me.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"choumx","email":"willchou@google.com"},{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"fstanis","email":"filip@stanis.me"},{"name":"erwinmombay","email":"erwin.mombay@gmail.com"},{"name":"samouri","email":"jzfisgreat@gmail.com"},{"name":"caroqliu","email":"carolineliu@google.com"},{"name":"rsimha","email":"rsimha@amp.dev"},{"name":"dvoytenko","email":"dvoytenko@gmail.com"},{"name":"patrickkettner","email":"patrickkettner@gmail.com"},{"name":"alanorozco","email":"orozcoalan@gmail.com"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/main/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"094e69b6e1e2a234a9f0b1aef8057f990dd1735f","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.8.0-canary.0.tgz","fileCount":6,"integrity":"sha512-7BBYLAKUu2WM9HTOzcczCLGB3RlySKKFwoQHEU/AmPFUTNDOZ79577zXlewY6f0GMTIA5tDe411HlzjqO3fsiA==","signatures":[{"sig":"MEQCIEPp+d78Cqdr62kd855Xs5vCQwHnS1gJacHOj8yQxX82AiBXS9ZyqdQqjtEyzfGCP9S08IPpEJl73IKjAkVwXZahrg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23674,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJrnVCRA9TVsSAnZWagAAjOsP+wT9Q/l2lzxJaFuT/jy0\nT3XPr+jihMqKlPXLEbXLk9uxn9pbW2LTFPqfkm2RV0tR5/D+PoC9iv80rSS1\nDmsLsVEH7Cnwk+Qnl4TKb5u4Z+CxesinAVleJnfYJ5HW27US6N7hEq1nXgal\nGEbs4AU2KewI9g8nwgQ7+21bjnD7gWJBEemOtemEimyQyzx6tHb4faqWuSo+\noPN6lwRewBGDNaHB9Uax64T/aFcTEFouhmHksALXcri+pLuvhWKNXQnvbgzP\n7Kx/7VhjHGMMobJ8xTNdveFWwf/5wfglFnf4SC8nCKJhT664lGAfo4dKzlhL\nX4402QtzuOYN/Sa4WG4UUmN5nb8Q6Y1z2+RC+IESSVpgxLI6/iZix6rpYkg5\nws9bE5XyQyLTSq5Ew8sOIAOX69xOtrbCJuGWlVQoU8VhEmK7B94mMWiGti+t\nNKOdPIn6nQTgIJxWUtdDZ26YBwE6h7/CHWOqsPmyOecxGp2Qt4Bh9CRKjER6\nWFhDq2XfsW9PWA1/cLMQMJ3x75zwzrwk2P+pKz1uw6Un4TPe0ajW/86CeVhq\nfR7Ia5VQZNMUwNBlm8i//2yhk3SBDsJllCdTOT6BRYtabXuSnQtl8ZY/UWJB\n6kjafH09G7WUOCznz4yrj92z88ffqnkGCSE1x9JKATPYq7IE4+MCP381Q3Ty\nzp3U\r\n=vY8X\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# AMP-Toolbox Validator Rules\n\n[![npm version](https://badge.fury.io/js/%40ampproject%2Ftoolbox-validator-rules.svg)](https://badge.fury.io/js/%40ampproject%2Ftoolbox-validator-rules)\n\nQueries published AMP Validator rules and extracts information about required\nmarkup and attributes for all AMP formats.\n\n## Usage\n\nInstall via:\n\n```\n$ npm install @ampproject/toolbox-validator-rules\n```\n\n### Including the Module\n\n#### ES Module (Browser)\n\n```javascript\nimport validatorRules from '@ampproject/toolbox-validator-rules';\n```\n\n#### CommonJs (Node)\n\n```javascript\nconst validatorRules = require('@ampproject/toolbox-validator-rules');\n```\n\n### Using the module\n\n```javascript\n  // Loads the validator rules remotely with default options\n  const rules = await validatorRules.fetch();\n\n\n  // The raw unprocessed rules\n  console.log(rules.raw);\n\n  // All tags, combined with their respective attribute lists\n  console.log(rules.tags);\n\n  // All extensions\n  console.log(rules.extensions);\n\n  // Get all tag names used in AMP for Email\n  // The supported formats are AMP, AMP4EMAIL, AMP4ADS and ACTIONS\n  const tags = rules.getTagsForFormat('AMP4EMAIL');\n\n  // Display their names\n  console.log(tags.map(tag => tag.tagName));\n\n  // Get information about an extension\n  const ext = rules.getExtension('AMP4EMAIL', 'amp-carousel');\n\n  // Display supported versions\n  console.log(ext.versions);\n```\n\n### Format of rules\n\nThe rules used closely follow the proto definitions from [validator.proto](https://github.com/ampproject/amphtml/blob/master/validator/validator.proto).\n\nSpecifically:\n\n-   The `raw` property is unprocessed [ValidatorRules](https://github.com/ampproject/amphtml/blob/master/validator/validator.proto#L643), the same format used by `https://cdn.ampproject.org/v0/validator.json`\n-   The result of `getTagsForFormat` and the `tags` property is a list of [TagSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L463)\n-   The result of `getExtension` is [ExtensionSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L388) with the `htmlFormat` field from `TagSpec`\n-   The `extensions` property a list of [ExtensionSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L388) with the `htmlFormat` field from `TagSpec`\n-   The `errors` property combines [ErrorFormat](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L874) and [ErrorSpecificity](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L869)\n\n### Options\n\n`fetch` optionally accepts an options object allowing you to customize its\nbehaviour.\n\nThe following options are supported:\n\n   * `noCache`: true to always fetch latest rules (by default, subsequent calls to `fetch` reuse the same result).\n   * `rules`: object to use locally specified rules instead of fetching them from the AMP CDN.\n   * `url`: override the URL where validator rules are fetched from.\n   * `source`: one of `'local'` (load rules from local file named \"validator.json\"), `'remote'` (fetch rules from CDN) or `'auto'` which is the default (tries looking for the local file first, then tries to fetch from CDN).\n\nExample:\n\n```\nvalidatorRules.fetch({\n  noCache: true,\n  source: 'remote'\n});\n```\n","gitHead":"0ec5cb5ca31022687841bc344b29fa8e775310d8","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator.json --output validator.json"},"_npmUser":{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git","directory":"packages/validator-rules"},"_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (darwin)","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"14.15.4","dependencies":{"cross-fetch":"3.0.6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_2.8.0-canary.0_1613150676980_0.23298523949861427","host":"s3://npm-registry-packages"}},"2.8.0-canary.9":{"name":"@ampproject/toolbox-validator-rules","version":"2.8.0-canary.9","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@2.8.0-canary.9","maintainers":[{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"kristoferbaxter","email":"kbax@me.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"choumx","email":"willchou@google.com"},{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"fstanis","email":"filip@stanis.me"},{"name":"erwinmombay","email":"erwin.mombay@gmail.com"},{"name":"samouri","email":"jzfisgreat@gmail.com"},{"name":"caroqliu","email":"carolineliu@google.com"},{"name":"rsimha","email":"rsimha@amp.dev"},{"name":"dvoytenko","email":"dvoytenko@gmail.com"},{"name":"patrickkettner","email":"patrickkettner@gmail.com"},{"name":"alanorozco","email":"orozcoalan@gmail.com"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/main/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"5775c06d95d7a292a379cf5bcf8736b9fb5cc5c3","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.8.0-canary.9.tgz","fileCount":6,"integrity":"sha512-hZI5Vox24ZkhyVEh4ZCkblFeC0WMh6g9VJqcE4dFLYIaH0QkBhaE6pPqkmy4lkzXBsz3e0LFEKXSCkO84tT0nw==","signatures":[{"sig":"MEYCIQCj/JwLfd10JJSedHM6GBCY7/O4sJTxwTtsKX3ZN7pHAwIhAPLzBe+A6zWcv8Z8Ps/9gKeV+/jOQ0vtGVzlg9PTYxNh","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23674,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgWLFUCRA9TVsSAnZWagAAwfEP/1xKnQwWsyj2AT036UrX\ncCrsfkN7fPbI8cDE/1Sm7EQgjq5Ks0eHg0f44VpV9MNWMnaPCZNP4qDxSojW\n2YJQqnh+bP6j+OeNzCN7qN0almyiP71DbwoREFvrG0PoL9KEKnL1t3bjVrsx\nHN45C4BGV0TQUas3GLju3/S/TRV+mDoQCJTs19Du5HbE75C2Z7ZVH8EN1jE0\nFX6isCJTnS3P1WYskB8k/MPSvZSnrtIG+7QBUWQRKUVwclWl17GHwAYwDm6B\nSZ1tWOJP0VLqR8bRkzb+CLAWkgsWNIgJrRZn8LjvvQoSWkDX8mS/wDTsk/R1\na6eztENRh9M70s63H+Q6CBU6TzHJiX38WcxTrII1Z79xua6cRgYkz6UsPBEI\nA58aq3RbO4a61+gveo/sw5cHxC21377MrhH1uEuhBjvQyokwAClDhxDKxCth\nQSXmU+H2SlfqQKNuIQDkV+l4GN24zBl2NOLLveDF4KCtyfqZMic86K+DB0y3\nV70Qic5FJRijBwH5SevApSR5SpdqRhcV9PROOfPCdtxmZi5F7FxCsSKjlrns\nJJoW6uaMd/aIqeJ49bbkWiRm9MPddp4lHYbEjKE5MCp3ZolM6ylohe3gOxL0\nj8Q2Pu67uyw1c9A/juoG4A834Jqdx7lk8WPY1svFXpIhS9r46iKu/spfEL61\nMayr\r\n=h4ry\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# AMP-Toolbox Validator Rules\n\n[![npm version](https://badge.fury.io/js/%40ampproject%2Ftoolbox-validator-rules.svg)](https://badge.fury.io/js/%40ampproject%2Ftoolbox-validator-rules)\n\nQueries published AMP Validator rules and extracts information about required\nmarkup and attributes for all AMP formats.\n\n## Usage\n\nInstall via:\n\n```\n$ npm install @ampproject/toolbox-validator-rules\n```\n\n### Including the Module\n\n#### ES Module (Browser)\n\n```javascript\nimport validatorRules from '@ampproject/toolbox-validator-rules';\n```\n\n#### CommonJs (Node)\n\n```javascript\nconst validatorRules = require('@ampproject/toolbox-validator-rules');\n```\n\n### Using the module\n\n```javascript\n  // Loads the validator rules remotely with default options\n  const rules = await validatorRules.fetch();\n\n\n  // The raw unprocessed rules\n  console.log(rules.raw);\n\n  // All tags, combined with their respective attribute lists\n  console.log(rules.tags);\n\n  // All extensions\n  console.log(rules.extensions);\n\n  // Get all tag names used in AMP for Email\n  // The supported formats are AMP, AMP4EMAIL, AMP4ADS and ACTIONS\n  const tags = rules.getTagsForFormat('AMP4EMAIL');\n\n  // Display their names\n  console.log(tags.map(tag => tag.tagName));\n\n  // Get information about an extension\n  const ext = rules.getExtension('AMP4EMAIL', 'amp-carousel');\n\n  // Display supported versions\n  console.log(ext.versions);\n```\n\n### Format of rules\n\nThe rules used closely follow the proto definitions from [validator.proto](https://github.com/ampproject/amphtml/blob/master/validator/validator.proto).\n\nSpecifically:\n\n-   The `raw` property is unprocessed [ValidatorRules](https://github.com/ampproject/amphtml/blob/master/validator/validator.proto#L643), the same format used by `https://cdn.ampproject.org/v0/validator.json`\n-   The result of `getTagsForFormat` and the `tags` property is a list of [TagSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L463)\n-   The result of `getExtension` is [ExtensionSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L388) with the `htmlFormat` field from `TagSpec`\n-   The `extensions` property a list of [ExtensionSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L388) with the `htmlFormat` field from `TagSpec`\n-   The `errors` property combines [ErrorFormat](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L874) and [ErrorSpecificity](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L869)\n\n### Options\n\n`fetch` optionally accepts an options object allowing you to customize its\nbehaviour.\n\nThe following options are supported:\n\n   * `noCache`: true to always fetch latest rules (by default, subsequent calls to `fetch` reuse the same result).\n   * `rules`: object to use locally specified rules instead of fetching them from the AMP CDN.\n   * `url`: override the URL where validator rules are fetched from.\n   * `source`: one of `'local'` (load rules from local file named \"validator.json\"), `'remote'` (fetch rules from CDN) or `'auto'` which is the default (tries looking for the local file first, then tries to fetch from CDN).\n\nExample:\n\n```\nvalidatorRules.fetch({\n  noCache: true,\n  source: 'remote'\n});\n```\n","gitHead":"0974deb66a4bf37062208de3f6dbeea1ba08fa36","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator.json --output validator.json"},"_npmUser":{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git","directory":"packages/validator-rules"},"_npmVersion":"lerna/4.0.0/node@v14.15.4+x64 (darwin)","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"14.15.4","dependencies":{"cross-fetch":"3.1.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_2.8.0-canary.9_1616425300065_0.18376790757481287","host":"s3://npm-registry-packages"}},"2.8.0":{"name":"@ampproject/toolbox-validator-rules","version":"2.8.0","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@2.8.0","maintainers":[{"name":"esth","email":"esther@amp.dev"},{"name":"ampprojectbot","email":"bot@amp.dev"},{"name":"kdwan","email":"kdwan@google.com"},{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"kristoferbaxter","email":"kbax@me.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"choumx","email":"willchou@google.com"},{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"fstanis","email":"filip@stanis.me"},{"name":"erwinmombay","email":"erwin.mombay@gmail.com"},{"name":"samouri","email":"jzfisgreat@gmail.com"},{"name":"caroqliu","email":"carolineliu@google.com"},{"name":"rsimha","email":"rsimha@amp.dev"},{"name":"dvoytenko","email":"dvoytenko@gmail.com"},{"name":"patrickkettner","email":"patrickkettner@gmail.com"},{"name":"alanorozco","email":"orozcoalan@gmail.com"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/main/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"b1e04ac1f32a662318157012ee708ef06f46d26b","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.8.0.tgz","fileCount":6,"integrity":"sha512-kbInwnzpEPVZkKigpKFkF/DQ2LsuZ5b8vrEFHjJ4P+meKVQg2QF/UWAQpIMMdjGe1AQBT+DWm91n9UyjgqfnWQ==","signatures":[{"sig":"MEYCIQCJr+8oQfbx7Pqg2mmyBvM4uSsSZXpH9YsflnisoYa2AQIhAOWX7pLT0QPphjRpf0hY679S+qNGRsn6QuzHKXIxH4In","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23665,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtPRBCRA9TVsSAnZWagAA9vgQAJ5Bd9ATuSjEL0z8vQUM\n51GfnyhRUpifavbfNtct3WXq3AN5c56hh+vQq5RnnI49wgov/feIZkZo9JoN\n2wbg9yynpRoTqdDHcq0uKxHB8VuOlOmI4FVMERQXX14OANc8JPNl2/2ItWG4\n27hjtxp+Yoj7qE8Uv1J04ZoY9FYcZPPwd88UczWPQiuYcOmvLPHgtJGwLt5I\nWwl5Rn5txTMpRX6CUwCSxpuW03JfF92va00kdHVScXnJQ6V2yiVcY6KjifSd\nV2YccXE9wWWRYAqsnWk1SVgkL/3rY3P86Cq5XhZmBHs7NzKQuSlR+RSnylX+\nQVTC2QGLSch5GbVXZKZwiOmPwQgllNzqBHKeEy2pt0ZcC/GDnGVSkOqW7rVv\nmya53VcowBZZg4edeCwTfgHjPbVyRjQ16PN2ZQLVxyM9a15LG81NdOmHJQ+/\nfw2gZR9m/vzuA6BDvvhC1TNPUw+WQqrdBOwn1ZjMrhYQj2QhlZVwDL3cMesO\nAilIJOc7iSnwsDXew8SwgI47ucN5U2LbcOuT6a08IMziHYLus/xAzbVDbjBL\n7yQ2DehW9sU+bq9SiLAjRC+EnNIF7TnG5S0Acl12tDrs9TFCFiqqUVuaJ9Ni\nxT0+X1K/Mcp0CUWyKG31QcEdh7yLqW3YFTuVhkpwiPSsr6y/A7RZWHXhkrqQ\nwO5i\r\n=WjQy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"6103eb57765445355421826791361ac9ed9cf4d8","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator.json --output validator.json"},"_npmUser":{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git","directory":"packages/validator-rules"},"_npmVersion":"lerna/4.0.0/node@v14.15.4+x64 (darwin)","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"14.15.4","dependencies":{"cross-fetch":"3.1.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_2.8.0_1622471745363_0.6528420627788254","host":"s3://npm-registry-packages"}},"3.0.0-canary.2":{"name":"@ampproject/toolbox-validator-rules","version":"3.0.0-canary.2","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@3.0.0-canary.2","maintainers":[{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"kristoferbaxter","email":"kbax@me.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"choumx","email":"willchou@google.com"},{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"fstanis","email":"filip@stanis.me"},{"name":"erwinmombay","email":"erwin.mombay@gmail.com"},{"name":"samouri","email":"jzfisgreat@gmail.com"},{"name":"caroqliu","email":"carolineliu@google.com"},{"name":"rsimha","email":"rsimha@amp.dev"},{"name":"dvoytenko","email":"dvoytenko@gmail.com"},{"name":"patrickkettner","email":"patrickkettner@gmail.com"},{"name":"alanorozco","email":"orozcoalan@gmail.com"},{"name":"kdwan","email":"kdwan@google.com"},{"name":"ampprojectbot","email":"bot@amp.dev"},{"name":"esth","email":"esther@amp.dev"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/main/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"0458d2063caf5c323b3a02a91bcd0adfbc917656","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-3.0.0-canary.2.tgz","fileCount":6,"integrity":"sha512-HnwUIb/l6QGbp89KTveqlavD8KJxOtnPhaO2l9YOLP67K0P0Bl+O1WthFkcEGbxbl1ij4nCNuFX/M9mgFoKewg==","signatures":[{"sig":"MEQCIGimQ6nkPpl8ws5es+5Se0CshF5QVI7tZmRhoPlIiNNSAiAitvtiQvwbFCUBX96CpOJHoXRsGx+DF9BAKTgZUnQjSg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23672,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3eqTCRA9TVsSAnZWagAAmCYP/iGqXzM3nWK3IOPj0xih\nPKLQLeVosV8IXaQi8zcBkFStW0a73dNsdm4c05hHzcrrFhNIGqqQS1yB+deL\nAXMvg5U2oBPNvT1yMAFeuqjpdws3KF4I93BghLmw0V3ge9VBeBexT47zkI52\nir42nf6LifY+02EGMKJyiJrWNNeG7SVGjNZTydEfU4UEHZnR9LYdWEfQEIMh\nU3xuLcL5CCdgmf+hgIxeaxIrHx1BXs8oxFdOd7CEWAEX7E5OVXE1Kauh9O8O\nwwjky2X1xZf2NCWIu7nDveUnYGFSjDXulM2rSrsTnJ4CObzR6gF2wurd7TUo\n82iRvAsLHuAjegvJvXjkov1CuHTnJLfNdseeerpWX92PS2NXN9PTNCQdcPE2\nysgfT2g8wL9/hvgRjLKXhC03NVz7LJzNU4IowApErHoMVhsiBH+lro6fA4zp\n5EpY/gYSfUOLoErlJoKUgB0iZjuES5ubLRRiY19ZvDWEqYHVobI/UhCcwOj1\nbZqIOqZu3IbmxV9m7TZJu0fWE+DieXaQBvEkzB+BKfrFgLIssl/5VuycJBCN\n7mPDjoy0Nih2noen9fscgKtZpi5hpONKpP/v9eelVJNFQ/nTiAKzlUVCAj6D\nVR69fSlSwSaf+vCb1F35/IaLCD4HWhW0Rxh7sYLQkrB268R/GEd9WlHVarY0\nQHy/\r\n=tMH8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# AMP-Toolbox Validator Rules\n\n[![npm version](https://badge.fury.io/js/%40ampproject%2Ftoolbox-validator-rules.svg)](https://badge.fury.io/js/%40ampproject%2Ftoolbox-validator-rules)\n\nQueries published AMP Validator rules and extracts information about required\nmarkup and attributes for all AMP formats.\n\n## Usage\n\nInstall via:\n\n```\n$ npm install @ampproject/toolbox-validator-rules\n```\n\n### Including the Module\n\n#### ES Module (Browser)\n\n```javascript\nimport validatorRules from '@ampproject/toolbox-validator-rules';\n```\n\n#### CommonJs (Node)\n\n```javascript\nconst validatorRules = require('@ampproject/toolbox-validator-rules');\n```\n\n### Using the module\n\n```javascript\n  // Loads the validator rules remotely with default options\n  const rules = await validatorRules.fetch();\n\n\n  // The raw unprocessed rules\n  console.log(rules.raw);\n\n  // All tags, combined with their respective attribute lists\n  console.log(rules.tags);\n\n  // All extensions\n  console.log(rules.extensions);\n\n  // Get all tag names used in AMP for Email\n  // The supported formats are AMP, AMP4EMAIL, AMP4ADS and ACTIONS\n  const tags = rules.getTagsForFormat('AMP4EMAIL');\n\n  // Display their names\n  console.log(tags.map(tag => tag.tagName));\n\n  // Get information about an extension\n  const ext = rules.getExtension('AMP4EMAIL', 'amp-carousel');\n\n  // Display supported versions\n  console.log(ext.versions);\n```\n\n### Format of rules\n\nThe rules used closely follow the proto definitions from [validator.proto](https://github.com/ampproject/amphtml/blob/master/validator/validator.proto).\n\nSpecifically:\n\n-   The `raw` property is unprocessed [ValidatorRules](https://github.com/ampproject/amphtml/blob/master/validator/validator.proto#L643), the same format used by `https://cdn.ampproject.org/v0/validator.json`\n-   The result of `getTagsForFormat` and the `tags` property is a list of [TagSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L463)\n-   The result of `getExtension` is [ExtensionSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L388) with the `htmlFormat` field from `TagSpec`\n-   The `extensions` property a list of [ExtensionSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L388) with the `htmlFormat` field from `TagSpec`\n-   The `errors` property combines [ErrorFormat](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L874) and [ErrorSpecificity](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L869)\n\n### Options\n\n`fetch` optionally accepts an options object allowing you to customize its\nbehaviour.\n\nThe following options are supported:\n\n   * `noCache`: true to always fetch latest rules (by default, subsequent calls to `fetch` reuse the same result).\n   * `rules`: object to use locally specified rules instead of fetching them from the AMP CDN.\n   * `url`: override the URL where validator rules are fetched from.\n   * `source`: one of `'local'` (load rules from local file named \"validator.json\"), `'remote'` (fetch rules from CDN) or `'auto'` which is the default (tries looking for the local file first, then tries to fetch from CDN).\n\nExample:\n\n```\nvalidatorRules.fetch({\n  noCache: true,\n  source: 'remote'\n});\n```\n","gitHead":"0f63a77e8081f0fb7d6b63280e2fd8701836c4f9","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator.json --output validator.json"},"_npmUser":{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git","directory":"packages/validator-rules"},"_npmVersion":"lerna/4.0.0/node@v16.13.1+x64 (darwin)","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"16.13.1","dependencies":{"node-fetch":"2.6.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_3.0.0-canary.2_1641933459643_0.5646946062237856","host":"s3://npm-registry-packages"}},"2.9.0":{"name":"@ampproject/toolbox-validator-rules","version":"2.9.0","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@2.9.0","maintainers":[{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"kristoferbaxter","email":"kbax@me.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"choumx","email":"willchou@google.com"},{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"fstanis","email":"filip@stanis.me"},{"name":"erwinmombay","email":"erwin.mombay@gmail.com"},{"name":"samouri","email":"jzfisgreat@gmail.com"},{"name":"caroqliu","email":"carolineliu@google.com"},{"name":"rsimha","email":"rsimha@amp.dev"},{"name":"dvoytenko","email":"dvoytenko@gmail.com"},{"name":"patrickkettner","email":"patrickkettner@gmail.com"},{"name":"alanorozco","email":"orozcoalan@gmail.com"},{"name":"kdwan","email":"kdwan@google.com"},{"name":"ampprojectbot","email":"bot@amp.dev"},{"name":"esth","email":"esther@amp.dev"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/main/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"b8a6cffd4e7d228c483dc149f6491304ef45611d","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.9.0.tgz","fileCount":6,"integrity":"sha512-cQbD3u1c5CZRib5kv92RM2GCirOwyZleqlBzkZlATU3ILOAlnEFAVzTXq6K7sf0zet9MTsVctmbiVXDcE7COew==","signatures":[{"sig":"MEQCIH3vNOuzWb7hHGVagX6Tz7UfIRVOdWR9C6VjJf5C3QjaAiBZmqeZOdZetBKkFS19eZN5W9BZqXkIBBiHRmsWz6yTmQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23668,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJitNGgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrVRQ//SVhHU1C3qzavVpH/0xnthM3TdOaeC+kq/W0oiOEkThR9zx5j\r\nZD932Lg1u6FGVI53qJ0F8LWUgAz/rFwYQ2A3ds/n7Vt4uwpqQJ+qrBoS37AU\r\ni74RvvPBpTZc6Wtn5XClOrWaEhVjZu4GjRtUiIfZGuJb5SA/pW6zivYkfpBq\r\n3YdfHHbcdOgTB3BDWBC70ELdyX+AYZ2WfCLlFVFtzJqTXo/BLeER1Gq7Csxy\r\naaQMODfPSZGLolfXy99AFNetMKmFhTBrZKSs+yHgn+QcEZjUglKnPX2jL7/s\r\nebGjmhMnm5QrgHxNlcmltqDK5tPUplC2++P/b1rXnL8fZQkpgu8RZNFgj7NM\r\n8wBgZ9HIzB+CiShQ0bvkbDUasDzvPCRXqygXH3XVFG+B3b0K5AaH2pQoEBqn\r\nk4bNhDmfH7dV3Zi3uiIqfSzNjZbNhLaSYv8PW3W8aGxDaB34OaOpiSx84jyu\r\nJN574owkJdfQ6oacg/tDLxv6ZSPRuxEBEk2qop/r1n8mbffjyTc/iqDTkdWx\r\nrST3c3pjy7wTyEKsvNmiQCZhroOq7KeWXthLmGGUO9FzuwoZra5rj16pZAue\r\nkFJwJE9hOyfvwHulR6Tk82ccixOIvC/5/HaWNan5U0B5JxwLzPGaumXdICwG\r\n4aLPRBXRlbpxT/bZAjH9shn5LjG0qBFEmJg=\r\n=BEHG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"0826825fd8c5f3abac821ebe87a318e70f33c9dd","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator_wasm.js --output validator.json"},"_npmUser":{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git","directory":"packages/validator-rules"},"_npmVersion":"lerna/5.1.4/node@v18.2.0+arm64 (darwin)","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"18.2.0","dependencies":{"cross-fetch":"3.1.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_2.9.0_1656017312505_0.14732395934092302","host":"s3://npm-registry-packages"}},"2.10.0":{"name":"@ampproject/toolbox-validator-rules","version":"2.10.0","keywords":["amp"],"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","_id":"@ampproject/toolbox-validator-rules@2.10.0","maintainers":[{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"kristoferbaxter","email":"kbax@me.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"choumx","email":"willchou@google.com"},{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"fstanis","email":"filip@stanis.me"},{"name":"erwinmombay","email":"erwin.mombay@gmail.com"},{"name":"samouri","email":"jzfisgreat@gmail.com"},{"name":"caroqliu","email":"carolineliu@google.com"},{"name":"rsimha","email":"rsimha@amp.dev"},{"name":"dvoytenko","email":"dvoytenko@gmail.com"},{"name":"patrickkettner","email":"patrickkettner@gmail.com"},{"name":"alanorozco","email":"orozcoalan@gmail.com"},{"name":"kdwan","email":"kdwan@google.com"},{"name":"ampprojectbot","email":"bot@amp.dev"},{"name":"esth","email":"esther@amp.dev"}],"homepage":"https://github.com/ampproject/amp-toolbox/tree/main/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dist":{"shasum":"a4d1e93a3c6ff608a6a42412aaa60159d5b50b2d","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.10.0.tgz","fileCount":5,"integrity":"sha512-hAMgPw7eTyTg0iCnxfm2aI7XqAaJyIVkUIL0rTRRQ142XAK/1dWdoqXOpQLq8UZIahyqKfkQBlVAQ1CS9RpVZA==","signatures":[{"sig":"MEUCIAcC9a+Q/HMWg7/Oj1wuL0UBnV4HhEEECetNpC5Kb9enAiEAgd3UP7i3/Yb88w8KdVRj6v9HGXB01IPcHfWOOELc2Pg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12326},"main":"index.js","gitHead":"6103eb57765445355421826791361ac9ed9cf4d8","scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator_wasm.js --output validator.json"},"_npmUser":{"name":"ampproject-admin","email":"admin@ampproject.org"},"repository":{"url":"git+https://github.com/ampproject/amp-toolbox.git","type":"git","directory":"packages/validator-rules"},"_npmVersion":"10.8.1","description":"A library that helps query AMP Validator rules","directories":{"lib":"lib"},"_nodeVersion":"20.12.2","dependencies":{"cross-fetch":"3.1.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/toolbox-validator-rules_2.10.0_1718320189476_0.9831463403962437","host":"s3://npm-registry-packages"}},"2.10.1":{"name":"@ampproject/toolbox-validator-rules","version":"2.10.1","description":"A library that helps query AMP Validator rules","main":"index.js","keywords":["amp"],"scripts":{"fetchRules":"curl https://cdn.ampproject.org/v0/validator_wasm.js --output validator.json"},"repository":{"type":"git","url":"git+https://github.com/ampproject/amp-toolbox.git","directory":"packages/validator-rules"},"author":{"name":"AMPHTML Team"},"license":"Apache-2.0","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"dependencies":{"cross-fetch":"3.1.5"},"homepage":"https://github.com/ampproject/amp-toolbox/tree/main/packages/validator-rules","directories":{"lib":"lib"},"gitHead":"6103eb57765445355421826791361ac9ed9cf4d8","_id":"@ampproject/toolbox-validator-rules@2.10.1","_nodeVersion":"20.12.2","_npmVersion":"10.8.1","dist":{"integrity":"sha512-JhSXOb+igK6QEzJEjnfbsH+c7fGp9WRbeIeECu5fS2PC2F+4VqWOV1QBA4n3H0nFPexhrJadn6OedaNly7lilA==","shasum":"5d6f78d78c97057d26d74dc388cbda12ab5c25e7","tarball":"https://registry.npmjs.org/@ampproject/toolbox-validator-rules/-/toolbox-validator-rules-2.10.1.tgz","fileCount":5,"unpackedSize":12326,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC7P0VCGJEsiWGu/9MWUNQLtJW5rvZJFlxAVrvj34bKIAiAnCCXLsn8LzZ3LhdbN06Z9uP8lTLaF/HTwfcyL5j5LpA=="}]},"_npmUser":{"name":"ampproject-admin","email":"admin@ampproject.org"},"maintainers":[{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"kristoferbaxter","email":"kbax@me.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"choumx","email":"willchou@google.com"},{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"fstanis","email":"filip@stanis.me"},{"name":"erwinmombay","email":"erwin.mombay@gmail.com"},{"name":"samouri","email":"jzfisgreat@gmail.com"},{"name":"caroqliu","email":"carolineliu@google.com"},{"name":"rsimha","email":"rsimha@amp.dev"},{"name":"dvoytenko","email":"dvoytenko@gmail.com"},{"name":"patrickkettner","email":"patrickkettner@gmail.com"},{"name":"alanorozco","email":"orozcoalan@gmail.com"},{"name":"kdwan","email":"kdwan@google.com"},{"name":"ampprojectbot","email":"bot@amp.dev"},{"name":"esth","email":"esther@amp.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/toolbox-validator-rules_2.10.1_1718325249560_0.007267650865102393"},"_hasShrinkwrap":false}},"time":{"created":"2019-07-11T14:36:43.390Z","modified":"2024-06-14T00:34:10.192Z","1.0.0-beta.4":"2019-07-11T14:36:43.709Z","1.0.0-beta.5":"2019-07-15T15:35:57.225Z","1.0.0-beta.6":"2019-07-23T13:00:50.752Z","1.0.0-beta.7":"2019-07-24T13:51:26.118Z","1.0.0-beta.8":"2019-08-01T09:08:58.831Z","1.0.0-beta.9":"2019-08-01T09:15:51.583Z","1.0.0":"2019-08-06T19:59:35.920Z","1.0.1":"2019-08-06T20:11:04.820Z","1.1.0-beta.0":"2019-08-29T20:27:32.596Z","1.1.0-beta.1":"2019-09-19T19:20:31.510Z","1.1.0":"2019-10-08T14:14:07.780Z","1.1.1":"2019-10-08T14:43:15.115Z","2.0.0-alpha.0":"2020-01-22T14:30:17.541Z","2.0.0":"2020-02-13T21:24:37.672Z","2.1.0":"2020-04-01T08:59:46.901Z","2.2.0":"2020-04-03T08:23:29.767Z","2.3.0":"2020-04-15T09:31:36.435Z","2.5.4":"2020-06-22T19:51:59.724Z","2.7.1-alpha.0":"2020-12-01T19:03:30.887Z","2.7.1":"2020-12-02T14:54:54.448Z","2.7.2":"2020-12-15T19:50:48.102Z","2.7.4":"2020-12-23T11:50:37.344Z","2.8.0-canary.0":"2021-02-12T17:24:37.094Z","2.8.0-canary.9":"2021-03-22T15:01:40.207Z","2.8.0":"2021-05-31T14:35:45.494Z","3.0.0-canary.2":"2022-01-11T20:37:39.847Z","2.9.0":"2022-06-23T20:48:32.719Z","2.10.0":"2024-06-13T23:09:49.631Z","2.10.1":"2024-06-14T00:34:09.790Z"},"maintainers":[{"name":"ampproject-admin","email":"admin@ampproject.org"},{"name":"kristoferbaxter","email":"kbax@me.com"},{"name":"jridgewell","email":"justin+npm@ridgewell.name"},{"name":"choumx","email":"willchou@google.com"},{"name":"amp-toolbox","email":"amp-toolbox-eng@google.com"},{"name":"fstanis","email":"filip@stanis.me"},{"name":"erwinmombay","email":"erwin.mombay@gmail.com"},{"name":"samouri","email":"jzfisgreat@gmail.com"},{"name":"caroqliu","email":"carolineliu@google.com"},{"name":"rsimha","email":"rsimha@amp.dev"},{"name":"dvoytenko","email":"dvoytenko@gmail.com"},{"name":"patrickkettner","email":"patrickkettner@gmail.com"},{"name":"alanorozco","email":"orozcoalan@gmail.com"},{"name":"kdwan","email":"kdwan@google.com"},{"name":"ampprojectbot","email":"bot@amp.dev"},{"name":"esth","email":"esther@amp.dev"}],"author":{"name":"AMPHTML Team"},"repository":{"type":"git","url":"git+https://github.com/ampproject/amp-toolbox.git","directory":"packages/validator-rules"},"keywords":["amp"],"license":"Apache-2.0","homepage":"https://github.com/ampproject/amp-toolbox/tree/main/packages/validator-rules","bugs":{"url":"https://github.com/ampproject/amp-toolbox/issues"},"readme":"# AMP-Toolbox Validator Rules\n\n[![npm version](https://badge.fury.io/js/%40ampproject%2Ftoolbox-validator-rules.svg)](https://badge.fury.io/js/%40ampproject%2Ftoolbox-validator-rules)\n\nQueries published AMP Validator rules and extracts information about required\nmarkup and attributes for all AMP formats.\n\n## Usage\n\nInstall via:\n\n```\n$ npm install @ampproject/toolbox-validator-rules\n```\n\n### Including the Module\n\n#### ES Module (Browser)\n\n```javascript\nimport validatorRules from '@ampproject/toolbox-validator-rules';\n```\n\n#### CommonJs (Node)\n\n```javascript\nconst validatorRules = require('@ampproject/toolbox-validator-rules');\n```\n\n### Using the module\n\n```javascript\n  // Loads the validator rules remotely with default options\n  const rules = await validatorRules.fetch();\n\n\n  // The raw unprocessed rules\n  console.log(rules.raw);\n\n  // All tags, combined with their respective attribute lists\n  console.log(rules.tags);\n\n  // All extensions\n  console.log(rules.extensions);\n\n  // Get all tag names used in AMP for Email\n  // The supported formats are AMP, AMP4EMAIL, AMP4ADS and ACTIONS\n  const tags = rules.getTagsForFormat('AMP4EMAIL');\n\n  // Display their names\n  console.log(tags.map(tag => tag.tagName));\n\n  // Get information about an extension\n  const ext = rules.getExtension('AMP4EMAIL', 'amp-carousel');\n\n  // Display supported versions\n  console.log(ext.versions);\n```\n\n### Format of rules\n\nThe rules used closely follow the proto definitions from [validator.proto](https://github.com/ampproject/amphtml/blob/master/validator/validator.proto).\n\nSpecifically:\n\n-   The `raw` property is unprocessed [ValidatorRules](https://github.com/ampproject/amphtml/blob/master/validator/validator.proto#L643), the same format used by `https://cdn.ampproject.org/v0/validator.json`\n-   The result of `getTagsForFormat` and the `tags` property is a list of [TagSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L463)\n-   The result of `getExtension` is [ExtensionSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L388) with the `htmlFormat` field from `TagSpec`\n-   The `extensions` property a list of [ExtensionSpec](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L388) with the `htmlFormat` field from `TagSpec`\n-   The `errors` property combines [ErrorFormat](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L874) and [ErrorSpecificity](https://github.com/ampproject/amphtml/blob/b892d81467594cab5473c803e071af5108f834a6/validator/validator.proto#L869)\n\n### Options\n\n`fetch` optionally accepts an options object allowing you to customize its\nbehaviour.\n\nThe following options are supported:\n\n   * `noCache`: true to always fetch latest rules (by default, subsequent calls to `fetch` reuse the same result).\n   * `rules`: object to use locally specified rules instead of fetching them from the AMP CDN.\n   * `url`: override the URL where validator rules are fetched from.\n   * `source`: one of `'local'` (load rules from local file named \"validator.json\"), `'remote'` (fetch rules from CDN) or `'auto'` which is the default (tries looking for the local file first, then tries to fetch from CDN).\n\nExample:\n\n```\nvalidatorRules.fetch({\n  noCache: true,\n  source: 'remote'\n});\n```\n","readmeFilename":"README.md"}