{"_id":"react-amp-template","_rev":"34-380ac9acc68f0a5b0331087df0d675f8","name":"react-amp-template","description":"AMP react server rendering.","dist-tags":{"latest":"4.1.0","next":"4.1.0-rc.1"},"versions":{"1.0.0-alpha":{"name":"react-amp-template","version":"1.0.0-alpha","description":"AMP template generator.","main":"lib/index.js","bin":{"react-amp-template":"./bin/react-amp-template"},"scripts":{"example":"npm run dist && DEBUG=*,-babel node ./node_modules/.bin/babel-node ./dist/examples/renderToFile.js","clean":"rimraf lib dist","build":"babel src -d lib -s","copy-dist":"find bin coverage examples lib LICENSE.MD package.json README.md | cpio -p -dumv ./dist","deploy":"npm run dist && git-directory-deploy --directory dist --branch release --verbose","dist":"npm run clean && npm run build && npm run test && npm run copy-dist","test":"DEBUG=test babel-node ./node_modules/.bin/isparta cover _mocha -- --compilers js:babel-core/register --require source-map-support/register ./test/spec --recursive","test-watch":"npm run test -- --watch"},"author":{"name":"Ariel Fernando Rodriguez"},"license":"MIT","babel":{"presets":[["latest","es2015"],"react","stage-0"],"plugins":["transform-react-remove-prop-types","transform-react-constant-elements","transform-imports"],"env":{"test":{"plugins":["istanbul"]}}},"eslintConfig":{"parser":"babel-eslint","extends":"airbnb","env":{"browser":false,"node":true,"mocha":true,"es6":true},"plugins":["react","jsx-a11y"],"parserOptions":{"ecmaVersion":6,"sourceType":"module","ecmaFeatures":{"jsx":true}},"rules":{"arrow-parens":["error","always"],"arrow-body-style":[2,"as-needed"],"comma-dangle":[2,"always-multiline"],"import/imports-first":0,"import/newline-after-import":0,"import/no-dynamic-require":0,"import/no-extraneous-dependencies":0,"import/no-named-as-default":0,"import/no-unresolved":2,"import/prefer-default-export":0,"indent":[2,2,{"SwitchCase":1}],"jsx-a11y/aria-props":2,"jsx-a11y/heading-has-content":0,"jsx-a11y/href-no-hash":2,"jsx-a11y/label-has-for":2,"jsx-a11y/mouse-events-have-key-events":2,"jsx-a11y/role-has-required-aria-props":2,"jsx-a11y/role-supports-aria-props":2,"max-len":0,"newline-per-chained-call":0,"no-console":1,"no-use-before-define":0,"prefer-template":2,"class-methods-use-this":0,"react/forbid-prop-types":0,"react/jsx-first-prop-new-line":[2,"multiline"],"react/jsx-filename-extension":0,"react/jsx-no-target-blank":0,"react/require-extension":0,"react/self-closing-comp":0,"require-yield":0},"settings":{}},"dependencies":{"amphtml-validator":"^1.0.15","aphrodite":"^1.1.0","react":"15.4.1","react-dom":"15.4.1","zombie":"^5.0.5"},"devDependencies":{"amphtml-validator":"^1.0.15","babel-cli":"6.18.0","babel-core":"6.18.0","babel-eslint":"7.1.0","babel-loader":"6.2.7","babel-plugin-istanbul":"2.0.3","babel-plugin-react-intl":"2.2.0","babel-plugin-react-transform":"2.0.2","babel-plugin-transform-imports":"^1.1.0","babel-plugin-transform-react-constant-elements":"6.9.1","babel-plugin-transform-react-inline-elements":"6.8.0","babel-plugin-transform-react-remove-prop-types":"0.2.10","babel-preset-es2015":"^6.18.0","babel-preset-latest":"6.16.0","babel-preset-react":"6.16.0","babel-preset-react-hmre":"1.1.1","babel-preset-stage-0":"6.16.0","chai":"^3.5.0","cross-env":"^3.1.3","debug":"^2.3.3","eslint":"3.9.0","eslint-config-airbnb":"12.0.0","eslint-config-airbnb-base":"9.0.0","eslint-plugin-import":"2.0.1","eslint-plugin-jsx-a11y":"2.2.3","eslint-plugin-react":"6.4.1","git-directory-deploy":"^1.5.1","isparta":"^4.0.0","istanbul":"^0.4.5","mocha":"^3.1.2","pre-commit":"^1.1.3","rimraf":"^2.5.4","sinon":"^1.17.6","source-map-support":"^0.4.6"},"gitHead":"94d3d6f3e254c9ffcdc22cdea0ae23c57a11f987","_id":"react-amp-template@1.0.0-alpha","_shasum":"28f30b25ec74ee38de01a6e65c20df8062160f73","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.1.0","_npmUser":{"name":"natgeo","email":"webtools@ngs.org"},"dist":{"shasum":"28f30b25ec74ee38de01a6e65c20df8062160f73","tarball":"https://registry.npmjs.org/react-amp-template/-/react-amp-template-1.0.0-alpha.tgz","integrity":"sha512-Z0MTE+pXixIHp8SjXhTt9bmtn/vuiIw6dYqbWcd5rWA3+b03LnHRgxgkqUupAjkVo26ksgn3aF52kboX6rvNGw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDdd29SDc64aTA/V2hSlj87aA2rEHojQ0Pq0pap0zQdEQIhAKeAzQFPXbJUhIDT6wwHjenSAZ3aVcUx5h7I5BiTRbTf"}]},"maintainers":[{"name":"natgeo","email":"webtools@ngs.org"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-amp-template-1.0.0-alpha.tgz_1480104737918_0.2916678017936647"},"directories":{}},"1.0.0":{"name":"react-amp-template","version":"1.0.0","description":"AMP react server rendering.","keywords":["react","amp","server-rendering","react-amp","amp-react"],"main":"lib/index.js","bin":{"react-amp-template":"./bin/react-amp-template"},"scripts":{"build":"npm run build-lib","build-examples":"DEBUG=*,-babel babel examples/src -d examples/build -s","build-lib":"DEBUG=*,-babel babel src -d lib -s","clean":"rimraf lib dist","copy-dist":"find bin coverage examples lib vendors LICENSE.MD package.json README.md | cpio -p -dumv ./dist","deploy":"npm run dist && git-directory-deploy --directory dist --branch release --verbose","demo":"DEBUG=*,-babel node ./dist/examples/build/demo.js","dist":"npm run clean && npm run build && npm run build-examples && npm run test && npm run copy-dist","examples":"DEBUG=*,-babel node ./dist/examples/build/index.js","test":"npm run build && DEBUG=rampt* babel-node ./node_modules/.bin/isparta cover _mocha -- --compilers js:babel-core/register --require source-map-support/register ./test/spec --recursive","test-dev":"npm run test -- --watch"},"author":{"name":"Ariel Fernando Rodriguez"},"license":"Apache-2.0","babel":{"presets":[["latest","es2015"],"react","stage-0"],"plugins":["transform-react-remove-prop-types","transform-react-constant-elements","transform-imports"],"env":{"test":{"plugins":["istanbul"]}}},"eslintConfig":{"parser":"babel-eslint","extends":"airbnb","env":{"browser":false,"node":true,"mocha":true,"es6":true},"plugins":["react","jsx-a11y"],"parserOptions":{"ecmaVersion":6,"sourceType":"module","ecmaFeatures":{"jsx":true}},"rules":{"arrow-parens":["error","always"],"arrow-body-style":[2,"as-needed"],"comma-dangle":[2,"always-multiline"],"import/imports-first":0,"import/newline-after-import":0,"import/no-dynamic-require":0,"import/no-extraneous-dependencies":0,"import/no-named-as-default":0,"import/no-unresolved":2,"import/prefer-default-export":0,"indent":[2,2,{"SwitchCase":1}],"jsx-a11y/aria-props":2,"jsx-a11y/heading-has-content":0,"jsx-a11y/href-no-hash":2,"jsx-a11y/label-has-for":2,"jsx-a11y/mouse-events-have-key-events":2,"jsx-a11y/role-has-required-aria-props":2,"jsx-a11y/role-supports-aria-props":2,"max-len":0,"newline-per-chained-call":0,"no-console":1,"no-use-before-define":0,"prefer-template":2,"class-methods-use-this":0,"react/forbid-prop-types":0,"react/jsx-first-prop-new-line":[2,"multiline"],"react/jsx-filename-extension":0,"react/jsx-no-target-blank":0,"react/require-extension":0,"react/self-closing-comp":0,"require-yield":0},"settings":{}},"dependencies":{"amphtml-validator":"^1.0.15","aphrodite":"^1.1.0","react":"15.4.1","react-dom":"15.4.1"},"devDependencies":{"babel-cli":"6.18.0","babel-core":"^6.18.2","babel-eslint":"^7.1.1","babel-loader":"^6.2.8","babel-plugin-istanbul":"^3.0.0","babel-plugin-react-intl":"2.2.0","babel-plugin-react-transform":"2.0.2","babel-plugin-transform-imports":"^1.1.0","babel-plugin-transform-react-constant-elements":"6.9.1","babel-plugin-transform-react-inline-elements":"6.8.0","babel-plugin-transform-react-remove-prop-types":"^0.2.11","babel-preset-es2015":"^6.18.0","babel-preset-latest":"6.16.0","babel-preset-react":"6.16.0","babel-preset-react-hmre":"1.1.1","babel-preset-stage-0":"6.16.0","chai":"^3.5.0","debug":"^2.3.3","eslint":"^3.11.0","eslint-config-airbnb":"^13.0.0","eslint-config-airbnb-base":"^10.0.1","eslint-plugin-import":"^2.2.0","eslint-plugin-jsx-a11y":"^2.0.1","eslint-plugin-react":"^6.7.1","git-directory-deploy":"^1.5.1","isparta":"^4.0.0","istanbul":"^0.4.5","mocha":"^3.1.2","pre-commit":"^1.1.3","rimraf":"^2.5.4","sinon":"^1.17.6","source-map-support":"^0.4.6"},"gitHead":"e542707377121e468f1e03313d4a02f2ac83fff5","_id":"react-amp-template@1.0.0","_shasum":"3856863c1117cc3495bb304597a596b9e1ed0f48","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.1.0","_npmUser":{"name":"arielfdr","email":"ariel.fdr@gmail.com"},"dist":{"shasum":"3856863c1117cc3495bb304597a596b9e1ed0f48","tarball":"https://registry.npmjs.org/react-amp-template/-/react-amp-template-1.0.0.tgz","integrity":"sha512-WrKcVtbg7S1ydhfPjKfEQNEF/H/L2A4pgWzWdGDOKaccBaXzTzIYrk3ejYn5LtqhSh9Js1gpTTFGcdEKfM2YFQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1Jy0o0g322j+wI69f9Ku4Y7+/wJ2SeTYaL86dR+k+mgIhALNWlXN9oin4ZTPCNbC8H6rVpdI0fSBzBCjjxWwiEdrt"}]},"maintainers":[{"name":"alexrqs","email":"alexlopezarroyave@gmail.com"},{"name":"arielfdr","email":"ariel.fdr@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-amp-template-1.0.0.tgz_1480529678217_0.5277706359047443"},"directories":{}},"1.0.1":{"name":"react-amp-template","version":"1.0.1","description":"AMP react server rendering.","keywords":["react","amp","server-rendering","react-amp","amp-react"],"main":"lib/index.js","bin":{"react-amp-template":"./bin/react-amp-template"},"scripts":{"build":"npm run build-lib","build-examples":"DEBUG=*,-babel babel examples/src -d examples/build -s","build-lib":"DEBUG=*,-babel babel src -d lib -s","clean":"rimraf lib dist","copy-dist":"find bin coverage examples lib vendors LICENSE.MD package.json README.md | cpio -p -dumv ./dist","deploy":"npm run dist && git-directory-deploy --directory dist --branch release --verbose","demo":"DEBUG=*,-babel node ./dist/examples/build/demo.js","dist":"npm run clean && npm run build && npm run build-examples && npm run test && npm run copy-dist","examples":"DEBUG=*,-babel node ./dist/examples/build/index.js","test":"npm run build && DEBUG=rampt* babel-node ./node_modules/.bin/isparta cover _mocha -- --compilers js:babel-core/register --require source-map-support/register ./test/spec --recursive","test-dev":"npm run test -- --watch"},"author":{"name":"Ariel Fernando Rodriguez"},"license":"Apache-2.0","babel":{"presets":[["latest","es2015"],"react","stage-0"],"plugins":["transform-react-remove-prop-types","transform-react-constant-elements","transform-imports"],"env":{"test":{"plugins":["istanbul"]}}},"eslintConfig":{"parser":"babel-eslint","extends":"airbnb","env":{"browser":false,"node":true,"mocha":true,"es6":true},"plugins":["react","jsx-a11y"],"parserOptions":{"ecmaVersion":6,"sourceType":"module","ecmaFeatures":{"jsx":true}},"rules":{"arrow-parens":["error","always"],"arrow-body-style":[2,"as-needed"],"comma-dangle":[2,"always-multiline"],"import/imports-first":0,"import/newline-after-import":0,"import/no-dynamic-require":0,"import/no-extraneous-dependencies":0,"import/no-named-as-default":0,"import/no-unresolved":2,"import/prefer-default-export":0,"indent":[2,2,{"SwitchCase":1}],"jsx-a11y/aria-props":2,"jsx-a11y/heading-has-content":0,"jsx-a11y/href-no-hash":2,"jsx-a11y/label-has-for":2,"jsx-a11y/mouse-events-have-key-events":2,"jsx-a11y/role-has-required-aria-props":2,"jsx-a11y/role-supports-aria-props":2,"max-len":0,"newline-per-chained-call":0,"no-console":1,"no-use-before-define":0,"prefer-template":2,"class-methods-use-this":0,"react/forbid-prop-types":0,"react/jsx-first-prop-new-line":[2,"multiline"],"react/jsx-filename-extension":0,"react/jsx-no-target-blank":0,"react/require-extension":0,"react/self-closing-comp":0,"require-yield":0},"settings":{}},"dependencies":{"amphtml-validator":"^1.0.15","aphrodite":"^1.1.0","react":"15.4.1","react-dom":"15.4.1"},"devDependencies":{"babel-cli":"6.18.0","babel-core":"^6.18.2","babel-eslint":"^7.1.1","babel-loader":"^6.2.8","babel-plugin-istanbul":"^3.0.0","babel-plugin-react-intl":"2.2.0","babel-plugin-react-transform":"2.0.2","babel-plugin-transform-imports":"^1.1.0","babel-plugin-transform-react-constant-elements":"6.9.1","babel-plugin-transform-react-inline-elements":"6.8.0","babel-plugin-transform-react-remove-prop-types":"^0.2.11","babel-preset-es2015":"^6.18.0","babel-preset-latest":"6.16.0","babel-preset-react":"6.16.0","babel-preset-react-hmre":"1.1.1","babel-preset-stage-0":"6.16.0","chai":"^3.5.0","debug":"^2.3.3","eslint":"^3.11.0","eslint-config-airbnb":"^13.0.0","eslint-config-airbnb-base":"^10.0.1","eslint-plugin-import":"^2.2.0","eslint-plugin-jsx-a11y":"^2.0.1","eslint-plugin-react":"^6.7.1","git-directory-deploy":"^1.5.1","isparta":"^4.0.0","istanbul":"^0.4.5","mocha":"^3.1.2","pre-commit":"^1.1.3","rimraf":"^2.5.4","sinon":"^1.17.6","source-map-support":"^0.4.6"},"gitHead":"2e382e357cf80f4135f9974caaa9070bf342c9f2","_id":"react-amp-template@1.0.1","_shasum":"80c87d39a9ecfe1f0daa691e4acb1a879b4f9361","_from":".","_npmVersion":"4.0.3","_nodeVersion":"7.2.1","_npmUser":{"name":"alexrqs","email":"alexlopezarroyave@gmail.com"},"dist":{"shasum":"80c87d39a9ecfe1f0daa691e4acb1a879b4f9361","tarball":"https://registry.npmjs.org/react-amp-template/-/react-amp-template-1.0.1.tgz","integrity":"sha512-YZ3v7vVl0lCEEmi7k5NwkmaUkhl9AWKdXdle9e/AbKP4hSkWX04OhlpiT0ZUP0WcAEbced904w0/Zw6kxXtjow==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG1y2myZjxfmNVZkBKUiI00c8IRZDcSXnZjLh9hhQUb/AiEAnKH3nMjBeA4GJ1kXtoVP6tiE9mZY9Ipz1YoRXxO0kd4="}]},"maintainers":[{"name":"alexrqs","email":"alexlopezarroyave@gmail.com"},{"name":"arielfdr","email":"ariel.fdr@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-amp-template-1.0.1.tgz_1482432166716_0.592733142664656"},"directories":{}},"2.0.0":{"name":"react-amp-template","version":"2.0.0","description":"AMP react server rendering.","keywords":["react","amp","server-rendering","react-amp","amp-react","template"],"main":"lib/index.js","bin":{"react-amp-template":"./bin/react-amp-template"},"repository":{"type":"git","url":"git+https://github.com/Ariel-Rodriguez/react-amp-template.git"},"scripts":{"build":"npm run build-lib","build-examples":"DEBUG=*,-babel babel examples/src -d examples/build -s","build-lib":"DEBUG=*,-babel babel src -d lib -s","clean":"rimraf lib dist","copy-dist":"find bin coverage examples lib vendors LICENSE.MD package.json README.md | cpio -p -dumv ./dist","deploy":"npm run dist && git-directory-deploy --directory dist --branch release --verbose","demo":"DEBUG=*,-babel node ./dist/examples/build/demo.js","dist":"npm run clean && npm run build && npm run build-examples && npm run test && npm run copy-dist","examples":"npm run build-examples && DEBUG=*,-babel node ./examples/build/index.js","watch:examples":"nodemon -w ./examples/src/ --exec 'npm run examples'","test":"npm run build && DEBUG=rampt* babel-node ./node_modules/.bin/isparta cover _mocha -- --compilers js:babel-core/register --require source-map-support/register ./test/spec --recursive","test-dev":"npm run test -- --watch"},"author":{"name":"Ariel Fernando Rodriguez"},"license":"Apache-2.0","babel":{"presets":[["latest","es2015"],"react","stage-0"],"plugins":["transform-react-remove-prop-types","transform-react-constant-elements","transform-imports"],"env":{"test":{"plugins":["istanbul"]}}},"eslintConfig":{"parser":"babel-eslint","extends":"airbnb","env":{"browser":false,"node":true,"mocha":true,"es6":true},"plugins":["react","jsx-a11y"],"parserOptions":{"ecmaVersion":6,"sourceType":"module","ecmaFeatures":{"jsx":true}},"rules":{"arrow-parens":["error","always"],"arrow-body-style":[2,"as-needed"],"comma-dangle":[2,"always-multiline"],"import/imports-first":0,"import/newline-after-import":0,"import/no-dynamic-require":0,"import/no-extraneous-dependencies":0,"import/no-named-as-default":0,"import/no-unresolved":2,"import/prefer-default-export":0,"indent":[2,2,{"SwitchCase":1}],"jsx-a11y/aria-props":2,"jsx-a11y/heading-has-content":0,"jsx-a11y/href-no-hash":2,"jsx-a11y/label-has-for":2,"jsx-a11y/mouse-events-have-key-events":2,"jsx-a11y/role-has-required-aria-props":2,"jsx-a11y/role-supports-aria-props":2,"max-len":0,"newline-per-chained-call":0,"no-console":1,"no-use-before-define":0,"prefer-template":2,"class-methods-use-this":0,"react/forbid-prop-types":0,"react/jsx-first-prop-new-line":[2,"multiline"],"react/jsx-filename-extension":0,"react/jsx-no-target-blank":0,"react/require-extension":0,"react/self-closing-comp":0,"require-yield":0},"settings":{}},"dependencies":{"amphtml-validator":"^1.0.15","aphrodite":"^1.1.0","react":"15.4.1","react-dom":"15.4.1"},"devDependencies":{"babel-cli":"6.18.0","babel-core":"^6.18.2","babel-eslint":"^7.1.1","babel-loader":"^6.2.8","babel-plugin-istanbul":"^3.0.0","babel-plugin-react-intl":"2.2.0","babel-plugin-react-transform":"2.0.2","babel-plugin-transform-imports":"^1.1.0","babel-plugin-transform-react-constant-elements":"6.9.1","babel-plugin-transform-react-inline-elements":"6.8.0","babel-plugin-transform-react-remove-prop-types":"^0.2.11","babel-preset-es2015":"^6.18.0","babel-preset-latest":"6.16.0","babel-preset-react":"6.16.0","babel-preset-react-hmre":"1.1.1","babel-preset-stage-0":"6.16.0","chai":"^3.5.0","debug":"^2.3.3","eslint":"^3.11.0","eslint-config-airbnb":"^13.0.0","eslint-config-airbnb-base":"^10.0.1","eslint-plugin-import":"^2.2.0","eslint-plugin-jsx-a11y":"^2.0.1","eslint-plugin-react":"^6.7.1","git-directory-deploy":"^1.5.1","isparta":"^4.0.0","istanbul":"^0.4.5","mocha":"^3.1.2","pre-commit":"^1.1.3","rimraf":"^2.5.4","sinon":"^1.17.6","source-map-support":"^0.4.6"},"gitHead":"a16be4cb637edf68e98c9c8c161b1ef9881d5315","bugs":{"url":"https://github.com/Ariel-Rodriguez/react-amp-template/issues"},"homepage":"https://github.com/Ariel-Rodriguez/react-amp-template#readme","_id":"react-amp-template@2.0.0","_shasum":"d9b3ac159be6b96e177dc6510257275b4bc147ad","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.4","_npmUser":{"name":"arielfdr","email":"ariel.fdr@gmail.com"},"dist":{"shasum":"d9b3ac159be6b96e177dc6510257275b4bc147ad","tarball":"https://registry.npmjs.org/react-amp-template/-/react-amp-template-2.0.0.tgz","integrity":"sha512-mLZBR0uLVgQBOXZZXxpeSt5yrzTtLpNct+hWN5TI5b+kQ1yzf1tT+ZU2xoO1oDb09XhRQPUye1lc18gcn1rhGA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDveX9fheWQqRsPVU4BYJdNLY3CPoegmQhNjJwikFcJPAIgJGIGHlhx6jRs1WLbDC6cU+e0d4IYzJu+xZTIQbMJGLE="}]},"maintainers":[{"name":"alexrqs","email":"alexlopezarroyave@gmail.com"},{"name":"arielfdr","email":"ariel.fdr@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-amp-template-2.0.0.tgz_1486060822380_0.6952538865152746"},"directories":{}},"2.1.0":{"name":"react-amp-template","version":"2.1.0","description":"AMP react server rendering.","keywords":["react","amp","server-rendering","react-amp","amp-react","template"],"main":"lib/index.js","bin":{"react-amp-template":"./bin/react-amp-template"},"repository":{"type":"git","url":"git+https://github.com/Ariel-Rodriguez/react-amp-template.git"},"scripts":{"build":"npm run build-lib","build-examples":"DEBUG=*,-babel babel examples/src -d examples/build -s","build-lib":"DEBUG=*,-babel babel src -d lib -s","clean":"rimraf lib dist","copy-dist":"find bin coverage examples lib vendors LICENSE.MD package.json README.md | cpio -p -dumv ./dist","deploy":"npm run dist && git-directory-deploy --directory dist --branch release --verbose","demo":"DEBUG=*,-babel node ./dist/examples/build/demo.js","dist":"npm run clean && npm run build && npm run build-examples && npm run test && npm run copy-dist","examples":"npm run build-examples && DEBUG=*,-babel node ./examples/build/index.js","watch:examples":"nodemon -w ./examples/src/ --exec 'npm run examples'","test":"npm run build && DEBUG=rampt* babel-node ./node_modules/.bin/isparta cover _mocha -- --compilers js:babel-core/register --require source-map-support/register ./test/spec --recursive","test-dev":"npm run test -- --watch"},"author":{"name":"Ariel Fernando Rodriguez"},"license":"Apache-2.0","babel":{"presets":[["latest","es2015"],"react","stage-0"],"plugins":["transform-react-remove-prop-types","transform-react-constant-elements","transform-imports"],"env":{"test":{"plugins":["istanbul"]}}},"eslintConfig":{"parser":"babel-eslint","extends":"airbnb","env":{"browser":false,"node":true,"mocha":true,"es6":true},"plugins":["react","jsx-a11y"],"parserOptions":{"ecmaVersion":6,"sourceType":"module","ecmaFeatures":{"jsx":true}},"rules":{"arrow-parens":["error","always"],"arrow-body-style":[2,"as-needed"],"comma-dangle":[2,"always-multiline"],"import/imports-first":0,"import/newline-after-import":0,"import/no-dynamic-require":0,"import/no-extraneous-dependencies":0,"import/no-named-as-default":0,"import/no-unresolved":2,"import/prefer-default-export":0,"indent":[2,2,{"SwitchCase":1}],"jsx-a11y/aria-props":2,"jsx-a11y/heading-has-content":0,"jsx-a11y/href-no-hash":2,"jsx-a11y/label-has-for":2,"jsx-a11y/mouse-events-have-key-events":2,"jsx-a11y/role-has-required-aria-props":2,"jsx-a11y/role-supports-aria-props":2,"max-len":0,"newline-per-chained-call":0,"no-console":1,"no-use-before-define":0,"prefer-template":2,"class-methods-use-this":0,"react/forbid-prop-types":0,"react/jsx-first-prop-new-line":[2,"multiline"],"react/jsx-filename-extension":0,"react/jsx-no-target-blank":0,"react/require-extension":0,"react/self-closing-comp":0,"require-yield":0},"settings":{}},"dependencies":{"amphtml-validator":"^1.0.15","aphrodite":"^1.1.0","react":"15.4.1","react-dom":"15.4.1"},"devDependencies":{"babel-cli":"6.18.0","babel-core":"^6.18.2","babel-eslint":"^7.1.1","babel-loader":"^6.2.8","babel-plugin-istanbul":"^3.0.0","babel-plugin-react-intl":"2.2.0","babel-plugin-react-transform":"2.0.2","babel-plugin-transform-imports":"^1.1.0","babel-plugin-transform-react-constant-elements":"6.9.1","babel-plugin-transform-react-inline-elements":"6.8.0","babel-plugin-transform-react-remove-prop-types":"^0.2.11","babel-preset-es2015":"^6.18.0","babel-preset-latest":"6.16.0","babel-preset-react":"6.16.0","babel-preset-react-hmre":"1.1.1","babel-preset-stage-0":"6.16.0","chai":"^3.5.0","debug":"^2.3.3","eslint":"^3.11.0","eslint-config-airbnb":"^13.0.0","eslint-config-airbnb-base":"^10.0.1","eslint-plugin-import":"^2.2.0","eslint-plugin-jsx-a11y":"^2.0.1","eslint-plugin-react":"^6.7.1","git-directory-deploy":"^1.5.1","isparta":"^4.0.0","istanbul":"^0.4.5","mocha":"^3.1.2","pre-commit":"^1.1.3","rimraf":"^2.5.4","sinon":"^1.17.6","source-map-support":"^0.4.6"},"gitHead":"404372c1443698b2a979866d1736dea324078638","bugs":{"url":"https://github.com/Ariel-Rodriguez/react-amp-template/issues"},"homepage":"https://github.com/Ariel-Rodriguez/react-amp-template#readme","_id":"react-amp-template@2.1.0","_shasum":"674a06556baf63b4cbe99017a91cf381fc67e0ec","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.4","_npmUser":{"name":"arielfdr","email":"ariel.fdr@gmail.com"},"dist":{"shasum":"674a06556baf63b4cbe99017a91cf381fc67e0ec","tarball":"https://registry.npmjs.org/react-amp-template/-/react-amp-template-2.1.0.tgz","integrity":"sha512-BVtZEWVv7M/Szrf5igSAJOPcsl3D4ouY2h2gEw6MHVk2C/etYvbQMMI3pNInUkkNfcdL8icWI5jKj/C8nqc97A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEHf5HW2fAan3yBQGwU7rMdfE7Qa865laLNXDdRXsM0yAiEA5/CimNikO7nhe+u7bEx5sjhnMj4G3TOuZcs893aZru4="}]},"maintainers":[{"name":"alexrqs","email":"alexlopezarroyave@gmail.com"},{"name":"arielfdr","email":"ariel.fdr@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-amp-template-2.1.0.tgz_1486069891297_0.38363243406638503"},"directories":{}},"2.2.0":{"name":"react-amp-template","version":"2.2.0","description":"AMP react server rendering.","keywords":["react","amp","server-rendering","react-amp","amp-react","template"],"main":"lib/index.js","bin":{"react-amp-template":"./bin/react-amp-template"},"repository":{"type":"git","url":"git+https://github.com/Ariel-Rodriguez/react-amp-template.git"},"scripts":{"build":"npm run build-lib","build-examples":"DEBUG=*,-babel babel examples/src -d examples/build -s","build-lib":"DEBUG=*,-babel babel src -d lib -s","clean":"rimraf lib dist","copy-dist":"find bin coverage examples lib vendors LICENSE.MD package.json README.md | cpio -p -dumv ./dist","deploy":"npm run dist && git-directory-deploy --directory dist --branch release --verbose","demo":"DEBUG=*,-babel node ./dist/examples/build/demo.js","dist":"npm run clean && npm run build && npm run build-examples && npm run test && npm run copy-dist","examples":"npm run build-examples && DEBUG=*,-babel node ./examples/build/index.js","watch:examples":"nodemon -w ./examples/src/ --exec 'npm run examples'","test":"npm run build && DEBUG=rampt* babel-node ./node_modules/.bin/isparta cover _mocha -- --compilers js:babel-core/register --require source-map-support/register ./test/spec --recursive","test-dev":"npm run test -- --watch"},"author":{"name":"Ariel Fernando Rodriguez"},"license":"Apache-2.0","babel":{"presets":[["latest","es2015"],"react","stage-0"],"plugins":["transform-react-remove-prop-types","transform-react-constant-elements","transform-imports"],"env":{"test":{"plugins":["istanbul"]}}},"eslintConfig":{"parser":"babel-eslint","extends":"airbnb","env":{"browser":false,"node":true,"mocha":true,"es6":true},"plugins":["react","jsx-a11y"],"parserOptions":{"ecmaVersion":6,"sourceType":"module","ecmaFeatures":{"jsx":true}},"rules":{"arrow-parens":["error","always"],"arrow-body-style":[2,"as-needed"],"comma-dangle":[2,"always-multiline"],"import/imports-first":0,"import/newline-after-import":0,"import/no-dynamic-require":0,"import/no-extraneous-dependencies":0,"import/no-named-as-default":0,"import/no-unresolved":2,"import/prefer-default-export":0,"indent":[2,2,{"SwitchCase":1}],"jsx-a11y/aria-props":2,"jsx-a11y/heading-has-content":0,"jsx-a11y/href-no-hash":2,"jsx-a11y/label-has-for":2,"jsx-a11y/mouse-events-have-key-events":2,"jsx-a11y/role-has-required-aria-props":2,"jsx-a11y/role-supports-aria-props":2,"max-len":0,"newline-per-chained-call":0,"no-console":1,"no-use-before-define":0,"prefer-template":2,"class-methods-use-this":0,"react/forbid-prop-types":0,"react/jsx-first-prop-new-line":[2,"multiline"],"react/jsx-filename-extension":0,"react/jsx-no-target-blank":0,"react/require-extension":0,"react/self-closing-comp":0,"require-yield":0},"settings":{}},"dependencies":{"amphtml-validator":"^1.0.15","aphrodite":"^1.1.0","html":"^1.0.0","react":"15.4.1","react-dom":"15.4.1"},"devDependencies":{"babel-cli":"6.18.0","babel-core":"^6.18.2","babel-eslint":"^7.1.1","babel-loader":"^6.2.8","babel-plugin-istanbul":"^3.0.0","babel-plugin-react-intl":"2.2.0","babel-plugin-react-transform":"2.0.2","babel-plugin-transform-imports":"^1.1.0","babel-plugin-transform-react-constant-elements":"6.9.1","babel-plugin-transform-react-inline-elements":"6.8.0","babel-plugin-transform-react-remove-prop-types":"^0.2.11","babel-preset-es2015":"^6.18.0","babel-preset-latest":"6.16.0","babel-preset-react":"6.16.0","babel-preset-react-hmre":"1.1.1","babel-preset-stage-0":"6.16.0","chai":"^3.5.0","debug":"^2.3.3","eslint":"^3.11.0","eslint-config-airbnb":"^13.0.0","eslint-config-airbnb-base":"^10.0.1","eslint-plugin-import":"^2.2.0","eslint-plugin-jsx-a11y":"^2.0.1","eslint-plugin-react":"^6.7.1","git-directory-deploy":"^1.5.1","isparta":"^4.0.0","istanbul":"^0.4.5","mocha":"^3.1.2","pre-commit":"^1.1.3","rimraf":"^2.5.4","sinon":"^1.17.6","source-map-support":"^0.4.6"},"gitHead":"65f3f82eb8dd9947195a2f850aa658d247ee40e3","bugs":{"url":"https://github.com/Ariel-Rodriguez/react-amp-template/issues"},"homepage":"https://github.com/Ariel-Rodriguez/react-amp-template#readme","_id":"react-amp-template@2.2.0","_shasum":"e0b5345304d7a0edfadecfe5f9dfef2250ef79f2","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.1","_npmUser":{"name":"arielfdr","email":"ariel.fdr@gmail.com"},"dist":{"shasum":"e0b5345304d7a0edfadecfe5f9dfef2250ef79f2","tarball":"https://registry.npmjs.org/react-amp-template/-/react-amp-template-2.2.0.tgz","integrity":"sha512-LJbv74ULNtRJ7RtcwUJzjnmkbEOzFSjY9WAWrPaAIdUJ6XglKcfuF93qEtqmviw0WSQojIaU2xlf34D7WnXkUg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHX2zvQa83OAngrZ6fjYo1LBOKZuRqWvfMTkirS8/CLyAiBZWOKxxYKdhrbzMnRUSaYTSsSngfnY8p+gu1ssCstI8Q=="}]},"maintainers":[{"name":"alexrqs","email":"alexlopezarroyave@gmail.com"},{"name":"arielfdr","email":"ariel.fdr@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-amp-template-2.2.0.tgz_1486411518029_0.8612101303879172"},"directories":{}},"2.2.1":{"name":"react-amp-template","version":"2.2.1","description":"AMP react server rendering.","keywords":["react","amp","server-rendering","react-amp","amp-react","template"],"main":"lib/index.js","bin":{"react-amp-template":"./bin/react-amp-template"},"repository":{"type":"git","url":"git+https://github.com/Ariel-Rodriguez/react-amp-template.git"},"scripts":{"build":"npm run build-lib","build-examples":"DEBUG=*,-babel babel examples/src -d examples/build -s","build-lib":"DEBUG=*,-babel babel src -d lib -s","clean":"rimraf lib dist","copy-dist":"find bin coverage examples lib vendors LICENSE.MD package.json README.md | cpio -p -dumv ./dist","deploy":"npm run dist && git-directory-deploy --directory dist --branch release --verbose","demo":"DEBUG=*,-babel node ./dist/examples/build/demo.js","dist":"npm run clean && npm run build && npm run build-examples && npm run test && npm run copy-dist","examples":"npm run build-examples && DEBUG=*,-babel node ./examples/build/index.js","watch:examples":"nodemon -w ./examples/src/ --exec 'npm run examples'","test":"npm run build && DEBUG=rampt* babel-node ./node_modules/.bin/isparta cover _mocha -- --compilers js:babel-core/register --require source-map-support/register ./test/spec --recursive","test-dev":"npm run test -- --watch"},"author":{"name":"Ariel Fernando Rodriguez"},"license":"Apache-2.0","babel":{"presets":[["latest","es2015"],"react","stage-0"],"plugins":["transform-react-remove-prop-types","transform-react-constant-elements","transform-imports"],"env":{"test":{"plugins":["istanbul"]}}},"eslintConfig":{"parser":"babel-eslint","extends":"airbnb","env":{"browser":false,"node":true,"mocha":true,"es6":true},"plugins":["react","jsx-a11y"],"parserOptions":{"ecmaVersion":6,"sourceType":"module","ecmaFeatures":{"jsx":true}},"rules":{"arrow-parens":["error","always"],"arrow-body-style":[2,"as-needed"],"comma-dangle":[2,"always-multiline"],"import/imports-first":0,"import/newline-after-import":0,"import/no-dynamic-require":0,"import/no-extraneous-dependencies":0,"import/no-named-as-default":0,"import/no-unresolved":2,"import/prefer-default-export":0,"indent":[2,2,{"SwitchCase":1}],"jsx-a11y/aria-props":2,"jsx-a11y/heading-has-content":0,"jsx-a11y/href-no-hash":2,"jsx-a11y/label-has-for":2,"jsx-a11y/mouse-events-have-key-events":2,"jsx-a11y/role-has-required-aria-props":2,"jsx-a11y/role-supports-aria-props":2,"max-len":0,"newline-per-chained-call":0,"no-console":1,"no-use-before-define":0,"prefer-template":2,"class-methods-use-this":0,"react/forbid-prop-types":0,"react/jsx-first-prop-new-line":[2,"multiline"],"react/jsx-filename-extension":0,"react/jsx-no-target-blank":0,"react/require-extension":0,"react/self-closing-comp":0,"require-yield":0},"settings":{}},"dependencies":{"amphtml-validator":"^1.0.15","aphrodite":"^1.1.0","html":"^1.0.0","react":"15.4.1","react-dom":"15.4.1"},"devDependencies":{"babel-cli":"6.18.0","babel-core":"^6.18.2","babel-eslint":"^7.1.1","babel-loader":"^6.2.8","babel-plugin-istanbul":"^3.0.0","babel-plugin-react-intl":"2.2.0","babel-plugin-react-transform":"2.0.2","babel-plugin-transform-imports":"^1.1.0","babel-plugin-transform-react-constant-elements":"6.9.1","babel-plugin-transform-react-inline-elements":"6.8.0","babel-plugin-transform-react-remove-prop-types":"^0.2.11","babel-preset-es2015":"^6.18.0","babel-preset-latest":"6.16.0","babel-preset-react":"6.16.0","babel-preset-react-hmre":"1.1.1","babel-preset-stage-0":"6.16.0","chai":"^3.5.0","debug":"^2.3.3","eslint":"^3.11.0","eslint-config-airbnb":"^13.0.0","eslint-config-airbnb-base":"^10.0.1","eslint-plugin-import":"^2.2.0","eslint-plugin-jsx-a11y":"^2.0.1","eslint-plugin-react":"^6.7.1","git-directory-deploy":"^1.5.1","isparta":"^4.0.0","istanbul":"^0.4.5","mocha":"^3.1.2","pre-commit":"^1.1.3","rimraf":"^2.5.4","sinon":"^1.17.6","source-map-support":"^0.4.6"},"gitHead":"081d650669e3d53b410707cf65b09e67cade4650","bugs":{"url":"https://github.com/Ariel-Rodriguez/react-amp-template/issues"},"homepage":"https://github.com/Ariel-Rodriguez/react-amp-template#readme","_id":"react-amp-template@2.2.1","_shasum":"44f37f7f44f91d0aa110ed5266d986107164fdf5","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.1","_npmUser":{"name":"arielfdr","email":"ariel.fdr@gmail.com"},"dist":{"shasum":"44f37f7f44f91d0aa110ed5266d986107164fdf5","tarball":"https://registry.npmjs.org/react-amp-template/-/react-amp-template-2.2.1.tgz","integrity":"sha512-4DpNfm9/RCsCk4Xum3Jzop8VhSReFgJQ6wfcDlH24yrJop/Co+1iQrHgR58zuGHdTIvj7FxXlcHxgxHZRnJlvQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGbyByuVYl4COj65/vxnkRBWt32o2lgb/GaSNVtJTx4lAiAdldGTYiB62HJ/jGu5z/V8mPt+hv8qp6U2EAeHCAep9g=="}]},"maintainers":[{"name":"alexrqs","email":"alexlopezarroyave@gmail.com"},{"name":"arielfdr","email":"ariel.fdr@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-amp-template-2.2.1.tgz_1486414579415_0.28222453547641635"},"directories":{}},"2.3.0":{"name":"react-amp-template","version":"2.3.0","description":"AMP react server rendering.","keywords":["react","amp","server-rendering","react-amp","amp-react","template"],"main":"lib/index.js","bin":{"react-amp-template":"./bin/react-amp-template"},"repository":{"type":"git","url":"git+https://github.com/Ariel-Rodriguez/react-amp-template.git"},"scripts":{"build":"npm run clean && babel src -d lib -s","build-examples":"npm run build && babel examples/src -d examples/build -s","clean":"rimraf lib examples/build","lint":"eslint --ext .jsx --ext .js src/.","start":"npm run build-examples && DEBUG=*,-babel node ./examples/build/demo.js","examples":"npm run build-examples && DEBUG=*,-babel node ./examples/build/index.js","examples:watch":"nodemon -w ./examples/src/ --exec 'npm run examples'","prepublish":"npm run build","test":"DEBUG=rampt* babel-node ./node_modules/.bin/isparta cover _mocha -- --compilers js:babel-core/register --require source-map-support/register ./test/spec --recursive","test:watch":"npm run test -- --watch","version:patch":"npm version patch"},"author":{"name":"Ariel Fernando Rodriguez"},"license":"Apache-2.0","pre-commit":["lint","build","test"],"babel":{"presets":["es2015","react","stage-0"],"env":{"test":{"plugins":["istanbul"]}}},"eslintConfig":{"parser":"babel-eslint","extends":"airbnb","env":{"browser":false,"node":true,"mocha":true,"es6":true},"plugins":["react","jsx-a11y"],"parserOptions":{"ecmaVersion":6,"sourceType":"module","ecmaFeatures":{"jsx":true}},"rules":{"arrow-parens":["error","always"],"arrow-body-style":[2,"as-needed"],"comma-dangle":[2,"always-multiline"],"import/imports-first":0,"import/newline-after-import":0,"import/no-dynamic-require":0,"import/no-extraneous-dependencies":0,"import/no-named-as-default":0,"import/no-unresolved":2,"import/prefer-default-export":0,"indent":[2,2,{"SwitchCase":1}],"jsx-a11y/aria-props":2,"jsx-a11y/heading-has-content":0,"jsx-a11y/href-no-hash":2,"jsx-a11y/label-has-for":2,"jsx-a11y/mouse-events-have-key-events":2,"jsx-a11y/role-has-required-aria-props":2,"jsx-a11y/role-supports-aria-props":2,"max-len":0,"newline-per-chained-call":0,"no-console":1,"no-use-before-define":0,"prefer-template":2,"class-methods-use-this":0,"react/forbid-prop-types":0,"react/jsx-first-prop-new-line":[2,"multiline"],"react/jsx-filename-extension":0,"react/jsx-no-target-blank":0,"react/require-extension":0,"react/self-closing-comp":0,"require-yield":0,"semi":0},"settings":{}},"dependencies":{"amphtml-validator":"^1.0.19","aphrodite":"^1.1.0","babel-cli":"6.18.0","babel-core":"^6.18.2","babel-eslint":"^7.1.1","babel-loader":"^6.2.8","babel-plugin-istanbul":"^3.0.0","babel-preset-es2015":"^6.18.0","babel-preset-latest":"6.16.0","babel-preset-react":"6.16.0","babel-preset-react-hmre":"1.1.1","babel-preset-stage-0":"6.16.0","debug":"^2.3.3","html":"^1.0.0","merge":"^1.2.0","react":"15.4.1","react-dom":"15.4.1","rimraf":"^2.5.4"},"devDependencies":{"chai":"^3.5.0","eslint":"^3.16.1","eslint-config-airbnb":"^13.0.0","eslint-config-airbnb-base":"^10.0.1","eslint-plugin-import":"^2.2.0","eslint-plugin-jsx-a11y":"^2.0.1","eslint-plugin-react":"^6.7.1","isparta":"^4.0.0","istanbul":"^0.4.5","mocha":"^3.1.2","pre-commit":"^1.1.3","sinon":"^1.17.6","source-map-support":"^0.4.6"},"gitHead":"28e7a926c8a4f216b67ccc4fa9f383df248fdcc7","bugs":{"url":"https://github.com/Ariel-Rodriguez/react-amp-template/issues"},"homepage":"https://github.com/Ariel-Rodriguez/react-amp-template#readme","_id":"react-amp-template@2.3.0","_shasum":"753d45e273a97fe9deb6077393fc5e452746da17","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.1","_npmUser":{"name":"arielfdr","email":"ariel.fdr@gmail.com"},"dist":{"shasum":"753d45e273a97fe9deb6077393fc5e452746da17","tarball":"https://registry.npmjs.org/react-amp-template/-/react-amp-template-2.3.0.tgz","integrity":"sha512-Z4/RDN7C/KWdi+cI0H1+oSixSptvNp7V6fDqBMi0cgQyh54U0Fq1ZBWs/k3UUG2pNO6SzlHWfkTbvD57YPrOFQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD47Iak9GZgbfRVqUy7bOgEHVFl7GHGSr/gjpXghRxcGAIgEUqgyt6NNshvhIk1/dnIc2CGtKFfp9CscinAlt/4EnY="}]},"maintainers":[{"name":"alexrqs","email":"alexlopezarroyave@gmail.com"},{"name":"arielfdr","email":"ariel.fdr@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-amp-template-2.3.0.tgz_1488417970732_0.8806364417541772"},"directories":{}},"3.0.0-rc0":{"name":"react-amp-template","version":"3.0.0-rc0","description":"AMP react server rendering.","keywords":["preact","react","amp","server-rendering","react-amp","amp-react","template","aphrodite","styledcomponent"],"main":"lib/index.js","repository":{"type":"git","url":"git+https://github.com/Ariel-Rodriguez/react-amp-template.git"},"scripts":{"build":"cross-env-shell BABEL_DISABLE_CACHE=1 npm-run-all build:*","build:lib":"cross-env BABEL_ENV=preact babel src -d lib -s","build:examples":"rimraf examples/dist && cross-env-shell BABEL_ENV=react NODE_ENV=production webpack --config config/webpack.config.babel.js --progress --display-optimization-bailout","dev":"npm run build -- --watch","examples":"npm run build:examples && node examples/dist/index.js","prepublish":"npm run build:lib","test":"npm run -s lint","lint":"eslint --fix --ext .jsx --ext .js src/."},"author":{"name":"Ariel Fernando Rodriguez"},"license":"Apache-2.0","babel":{"extends":"./config/.babelrc"},"eslintConfig":{"extends":"./config/.eslintrc.json"},"dependencies":{"aphrodite":"^1.2.3","preact":"^8.2.5","preact-compat":"^3.17.0","preact-render-to-string":"^3.6.3","proptypes":"^1.1.0","react":"^15.6.1","styled-components":"^2.1.2"},"devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-eslint":"^7.2.3","babel-loader":"^7.1.2","babel-plugin-module-resolver":"^2.7.1","babel-plugin-styled-components":"^1.2.0","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-react-jsx":"^6.24.1","babel-preset-env":"^1.6.0","babel-preset-es2015":"^6.24.1","babel-preset-preact":"^1.1.0","babel-preset-react":"^6.24.1","babel-preset-stage-0":"^6.24.1","babel-runtime":"^6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","cross-env":"^5.0.5","eslint":"^4.5.0","eslint-config-airbnb":"^15.1.0","eslint-config-airbnb-base":"^12.0.0","eslint-plugin-import":"^2.7.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.3.0","json-loader":"^0.5.7","mkdirp":"^0.5.1","module-alias":"^2.0.1","npm-run-all":"^4.1.1","rimraf":"^2.6.1","source-map-loader":"^0.2.1","webpack":"^3.5.5","webpack-dev-server":"^2.7.1","webpack-node-externals":"^1.6.0"},"gitHead":"74ad573c7cc4e854f62682eacbba46f47b5893e0","bugs":{"url":"https://github.com/Ariel-Rodriguez/react-amp-template/issues"},"homepage":"https://github.com/Ariel-Rodriguez/react-amp-template#readme","_id":"react-amp-template@3.0.0-rc0","_npmVersion":"5.3.0","_nodeVersion":"8.2.1","_npmUser":{"name":"arielfdr","email":"ariel.fdr@gmail.com"},"dist":{"integrity":"sha512-wsx/Mh/DkCthJXwEKDgRUNB67TbxtsGwkzApeEU0legpN1yvDlxl/DLYwm03MDNPiLp5CKkqRzsoFht/n0LHAA==","shasum":"686945e61e87d9d13121cd952c1310f95ebba0df","tarball":"https://registry.npmjs.org/react-amp-template/-/react-amp-template-3.0.0-rc0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCi/zJT1Yndqvn2OfpfEmDYPDHfLz8QZ4+sThAp/jJ27gIgPntjGlRQvxf+xRsjx8CAuU9hgKKrYNER8vywBBbs9PY="}]},"maintainers":[{"name":"alexrqs","email":"alexlopezarroyave@gmail.com"},{"name":"arielfdr","email":"ariel.fdr@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-amp-template-3.0.0-rc0.tgz_1504400771700_0.8613644521683455"},"directories":{}},"3.0.0":{"name":"react-amp-template","version":"3.0.0","description":"AMP react server rendering.","keywords":["preact","react","amp","server-rendering","react-amp","amp-react","template","aphrodite","styledcomponent"],"main":"lib/index.js","repository":{"type":"git","url":"git+https://github.com/Ariel-Rodriguez/react-amp-template.git"},"scripts":{"build":"cross-env-shell BABEL_DISABLE_CACHE=1 npm-run-all build:*","build:lib":"rimraf lib && cross-env BABEL_ENV=preact babel src -d lib -s","build:examples":"rimraf examples/dist && cross-env-shell BABEL_ENV=react NODE_ENV=production webpack --config config/webpack.config.babel.js --progress --display-optimization-bailout","dev":"npm run build -- --watch","examples":"npm run build:examples && node examples/dist/index.js","prepublish":"npm run build:lib","test":"npm run -s lint && BABEL_ENV=test nyc ava","test:watch":"BABEL_ENV=preact ava --watch","lint":"eslint --fix --ext .jsx --ext .js src/."},"author":{"name":"Ariel Fernando Rodriguez"},"license":"Apache-2.0","ava":{"require":["babel-register"]},"babel":{"extends":"./config/.babelrc"},"eslintConfig":{"extends":"./config/.eslintrc.json"},"dependencies":{"aphrodite":"^1.2.3","preact":"^8.2.5","preact-compat":"^3.17.0","preact-render-to-string":"^3.6.3","proptypes":"^1.1.0","react":"^15.6.1","styled-components":"^2.1.2"},"devDependencies":{"ava":"^0.22.0","babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-eslint":"^7.2.3","babel-loader":"^7.1.2","babel-plugin-istanbul":"^4.1.5","babel-plugin-module-resolver":"^2.7.1","babel-plugin-styled-components":"^1.2.0","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-react-jsx":"^6.24.1","babel-preset-env":"^1.6.0","babel-preset-preact":"^1.1.0","babel-preset-react":"^6.24.1","babel-preset-stage-0":"^6.24.1","babel-runtime":"^6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","cross-env":"^5.0.5","eslint":"^4.5.0","eslint-config-airbnb":"^15.1.0","eslint-config-airbnb-base":"^12.0.0","eslint-plugin-import":"^2.7.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.3.0","json-loader":"^0.5.7","mkdirp":"^0.5.1","module-alias":"^2.0.1","npm-run-all":"^4.1.1","nyc":"^11.2.1","rimraf":"^2.6.1","source-map-loader":"^0.2.1","webpack":"^3.5.5","webpack-dev-server":"^2.7.1","webpack-node-externals":"^1.6.0"},"gitHead":"6b63aa648ca927b69f307874edc278f1805a2414","bugs":{"url":"https://github.com/Ariel-Rodriguez/react-amp-template/issues"},"homepage":"https://github.com/Ariel-Rodriguez/react-amp-template#readme","_id":"react-amp-template@3.0.0","_npmVersion":"5.3.0","_nodeVersion":"8.2.1","_npmUser":{"name":"arielfdr","email":"ariel.fdr@gmail.com"},"dist":{"integrity":"sha512-mqrtuZoaltxkugaCk0ryy/f+YgCnlzAnUL7qLV4t9YelIUcYYbnErIyR+MCPNSQMr6OOL50TqlnKeZpBB1uwzA==","shasum":"4584d3a0b48ad80f3de6f1df94f99d247f6d2065","tarball":"https://registry.npmjs.org/react-amp-template/-/react-amp-template-3.0.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDes0bun7l/jVdDTf9kjuVcjCXoh+SS5aoNFopOyQxhbwIhAI3A30O9Pj9/wmBu8e2l+iMaUX9mQKKiaaHq63c1409i"}]},"maintainers":[{"name":"alexrqs","email":"alexlopezarroyave@gmail.com"},{"name":"arielfdr","email":"ariel.fdr@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-amp-template-3.0.0.tgz_1505610655319_0.4720098343677819"},"directories":{}},"4.0.0-alpha.0":{"name":"react-amp-template","version":"4.0.0-alpha.0","description":"AMP react server rendering.","keywords":["preact","react","amp","server-rendering","react-amp","amp-react","template","aphrodite","styledcomponent"],"main":"lib/index.js","repository":{"type":"git","url":"git+https://github.com/Ariel-Rodriguez/react-amp-template.git"},"scripts":{"build":"npm-run-all build:*","build:lib":"babel src -d lib -s","clean":"rimraf lib","dev":"nodemon --watch ./src  --ext js,jsx --exec 'npm run prepare && npm run build && npm run test'","prepare":"npm run clean","test":"npm run -s lint && BABEL_ENV=test nyc ava","test:watch":"npm run test --  --watch","lint":"eslint --fix --ext .jsx --ext .js src/."},"author":{"name":"Ariel Fernando Rodriguez"},"license":"Apache-2.0","ava":{"require":["babel-register"],"files":["test/**/*.{js,jsx}"]},"babel":{"extends":"./config/.babelrc"},"eslintConfig":{"extends":"./config/.eslintrc.json"},"dependencies":{"pretty":"^2.0.0","prop-types":"^15.6.1","react":"^16.3.1","react-dom":"^16.3.1","styled-components":"^3.2.5"},"devDependencies":{"ava":"^0.25.0","babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-eslint":"^8.2.3","babel-plugin-istanbul":"^4.1.6","babel-plugin-styled-components":"^1.5.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","babel-runtime":"^6.26.0","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-config-airbnb-base":"^12.1.0","eslint-plugin-import":"^2.11.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.7.0","mkdirp":"^0.5.1","npm-run-all":"^4.1.2","nyc":"^11.6.0","react-test-renderer":"^16.3.1","rimraf":"^2.6.2"},"readme":"<div align=\"center\">\n  <h1><strong>RAMPT 3</strong></h1>\n  <div align=\"center\">Server side rendering using Preact + ModularCSS/JSCSS + AMP-custom-elements.</div>\n</div>\n\n<br />\n\n<div align=\"center\">\n  <!-- Build Status -->\n  <a href=\"https://travis-ci.org/Ariel-Rodriguez/react-amp-template\">\n    <img src=\"https://travis-ci.org/Ariel-Rodriguez/react-amp-template.svg?branch=master\" alt=\"Build Status\" />\n  </a>\n  <!-- npm ver -->\n  <a href=\"https://badge.fury.io/js/react-amp-template\"><img src=\"https://badge.fury.io/js/react-amp-template.svg\" alt=\"npm version\" height=\"18\"></a>\n</div>\n\n\nWrite AMP pages using React syntaxt right the way and style with your preferred style manager\n\n<dl>\n  <dt>:zap: AMP elements</dt>\n  <dd>Ready to render any <a href=\"https://ampbyexample.com/#components\">AMP component</a></dd>\n  <dt>:nail_care: Modular CSS</dt>\n  <dd>Style with the power of <a href=\"https://github.com/styled-components/styled-components\">Styled Components</a> or <a href=\"https://github.com/Khan/aphrodite\">Aphrodite</a> or Your Own custom StyleManager!</dd>\n</dl>\n\n\n\n\n## Contents\n\n- [Usage](#usage)\n- [API](#api)\n- [Configuration](#configuration)\n- [Contribute](#contributing)\n\n\n## Usage\n\n### Install from NPM\n\n- `yarn add react-amp-template`\n\n### Static Render\n\n```javascript\nimport { h } from 'preact'\nimport render from 'react-amp-template'\n\nconst metaContent = {\n  'http-equiv': \"origin-trial\",\n  'data-expires': '2020-01-01',\n  'data-feature': \"Web Share\",\n  'content': \"Ajcrk411RcpUCQ3ovgC8le4e7Te/1kARZsW5Hd/OCnW6vIHTs5Kcq1PaABs7SzcrtfvT0TIlFh9Vdb5xWi9LiQsAAABSeyJvcmlnaW4iOiJodHRwczovL2FtcGJ5ZXhhbXBsZS5jb206NDQzIiwiZmVhdHVyZSI6IldlYlNoYXJlIiwiZXhwaXJ5IjoxNDkxMzM3MDEwfQ==\"\n}\n\nconst SocialShare = (props, { head }) => {\n  head.append('amp-social-share')\n  return <amp-social-share {...props} />\n}\n\nconst Body = (props, { head }) => {\n  // Add required meta tags to head at any moment.\n  head.append('meta', metaContent)\n  head.append('link', {rel: 'amphtml', 'href': \"https://www.example.com/url/to/amp/document.html\"})\n  return(\n    <body>\n      <h1>Preact for AMP is welcome as well!</h1>\n      <SocialShare width=\"40\" height=\"40\" type=\"email\"/>\n      <SocialShare width=\"40\" height=\"40\" type=\"facebook\"\n        data-param-app_id=\"254325784911610\" />\n      <SocialShare width=\"40\" height=\"40\" type=\"gplus\"/>\n      <SocialShare width=\"40\" height=\"40\" type=\"linkedin\"/>\n      <SocialShare width=\"40\" height=\"40\" type=\"whatsapp\"/>\n      <SocialShare width=\"40\" height=\"40\" type=\"twitter\"/>\n    </body>\n  )\n}\n\n\nrender(<Body />, {\n  title: 'Rendering AMP with preact',\n  canonical: 'https://my-website.com',\n})\n```\n\n## Styled components\n\n```javascript\nimport React from 'react'\nimport render from 'react-amp-template'\n\nconst Body = ({ children, ...props }, { head }) =>\n  <body {...props}>\n    <Button>Normal</Button>\n    <ThemeProvider theme={theme}>\n      <Button>Themed</Button>\n    </ThemeProvider>\n    {children}\n  </body>\n\n\nconst StyledBody = styled(Body)`\n\tbackground: papayawhip;\n\t@media (max-width: 700px) {\n\t\tbackground: palevioletred;\n\t}\n`\n\nrender(<StyledBody />, {\n  title: 'Styling AMP with StyledComponents',\n  canonical: 'https://canonical.com',\n  styleManager: 'styled-components',\n})\n```\n\n[See more here](https://github.com/Ariel-Rodriguez/react-amp-template/tree/master/examples)\n\n\n## API\n\n### Template\n\n```javascript\nimport { Template } from 'react-amp-template'\nconst template = new Template({ title, canonical, styleManager })\n```\n\n### Options\n\n - *title* | Add meta title with [_title_]\n - *canonical*  | Add link canonical with href to [_canonical_]\n - *styleManager* | {string | function}. Allowed `aphrodite` `styled-components` `undefined` `function` \n\n\n### Context\n\nEvery children element receives the high order `context`.\nIt allows components to add custom content to Head.\n\n\n#### AMP component\n\nEnsure to add the amp-custom script required.\nRAMPT prevents duplicated scripts automatically.\n\n```javascript\nconst Element = (props, context) => {\n context.head.append('amp-sidebar')\n context.head.append('amp-sidebar') // <- it won't be added\n return ...\n}\n```\n\n`<script async custom-element=\"amp-sidebar\" src=\"https://cdn.ampproject.org/v0/amp-sidebar-0.1.js\"></script>`\n\nBy default every amp-script address to version 0.1. However it can be customized.\n\n```javascript\nconst Element = (props, context) => {\n context.head.append('amp-sticky-ad', { version: '1.0' })\n return ...\n}\n```\n\n`<script async custom-element=\"amp-sticky-ad\" src=\"https://cdn.ampproject.org/v0/amp-sticky-ad-0.1.js\"></script>`\n\n\n#### LD+JSON\n\n```javascript\nconst Element = (props, context) => {\n  context.head.append('ldjson', { id: 'myjson', content: {foo: 'bar' }})\n  return ...\n}\n```\n\n`<script type=\"application/json\" id=\"myjson\">{foo:bar}</script>`\n\n\n#### Mustache\n\n```javascript\n const Element = (props, { head }) => {\n   head.append('amp-list')\n   head.append('amp-mustache')\n\n   return (\n    <amp-list src=\"https://ampbyexample.com/json/cart.json\"\n      layout=\"fixed-height\"\n      height=\"56\">\n      <template type=\"amp-mustache\"\n        dangerousllySetInnerHTML={{ __html: \"Hi {{fullname}}!\" }}>\n      </template>\n    </amp-list>\n   )\n }\n```\n\n## Configuration\n\nRAMPT renders to string thanks to [preact-render-to-string](https://github.com/developit/preact-render-to-string)\n\nA system bundler is recommended in order to make it work with React and Styled components.\nTake a look for [this webpack configuration for RAMPT examples](https://github.com/Ariel-Rodriguez/react-amp-template/blob/master/config/webpack.config.babel.js)\n\n### Babel & Webpack\n\n#### React | Styled Components\n\n`yarn add --dev babel-plugin-styled-components babel-preset-react babel-plugin-module-resolver`\n\n```json\n{\n  \"presets\": [\n    \"stage-0\",\n    \"react\"\n  ],\n  \"plugins\": [\n    [\"babel-plugin-styled-components\", { \"ssr\": true }]\n    [\"module-resolver\", {\n      \"root\": [\".\"],\n      \"alias\": {\n        \"react\": \"preact-compat\",\n        \"react-dom\": \"preact-compat\"\n      }\n    }]\n  ]\n}\n```\n\n- Add Webpack alias\n\n```javascript\nresolve: {\n  extensions: ['.jsx', '.js'],\n  modules: [\n    path.resolve(__dirname, \"src\"),\n    path.resolve(__dirname, 'node_modules')\n  ],\n  alias: {\n    'react': 'preact-compat',\n    'react-dom': 'preact-compat',\n  }\n}\n  ...\n```\n\n- Include styled-component in the bundle in order to bypass React alias into Preact\n\n```javascript\nexternals: [ nodeExternals({\n  whitelist: ['styled-components']\n})]\n```\n\n## Preact\n\n```json\n{\n  \"presets\": [\n    \"stage-0\",\n    \"preact\"\n  ]\n}\n```\n\n## Contributing\n\n- `$git clone git@github.com:Ariel-Rodriguez/react-amp-template.git`\n- `yarn`\n- `yarn dev`\n\n### Build examples\n\n- `yarn examples`\n\n## License\n\nThis project is licensed under the Apache License, Version 2.0. Copyright (c) 2016 Ariel Fernando Rodriguez. For more information see `LICENSE.md`.\n","readmeFilename":"README.md","gitHead":"81831d68bef69c09f5fc5fbb986d10cae9fb7bfe","bugs":{"url":"https://github.com/Ariel-Rodriguez/react-amp-template/issues"},"homepage":"https://github.com/Ariel-Rodriguez/react-amp-template#readme","_id":"react-amp-template@4.0.0-alpha.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"arielfdr","email":"ariel.fdr@gmail.com"},"dist":{"integrity":"sha512-Iw7y20qCwFsVKxe5CS180aJ0pE/BaJ/TWyw6t0cg+DEaJuAssPuHCIfbZQ+5czWDZxIe1911T/5jXXEEhQ5Pjw==","shasum":"7df0ebb29ee537e0a530fbc07d5d9ca07457d0df","tarball":"https://registry.npmjs.org/react-amp-template/-/react-amp-template-4.0.0-alpha.0.tgz","fileCount":16,"unpackedSize":44362,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa0pOeCRA9TVsSAnZWagAAU/kP/A8VxPFutiNIdwOHuMUg\nb426Ff3vsPp/UdJB+QmBcWEyR+vDGGE72grejtVG6Lh/IBJ6WfquFm7epwzf\nc8vbTVGNl3j62C6lTiXuopXcY8Pqxydnn3+d4LSoVtrhCop5O+GvFES2dtIY\nYTlAoro/I3B92XpWpVxIaNXtiPwC94eBW+yG8MpD/O/ZWYmEO/dE6WmB78uX\nLYC7td3u6oi9/9S9uy46DxWT47sgT0cm39y0T9jS3qVL7zfDOpaOJk8YmQtV\nfcqPijKHcYv3vJ3lEZUk3uoQFMbyOsHNThOXleXRQFe/ZQnYzITa3D8x9O5x\nFgIBkTfWsJTiS/XQA2SlE4VV0i/llkhVu/ibTCxmHRyK7We7+rwFwe/HiK65\nbWcy008Yga7bAcbBJT8kHUJHTsHBhWTrarhdyErqwJ4sNETLLJTVMN+ZVnut\nZdRo0XzNQdfAn6mqxEp5zoGGX0Dn+zBbsLp4HWUCGYu+ykzp89Vr5TDwpUVV\nnVabtpjj0NUMl0AP90eTybWadjo77tq9w4i/N/UPPq9RgRHXt8ogFd3CktV5\nPJOaEBu0ScalCjQX5ToC1a5O+QbvJhb7wxznZQ+cck9UTlY+tPskf1BIXYx/\nY3sn5NtHzLfy0eeSLByyjZrIwr1UelzeBs7pEIDwux3DJKaqnbjX9wlaqrJA\nBED6\r\n=UnDx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFHwSGUHlPUN2JSiklgsipPFYRTcIEXEtqJ+q+dJHT95AiEAhC/Qu6DBvLf4RxRl9Wp8gL3FCgbavrXz2CeJz3OBz7I="}]},"maintainers":[{"name":"alexrqs","email":"alexlopezarroyave@gmail.com"},{"name":"arielfdr","email":"ariel.fdr@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-amp-template_4.0.0-alpha.0_1523749790534_0.8453784546013265"},"_hasShrinkwrap":false},"4.0.0-alpha.1":{"name":"react-amp-template","version":"4.0.0-alpha.1","description":"AMP react server rendering.","keywords":["preact","react","amp","server-rendering","react-amp","amp-react","template","aphrodite","styledcomponent"],"main":"lib/index.js","repository":{"type":"git","url":"git+https://github.com/Ariel-Rodriguez/react-amp-template.git"},"scripts":{"build":"npm-run-all build:*","build:lib":"babel src -d lib -s","clean":"rimraf lib","dev":"nodemon --watch ./src  --ext js,jsx --exec 'npm run prepare && npm run build && npm run test'","prepare":"npm run clean","prepublish":"NODE_ENV=production && npm run build:lib && echo build using $NODE_ENV env","test":"npm run -s lint && BABEL_ENV=test nyc ava","test:watch":"npm run test --  --watch","lint":"eslint --fix --ext .jsx --ext .js src/."},"author":{"name":"Ariel Fernando Rodriguez"},"license":"Apache-2.0","ava":{"require":["babel-register"],"files":["test/**/*.{js,jsx}"]},"babel":{"extends":"./config/.babelrc"},"eslintConfig":{"extends":"./config/.eslintrc.json"},"dependencies":{"pretty":"^2.0.0","prop-types":"^15.6.1","react":"^16.3.1","react-dom":"^16.3.1","styled-components":"^3.2.5"},"devDependencies":{"ava":"^0.25.0","babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-eslint":"^8.2.3","babel-plugin-istanbul":"^4.1.6","babel-plugin-styled-components":"^1.5.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","babel-runtime":"^6.26.0","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-config-airbnb-base":"^12.1.0","eslint-plugin-import":"^2.11.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.7.0","mkdirp":"^0.5.1","npm-run-all":"^4.1.2","nyc":"^11.6.0","react-test-renderer":"^16.3.1","rimraf":"^2.6.2"},"readme":"<div align=\"center\">\n  <h1><strong>RAMPT 3</strong></h1>\n  <div align=\"center\">Server side rendering using Preact + ModularCSS/JSCSS + AMP-custom-elements.</div>\n</div>\n\n<br />\n\n<div align=\"center\">\n  <!-- Build Status -->\n  <a href=\"https://travis-ci.org/Ariel-Rodriguez/react-amp-template\">\n    <img src=\"https://travis-ci.org/Ariel-Rodriguez/react-amp-template.svg?branch=master\" alt=\"Build Status\" />\n  </a>\n  <!-- npm ver -->\n  <a href=\"https://badge.fury.io/js/react-amp-template\"><img src=\"https://badge.fury.io/js/react-amp-template.svg\" alt=\"npm version\" height=\"18\"></a>\n</div>\n\n\nWrite AMP pages using React syntaxt right the way and style with your preferred style manager\n\n<dl>\n  <dt>:zap: AMP elements</dt>\n  <dd>Ready to render any <a href=\"https://ampbyexample.com/#components\">AMP component</a></dd>\n  <dt>:nail_care: Modular CSS</dt>\n  <dd>Style with the power of <a href=\"https://github.com/styled-components/styled-components\">Styled Components</a> or <a href=\"https://github.com/Khan/aphrodite\">Aphrodite</a> or Your Own custom StyleManager!</dd>\n</dl>\n\n\n\n\n## Contents\n\n- [Usage](#usage)\n- [API](#api)\n- [Configuration](#configuration)\n- [Contribute](#contributing)\n\n\n## Usage\n\n### Install from NPM\n\n- `yarn add react-amp-template`\n\n### Static Render\n\n```javascript\nimport { h } from 'preact'\nimport render from 'react-amp-template'\n\nconst metaContent = {\n  'http-equiv': \"origin-trial\",\n  'data-expires': '2020-01-01',\n  'data-feature': \"Web Share\",\n  'content': \"Ajcrk411RcpUCQ3ovgC8le4e7Te/1kARZsW5Hd/OCnW6vIHTs5Kcq1PaABs7SzcrtfvT0TIlFh9Vdb5xWi9LiQsAAABSeyJvcmlnaW4iOiJodHRwczovL2FtcGJ5ZXhhbXBsZS5jb206NDQzIiwiZmVhdHVyZSI6IldlYlNoYXJlIiwiZXhwaXJ5IjoxNDkxMzM3MDEwfQ==\"\n}\n\nconst SocialShare = (props, { head }) => {\n  head.append('amp-social-share')\n  return <amp-social-share {...props} />\n}\n\nconst Body = (props, { head }) => {\n  // Add required meta tags to head at any moment.\n  head.append('meta', metaContent)\n  head.append('link', {rel: 'amphtml', 'href': \"https://www.example.com/url/to/amp/document.html\"})\n  return(\n    <body>\n      <h1>Preact for AMP is welcome as well!</h1>\n      <SocialShare width=\"40\" height=\"40\" type=\"email\"/>\n      <SocialShare width=\"40\" height=\"40\" type=\"facebook\"\n        data-param-app_id=\"254325784911610\" />\n      <SocialShare width=\"40\" height=\"40\" type=\"gplus\"/>\n      <SocialShare width=\"40\" height=\"40\" type=\"linkedin\"/>\n      <SocialShare width=\"40\" height=\"40\" type=\"whatsapp\"/>\n      <SocialShare width=\"40\" height=\"40\" type=\"twitter\"/>\n    </body>\n  )\n}\n\n\nrender(<Body />, {\n  title: 'Rendering AMP with preact',\n  canonical: 'https://my-website.com',\n})\n```\n\n## Styled components\n\n```javascript\nimport React from 'react'\nimport render from 'react-amp-template'\n\nconst Body = ({ children, ...props }, { head }) =>\n  <body {...props}>\n    <Button>Normal</Button>\n    <ThemeProvider theme={theme}>\n      <Button>Themed</Button>\n    </ThemeProvider>\n    {children}\n  </body>\n\n\nconst StyledBody = styled(Body)`\n\tbackground: papayawhip;\n\t@media (max-width: 700px) {\n\t\tbackground: palevioletred;\n\t}\n`\n\nrender(<StyledBody />, {\n  title: 'Styling AMP with StyledComponents',\n  canonical: 'https://canonical.com',\n  styleManager: 'styled-components',\n})\n```\n\n[See more here](https://github.com/Ariel-Rodriguez/react-amp-template/tree/master/examples)\n\n\n## API\n\n### Template\n\n```javascript\nimport { Template } from 'react-amp-template'\nconst template = new Template({ title, canonical, styleManager })\n```\n\n### Options\n\n - *title* | Add meta title with [_title_]\n - *canonical*  | Add link canonical with href to [_canonical_]\n - *styleManager* | {string | function}. Allowed `aphrodite` `styled-components` `undefined` `function` \n\n\n### Context\n\nEvery children element receives the high order `context`.\nIt allows components to add custom content to Head.\n\n\n#### AMP component\n\nEnsure to add the amp-custom script required.\nRAMPT prevents duplicated scripts automatically.\n\n```javascript\nconst Element = (props, context) => {\n context.head.append('amp-sidebar')\n context.head.append('amp-sidebar') // <- it won't be added\n return ...\n}\n```\n\n`<script async custom-element=\"amp-sidebar\" src=\"https://cdn.ampproject.org/v0/amp-sidebar-0.1.js\"></script>`\n\nBy default every amp-script address to version 0.1. However it can be customized.\n\n```javascript\nconst Element = (props, context) => {\n context.head.append('amp-sticky-ad', { version: '1.0' })\n return ...\n}\n```\n\n`<script async custom-element=\"amp-sticky-ad\" src=\"https://cdn.ampproject.org/v0/amp-sticky-ad-0.1.js\"></script>`\n\n\n#### LD+JSON\n\n```javascript\nconst Element = (props, context) => {\n  context.head.append('ldjson', { id: 'myjson', content: {foo: 'bar' }})\n  return ...\n}\n```\n\n`<script type=\"application/json\" id=\"myjson\">{foo:bar}</script>`\n\n\n#### Mustache\n\n```javascript\n const Element = (props, { head }) => {\n   head.append('amp-list')\n   head.append('amp-mustache')\n\n   return (\n    <amp-list src=\"https://ampbyexample.com/json/cart.json\"\n      layout=\"fixed-height\"\n      height=\"56\">\n      <template type=\"amp-mustache\"\n        dangerousllySetInnerHTML={{ __html: \"Hi {{fullname}}!\" }}>\n      </template>\n    </amp-list>\n   )\n }\n```\n\n## Configuration\n\nRAMPT renders to string thanks to [preact-render-to-string](https://github.com/developit/preact-render-to-string)\n\nA system bundler is recommended in order to make it work with React and Styled components.\nTake a look for [this webpack configuration for RAMPT examples](https://github.com/Ariel-Rodriguez/react-amp-template/blob/master/config/webpack.config.babel.js)\n\n### Babel & Webpack\n\n#### React | Styled Components\n\n`yarn add --dev babel-plugin-styled-components babel-preset-react babel-plugin-module-resolver`\n\n```json\n{\n  \"presets\": [\n    \"stage-0\",\n    \"react\"\n  ],\n  \"plugins\": [\n    [\"babel-plugin-styled-components\", { \"ssr\": true }]\n    [\"module-resolver\", {\n      \"root\": [\".\"],\n      \"alias\": {\n        \"react\": \"preact-compat\",\n        \"react-dom\": \"preact-compat\"\n      }\n    }]\n  ]\n}\n```\n\n- Add Webpack alias\n\n```javascript\nresolve: {\n  extensions: ['.jsx', '.js'],\n  modules: [\n    path.resolve(__dirname, \"src\"),\n    path.resolve(__dirname, 'node_modules')\n  ],\n  alias: {\n    'react': 'preact-compat',\n    'react-dom': 'preact-compat',\n  }\n}\n  ...\n```\n\n- Include styled-component in the bundle in order to bypass React alias into Preact\n\n```javascript\nexternals: [ nodeExternals({\n  whitelist: ['styled-components']\n})]\n```\n\n## Preact\n\n```json\n{\n  \"presets\": [\n    \"stage-0\",\n    \"preact\"\n  ]\n}\n```\n\n## Contributing\n\n- `$git clone git@github.com:Ariel-Rodriguez/react-amp-template.git`\n- `yarn`\n- `yarn dev`\n\n### Build examples\n\n- `yarn examples`\n\n## License\n\nThis project is licensed under the Apache License, Version 2.0. Copyright (c) 2016 Ariel Fernando Rodriguez. For more information see `LICENSE.md`.\n","readmeFilename":"README.md","gitHead":"a0774c35f8c041264d5e9a647ae2b725cccef145","bugs":{"url":"https://github.com/Ariel-Rodriguez/react-amp-template/issues"},"homepage":"https://github.com/Ariel-Rodriguez/react-amp-template#readme","_id":"react-amp-template@4.0.0-alpha.1","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"arielfdr","email":"ariel.fdr@gmail.com"},"dist":{"integrity":"sha512-MRzz4b2PJSsMvpeV7iirFeZzgPCO5bmwcxrNUMirw3mIuF8mniYn0zs0cVr2fVNEq+ga3IFUSUfMRKt8qRD22g==","shasum":"95a8276c694b5fcfaf1c495730f4dbd56c75f8f1","tarball":"https://registry.npmjs.org/react-amp-template/-/react-amp-template-4.0.0-alpha.1.tgz","fileCount":5,"unpackedSize":10888,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa0pcXCRA9TVsSAnZWagAAcrQP/jX4NfjK9wmniZtnGopW\nGOAbgXtuRtD+hUpRONN0uuYx4M0niq1J7+XeqySZX7MDxbR6nPvb5MOazmDh\nZSQAWoyHIyNmdL6m5IMkggpbj8errfBPgsJWE27YqSLDS8p+37BKL1zsfum1\nmGrKVZQXz2NTgmZBV3KHQFf9ArYDvpFEbMRYi+CaMkj5tgiKSHPeiZed17LH\nQdtuMdn6bMyGRXtHYMem6xQrHR2q2fXinsymCJAQAEr+won4xnJzMK7EQCl8\ncW2auNwt8+cxaFEqOoZCFLzMsAZMOuN1jhD+SIjRJBj/V86yjQjXKF9dZ0u2\nDzp1KehRDggrIedx+LtmT3aDQcZ5mRkndkkSFbQYlRYjfFpot3p98Cbe4Q20\nQtn+56ce4ZsWPR8vukmbmAYVhChllR+Pv2M2V6ZEI+cKsYO/WSp3EVF8/TMd\nis+JI08chxQJziBZmREEA6lhVPpW8PGH8O3xKaJWmdxMDmqjGOiNybdiKG10\nAC7ZvQYlI9HrwoFo+dywLG+DY1JkfuE4z6V/Ut3c7/4aOM9UDMGZScytO2ci\nPP9qw+vS8C2cnrtVKbMxSC1S2Mms8GKCLorGTxj1naUiswScWZHQEYD9mIGx\njXAsdev9LTmienAoCz4+mgvqNnkRjxHLfOVcRvSqF+iVyEQy0BrXEKsc/IKH\noAgz\r\n=AIu5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFzZpKHtrY5wAteuJPmw7tE+1rYgWFEaRDKa5wvJA/ocAiAuZy/5Wxl7HG77/p8dvzXdBAEzCWnAsR4rkGdBri/noA=="}]},"maintainers":[{"name":"alexrqs","email":"alexlopezarroyave@gmail.com"},{"name":"arielfdr","email":"ariel.fdr@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-amp-template_4.0.0-alpha.1_1523750679024_0.20933688578144283"},"_hasShrinkwrap":false},"4.0.0-alpha.2":{"name":"react-amp-template","version":"4.0.0-alpha.2","description":"AMP react server rendering.","keywords":["preact","react","amp","server-rendering","react-amp","amp-react","template","aphrodite","styledcomponent"],"main":"lib/index.js","repository":{"type":"git","url":"git+https://github.com/Ariel-Rodriguez/react-amp-template.git"},"scripts":{"build":"npm-run-all build:*","build:lib":"babel src -d lib -s","clean":"rimraf lib","dev":"nodemon --watch ./src  --ext js,jsx --exec 'npm run prepare && npm run build && npm run test'","prepare":"npm run clean","prepublish":"NODE_ENV=production && npm run build:lib && echo build using $NODE_ENV env","test":"npm run -s lint && BABEL_ENV=test nyc ava","test:watch":"npm run test --  --watch","lint":"eslint --fix --ext .jsx --ext .js src/."},"author":{"name":"Ariel Fernando Rodriguez"},"license":"Apache-2.0","ava":{"require":["babel-register"],"files":["test/**/*.{js,jsx}"]},"babel":{"extends":"./config/.babelrc"},"eslintConfig":{"extends":"./config/.eslintrc.json"},"dependencies":{"pretty":"^2.0.0","prop-types":"^15.6.1","react":"^16.3.1","react-dom":"^16.3.1","styled-components":"^3.2.5"},"devDependencies":{"ava":"^0.25.0","babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-eslint":"^8.2.3","babel-plugin-istanbul":"^4.1.6","babel-plugin-styled-components":"^1.5.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","babel-runtime":"^6.26.0","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-config-airbnb-base":"^12.1.0","eslint-plugin-import":"^2.11.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.7.0","mkdirp":"^0.5.1","npm-run-all":"^4.1.2","nyc":"^11.6.0","react-test-renderer":"^16.3.1","rimraf":"^2.6.2"},"readme":"<div align=\"center\">\n  <h1><strong>RAMPT 3</strong></h1>\n  <div align=\"center\">Server side rendering using Preact + ModularCSS/JSCSS + AMP-custom-elements.</div>\n</div>\n\n<br />\n\n<div align=\"center\">\n  <!-- Build Status -->\n  <a href=\"https://travis-ci.org/Ariel-Rodriguez/react-amp-template\">\n    <img src=\"https://travis-ci.org/Ariel-Rodriguez/react-amp-template.svg?branch=master\" alt=\"Build Status\" />\n  </a>\n  <!-- npm ver -->\n  <a href=\"https://badge.fury.io/js/react-amp-template\"><img src=\"https://badge.fury.io/js/react-amp-template.svg\" alt=\"npm version\" height=\"18\"></a>\n</div>\n\n\nWrite AMP pages using React syntaxt right the way and style with your preferred style manager\n\n<dl>\n  <dt>:zap: AMP elements</dt>\n  <dd>Ready to render any <a href=\"https://ampbyexample.com/#components\">AMP component</a></dd>\n  <dt>:nail_care: Modular CSS</dt>\n  <dd>Style with the power of <a href=\"https://github.com/styled-components/styled-components\">Styled Components</a> or <a href=\"https://github.com/Khan/aphrodite\">Aphrodite</a> or Your Own custom StyleManager!</dd>\n</dl>\n\n\n\n\n## Contents\n\n- [Usage](#usage)\n- [API](#api)\n- [Configuration](#configuration)\n- [Contribute](#contributing)\n\n\n## Usage\n\n### Install from NPM\n\n- `yarn add react-amp-template`\n\n### Static Render\n\n```javascript\nimport { h } from 'preact'\nimport render from 'react-amp-template'\n\nconst metaContent = {\n  'http-equiv': \"origin-trial\",\n  'data-expires': '2020-01-01',\n  'data-feature': \"Web Share\",\n  'content': \"Ajcrk411RcpUCQ3ovgC8le4e7Te/1kARZsW5Hd/OCnW6vIHTs5Kcq1PaABs7SzcrtfvT0TIlFh9Vdb5xWi9LiQsAAABSeyJvcmlnaW4iOiJodHRwczovL2FtcGJ5ZXhhbXBsZS5jb206NDQzIiwiZmVhdHVyZSI6IldlYlNoYXJlIiwiZXhwaXJ5IjoxNDkxMzM3MDEwfQ==\"\n}\n\nconst SocialShare = (props, { head }) => {\n  head.append('amp-social-share')\n  return <amp-social-share {...props} />\n}\n\nconst Body = (props, { head }) => {\n  // Add required meta tags to head at any moment.\n  head.append('meta', metaContent)\n  head.append('link', {rel: 'amphtml', 'href': \"https://www.example.com/url/to/amp/document.html\"})\n  return(\n    <body>\n      <h1>Preact for AMP is welcome as well!</h1>\n      <SocialShare width=\"40\" height=\"40\" type=\"email\"/>\n      <SocialShare width=\"40\" height=\"40\" type=\"facebook\"\n        data-param-app_id=\"254325784911610\" />\n      <SocialShare width=\"40\" height=\"40\" type=\"gplus\"/>\n      <SocialShare width=\"40\" height=\"40\" type=\"linkedin\"/>\n      <SocialShare width=\"40\" height=\"40\" type=\"whatsapp\"/>\n      <SocialShare width=\"40\" height=\"40\" type=\"twitter\"/>\n    </body>\n  )\n}\n\n\nrender(<Body />, {\n  title: 'Rendering AMP with preact',\n  canonical: 'https://my-website.com',\n})\n```\n\n## Styled components\n\n```javascript\nimport React from 'react'\nimport render from 'react-amp-template'\n\nconst Body = ({ children, ...props }, { head }) =>\n  <body {...props}>\n    <Button>Normal</Button>\n    <ThemeProvider theme={theme}>\n      <Button>Themed</Button>\n    </ThemeProvider>\n    {children}\n  </body>\n\n\nconst StyledBody = styled(Body)`\n\tbackground: papayawhip;\n\t@media (max-width: 700px) {\n\t\tbackground: palevioletred;\n\t}\n`\n\nrender(<StyledBody />, {\n  title: 'Styling AMP with StyledComponents',\n  canonical: 'https://canonical.com',\n  styleManager: 'styled-components',\n})\n```\n\n[See more here](https://github.com/Ariel-Rodriguez/react-amp-template/tree/master/examples)\n\n\n## API\n\n### Template\n\n```javascript\nimport { Template } from 'react-amp-template'\nconst template = new Template({ title, canonical, styleManager })\n```\n\n### Options\n\n - *title* | Add meta title with [_title_]\n - *canonical*  | Add link canonical with href to [_canonical_]\n - *styleManager* | {string | function}. Allowed `aphrodite` `styled-components` `undefined` `function` \n\n\n### Context\n\nEvery children element receives the high order `context`.\nIt allows components to add custom content to Head.\n\n\n#### AMP component\n\nEnsure to add the amp-custom script required.\nRAMPT prevents duplicated scripts automatically.\n\n```javascript\nconst Element = (props, context) => {\n context.head.append('amp-sidebar')\n context.head.append('amp-sidebar') // <- it won't be added\n return ...\n}\n```\n\n`<script async custom-element=\"amp-sidebar\" src=\"https://cdn.ampproject.org/v0/amp-sidebar-0.1.js\"></script>`\n\nBy default every amp-script address to version 0.1. However it can be customized.\n\n```javascript\nconst Element = (props, context) => {\n context.head.append('amp-sticky-ad', { version: '1.0' })\n return ...\n}\n```\n\n`<script async custom-element=\"amp-sticky-ad\" src=\"https://cdn.ampproject.org/v0/amp-sticky-ad-0.1.js\"></script>`\n\n\n#### LD+JSON\n\n```javascript\nconst Element = (props, context) => {\n  context.head.append('ldjson', { id: 'myjson', content: {foo: 'bar' }})\n  return ...\n}\n```\n\n`<script type=\"application/json\" id=\"myjson\">{foo:bar}</script>`\n\n\n#### Mustache\n\n```javascript\n const Element = (props, { head }) => {\n   head.append('amp-list')\n   head.append('amp-mustache')\n\n   return (\n    <amp-list src=\"https://ampbyexample.com/json/cart.json\"\n      layout=\"fixed-height\"\n      height=\"56\">\n      <template type=\"amp-mustache\"\n        dangerousllySetInnerHTML={{ __html: \"Hi {{fullname}}!\" }}>\n      </template>\n    </amp-list>\n   )\n }\n```\n\n## Configuration\n\nRAMPT renders to string thanks to [preact-render-to-string](https://github.com/developit/preact-render-to-string)\n\nA system bundler is recommended in order to make it work with React and Styled components.\nTake a look for [this webpack configuration for RAMPT examples](https://github.com/Ariel-Rodriguez/react-amp-template/blob/master/config/webpack.config.babel.js)\n\n### Babel & Webpack\n\n#### React | Styled Components\n\n`yarn add --dev babel-plugin-styled-components babel-preset-react babel-plugin-module-resolver`\n\n```json\n{\n  \"presets\": [\n    \"stage-0\",\n    \"react\"\n  ],\n  \"plugins\": [\n    [\"babel-plugin-styled-components\", { \"ssr\": true }]\n    [\"module-resolver\", {\n      \"root\": [\".\"],\n      \"alias\": {\n        \"react\": \"preact-compat\",\n        \"react-dom\": \"preact-compat\"\n      }\n    }]\n  ]\n}\n```\n\n- Add Webpack alias\n\n```javascript\nresolve: {\n  extensions: ['.jsx', '.js'],\n  modules: [\n    path.resolve(__dirname, \"src\"),\n    path.resolve(__dirname, 'node_modules')\n  ],\n  alias: {\n    'react': 'preact-compat',\n    'react-dom': 'preact-compat',\n  }\n}\n  ...\n```\n\n- Include styled-component in the bundle in order to bypass React alias into Preact\n\n```javascript\nexternals: [ nodeExternals({\n  whitelist: ['styled-components']\n})]\n```\n\n## Preact\n\n```json\n{\n  \"presets\": [\n    \"stage-0\",\n    \"preact\"\n  ]\n}\n```\n\n## Contributing\n\n- `$git clone git@github.com:Ariel-Rodriguez/react-amp-template.git`\n- `yarn`\n- `yarn dev`\n\n### Build examples\n\n- `yarn examples`\n\n## License\n\nThis project is licensed under the Apache License, Version 2.0. Copyright (c) 2016 Ariel Fernando Rodriguez. For more information see `LICENSE.md`.\n","readmeFilename":"README.md","gitHead":"a0774c35f8c041264d5e9a647ae2b725cccef145","bugs":{"url":"https://github.com/Ariel-Rodriguez/react-amp-template/issues"},"homepage":"https://github.com/Ariel-Rodriguez/react-amp-template#readme","_id":"react-amp-template@4.0.0-alpha.2","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"arielfdr","email":"ariel.fdr@gmail.com"},"dist":{"integrity":"sha512-VtSs25DzKQ+fvfQ/K+ecNnHiEX74g8PGXM4ixg26yKknFEOyEZ2CMfO6Or3BUFSLx1hISmnt0KmkQfcqb6kOTw==","shasum":"60c5692697019e3615c337b478274c80a1950523","tarball":"https://registry.npmjs.org/react-amp-template/-/react-amp-template-4.0.0-alpha.2.tgz","fileCount":5,"unpackedSize":10888,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa0pfYCRA9TVsSAnZWagAAGDYP/0OVSiQ5Nn5L49dyGDtF\nk0pMHhuftQPM3FJA1xKXyxLLFg1Qpijbpl+n/A17Di3TRonO2Ke2Oj83Uq4T\nLeFzjdwISJMGgeNKa3T8qNnkt9exViTnUbuZOq0uYuFhQOY7eY4p3zPnUxoV\nU5fl+H9+8t64Rnb3V0c1KbPZ8Fu76NqPo9VUK2Lak6MLekvum+fk5bUTiAWG\nXAIvPWz2WjorSIbE8/vI8ShYXxiReQxzsM2/ESxvB4Dhr2Nsp6tKtfIb7EsA\nkjkVnVlBzeRrfU7+DExX22Yzcf6MRU3Y7I/vXDf4vIpfCR0VqpoSsoZkqgCS\nh3N4aygEDdu+9yvI/4J6tQcO+2sjy6XChffrEQKpkOnNuzzp4YH7dZFM6rc1\nka+FKZ6+o8n9ZsJE24y8EbJ3dwczuGVmT/OFgr5oquN1xBCwxFy5gXXU3Dwe\n91j3Ipusbl/7mEb/ws1OK6ScqEDQotQUC65FmsfHE2k4m3NbrEt/LaUqmdcp\n1+TwdmcdC6snM4/fjKk6rrAvv10lWmwgluHHRPFTrRo+1UlLqqncIALVV81x\nmmiRTTE0Fu41k7extSiadZttA24biMSRGkZPeYd+Bntf5Wp6ao+U4hoYdxz4\nX98DKMW0a4dw6sHGlBZZ5liUFFvFD5PsSw0hG3x2YJ9P42bd3O9SvI2CGHhK\nDJA/\r\n=BepM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWUW4fISC7cAbyXvFAOjmpQSa/ElmzRVM1lMhkqP878QIgGyFS8fdpEY0IDN4LQ8ufRuM1acAr8izm4T0ukn4UTgU="}]},"maintainers":[{"name":"alexrqs","email":"alexlopezarroyave@gmail.com"},{"name":"arielfdr","email":"ariel.fdr@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-amp-template_4.0.0-alpha.2_1523750872175_0.35142301021741584"},"_hasShrinkwrap":false},"4.0.0-alpha.3":{"name":"react-amp-template","version":"4.0.0-alpha.3","description":"AMP react server rendering.","keywords":["preact","react","amp","server-rendering","react-amp","amp-react","template","aphrodite","styledcomponent"],"main":"lib/index.js","repository":{"type":"git","url":"git+https://github.com/Ariel-Rodriguez/react-amp-template.git"},"scripts":{"build":"npm-run-all build:*","build:lib":"rimraf lib && babel src -d lib -s","dev":"nodemon --watch ./src  --ext js,jsx --exec 'npm run prepare && npm run build && npm run test'","prepare":"npm test","prepublish":"NODE_ENV=production && npm run build:lib && echo build using $NODE_ENV env","test":"npm run -s lint && BABEL_ENV=test nyc ava","test:watch":"npm run test --  --watch","lint":"eslint --fix --ext .jsx --ext .js src/."},"author":{"name":"Ariel Fernando Rodriguez"},"license":"Apache-2.0","ava":{"require":["babel-register"],"files":["test/**/*.{js,jsx}"]},"babel":{"extends":"./config/.babelrc"},"eslintConfig":{"extends":"./config/.eslintrc.json"},"dependencies":{"pretty":"^2.0.0","prop-types":"^15.6.1","react":"^16.3.1","react-dom":"^16.3.1","styled-components":"^3.2.5"},"devDependencies":{"ava":"^0.25.0","babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-eslint":"^8.2.3","babel-plugin-istanbul":"^4.1.6","babel-plugin-styled-components":"^1.5.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","babel-runtime":"^6.26.0","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-config-airbnb-base":"^12.1.0","eslint-plugin-import":"^2.11.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.7.0","mkdirp":"^0.5.1","npm-run-all":"^4.1.2","nyc":"^11.6.0","react-test-renderer":"^16.3.1","rimraf":"^2.6.2"},"readme":"<div align=\"center\">\n  <h1><strong>RAMPT 3</strong></h1>\n  <div align=\"center\">Server side rendering using Preact + ModularCSS/JSCSS + AMP-custom-elements.</div>\n</div>\n\n<br />\n\n<div align=\"center\">\n  <!-- Build Status -->\n  <a href=\"https://travis-ci.org/Ariel-Rodriguez/react-amp-template\">\n    <img src=\"https://travis-ci.org/Ariel-Rodriguez/react-amp-template.svg?branch=master\" alt=\"Build Status\" />\n  </a>\n  <!-- npm ver -->\n  <a href=\"https://badge.fury.io/js/react-amp-template\"><img src=\"https://badge.fury.io/js/react-amp-template.svg\" alt=\"npm version\" height=\"18\"></a>\n</div>\n\n\nWrite AMP pages using React syntaxt right the way and style with your preferred style manager\n\n<dl>\n  <dt>:zap: AMP elements</dt>\n  <dd>Ready to render any <a href=\"https://ampbyexample.com/#components\">AMP component</a></dd>\n  <dt>:nail_care: Modular CSS</dt>\n  <dd>Style with the power of <a href=\"https://github.com/styled-components/styled-components\">Styled Components</a> or <a href=\"https://github.com/Khan/aphrodite\">Aphrodite</a> or Your Own custom StyleManager!</dd>\n</dl>\n\n\n\n\n## Contents\n\n- [Usage](#usage)\n- [API](#api)\n- [Configuration](#configuration)\n- [Contribute](#contributing)\n\n\n## Usage\n\n### Install from NPM\n\n- `yarn add react-amp-template`\n\n### Static Render\n\n```javascript\nimport { h } from 'preact'\nimport render from 'react-amp-template'\n\nconst metaContent = {\n  'http-equiv': \"origin-trial\",\n  'data-expires': '2020-01-01',\n  'data-feature': \"Web Share\",\n  'content': \"Ajcrk411RcpUCQ3ovgC8le4e7Te/1kARZsW5Hd/OCnW6vIHTs5Kcq1PaABs7SzcrtfvT0TIlFh9Vdb5xWi9LiQsAAABSeyJvcmlnaW4iOiJodHRwczovL2FtcGJ5ZXhhbXBsZS5jb206NDQzIiwiZmVhdHVyZSI6IldlYlNoYXJlIiwiZXhwaXJ5IjoxNDkxMzM3MDEwfQ==\"\n}\n\nconst SocialShare = (props, { head }) => {\n  head.append('amp-social-share')\n  return <amp-social-share {...props} />\n}\n\nconst Body = (props, { head }) => {\n  // Add required meta tags to head at any moment.\n  head.append('meta', metaContent)\n  head.append('link', {rel: 'amphtml', 'href': \"https://www.example.com/url/to/amp/document.html\"})\n  return(\n    <body>\n      <h1>Preact for AMP is welcome as well!</h1>\n      <SocialShare width=\"40\" height=\"40\" type=\"email\"/>\n      <SocialShare width=\"40\" height=\"40\" type=\"facebook\"\n        data-param-app_id=\"254325784911610\" />\n      <SocialShare width=\"40\" height=\"40\" type=\"gplus\"/>\n      <SocialShare width=\"40\" height=\"40\" type=\"linkedin\"/>\n      <SocialShare width=\"40\" height=\"40\" type=\"whatsapp\"/>\n      <SocialShare width=\"40\" height=\"40\" type=\"twitter\"/>\n    </body>\n  )\n}\n\n\nrender(<Body />, {\n  title: 'Rendering AMP with preact',\n  canonical: 'https://my-website.com',\n})\n```\n\n## Styled components\n\n```javascript\nimport React from 'react'\nimport render from 'react-amp-template'\n\nconst Body = ({ children, ...props }, { head }) =>\n  <body {...props}>\n    <Button>Normal</Button>\n    <ThemeProvider theme={theme}>\n      <Button>Themed</Button>\n    </ThemeProvider>\n    {children}\n  </body>\n\n\nconst StyledBody = styled(Body)`\n\tbackground: papayawhip;\n\t@media (max-width: 700px) {\n\t\tbackground: palevioletred;\n\t}\n`\n\nrender(<StyledBody />, {\n  title: 'Styling AMP with StyledComponents',\n  canonical: 'https://canonical.com',\n  styleManager: 'styled-components',\n})\n```\n\n[See more here](https://github.com/Ariel-Rodriguez/react-amp-template/tree/master/examples)\n\n\n## API\n\n### Template\n\n```javascript\nimport { Template } from 'react-amp-template'\nconst template = new Template({ title, canonical, styleManager })\n```\n\n### Options\n\n - *title* | Add meta title with [_title_]\n - *canonical*  | Add link canonical with href to [_canonical_]\n - *styleManager* | {string | function}. Allowed `aphrodite` `styled-components` `undefined` `function` \n\n\n### Context\n\nEvery children element receives the high order `context`.\nIt allows components to add custom content to Head.\n\n\n#### AMP component\n\nEnsure to add the amp-custom script required.\nRAMPT prevents duplicated scripts automatically.\n\n```javascript\nconst Element = (props, context) => {\n context.head.append('amp-sidebar')\n context.head.append('amp-sidebar') // <- it won't be added\n return ...\n}\n```\n\n`<script async custom-element=\"amp-sidebar\" src=\"https://cdn.ampproject.org/v0/amp-sidebar-0.1.js\"></script>`\n\nBy default every amp-script address to version 0.1. However it can be customized.\n\n```javascript\nconst Element = (props, context) => {\n context.head.append('amp-sticky-ad', { version: '1.0' })\n return ...\n}\n```\n\n`<script async custom-element=\"amp-sticky-ad\" src=\"https://cdn.ampproject.org/v0/amp-sticky-ad-0.1.js\"></script>`\n\n\n#### LD+JSON\n\n```javascript\nconst Element = (props, context) => {\n  context.head.append('ldjson', { id: 'myjson', content: {foo: 'bar' }})\n  return ...\n}\n```\n\n`<script type=\"application/json\" id=\"myjson\">{foo:bar}</script>`\n\n\n#### Mustache\n\n```javascript\n const Element = (props, { head }) => {\n   head.append('amp-list')\n   head.append('amp-mustache')\n\n   return (\n    <amp-list src=\"https://ampbyexample.com/json/cart.json\"\n      layout=\"fixed-height\"\n      height=\"56\">\n      <template type=\"amp-mustache\"\n        dangerousllySetInnerHTML={{ __html: \"Hi {{fullname}}!\" }}>\n      </template>\n    </amp-list>\n   )\n }\n```\n\n## Configuration\n\nRAMPT renders to string thanks to [preact-render-to-string](https://github.com/developit/preact-render-to-string)\n\nA system bundler is recommended in order to make it work with React and Styled components.\nTake a look for [this webpack configuration for RAMPT examples](https://github.com/Ariel-Rodriguez/react-amp-template/blob/master/config/webpack.config.babel.js)\n\n### Babel & Webpack\n\n#### React | Styled Components\n\n`yarn add --dev babel-plugin-styled-components babel-preset-react babel-plugin-module-resolver`\n\n```json\n{\n  \"presets\": [\n    \"stage-0\",\n    \"react\"\n  ],\n  \"plugins\": [\n    [\"babel-plugin-styled-components\", { \"ssr\": true }]\n    [\"module-resolver\", {\n      \"root\": [\".\"],\n      \"alias\": {\n        \"react\": \"preact-compat\",\n        \"react-dom\": \"preact-compat\"\n      }\n    }]\n  ]\n}\n```\n\n- Add Webpack alias\n\n```javascript\nresolve: {\n  extensions: ['.jsx', '.js'],\n  modules: [\n    path.resolve(__dirname, \"src\"),\n    path.resolve(__dirname, 'node_modules')\n  ],\n  alias: {\n    'react': 'preact-compat',\n    'react-dom': 'preact-compat',\n  }\n}\n  ...\n```\n\n- Include styled-component in the bundle in order to bypass React alias into Preact\n\n```javascript\nexternals: [ nodeExternals({\n  whitelist: ['styled-components']\n})]\n```\n\n## Preact\n\n```json\n{\n  \"presets\": [\n    \"stage-0\",\n    \"preact\"\n  ]\n}\n```\n\n## Contributing\n\n- `$git clone git@github.com:Ariel-Rodriguez/react-amp-template.git`\n- `yarn`\n- `yarn dev`\n\n### Build examples\n\n- `yarn examples`\n\n## License\n\nThis project is licensed under the Apache License, Version 2.0. Copyright (c) 2016 Ariel Fernando Rodriguez. For more information see `LICENSE.md`.\n","readmeFilename":"README.md","gitHead":"a0774c35f8c041264d5e9a647ae2b725cccef145","bugs":{"url":"https://github.com/Ariel-Rodriguez/react-amp-template/issues"},"homepage":"https://github.com/Ariel-Rodriguez/react-amp-template#readme","_id":"react-amp-template@4.0.0-alpha.3","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"arielfdr","email":"ariel.fdr@gmail.com"},"dist":{"integrity":"sha512-lBWVrA88SiqJvP0/pjN9+3C5HgZ8Ybi0mky9cNL2UmBhnqV3QpoPeN+h5G9tifdYsm0lWB8RhnGxvfPyqnhFsA==","shasum":"67c652670be76b70cdd071b7e3776a0270f2b698","tarball":"https://registry.npmjs.org/react-amp-template/-/react-amp-template-4.0.0-alpha.3.tgz","fileCount":23,"unpackedSize":40251,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa0pg2CRA9TVsSAnZWagAAlcAP/RZXjz51vzJeGmzrHoTn\nZF9cwWVqUgrP86QRjI330j6xb4cfX+XyroMHMHlYjGTS/b8xmW7GwF+stJbY\ndlgY8+AbGNClSaF/AWnL8I1JbKWa97MNeOEGMXQ8wi/dsMNUaF/yKlY6OHOu\n6TQWKTz7EKjQNOlmp+1NQnNxwo7+7aBFT47Bzj87QyDDLY+UFLVpoG1/6EdG\ngSGRHhAzd+G6+ZQxjWAdM+gGzcY6u5wnwD0WbOqXWV60+2bW6FtCIe5O7Nwk\neD/plpXlk0iJSTCXYs8J+dVDFADam56y7B2vYviDhjSNBY9f1QrjzDJW2b2J\nlQPxi/cpe4ixPiY6A7Jwj+c42oKjeiayf2C7TcLcu4LhqXnWSMCH2f45S5pT\n2fld/+m3WSxWkTNqgGz1sa+7lRLaTHptBLdq/5Qd+tDpjJPkQh8r0/ujt9Hl\nnR8BapN+4uyes/zn3xFGprRGK5AfuOox5GIZjPtu2X2HgU8yzOuZp9wkn07U\nHWvXFrIzyRgswfRlIjjI4cT+syR26hIcOSCpRbLfu7EJHlmZ+uptr8sUMS4e\nNBQKGh62upnsSRXZGopoO+rQf6zNDDhxZD58FDNgOHNpFsfyYKZBFugMv00h\nGGO6yFqWvckG5c9FtoMS7Ki6UQDagE6AdRPPrfeK6PzXXfHji48Y5DrDuA3A\nS53t\r\n=dIpg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDccKtInny2aoj+oml8wZGw6Utfjza6gY1rgHMxxl4VyAIgTDWC3g1C4kM/82fIHKj9h1+8TQQYzqhndsyeAv13iUo="}]},"maintainers":[{"name":"alexrqs","email":"alexlopezarroyave@gmail.com"},{"name":"arielfdr","email":"ariel.fdr@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-amp-template_4.0.0-alpha.3_1523750965227_0.6378346914367017"},"_hasShrinkwrap":false},"4.0.0-alpha.4":{"name":"react-amp-template","version":"4.0.0-alpha.4","description":"AMP react server rendering.","keywords":["preact","react","amp","server-rendering","react-amp","amp-react","template","aphrodite","styledcomponent"],"main":"lib/index.js","repository":{"type":"git","url":"git+https://github.com/Ariel-Rodriguez/react-amp-template.git"},"scripts":{"build":"npm-run-all build:*","build:lib":"rimraf lib && babel src -d lib -s","dev":"nodemon --watch ./src  --ext js,jsx --exec 'npm run prepare && npm run build && npm run test'","prepare":"npm test","prepublish":"NODE_ENV=production && npm run build:lib && echo build using $NODE_ENV env","test":"npm run -s lint && BABEL_ENV=test nyc ava","test:watch":"npm test --  --watch","lint":"eslint --fix --ext .jsx --ext .js src/."},"author":{"name":"Ariel Fernando Rodriguez"},"license":"Apache-2.0","ava":{"require":["babel-register"],"babel":"inherit"},"babel":{"extends":"./config/.babelrc"},"eslintConfig":{"extends":"./config/.eslintrc.json"},"dependencies":{"pretty":"^2.0.0","prop-types":"^15.6.1","react":"^16.3.1","react-dom":"^16.3.1","styled-components":"^3.2.5"},"devDependencies":{"ava":"^0.25.0","babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-eslint":"^8.2.3","babel-plugin-istanbul":"^4.1.6","babel-plugin-styled-components":"^1.5.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","babel-runtime":"^6.26.0","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-config-airbnb-base":"^12.1.0","eslint-plugin-import":"^2.11.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.7.0","mkdirp":"^0.5.1","npm-run-all":"^4.1.2","nyc":"^11.6.0","react-test-renderer":"^16.3.1","rimraf":"^2.6.2"},"readme":"<div align=\"center\">\n  <h1><strong>RAMPT 3</strong></h1>\n  <div align=\"center\">Server side rendering using Preact + ModularCSS/JSCSS + AMP-custom-elements.</div>\n</div>\n\n<br />\n\n<div align=\"center\">\n  <!-- Build Status -->\n  <a href=\"https://travis-ci.org/Ariel-Rodriguez/react-amp-template\">\n    <img src=\"https://travis-ci.org/Ariel-Rodriguez/react-amp-template.svg?branch=master\" alt=\"Build Status\" />\n  </a>\n  <!-- npm ver -->\n  <a href=\"https://badge.fury.io/js/react-amp-template\"><img src=\"https://badge.fury.io/js/react-amp-template.svg\" alt=\"npm version\" height=\"18\"></a>\n</div>\n\n\nWrite AMP pages using React syntaxt right the way and style with your preferred style manager\n\n<dl>\n  <dt>:zap: AMP elements</dt>\n  <dd>Ready to render any <a href=\"https://ampbyexample.com/#components\">AMP component</a></dd>\n  <dt>:nail_care: Modular CSS</dt>\n  <dd>Style with the power of <a href=\"https://github.com/styled-components/styled-components\">Styled Components</a> or <a href=\"https://github.com/Khan/aphrodite\">Aphrodite</a> or Your Own custom StyleManager!</dd>\n</dl>\n\n\n\n\n## Contents\n\n- [Usage](#usage)\n- [API](#api)\n- [Configuration](#configuration)\n- [Contribute](#contributing)\n\n\n## Usage\n\n### Install from NPM\n\n- `yarn add react-amp-template`\n\n### Static Render\n\n```javascript\nimport { h } from 'preact'\nimport render from 'react-amp-template'\n\nconst metaContent = {\n  'http-equiv': \"origin-trial\",\n  'data-expires': '2020-01-01',\n  'data-feature': \"Web Share\",\n  'content': \"Ajcrk411RcpUCQ3ovgC8le4e7Te/1kARZsW5Hd/OCnW6vIHTs5Kcq1PaABs7SzcrtfvT0TIlFh9Vdb5xWi9LiQsAAABSeyJvcmlnaW4iOiJodHRwczovL2FtcGJ5ZXhhbXBsZS5jb206NDQzIiwiZmVhdHVyZSI6IldlYlNoYXJlIiwiZXhwaXJ5IjoxNDkxMzM3MDEwfQ==\"\n}\n\nconst SocialShare = (props, { head }) => {\n  head.append('amp-social-share')\n  return <amp-social-share {...props} />\n}\n\nconst Body = (props, { head }) => {\n  // Add required meta tags to head at any moment.\n  head.append('meta', metaContent)\n  head.append('link', {rel: 'amphtml', 'href': \"https://www.example.com/url/to/amp/document.html\"})\n  return(\n    <body>\n      <h1>Preact for AMP is welcome as well!</h1>\n      <SocialShare width=\"40\" height=\"40\" type=\"email\"/>\n      <SocialShare width=\"40\" height=\"40\" type=\"facebook\"\n        data-param-app_id=\"254325784911610\" />\n      <SocialShare width=\"40\" height=\"40\" type=\"gplus\"/>\n      <SocialShare width=\"40\" height=\"40\" type=\"linkedin\"/>\n      <SocialShare width=\"40\" height=\"40\" type=\"whatsapp\"/>\n      <SocialShare width=\"40\" height=\"40\" type=\"twitter\"/>\n    </body>\n  )\n}\n\n\nrender(<Body />, {\n  title: 'Rendering AMP with preact',\n  canonical: 'https://my-website.com',\n})\n```\n\n## Styled components\n\n```javascript\nimport React from 'react'\nimport render from 'react-amp-template'\n\nconst Body = ({ children, ...props }, { head }) =>\n  <body {...props}>\n    <Button>Normal</Button>\n    <ThemeProvider theme={theme}>\n      <Button>Themed</Button>\n    </ThemeProvider>\n    {children}\n  </body>\n\n\nconst StyledBody = styled(Body)`\n\tbackground: papayawhip;\n\t@media (max-width: 700px) {\n\t\tbackground: palevioletred;\n\t}\n`\n\nrender(<StyledBody />, {\n  title: 'Styling AMP with StyledComponents',\n  canonical: 'https://canonical.com',\n  styleManager: 'styled-components',\n})\n```\n\n[See more here](https://github.com/Ariel-Rodriguez/react-amp-template/tree/master/examples)\n\n\n## API\n\n### Template\n\n```javascript\nimport { Template } from 'react-amp-template'\nconst template = new Template({ title, canonical, styleManager })\n```\n\n### Options\n\n - *title* | Add meta title with [_title_]\n - *canonical*  | Add link canonical with href to [_canonical_]\n - *styleManager* | {string | function}. Allowed `aphrodite` `styled-components` `undefined` `function` \n\n\n### Context\n\nEvery children element receives the high order `context`.\nIt allows components to add custom content to Head.\n\n\n#### AMP component\n\nEnsure to add the amp-custom script required.\nRAMPT prevents duplicated scripts automatically.\n\n```javascript\nconst Element = (props, context) => {\n context.head.append('amp-sidebar')\n context.head.append('amp-sidebar') // <- it won't be added\n return ...\n}\n```\n\n`<script async custom-element=\"amp-sidebar\" src=\"https://cdn.ampproject.org/v0/amp-sidebar-0.1.js\"></script>`\n\nBy default every amp-script address to version 0.1. However it can be customized.\n\n```javascript\nconst Element = (props, context) => {\n context.head.append('amp-sticky-ad', { version: '1.0' })\n return ...\n}\n```\n\n`<script async custom-element=\"amp-sticky-ad\" src=\"https://cdn.ampproject.org/v0/amp-sticky-ad-0.1.js\"></script>`\n\n\n#### LD+JSON\n\n```javascript\nconst Element = (props, context) => {\n  context.head.append('ldjson', { id: 'myjson', content: {foo: 'bar' }})\n  return ...\n}\n```\n\n`<script type=\"application/json\" id=\"myjson\">{foo:bar}</script>`\n\n\n#### Mustache\n\n```javascript\n const Element = (props, { head }) => {\n   head.append('amp-list')\n   head.append('amp-mustache')\n\n   return (\n    <amp-list src=\"https://ampbyexample.com/json/cart.json\"\n      layout=\"fixed-height\"\n      height=\"56\">\n      <template type=\"amp-mustache\"\n        dangerousllySetInnerHTML={{ __html: \"Hi {{fullname}}!\" }}>\n      </template>\n    </amp-list>\n   )\n }\n```\n\n## Configuration\n\nRAMPT renders to string thanks to [preact-render-to-string](https://github.com/developit/preact-render-to-string)\n\nA system bundler is recommended in order to make it work with React and Styled components.\nTake a look for [this webpack configuration for RAMPT examples](https://github.com/Ariel-Rodriguez/react-amp-template/blob/master/config/webpack.config.babel.js)\n\n### Babel & Webpack\n\n#### React | Styled Components\n\n`yarn add --dev babel-plugin-styled-components babel-preset-react babel-plugin-module-resolver`\n\n```json\n{\n  \"presets\": [\n    \"stage-0\",\n    \"react\"\n  ],\n  \"plugins\": [\n    [\"babel-plugin-styled-components\", { \"ssr\": true }]\n    [\"module-resolver\", {\n      \"root\": [\".\"],\n      \"alias\": {\n        \"react\": \"preact-compat\",\n        \"react-dom\": \"preact-compat\"\n      }\n    }]\n  ]\n}\n```\n\n- Add Webpack alias\n\n```javascript\nresolve: {\n  extensions: ['.jsx', '.js'],\n  modules: [\n    path.resolve(__dirname, \"src\"),\n    path.resolve(__dirname, 'node_modules')\n  ],\n  alias: {\n    'react': 'preact-compat',\n    'react-dom': 'preact-compat',\n  }\n}\n  ...\n```\n\n- Include styled-component in the bundle in order to bypass React alias into Preact\n\n```javascript\nexternals: [ nodeExternals({\n  whitelist: ['styled-components']\n})]\n```\n\n## Preact\n\n```json\n{\n  \"presets\": [\n    \"stage-0\",\n    \"preact\"\n  ]\n}\n```\n\n## Contributing\n\n- `$git clone git@github.com:Ariel-Rodriguez/react-amp-template.git`\n- `yarn`\n- `yarn dev`\n\n### Build examples\n\n- `yarn examples`\n\n## License\n\nThis project is licensed under the Apache License, Version 2.0. Copyright (c) 2016 Ariel Fernando Rodriguez. For more information see `LICENSE.md`.\n","readmeFilename":"README.md","gitHead":"417916a4ea9258358b23fdae4cbf9af34ce32d48","bugs":{"url":"https://github.com/Ariel-Rodriguez/react-amp-template/issues"},"homepage":"https://github.com/Ariel-Rodriguez/react-amp-template#readme","_id":"react-amp-template@4.0.0-alpha.4","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"arielfdr","email":"ariel.fdr@gmail.com"},"dist":{"integrity":"sha512-HBDcFOhSR2tWWmCgLsvZExRYnGOymX5cn6fkoQbFsv+qHdUzLFfdqIfLoMDWJnDciy8xEjO5BonHnnK8ImRYhQ==","shasum":"71fbbc967ef0352d3e60dfb673a9ed5a6f2ea91b","tarball":"https://registry.npmjs.org/react-amp-template/-/react-amp-template-4.0.0-alpha.4.tgz","fileCount":23,"unpackedSize":39544,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa0t2+CRA9TVsSAnZWagAA0jcQAIKsnkT5DrcyJa+4hmtB\ngXUlQl14E11PzoVzXvF36ACabLpiXrJfV4+2h1RGZIETom0oJGkpuvAiwUIJ\nx4TXAlvZSLTONHFhkyNG2saLTrnkARJFZkgLlT6HDk5Cyxeu7BM8hKplo5Ad\n9Kv2NJA2bkZ0D1BCOhm3HTV5ulChHF49dWE0khhq3U7tFFODRa+lXSocYu5G\nTRw+RC76CtVGEwrxclsJDf5mVgtiWcaPdCxfXrQq41KdmOTZUVG+F2rfPk7O\nmxcyXWqk06UmPNLEyROFMLUina18hguk6Cg7LnzgfogbZmsDfO+7yfagRl6L\n/2M18DImnJsLWyRqKDXE2jW2iDuwPF+l7K6vTRiAjIrM38+4Hh4cUE9bVyOx\n91Y2wyzkBjC/0C7LopBgAY4e5uIgoVCshT7NdplIdBD93s6eNvzAeQCwtY7m\nCEaXOD8eiUg8gLBcuakKYNzfMegKODj+yLTTTWDAb1yUa08l2spBSCd74gNg\nyF2FFi2swQ1uyUnKhhUkuHLikruPxg5v/+LvKgTKS2/+w3Tu6axkknVUKHDw\na5V+8BC7dHvv55+K67s+hUZj8gir5xlSgLChPkeA7iVj7M2kREtHJ1HkSG0I\nGVgwhSQBzy+naMEnJLzj71Qptn9Jl5ZObuc5UIiLLHAO1vo0TEGHDDDfC4ZD\nfkqY\r\n=nOR7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBJ0mFOvcYZRSHg4uauMXEr5l68GBm47C/Pntf7gAt1IAiEAq5Acf/V0qKg7cFe7pdGYkf6fYgTM+vFHHHssfFBj4+s="}]},"maintainers":[{"name":"alexrqs","email":"alexlopezarroyave@gmail.com"},{"name":"arielfdr","email":"ariel.fdr@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-amp-template_4.0.0-alpha.4_1523768766331_0.40160981649384087"},"_hasShrinkwrap":false},"4.0.0-alpha.5":{"name":"react-amp-template","version":"4.0.0-alpha.5","description":"AMP react server rendering.","keywords":["preact","react","amp","server-rendering","react-amp","amp-react","template","aphrodite","styledcomponent"],"main":"lib/index.js","repository":{"type":"git","url":"git+https://github.com/Ariel-Rodriguez/react-amp-template.git"},"scripts":{"build":"npm-run-all build:*","build:lib":"rimraf lib && babel src -d lib -s","dev":"nodemon --watch ./src  --ext js,jsx --exec 'npm run prepare && npm run build && npm run test'","prepare":"npm test","prepublish":"NODE_ENV=production && npm run build:lib && echo build using $NODE_ENV env","test":"npm run -s lint && BABEL_ENV=test nyc ava","test:watch":"npm test --  --watch","lint":"eslint --fix --ext .jsx --ext .js src/."},"author":{"name":"Ariel Fernando Rodriguez"},"license":"Apache-2.0","ava":{"require":["babel-register"],"babel":"inherit"},"babel":{"extends":"./config/.babelrc"},"eslintConfig":{"extends":"./config/.eslintrc.json"},"dependencies":{"pretty":"^2.0.0","prop-types":"^15.6.1","react":"^16.3.1","react-dom":"^16.3.1","styled-components":"^3.2.5"},"devDependencies":{"ava":"^0.25.0","babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-eslint":"^8.2.3","babel-plugin-istanbul":"^4.1.6","babel-plugin-styled-components":"^1.5.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","babel-runtime":"^6.26.0","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-config-airbnb-base":"^12.1.0","eslint-plugin-import":"^2.11.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.7.0","mkdirp":"^0.5.1","npm-run-all":"^4.1.2","nyc":"^11.6.0","react-test-renderer":"^16.3.1","rimraf":"^2.6.2"},"readme":"<div align=\"center\">\n  <h1><strong>RAMPT v4</strong></h1>\n  <div align=\"center\"><p>AMP components aliases and shims for React SSR 16+ & styled-components v3</p></div>\n</div>\n\n<br />\n\n<div align=\"center\">\n  <!-- Build Status -->\n  <a href=\"https://travis-ci.org/Ariel-Rodriguez/react-amp-template\">\n    <img src=\"https://travis-ci.org/Ariel-Rodriguez/react-amp-template.svg?branch=master\" alt=\"Build Status\" />\n  </a>\n  <!-- npm ver -->\n  <a href=\"https://badge.fury.io/js/react-amp-template\"><img src=\"https://badge.fury.io/js/react-amp-template.svg\" alt=\"npm version\" height=\"18\"></a>\n</div>\n\n\nWrite AMP pages using React syntaxt right the way and style with your preferred style manager\n\n<dl>\n  <dt>:zap: AMP elements</dt>\n  <dd>Ready to render any <a href=\"https://ampbyexample.com/#components\">AMP component</a></dd>\n  <dt>:nail_care: Modular CSS</dt>\n  <dd>Style with the power of <a href=\"https://github.com/styled-components/styled-components\">Styled Components</a> or <a href=\"https://github.com/Khan/aphrodite\">Aphrodite</a> or Your Own custom StyleManager!</dd>\n</dl>\n\n\n\n\n## Contents\n\n- [Usage](#usage)\n- [Demo](#demo)\n- [API](#api)\n- [Configuration](#configuration)\n- [Contribute](#contributing)\n\n\n## Usage\n\n### Install\n\n- `npm i react-amp-template`\n\n### Static Render\n\n```javascript\nimport React, { Fragment } from 'react'\nimport styled from 'styled-components'\nimport { renderToString, AMP } from 'react-amp-template'\n\nconst { Title, Link, Carousel } = AMP\n\nconst Body = styled.body`\n  margin: 0 1rem;\n`\n\nconst App = ({ title }) => (\n  <Fragment>\n    <Title>{title}</Title>\n    <Link rel=\"canonical\" href=\"http://localhost\" />\n    <Body>\n      <h1>Hello World</h1>\n      <Carousel lightbox width=\"400\" height=\"300\" layout=\"responsive\" type=\"slides\">\n        <amp-img src=\"/img/image1.jpg\" width=\"400\" height=\"300\" layout=\"responsive\"></amp-img>\n        <amp-img src=\"/img/image2.jpg\" width=\"400\" height=\"300\" layout=\"responsive\"></amp-img>\n        <amp-img src=\"/img/image3.jpg\" width=\"400\" height=\"300\" layout=\"responsive\"></amp-img>\n      </Carousel>\n    </Body>\n  </Fragment>\n)\n\nexport default props => renderToString(<App title=\"AMP demo\" />)\n```\n\n\n## Demo [here](https://github.com/Ariel-Rodriguez/react-amp-template/tree/master/examples)\n\n\n## API\n\n### renderToString\n\n```javascript\n/**\n * Transform React component into HTML AMP format.\n *\n * @returns {String} html\n * @param {Class|Object} body React component to render\n * @param {Object} options Settings\n * @property {string} options.cdnURI absolute URL to AMP CDN\n * @property {string} options.boilerplate HTML string which contains AMP boilerplate styles\n * @property {object} options.extensions Key map of references to specify an extension version\n * @property {object} options.extensions.default default version for all amp-extensions e.g '0.1'\n * @property {object} options.extensions.extension [extension-name]\n ** specify custom version for derived extension e.g: 'amp-sticky-ad': '1.0'\nimport { renderToString } from 'react-amp-template'\n```\n\n#### AMP components\n\n```javascript\nimport { AMP } from 'react-amp-template'\n\nconst AdUnit = () => <AMP.AdUnit />\n```\n- RAMPT provides shorthands for amp-custom-elements. A \\[ get \\] operation on { AMP } module returns Node element and automatically registers the `<script />` tag required by AMP.\n\n- The following components could be used in case of need to ad elements into `<head>` element\n\n```javascript\n  <Link /> <Meta /> <Title /> <Script /> <Tag _name=\"custom-tag\" />\n```\n\n- By default every amp-script address to version 0.1. However it can be customized.\n\n```javascript\nrenderToString(<App />, {\n  extensions: {\n   default: 0.2,\n   'amp-sticky-unit': 1.0,\n  }\n})\n```\n\n#### LD+JSON\n\n```javascript\n<AMP.Script\n  type=\"application/ld+json\"\n  dangerouslySetInnerHTML={{ __html: JSON.stringify(json) }}\n/>\n```\n\n\n## Configuration\n\n### Babel\n- Setup the environment as recomends React and Styled-Components server rendering.\n\n#### React | Styled Components\n\n`npm i -D babel-plugin-styled-components babel-preset-react`\n\n```json\n{\n  \"presets\": [\n    \"stage-0\",\n    \"react\"\n  ],\n  \"plugins\": [\n    [\"babel-plugin-styled-components\", { \"ssr\": true }]\n  ]\n}\n```\n\n\n## Contributing\n\n- Fork the repository\n- `npm install`\n- `npm run dev`\n- Create pull request\n\n### Build examples\n\n- `cd examples/simple-server`\n- `npm install && npm start`\n\n## License\n\nThis project is licensed under the Apache License, Version 2.0. Copyright (c) 2016 Ariel Fernando Rodriguez. For more information see `LICENSE.md`.\n","readmeFilename":"README.md","gitHead":"f5a006a256342c82e2827443f60e51645f107dde","bugs":{"url":"https://github.com/Ariel-Rodriguez/react-amp-template/issues"},"homepage":"https://github.com/Ariel-Rodriguez/react-amp-template#readme","_id":"react-amp-template@4.0.0-alpha.5","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"arielfdr","email":"ariel.fdr@gmail.com"},"dist":{"integrity":"sha512-b5e5yR1jJdIUJqNtrGou2RD63kmufyZydxzP1WE3wid/5rO0cNYGdFvXeI7yf7NhWbR7+BjRw4WEK9BuW45vLw==","shasum":"6c10a99098d73aae71ebf494448aa1c60134dd64","tarball":"https://registry.npmjs.org/react-amp-template/-/react-amp-template-4.0.0-alpha.5.tgz","fileCount":25,"unpackedSize":38808,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa0vMMCRA9TVsSAnZWagAA+zcP/1NF+amTTvuQR+5lmpNs\nunOqWDD83imXbMM1rNhlyfyg8J1KHrg43RVnv03fI386e7in/xYTtI/s6d3/\nT+4f97hZ9md8a7rEHlPObnm4Pfi0E3lBc9h7Nke3XUAgBUH80tjwolbzLIFc\nS8N3e8AjwhShLOWlQuD7d75+/jj1vQCdoxDEKb53nRwa2jfBygsenPrgOLgd\noSSzwgXw8953so/UxFQOSyIfmjXkZAbm6/CHn7TISstBC/h08tPPjZpMNC+J\nv9i+QGS04E8uVlmJoYlTjvI/vLjIdLjMSQITghEUzQXNIPl6QgXIIIFIWGXA\nEfx3PWdP9mPawJce5saCxWg/sw5wV1B78RI8rguk5epEdu8/M1lyhegQlVIj\nzOoc9WDD0/nfjXaj0ZwMmSLW7z9o/OeDZHMb79cvN7FpZkELh5/ligqj3ke9\n5UqlzUnNzCJ4OSxMG0kFLJl7E0nnwDWffs0GCZpuvKfb/nBM1gUNxhWhDJSb\nGHmgTQAHRn6ijWd/gdOUGbHyn5o0Ilkfmr6UaJCZduTfOQascDqE1tSR3ruY\ng//HsEuEVdTdPccX+c9h1g5BbB5gDE0l0gkpLIUumGXVwSzXT3a4qtJUS+rL\nfdSdbtS38VFteNJJaPrCqjDl9RZdv+zYPVOVdMndH2VW7OYzH5kRVaoK18C4\ndgxY\r\n=MmKK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBJmB8fQHnMrlP5/byyGDtNk3vQeREY1Upv0HUZsWbeWAiEA7gJ4JpOXfM6o2r5XZpX2hcsOiq0AG0azeaz4OZlyeik="}]},"maintainers":[{"name":"alexrqs","email":"alexlopezarroyave@gmail.com"},{"name":"arielfdr","email":"ariel.fdr@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-amp-template_4.0.0-alpha.5_1523774220337_0.14121153511315843"},"_hasShrinkwrap":false},"4.0.0":{"name":"react-amp-template","version":"4.0.0","description":"AMP react server rendering.","keywords":["preact","react","amp","server-rendering","react-amp","amp-react","template","aphrodite","styledcomponent"],"main":"lib/index.js","repository":{"type":"git","url":"git+https://github.com/Ariel-Rodriguez/react-amp-template.git"},"scripts":{"build":"npm-run-all build:*","build:lib":"rimraf lib && babel src -d lib -s","dev":"nodemon --watch ./src  --ext js,jsx --exec 'npm run prepare && npm run build && npm run test'","prepare":"npm test","prepublishOnly":"NODE_ENV=production && npm run build:lib && echo build using $NODE_ENV env","test":"npm run -s lint && BABEL_ENV=test nyc ava","test:watch":"npm test --  --watch","lint":"eslint --fix --ext .jsx --ext .js src/.","report-coverage":"nyc report --reporter=text-lcov > coverage.lcov && codecov -t $CODECOV_TOKEN"},"author":{"name":"Ariel Fernando Rodriguez"},"license":"Apache-2.0","ava":{"require":["babel-register"],"babel":"inherit"},"babel":{"extends":"./config/.babelrc"},"eslintConfig":{"extends":"./config/.eslintrc.json"},"dependencies":{"pretty":"^2.0.0","prop-types":"^15.6.1","react":"^16.3.1","react-dom":"^16.3.1","styled-components":"^3.2.5"},"devDependencies":{"ava":"^0.25.0","babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-eslint":"^8.2.3","babel-plugin-istanbul":"^4.1.6","babel-plugin-styled-components":"^1.5.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","babel-runtime":"^6.26.0","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-config-airbnb-base":"^12.1.0","eslint-plugin-import":"^2.11.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.7.0","mkdirp":"^0.5.1","npm-run-all":"^4.1.2","nyc":"^11.6.0","react-test-renderer":"^16.3.1","rimraf":"^2.6.2"},"gitHead":"bf9fb4d3a0ed6bacfda05a422e989fc783962327","bugs":{"url":"https://github.com/Ariel-Rodriguez/react-amp-template/issues"},"homepage":"https://github.com/Ariel-Rodriguez/react-amp-template#readme","_id":"react-amp-template@4.0.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"arielfdr","email":"ariel.fdr@gmail.com"},"dist":{"integrity":"sha512-/d10z6NzIVuzGy3hlNvMVuc2fREWJqlZlWjTPaZ7EMD68lxDBATkrcMThXjHMQjKI0ccMlG7ZCqn+o7RcnghFA==","shasum":"b246217b27ff6a408a83a3cb0f0bc6eed475cc81","tarball":"https://registry.npmjs.org/react-amp-template/-/react-amp-template-4.0.0.tgz","fileCount":25,"unpackedSize":39297,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa0v/RCRA9TVsSAnZWagAAJVsP/Ai+IwatARslRwjXQrP7\nYjW5m/VNnpUVr+fQO9u7Z2hBotDfygiJ2ddjCmnH9c66UeHFxqorvtkGZdSs\n1Pa6ZflSyoUepyOM6N3KZDNXKNaxV56SfMGcuK8zZBt+1HSqfZ0ogyuoyMhw\nBmMzbGUPuFn+/cW4iomqO/b3xnaAM7kuNt2C85Uv8wG30CKz4zlv1EqgF1ZT\n9rFK/jj8yByGWj9L7JVNKS7gi67tJjgFfnU0wnDIVvTh0xALOXcvjczkrlmm\nNvEmm3XxF7irEbTwVcPtWMAJLE1YKQKHXQAPXwhfrp8u77TVwHNkfuGrTyTJ\nHBh0QPPLOyspOcNTGtoxMXhN0TU3SG1dn4wIt/Q2rLUDf14VWNRJMaxQkiZK\n79/9N5ca++N5a+IiCApm7v1dezf0C0xDDZfZkT6h9uzzF9WXWEXuNi4qYyb+\n7rJRDlY2cT5J25z0TNcxOTc4VxPSjsW0GFJQMPEWtvVJm0RrD+eRR3NnrB+3\n3iMQOswfHPsHqT+P4b8Besyyf4P3HGh8BV9IpN9mxw+1lS8RnGsOjuSWN/vI\nSZwc1kIJZuhBmX/y71nXYj5znwbyzLevCfWGVHRrZTd3U67jjiUgrpJPrYrE\n0AZfTWp1Zm1VzKywW6vKIEXeC171qlP2w5thysXPPOg6BHJ7OSh6FKJK5Qpk\nPq9C\r\n=4IsV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIASCw4qRKLjVoUmz937Ewu48hDW1rMWuFINBbczUo7JNAiEAuzwirl5tm2+2qe2H9lHT0sOAAOFzpPw6R9IFNeILzmI="}]},"maintainers":[{"name":"alexrqs","email":"alexlopezarroyave@gmail.com"},{"name":"arielfdr","email":"ariel.fdr@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-amp-template_4.0.0_1523777487775_0.4230770711921321"},"_hasShrinkwrap":false},"4.0.2":{"name":"react-amp-template","version":"4.0.2","description":"AMP react server rendering.","keywords":["preact","react","amp","server-rendering","react-amp","amp-react","template","aphrodite","styledcomponent"],"main":"lib/index.js","repository":{"type":"git","url":"git+https://github.com/Ariel-Rodriguez/react-amp-template.git"},"scripts":{"build":"npm-run-all build:*","build:lib":"rimraf lib && babel src -d lib -s","dev":"nodemon --watch ./src  --ext js,jsx --exec 'npm run prepare && npm run build && npm run test'","prepare":"npm test","prepublishOnly":"NODE_ENV=production && npm run build:lib && echo build using $NODE_ENV env","test":"npm run -s lint && BABEL_ENV=test nyc ava","test:watch":"npm test --  --watch","lint":"eslint --fix --ext .jsx --ext .js src/.","report-coverage":"nyc report --reporter=text-lcov > coverage.lcov && codecov -t $CODECOV_TOKEN"},"author":{"name":"Ariel Fernando Rodriguez"},"license":"Apache-2.0","ava":{"require":["babel-register"],"babel":"inherit"},"babel":{"extends":"./config/.babelrc"},"eslintConfig":{"extends":"./config/.eslintrc.json"},"dependencies":{"pretty":"^2.0.0","prop-types":"^15.6.1","react":"^16.3.1","react-dom":"^16.3.1","styled-components":"^3.2.5"},"devDependencies":{"ava":"^0.25.0","babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-eslint":"^8.2.3","babel-plugin-istanbul":"^4.1.6","babel-plugin-styled-components":"^1.5.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","babel-runtime":"^6.26.0","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-config-airbnb-base":"^12.1.0","eslint-plugin-import":"^2.11.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.7.0","mkdirp":"^0.5.1","npm-run-all":"^4.1.2","nyc":"^11.6.0","react-test-renderer":"^16.3.1","rimraf":"^2.6.2"},"gitHead":"f5679148ec7459f6692d5e9c61d283e34f0fdea3","bugs":{"url":"https://github.com/Ariel-Rodriguez/react-amp-template/issues"},"homepage":"https://github.com/Ariel-Rodriguez/react-amp-template#readme","_id":"react-amp-template@4.0.2","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"arielfdr","email":"ariel.fdr@gmail.com"},"dist":{"integrity":"sha512-RS7y7OyDfRlfxUgGwb//pDlrJSWtmgN5k7zGP9pxvmpZrRCAMXahrPWJIsd7KyuMZ6Ataa8W2o339N8Ops8UvQ==","shasum":"cc7065b116e66b3d4974f72707e3773bc3c2dbb5","tarball":"https://registry.npmjs.org/react-amp-template/-/react-amp-template-4.0.2.tgz","fileCount":26,"unpackedSize":211399,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb4JVVCRA9TVsSAnZWagAAsf0P/23jTus4twC1sHd4jE78\n2U2BwUZ6GWDzfuSBjh2t/CZ47XJRdmKUt2JoWV3dtqGbN5pn1yPSetdJuzsU\nnWI+d9rUA1d9wezG7X5d0TraUB7lTJ/QFW549+hK1DLj6YXnjz3cUMyDjvat\nxtjvP0OX3IcqlOSHEb8tvsG8bHCHd7xazdeE46YyJwYSPZLsL0RbAgZNBWzH\n3TcEYOs/f+qu6Ccb95EumOiJN3qEuVh7djLHvcC4ybBZHL3VefA+rTr/VJTs\n3OUbE6c/QSRonI5SoqPVwREN2vlHaBAyMdkI6zEsUUPNNZr5ZFTp6HbOFngw\nY+7y/zv7S+wuHA0/oRv+fwAuKG2N4FoAA/YD7NBmOITOEXVjqkST4JMkKbgv\n0ANC4zRMcbawLqKp0byq/FnRWI0B95TK0YjVi4vKHEHCcR62N3s9MfnjSZJh\ntOQyN710pF1wlpEuKuDW9QWM6FW0JOZHra/cgfYYjr+b8o/T7XVuAFxsp7Qx\nprS5RsWmtHLEEIGG0iu1/zka/tsY4gz+mgEyRYagv4LYtMGzeO7sv1+MgQC4\n7ATcHQ2N0s5pYj1gVkOE2EyENWQ8+tcB3IWzLtuqPJknVZ/nubPfaZxjaOhP\nng+ZlQt/DgURB/GBrH0t6y7GzUPNUrrDPJkTz+DHJm1mhzInzxIZ6UzbfUr+\nSwSA\r\n=Rukw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxrxw/9PmtY8l0AnWYY/fFIj3MvnXgy3qQenZhJmMtZwIgGpQ8MVLnKvtBLq9IaI8shWVUUn08J2uqXtPT12ZHdrg="}]},"maintainers":[{"email":"lex.2418@gmail.com","name":"alexrqs"},{"email":"ariel.fdr@gmail.com","name":"arielfdr"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-amp-template_4.0.2_1541444949008_0.40879528593643455"},"_hasShrinkwrap":false},"4.0.3":{"name":"react-amp-template","version":"4.0.3","description":"AMP react server rendering.","keywords":["preact","react","amp","server-rendering","react-amp","amp-react","template","aphrodite","styledcomponent"],"main":"lib/index.js","repository":{"type":"git","url":"git+https://github.com/Ariel-Rodriguez/react-amp-template.git"},"scripts":{"build":"npm-run-all build:*","build:lib":"rimraf lib && babel src -d lib -s","dev":"nodemon --watch ./src  --ext js,jsx --exec 'npm run prepare && npm run build && npm run test'","prepare":"npm test","prepublishOnly":"NODE_ENV=production && npm run build:lib && echo build using $NODE_ENV env","test":"npm run -s lint && BABEL_ENV=test nyc ava","test:watch":"npm test --  --watch","lint":"eslint --fix --ext .jsx --ext .js src/.","report-coverage":"nyc report --reporter=text-lcov > coverage.lcov && codecov -t $CODECOV_TOKEN"},"author":{"name":"Ariel Fernando Rodriguez"},"license":"Apache-2.0","ava":{"require":["babel-register"],"babel":"inherit"},"babel":{"extends":"./config/.babelrc"},"eslintConfig":{"extends":"./config/.eslintrc.json"},"engines":{"node":">=8.0.0","yarn":">=1.5.0"},"dependencies":{"pretty":"^2.0.0","prop-types":"^15.6.2","react":"^16.6.0","react-dom":"^16.6.0","styled-components":"^3.4.10"},"devDependencies":{"ava":"^0.25.0","babel-cli":"^6.26.0","babel-core":"^6.26.3","babel-eslint":"^8.2.6","babel-plugin-istanbul":"^4.1.6","babel-plugin-styled-components":"^1.8.0","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.7.0","babel-preset-react":"^6.24.1","babel-runtime":"^6.26.0","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-config-airbnb-base":"^12.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.2","eslint-plugin-react":"^7.11.1","mkdirp":"^0.5.1","npm-run-all":"^4.1.3","nyc":"^11.9.0","react-test-renderer":"^16.6.0","rimraf":"^2.6.2"},"gitHead":"a53fbcabb8a7990df29a4481cd0f163d59abc4d7","bugs":{"url":"https://github.com/Ariel-Rodriguez/react-amp-template/issues"},"homepage":"https://github.com/Ariel-Rodriguez/react-amp-template#readme","_id":"react-amp-template@4.0.3","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"arielfdr","email":"ariel.fdr@gmail.com"},"dist":{"integrity":"sha512-i6zDhcyyyJ0uk4SIVD1KcuFRcFMEDTi6dnPJtgqZPo+GIzOS3NERBhbejZekpV/AjsrCprhbp4JN3dyz/wFNug==","shasum":"a16b4ef0c04da47419dbfbe6af8245d15bb081df","tarball":"https://registry.npmjs.org/react-amp-template/-/react-amp-template-4.0.3.tgz","fileCount":25,"unpackedSize":40526,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb4JZGCRA9TVsSAnZWagAAmWsP/02cMqzkkLHJFSP6LvNl\nQcf9hNrGi70RF2IGMo9/mPz4K7S1q+ktsezv4xATuaPoZn0g3uAd+FUP99J/\nV1UDm5sJHktfjobU1j2FYxg3yP3qA8GuORXaqZdd9E2xezyHI6jMKb+EBXb2\nxvzxmURV+eSesH09n4G0CB/InLnrWMUvyWzjbYXZWHQ2WpsKrpYc6AYHwhQH\nDBz/ftFRklZcdFFz3tVA5nbSMkF4dYvdL4BWr0ZQZmmEFflPqIMnQxZk4WHl\nikJ0J+2oRHDQ2oWjg5CEyxAp6DCra54lz+wIGrcQYQaelTAMVEkE6aAI8RTo\nYuGWICGlC+jD09GeFN4gHL+/3/d2qg7k3L98OhVwbHaTOBmU12uLpIO9q+xS\nGjq5/v655aX9M/yiqeSiw7/3HUu3gRap8bJW8DB4RO4gO+j1R9qugnAs0Daz\nvS9WCMfVgfZQxEmv5LcoPV2CIUx1YcT9Fhb15ypZcQif00pF7FNwWv7mVHjn\nZt2EyNXIjUzqmPzg0lQoJ6wS4UZuOZA7fXk+R8WNwI5RSHNj6GiHctDAcCjb\nKmC9QJ+9FmiiShgWBTxqAU1s/qxmD9G3z7cRyXS8kosMUpnoNCfZWXiGIFOk\n4kIN+3szFiFs+C1wUwI7v763+KYysVoCiFyJlMZgJN1x6UcKSDZe1nKclbSZ\ntHBC\r\n=D2bA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDh6su+QA92Vxw4YXf7DFloCB8iV779p/7WApFR8MgrWAiBoCWyaCUseibnM7w+5EzjBgbg5sWwmFk89PjxNk+FStg=="}]},"maintainers":[{"email":"lex.2418@gmail.com","name":"alexrqs"},{"email":"ariel.fdr@gmail.com","name":"arielfdr"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-amp-template_4.0.3_1541445190083_0.17882934433021203"},"_hasShrinkwrap":false},"4.1.0-rc.0":{"name":"react-amp-template","version":"4.1.0-rc.0","description":"AMP react server rendering.","keywords":["preact","react","amp","server-rendering","react-amp","amp-react","template","aphrodite","styledcomponent"],"main":"lib/index.js","repository":{"type":"git","url":"git+https://github.com/Ariel-Rodriguez/react-amp-template.git"},"scripts":{"build":"npm-run-all build:*","build:lib":"rimraf lib && babel src -d lib -s","dev":"nodemon --watch ./src  --ext js,jsx --exec 'npm run prepare && npm run build && npm run test'","prepare":"npm test","prepublishOnly":"NODE_ENV=production && npm run build:lib && echo build using $NODE_ENV env","test":"npm run -s lint && BABEL_ENV=test nyc ava","test:watch":"npm test --  --watch","lint":"eslint --fix --ext .jsx --ext .js src/.","report-coverage":"nyc report --reporter=text-lcov > coverage.lcov && codecov -t $CODECOV_TOKEN"},"author":{"name":"Ariel Fernando Rodriguez"},"license":"Apache-2.0","ava":{"require":["@babel/register"]},"babel":{"extends":"./config/.babelrc"},"eslintConfig":{"extends":"./config/.eslintrc.json"},"engines":{"node":">=8.0.0","yarn":">=1.5.0"},"dependencies":{"pretty":"2.0.0","prop-types":"15.6.2","react":"16.6.0","react-dom":"16.6.0","styled-components":"4.0.3"},"devDependencies":{"@babel/cli":"7.1.2","@babel/core":"7.1.2","@babel/preset-env":"7.1.0","@babel/preset-react":"7.0.0","@babel/register":"7.0.0","ava":"1.0.0-rc.1","babel-eslint":"8.2.6","babel-plugin-istanbul":"4.1.6","babel-plugin-styled-components":"1.8.0","eslint":"4.19.1","eslint-config-airbnb":"16.1.0","eslint-config-airbnb-base":"12.1.0","eslint-plugin-import":"2.14.0","eslint-plugin-jsx-a11y":"6.1.2","eslint-plugin-react":"7.11.1","mkdirp":"0.5.1","npm-run-all":"4.1.3","nyc":"13.1.0","react-test-renderer":"16.6.0","rimraf":"2.6.2"},"readme":"<div align=\"center\">\n  <h1><strong>RAMPT v4</strong></h1>\n  <div align=\"center\"><p>AMP components aliases and shims for React SSR 16+ & styled-components v3</p></div>\n</div>\n\n<br />\n\n<div align=\"center\">\n  <!-- maintainability -->\n  <a href=\"https://codeclimate.com/github/Ariel-Rodriguez/react-amp-template/maintainability\"><img src=\"https://api.codeclimate.com/v1/badges/ff07a1f7148b05304caf/maintainability\" /></a>\n  <!-- Build Status -->\n  <a href=\"https://travis-ci.org/Ariel-Rodriguez/react-amp-template\">\n    <img src=\"https://travis-ci.org/Ariel-Rodriguez/react-amp-template.svg?branch=master\" alt=\"Build Status\" />\n  </a>\n  <!-- npm ver -->\n  <a href=\"https://badge.fury.io/js/react-amp-template\"><img src=\"https://badge.fury.io/js/react-amp-template.svg\" alt=\"npm version\" height=\"18\"></a>\n  <!-- cover -->\n  <a href=\"https://codecov.io/gh/Ariel-Rodriguez/react-amp-template\"><img src=\"https://codecov.io/gh/Ariel-Rodriguez/react-amp-template/branch/master/graph/badge.svg\" /></a>\n</div>\n\n\nWrite AMP pages using React syntax right the way and style with your preferred style manager\n\n<dl>\n  <dt>:zap: AMP elements</dt>\n  <dd>Ready to render any <a href=\"https://ampbyexample.com/#components\">AMP component</a></dd>\n  <dt>:nail_care: Modular CSS</dt>\n  <dd>Style with the power of <a href=\"https://github.com/styled-components/styled-components\">Styled Components</a> or <a href=\"https://github.com/Khan/aphrodite\">Aphrodite</a> or Your Own custom StyleManager!</dd>\n</dl>\n\n\n\n\n## Contents\n\n- [Usage](#usage)\n- [Demo](#demo)\n- [API](#api)\n- [Configuration](#configuration)\n- [Contribute](#contributing)\n\n\n## Usage\n\n### Install\n\n- `npm i react-amp-template`\n\n### Static Render\n\n```javascript\nimport React, { Fragment } from 'react'\nimport styled from 'styled-components'\nimport { renderToString, AMP } from 'react-amp-template'\n\nconst { Title, Link, Carousel } = AMP\n\nconst Body = styled.body`\n  margin: 0 1rem;\n`\n\nconst App = ({ title }) => (\n  <Fragment>\n    <Title>{title}</Title>\n    <Link rel=\"canonical\" href=\"http://localhost\" />\n    <Body>\n      <h1>Hello World</h1>\n      <Carousel lightbox width=\"400\" height=\"300\" layout=\"responsive\" type=\"slides\">\n        <amp-img src=\"/img/image1.jpg\" width=\"400\" height=\"300\" layout=\"responsive\"></amp-img>\n        <amp-img src=\"/img/image2.jpg\" width=\"400\" height=\"300\" layout=\"responsive\"></amp-img>\n        <amp-img src=\"/img/image3.jpg\" width=\"400\" height=\"300\" layout=\"responsive\"></amp-img>\n      </Carousel>\n    </Body>\n  </Fragment>\n)\n\nexport default props => renderToString(<App title=\"AMP demo\" />)\n```\n\n\n## Demo\n[See complete example here](https://github.com/Ariel-Rodriguez/react-amp-template/tree/master/examples/simple-server)\n\n\n## API\n\n### renderToString\n\n```javascript\n/**\n * Transform React component into HTML AMP format.\n *\n * @returns {String} html\n * @param {Class|Object} body React component to render\n * @param {Object} options Settings\n * @property {string} options.cdnURI absolute URL to AMP CDN\n * @property {string} options.boilerplate HTML string which contains AMP boilerplate styles\n * @property {object} options.extensions Key map of references to specify an extension version\n * @property {object} options.extensions.default default version for all amp-extensions e.g '0.1'\n * @property {object} options.extensions.extension [extension-name]\n ** specify custom version for derived extension e.g: 'amp-sticky-ad': '1.0'\nimport { renderToString } from 'react-amp-template'\n```\n\n#### AMP components\n\n```javascript\nimport { AMP } from 'react-amp-template'\n\nconst AdUnit = () => <AMP.AdUnit />\n```\n- RAMPT provides shorthands for amp-custom-elements. A \\[ get \\] operation on { AMP } module returns Node element and automatically registers the `<script />` tag required by AMP.\n\n- The following components could be used in case of need to ad elements into `<head>` element\n\n```javascript\n  <Link /> <Meta /> <Title /> <Script /> <Tag _name=\"custom-tag\" />\n```\n\n- By default every amp-script address to version 0.1. However it can be customized.\n\n```javascript\nrenderToString(<App />, {\n  extensions: {\n   default: 0.2,\n   'amp-sticky-unit': 1.0,\n  }\n})\n```\n\n#### LD+JSON\n\n```javascript\n<AMP.Script\n  type=\"application/ld+json\"\n  dangerouslySetInnerHTML={{ __html: JSON.stringify(json) }}\n/>\n```\n\n\n## Configuration\n\n### Babel\n- Setup the environment as recomends React and Styled-Components server rendering.\n\n#### React | Styled Components\n\n`npm i -D babel-plugin-styled-components babel-preset-react`\n\n```json\n{\n  \"presets\": [\n    \"stage-0\",\n    \"react\"\n  ],\n  \"plugins\": [\n    [\"babel-plugin-styled-components\", { \"ssr\": true }]\n  ]\n}\n```\n\n\n## Contributing\n\n- Fork the repository\n- `npm install`\n- `npm run dev`\n- Create pull request\n\n### Build examples\n\n- `cd examples/simple-server`\n- `npm install && npm start`\n\n## License\n\nThis project is licensed under the Apache License, Version 2.0. Copyright (c) 2016 Ariel Fernando Rodriguez. For more information see `LICENSE.md`.\n","readmeFilename":"README.md","gitHead":"b36f2d172c8f77813d7d6dadc664f61d473c5af4","bugs":{"url":"https://github.com/Ariel-Rodriguez/react-amp-template/issues"},"homepage":"https://github.com/Ariel-Rodriguez/react-amp-template#readme","_id":"react-amp-template@4.1.0-rc.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"arielfdr","email":"ariel.fdr@gmail.com"},"dist":{"integrity":"sha512-ngnVHZ1WxvrlTPCQSYmR74NbfxQy5KCVVwij1uHsuWiaGLymxzAKGeJtEt03DpZ1cf9IH0JsLYjPlGZox+ZGsQ==","shasum":"a7281edcdcb92bd26a37609bc4145ae11e1c668f","tarball":"https://registry.npmjs.org/react-amp-template/-/react-amp-template-4.1.0-rc.0.tgz","fileCount":25,"unpackedSize":40790,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb4LdlCRA9TVsSAnZWagAAcqgP/RC/dvKtWrawznhlyWx6\nw9eggseFdTiYZPcTG6Zz/6+PrSmGy5OIP4PQBhcxE/0P9y/aaQCfRso39/NX\nrzdUnDLkuquK6kF6mJleOcOxNaqNMReth807oliV/NapEr9BrelAwtzU3TgX\nFnLRopgMnXWLHx/lWZp81XVwkEl72vk3GQ8tFLbdm+vVM86H+OwzY/T4i7Lu\nJWFWMMoUN7eVBB0Ae8Zg6r7j/nl6QQZJBO7KlmhdVCyjkGj7jFBxXG2Ah3Le\nDFHkMcBPJ5fcXzwz/v1hpusgnaxmR8pRzcC+HYeAjemQZDu2tFGKaD3jOH+H\nLnrkeOm7Agneq5KDLEnpHHz5hhlrxqXNe69+veHgh94rAi3gQu/pcT4lg+u2\nHodae6tcdWakZFbMwZ4o0PUWMaT+Zbd/W8bMGxfPMSyITomaBgmaJPJAkNR+\nMkORvWOpe4MhfOed8XI0fEsq6k3cWfD4O5sirkNLNeBQGhzLpm+75i9w+XJT\n04BkID72LrXmFnlC2TbnUkLOBWoeNRuVuHxAd+gXxinzNQizTnQAmWBe9KJz\neSNtBnuUkhEdO6GOgMGGNgyaV9YDjkXvH3mAmjWTYrRayFDfbwQ4rwuM95D8\ndhHcuqhabXqOtA8XRY25G1izG32hjMg0tWyCgSt02c3XIxDZBy6AXSbHTrHS\ncrf3\r\n=9iJN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDxZVeQMoCpFEF99FG23UYxPCqET0T1TA1VtWVgTXr/3QIgE/VXH+Y39RgFqzIuycMWoT0PMk1KRY3ZHCUpHvgQgyI="}]},"maintainers":[{"email":"lex.2418@gmail.com","name":"alexrqs"},{"email":"ariel.fdr@gmail.com","name":"arielfdr"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-amp-template_4.1.0-rc.0_1541453668613_0.3002255259150477"},"_hasShrinkwrap":false},"4.1.0-rc.1":{"name":"react-amp-template","version":"4.1.0-rc.1","description":"AMP react server rendering.","keywords":["preact","react","amp","server-rendering","react-amp","amp-react","template","aphrodite","styledcomponent"],"main":"lib/index.js","repository":{"type":"git","url":"git+https://github.com/Ariel-Rodriguez/react-amp-template.git"},"scripts":{"build":"rimraf lib && babel src -d lib -s","dev":"nodemon --watch ./src  --ext js,jsx --exec 'npm run prepare && npm run build && npm run test'","prepare":"npm test","prepublishOnly":"NODE_ENV=production && npm run build && echo build using $NODE_ENV env","test":"npm run -s lint && BABEL_ENV=test nyc ava","test:watch":"npm test --  --watch","lint":"eslint --fix --ext .jsx --ext .js src/.","report-coverage":"nyc report --reporter=text-lcov > coverage.lcov && codecov -t $CODECOV_TOKEN"},"author":{"name":"Ariel Fernando Rodriguez"},"license":"Apache-2.0","ava":{"require":["@babel/register"]},"babel":{"extends":"./config/.babelrc"},"eslintConfig":{"extends":"./config/.eslintrc.json"},"engines":{"node":">=8.0.0","yarn":">=1.5.0"},"dependencies":{"pretty":"2.0.0","prop-types":"15.6.2","react":"16.6.0","react-dom":"16.6.0","styled-components":"4.0.3"},"devDependencies":{"@babel/cli":"7.1.2","@babel/core":"7.1.2","@babel/preset-env":"7.1.0","@babel/preset-react":"7.0.0","@babel/register":"7.0.0","ava":"1.0.0-rc.1","babel-eslint":"8.2.6","babel-plugin-istanbul":"^5.1.0","babel-plugin-styled-components":"1.8.0","debug":"^4.1.1","eslint":"4.19.1","eslint-config-airbnb":"16.1.0","eslint-config-airbnb-base":"12.1.0","eslint-plugin-import":"2.14.0","eslint-plugin-jsx-a11y":"6.1.2","eslint-plugin-react":"7.11.1","mkdirp":"0.5.1","nyc":"13.1.0","react-test-renderer":"16.6.0","rimraf":"2.6.2"},"readme":"<div align=\"center\">\n  <h1><strong>RAMPT v4</strong></h1>\n  <div align=\"center\"><p>AMP components aliases and shims for React SSR 16+ & styled-components v3</p></div>\n</div>\n\n<br />\n\n<div align=\"center\">\n  <!-- maintainability -->\n  <a href=\"https://codeclimate.com/github/Ariel-Rodriguez/react-amp-template/maintainability\"><img src=\"https://api.codeclimate.com/v1/badges/ff07a1f7148b05304caf/maintainability\" /></a>\n  <!-- Build Status -->\n  <a href=\"https://travis-ci.org/Ariel-Rodriguez/react-amp-template\">\n    <img src=\"https://travis-ci.org/Ariel-Rodriguez/react-amp-template.svg?branch=master\" alt=\"Build Status\" />\n  </a>\n  <!-- npm ver -->\n  <a href=\"https://badge.fury.io/js/react-amp-template\"><img src=\"https://badge.fury.io/js/react-amp-template.svg\" alt=\"npm version\" height=\"18\"></a>\n  <!-- cover -->\n  <a href=\"https://codecov.io/gh/Ariel-Rodriguez/react-amp-template\"><img src=\"https://codecov.io/gh/Ariel-Rodriguez/react-amp-template/branch/master/graph/badge.svg\" /></a>\n</div>\n\n\nWrite AMP pages using React syntax right the way and style with your preferred style manager\n\n<dl>\n  <dt>:zap: AMP elements</dt>\n  <dd>Ready to render any <a href=\"https://ampbyexample.com/#components\">AMP component</a></dd>\n  <dt>:nail_care: Modular CSS</dt>\n  <dd>Style with the power of <a href=\"https://github.com/styled-components/styled-components\">Styled Components</a> or <a href=\"https://github.com/Khan/aphrodite\">Aphrodite</a> or Your Own custom StyleManager!</dd>\n</dl>\n\n\n\n\n## Contents\n\n- [Usage](#usage)\n- [Demo](#demo)\n- [API](#api)\n- [Configuration](#configuration)\n- [Contribute](#contributing)\n\n\n## Usage\n\n### Install\n\n- `npm i react-amp-template`\n\n### Static Render\n\n```javascript\nimport React, { Fragment } from 'react'\nimport styled from 'styled-components'\nimport { renderToString, AMP } from 'react-amp-template'\n\nconst { Title, Link, Carousel } = AMP\n\nconst Body = styled.body`\n  margin: 0 1rem;\n`\n\nconst App = ({ title }) => (\n  <Fragment>\n    <Title>{title}</Title>\n    <Link rel=\"canonical\" href=\"http://localhost\" />\n    <Body>\n      <h1>Hello World</h1>\n      <Carousel lightbox width=\"400\" height=\"300\" layout=\"responsive\" type=\"slides\">\n        <amp-img src=\"/img/image1.jpg\" width=\"400\" height=\"300\" layout=\"responsive\"></amp-img>\n        <amp-img src=\"/img/image2.jpg\" width=\"400\" height=\"300\" layout=\"responsive\"></amp-img>\n        <amp-img src=\"/img/image3.jpg\" width=\"400\" height=\"300\" layout=\"responsive\"></amp-img>\n      </Carousel>\n    </Body>\n  </Fragment>\n)\n\nexport default props => renderToString(<App title=\"AMP demo\" />)\n```\n\n\n## Demo\n[See complete example here](https://github.com/Ariel-Rodriguez/react-amp-template/tree/master/examples/simple-server)\n\n\n## API\n\n### renderToString\n\n```javascript\n/**\n * Transform React component into HTML AMP format.\n *\n * @returns {String} html\n * @param {Class|Object} body React component to render\n * @param {Object} options Settings\n * @property {string} options.cdnURI absolute URL to AMP CDN\n * @property {string} options.boilerplate HTML string which contains AMP boilerplate styles\n * @property {object} options.extensions Key map of references to specify an extension version\n * @property {object} options.extensions.default default version for all amp-extensions e.g '0.1'\n * @property {object} options.extensions.extension [extension-name]\n ** specify custom version for derived extension e.g: 'amp-sticky-ad': '1.0'\nimport { renderToString } from 'react-amp-template'\n```\n\n#### AMP components\n\n```javascript\nimport { AMP } from 'react-amp-template'\n\nconst AdUnit = () => <AMP.AdUnit />\n```\n- RAMPT provides shorthands for amp-custom-elements. A \\[ get \\] operation on { AMP } module returns Node element and automatically registers the `<script />` tag required by AMP.\n\n- The following components could be used in case of need to ad elements into `<head>` element\n\n```javascript\n  <Link /> <Meta /> <Title /> <Script /> <Tag _name=\"custom-tag\" />\n```\n\n- By default every amp-script address to version 0.1. However it can be customized.\n\n```javascript\nrenderToString(<App />, {\n  extensions: {\n   default: 0.2,\n   'amp-sticky-unit': 1.0,\n  }\n})\n```\n\n#### LD+JSON\n\n```javascript\n<AMP.Script\n  type=\"application/ld+json\"\n  dangerouslySetInnerHTML={{ __html: JSON.stringify(json) }}\n/>\n```\n\n\n## Configuration\n\n### Babel\n- Setup the environment as recomends React and Styled-Components server rendering.\n\n#### React | Styled Components\n\n`npm i -D babel-plugin-styled-components babel-preset-react`\n\n```json\n{\n  \"presets\": [\n    \"stage-0\",\n    \"react\"\n  ],\n  \"plugins\": [\n    [\"babel-plugin-styled-components\", { \"ssr\": true }]\n  ]\n}\n```\n\n\n## Contributing\n\n- Fork the repository\n- `npm install`\n- `npm run dev`\n- Create pull request\n\n### Build examples\n\n- `cd examples/simple-server`\n- `npm install && npm start`\n\n## License\n\nThis project is licensed under the Apache License, Version 2.0. Copyright (c) 2016 Ariel Fernando Rodriguez. For more information see `LICENSE.md`.\n","readmeFilename":"README.md","gitHead":"fe2ff7fe954f966492d0655391c6af95f29a76d6","bugs":{"url":"https://github.com/Ariel-Rodriguez/react-amp-template/issues"},"homepage":"https://github.com/Ariel-Rodriguez/react-amp-template#readme","_id":"react-amp-template@4.1.0-rc.1","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"arielfdr","email":"ariel.fdr@gmail.com"},"dist":{"integrity":"sha512-1khxQVUCH+99S2NtqUT1dW1MFfM/S8SKF9kh5GzXReF1Kynagzp5QGEoDZI33sgjzepRJSckwjogpqdZwS9iSg==","shasum":"9ebfb06eb0ebb21c156c78642e0d17143cb22127","tarball":"https://registry.npmjs.org/react-amp-template/-/react-amp-template-4.1.0-rc.1.tgz","fileCount":25,"unpackedSize":40742,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcMKA4CRA9TVsSAnZWagAApdsP/1LUSdztuY4q3TQE1t48\n8NtbenB7OClihQgnLWQGrmv45suu0dNSaPrFhR9G4r0bUDf7J4CRIyOw6bYT\ny6ECP1FVQ+jMBq+b2z/ngiJn2vSMpwM2jhyjyxqaxB3jI9iTSJrrhaIR4gFB\nQf+xft47MJ9Lpph7u5xARZwLWYq/avcYa0iRsxmLXYrZjZTbnOSyvkpqBBJy\nWBqIUWGhPyLNeSdxd62eiiJhg3+Z/qoUVDBUL82BkDktfo6mucueprM/6xW8\ntgbRl6chG5QZBV0+5jUbd5tvWwvkdkZPl+0xuH/k7+6OUaYHyGnuIE4lwVzN\n06CJpi1WMA80BCI3SgGySfIEqnv3+z5aZM4H3he+mSLFbbzBMRiSbx9jRsD4\nE9rVRuRJg2wecr/n8Yn5hVwEl0QmxUghQQzzzmiVfL9Hp7lkjCyDlF4kR9Ix\nvp/dDyyH2onXbLQF3JdV9Y+RYp0EVILiWfXVjqR6pTGHdyLSau0U+Irspcvu\nn9wWAqvkeKXc2L2ksQyyucnzl8bTd0SKqfjQ5vSJb0Jqh7b7o0i7eQqwJSrC\nYmyNb0rRMzBkIMfeJ8iJWxtuh/Zuk3VzwLlQL2YJznOtnZ/eMN5qGq+7Y6Cy\n6tj07JgEgXXkIxx2cPWu4Lzlox7qSquvQSUoqpRjROOxTk4AJwfW8nN1s4T1\nDoaF\r\n=+He0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIArILLjSr7ZMrCqRoRoRf+cS80hgGb8tPgSUSiULsNGfAiEApRumC4iTkNy417sS1wdhnDwE4BsGXOTVo5RLWMLH4/8="}]},"maintainers":[{"email":"lex.2418@gmail.com","name":"alexrqs"},{"email":"ariel.fdr@gmail.com","name":"arielfdr"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-amp-template_4.1.0-rc.1_1546690616307_0.521615378588351"},"_hasShrinkwrap":false},"4.0.4":{"name":"react-amp-template","version":"4.0.4","description":"AMP react server rendering.","keywords":["preact","react","amp","server-rendering","react-amp","amp-react","template","aphrodite","styledcomponent"],"main":"lib/index.js","repository":{"type":"git","url":"git+https://github.com/Ariel-Rodriguez/react-amp-template.git"},"scripts":{"build":"rimraf lib && babel src -d lib -s","dev":"nodemon --watch ./src  --ext js,jsx --exec 'npm run prepare && npm run build && npm run test'","prepare":"npm test","prepublishOnly":"NODE_ENV=production && npm run build && echo build using $NODE_ENV env","test":"npm run -s lint && BABEL_ENV=test nyc ava","test:watch":"npm test --  --watch","lint":"eslint --fix --ext .jsx --ext .js src/.","report-coverage":"nyc report --reporter=text-lcov > coverage.lcov && codecov -t $CODECOV_TOKEN"},"author":{"name":"Ariel Fernando Rodriguez"},"license":"Apache-2.0","ava":{"require":["babel-register"],"babel":"inherit"},"babel":{"extends":"./config/.babelrc"},"eslintConfig":{"extends":"./config/.eslintrc.json"},"engines":{"node":">=8.0.0","yarn":">=1.5.0"},"dependencies":{"pretty":"^2.0.0","prop-types":"^15.6.2","react":"^16.6.0","react-dom":"^16.6.0","styled-components":"^3.4.10"},"devDependencies":{"ava":"^0.25.0","babel-cli":"^6.26.0","babel-core":"^6.26.3","babel-eslint":"^8.2.6","babel-plugin-istanbul":"^5.1.0","babel-plugin-styled-components":"^1.8.0","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.7.0","babel-preset-react":"^6.24.1","babel-runtime":"^6.26.0","debug":"^4.1.1","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-config-airbnb-base":"^12.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.2","eslint-plugin-react":"^7.11.1","mkdirp":"^0.5.1","nyc":"^11.9.0","react-test-renderer":"^16.6.0","rimraf":"^2.6.2"},"gitHead":"ce36fde5d3d4bc51cff7d2fb18a399af9d09559c","bugs":{"url":"https://github.com/Ariel-Rodriguez/react-amp-template/issues"},"homepage":"https://github.com/Ariel-Rodriguez/react-amp-template#readme","_id":"react-amp-template@4.0.4","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"arielfdr","email":"ariel.fdr@gmail.com"},"dist":{"integrity":"sha512-hFYGa9pkm2G1f+t/5VcbJ0SBII0hu6iHTFMsEKnYICBl2u6OKfpRjeY1zxBy1A5nYl7X5UVTF2PGWZwpwVOzVg==","shasum":"852add548081352c8369c7e9009f67e2f51055f4","tarball":"https://registry.npmjs.org/react-amp-template/-/react-amp-template-4.0.4.tgz","fileCount":25,"unpackedSize":40476,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcMKHCCRA9TVsSAnZWagAAeRcP/15uP4xENSo9K66iyWYP\n8zgcGK2/akdwGt3i/wlolt+jlzwQTFPMJ8MJwWeikqRP6qlCr3nybwLSnuRA\nI9Lw4VbQHiM0O8OkeztjogsenRwCE1a3u6qwh2i1Gh1uX0UkH1mEBbLE4qSC\nC0cgCwHbVrIZ42nAbAWV9cMKPcyePvMRK8n21IWkS8evzk9g+HgS+bsLVFHD\nvpfRizqi3qQ3PPXCSIpm/unj9fqrGz7uozGlNvkf0PXVX6uharTEuNP/zPkC\nThqVhq9NneIFnESq9rnVHXyPDOBQDAz4HSxQ+41PuxTHSLUIIvgzYuP5vndx\n7Bs0sZN+iaNi+udsegkfCJkjaA0uH3XnioIqX0eQGqfFDmBkPjJsh6vqz1Gb\ns4rUVY55JLwZR9paKWEBjCDSUftfooMxudEAchtaRZRIMHIPNMJ8qzKCP0Mh\n4TSU0n4LqFWF3ipgiAsI6S8wkfl0CZDmPV0/ccz3/wsPeLlthu0Ls+d+lyrh\nZczPd6HbRBRWKSi1dHHflxF1w2IabLfwFCYTtuEquVgpxfc/n3CCGQIKKALP\nbzefwxmlSICh9zAtw5kxgfhwLcNN7muDSo6YRWWQujgub5N7fkkOvcIasZcn\nWtt4slgea9yfZRyJwVqxMw5W+RQfHlR7+kgABqWuJFFLhQwxme/qqTvZwn2D\nt3H9\r\n=l01F\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDg4NSc6s0giYYpAccu3/CqZL59AN85tyDmqyCNY6elmAIgAgZ/5iGDa0+CsU97acNmGAC4ua+H3uL/ygnqpJzx3Fo="}]},"maintainers":[{"email":"lex.2418@gmail.com","name":"alexrqs"},{"email":"ariel.fdr@gmail.com","name":"arielfdr"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-amp-template_4.0.4_1546691009717_0.12381676668151931"},"_hasShrinkwrap":false},"4.1.0":{"name":"react-amp-template","version":"4.1.0","description":"AMP react server rendering.","keywords":["preact","react","amp","server-rendering","react-amp","amp-react","template","aphrodite","styledcomponent"],"main":"lib/index.js","repository":{"type":"git","url":"git+https://github.com/Ariel-Rodriguez/react-amp-template.git"},"scripts":{"build":"rimraf lib && babel src -d lib -s","dev":"nodemon --watch ./src  --ext js,jsx --exec 'npm run prepare && npm run build && npm run test'","prepare":"npm test","prepublishOnly":"NODE_ENV=production && npm run build && echo build using $NODE_ENV env","test":"npm run -s lint && BABEL_ENV=test nyc ava","test:watch":"npm test --  --watch","lint":"eslint --fix --ext .jsx --ext .js src/.","report-coverage":"nyc report --reporter=text-lcov > coverage.lcov && codecov -t $CODECOV_TOKEN"},"author":{"name":"Ariel Fernando Rodriguez"},"license":"Apache-2.0","ava":{"require":["babel-register"],"babel":"inherit"},"babel":{"extends":"./config/.babelrc"},"eslintConfig":{"extends":"./config/.eslintrc.json"},"engines":{"node":">=8.0.0","yarn":">=1.5.0"},"dependencies":{"pretty":"^2.0.0","prop-types":"^15.6.2","react":"^16.6.0","react-dom":"^16.6.0","styled-components":"^3.4.10"},"devDependencies":{"ava":"^0.25.0","babel-cli":"^6.26.0","babel-core":"^6.26.3","babel-eslint":"^8.2.6","babel-plugin-istanbul":"^5.1.0","babel-plugin-styled-components":"^1.8.0","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.7.0","babel-preset-react":"^6.24.1","babel-runtime":"^6.26.0","debug":"^4.1.1","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-config-airbnb-base":"^12.1.0","eslint-plugin-import":"^2.14.0","eslint-plugin-jsx-a11y":"^6.1.2","eslint-plugin-react":"^7.11.1","mkdirp":"^0.5.1","nyc":"^11.9.0","react-test-renderer":"^16.6.0","rimraf":"^2.6.2"},"gitHead":"cb3fba4e2dd274383dc4f5dcf89ed903c71df3bc","bugs":{"url":"https://github.com/Ariel-Rodriguez/react-amp-template/issues"},"homepage":"https://github.com/Ariel-Rodriguez/react-amp-template#readme","_id":"react-amp-template@4.1.0","_nodeVersion":"12.8.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-YHTWby6dkjvaYMxT3Rd9ZkwmjC7UOqu7S3p5NdQkQ7/yZPXEEjjebPhPalVHJEPEJtELbPHbHXLHhfrTgYzWDw==","shasum":"d94a4ca3eaeb11612cdd4cc20d9af5f42c63d89b","tarball":"https://registry.npmjs.org/react-amp-template/-/react-amp-template-4.1.0.tgz","fileCount":25,"unpackedSize":41205,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdXbl8CRA9TVsSAnZWagAAqDgP/RJJZFWEhSsCMwcNwhPc\nBwNKZlWtEa1u8tmbP8mc+Y/GAgY4RjheNU70vyOE3oKitDfsn24CDV372Bnu\nM6TZ23Nt6mH7EeAkSmMJfLpaU+DywNl62NLngRNdV0MhFFjA9yiNPYeRdI/r\nkWla5beWBD5Z2Lm2/fbJmHxqW9+V1iQgzVaqra/il/8DypUrF0y4nFO7Bcqo\n12fp1M7a0hKbMKpCVpy1aFG8F1Is3LmCCEr8LqtFfWuzA74RnNzzdztpI44+\nMLW5xJOw2A6UzL1XD06MoG2/JsRe6S0N+XaEOAC3xdJmWrV+Fm4oQPBTERgd\nKn+LJ7g1ozg095mY+BsNXYL60TeX3O9YjmQnLeNSB9ztvkSVIWssOHT/lPes\nnzA2fvlhKcLJNVgcQfRYBExyVDxlNQ6H9ppubdqsUH6qzrEWXw98MTwEE3ZS\nQYUCJ3DFwlzFkpSVLQ/o3gafzjngPSLme1DaEJQ9wkK9dZE1u7nijqD57Zph\njIZoWeXIgnYKAqoFqvyfytphnGIqiT4wzhuxaQCwGSEE7B13CbCw9z7sDoVt\nfHfoEHQNx3JUqAMK2NqziUeAToyAb3QF6LW5qep6g/SRM8GTUfol1XsyaBig\n877ITFOeBTvuKRA351mwfe9MJjb62C/oSdhsbwhwdf323ulZt843bvTEDJxy\n611I\r\n=calG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAUOicX0BJZTIG9gAhrcqLZzp3JnGvLJZXWDCd4wEY4FAiBSuhsHXEgGoPjHWV0YLt7EBENdbASEyXbtR06SY9sLgQ=="}]},"maintainers":[{"email":"lex.2418@gmail.com","name":"alexrqs"},{"email":"ariel.fdr@gmail.com","name":"arielfdr"}],"_npmUser":{"name":"arielfdr","email":"ariel.fdr@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-amp-template_4.1.0_1566423419449_0.7010574407706778"},"_hasShrinkwrap":false}},"readme":"<div align=\"center\">\n  <h1><strong>RAMPT v4</strong></h1>\n  <div align=\"center\"><p>AMP components aliases and shims for React SSR 16+ & styled-components v3</p></div>\n</div>\n\n<br />\n\n<div align=\"center\">\n  <!-- maintainability -->\n  <a href=\"https://codeclimate.com/github/Ariel-Rodriguez/react-amp-template/maintainability\"><img src=\"https://api.codeclimate.com/v1/badges/ff07a1f7148b05304caf/maintainability\" /></a>\n  <!-- Build Status -->\n  <a href=\"https://travis-ci.org/Ariel-Rodriguez/react-amp-template\">\n    <img src=\"https://travis-ci.org/Ariel-Rodriguez/react-amp-template.svg?branch=master\" alt=\"Build Status\" />\n  </a>\n  <!-- npm ver -->\n  <a href=\"https://badge.fury.io/js/react-amp-template\"><img src=\"https://badge.fury.io/js/react-amp-template.svg\" alt=\"npm version\" height=\"18\"></a>\n  <!-- cover -->\n  <a href=\"https://codecov.io/gh/Ariel-Rodriguez/react-amp-template\"><img src=\"https://codecov.io/gh/Ariel-Rodriguez/react-amp-template/branch/master/graph/badge.svg\" /></a>\n</div>\n\n\nWrite AMP pages using React syntaxt right the way and style with your preferred style manager\n\n<dl>\n  <dt>:zap: AMP elements</dt>\n  <dd>Ready to render any <a href=\"https://amp.dev/documentation/components/\">AMP component</a></dd>\n  <dt>:nail_care: Modular CSS</dt>\n  <dd>Style with the power of <a href=\"https://github.com/styled-components/styled-components\">Styled Components</a> or <a href=\"https://github.com/Khan/aphrodite\">Aphrodite</a> or Your Own custom StyleManager!</dd>\n</dl>\n\n\n\n\n## Contents\n\n- [Usage](#usage)\n- [Demo](#demo)\n- [API](#api)\n- [Configuration](#configuration)\n- [Contribute](#contributing)\n\n\n## Usage\n\n### Install\n\n- `npm i react-amp-template`\n\n### Static Render\n\n```javascript\nimport React, { Fragment } from 'react'\nimport styled from 'styled-components'\nimport { renderToString, AMP } from 'react-amp-template'\n\nconst { Title, Link, Carousel } = AMP\n\nconst Body = styled.body`\n  margin: 0 1rem;\n`\n\nconst App = ({ title }) => (\n  <Fragment>\n    <Title>{title}</Title>\n    <Link rel=\"canonical\" href=\"http://localhost\" />\n    <Body>\n      <h1>Hello World</h1>\n      <Carousel lightbox width=\"400\" height=\"300\" layout=\"responsive\" type=\"slides\">\n        <amp-img src=\"/img/image1.jpg\" width=\"400\" height=\"300\" layout=\"responsive\"></amp-img>\n        <amp-img src=\"/img/image2.jpg\" width=\"400\" height=\"300\" layout=\"responsive\"></amp-img>\n        <amp-img src=\"/img/image3.jpg\" width=\"400\" height=\"300\" layout=\"responsive\"></amp-img>\n      </Carousel>\n    </Body>\n  </Fragment>\n)\n\nexport default props => renderToString(<App title=\"AMP demo\" />)\n```\n\n\n## Demo\n[See complete example here](https://github.com/Ariel-Rodriguez/react-amp-template/tree/master/examples/simple-server)\n\n\n## API\n\n### renderToString\n\n```javascript\n/**\n * Transform React component into HTML AMP format.\n *\n * @returns {String} html\n * @param {Class|Object} body React component to render\n * @param {Object} options Settings\n * @property {string} options.cdnURI absolute URL to AMP CDN\n * @property {string} options.boilerplate HTML string which contains AMP boilerplate styles\n * @property {object} options.extensions Key map of references to specify an extension version\n * @property {object} options.extensions.default default version for all amp-extensions e.g '0.1'\n * @property {object} options.extensions.extension [extension-name]\n ** specify custom version for derived extension e.g: 'amp-sticky-ad': '1.0'\nimport { renderToString } from 'react-amp-template'\n```\n\n#### AMP components\n\n```javascript\nimport { AMP } from 'react-amp-template'\n\nconst AdUnit = () => <AMP.AdUnit />\n```\n- RAMPT provides shorthands for amp-custom-elements. A \\[ get \\] operation on { AMP } module returns Node element and automatically registers the `<script />` tag required by AMP.\n\n- The following components could be used in case of need to ad elements into `<head>` element\n\n```javascript\n  <Link /> <Meta /> <Title /> <Script /> <Tag _name=\"custom-tag\" />\n```\n\n- By default every amp-script address to version 0.1. However it can be customized.\n\n```javascript\nrenderToString(<App />, {\n  extensions: {\n   default: 0.2,\n   'amp-sticky-unit': 1.0,\n  }\n})\n```\n\n#### LD+JSON\n\n```javascript\n<AMP.Script\n  type=\"application/ld+json\"\n  dangerouslySetInnerHTML={{ __html: JSON.stringify(json) }}\n/>\n```\n\n\n## Configuration\n\n### Babel\n- Setup the environment as recomends React and Styled-Components server rendering.\n\n#### React | Styled Components\n\n`npm i -D babel-plugin-styled-components babel-preset-react`\n\n```json\n{\n  \"presets\": [\n    \"stage-0\",\n    \"react\"\n  ],\n  \"plugins\": [\n    [\"babel-plugin-styled-components\", { \"ssr\": true }]\n  ]\n}\n```\n\n\n## Contributing\n\n- Fork the repository\n- `npm install`\n- `npm run dev`\n- Create pull request\n\n### Build examples\n\n- `cd examples/simple-server`\n- `npm install && npm start`\n\n## License\n\nThis project is licensed under the Apache License, Version 2.0. Copyright (c) 2016 Ariel Fernando Rodriguez. For more information see `LICENSE.md`.\n","maintainers":[{"email":"lex.2418@gmail.com","name":"alexrqs"},{"email":"ariel.fdr@gmail.com","name":"arielfdr"}],"time":{"modified":"2022-06-25T15:58:21.064Z","created":"2016-11-25T20:12:20.303Z","1.0.0-alpha":"2016-11-25T20:12:20.303Z","1.0.0-beta":"2016-11-29T15:25:51.640Z","1.0.0":"2016-11-30T18:14:40.732Z","1.0.1":"2016-12-22T18:42:47.449Z","2.0.0":"2017-02-02T18:40:24.440Z","2.1.0":"2017-02-02T21:11:31.517Z","2.2.0":"2017-02-06T20:05:19.998Z","2.2.1":"2017-02-06T20:56:19.661Z","2.3.0":"2017-03-02T01:26:10.968Z","3.0.0-rc0":"2017-09-03T01:06:11.956Z","3.0.0":"2017-09-17T01:10:55.634Z","4.0.0-alpha.0":"2018-04-14T23:49:50.650Z","4.0.0-alpha.1":"2018-04-15T00:04:39.126Z","4.0.0-alpha.2":"2018-04-15T00:07:52.250Z","4.0.0-alpha.3":"2018-04-15T00:09:25.482Z","4.0.0-alpha.4":"2018-04-15T05:06:06.549Z","4.0.0-alpha.5":"2018-04-15T06:37:00.410Z","4.0.0":"2018-04-15T07:31:27.996Z","4.0.2":"2018-11-05T19:09:09.145Z","4.0.3":"2018-11-05T19:13:10.236Z","4.1.0-rc.0":"2018-11-05T21:34:28.790Z","4.1.0-rc.1":"2019-01-05T12:16:56.466Z","4.0.4":"2019-01-05T12:23:29.812Z","4.1.0":"2019-08-21T21:36:59.573Z"},"author":{"name":"Ariel Fernando Rodriguez"},"license":"Apache-2.0","readmeFilename":"README.md","keywords":["preact","react","amp","server-rendering","react-amp","amp-react","template","aphrodite","styledcomponent"],"users":{"nason":true},"homepage":"https://github.com/Ariel-Rodriguez/react-amp-template#readme","repository":{"type":"git","url":"git+https://github.com/Ariel-Rodriguez/react-amp-template.git"},"bugs":{"url":"https://github.com/Ariel-Rodriguez/react-amp-template/issues"}}