{"_id":"@haensl/services","_rev":"33-d486cc5a66438eed97224bc4d4ac139d","name":"@haensl/services","dist-tags":{"latest":"1.5.3"},"versions":{"0.1.0":{"name":"@haensl/services","version":"0.1.0","keywords":["JavaScript","service","services","window"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@0.1.0","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"1f48f4e647928aa4bc504fa6c1416ba9e2270518","tarball":"https://registry.npmjs.org/@haensl/services/-/services-0.1.0.tgz","fileCount":9,"integrity":"sha512-bZ0EUBF/UoYmCanKM2DgPDkeyegMRkgOP39mX3PxeN/81sywdr82fCOJY+Vq4Z4J8fnFdXvMxiFj+jHvMGBXWQ==","signatures":[{"sig":"MEUCIQC43Ecz+rd9e+ceSnnl2gJp6W0/BTbJnD35f3XPz7tFzAIgA1RqayJ68jk6vJABIyl4V3/FGrkjSI/xuvLdL9xxa1A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6299,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe+gAnCRA9TVsSAnZWagAAsHcP/jmN2iRWizBRGMCAWm/q\niuFz8BmoQXWh/x/uqOdRwSPREMAeh34GUrmaB2E0AkjghNehM67n+EJKopX8\ngCF3JVIJO+K34fFUtObACgetQLdDBbc5o15uNS6igwC03XZ/ozLm7Mdr6VxK\noK2oviOHxPDHaeELwvSdcNRIvXM5sE0SfL/OgZpo/lvjgRGjTB9kFJIleJCO\nBYJWqWa0phgpJvPEOX2WaSENSpBKZFWHZ/RhHsLzV6+EWOuRfoLbsDj4oRZ4\nQSe0HZtAWQp+erTny6T2EEOaXlBAEUSATsFsXb6DvJAtBAneMpEf3xG9yWpR\n2B5agtzEHbOvbzZ22Q8zTRlYYyB78FXt+w0rVuO0MkJeKni6/gbt1OaNkdav\n+w2tS2cwN29iBqMlltRJ0NXm6glbsjxGFhivhSs5/dLA4flOd1de3+7Qavlo\nRnwe0MrVDxwUyOHJhvhskf5SD1Id8BfbdLEL6HteGi5sjjUwclD5FzOjhBa0\nEPuFYwmZDNcVqUbKW2Va1W4yKFerzixleLl+alfy4jF8pnh6QlrQX7NjOFjI\ndQ0tbMhD/N5GjhasHXa3/6Fg3vSUXKnJEoIOi07+g/iXHPw7OV4nPhHihqfB\nV93ek6WkYqOP5BxiU2riZJRrMElDKlMk/Gjq0REruUhBoUudwcth8I/vMCYn\nE1rf\r\n=iGVP\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jest-environment-jsdom-fifteen","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-push":"CI=true npm run lint && npm run test:ci","pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"deprecated":"this package has been moved","jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"6.14.5","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"12.18.1","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.1.0","husky":"^4.2.5","eslint":"^7.3.1","rimraf":"^3.0.2","rollup":"^2.18.1","babel-jest":"^26.1.0","jest-junit":"^11.0.1","@babel/core":"^7.10.3","babel-eslint":"^10.1.0","@babel/preset-env":"^7.10.3","@rollup/plugin-babel":"^5.0.4","jest-watch-typeahead":"^0.6.0","rollup-plugin-terser":"^6.1.0","@haensl/eslint-config":"^1.3.0","@rollup/plugin-commonjs":"^13.0.0","@rollup/plugin-node-resolve":"^8.1.0","jest-environment-jsdom-fifteen":"^1.0.2","rollup-plugin-peer-deps-external":"^2.2.2","@haensl/rollup-plugin-local-resolve":"^1.0.6"},"_npmOperationalInternal":{"tmp":"tmp/services_0.1.0_1593442343045_0.7963343254789248","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@haensl/services","version":"1.0.0","keywords":["JavaScript","service","services","window"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.0.0","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"ef2e4c6732d6a4e1ecaab6b5bad52a6a3e58c93a","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.0.0.tgz","fileCount":9,"integrity":"sha512-g2MA0Pvl896/ImMhB5EJ13/YE/LDNv7pic3fWWi1emrJhGBJ97Dmkf1tA78ejMiwhHnMPPTM3wG6MUJD7+chzw==","signatures":[{"sig":"MEUCIQD7RKi642DlNRp4w1TKzHnSkAcJqqcpbD4u38Z/ejN0TQIgFtMSjIVHEa+t2ox9CnUa41aiwxQ9hgXLfA28nfqy+so=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18956,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe+iSICRA9TVsSAnZWagAArd8QAJBZ1ZCNPW45QSz/VKD+\neSDsRJGbvD8PPLsCIrdiYgjDfAETxJuYIwoULRlMPVvTFBtUUkMhqrLy9fvh\nW0Q34BJvrxmWWh7j15i75nSWh3z4JA6qqPwkDYtMhTz7lmCdJhYaetwOZGCt\nC0K1fImY73DPEPUNxezZ/yoct9JdhsPG1rCCs3+8bP1A5TMSLlM/UZuphX7e\n9owHHMo+fYk2wcDvK5hr6+ESjXLeJYNoB96iMBNRlNk0FtTYoZRPW0JMHv6E\nB74Hcm4eMoGvjPJcBAeZWgMJo4PlMqGQHg6rjpAD2IOWEsuofneTl0ZdOXoS\nF1md6nMofamtF851dTH/OGejcRrjVdhI+aNt4RTah2dyf6bvKoEowxu95t2k\nzFEm8G4w9PPfQK3R2X/kVLDeA871Fj6ecnYjGLMx8FM0W0mudy5nWuqymVV0\njoGjcPV+mhuuZb4Dy1ZZ57sBa887DXzoGnRrOl/Fwp1Y7aJZUcshMFtnVKMR\nqrFCWnh94IkVRJAgS7bYk11mMQL4c0mqzBammFpLEMQJBWYJ4J9caO8SZRRB\n/MLC24hmx5CBTg45M1QIVTch7kduA80pFCz77H572NKwcWt2cVUmOL/FVcAX\no3+V1Zr/j2CJSBWN/0dmJItYrMbEeiz417fqEQnUDI3DWUtmNJtPyR8lM2Mk\nrVwB\r\n=BDDl\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jest-environment-jsdom-fifteen","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-push":"CI=true npm run lint && npm run test:ci","pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"deprecated":"this package has been moved","jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"6.14.5","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"12.18.1","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.1.0","husky":"^4.2.5","eslint":"^7.3.1","rimraf":"^3.0.2","rollup":"^2.18.1","babel-jest":"^26.1.0","jest-junit":"^11.0.1","@babel/core":"^7.10.3","babel-eslint":"^10.1.0","@babel/preset-env":"^7.10.3","@rollup/plugin-babel":"^5.0.4","jest-watch-typeahead":"^0.6.0","rollup-plugin-terser":"^6.1.0","@haensl/eslint-config":"^1.3.0","@rollup/plugin-commonjs":"^13.0.0","@rollup/plugin-node-resolve":"^8.1.0","jest-environment-jsdom-fifteen":"^1.0.2","rollup-plugin-peer-deps-external":"^2.2.2","@haensl/rollup-plugin-local-resolve":"^1.0.6"},"_npmOperationalInternal":{"tmp":"tmp/services_1.0.0_1593451656486_0.15563767073507773","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@haensl/services","version":"1.1.0","keywords":["JavaScript","service","services","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.1.0","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"49ca136788bb38a7a1cdfe4eb94b711bff64dda2","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.1.0.tgz","fileCount":9,"integrity":"sha512-AQRGmJm9GGc2eerZRysZdvlI/HSn1cMeJTxZmCp3I40Dnr1d3QZunsKI8UrhUeVIiJZPE7TbZ02/eCmrF162zw==","signatures":[{"sig":"MEYCIQDZJVzFAJgRTiBLAvGbpgw4emyfHMd7ssCYQluj20hxLQIhAKajhZq0c7gtb6Tm002gQqi+VtE7OGIrw2GOxcCSv2qk","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24326,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe+w/4CRA9TVsSAnZWagAAw5MP/RM1K0RAVRJjNckQVLR2\nWj1GjUyfTGtlupeADR1VJ4aOslBDfKClRYQJB5QIrFW0zBWPqyOjSPO8NhQy\n9DjsrLnJ5mTiWMRobzO99Vb2e995goIwFspgpVOMUetrpG1GgMTScj9wbjC4\nsSM+syY39iGpiHo2Xy8G1waXV3Tfh7i9IwANoszZ1eOMBHe0r4VLoSTxBhoj\nWRRJUJqIHKJL4j/y9t4dM0qFTtbA6R8frqTIT8JqG7fwXqr7Lx+/CDXr9n0A\npy63L5zjKtHgCunKkfa7XCx7Wf5DW8jGCzXcukV7eg+sPkZg+zwKr1dSD212\nBliMxho1UO6FFvKoYzYbGyJxbg7NEIXTw8itHHJaiAjZ6VCa/puKHp0HFEHS\ny3QW0lWkrqFBx44gC4twTWKNwLaJ6z2EteqoIGixgFO05hxJZMzdrRD+ruqc\nt9nGBVegR8lM6AevHGw3Z78UW7x72Q/7yijjdFi2w9PQS6C/UZq37NOvSXTT\nPn0rC0Rb5lRksoPtrSqjQ6dvttSADG57a4P9rHr+jM2LmlJq7Yiw9vlG9I4s\n3WiyUowaY3HHVGrm4SaLs3dLAgnxjsuM44hjYDLLotEFpjTK3W6PSz5DG+LU\nu+cyJnrHfJlGN8hkz9ChtMeF0nouTctxUG5NCWn1un8sHzgCgE0yFUKH+2/w\n35pZ\r\n=IUkZ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jest-environment-jsdom-fifteen","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-push":"CI=true npm run lint && npm run test:ci","pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"deprecated":"this package has been moved","jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"6.14.5","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"12.18.1","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.1.0","husky":"^4.2.5","eslint":"^7.3.1","rimraf":"^3.0.2","rollup":"^2.18.1","babel-jest":"^26.1.0","jest-junit":"^11.0.1","@babel/core":"^7.10.3","babel-eslint":"^10.1.0","@babel/preset-env":"^7.10.3","@rollup/plugin-babel":"^5.0.4","jest-watch-typeahead":"^0.6.0","rollup-plugin-terser":"^6.1.0","@haensl/eslint-config":"^1.3.0","@rollup/plugin-commonjs":"^13.0.0","@rollup/plugin-node-resolve":"^8.1.0","jest-environment-jsdom-fifteen":"^1.0.2","rollup-plugin-peer-deps-external":"^2.2.2","@haensl/rollup-plugin-local-resolve":"^1.0.6"},"_npmOperationalInternal":{"tmp":"tmp/services_1.1.0_1593511928366_0.5566839289905277","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@haensl/services","version":"1.2.0","keywords":["JavaScript","service","services","component","classname","class","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.2.0","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"5e7c579cde774425c4ca2910a820a4242579bc5d","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.2.0.tgz","fileCount":9,"integrity":"sha512-ydac+l6ZPgJ/huIVs94zM1EY5lkqL52kECIL+NkiMuBzUeAlIxsKWhYfi3AqIz0ohzyNo3SG4NU+J0XEXKNqkg==","signatures":[{"sig":"MEUCIEzFsG1woDne74/Rp+TqQfbqo9KCd22LY+zb9IYZsMxbAiEAtQ7NcRSwpzZCkCHhsPDXkDBSqxqiTlGS7GDEjxNQNBA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28502,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfAwIyCRA9TVsSAnZWagAAQtcP/jGUhfgi08L61o+bRq/6\nvDiLWhgPJPSYefysrkgo8nfP4TffFl4qDEy9EKV+YmPC6FGspIXVQu3m4UDQ\nXNR87VrEMJpbabgTx2Ajp0DbypbAw8LUYlMjrwCUshGSJsCR1WzL6fAGqMgB\ndiedzVh3zc7QulNqaxg9ojNTXksfqg8Nhn+2R5D4IyMMRnd80bkWVILGZaxX\nHjDC6LxnTstllYtcfA79szQEy6+9NT2wYMEWNto2qJCPA+2vGkpfxOMUOXVH\na2DSVzThEW5G9iKFQGn7pDZbhCo4IjVsK+uZpS1Cg3X1vEJNYCK9qZdi32W1\nuuF9S1/kaq5Igcp1oWbSh1chqW9RSxTEEiYpGRMHbfkKrrBKpifVSPgC0SfQ\n6+UuFWKYwBdtXMibWuYhvQJE8v6YGnKCmj+YTnRBYNc8H7c9UeWvCov/9IwD\ndDzbU49UM4/y4s6J3QSDxfKvV9aqcLS/w2Av53Esl1PBvZE6ercXD5kF97c5\nSDnCCkvPvRDxWiCMe9DnBzzcuQ/JVleqJfLPwJj/D0yDur9THiqjV9XtLU7I\nXSNJyQTlXLocWjRaYOEtOnz33KoxTm2+WzwE3UQOrA1V74pidcRYe6Ym+Ol5\nDbzEG9REWipyTymHR/sl6deDLFvAljg3R+XwKk9+Lsb40AJnDPtuAAahjzpS\nRyZL\r\n=eA+n\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jest-environment-jsdom-fifteen","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-push":"CI=true npm run lint && npm run test:ci","pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"deprecated":"this package has been moved","jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"6.14.5","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"12.18.2","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.1.0","husky":"^4.2.5","eslint":"^7.4.0","rimraf":"^3.0.2","rollup":"^2.19.0","babel-jest":"^26.1.0","jest-junit":"^11.0.1","@babel/core":"^7.10.4","babel-eslint":"^10.1.0","@babel/preset-env":"^7.10.4","@rollup/plugin-babel":"^5.0.4","jest-watch-typeahead":"^0.6.0","rollup-plugin-terser":"^6.1.0","@haensl/eslint-config":"^1.3.0","@rollup/plugin-commonjs":"^13.0.0","@rollup/plugin-node-resolve":"^8.1.0","jest-environment-jsdom-fifteen":"^1.0.2","rollup-plugin-peer-deps-external":"^2.2.3","@haensl/rollup-plugin-local-resolve":"^1.0.6"},"_npmOperationalInternal":{"tmp":"tmp/services_1.2.0_1594032690049_0.6638632897303363","host":"s3://npm-registry-packages"}},"1.2.1":{"name":"@haensl/services","version":"1.2.1","keywords":["JavaScript","service","services","component","classname","class","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.2.1","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"85bc99086ee6743c22d7cb3c3aec92562cd66929","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.2.1.tgz","fileCount":9,"integrity":"sha512-Nyfg8UOtoxhpPm49EZYRxjK5RPZYP3mt16NH751NPWiXkq/ZPRyUmOks1de/WAXo0zSfpuZPUJDzVMBQDfDIrA==","signatures":[{"sig":"MEUCIGkXTPEckKkFHLwRr0toEtLnAdkg5X8kInZ8Y/hjGwIXAiEAynQRykKAHuI9uTzuU0N26yETqAPqf4Ns3ANc70+ySAc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28630,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfP6b3CRA9TVsSAnZWagAAD/AP/3JB/3G4jp4rkK7vP4tm\nLWaYcuefUedwUXmBB3Xbik/aFzZ/cVE+/AOrIrihJSlVWGTxFoF9t2csVCP/\nW5qCwcGHQ6MgyURkFbDfgvZHrHZqVmhlTqMoTnXNyw6EoCeLLpuOgw/v9tCQ\nVtiPwhoMf+ACQnriJc1//0LiYWSGbFwWuu6XF+9tMfiKQFqf9zhMA17rul8h\n/r+xg/Uu4UP1J7svvC6akMjYvcDL6eBo3d56521k2qtfBv9QiYQLGYwnV/Qm\n7pJ9rf//cCYiEFSocIfYgjzOi16B0fDCCP7GGbQxbkBAvfpDihQYZlwthyaX\nMGPZhh3gbd2vOPyQl5maFjOSRhKLibEnrBcxQi771qEOc7vENiTlhzHzkaVA\n7D1AFHnU19a90p6EgZqgNQ40cncgKkVv0bLJGYwKU8xGqhKgatTwzfshT9DY\nnfK1J9NQa3qpPCNIEbki0EUC1c/unFEPuVz8jqztB2I/OnYNGUJi2LQ4tQxu\nLQoi8QoyrFCPCS0Q7J6La8lcfA5txd3qNSSx+hCxHZuhI64D8Bqg/AzWuZcj\nci1XweTJZndvv2EEJqcGE9l/fBBsJsXQUup2Ykk0MMT9JV91sFCX8GwaBU9X\n7bsAfjSW0NV9PCEARQKP4y/C+byZ/La/i/5uBeGqxAxtErFXBrTkrvxrmip9\nXxsB\r\n=CFrf\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jest-environment-jsdom-fifteen","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-push":"CI=true npm run lint && npm run test:ci","pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"deprecated":"this package has been moved","jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"6.14.8","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"12.18.3","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.4.1","husky":"^4.2.5","eslint":"^7.7.0","rimraf":"^3.0.2","rollup":"^2.26.4","babel-jest":"^26.3.0","jest-junit":"^11.1.0","@babel/core":"^7.11.4","babel-eslint":"^10.1.0","@babel/preset-env":"^7.11.0","@rollup/plugin-babel":"^5.2.0","jest-watch-typeahead":"^0.6.0","rollup-plugin-terser":"^7.0.0","@haensl/eslint-config":"^1.3.0","@rollup/plugin-commonjs":"^15.0.0","@rollup/plugin-node-resolve":"^9.0.0","jest-environment-jsdom-fifteen":"^1.0.2","rollup-plugin-peer-deps-external":"^2.2.3","@haensl/rollup-plugin-local-resolve":"^1.0.7"},"_npmOperationalInternal":{"tmp":"tmp/services_1.2.1_1598007030872_0.3397376110813557","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"@haensl/services","version":"1.3.0","keywords":["JavaScript","service","services","component","classname","class","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.3.0","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"d2079c5dd1ae2ebb9ba190b706aff05362751fd3","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.3.0.tgz","fileCount":9,"integrity":"sha512-GP7ap0Fwx5/wEBx5FZYwhWbBL+yFGXAkzrLFpbGnPPwfAk6sbn0EyGp/KLrUnqAwr1xS5K6Mt7LdszkMKMyDCQ==","signatures":[{"sig":"MEUCIQCvVsNr7vtXY+v7mJ69MVAd3v0S/KBBnCprVeLKF0vGoQIgVcT9NWwW7W51/JRTtCUG5ORRQgag/AcbHDKp3TlVlzQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31746,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffv5LCRA9TVsSAnZWagAAMVkQAInNkEVaKUNcJnARVrjm\nqvbwT+TfYbEmk4F8fHh/IuTB0WHRuK4s/pTNHXHXQpg0MY4FqRzu++Y4JF6T\n7jPrZx3H/LMCRF41VVXZcKEolQqfnuLuYM6ITUjkYhcEkY8aXr0v9ySv5HBr\n/FchEE3st9/ZZCMA0/v/DbuMmS/xvr6KUUKuAfsrZk47+TpuPKbCJ4XQ2CW9\nVcYV43LS+gq93+reWdvqLWoxxy4Od7PQaErkziH/YRlB+MCQ6K3J3erRG3b9\nrj+Wn6oz8ospUp9wBgnXvp6oGQdyTtG+CE2dkk5S4qQjGVbrsvfCNNZqu0aE\n5AGoCppCNu+nVWWMxRYd/uGHohbYqc2xCFIBeWd4iscIxeWUIS7fmVgQ4W8e\nENimyF4WaMI6x2kqCIsbAJC4bFCcniXKLd3GMyV2LllHGwLm0Gc7K0COiW+3\nOTwGCZQzDyoaHhIs0/Au3NpPU8opIip19Smlm4wpGk1+mcBFMKwR9Z1Pb0pa\ndcgBH8lsV/h9d/9CyExq32NPmhPjSC45d+qgJoSy/0063Y1EtNNVyk8ntftR\n3SaAQ92W2GTks2EdNOHHcW0RMFHuke5RCgdBH3whZA16cYzUs/pMHGch1Kds\nWWe5hfzrlHSY+ru3fuBxIZrkL+BMv4KNXNrCLuIfrc6zb2BkM4bNE5FB3MPy\nkWX1\r\n=oojh\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jest-environment-jsdom-fifteen","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-push":"CI=true npm run lint && npm run test:ci","pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"deprecated":"this package has been moved","jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"6.14.8","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"12.18.4","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.5.2","husky":"^4.3.0","eslint":"^7.10.0","rimraf":"^3.0.2","rollup":"^2.29.0","babel-jest":"^26.5.2","jest-junit":"^12.0.0","@babel/core":"^7.11.6","babel-eslint":"^10.1.0","@babel/preset-env":"^7.11.5","@rollup/plugin-babel":"^5.2.1","jest-watch-typeahead":"^0.6.1","rollup-plugin-terser":"^7.0.2","@haensl/eslint-config":"^1.3.0","@rollup/plugin-commonjs":"^15.1.0","@rollup/plugin-node-resolve":"^9.0.0","jest-environment-jsdom-fifteen":"^1.0.2","rollup-plugin-peer-deps-external":"^2.2.3","@haensl/rollup-plugin-local-resolve":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/services_1.3.0_1602158154903_0.7584291406237191","host":"s3://npm-registry-packages"}},"1.3.1":{"name":"@haensl/services","version":"1.3.1","keywords":["JavaScript","service","services","component","classname","class","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.3.1","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"c0dcabd14a8ad941266dbedf7a8fa67e3d841514","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.3.1.tgz","fileCount":9,"integrity":"sha512-F6mshGDMNrmBUwbrTew69e0zb0h6S4TJD/iEv72vfrzw/mx5NnWfTgxJejfO4kZWU5Qfli8VD+RgfHjw04Z87Q==","signatures":[{"sig":"MEUCIGH7hqa0vUChFwBqHJk7kFlFFeanPfk2top6fsww3Q8IAiEAylI2Ap0Ju/V2Py3vwXhj5WuyXK90lPwJBGTeK3C2/Pg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31774,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGn9OCRA9TVsSAnZWagAAz6YP/0IjKFoc/8VXCDX9F2MG\nqG+sWVlVIKtfMjSwRNHLpGlosingRe8y0uJs77tPMN3VlrQNV0237sQpGw8M\nAolVB9QeKfyZXdm+4O7Wkbz7+aVN9QnDWDVZSNtZ9puNHwQCeWaSCIh+VG61\ntN7SevR5qyZC+2u1cbMUCS5HU0PnZXgCnvFqRaUA+BSNwupmFZhill3jwAwQ\nW1pHHCt9smRd8/3eW5ezKAG/RJxMf220ulxPXv8fro4KgUu38PaIzUtve3Cn\nOfZLoUCL46Je4J64kYP2d9cGIVxNYHQfD+/r06MUcBzOS5BleSWW4LSljJQq\nqtg35CnWxjEwn814zocVNyhFUpcglU7DgLXhztAwYyKDs0EpE8w7rV61uQ3z\n79bG+nhR3p2BlsMInsy1A7+0ygdJ4aabQW5uiGn/zLiKwBz7i5uoqjg5BQRw\nHrJzx4kgoxNVQIXNlhPCbKIVpLx+hPMQnfQT3ZWXTaQFsAtpJ2NzMAJRa+eu\nDXL+dbUw4HyRMAoZ4RLZTecMkeCSAYlkRJSK9JmRA+mjmFCXCt51zDgzo+9N\nnzXjIvML9THrsONah6lgYrXYzF48J4XW+mjSACyi0bjOXXX7G8/L105hj0TF\nk4TYKT5Hk//IQAF4opPYcdRqAYOnLvoOL+rw3wOPpkNAhUC1ugAlGFP1hJPK\n6OJZ\r\n=lkjU\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jest-environment-jsdom-fifteen","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"deprecated":"this package has been moved","jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"7.5.2","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"14.15.4","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","husky":"^4.3.8","eslint":"^7.19.0","rimraf":"^3.0.2","rollup":"^2.38.4","babel-jest":"^26.6.3","jest-junit":"^12.0.0","@babel/core":"^7.12.13","babel-eslint":"^10.1.0","@babel/preset-env":"^7.12.13","@rollup/plugin-babel":"^5.2.3","jest-watch-typeahead":"^0.6.1","rollup-plugin-terser":"^7.0.2","@haensl/eslint-config":"^1.3.0","@rollup/plugin-commonjs":"^17.1.0","@rollup/plugin-node-resolve":"^11.1.1","jest-environment-jsdom-fifteen":"^1.0.2","rollup-plugin-peer-deps-external":"^2.2.4","@haensl/rollup-plugin-local-resolve":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/services_1.3.1_1612349262222_0.1956977571552554","host":"s3://npm-registry-packages"}},"1.3.2":{"name":"@haensl/services","version":"1.3.2","keywords":["JavaScript","service","services","component","classname","class","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.3.2","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"fa32ef58880d60c552fd0b90e4a946b8c65b6105","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.3.2.tgz","fileCount":9,"integrity":"sha512-g3PDia4+1G1fWQ5bdXO7YUqLouWxlUbSGvhFqpz3clJOTHWJLcnaLF3fLUY6fe1KeauuP3mcwJX3uJBcw+38Mg==","signatures":[{"sig":"MEUCIQDvFwDuWNU8jjmZDf9ePFKds7ko/YkrOKy3q4mrs9kItAIgVzxpLcuWOBCgo0S6hyO5rQO1ens9NioSv6zUYoMR4v0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31860,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgIo3fCRA9TVsSAnZWagAAj4cQAIgWusqb9q+yJEYGjazR\nIkN0o4JAZeiB7CRFI3MUxnDMBIQGg1QLEntjIXypVx5Au1wiwU5rVkXMLKLK\nGIFEpHVw8GHIuCVm/B3hmMBV5VR+IdmVrpQYAn2VNUUPqwKr/TQEw3Pjm0nW\njpRoiqDjzIj6WcULByLs3YPw0MliYS31HoBdRmavh1nh2JFPKkZQpmZlKirh\nPDa1n/ByACa9T48ASxmL4GGcwYkBgbF0BIPGY4SU7flvc9paBCxiFFGuQeaP\nvxQiWVwCb4kAfu3PU7gTW2qP2zZmNLGKinawK6tmMhLZcbDWw32lVC1kGNeY\nAob8G3QHBemmigIZFSyUhLcIoPM09ZXguc42NwUGn8FvKyMt46SamIFRs2jO\nJMhj+gPKoPleVuRdnpCHzIq5EWQWNTcV0yvd38hRGygg+CiWBgfscXV/Sq/Q\nT6KMll0FnYSRMBtSs00oUf17t4eR6AVR6Tvz9bZO72ItvdCBo47g+X9BUUez\nPDByhPpkpC1qqID7byQmI3p/54oUrqwi2AdIONm0kl195e6WZkbsVT6G5TSE\nag7w8W56Lyf7u6+TVcb8z7G71t+pGnFbM9xV89n389t3RePlOiKGHWzyQ6MJ\ngQC9712LI3aZ/EZIzu02MHlYrpMDOScNZJ1NxhKUR/o2bxGZzWKUgIkNaMen\nRFx9\r\n=cfBa\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jest-environment-jsdom-fifteen","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"deprecated":"this package has been moved","jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"7.5.3","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"14.15.4","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","husky":"^4.3.8","eslint":"^7.19.0","rimraf":"^3.0.2","rollup":"^2.38.5","babel-jest":"^26.6.3","jest-junit":"^12.0.0","@babel/core":"^7.12.13","babel-eslint":"^10.1.0","@babel/preset-env":"^7.12.13","@rollup/plugin-babel":"^5.2.3","jest-watch-typeahead":"^0.6.1","rollup-plugin-terser":"^7.0.2","@haensl/eslint-config":"^1.4.1","@rollup/plugin-commonjs":"^17.1.0","@rollup/plugin-node-resolve":"^11.1.1","jest-environment-jsdom-fifteen":"^1.0.2","rollup-plugin-peer-deps-external":"^2.2.4","@haensl/rollup-plugin-local-resolve":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/services_1.3.2_1612877278510_0.1502325354192997","host":"s3://npm-registry-packages"}},"1.3.3":{"name":"@haensl/services","version":"1.3.3","keywords":["JavaScript","service","services","component","classname","class","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.3.3","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"d0ac1df71832820e16f020171da6501206e53560","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.3.3.tgz","fileCount":9,"integrity":"sha512-UIXRmute5/YXzeiDeRJwsTYX8mjKT4au06/T1OSPBOuvP8vQAovnf3vN+rdyYYTWGhPWGXe00tVwz9kj1hxGVQ==","signatures":[{"sig":"MEUCICkDfo2LFUnoG65jAip+ghA8s/yOyBgsxtBBDQTIL/USAiEAyTYe+bFLvdMrZEQ7a9LKonh8KlW5xGprFNvSVJUArgo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31946,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgK+LRCRA9TVsSAnZWagAAq2cP/1tdKG/pCzM9hTwsmLbQ\nVzAcvi5r1uSJu0UtEwnO0gxwL28MMTB5OkFAaBwHtTkBDs7pXjF4IP2p21n4\nnXqLNj0UU1uG2IzwbPROaHRPh40nyAZ0Ekbiyf8FFUAmeQNhjmNYq1wOjzO6\nbjPvqvD+7Aqo5GzXqa8MqYxaaLVqBPMXxuQwNmQpVoUzPNcqW/3pkcM/xJEG\ncVGdXx4qSyldIYnVFCXQaiy+ar87uOqukTCRwC9SbHVQ5NNbB3dNDew1GsOC\nqTVyCY2m0XQT5b8Z+QMdhLMMeXX3UksgD3swzc13gemQniM0LoKWRpxOJe5X\n3/SlHNfzuP+qp7CMjudiFt7/ofjShUPRXLJUyGrHXjtk7RsDrkQwJ6MySVmy\nOdKFImWYWzXyDSCcMQA9/Qd882yJX31CxgzHy7nq9UJiHxZodoq6BQO5CZ9c\nrDtqsZRara5BpX4lq/Ol1pzOcCo+qLMzJwdsVsTeEoks09Rjoz8ifwcv7aja\nZxT74rq+aOi/eMrmpEx+MViOfFemibuGNd5oYkhTmUQG3cYBzcKtvSqF3fTV\nDmVpyVoMy2KOYFTx862x/qbIMFRmckvhHXoZNLz79sjYBeM2LIoM517PBRdd\nCooYLEXnavgEsQdSWY2eG9TaDHjl7/dRRtQsVWZyEn3deQlZw9OPKTRc8865\n3vz4\r\n=g+bJ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jest-environment-jsdom-fifteen","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"deprecated":"this package has been moved","jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"7.5.4","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"14.15.5","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","husky":"^4.3.8","eslint":"^7.19.0","rimraf":"^3.0.2","rollup":"^2.38.5","babel-jest":"^26.6.3","jest-junit":"^12.0.0","@babel/core":"^7.12.13","babel-eslint":"^10.1.0","@babel/preset-env":"^7.12.13","@rollup/plugin-babel":"^5.2.3","jest-watch-typeahead":"^0.6.1","rollup-plugin-terser":"^7.0.2","@haensl/eslint-config":"^1.4.1","@rollup/plugin-commonjs":"^17.1.0","@rollup/plugin-node-resolve":"^11.1.1","jest-environment-jsdom-fifteen":"^1.0.2","rollup-plugin-peer-deps-external":"^2.2.4","@haensl/rollup-plugin-local-resolve":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/services_1.3.3_1613488848574_0.6239270827503522","host":"s3://npm-registry-packages"}},"1.3.4":{"name":"@haensl/services","version":"1.3.4","keywords":["JavaScript","service","services","component","classname","class","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.3.4","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"e9e72b4511ba37e6cdb537ba4b74eaac5eb44331","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.3.4.tgz","fileCount":8,"integrity":"sha512-7JUAT2OdZW/+oC2zt5Vuu+BGpr6S5CT6dy66MaXQ+jI7GVtD3Eyxsck44wcX++A+TNxFvQ0CkVTwnjkJXISOuw==","signatures":[{"sig":"MEUCIQDxnZTXOhr82WCkkU6v+6scp2Tnpe+iQqHFqTGtHJIKmAIgR9djb4amJqb9cKlk3r8jBlS4rD/8nF0q0muU9C6S6iI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31110,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmRPhCRA9TVsSAnZWagAAIOcP/R+C/YccirurhY09pHFV\nmLGbK2QkW9ljFN5JpKtBQLfUOoE5MSvtuxjxZQOQitrjoJems8Ual6B7o6xm\nLnSxyNqsgy0H5b784Y5x/j//uB2KGii71EN7AYAI3qXgd60Lzu4L12pvip1I\nFlFyCX6ocKU+kDl0KZNE5LuJD+Fx0+yaGePr4nwQKgy3wBF1KhVGd17VM2LV\nGRQKevTbtvNqbWVnZ+fjBmUO8Y1LH2RzhG8Aa4Eq643Q8aUO085LYJxCdrBO\nw9SspPzN5897heqDWvrtIoqkrNfgdGc7enTiEh6390JkwmqmOxhvam2dHPpe\nNJ9wMw0Q/2R+QO2brb7+Mad18LuBDvCfvBklFrDMbbXYXALKT5iVTrsia3d7\n3w0hEvbeLqq9l9lm7qKajIJ4C8jkfPViKS+WZRR9wAlpKP3vM5BbM0jJcpae\n9/8Kf2SLM7pwkzE51RjNLfPAYAVWlRv+hUqWzpEnJ2HYibjq1Y5Zp8upuTDF\n+sahY6CPN9JAokMnRaZdykuHYf1TRkJISp9McJ6DV0PvTx5+LgsEZLXbf863\nOOtkgAnmkC7lzuBxHGpKoNy3Tyrq129Yf17xj2hdV2UaR2vlxaToeEuWRSJq\nRlqpVNNlzYGK5oE/MhcSkLfaxCcIn9HVI7RC43kGJx/+Cvyza6b9G4fMpror\n2q7l\r\n=WeVg\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jest-environment-jsdom-fifteen","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"deprecated":"this package has been moved","jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"7.12.0","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"14.16.1","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","husky":"^4.3.8","eslint":"^7.19.0","rimraf":"^3.0.2","rollup":"^2.38.5","babel-jest":"^26.6.3","jest-junit":"^12.0.0","@babel/core":"^7.12.13","babel-eslint":"^10.1.0","@babel/preset-env":"^7.12.13","@rollup/plugin-babel":"^5.2.3","jest-watch-typeahead":"^0.6.1","rollup-plugin-terser":"^7.0.2","@haensl/eslint-config":"^1.4.1","@rollup/plugin-commonjs":"^19.0.0","@rollup/plugin-node-resolve":"^13.0.0","jest-environment-jsdom-fifteen":"^1.0.2","rollup-plugin-peer-deps-external":"^2.2.4","@haensl/rollup-plugin-local-resolve":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/services_1.3.4_1620644833138_0.32308450348821527","host":"s3://npm-registry-packages"}},"1.3.5":{"name":"@haensl/services","version":"1.3.5","keywords":["JavaScript","service","services","component","classname","class","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.3.5","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"1ab82b3e93b4fe1b99769624b1f70c0f40c75a7c","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.3.5.tgz","fileCount":8,"integrity":"sha512-CSARVF0CzRGXv7TtS+TzIUH6hYd4fHeIHqR9f0Y+6VyrQPNw/5FXcUt/ZJGi6dhq+LGT/eXdB6cKrQ85keyj2w==","signatures":[{"sig":"MEUCIHL6ANqCmQi09geQ+0/L8g7rbpxmmZQa1jun93yHGHJWAiEAnY/KoC3NBv2ecmH/wsAhNq+eAHZxJqst3PLMR/II3ZE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31083,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJLSaCRA9TVsSAnZWagAAq7MP/jAFuY3z1nARBKHQ3fTi\nUzw6YLHrcujTYzpIbV/XndDLgAr9iGGnXcnDBVzaUfWs1dEYyDDE90uBgUpP\nQXKRjABlqroeuC7avPMlwiYtFxLNh51/t5IVCkFVTA/C/sVWLYXW3yJ3D7J8\nPPD79n+aOmtcX/rXi1K86vbgtX0OdhVZsvAfPmslUUyLbgtjl4EmguJj1GJ1\nVX+LcKTGTJ1Jo/MlV10H/125hnQUfDnUrszdlXV5sPDUP2USxRQ65qeqJyuj\nr1vycqlkNNuvR7IE6PkU+x4n/5wE36L3QBnm+hlqflE54amUrbHA3/6L07Ry\noDgf/POQHtFCJB8Lb/exzktVIEFwXeU3GD6p69xnOQWP+gyGE2Dh0/akvWH7\nXCsDyMLgKh4xjJsrg4pJ8Lodm4Dn/2/1Pj/Bv5En14BrCr47A0glBnKfFgs1\nCO/ZiiS7pKM+YV5RbfGcdQpt2ipaIa87y1vnLCxfUpQt0HYe49itCZ1brF/d\nVjBXkXxpdu+W+RP4m2a22+sATPP/bjzM8IseHeoBAP4Iq3x69zg6RMLiEqpe\nE5g3/t6+fK6QGUR4IPKo+JCWt7ETZif9DKUM4NJFnQ081FXHsQGVTLh+sHqH\nlzneYqB22bRQMRjcTsXqcKfoQ74bdQip8AqqKTK0B6P16LSzufS8yrpSkq6Z\nvrsB\r\n=ez35\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jsdom","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"7.21.0","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"14.17.5","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.6","husky":"^4.3.8","eslint":"^7.19.0","rimraf":"^3.0.2","rollup":"^2.38.5","babel-jest":"^27.0.6","jest-junit":"^12.0.0","@babel/core":"^7.12.13","babel-eslint":"^10.1.0","@babel/preset-env":"^7.12.13","@rollup/plugin-babel":"^5.2.3","jest-watch-typeahead":"^0.6.1","rollup-plugin-terser":"^7.0.2","@haensl/eslint-config":"^1.4.1","@rollup/plugin-commonjs":"^20.0.0","@rollup/plugin-node-resolve":"^13.0.0","jest-environment-jsdom-fifteen":"^1.0.2","rollup-plugin-peer-deps-external":"^2.2.4","@haensl/rollup-plugin-local-resolve":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/services_1.3.5_1629795482049_0.7742357565913502","host":"s3://npm-registry-packages"}},"1.3.6":{"name":"@haensl/services","version":"1.3.6","keywords":["JavaScript","service","services","component","classname","class","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.3.6","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"7dcf83c33ea91db0a046b3e246d739bcb4977f30","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.3.6.tgz","fileCount":8,"integrity":"sha512-jAB4XaDDyCsHlXdCO5m2MhnfhLnD1DK61xEU//wEMWI9XZsgtXvMS27x+SN27IBRLFs1JAwpDNHl/bGqK51OWQ==","signatures":[{"sig":"MEQCIGuhPi726XptN9KxeaL0SF79MPvsuhetxkZbC4pLASxbAiAHq1y7zgXtuPXive/Kd3h31ozLdE9KjJ8agpem0JAriQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31164,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhyvEdCRA9TVsSAnZWagAAmEcQAJ2c9KyvSZsFqBcrA2t1\n7JP22ORjTYIj9/BPc6pTYY7HNiKHqOERI6uXIiNS0f9g3oi243AaLR4EaPEV\nbmu9bH6MoTqrhij40NQPkwA5HlzuF9Gj5th9pxb9kPcmSVy9n6FkGfmNXOkE\nPf4oCKoaqxeNATISjKxYUeDORIHVb66iV/H75q8Glqo+L0DHHOPcbdQ3luOO\n6VB4cSDMUqB8Z3lFlgy/BfZgX/Kcw6ajllKSNVXvjQ93Id4kXORuMxHViwBe\n63MNpOTo9tEjlI+d8YHhtjfJtBZpwXzWyZ0C++QvzYYtNxCYe4966DMbBIfJ\nB5ON/rf/Hg5IUNP4XjAWckK+gn15TrbDjh9exQuHza09bQ6BesFgkaTSPCxZ\nYqMh0FzjchyMpADcpeuvRqnnnG3lAvOgtvnkbs1fAgtvMb/TBi8TQLPNPpU3\n2HiRcbOhH+0hseWgDgKAj8o18EKERiaB7QtUHJkP1sPWoMGAJv7PcdiYkvoD\n4f1XVbcIv4D0rXJF1pHZaHim5++6BxOCGGGsV6g1boniysjVTe7QRKwOU3FA\nIor4u/jS4oUJKiWl1+elUY05kcnl8//7Niq0S1tnCgNvmuNJAdSicK/lthXY\nU4bpqZ4bn1/l/QFOGH8UTQo8n3dWIBvs87+eeW7sViE1fx3f7v+ua4xAj6f+\nxe7P\r\n=Lo2z\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jsdom","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","prepare":"if [ ${NODE_ENV} != 'production' ]; then husky install; fi","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"8.3.0","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"16.13.1","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.6","husky":"^7.0.4","eslint":"^8.5.0","rimraf":"^3.0.2","rollup":"^2.38.5","babel-jest":"^27.0.6","jest-junit":"^13.0.0","@babel/core":"^7.12.13","babel-eslint":"^10.1.0","@babel/preset-env":"^7.12.13","@rollup/plugin-babel":"^5.2.3","jest-watch-typeahead":"^1.0.0","rollup-plugin-terser":"^7.0.2","@haensl/eslint-config":"^1.4.1","@rollup/plugin-commonjs":"^21.0.1","@rollup/plugin-node-resolve":"^13.0.0","jest-environment-jsdom-fifteen":"^1.0.2","rollup-plugin-peer-deps-external":"^2.2.4","@haensl/rollup-plugin-local-resolve":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/services_1.3.6_1640689949376_0.8630363400995025","host":"s3://npm-registry-packages"}},"1.3.7":{"name":"@haensl/services","version":"1.3.7","keywords":["JavaScript","service","services","component","classname","class","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.3.7","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"2c18d9216389587faf97c0d7e35458bfb928e4f3","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.3.7.tgz","fileCount":8,"integrity":"sha512-eUdRvdVSbMWiFRfYTeegHdNlmOjmeMWyPC+R9skqP1lf46lyp/rMwAWPX3wx2p0rRwd2GXfCMQn+vjqNAmvh7A==","signatures":[{"sig":"MEQCIEyBBAL6mzZb5W/N3lvJR67KuH6nVHBlUdvcWSeK/Po5AiBkDltz7knmjmhwilwTEBacvweo+fWRq04+l3+m1D5sxQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31164,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh1LNmCRA9TVsSAnZWagAAUjUP+QFcu57l28FhY2UY59E4\nBRuY8fsUkXCj6dW2fr2GDfX+A2FOHdsVTrHFJgVuy+bLu6dMgAf+AqFi3cpG\nuZw4b+NLqPmXrNGGVCABtjEBHJbwpI5LK+L053OjkaiI6EdQJR2i1OhhQPO6\nVwuY3Q7yg+GKPJVF8fXPANNAPDf54hhxxZtRem5fFlEK0dHO1XF0qo/w27y7\nfTve8O5UK682t0koNUv8mQ2J+ablQFxyHuWIqvpGYKdc4vkL7mE24Dasv9PZ\nQh+DrzEk/reF04W+Fqb/NYgFwXxmfahFOM6y/8yfE9AYZt+6szaF3I9EUEGw\nuygKTbwXX2V9iVtbLpQX0KJzL9lPQ9kmSZ/eyelTLVZiKmGznt1CPaoMOlZ9\nOEyPl48l7aaqk4V2TcgVFduEdzTg5vgyLCUpAwV5yai6Qk8t1b9BO0nH3CHm\n5CrJd6yd8sNxAMxAvuia1GEPXzGUxYmp9EQKQ45XJIWbHEz6s+TOKI/VPx6p\nG29hW6LEhuXwUT5RqTAaMWTakM8a+YQWEvLYeV7vPBHH6a4EY9lJ9quIw0E4\nlk7y1fWs/9QN/iZZqjd43DkEgI1kAjbRkSc8EFbjuUJuTniIJpIqHlFFfqyl\n9r913AgSnfOKTPBMnoR/mC/MoJgjgeNDPo+kF9GnlRFf1CI30e49TGbnlzF/\nWrfm\r\n=VlCD\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jsdom","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","prepare":"if [ ${NODE_ENV} != 'production' ]; then husky install; fi","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"8.3.0","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"16.13.1","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.6","husky":"^7.0.4","eslint":"^8.5.0","rimraf":"^3.0.2","rollup":"^2.38.5","babel-jest":"^27.0.6","jest-junit":"^13.0.0","@babel/core":"^7.12.13","babel-eslint":"^10.1.0","@babel/preset-env":"^7.12.13","@rollup/plugin-babel":"^5.2.3","jest-watch-typeahead":"^1.0.0","rollup-plugin-terser":"^7.0.2","@haensl/eslint-config":"^1.4.1","@rollup/plugin-commonjs":"^21.0.1","@rollup/plugin-node-resolve":"^13.0.0","jest-environment-jsdom-fifteen":"^1.0.2","rollup-plugin-peer-deps-external":"^2.2.4","@haensl/rollup-plugin-local-resolve":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/services_1.3.7_1641329510707_0.7628900917100481","host":"s3://npm-registry-packages"}},"1.3.8":{"name":"@haensl/services","version":"1.3.8","keywords":["JavaScript","service","services","component","classname","class","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.3.8","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"45f4e3a40eaab2e296fceab5aa830c18c810b7a3","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.3.8.tgz","fileCount":8,"integrity":"sha512-wC78U1KJUmFXJLB/T9SBzHFFaDKoLEfcfbz34LRDkLoL4De1sG74vb4Wzkr3y1ohL1bCT/veST5XHw0etF+g6w==","signatures":[{"sig":"MEQCICzRsv66BAYrh7hHbcxbusyUzPO1PBloD3xhuckBLRYeAiBIql96S1lDJqBgbf8UnPCQLsONMAWFvBcJh0W74U+0qA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31164,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh6Er5CRA9TVsSAnZWagAA9zMP/0jNquDaRUT3OHyJEY+n\nj+qg8AJDVITSIzNqEZoQ2Rgt8RRMJJrS+ruKbReX+bGwYk35yjRTjfH9qSgy\n7dBykivnRIzgzQ4z2tV336nMqU3myA7590hR11eF9V6FJ3yyR1IPouT85uww\nPkWpEsuAoxPSJEfglu7eB5MnaAt4Nhk/ncCS1W8aFmFDc/i17PloPiREHEZV\nrtRLfm5ppKRMiHJhHPc+KM52xpYXIKAIIK2zfoZ6ABAQPFEjLqhWJDmBcAXp\ncQPipD+jZXLQfPvDZpMpGMvct8aOoEg/zWK848xhgCvK3I29zHOqYkRlAW6S\n4DbKd3jARkObe9lr/9N4Bio88zT5YM8qhT1X82UozHH/WSLeM7E0VfXAK7Ef\ntTm1Qxf6ovNGSksByqaY7/ltXz+ynf5uyAyQavDdKpVVt6MxcWVBzs2ug3va\nzUisM1FnnckgdIkfo1g3ohM7rPTgUqRB2vXkw0Nlq28H5znDe6bhXY9p3XE3\nl+8CYDdrbnU2P5vqnvce3aHLnk3pQJPl/L4mjiRfjkMu25w8egK0NeBJCa/M\nPLonpklXVoI26eTwv86Qqzx0O6am29M2duIElZBNN1XJAg+TJkEWY0pJ0SH9\nSstmB0wGk7FXKYHe0gb+VHsootKoj12AW2P8txpmWMC355vk3ZZ8XZvvPypB\n92xz\r\n=mHrW\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jsdom","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","prepare":"if [ ${NODE_ENV} != 'production' ]; then husky install; fi","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"8.3.1","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"16.13.1","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.6","husky":"^7.0.4","eslint":"^8.5.0","rimraf":"^3.0.2","rollup":"^2.38.5","babel-jest":"^27.0.6","jest-junit":"^13.0.0","@babel/core":"^7.12.13","babel-eslint":"^10.1.0","@babel/preset-env":"^7.12.13","@rollup/plugin-babel":"^5.2.3","jest-watch-typeahead":"^1.0.0","rollup-plugin-terser":"^7.0.2","@haensl/eslint-config":"^1.4.1","@rollup/plugin-commonjs":"^21.0.1","@rollup/plugin-node-resolve":"^13.0.0","jest-environment-jsdom-fifteen":"^1.0.2","rollup-plugin-peer-deps-external":"^2.2.4","@haensl/rollup-plugin-local-resolve":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/services_1.3.8_1642613497274_0.6444438629835716","host":"s3://npm-registry-packages"}},"1.3.9":{"name":"@haensl/services","version":"1.3.9","keywords":["JavaScript","service","services","component","classname","class","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.3.9","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"e76ab8665245e7fddce67149097c31cd84293224","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.3.9.tgz","fileCount":8,"integrity":"sha512-WCubfA/M77O2AwXmqhcskb3NmN8XINbfr7fwsoVSosiDRf/+kw1MmtfE760Ye6P47CgTVB2pPmURq3uWLvJRTw==","signatures":[{"sig":"MEQCIDvnU8445mYheCL0iAOPIovg5sOUeLfGjdh65N+vTq9xAiAKeONigpdSsoESsxGTcKBdjgPS8SZYA/M+XRai84QBzw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31164,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh8D9bCRA9TVsSAnZWagAA3/QP/1qL3lsfuIsfuftkhD1m\nvyEpgcsXwrbmBWfgxQTGP49pDzxnjJAui7MQ/2e5leTnjG7CvO8Kb/C5GZBU\nk8sRt40ZMDtQ7iV6LDXJhkfROyoZM+XXf7oMi7dCvgSgG+3ZA02wlCHJcltO\nucIPnKMsYpAdLFoaEtrBgu7YPlwNAEfNnjqDrLVLdk6uXN0NOGzXeIZMPNln\n86G8AnJSofIym0fBxBG1MSIyEtwjDA1EoakMcwUgqOj/HxVia4CKOjFZi9nF\n4GKv7boJhQLu1qJyQqk39VrPcGCMBiI65YC1xVP3H1rdoO2xy7qRbVrew+gT\nzmg3twbggSg94BWOz1aqVHPDiKw2McwqpZS9taHmDQq3K6hxtH5AVc0P15Qs\nxf1bUNZJO50s1K4aBw567Gt//w1Et+AkB3M36FtXCLqNSUxjnzPRlVssjC6m\ng7pYLv+FpM3+jkj7BxKV3MVQvfgF0zm3Og0H0vesWFcqFgMXOOJeh8QMblpH\ndPb2ufSfNIGglFnxME0x69anWmu2Pd+TmN29Qf5FYv4oSwezzG80jAMQksYr\n5nah/280X6qP4Xs56eQaqXDWPgyrfiqar524B8F64/qTc4rfmWf+HaxavkQw\n+mWw/Y3/zQMKORljPDQbmT8YTrQVxKF/87ePrRudsIXZea2+xG0o/RNQTIEz\ncmj2\r\n=9DTm\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jsdom","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","prepare":"if [ ${NODE_ENV} != 'production' ]; then husky install; fi","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"8.3.2","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"16.13.1","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.6","husky":"^7.0.4","eslint":"^8.5.0","rimraf":"^3.0.2","rollup":"^2.38.5","babel-jest":"^27.0.6","jest-junit":"^13.0.0","@babel/core":"^7.12.13","babel-eslint":"^10.1.0","@babel/preset-env":"^7.12.13","@rollup/plugin-babel":"^5.2.3","jest-watch-typeahead":"^1.0.0","rollup-plugin-terser":"^7.0.2","@haensl/eslint-config":"^1.4.1","@rollup/plugin-commonjs":"^21.0.1","@rollup/plugin-node-resolve":"^13.0.0","jest-environment-jsdom-fifteen":"^1.0.2","rollup-plugin-peer-deps-external":"^2.2.4","@haensl/rollup-plugin-local-resolve":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/services_1.3.9_1643134811222_0.8027046492163488","host":"s3://npm-registry-packages"}},"1.3.10":{"name":"@haensl/services","version":"1.3.10","keywords":["JavaScript","service","services","component","classname","class","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.3.10","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"a64bd4421eb519c9d228f873bc9196b33f09a9bb","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.3.10.tgz","fileCount":8,"integrity":"sha512-o5EFqrTLqKFQcnZmkvKL0DpPMtrUOljTE8NX4dJHLNvSNfkN3vOGpSrOz+nqb95GvsMkfLvz3KUGwB483Hxqvg==","signatures":[{"sig":"MEUCIDQIAee8WhXG1KSmuMp+a5QBd9VMOeQQvBGQJfXs4WFSAiEA3eeibJklWz2zonzOyc1ywZzolpNKlN34qLtl/sRKafE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31167,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+Sk6CRA9TVsSAnZWagAAMiIP/iIxDkNSkxfHJfU3Np8j\n0RVHePY5WL0xKVnHAD8boQPPMCwXJAi3j7/nTgrs3ntQFiZv9B1gn6E31g1p\n/WhveNQTdQfvS5Eo9HpORZ4Jfgt7KuiQ1OqL3QVht5yXRcX4jnJixYg+900d\ny03Bkct1BhdYe6u66lveMC64JLSuwPsyvJS2nSL1N0O6+Drs+pMX7eZOvU0a\nY3K7eF/Gqt7c/VB0f3aoJA8I3yVkho2JPhJA5/IMTsqEfIWnwvqnqWMyNqF9\n6JwEl+TmdBZ67vuu/93rgSovcKXeDZVbch98HFL+U+dsMYnAJ4lpXGBNOHTa\n5bgTd8ULWVNOXBN6eUfnSKi34x2GUvPrQ83Yh86peeSTPgnIdDBfTuwHnse2\nveZtBtZYfpt9qdZzuJC11q+GNTy0LcYOIu98IK8aidIX2Y68zr/SJDVqozvk\n3q+0aFdrAY+DEd5poJsZeYaBd+q/OvMEoI64/vB9ZdAuCB+dgsd4vNzwNGmo\nrfn+1A4WP32RxXwZosIiCgXwGpppAh9u9/oVkkwRynH/obxVkum05huhmfw7\nV7PSMtHRnCwg1FwpoVMdN9r/luoTBlH+tR+sp4GRZ2aqAobNLEdEJcLeLLZ2\n/sFrzKllwm6hwQkZ+bJB0Uh9BdjwP+IMwWBfYAfZwFphUf/b86AzBIPH2pyg\n00D3\r\n=0Tm5\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jsdom","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","prepare":"if [ ${NODE_ENV} != 'production' ]; then husky install; fi","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"8.4.0","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"16.13.1","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.6","husky":"^7.0.4","eslint":"^8.5.0","rimraf":"^3.0.2","rollup":"^2.38.5","babel-jest":"^27.0.6","jest-junit":"^13.0.0","@babel/core":"^7.12.13","babel-eslint":"^10.1.0","@babel/preset-env":"^7.12.13","@rollup/plugin-babel":"^5.2.3","jest-watch-typeahead":"^1.0.0","rollup-plugin-terser":"^7.0.2","@haensl/eslint-config":"^1.4.1","@rollup/plugin-commonjs":"^21.0.1","@rollup/plugin-node-resolve":"^13.0.0","jest-environment-jsdom-fifteen":"^1.0.2","rollup-plugin-peer-deps-external":"^2.2.4","@haensl/rollup-plugin-local-resolve":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/services_1.3.10_1643718970036_0.6393244127643694","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"@haensl/services","version":"1.4.0","keywords":["JavaScript","service","services","component","classname","class","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle","numbers","rand","randInt"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.4.0","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"ae5188c43bd098237b70f1b163820314ccc366a4","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.4.0.tgz","fileCount":8,"integrity":"sha512-CZ0f484eXnwa4And9pkI9qHO688ZKdmcVQx8gqQ4ZWtniVky8vRqvnsRPJQIyI9+9oDYuviU3SbcCoJ+RXCCWQ==","signatures":[{"sig":"MEUCIQCDS83pUvWZbPwSLK15Ui/4CF6iexoQqtYuBen//w1PjgIgLWQ/zusYvBwZ/pioYJulaeM0pbo5UkbYMXX9k6v3Dgk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35092,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiAZaaCRA9TVsSAnZWagAA/E0P/0dnveA/Fi/szmY1ngKR\nMuLK1yLgCyKdbuv1mzf8o775YKvsDXsdTha8uF/EStqMgi9gngZ300aiQRfg\nO8CyJNIH2khC/8flUbtrAUHbM4y/MutwF28h7BxkZgUvaTZnrLDT/qAXhr96\nwFtxWt7B42QAocsZ+zPq+LZQxREOxP7uM+avIgwM3kJ1o0asIgfG9qsIBkG9\nv6AGIjn4KMfMOBAdDNxI/GHk6NM98R/jlZbXjf70trPzf6mFzxuhCFqDanCP\nOBwy8rg6eh8T6HpSPu2yNsJZU0GSN9QALqPgg7Kfku2GuCuygnIkLwBfHpu9\nx5pePIpylpnejyDrktSIR68t8Ue8ni1iL1f2tsgc04jfk4/F+mnzpqt+qTmR\ny9Ynh4GLpAjLzfqA05qQyqRt6E6ez0x2vsqiOSISza6S77THzOJiEuE017Az\nOmUuOyC9+qpA7iQ5EI5oPvwPNR64k/xHVvKi5PbYRuY1hIsMTfxhYutXnqV/\nctG+XR834HhDiOjMUrtXVRhj3w6cdrjOlloCewkFndP8myJgjRHd4l9nRvEe\nlJyIl2IQbQ5rcoXe6R/RFlYd2sWYBIHGFCxWvybzpf6VrmW0h0ul981n/eIL\nF8n0Yc31zInn1KC/CgFZaAJpBAwRyUVsDf9GMTmRecCI4UWmjvPfSGCCcnq0\ng8OB\r\n=CpCU\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jsdom","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","prepare":"if [ ${NODE_ENV} != 'production' ]; then husky install; fi","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"8.4.1","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"16.13.1","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.6","husky":"^7.0.4","eslint":"^8.5.0","rimraf":"^3.0.2","rollup":"^2.38.5","babel-jest":"^27.0.6","jest-junit":"^13.0.0","@babel/core":"^7.12.13","babel-eslint":"^10.1.0","@babel/preset-env":"^7.12.13","@rollup/plugin-babel":"^5.2.3","jest-watch-typeahead":"^1.0.0","rollup-plugin-terser":"^7.0.2","@haensl/eslint-config":"^1.4.1","@rollup/plugin-commonjs":"^21.0.1","@rollup/plugin-node-resolve":"^13.0.0","jest-environment-jsdom-fifteen":"^1.0.2","rollup-plugin-peer-deps-external":"^2.2.4","@haensl/rollup-plugin-local-resolve":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/services_1.4.0_1644271257902_0.36023107763249085","host":"s3://npm-registry-packages"}},"1.4.1":{"name":"@haensl/services","version":"1.4.1","keywords":["JavaScript","service","services","component","classname","class","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle","numbers","rand","randInt"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.4.1","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"6567ff73c609fa59d3b2109b7dcff82ee9b75b6e","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.4.1.tgz","fileCount":8,"integrity":"sha512-D7SwgjGZYh0SBHarQG8JFlMY7KBcxLAaPdI3bdgppRaTOgBCMkLPEZ8kOFWA3XRHpLRsCAzGsQav+PvkrBaH9Q==","signatures":[{"sig":"MEUCIGx5t8HLTnlFF+ugLN9I/NKvtFLcKYQ5+BM8MuL22Yy9AiEA0YNysAIfUj3W4jOUmz5A4f8mGLCCoxi0U4RCpjomogI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35092,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiC7hDCRA9TVsSAnZWagAAYn4QAJWym2R/hxLq02Lk4NBE\n2eL2LlDH2Z9wPIJHad9XaUEcoX2WI9C4xd9ZRoj2ZXlkjb7rl5/ktURJ82pb\nRSOcHXDVxfU2JZC+FgaSwy7auHh4ma5w0MVynfZChBdo9WgimhEhDIiRoMqX\nruX+AyhHwWO/FqVuCV59cFEW/WPfpdq1Uy8bbrdm2uabh4fwWOr+2s+dVJuA\nwK53zvIHF+9Sa6W2TItvH8SouiifzQCBjrkupsaESJ0f7n6CbF+XgkOtJNsI\n4VN5Q/PIqWZtdrAhGuCpZeBeAT9kDbjdTWL5ovfM0FQP9YtFG6ymzx2q6hmr\nFckfhfXlIVFbKLKtk5QELtNqnY9hD3hbwk9RQAeIa385Ar+L3ssYf4nN39O4\nuoGcUkJG9xjY49u5D2WhlmVwZQH3/WOy9yKSzc1VnBeRlIq97JgvQo5HpLQj\n7cZX/EfAIQPRDA+0C7hlQxW2Ml804Nbrl+ik7VpQGl9VZyJQ74GZ5GWb/qwo\ndngpRnJ23j6TOSSC0gZRadqjn7QEBRq3A5g814at+Q0c1A8H7CEORQIkKFEb\nvWAAMv0bddVH/Cf/CfJpQ2j7+a7WzGlkoLFYMjqJMoU5cgjhFeW0LEbE+kgz\n7gTmBvrl9cK/9Y8+a5SD/0C+w7N+kOgPoP/yhXgwYUFcTT1O2ktFCDptUcS5\n8emW\r\n=8taB\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jsdom","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","prepare":"if [ ${NODE_ENV} != 'production' ]; then husky install; fi","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"8.5.0","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"16.13.1","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.6","husky":"^7.0.4","eslint":"^8.5.0","rimraf":"^3.0.2","rollup":"^2.38.5","babel-jest":"^27.0.6","jest-junit":"^13.0.0","@babel/core":"^7.12.13","babel-eslint":"^10.1.0","@babel/preset-env":"^7.12.13","@rollup/plugin-babel":"^5.2.3","jest-watch-typeahead":"^1.0.0","rollup-plugin-terser":"^7.0.2","@haensl/eslint-config":"^1.4.1","@rollup/plugin-commonjs":"^21.0.1","@rollup/plugin-node-resolve":"^13.0.0","jest-environment-jsdom-fifteen":"^1.0.2","rollup-plugin-peer-deps-external":"^2.2.4","@haensl/rollup-plugin-local-resolve":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/services_1.4.1_1644935235043_0.286226047783698","host":"s3://npm-registry-packages"}},"1.4.2":{"name":"@haensl/services","version":"1.4.2","keywords":["JavaScript","service","services","component","classname","class","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle","numbers","rand","randInt"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.4.2","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"6513a759fed8821be4db5b3fc95af8d16d3a758e","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.4.2.tgz","fileCount":8,"integrity":"sha512-e3Orz+UfZ4ELuPsrtzmcBZtBuXUKaTtzI64+n5P/LMLGBq14k939azvUT00lCOa3ihV55Ldi4tfLtpP1acVhAw==","signatures":[{"sig":"MEQCIEUFYMHazXsHAumdCA/ih2s1hQK3RQ9WBYXycKPZhSJxAiBhHZSbLtm3fLO0YPBxNpUPVwcw7u5W1/ZdRSXGzELEEg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35143,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiDm0dACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrf8hAAjtV5rw36g4/c7K1IidYi6qx8JyeMW0BRQmhpOIuJHf4UGSXb\r\nV4LxvCo01/u6fBO6Jq1O6Fqzirw6/ixG0sBiG/5JsSZEoP/KbhBOfBnxd3A3\r\nyg0brba/uLbuYfi7G0nkzAo39bs1LxXRvU/XE6nBkfHOqTafvUaobYDR9rhS\r\neG2TpUkQIGI9AFywEWfODHiWH6EkYPTn0qX4Dej9VB+33CBDUFlbvUQqxOhA\r\nTMLzdDy0OhprBpIPFY1tfns3KH6WdX1rvOyIWbloPaJEorDR0li/TpY5szuE\r\nL0rsnvPCHBcxNj+syW4N8O6cG8sfRxs+uHPNwVzlm+sM2VvdiRg/DH8QkxcH\r\n8aRSlR5rxMQFLAnZP8KXmv9vBo3QhJoYnZHI61SW5bTToUqd4FGgeYhUqNtU\r\n9FNsRDu7UzK9/DzxKY+6HhUxF+nxwJmcrZpdUi99BeNaHCvsmOCnmg8DN3t5\r\noyOI732wdA8Rv7VwW5vkM5b0rAxBSbvxr7Ffn1ABWwsRuFkjMRn73ksvPPhs\r\nH6l4Csmy2JtP8dVoJAVG2TUZYeUvZKL29MUIGRZ7fFA15b6cNQSKmLPWC/u7\r\nqMp+xfdo0KwA7FGB3/dzmgIxnhHA2M3ZBNyy9uPbtUafxBL6vBffbcsky1Gx\r\nAUrOBrKFJckOxJ/q5ERDFui5zQFSO60InIs=\r\n=bsq/\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jsdom","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","funding":"https://github.com/sponsors/haensl","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","prepare":"if [ ${NODE_ENV} != 'production' ]; then husky install; fi","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"8.5.0","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"16.13.1","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.6","husky":"^7.0.4","eslint":"^8.5.0","rimraf":"^3.0.2","rollup":"^2.38.5","babel-jest":"^27.0.6","jest-junit":"^13.0.0","@babel/core":"^7.12.13","babel-eslint":"^10.1.0","@babel/preset-env":"^7.12.13","@rollup/plugin-babel":"^5.2.3","jest-watch-typeahead":"^1.0.0","rollup-plugin-terser":"^7.0.2","@haensl/eslint-config":"^1.4.1","@rollup/plugin-commonjs":"^21.0.1","@rollup/plugin-node-resolve":"^13.0.0","jest-environment-jsdom-fifteen":"^1.0.2","rollup-plugin-peer-deps-external":"^2.2.4","@haensl/rollup-plugin-local-resolve":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/services_1.4.2_1645112605500_0.002453998324464246","host":"s3://npm-registry-packages"}},"1.4.3":{"name":"@haensl/services","version":"1.4.3","keywords":["JavaScript","service","services","component","classname","class","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle","numbers","rand","randInt"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.4.3","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"9662884289caaf5cc8ab4af2e8db8451d5ee0646","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.4.3.tgz","fileCount":8,"integrity":"sha512-EX562JzNKCvt9jgfu4zXxbuP5waXnIGBIOjQlkWmVscj/JhM0qNZ0kX6Gq9MgNhbNDdI2+Y3esKTaI+Uy1ABeQ==","signatures":[{"sig":"MEUCIAwzHoJHLnTdyX1mM5fTNXDTJeuWn0KfD8p40x6pgR4PAiEA9Scibo/XN6kO7eVnlpE4x9JpZAaLcOPpJ+0PLYZSQdA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35143,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiH6h1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrpdxAApQmmrrS6WXty3cngt/ki7CbocTWlKx0f9xfRdEy5/zfrfGo4\r\n9xiOIXjYsD/vS3xoeSCVmtHbGzXllOgngaA3b//BWOSAfBBsPU088Byj5OmG\r\nL09lgzbPkA/Vn0eJ+NgdwpIZAhqKVrYHKDk/lRPjGZ+6U1EXp5gX2LBVvdfC\r\n1tmv9aHM8hgzKCBtnhiJZiMhQ0PlrROoPqolc2HKZnQvr0IpcuYq97HJagfZ\r\nW441madgbBatB4EaSbuZUnQcDbKdsElTh4+rKZA3HMrmUSXZOgbAlWcHqEgR\r\nTpCSWJbGvjLzKD2RbuEk1sK8hL0j6cDV5xX9lnqwf+TYIcerDoPRQvThPO9a\r\n64RPDASEYfMNPOw7VlDdVeki279NrZC1uNxcNW8FNhcprOQymCEfkOJD32kf\r\nRYgz31VZ+lbhCY+0qxQcTf/gG1QIe86Umq2Xz2rGFdI4h7gTExHaDg93m7ua\r\nP7OiP/kytDyMWrywZ6ksThR8lC3qeFQXTtAlaVfH/T6YQ/NBjQFbZqRjCELW\r\nZ7EMr1YdQHpXej/2jqbP7MCGW3OdP8FFE1Hq41BlAN/Q3gDVu0do85+Aq+KY\r\nHVEIFyzEzy43HDH1r4yRtkBGuqju6rhZbOgj/+o1qzgGjiOUej4NMSUAQ1UR\r\nUbBEudheM50InEV79MufldoyirtnOY9+1+4=\r\n=gR0C\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jsdom","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","funding":"https://github.com/sponsors/haensl","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","prepare":"if [ ${NODE_ENV} != 'production' ]; then husky install; fi","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"8.5.2","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"16.13.1","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.6","husky":"^7.0.4","eslint":"^8.5.0","rimraf":"^3.0.2","rollup":"^2.38.5","babel-jest":"^27.0.6","jest-junit":"^13.0.0","@babel/core":"^7.12.13","babel-eslint":"^10.1.0","@babel/preset-env":"^7.12.13","@rollup/plugin-babel":"^5.2.3","jest-watch-typeahead":"^1.0.0","rollup-plugin-terser":"^7.0.2","@haensl/eslint-config":"^1.4.1","@rollup/plugin-commonjs":"^21.0.1","@rollup/plugin-node-resolve":"^13.0.0","jest-environment-jsdom-fifteen":"^1.0.2","rollup-plugin-peer-deps-external":"^2.2.4","@haensl/rollup-plugin-local-resolve":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/services_1.4.3_1646241909087_0.1871815705084956","host":"s3://npm-registry-packages"}},"1.4.4":{"name":"@haensl/services","version":"1.4.4","keywords":["JavaScript","service","services","component","classname","class","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle","numbers","rand","randInt"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.4.4","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"64a5531b77d754976d3ec69bc2e3543bc580a039","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.4.4.tgz","fileCount":8,"integrity":"sha512-kLXuDZilxR5LDRVVWfYmgRp8KIZ1jYJDA6AuQIkcVfvCHiCZxMe6EJ6p8f/X6qU4fLNMB006uDqyc12646YBmQ==","signatures":[{"sig":"MEUCIQDyg7vvwJn2XHcLEL7Hx6hTsOjMBYoTzz9i/yE7Ega96AIgBq5s/qRPiTr8qQaTrCx4TuB0IHVKdk0pvDJZhyK7xjs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36397,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiTCFsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrqdQ//bhXkOm2YlvjMXzNgYj+Ibv8Ac4BwuNZ6i+mtQ/oM+NK4LGZJ\r\nPH6KxYm0fICOUJ5B/8jpPdlRD33FpVjaHauQvoypw7YRLup36ZTpfd48IFJ3\r\ncf66SQzzKfbEl13wBcC53f85H2nNt3PVvK7jfgr5Xmw1+12HPqRuBF9gzOjx\r\nnz7cQIuhvD3IUSY/mPvXjooPmblx2RgQgEG9sx7Vx17Td9Tg7V9pm/y2r62f\r\n6bHpqGBzlIr5X5CZSQyXl43VY1r4zMusq5MRH+xDgrjWEQnnlPP+nj/oS/So\r\nqxxNPHPJfSpv4vu0ovYykr3MxyzIwR3r6qEpH/Fpm13COwld3h6FmKCiCD1F\r\nuR3hMtStmLlFHUIUMS/VI5pRTHaNOeFdK/CWgpheqo6XGltn1KZ5tpDnmh0a\r\nMMaWNsavI9OcYAvHUV9hitMQINDFE2/TwcCzDuINTwXBpreO6L8Faeii3UXL\r\nPqFeJm2jrQsVRibRH8mtfTuDVVDW0im0NwQO6KnYLmXl7LeFB3DFiNpeEvHe\r\nfBrGGbqVOiId54AecLG9urNY0P8h7XJaQyqBo6hk2mRsppjel1xTeMvZqG6w\r\njmBqU/jiN16566BXLu1AKz/AQdCB8yL5tVtWAj+o461k2kIyPR7E3YySM4st\r\n3FvNZ95sFhIuOGJTRwhPjktvJGyCcy6CpZ0=\r\n=HlRy\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jsdom","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","funding":"https://github.com/sponsors/haensl","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","prepare":"if [ ${NODE_ENV} != 'production' ]; then husky install; fi","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"8.6.0","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"16.13.1","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.6","husky":"^7.0.4","eslint":"^8.5.0","rimraf":"^3.0.2","rollup":"^2.38.5","babel-jest":"^27.0.6","jest-junit":"^13.0.0","@babel/core":"^7.12.13","babel-eslint":"^10.1.0","@babel/preset-env":"^7.12.13","@rollup/plugin-babel":"^5.2.3","jest-watch-typeahead":"^1.0.0","rollup-plugin-terser":"^7.0.2","@haensl/eslint-config":"^1.4.1","@rollup/plugin-commonjs":"^21.0.1","@rollup/plugin-node-resolve":"^13.0.0","jest-environment-jsdom-fifteen":"^1.0.2","rollup-plugin-peer-deps-external":"^2.2.4","@haensl/rollup-plugin-local-resolve":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/services_1.4.4_1649156460421_0.811900582470741","host":"s3://npm-registry-packages"}},"1.4.5":{"name":"@haensl/services","version":"1.4.5","keywords":["JavaScript","service","services","component","classname","class","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle","numbers","rand","randInt"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.4.5","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"e3cfbb9637b37bea954a9481e0318d8bfbd1b47e","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.4.5.tgz","fileCount":8,"integrity":"sha512-lhaumr/npGqo9DbceOV2ajmez+7ez9a3aZRjoDJRXlMzunbquy5DyBPmvANjyp/r9MX7Bc0lZVAwhA/MxjXhpw==","signatures":[{"sig":"MEYCIQDHxh/04efTB15IGBJtKf0/B/gFjMUKda5d6L9omk59KgIhANEtzF07NHktvT/AM3ZZb6FB5aGJvW7WB/aabCWfswib","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35968,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvu5/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrt+w/9HXTDZXM2TWvp2waD4vUtiF68neoQk3KrfRvmNqu9GGWDRcyt\r\nqmW6FOrw3k5gTfQsHy0N3ziRu1z2ejENMRRd4VuwuS5NABVapdhYNbAL5y0M\r\n9Ocj8ddDz+KqhH3iiNRRKleZim0zrS73DQ6XIyiPdH7nYZD1FjVEwJ8CbsM8\r\nZIsPfN9dN5zk0rEMI0QVclc5GZFu/tEKsNNB3g7V211S0Rahn3FDuXImSTaL\r\nF3wRbNAePEdhskXxxqag4QRQ4QQyj1OkYSQZeBJfn76PqRHCQV/NPy/5jbA3\r\nnK4qJspXB8Q9fq+5Leoxq7jACxYBPXgB1N2mWXWGZycxcIIg4CAjGZDc8ji3\r\n5KvyWnZTF5xt9MhEuol1F8y4z6nStA801MxGxzudrFxx/J5A8NV9tD+wqI8S\r\nj/eBT0DVBqqKsJBpsSMf+WNv16nJZZ01bovt1EcuZ75M01q7TH+aIRLxO9dH\r\n+t44QfhEvv53mZXj1eZhZSWD75LXf1P4dnvvEAYoZVlqxqkLkanL1BWzcaGF\r\n5SIEpf+vHrt2eEsHlxzKbtm0smC/lKZdMDnrvQEQPedmTJd5gmxQHIO+JGtO\r\nXxYSbtRuK6B0O4tczlM6E5WFKXaxBXDhFowFMG8xFeyQt2otO4OUiEVUmDNV\r\n0W9yZsZFibWrJXoHrSvKhh8DU6ewKsYHbYg=\r\n=Wq8X\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jsdom","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","funding":"https://github.com/sponsors/haensl","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","prepare":"if [ ${NODE_ENV} != 'production' ]; then husky install; fi","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"9.2.0","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"16.13.1","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","husky":"^8.0.3","eslint":"^8.5.0","rimraf":"^3.0.2","rollup":"^3.9.1","babel-jest":"^29.3.1","jest-junit":"^15.0.0","@babel/core":"^7.12.13","babel-eslint":"^10.1.0","@babel/preset-env":"^7.12.13","@rollup/plugin-babel":"^6.0.3","jest-watch-typeahead":"^2.2.1","@haensl/eslint-config":"^1.4.1","@rollup/plugin-terser":"^0.3.0","jest-environment-jsdom":"^29.3.1","@rollup/plugin-commonjs":"^24.0.0","@rollup/plugin-node-resolve":"^15.0.1","rollup-plugin-peer-deps-external":"^2.2.4","@haensl/rollup-plugin-local-resolve":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/services_1.4.5_1673457279659_0.5495003337038336","host":"s3://npm-registry-packages"}},"1.4.6":{"name":"@haensl/services","version":"1.4.6","keywords":["JavaScript","service","services","component","classname","class","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle","numbers","rand","randInt"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.4.6","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"6ee3f9012a754a61f0e0aa5c3d7ac868e75e3a04","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.4.6.tgz","fileCount":8,"integrity":"sha512-tXGTp1/Wx/qYF8Qjb/CDVMiGxTu7LbQ5w5j+vScu+V/M82qFa153PvNMOXVhThNcnrG6AqyyqTtczMYlFGvBcQ==","signatures":[{"sig":"MEUCIDhp7r/VUNTkhrqSaBGSRlLOgySCOg3Vnf5I+/bRFLRKAiEA2ud84RVrjOlR0Sdn0+zEO5iwe/uxwWWxEpw740lS68A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36180},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jsdom","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","funding":"https://github.com/sponsors/haensl","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","prepare":"if [ ${NODE_ENV} != 'production' ]; then husky install; fi","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"9.6.6","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"16.13.1","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","husky":"^8.0.3","eslint":"^8.5.0","rimraf":"^5.0.0","rollup":"^3.9.1","babel-jest":"^29.3.1","jest-junit":"^16.0.0","@babel/core":"^7.12.13","babel-eslint":"^10.1.0","@babel/preset-env":"^7.12.13","@rollup/plugin-babel":"^6.0.3","jest-watch-typeahead":"^2.2.1","@haensl/eslint-config":"^1.4.1","@rollup/plugin-terser":"^0.4.2","jest-environment-jsdom":"^29.3.1","@rollup/plugin-commonjs":"^25.0.0","@rollup/plugin-node-resolve":"^15.0.1","rollup-plugin-peer-deps-external":"^2.2.4","@haensl/rollup-plugin-local-resolve":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/services_1.4.6_1684274371792_0.7723535491643359","host":"s3://npm-registry-packages"}},"1.4.7":{"name":"@haensl/services","version":"1.4.7","keywords":["JavaScript","service","services","component","classname","class","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle","numbers","rand","randInt"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.4.7","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"df3b07f2d42d37f5cfd711785bf57c44d4d18eac","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.4.7.tgz","fileCount":8,"integrity":"sha512-zm/4xpquCMQobJUVUx3jf2lTgaVPwi1t6KcGnmCDrxj4MW+lJYEVWVYj2iE+/HhDejg8ctxXg/LKIynNY/vGng==","signatures":[{"sig":"MEQCIE1bOK6Uo6+AoW6SGgBeh1MhS5ClEZyCsrNsSMxVnxHAAiAb0L+qwaDqcm140sfUiJnc1yrpYbw8f/oZJOZMfsZkEQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36180},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jsdom","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","funding":"https://github.com/sponsors/haensl","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","prepare":"if [ ${NODE_ENV} != 'production' ]; then husky install; fi","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"10.1.0","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"18.18.0","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","husky":"^8.0.3","eslint":"^8.5.0","rimraf":"^5.0.0","rollup":"^3.9.1","babel-jest":"^29.3.1","jest-junit":"^16.0.0","@babel/core":"^7.12.13","babel-eslint":"^10.1.0","@babel/preset-env":"^7.12.13","@rollup/plugin-babel":"^6.0.3","jest-watch-typeahead":"^2.2.1","@haensl/eslint-config":"^1.4.1","@rollup/plugin-terser":"^0.4.2","jest-environment-jsdom":"^29.3.1","@rollup/plugin-commonjs":"^25.0.0","@rollup/plugin-node-resolve":"^15.0.1","rollup-plugin-peer-deps-external":"^2.2.4","@haensl/rollup-plugin-local-resolve":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/services_1.4.7_1695686958523_0.8120615277422809","host":"s3://npm-registry-packages"}},"1.4.8":{"name":"@haensl/services","version":"1.4.8","keywords":["JavaScript","service","services","component","classname","class","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle","numbers","rand","randInt"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.4.8","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"31543bd25b5f32f510be49be188827b1723012da","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.4.8.tgz","fileCount":8,"integrity":"sha512-wJdriCMDMnkj6MzZGEqErFyphu3o1kbxoj0qtIDR6X2Qge8tAmk3IFKDVvnzF6uYTkhB0bOyLJwY8TSue9ACcQ==","signatures":[{"sig":"MEYCIQDRNt/BaOQkKq2l4/+09j2O1tuoKgkzGVmw3n9UqaP6WgIhAO5myvOOkyJdX0cpSqCxUEO7q8YP10HKvv9XlPWkBDR9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36180},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jsdom","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","funding":"https://github.com/sponsors/haensl","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","prepare":"if [ ${NODE_ENV} != 'production' ]; then husky install; fi","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"10.2.3","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"20.9.0","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","husky":"^8.0.3","eslint":"^8.5.0","rimraf":"^5.0.0","rollup":"^4.4.0","babel-jest":"^29.3.1","jest-junit":"^16.0.0","@babel/core":"^7.12.13","babel-eslint":"^10.1.0","@babel/preset-env":"^7.12.13","@rollup/plugin-babel":"^6.0.3","jest-watch-typeahead":"^2.2.1","@haensl/eslint-config":"^1.4.1","@rollup/plugin-terser":"^0.4.2","jest-environment-jsdom":"^29.3.1","@rollup/plugin-commonjs":"^25.0.0","@rollup/plugin-node-resolve":"^15.0.1","rollup-plugin-peer-deps-external":"^2.2.4","@haensl/rollup-plugin-local-resolve":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/services_1.4.8_1699886630739_0.7945703116142633","host":"s3://npm-registry-packages"}},"1.4.9":{"name":"@haensl/services","version":"1.4.9","keywords":["JavaScript","service","services","component","classname","class","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle","numbers","rand","randInt"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.4.9","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"c860e674e4680c3ab363926e080142e2136468fa","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.4.9.tgz","fileCount":8,"integrity":"sha512-IDUNEziIPAZKZxVH4OmWd5+CEWw2jZC0cfYm04+4pIV4mreIB8WN/zRrweqyWVtZAm8m0GZAt6+ZnhngvgJSBw==","signatures":[{"sig":"MEUCIAXo1VMJ5fgsL3dSGxcHWwKJtee68agTT2Rao+M/mg4cAiEA9thg/lFrhcSbA5NgEfo2rPsf1I9pGaMOWE/Fk3J/ydg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36173},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jsdom","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","funding":"https://github.com/sponsors/haensl","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","prepare":"if [ ${NODE_ENV} != 'production' ]; then husky; fi","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"10.5.0","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"20.11.1","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","husky":"^9.0.11","eslint":"^8.5.0","rimraf":"^5.0.0","rollup":"^4.4.0","babel-jest":"^29.3.1","jest-junit":"^16.0.0","@babel/core":"^7.12.13","babel-eslint":"^10.1.0","@babel/preset-env":"^7.12.13","@rollup/plugin-babel":"^6.0.3","jest-watch-typeahead":"^2.2.1","@haensl/eslint-config":"^1.4.1","@rollup/plugin-terser":"^0.4.2","jest-environment-jsdom":"^29.3.1","@rollup/plugin-commonjs":"^25.0.0","@rollup/plugin-node-resolve":"^15.0.1","rollup-plugin-peer-deps-external":"^2.2.4","@haensl/rollup-plugin-local-resolve":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/services_1.4.9_1710178996414_0.8798260404779703","host":"s3://npm-registry-packages"}},"1.5.0":{"name":"@haensl/services","version":"1.5.0","keywords":["JavaScript","service","services","component","classname","class","error","response","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle","numbers","rand","randInt"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.5.0","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"ff69531e5683b0524609fef35dc6765be925963d","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.5.0.tgz","fileCount":8,"integrity":"sha512-SfxSm9c0q4jgHCGjVxjSeyydgN6FyScr8TldCBPz2DY1TQ0qlWTYi3C2wPpa7wlRsmPf0m7AfFUSqGg20CgZyA==","signatures":[{"sig":"MEUCIQCaAKFpvNJrIer9GZBqDodtjMshPPhJPwejOt6yaBHrKwIgSIMVfDACEOTs81kponud2XZd5U9PIfdoNSOtdxEn+9w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":55336},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jsdom","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","funding":"https://github.com/sponsors/haensl","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","prepare":"if [ ${NODE_ENV} != 'production' ]; then husky; fi","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"10.5.0","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"20.11.1","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","husky":"^9.0.11","eslint":"^8.5.0","rimraf":"^5.0.0","rollup":"^4.4.0","babel-jest":"^29.3.1","jest-junit":"^16.0.0","node-fetch":"^2.7.0","@babel/core":"^7.12.13","@haensl/http":"^1.1.1","babel-eslint":"^10.1.0","@babel/preset-env":"^7.12.13","@haensl/mimetypes":"^1.1.0","@rollup/plugin-babel":"^6.0.3","jest-watch-typeahead":"^2.2.1","@haensl/eslint-config":"^1.4.1","@rollup/plugin-terser":"^0.4.2","jest-environment-jsdom":"^29.3.1","@rollup/plugin-commonjs":"^25.0.0","@rollup/plugin-node-resolve":"^15.0.1","rollup-plugin-peer-deps-external":"^2.2.4","@haensl/rollup-plugin-local-resolve":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/services_1.5.0_1710887568923_0.13191277369502497","host":"s3://npm-registry-packages"}},"1.5.1":{"name":"@haensl/services","version":"1.5.1","keywords":["JavaScript","service","services","component","classname","class","error","response","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle","numbers","rand","randInt"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.5.1","homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"af143b77b7b3b647c94fa448f6f300802f68e31e","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.5.1.tgz","fileCount":8,"integrity":"sha512-+E8K8rtmfRe+/18bskbod8S/g7P3117Ns+PNLvC59GSZoiWSY83hsmtGEJwsj6+IdyMDsYymHB/9YaGoNSw3yg==","signatures":[{"sig":"MEUCICUBzVQR7pFS21/BEH4YkFE9dEPFYh6rH3pVgdUUNrRKAiEAlmoR13z5BtRbHtbEjn1d6TXenYbI1Uxzp7OKNH73TyA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":55014},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jsdom","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","funding":"https://github.com/sponsors/haensl","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","prepare":"if [ ${NODE_ENV} != 'production' ]; then husky; fi","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"10.8.1","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"20.15.0","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","husky":"^9.0.11","eslint":"^8.5.0","rimraf":"^5.0.0","rollup":"^4.4.0","babel-jest":"^29.3.1","jest-junit":"^16.0.0","node-fetch":"^2.7.0","@babel/core":"^7.12.13","@haensl/http":"^1.1.1","babel-eslint":"^10.1.0","@babel/preset-env":"^7.12.13","@haensl/mimetypes":"^1.1.0","@rollup/plugin-babel":"^6.0.3","jest-watch-typeahead":"^2.2.1","@haensl/eslint-config":"^1.4.1","@rollup/plugin-terser":"^0.4.2","jest-environment-jsdom":"^29.3.1","@rollup/plugin-commonjs":"^25.0.0","@rollup/plugin-node-resolve":"^15.0.1","rollup-plugin-peer-deps-external":"^2.2.4","@haensl/rollup-plugin-local-resolve":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/services_1.5.1_1718999055108_0.6374041690864598","host":"s3://npm-registry-packages"}},"1.5.2":{"name":"@haensl/services","version":"1.5.2","keywords":["JavaScript","service","services","component","classname","class","error","response","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle","numbers","rand","randInt"],"author":{"url":"https://hpdietz.com","name":"HP Dietz","email":"h.p.dietz@gmail.com"},"license":"MIT","_id":"@haensl/services@1.5.2","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"homepage":"https://github.com/haensl/services#readme","bugs":{"url":"https://github.com/haensl/services/issues"},"dist":{"shasum":"22d48055d4548c95812534171eba1c1a18747c62","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.5.2.tgz","fileCount":8,"integrity":"sha512-Io0N1TQzIiIcP/7SM6/eckt5ERKHK9snC8Ej+Nguq619jRqq6y3/hdPs/5rjCGNaOEqtIL+elF0t24bgnJq4jg==","signatures":[{"sig":"MEYCIQDYMFeeO9NIKOOC7Bcmyi9if687PPCfmM9X4hP25TeVuAIhAKK2Ucf391rTLxdrZF7NGM97QrHnzpVpM61/FRKQdNll","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":57549},"jest":{"roots":["<rootDir>/src"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"modulePaths":[],"watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"],"testEnvironment":"jsdom","coverageReporters":["text"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"testPathIgnorePatterns":["/package-tests/"],"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"]},"main":"dist/services.cjs.js","babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-commit":"CI=true npm run lint && npm run test:ci"}},"unpkg":"dist/services.umd.js","module":"dist/services.esm.js","funding":"https://github.com/sponsors/haensl","scripts":{"tdd":"jest --runInBand --watch","lint":"eslint --ext js,jsx src/","test":"jest --runInBand","build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","lint:ci":"eslint --format junit -o test-results/eslint/results.xml --ext js,jsx src/","prepare":"if [ ${NODE_ENV} != 'production' ]; then husky; fi","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'","coverage":"CI=true npm test -- --ci --coverage"},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"jest-junit":{"suitName":"react hooks unit tests","outputName":"results.xml","outputDirectory":"test-results/jest"},"repository":{"url":"git+https://github.com/haensl/services.git","type":"git"},"_npmVersion":"10.8.3","description":"Assorted JavaScript services.","directories":{},"_nodeVersion":"20.17.0","eslintConfig":{"env":{"es6":true,"jest":true,"browser":true,"commonjs":true},"extends":["@haensl"],"parserOptions":{"sourceType":"module","ecmaVersion":9}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","husky":"^9.0.11","eslint":"^8.5.0","rimraf":"^5.0.0","rollup":"^4.4.0","babel-jest":"^29.3.1","jest-junit":"^16.0.0","node-fetch":"^2.7.0","@babel/core":"^7.12.13","@haensl/http":"^1.1.1","babel-eslint":"^10.1.0","@babel/preset-env":"^7.12.13","@haensl/mimetypes":"^1.1.0","@rollup/plugin-babel":"^6.0.3","jest-watch-typeahead":"^2.2.1","@haensl/eslint-config":"^1.4.1","@rollup/plugin-terser":"^0.4.2","jest-environment-jsdom":"^29.3.1","@rollup/plugin-commonjs":"^25.0.0","@rollup/plugin-node-resolve":"^15.0.1","rollup-plugin-peer-deps-external":"^2.2.4","@haensl/rollup-plugin-local-resolve":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/services_1.5.2_1725991295642_0.20700938277516423","host":"s3://npm-registry-packages"}},"1.5.3":{"name":"@haensl/services","version":"1.5.3","description":"Assorted JavaScript services.","main":"dist/services.cjs.js","module":"dist/services.esm.js","unpkg":"dist/services.umd.js","scripts":{"build":"npm run clean && NODE_ENV=production rollup -c","clean":"rimraf ./dist","coverage":"CI=true npm test -- --ci --coverage","lint":"ESLINT_USE_FLAT_CONFIG=true eslint 'src/**/*.js'","lint:ci":"ESLINT_USE_FLAT_CONFIG=true eslint --format junit -o test-results/eslint/results.xml 'src/**/*.js'","prepare":"if [ ${NODE_ENV} != 'production' ]; then husky; fi","tdd":"jest --runInBand --watch","test":"jest --runInBand","test:ci":"jest --runInBand --no-cache --ci --reporters='default' --reports='jest-junit'"},"repository":{"type":"git","url":"git+https://github.com/haensl/services.git"},"keywords":["JavaScript","service","services","component","classname","class","error","response","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle","numbers","rand","randInt"],"author":{"name":"HP Dietz","email":"h.p.dietz@gmail.com","url":"https://hpdietz.com"},"funding":"https://github.com/sponsors/haensl","license":"MIT","bugs":{"url":"https://github.com/haensl/services/issues"},"homepage":"https://github.com/haensl/services#readme","jest":{"roots":["<rootDir>/src"],"collectCoverageFrom":["src/**/*.{js,jsx,ts,tsx}","!src/**/*.d.ts","!<rootDir>/node_modules/"],"coveragePathIgnorePatterns":["/node_modules/","/__snapshots__/","<rootDir>/test.setup.js","<rootDir>/package.json","<rootDir>/package-lock.json"],"coverageReporters":["text"],"testMatch":["<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}","<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"],"testPathIgnorePatterns":["/package-tests/"],"testEnvironment":"jsdom","transform":{"^.+\\.(js|jsx|ts|tsx)$":"<rootDir>/node_modules/babel-jest"},"transformIgnorePatterns":["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$"],"modulePaths":[]},"jest-junit":{"outputDirectory":"test-results/jest","outputName":"results.xml","suitName":"@haensl/services unit tests"},"babel":{"presets":["@babel/env"]},"husky":{"hooks":{"pre-commit":"CI=true npm run lint && npm run test:ci"}},"devDependencies":{"@babel/core":"^7.12.13","@babel/preset-env":"^7.12.13","@haensl/eslint-config":"^2.0.0","@haensl/http":"^1.1.1","@haensl/mimetypes":"^1.1.0","@haensl/rollup-plugin-local-resolve":"^1.1.1","@rollup/plugin-babel":"^6.0.3","@rollup/plugin-commonjs":"^28.0.6","@rollup/plugin-node-resolve":"^16.0.1","@rollup/plugin-terser":"^0.4.2","babel-eslint":"^10.1.0","babel-jest":"^30.0.4","eslint":"^9.31.0","eslint-formatter-junit":"^8.40.0","eslint-plugin-react":"^7.37.5","husky":"^9.0.11","jest":"^30.0.4","jest-environment-jsdom":"^30.0.4","jest-environment-node":"^30.0.4","jest-junit":"^16.0.0","node-fetch":"^2.7.0","rimraf":"^6.0.1","rollup":"^4.4.0","rollup-plugin-peer-deps-external":"^2.2.4"},"_id":"@haensl/services@1.5.3","_nodeVersion":"22.17.0","_npmVersion":"11.4.2","dist":{"integrity":"sha512-JTwalqVZ5TKevMZMEPYB7Dd/hGe2KZaglt2eEvVVWlF59FV+5aMbCSd2e7L7S6OdNQh9pdZZtnsg2VffhLqNNg==","shasum":"23a2943aa7d356b10afa62a15aae0162143aeba8","tarball":"https://registry.npmjs.org/@haensl/services/-/services-1.5.3.tgz","fileCount":8,"unpackedSize":52294,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDZeohvCVP6lLqiGXqhfxIf24Jl98uy7uXfoyEBrn+YlAIgWeqRhv8ep9U4nF+FSzyr2BK0+5JHwr0828BmTjkBbaM="}]},"_npmUser":{"name":"haensl","email":"h.p.dietz@gmail.com"},"directories":{},"maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/services_1.5.3_1752688205220_0.35940765699136934"},"_hasShrinkwrap":false}},"time":{"created":"2020-06-29T14:52:23.007Z","modified":"2025-07-16T17:50:05.619Z","0.1.0":"2020-06-29T14:52:23.150Z","1.0.0":"2020-06-29T17:27:36.591Z","1.1.0":"2020-06-30T10:12:08.460Z","1.2.0":"2020-07-06T10:51:30.201Z","1.2.1":"2020-08-21T10:50:31.000Z","1.3.0":"2020-10-08T11:55:55.007Z","1.3.1":"2021-02-03T10:47:42.374Z","1.3.2":"2021-02-09T13:27:58.640Z","1.3.3":"2021-02-16T15:20:48.685Z","1.3.4":"2021-05-10T11:07:13.267Z","1.3.5":"2021-08-24T08:58:02.175Z","1.3.6":"2021-12-28T11:12:29.534Z","1.3.7":"2022-01-04T20:51:50.889Z","1.3.8":"2022-01-19T17:31:37.489Z","1.3.9":"2022-01-25T18:20:11.384Z","1.3.10":"2022-02-01T12:36:10.194Z","1.4.0":"2022-02-07T22:00:58.112Z","1.4.1":"2022-02-15T14:27:15.236Z","1.4.2":"2022-02-17T15:43:25.663Z","1.4.3":"2022-03-02T17:25:09.219Z","1.4.4":"2022-04-05T11:01:00.576Z","1.4.5":"2023-01-11T17:14:39.877Z","1.4.6":"2023-05-16T21:59:32.000Z","1.4.7":"2023-09-26T00:09:18.810Z","1.4.8":"2023-11-13T14:43:50.917Z","1.4.9":"2024-03-11T17:43:16.599Z","1.5.0":"2024-03-19T22:32:49.127Z","1.5.1":"2024-06-21T19:44:15.266Z","1.5.2":"2024-09-10T18:01:35.903Z","1.5.3":"2025-07-16T17:50:05.408Z"},"bugs":{"url":"https://github.com/haensl/services/issues"},"author":{"name":"HP Dietz","email":"h.p.dietz@gmail.com","url":"https://hpdietz.com"},"license":"MIT","homepage":"https://github.com/haensl/services#readme","keywords":["JavaScript","service","services","component","classname","class","error","response","platform","window","hasWindow","hasDocument","hasDocumentElement","hasSessionStorage","hasLocalStorage","scrollPosition","debounce","throttle","numbers","rand","randInt"],"repository":{"type":"git","url":"git+https://github.com/haensl/services.git"},"description":"Assorted JavaScript services.","maintainers":[{"name":"haensl","email":"h.p.dietz@gmail.com"}],"readme":"# services\nAssorted JavaScript services.\n\n[![NPM](https://nodei.co/npm/@haensl%2Fservices.png?downloads=true)](https://nodei.co/npm/@haensl%2Fservices/)\n\n[![npm version](https://badge.fury.io/js/@haensl%2Fservices.svg)](http://badge.fury.io/js/@haensl%2Fservices)\n[![CircleCI](https://circleci.com/gh/haensl/services.svg?style=svg)](https://circleci.com/gh/haensl/services)\n\n## Installation<a name=\"installation\"></a>\n\n### Via `npm`\n\n```bash\n$ npm install -S @haensl/services\n```\n\n### Via `yarn`\n\n```bash\n$ yarn add @haensl/services\n```\n\n## Usage\n\n1. [Install @haensl/services](#installation)\n\n2. Use services in your code:\n\n```javascript\nimport { platform } from '@haensl/services';\n\nif (platform.hasWindow) {\n  // code that relies on existance\n  // of a global window object\n}\n```\n\n## Available services\n\n* [component](#component): Wraps utility functions useful in a component context, e.g. generate stateful class names.\n* [error](#error): Wraps utility functions pertaining to `Error`s.\n* [numbers](#numbers): Wraps utility functions pertaining to numbers, e.g. generating random numbers.\n* [platform](#platform): Wraps information about the platform, e.g. _is there a `window`? what is the current scroll position? is there local storage? etc._\n* [throttle](#throttle): Wraps functionality to throttle function execution, e.g. `debounce`.\n\n### component service<a name=\"component\"></a>\n\nThe component service wraps utility functions useful when working with components.\n\n#### [Methods](#component-methods)\n* [`className(states, basename)`](#component.className)\n* [`setInputValue(input, value)`](#component.setInputValue)\n\n#### Methods<a name=\"component-methods\"></a>\n\n##### className(states, basename, [separator = `'--'`])<a name=\"component.className\"></a>\n\nReturns a class list string composed of the `basename` followed by the `basename` concatenated with any truthy properties in `states`, wherein the concatenation is separated by `separator` _(default: two dashes, `--`)_.\n\n###### Example\n```javascript\nimport React, { useState } from 'react';\nimport { component } from '@haensl/services';\n\nconst MyComponent = () => {\n  const [isDoingStuff, setIsDoingStuff] = useState(false);\n\n  // code manipulating isDoingStuff\n\n  const cn = component.className({\n    isDoingStuff\n  }, 'MyComponent');\n\n  // if isDoingStuff is true\n  // cn === \"MyComponent MyComponent--isDoingStuff\"\n  // else\n  // cn === \"MyComponent\"\n\n  return (\n    <div className={ cn }> // className=\"MyComponent MyComponent--isDoingStuff\"\n      // ...\n    </div>\n  );\n};\n```\n\n##### setInputValue(input, value)<a name=\"component.setInputValue\"></a>\n\nSets the `value` of an [HTMLInputElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement) and triggers an `'input'` event. This is for example useful in cases where frameworks' event management makes it hard to programmatically trigger events that adhere to the native JavaScript event behaviour.\n\n###### Example\n\n```javascript\nimport React, { useEffect, useRef, useState } from 'react';\nimport { component } from '@haensl/services';\n\nconst MyComponent = ({\n  defaultValue = '',\n  onChange\n}) => {\n  const [value, setValue] = useState(defaultValue);\n  const input = useRef();\n\n  useEffect(() => {\n    if (!input.current) {\n      return;\n    }\n\n    component.setInputValue(input.current, defaultValue);\n  }, [defaultValue]);\n\n  return (\n    <div>\n      // ...\n      <input\n        ref={ input }\n        onChange={ onChange }\n        value={ value }\n      />\n    </div>\n  );\n};\n```\n\n### error service<a name=\"error\">></a>\n\nThe error service wraps utility functions pertaining to `Error`s.\n\n#### [Methods](#error-methods)\n\n* [`attachResponseToError(response, error)`](#error.attachResponseToError)\n\n#### Methods<a name=\"error-methods\"></a>\n\n##### async attachResponseToError(response, error)<a name=\"error.attachResponseToError\"></a>\n\nAttaches HTTP [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) meta data to an `Error`. This is an `async` operation.\n\n\n###### Example\n\n```javascript\n\nconst response = await fetch('/some/api');\n\nif (!response.ok) {\n    const error = new Error('Failing to fetch from API!');\n\n    // extract metadata such as headers, status, etc from response and attach to error object.\n    await attach(response, error);\n\n    throw error;\n}\n```\n\n### numbers service<a name=\"numbers\"></a>\n\nThe numbers service wraps utility functions pertaining to numbers, e.g. random number generation.\n\n#### [Methods](#numbers-methods)\n* [`rand({ min, max })`](#numbers.rand)\n* [`randInt({ min, max })`](#numbers.randInt)\n\n#### Methods<a name=\"numbers-methods\"></a>\n\n##### rand({ min = 0, max = 1 })<a name=\"numbers.rand\"></a>\n\nReturns a random floating point number between min (inclusive) and max (exclusive). Due to JavaScript rounding, the value will never equal `max`.\n\n###### Example\n```javascript\nimport { numbers } from '@haensl/services';\n\n// generates a random number between 0 (inclusive) and 1 (exclusive)\nconst n = numbers.rand();\n\n// generates a random number between 1 (inclusive) and 300 (exclusive)\nconst k = numbers.rand({ min: 1, max: 300});\n```\n\n##### randInt({ min, max })<a name=\"numbers.randInt\"></a>\n\nReturns a random integer number between min and max (inclusive).\n\n###### Example\n```javascript\nimport { numbers } from '@haensl/services';\n\n// generates a random number between 0 (inclusive) and 3 (inclusive)\nconst n = numbers.randInt({ min: 0, max: 3 });\n```\n\n### platform service<a name=\"platform\"></a>\n\nThe platform service wraps information about the current runtime platform, e.g. _is there a `window`? what is the current scroll position? is there local storage? etc._\n\n#### [Properties](#platform-properties)\n* [`hasDocument`](#platform.hasDocument)\n* [`hasDocumenElement`](#platform.hasDocumentElement)\n* [`hasLocalStorage`](#platform.hasLocalStorage)\n* [`hasSessionStorage`](#platform.hasSessionStorage)\n* [`hasWindow`](#platform.hasWindow)\n\n#### [Methods](#platform-methods)\n* [`scrollPosition()`](#platform.scrollPosition)\n\n#### Properties<a name=\"#platform-properties\"></a>\n\n##### hasDocument<a name=\"platform.hasDocument\"></a>\n\nBoolean, indicating whether or not the current runtime provides a global `document` object.\n\n###### Example\n```javascript\nimport { platform } from '@haensl/services';\n\nif (platform.hasDocument) {\n  // code that relies on global document object,\n  // e.g.\n  if (/utf-8/i.test(document.characterSet)) {\n    // do stuff that requires utf-8 encoding\n  }\n}\n```\n\n##### hasDocumentElement<a name=\"platform.hasDocumentElement\"></a>\n\nBoolean, indicating whether or not the current runtime provides a global `document.documentElement` object.\n\n###### Example\n```javascript\nimport { platform } from '@haensl/services';\n\nif (platform.hasDocumentElement) {\n  // code that relies on the existence of document.documentElement,\n  // e.g.\n  if (!(document.documentElement instanceof HTMLHtmlElement)) {\n    // do stuff the XML way, because we're not in an HTML document\n  }\n}\n```\n\n##### hasLocalStorage<a name=\"platform.hasLocalStorage\"></a>\n\nBoolean, indicating whether or not the current runtime provides a global `window.localStorage` object.\n\n###### Example\n```javascript\nimport { platform } from '@haensl/services';\n\nif (platform.hasLocalStorage) {\n  // code that relies on local storage,\n  // e.g.\n  window.localStorage.setItem('my-data', data);\n} else {\n  // code that saves data elsewhere\n}\n```\n\n##### hasSessionStorage<a name=\"platform.hasSessionStorage\"></a>\n\nBoolean, indicating whether or not the current runtime provides a global `window.sessionStorage` object.\n\n###### Example\n```javascript\nimport { platform } from '@haensl/services';\n\nif (platform.hasSessionStorage) {\n  // code that relies on session storage,\n  // e.g.\n  window.sessionStorage.setItem('my-data', data);\n} else {\n  // code that saves data elsewhere\n}\n```\n\n##### hasWindow<a name=\"platform.hasWindow\"></a>\n\nBoolean, indicating whether or not the current runtime provides a global `window` object.\n\n###### Example\n```javascript\nimport { platform } from '@haensl/services';\n\nif (platform.hasWindow) {\n  // code that relies on the global window object,\n  // e.g.\n  myComponent.scrollX = window.scrollX + 100;\n}\n```\n\n#### Methods<a name=\"platform-methods\"></a>\n\n##### scrollPosition()<a name=\"platform.scrollPosition\"></a>\n\nReturns an object with properties `x` and `y` reflecting the current scroll position if applicaple, `null` otherwise.\n\n###### Example\n```javascript\nimport { platform } from '@haensl/services';\n\nif (platform.hasWindow) {\n  window.addEventListener('scroll', () => {\n    console.log(platform.scrollPosition());\n    // will print objects like\n    // { x: 0, y: 10 }\n  });\n} else if (!platform.hasDocument) {\n  console.log(platform.scrollPosition());\n  // will print null since there is neither document nor window!\n}\n```\n\n### throttle service<a name=\"throttle\"></a>\n\nThe throttle service wraps functionality used to throttle function execution, e.g. `debounce`.\n\n##### [Methods](#throttle-methods)\n* [`debounce(fn, debounceMs)`](#throttle.debounce)\n\n#### Methods<a name=\"throttle-methods\">\n\n##### debounce(fn, debounceMs)<a name=\"throttle.debounce\"></a>\n\nReturns a new function that debounces `fn` by `debounceMs` milliseconds. Debouncing means `fn` is only executed if there are _no calls_ for `debounceMs` milliseconds.\n\n###### Example<a name=\"throttle.debounce.example\"></a>\n```javascript\nimport { throttle, platform } from '@haensl/services';\n\nif (platform.hasWindow) {\n  // only logs when there are no calls\n  // for 50 milliseconds\n  const onScroll = throttle.debounce(() => {\n    console.log(platform.scrollPosition());\n  }, 50);\n\n  window.addEventListener('scroll', onScroll);\n}\n```\n\n## [Changelog](CHANGELOG.md)\n\n## [License](LICENSE)\n\n","readmeFilename":"README.md"}