{"_id":"@dokknet/paywall-middleware","_rev":"2-b7c90e888ef479b0cf15906deaf3b0ee","name":"@dokknet/paywall-middleware","dist-tags":{"latest":"0.0.2"},"versions":{"0.0.1":{"name":"@dokknet/paywall-middleware","version":"0.0.1","description":"Dokknet Paywall Middleware","keywords":[],"main":"dist/paywall-middleware.umd.js","module":"dist/paywall-middleware.es5.js","typings":"dist/types/paywall-middleware.d.ts","author":{"name":"Agost Biro","email":"agost@dokknet.com"},"repository":{"type":"git","url":"git+https://github.com/dokknet/paywall-middleware.git"},"license":"MIT","engines":{"node":">=6.0.0"},"scripts":{"lint":"tslint  --project tsconfig.json -t codeFrame 'src/**/*.ts' 'test/**/*.ts'","prebuild":"rimraf dist","build":"tsc --module commonjs && rollup -c rollup.config.ts && typedoc --out docs --target es6 --theme minimal --mode file src","start":"rollup -c rollup.config.ts -w","test":"jest --coverage","test:watch":"jest --coverage --watch","test:prod":"npm run lint && npm run test -- --no-cache","deploy-docs":"ts-node tools/gh-pages-publish","report-coverage":"cat ./coverage/lcov.info | coveralls"},"lint-staged":{"{src,test}/**/*.ts":["prettier --write","git add"]},"jest":{"testEnvironment":"node","testRegex":"(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js","json","node"],"coveragePathIgnorePatterns":["/node_modules/","/test/"],"coverageThreshold":{"global":{"branches":100,"functions":100,"lines":100,"statements":100}},"collectCoverageFrom":["src/*.{js,ts}"],"setupFiles":["<rootDir>/test/setup-jest.ts"],"preset":"ts-jest","globals":{"ts-jest":{"diagnostics":true}}},"prettier":{"semi":false,"trailingComma":"es5","singleQuote":true},"commitlint":{"extends":["@commitlint/config-conventional"]},"devDependencies":{"@babel/core":"^7.8.3","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/preset-env":"^7.8.3","@types/jest":"^24.9.0","@types/mime-types":"^2.1.0","@types/node":"^13.1.8","coveralls":"^3.0.2","isomorphic-fetch":"^2.2.1","jest":"^25.1.0","jest-config":"^25.1.0","lodash.camelcase":"^4.3.0","prettier":"^1.14.3","rimraf":"^3.0.0","rollup":"^1.29.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-sourcemaps":"^0.5.0","rollup-plugin-typescript2":"^0.25.3","ts-jest":"^24.3.0","ts-node":"^8.6.2","tslint":"^6.0.0","tslint-config-prettier":"^1.15.0","tslint-config-standard":"^9.0.0","typedoc":"^0.16.8","typescript":"^3.7.5"},"resolutions":{"handlebars":"4.5.0"},"optionalDependencies":{"@cloudflare/kv-asset-handler":"^0.0.7","@cloudflare/workers-types":"^1.0.6"},"dependencies":{"mime-types":"^2.1.26","@cloudflare/kv-asset-handler":"^0.0.7","@cloudflare/workers-types":"^1.0.6"},"_resolved":"","_integrity":"","_from":"file:dokknet-paywall-middleware-v0.0.1.tgz","bugs":{"url":"https://github.com/dokknet/paywall-middleware/issues"},"homepage":"https://github.com/dokknet/paywall-middleware#readme","_id":"@dokknet/paywall-middleware@0.0.1","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-km8ysdGYitZYqFanlvTCn1CaDid2BkM9/OCfucusFnF5pblsf0B8c5ORHMuHhIOgPRAZBJw5pThOhDjWU5CpSA==","shasum":"ad9565087e2056082e4f9ca09770de6cfd8451f5","tarball":"https://registry.npmjs.org/@dokknet/paywall-middleware/-/paywall-middleware-0.0.1.tgz","fileCount":17,"unpackedSize":437102,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeLzRUCRA9TVsSAnZWagAAEZwQAJuRcrLgVPe/jSGPyqs9\nObzsTG8mYkU3bAvoejoC0CaBsh4floqH3Zu86ILxkmuAIBVoSsP1Kkj52XkZ\ndXwXl7oqcDDhaGfoyUHKObiJLRZpY2caiolk1Ma+rFyni3F7x1mo4S+miKcn\n+SPW04sXxgrzNBThmyMGYvs1c1iQlosgAPajWDa5OFVFjk1jeWbXViK1znKp\nleTde+VOTVtoTDgOEAR6C9vsBW/9TV0lt5y0cRKy2FmzvtrJP/8gSKvs9uRZ\nrAhGLArZgZlVW/YBQleLGGYoqA8P3V6B/KLiEyYJ7XfbQ5XBnWLt7OBgsJd3\nWGYbS4e9vM+MrLl5JPLfyoMKMNo+RSqL1iEt7k4wufvtkuCcLoo+xpqX3ErA\n4vU+mD48mKq2L7/2MKtmHo2GUHP+0nS0FogZlvRBuq1BIHPWn32OwsHf7sQC\nLAO64jgbZoMwnP7I/fTQtbszli15URMrA7JQJ9FQOPlImnXrZWZcQ+QlEkt3\nHkBdmIyWcKXS8hxXKUagHHq/cjNz21LJSNyK2JRp3Iu7NpQk34uAOcx2ZDD7\nhHXSMyYAFxqBpUZcPMFnUEG6hy26F//2zbiIbMFVFIf8HHrsegGCziFTAv/7\nxFOQ79bC0gw2VPW3wbRI402JcRDPncV+L6ym/Sk9a4ZHMX5kB4KDUv8kkbcK\nt69u\r\n=Iwro\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCp+t0ZnPl6kIbT8VzD7JUlqx1ZuIqJ88OTNJq06xvqTgIhAPSvoUws3YAsGqZRwPr/yDE6duHHIkLshUfB3D2wrrnj"}]},"maintainers":[{"name":"abiro","email":"agost@dokknet.com"}],"_npmUser":{"name":"abiro","email":"agost@dokknet.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/paywall-middleware_0.0.1_1580151892083_0.25238414452859415"},"_hasShrinkwrap":false},"0.0.2":{"name":"@dokknet/paywall-middleware","version":"0.0.2","description":"Dokknet Paywall Middleware","keywords":[],"main":"dist/paywall-middleware.umd.js","module":"dist/paywall-middleware.es5.js","typings":"dist/types/paywall-middleware.d.ts","author":{"name":"Agost Biro","email":"agost@dokknet.com"},"repository":{"type":"git","url":"git+https://github.com/dokknet/paywall-middleware.git"},"license":"MIT","engines":{"node":">=6.0.0"},"scripts":{"lint":"tslint  --project tsconfig.json -t codeFrame 'src/**/*.ts' 'test/**/*.ts'","prebuild":"rimraf dist","build":"tsc --module commonjs && rollup -c rollup.config.ts && typedoc --out docs --target es6 --theme minimal --mode file src","start":"rollup -c rollup.config.ts -w","test":"jest --coverage","test:watch":"jest --coverage --watch","test:prod":"npm run lint && npm run test -- --no-cache","deploy-docs":"ts-node tools/gh-pages-publish","report-coverage":"cat ./coverage/lcov.info | coveralls"},"lint-staged":{"{src,test}/**/*.ts":["prettier --write","git add"]},"jest":{"testEnvironment":"node","testRegex":"(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js","json","node"],"coveragePathIgnorePatterns":["/node_modules/","/test/"],"coverageThreshold":{"global":{"branches":100,"functions":100,"lines":100,"statements":100}},"collectCoverageFrom":["src/*.{js,ts}"],"setupFiles":["<rootDir>/test/setup-jest.ts"],"preset":"ts-jest","globals":{"ts-jest":{"diagnostics":true}}},"prettier":{"semi":false,"trailingComma":"es5","singleQuote":true},"commitlint":{"extends":["@commitlint/config-conventional"]},"devDependencies":{"@babel/core":"^7.8.3","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/preset-env":"^7.8.3","@types/jest":"^24.9.0","@types/mime-types":"^2.1.0","@types/node":"^13.1.8","coveralls":"^3.0.2","isomorphic-fetch":"^2.2.1","jest":"^25.1.0","jest-config":"^25.1.0","lodash.camelcase":"^4.3.0","prettier":"^1.14.3","rimraf":"^3.0.0","rollup":"^1.29.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-sourcemaps":"^0.5.0","rollup-plugin-typescript2":"^0.25.3","ts-jest":"^24.3.0","ts-node":"^8.6.2","tslint":"^6.0.0","tslint-config-prettier":"^1.15.0","tslint-config-standard":"^9.0.0","typedoc":"^0.16.8","typescript":"^3.7.5"},"resolutions":{"handlebars":"4.5.0"},"optionalDependencies":{"@cloudflare/kv-asset-handler":"^0.0.7","@cloudflare/workers-types":"^1.0.6"},"dependencies":{"mime-types":"^2.1.26","@cloudflare/kv-asset-handler":"^0.0.7","@cloudflare/workers-types":"^1.0.6"},"_resolved":"","_integrity":"","_from":"file:dokknet-paywall-middleware-v0.0.2.tgz","bugs":{"url":"https://github.com/dokknet/paywall-middleware/issues"},"homepage":"https://github.com/dokknet/paywall-middleware#readme","_id":"@dokknet/paywall-middleware@0.0.2","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-NZTTwxHzhiOMDH9oSlSsNcZwW/tI0pSYIC9GqAxzgtTN0yAZD0fO92HNzALk1KGE4BfwnMAGa/ByRbp1xvOcPw==","shasum":"66f051f500e25ca611d9401462507f90dbc5f177","tarball":"https://registry.npmjs.org/@dokknet/paywall-middleware/-/paywall-middleware-0.0.2.tgz","fileCount":17,"unpackedSize":423413,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeLzZoCRA9TVsSAnZWagAAbiwP/2gU1RWcg3PDs2NvTTMN\neoR28Ka8DjcIqpM72gcDZIlroy0krvxkrjYwd//aBxXQXnWYAMEzGuQMPq+p\nDT+kDM75/RL1J+ySZqnTi7OUmEqkr0XxWMOSerlxoFN/0yIrWa07oWxfSKQZ\nTFMjUruo5aHEXu9Fgpbe6kDqUqUs7lfokUjGhn4edfR5ewbJKUcpl8NknhRS\nHaC0b6h959KHFYi5AWpDbXJiqjEGsNd+2qnhvMXGeY7YLVxr7Qc6u1wqyAOi\nibFde3aLDqbOuhEkx3XJPKXn0Gwywwg7SzJJ9FmnHTYh3j+iXQpMuK5sZzQp\nNXlSXCHrEtCComRQwnemhUIkLBBl9jrtJGxTqsCdR63vVZw0h3c3HdiE7lUN\nSs2EsCKw5JtpHFL1meavApWS0FpOY82hzL+rp8G/85aEtFIspwIpVkHlRMqf\nX/PSpE+3pmgbXXazlZIeNfLAchkL+N1NDJXvRtM6aYDbpMtyWATGlobpyA0t\n/M94SU35pQszZwtNgxZQx+dl27mGemHcMghgRtK3DlsBeNhB1SSgYlw+MrGO\nqMQAw5PkCKkOKR0r1c9ZzrNLVf7Mh+CLKvLcZo65gIcwh1EyVVjUX6Pu+tM1\nXIkcxEey8c+4dmqAf1M3wfg4P1IdynYvLCnNPszTrKGp2L825swctVfZEn4l\nZf6g\r\n=ReoQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAgjL8MT7BO6zZOt2QVp7+DYRGJIQ9meOsSsFRDisjhOAiAcy9FzPZg+dV7UvdtpNP9Mp9WlNWCSyZUM4oS73TQcCQ=="}]},"maintainers":[{"name":"abiro","email":"agost@dokknet.com"}],"_npmUser":{"name":"abiro","email":"agost@dokknet.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/paywall-middleware_0.0.2_1580152424327_0.5180968852133891"},"_hasShrinkwrap":false}},"time":{"created":"2020-01-27T19:04:51.845Z","0.0.1":"2020-01-27T19:04:52.209Z","modified":"2022-04-05T05:07:35.620Z","0.0.2":"2020-01-27T19:13:44.424Z"},"maintainers":[{"name":"abiro","email":"agost@dokknet.com"}],"description":"Dokknet Paywall Middleware","homepage":"https://github.com/dokknet/paywall-middleware#readme","keywords":[],"repository":{"type":"git","url":"git+https://github.com/dokknet/paywall-middleware.git"},"author":{"name":"Agost Biro","email":"agost@dokknet.com"},"bugs":{"url":"https://github.com/dokknet/paywall-middleware/issues"},"license":"MIT","readme":"# Dokknet Paywall Middleware\n\nStatus: prototype wip\n\nThe paywall middleware authorizes access to walled content. It verifies access tokens from\ncookies, manages counter tokens and authorizes search spiders based on their IP.\n\nCurrently only Cloudflare Workers are supported.\n\n## Usage\n\nInstall with:\n\n`yarn install @dokknet/paywall-middleware`\n\nThen add this as your Cloudflare worker index.js:\n\n```javascript\nimport { cfWorker } from 'paywall-middleware'\n\nconst DEBUG = false\n\naddEventListener('fetch', event => {\n  try {\n    const res = cfWorker.handlePaywall(event).catch(handleError)\n    event.respondWith(res)\n  } catch (e) {\n    event.respondWith(handleError(e))\n  }\n})\n\nfunction handleError(e) {\n  if (DEBUG) {\n    new Response(e.message || e.toString(), { status: 500 })\n  } else {\n    return new Response('Internal Error', { status: 500 })\n  }\n}\n```\n\n## Development\n\nInstall dependencies with `yarn install`.\nRun unit tests with `yarn test`\n\nProject setup based on [TypeScript library starter](https://github.com/alexjoverm/typescript-library-starter) by [alexjoverm](https://github.com/alexjoverm).\n","readmeFilename":"README.md"}